diff --git a/packages/docusaurus-bundler/src/currentBundler.ts b/packages/docusaurus-bundler/src/currentBundler.ts index 2005dea60e67..ee804e71759b 100644 --- a/packages/docusaurus-bundler/src/currentBundler.ts +++ b/packages/docusaurus-bundler/src/currentBundler.ts @@ -9,7 +9,8 @@ import webpack from 'webpack'; import WebpackBar from 'webpackbar'; import MiniCssExtractPlugin from 'mini-css-extract-plugin'; import CopyWebpackPlugin from 'copy-webpack-plugin'; -import logger from '@docusaurus/logger'; +import {importRspack} from './importFaster'; +import type {FasterModule} from './importFaster'; import type {CurrentBundler, DocusaurusConfig} from '@docusaurus/types'; // We inject a site config slice because the Rspack flag might change place @@ -32,10 +33,10 @@ export async function getCurrentBundler({ siteConfig: SiteConfigSlice; }): Promise { if (isRspack(siteConfig)) { - // TODO add support for Rspack - logger.error( - 'Rspack bundler is not supported yet, will use Webpack instead', - ); + return { + name: 'rspack', + instance: (await importRspack()) as unknown as typeof webpack, + }; } return { name: 'webpack', @@ -43,13 +44,27 @@ export async function getCurrentBundler({ }; } +export function getCurrentBundlerAsRspack({ + currentBundler, +}: { + currentBundler: CurrentBundler; +}): FasterModule['rspack'] { + if (currentBundler.name !== 'rspack') { + throw new Error( + `Can't getCurrentBundlerAsRspack() because current bundler is ${currentBundler.name}`, + ); + } + return currentBundler.instance as unknown as FasterModule['rspack']; +} + export async function getCSSExtractPlugin({ currentBundler, }: { currentBundler: CurrentBundler; }): Promise { if (currentBundler.name === 'rspack') { - throw new Error('Rspack bundler is not supported yet'); + // @ts-expect-error: this exists only in Rspack + return currentBundler.instance.CssExtractRspackPlugin; } return MiniCssExtractPlugin; } @@ -60,9 +75,9 @@ export async function getCopyPlugin({ currentBundler: CurrentBundler; }): Promise { if (currentBundler.name === 'rspack') { - throw new Error('Rspack bundler is not supported yet'); + // @ts-expect-error: this exists only in Rspack + return currentBundler.instance.CopyRspackPlugin; } - // https://github.com/webpack-contrib/copy-webpack-plugin return CopyWebpackPlugin; } diff --git a/packages/docusaurus-bundler/src/importFaster.ts b/packages/docusaurus-bundler/src/importFaster.ts index a7549ef96a9b..d5943a882085 100644 --- a/packages/docusaurus-bundler/src/importFaster.ts +++ b/packages/docusaurus-bundler/src/importFaster.ts @@ -12,7 +12,7 @@ import type { } from 'terser-webpack-plugin'; import type {MinimizerOptions as CssMinimizerOptions} from 'css-minimizer-webpack-plugin'; -type FasterModule = Awaited; +export type FasterModule = Awaited; async function importFaster(): Promise { return import('@docusaurus/faster'); @@ -29,6 +29,11 @@ async function ensureFaster(): Promise { } } +export async function importRspack(): Promise { + const faster = await ensureFaster(); + return faster.rspack; +} + export async function importSwcJsLoaderFactory(): Promise< ConfigureWebpackUtils['getJSLoader'] > { @@ -50,6 +55,11 @@ export async function importSwcHtmlMinifier(): Promise< return faster.getSwcHtmlMinifier(); } +export async function importBrowserslistQueries(): Promise { + const faster = await ensureFaster(); + return faster.getBrowserslistQueries(); +} + export async function importLightningCssMinimizerOptions(): Promise< CssMinimizerOptions > { diff --git a/packages/docusaurus-bundler/src/loaders/__tests__/jsLoader.test.ts b/packages/docusaurus-bundler/src/loaders/__tests__/jsLoader.test.ts index 2ac34d425f40..22016169b883 100644 --- a/packages/docusaurus-bundler/src/loaders/__tests__/jsLoader.test.ts +++ b/packages/docusaurus-bundler/src/loaders/__tests__/jsLoader.test.ts @@ -5,14 +5,16 @@ * LICENSE file in the root directory of this source tree. */ -import {fromPartial} from '@total-typescript/shoehorn'; +import {fromPartial, type PartialDeep} from '@total-typescript/shoehorn'; import {createJsLoaderFactory} from '../jsLoader'; import type {RuleSetRule} from 'webpack'; describe('createJsLoaderFactory', () => { function testJsLoaderFactory( - siteConfig?: Parameters[0]['siteConfig'], + siteConfig?: PartialDeep< + Parameters[0]['siteConfig'] + >, ) { return createJsLoaderFactory({ siteConfig: { @@ -21,7 +23,12 @@ describe('createJsLoaderFactory', () => { jsLoader: 'babel', ...siteConfig?.webpack, }, - future: fromPartial(siteConfig?.future), + future: fromPartial({ + ...siteConfig?.future, + experimental_faster: fromPartial({ + ...siteConfig?.future?.experimental_faster, + }), + }), }, }); } diff --git a/packages/docusaurus-bundler/src/loaders/jsLoader.ts b/packages/docusaurus-bundler/src/loaders/jsLoader.ts index 64c2c9ced976..1714558dbeb4 100644 --- a/packages/docusaurus-bundler/src/loaders/jsLoader.ts +++ b/packages/docusaurus-bundler/src/loaders/jsLoader.ts @@ -7,6 +7,7 @@ import {getBabelOptions} from '@docusaurus/babel'; import {importSwcJsLoaderFactory} from '../importFaster'; +import {getCurrentBundler} from '../currentBundler'; import type {ConfigureWebpackUtils, DocusaurusConfig} from '@docusaurus/types'; const BabelJsLoaderFactory: ConfigureWebpackUtils['getJSLoader'] = ({ @@ -19,6 +20,25 @@ const BabelJsLoaderFactory: ConfigureWebpackUtils['getJSLoader'] = ({ }; }; +const RspackJsLoaderFactory: ConfigureWebpackUtils['getJSLoader'] = () => { + return { + loader: 'builtin:swc-loader', + options: { + jsc: { + parser: { + syntax: 'typescript', + tsx: true, + }, + transform: { + react: { + runtime: 'automatic', + }, + }, + }, + }, + }; +}; + // Confusing: function that creates a function that creates actual js loaders // This is done on purpose because the js loader factory is a public API // It is injected in configureWebpack plugin lifecycle for plugin authors @@ -27,11 +47,22 @@ export async function createJsLoaderFactory({ }: { siteConfig: { webpack?: DocusaurusConfig['webpack']; - future?: { + future: { experimental_faster: DocusaurusConfig['future']['experimental_faster']; }; }; }): Promise { + const currentBundler = await getCurrentBundler({siteConfig}); + const isSWCLoader = siteConfig.future.experimental_faster.swcJsLoader; + + if (currentBundler.name === 'rspack') { + if (!isSWCLoader) { + throw new Error( + 'When using Rspack bundler, it is required to enable swcJsLoader too', + ); + } + return RspackJsLoaderFactory; + } const jsLoader = siteConfig.webpack?.jsLoader ?? 'babel'; if ( jsLoader instanceof Function && diff --git a/packages/docusaurus-bundler/src/minification.ts b/packages/docusaurus-bundler/src/minification.ts index 4cd001d7322d..b1d77c03a077 100644 --- a/packages/docusaurus-bundler/src/minification.ts +++ b/packages/docusaurus-bundler/src/minification.ts @@ -10,7 +10,9 @@ import CssMinimizerPlugin from 'css-minimizer-webpack-plugin'; import { importSwcJsMinimizerOptions, importLightningCssMinimizerOptions, + importBrowserslistQueries, } from './importFaster'; +import {getCurrentBundlerAsRspack} from './currentBundler'; import type {CustomOptions, CssNanoOptions} from 'css-minimizer-webpack-plugin'; import type {WebpackPluginInstance} from 'webpack'; import type {CurrentBundler, FasterConfig} from '@docusaurus/types'; @@ -48,6 +50,7 @@ async function getJsMinimizer({ return new TerserPlugin({ parallel: getTerserParallel(), + // See https://terser.org/docs/options/ terserOptions: { parse: { // We want uglify-js to parse ecma 8 code. However, we don't want it @@ -137,8 +140,30 @@ async function getWebpackMinimizers( async function getRspackMinimizers({ currentBundler, }: MinimizersConfig): Promise { - console.log('currentBundler', currentBundler.name); - throw new Error('TODO Rspack minimizers not implemented yet'); + const rspack = getCurrentBundlerAsRspack({currentBundler}); + const browserslistQueries = await importBrowserslistQueries(); + const swcJsMinimizerOptions = await importSwcJsMinimizerOptions(); + return [ + // See https://rspack.dev/plugins/rspack/swc-js-minimizer-rspack-plugin + // See https://swc.rs/docs/configuration/minification + new rspack.SwcJsMinimizerRspackPlugin({ + minimizerOptions: { + minify: true, + ...swcJsMinimizerOptions, + }, + }), + new rspack.LightningCssMinimizerRspackPlugin({ + minimizerOptions: { + ...(await importLightningCssMinimizerOptions()), + // Not sure why but Rspack takes browserslist queries directly + // While LightningCSS targets are normally not browserslist queries + // We have to override the option to avoid errors + // See https://rspack.dev/plugins/rspack/lightning-css-minimizer-rspack-plugin#minimizeroptions + // See https://lightningcss.dev/transpilation.html + targets: browserslistQueries, + }, + }), + ] as unknown as WebpackPluginInstance[]; } export async function getMinimizers( diff --git a/packages/docusaurus-faster/package.json b/packages/docusaurus-faster/package.json index 34e5b284c3c8..cacff72741e6 100644 --- a/packages/docusaurus-faster/package.json +++ b/packages/docusaurus-faster/package.json @@ -18,6 +18,7 @@ }, "license": "MIT", "dependencies": { + "@rspack/core": "^1.0.9", "@swc/core": "^1.7.28", "@swc/html": "^1.7.28", "browserslist": "^4.24.0", diff --git a/packages/docusaurus-faster/src/index.ts b/packages/docusaurus-faster/src/index.ts index 42ab8413b4cb..fd8435536b24 100644 --- a/packages/docusaurus-faster/src/index.ts +++ b/packages/docusaurus-faster/src/index.ts @@ -5,12 +5,15 @@ * LICENSE file in the root directory of this source tree. */ +import Rspack from '@rspack/core'; import * as lightningcss from 'lightningcss'; import browserslist from 'browserslist'; import {minify as swcHtmlMinifier} from '@swc/html'; import type {RuleSetRule} from 'webpack'; import type {JsMinifyOptions} from '@swc/core'; +export const rspack = Rspack; + export function getSwcHtmlMinifier(): typeof swcHtmlMinifier { return swcHtmlMinifier; } @@ -63,6 +66,15 @@ export function getSwcJsMinimizerOptions(): JsMinifyOptions { }; } +// We need this because of Rspack built-in LightningCSS integration +// See https://github.com/orgs/browserslist/discussions/846 +export function getBrowserslistQueries(): string[] { + const queries = browserslist.loadConfig({path: process.cwd()}) ?? [ + ...browserslist.defaults, + ]; + return queries; +} + // LightningCSS doesn't expose any type for css-minimizer-webpack-plugin setup // So we derive it ourselves // see https://lightningcss.dev/docs.html#with-webpack diff --git a/packages/docusaurus-theme-classic/package.json b/packages/docusaurus-theme-classic/package.json index ba3877ddc173..062e9a4d3055 100644 --- a/packages/docusaurus-theme-classic/package.json +++ b/packages/docusaurus-theme-classic/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@docusaurus/core": "3.5.2", + "@docusaurus/logger": "3.5.2", "@docusaurus/mdx-loader": "3.5.2", "@docusaurus/module-type-aliases": "3.5.2", "@docusaurus/plugin-content-blog": "3.5.2", diff --git a/packages/docusaurus/src/commands/build.ts b/packages/docusaurus/src/commands/build.ts index ec0f5f3ae73c..c886a0c8332d 100644 --- a/packages/docusaurus/src/commands/build.ts +++ b/packages/docusaurus/src/commands/build.ts @@ -174,32 +174,31 @@ async function buildLocale({ // We can build the 2 configs in parallel const [{clientConfig, clientManifestPath}, {serverConfig, serverBundlePath}] = - await PerfLogger.async('Creating bundler configs', () => - Promise.all([ - getBuildClientConfig({ - props, - cliOptions, - configureWebpackUtils, - }), - getBuildServerConfig({ - props, - configureWebpackUtils, - }), - ]), + await PerfLogger.async( + `Creating ${props.currentBundler.name} bundler configs`, + () => + Promise.all([ + getBuildClientConfig({ + props, + cliOptions, + configureWebpackUtils, + }), + getBuildServerConfig({ + props, + configureWebpackUtils, + }), + ]), ); // Run webpack to build JS bundle (client) and static html files (server). - await PerfLogger.async( - `Bundling with ${configureWebpackUtils.currentBundler.name}`, - () => { - return compile({ - configs: - // For hash router we don't do SSG and can skip the server bundle - router === 'hash' ? [clientConfig] : [clientConfig, serverConfig], - currentBundler: configureWebpackUtils.currentBundler, - }); - }, - ); + await PerfLogger.async(`Bundling with ${props.currentBundler.name}`, () => { + return compile({ + configs: + // For hash router we don't do SSG and can skip the server bundle + router === 'hash' ? [clientConfig] : [clientConfig, serverConfig], + currentBundler: configureWebpackUtils.currentBundler, + }); + }); const {collectedData} = await PerfLogger.async('SSG', () => executeSSG({ diff --git a/packages/docusaurus/src/commands/start/webpack.ts b/packages/docusaurus/src/commands/start/webpack.ts index 9c462cd7d974..c9675aeba256 100644 --- a/packages/docusaurus/src/commands/start/webpack.ts +++ b/packages/docusaurus/src/commands/start/webpack.ts @@ -7,7 +7,6 @@ import path from 'path'; import merge from 'webpack-merge'; -import webpack from 'webpack'; import {formatStatsErrorMessage, printStatsWarnings} from '@docusaurus/bundler'; import logger from '@docusaurus/logger'; import WebpackDevServer from 'webpack-dev-server'; @@ -168,7 +167,7 @@ export async function createWebpackDevServer({ configureWebpackUtils, }); - const compiler = webpack(config); + const compiler = props.currentBundler.instance(config); registerWebpackE2ETestHook(compiler); const defaultDevServerConfig = await createDevServerConfig({ diff --git a/packages/docusaurus/src/webpack/base.ts b/packages/docusaurus/src/webpack/base.ts index a9d4adc05c96..40445ae7f905 100644 --- a/packages/docusaurus/src/webpack/base.ts +++ b/packages/docusaurus/src/webpack/base.ts @@ -98,10 +98,14 @@ export async function createBaseConfig({ currentBundler: props.currentBundler, }); - return { - mode, - name, - cache: { + function getCache(): Configuration['cache'] { + if (props.currentBundler.name === 'rspack') { + // TODO Rspack only supports memory cache (as of Sept 2024) + // TODO re-enable file persistent cache one Rspack supports it + // See also https://rspack.dev/config/cache#cache + return undefined; + } + return { type: 'filesystem', // Can we share the same cache across locales? // Exploring that question at https://github.com/webpack/webpack/issues/13034 @@ -127,7 +131,13 @@ export async function createBaseConfig({ siteConfigPath, ], }, - }, + }; + } + + return { + mode, + name, + cache: getCache(), output: { pathinfo: false, path: outDir, @@ -145,7 +155,6 @@ export async function createBaseConfig({ }, devtool: isProd ? undefined : 'eval-cheap-module-source-map', resolve: { - unsafeCache: false, // Not enabled, does not seem to improve perf much extensions: ['.wasm', '.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'], symlinks: true, // See https://github.com/facebook/docusaurus/issues/3272 roots: [ diff --git a/packages/docusaurus/src/webpack/client.ts b/packages/docusaurus/src/webpack/client.ts index d09197d764b2..102cf53aa1dd 100644 --- a/packages/docusaurus/src/webpack/client.ts +++ b/packages/docusaurus/src/webpack/client.ts @@ -45,7 +45,7 @@ async function createBaseClientConfig({ }); const ProgressBarPlugin = await getProgressBarPlugin({ - currentBundler: configureWebpackUtils.currentBundler, + currentBundler: props.currentBundler, }); return merge(baseConfig, { diff --git a/packages/docusaurus/src/webpack/plugins/ChunkAssetPlugin.ts b/packages/docusaurus/src/webpack/plugins/ChunkAssetPlugin.ts index 0d216e36e17c..86c004913dfb 100644 --- a/packages/docusaurus/src/webpack/plugins/ChunkAssetPlugin.ts +++ b/packages/docusaurus/src/webpack/plugins/ChunkAssetPlugin.ts @@ -68,6 +68,8 @@ export default class ChunkAssetPlugin { } // Inspired by https://github.com/webpack/webpack/blob/v5.94.0/lib/runtime/CompatRuntimeModule.js +// See also https://rspack.dev/api/javascript-api/compilation#addruntimemodule +// See also https://rspack.dev/api/plugin-api/compilation-hooks#additionaltreeruntimerequirements class ChunkAssetRuntimeModule extends webpack.RuntimeModule { constructor() { super('ChunkAssetRuntimeModule', webpack.RuntimeModule.STAGE_ATTACH); diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index 7bdd69512687..228aafcbc813 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -24,6 +24,7 @@ import ConfigLocalized from './docusaurus.config.localized.json'; import PrismLight from './src/utils/prismLight'; import PrismDark from './src/utils/prismDark'; + import type {Config, DocusaurusConfig} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; diff --git a/website/package.json b/website/package.json index 9de98596395e..a631805ef5d3 100644 --- a/website/package.json +++ b/website/package.json @@ -84,7 +84,8 @@ "devDependencies": { "@docusaurus/eslint-plugin": "3.5.2", "@docusaurus/tsconfig": "3.5.2", - "@rsdoctor/webpack-plugin": "^0.3.11", + "@rsdoctor/webpack-plugin": "^0.4.6", + "@rsdoctor/rspack-plugin": "^0.4.6", "@types/color": "^3.0.4", "@types/jest": "^29.5.3", "cross-env": "^7.0.3", diff --git a/website/src/plugins/rsdoctor/RsdoctorPlugin.ts b/website/src/plugins/rsdoctor/RsdoctorPlugin.ts index 1d1e52c4c4be..edad0cc00942 100644 --- a/website/src/plugins/rsdoctor/RsdoctorPlugin.ts +++ b/website/src/plugins/rsdoctor/RsdoctorPlugin.ts @@ -7,13 +7,17 @@ import type {PluginConfig} from '@docusaurus/types'; -async function createRsdoctorBundlerPlugin() { +function createRsdoctorBundlerPlugin({isServer}: {isServer: boolean}) { // TODO Shitty workaround to bypass lib typechecking // package does not work will with skipLibCheck false + // // eslint-disable-next-line + // const {RsdoctorWebpackMultiplePlugin} = require('@rsdoctor/webpack-plugin'); // eslint-disable-next-line - const {RsdoctorWebpackMultiplePlugin} = require('@rsdoctor/webpack-plugin'); + const {RsdoctorRspackMultiplePlugin} = require('@rsdoctor/rspack-plugin'); - return new RsdoctorWebpackMultiplePlugin({ + // return new RsdoctorWebpackMultiplePlugin({ + return new RsdoctorRspackMultiplePlugin({ + name: isServer ? 'server' : 'client', disableTOSUpload: true, supports: { // https://rsdoctor.dev/config/options/options#generatetilegraph @@ -31,11 +35,13 @@ export default (async function RsdoctorPlugin() { if (!process.env.RSDOCTOR) { return null; } - const plugin = await createRsdoctorBundlerPlugin(); + const pluginClient = await createRsdoctorBundlerPlugin({isServer: false}); + const pluginServer = await createRsdoctorBundlerPlugin({isServer: true}); console.log('Rsdoctor plugin enabled'); return { name: 'rsdoctor-plugin', - configureWebpack: () => { + configureWebpack: (__config, isServer) => { + const plugin = isServer ? pluginServer : pluginClient; return { plugins: [plugin], }; diff --git a/yarn.lock b/yarn.lock index a14fba51a995..bf6eacb9ff77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2222,6 +2222,34 @@ dependencies: langium "3.0.0" +"@module-federation/runtime-tools@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@module-federation/runtime-tools/-/runtime-tools-0.5.1.tgz#1b1f93837159a6bf0c0ba78730d589a5a8f74aa3" + integrity sha512-nfBedkoZ3/SWyO0hnmaxuz0R0iGPSikHZOAZ0N/dVSQaIzlffUo35B5nlC2wgWIc0JdMZfkwkjZRrnuuDIJbzg== + dependencies: + "@module-federation/runtime" "0.5.1" + "@module-federation/webpack-bundler-runtime" "0.5.1" + +"@module-federation/runtime@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@module-federation/runtime/-/runtime-0.5.1.tgz#b548a75e2068952ff66ad717cbf73fc921edd5d7" + integrity sha512-xgiMUWwGLWDrvZc9JibuEbXIbhXg6z2oUkemogSvQ4LKvrl/n0kbqP1Blk669mXzyWbqtSp6PpvNdwaE1aN5xQ== + dependencies: + "@module-federation/sdk" "0.5.1" + +"@module-federation/sdk@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@module-federation/sdk/-/sdk-0.5.1.tgz#6c0a4053c23fa84db7aae7e4736496c541de7191" + integrity sha512-exvchtjNURJJkpqjQ3/opdbfeT2wPKvrbnGnyRkrwW5o3FH1LaST1tkiNviT6OXTexGaVc2DahbdniQHVtQ7pA== + +"@module-federation/webpack-bundler-runtime@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.5.1.tgz#ef626af0d57e3568c474d66d7d3797366e09cafd" + integrity sha512-mMhRFH0k2VjwHt3Jol9JkUsmI/4XlrAoBG3E0o7HoyoPYv1UFOWyqAflfANcUPgbYpvqmyLzDcO+3IT36LXnrA== + dependencies: + "@module-federation/runtime" "0.5.1" + "@module-federation/sdk" "0.5.1" + "@netlify/functions@^1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.6.0.tgz#c373423e6fef0e6f7422ac0345e8bbf2cb692366" @@ -2744,110 +2772,196 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rsdoctor/client@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/client/-/client-0.3.11.tgz#010fe58c0872f05e2d327f8c83053ab43fc40c23" - integrity sha512-mqbatlzgBMlz2C40fXCH7+oHFzDLzOD7yCvvLpolQ6AGwDADJK16fXVtvpBPLP3kzRgw+G4mDwy+UiAmAaCGaQ== - -"@rsdoctor/core@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/core/-/core-0.3.11.tgz#85730315425b9ececea6f64145ae04140c5bfdcd" - integrity sha512-+l9Kpjge+xpBKovc6aP7gtBPM6vGJRi475DOC6We5/AbnpI60Jt3wiJ0arEfgCZ7p8qNvTLsBYSY6CYJm4dDLw== - dependencies: - "@rsdoctor/graph" "0.3.11" - "@rsdoctor/sdk" "0.3.11" - "@rsdoctor/types" "0.3.11" - "@rsdoctor/utils" "0.3.11" - axios "^1.7.2" +"@rsdoctor/client@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/client/-/client-0.4.6.tgz#06bf2a13b5208bf1222154e1a9bf273ef8ce4517" + integrity sha512-ph10wCq7CRLssc83lMvk09HsInD5FpxboJxl6EF4M5vBp17DE7htbgVoq8ftGjDxF5Mzbk/MsOgjB4Ae52tpsw== + +"@rsdoctor/core@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/core/-/core-0.4.6.tgz#8563ee06c6a2968ded3c79cbbd41a4620996d52e" + integrity sha512-mYzKo5Mjl3Nhn8mOfJ1hVNP59fDL8zK/JrsHVfATQx9QsAgCFfbjMyRnOo8rTZuBjIS9LmDqLs31h7Dr3Lts6g== + dependencies: + "@rsdoctor/graph" "0.4.6" + "@rsdoctor/sdk" "0.4.6" + "@rsdoctor/types" "0.4.6" + "@rsdoctor/utils" "0.4.6" + axios "^1.7.7" enhanced-resolve "5.12.0" - filesize "^10.1.4" + filesize "^10.1.6" fs-extra "^11.1.1" - loader-utils "^2.0.4" lodash "^4.17.21" path-browserify "1.0.1" semver "^7.6.3" source-map "^0.7.4" webpack-bundle-analyzer "^4.10.2" - webpack-sources "^3.2.3" -"@rsdoctor/graph@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/graph/-/graph-0.3.11.tgz#b8d1a6452545e36b508285fc98b5776d074479f4" - integrity sha512-1WDLgwA0TWUS8NIPsV1eTbXH0UMNbLoYDLGSiaUVrwnl90cQsajaEUkwMcKu9VU3YVC4ayjwG6/RCrPlRqE4bw== +"@rsdoctor/graph@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/graph/-/graph-0.4.6.tgz#a9cee01b4b0a037816204ed6353c19b05f43e429" + integrity sha512-mn2cMKzyqqkc0WXN7Cr1OGNS7JhMAvlUsCyEV/pwJYiJ6OBqEE/g/xpZzA6QTT4nFqRNI2zneYsxgLNrFA4OvQ== dependencies: - "@rsdoctor/types" "0.3.11" - "@rsdoctor/utils" "0.3.11" + "@rsdoctor/types" "0.4.6" + "@rsdoctor/utils" "0.4.6" lodash "^4.17.21" socket.io "4.7.2" source-map "^0.7.4" -"@rsdoctor/sdk@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/sdk/-/sdk-0.3.11.tgz#58bb83b077ed167b5f29b6835ead9e78fbd718c3" - integrity sha512-ys9lTasYm9ecvj0oUbQuSpnULqImYq9QET1LUtoVBa5QIpQBbxOOegWnBmSsDlH7LlFQYhqLl5DR9FdJ7yTmcw== +"@rsdoctor/rspack-plugin@^0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/rspack-plugin/-/rspack-plugin-0.4.6.tgz#a25095f4928b8d6938da87833d083fc50c599200" + integrity sha512-Akq5ca0JoYSbm4aQfiGs3k56vNIeYBsaZu2x6uEql86PHyQT5zd1ygwCNEG8qZTZdiJMgVvWjstKGBKMQFu9cQ== + dependencies: + "@rsdoctor/core" "0.4.6" + "@rsdoctor/graph" "0.4.6" + "@rsdoctor/sdk" "0.4.6" + "@rsdoctor/types" "0.4.6" + "@rsdoctor/utils" "0.4.6" + lodash "^4.17.21" + +"@rsdoctor/sdk@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/sdk/-/sdk-0.4.6.tgz#98a810c61cda7be87dd9eb3d823a0c57399d1468" + integrity sha512-DmpuMCCB+Uuoi6mCHKVop3F/ap6XpTrcrFWt8McuqOOUI3SaFwXc9YYnXjzssgcXvxXgJjQ3kwnLsxGpADUt0A== dependencies: - "@rsdoctor/client" "0.3.11" - "@rsdoctor/graph" "0.3.11" - "@rsdoctor/types" "0.3.11" - "@rsdoctor/utils" "0.3.11" - body-parser "1.20.2" + "@rsdoctor/client" "0.4.6" + "@rsdoctor/graph" "0.4.6" + "@rsdoctor/types" "0.4.6" + "@rsdoctor/utils" "0.4.6" + "@types/fs-extra" "^11.0.4" + body-parser "1.20.3" cors "2.8.5" - dayjs "1.11.12" + dayjs "1.11.13" + fs-extra "^11.1.1" lodash "^4.17.21" open "^8.4.2" - serve-static "1.15.0" + serve-static "1.16.2" socket.io "4.7.2" source-map "^0.7.4" tapable "2.2.1" -"@rsdoctor/types@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/types/-/types-0.3.11.tgz#d2a37650476bbf7a9d63d951bc0499c8a9b72ac4" - integrity sha512-BH+P5RekIQy3VqFswsTkSB5yeZBYTbMNIlVq1chHhIQcF0Hpd9fuUjFG59NJgBILZoL2vknUhBfhmiv2WEOYig== +"@rsdoctor/types@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/types/-/types-0.4.6.tgz#f400b6a6da749eeeed7439945656cddcf66165a3" + integrity sha512-AoqUFliSgaHr73yFIooAggsMljkaUz+SGgVqG+jgHsVYll0BeIK4/MM0dlpWIGrN5/Hgl+OHNgPA8kt+4i5gfg== dependencies: "@types/connect" "3.4.38" "@types/estree" "1.0.5" "@types/tapable" "2.2.7" - "@types/webpack" "5.28.5" source-map "^0.7.4" -"@rsdoctor/utils@0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/utils/-/utils-0.3.11.tgz#650b2b8cf2c4d38a0f35d05f13625965c467d185" - integrity sha512-S1h/rG3wPFjHE9AffGjBGxPhP1j8X23KZKiyYnYHiOTCHxnYTyBqRJXUA0OvGewFY9zi7ucz800y+s0G1ujGyg== +"@rsdoctor/utils@0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/utils/-/utils-0.4.6.tgz#852b2cd0643defa46bdec0ddba091d6d3998b301" + integrity sha512-/5Oqdip/HCCX9cAqaEF/F5mXacm1/lgw8bq5IUTkomrUfK4QVShUc4UJCqM4VOuec0vKUhXEfirsg3PgOj1chw== dependencies: "@babel/code-frame" "7.24.7" - "@rsdoctor/types" "0.3.11" + "@rsdoctor/types" "0.4.6" "@types/estree" "1.0.5" acorn "^8.10.0" acorn-import-assertions "1.9.0" - acorn-walk "8.3.3" + acorn-walk "8.3.4" chalk "^4.1.2" connect "3.7.0" deep-eql "4.1.4" - envinfo "7.13.0" - filesize "^10.1.4" + envinfo "7.14.0" + filesize "^10.1.6" fs-extra "^11.1.1" get-port "5.1.1" json-stream-stringify "3.0.1" lines-and-columns "2.0.4" lodash "^4.17.21" - rslog "^1.2.2" + rslog "^1.2.3" strip-ansi "^6.0.1" -"@rsdoctor/webpack-plugin@^0.3.11": - version "0.3.11" - resolved "https://registry.yarnpkg.com/@rsdoctor/webpack-plugin/-/webpack-plugin-0.3.11.tgz#b5f43b7c3c8c365e379dbd5a51bfae284aee61b4" - integrity sha512-Gqr5GMOhHkJl9rtsbnCZV5mXuvsfpRtg735cRie9eT1E/dMpHerIGZFRGRIMPNkLAd/lfe0KwrGRZknWX9M/zQ== +"@rsdoctor/webpack-plugin@^0.4.6": + version "0.4.6" + resolved "https://registry.yarnpkg.com/@rsdoctor/webpack-plugin/-/webpack-plugin-0.4.6.tgz#3469d5997d9729ff6af4ad1d8f1a67a311015c3b" + integrity sha512-kSWugOcQVEWKs2CT+YovU5kQdrDYIHBuEP7eyWbrnxV8evIqRvS4Xu4TUiMP7QEcgljeFQwI/beeHLvgeEd49Q== dependencies: - "@rsdoctor/core" "0.3.11" - "@rsdoctor/graph" "0.3.11" - "@rsdoctor/sdk" "0.3.11" - "@rsdoctor/types" "0.3.11" - "@rsdoctor/utils" "0.3.11" + "@rsdoctor/core" "0.4.6" + "@rsdoctor/graph" "0.4.6" + "@rsdoctor/sdk" "0.4.6" + "@rsdoctor/types" "0.4.6" + "@rsdoctor/utils" "0.4.6" fs-extra "^11.1.1" lodash "^4.17.21" +"@rspack/binding-darwin-arm64@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.0.9.tgz#c4483a5fa7053d46e70e96144bd6a04444d5f6b5" + integrity sha512-9CROBttbjfFcw78KGQHKGO6Im5uBLo0he2M8I+N4IOcTOCIqgtHSy0rjbpKxdpGlugokFafW/T5GBke+LW+J6A== + +"@rspack/binding-darwin-x64@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.0.9.tgz#056dba555623f233505e27779a63dfa84072236c" + integrity sha512-o0WmrkVYxEO8LKeZvflERRv8z/VKBM/JyvhHOGSQF1kV5989Eob9Dqd3JbXiHpgXZb8syh0xq9J/C/KL2djClw== + +"@rspack/binding-linux-arm64-gnu@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.9.tgz#360dc04e71e97edb9a176c696e8604d46ce5273f" + integrity sha512-8lXgxL19HZSSzvlG7EsomACRYjdJKiSVsh5fMGO7nIF/elRsG0edMqtM/Vbm1srMN5o15/houvftb/kpK6giZg== + +"@rspack/binding-linux-arm64-musl@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.9.tgz#c8fc0520d1259cb403668ba9eb91479dad947b7d" + integrity sha512-nZus0toIKvHJcJCPGKPRnQYM1FXpagyVs53tr+AA/uxFA5mnHIrQ+RAP/PrdRT9+B6VOI+2Cs6nqwkrXtKg7qQ== + +"@rspack/binding-linux-x64-gnu@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.9.tgz#59c357fa2214f0df93f10d97e84118adbc52b3dc" + integrity sha512-3B54wWAhH4k3gJHYR4CUU8e82NWwZFIiBiCQzOOk0uh+rDkFtBt2xiOOZERQGLVvZmoz1K5JvNNPBBETVFKORg== + +"@rspack/binding-linux-x64-musl@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.9.tgz#4417eb5c7dfa08a625ff3f480e52da230c4081f7" + integrity sha512-EF8T9VGQmCu+snhd6meexUWB7qQSdyqmGEMZNGTt2Qa+NC0x2W2owg6QzyyyTP1tTlTkIC5fWKKtN/4xP7dttA== + +"@rspack/binding-win32-arm64-msvc@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.9.tgz#4ece956b3adc3ac3a4d22691eff7839ec82534f1" + integrity sha512-TTXsOrpBgxcArTlOywFrThYZ4lNFQaowKaNf59QJhWm02fYb7ZezEbVzbJXhsqr4flLOaZcCuLPVaxhGaqZHYA== + +"@rspack/binding-win32-ia32-msvc@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.9.tgz#1ff2a2a9c22b6b6d7a2d30db66b265b28478d404" + integrity sha512-/CJsa3D0+0/BkCTXpK8y7aYQRnrOlu8rboIx24LfCOK5wJB5WxvrvmXHT9XFUiUQt9zLYRQj6l5PdAj66Aoozg== + +"@rspack/binding-win32-x64-msvc@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.9.tgz#3f81a9878395a29b230a0a43f94cd40ae12f3b0e" + integrity sha512-euDrnVN2iFClu/7TpBErx99/4flhZCsvNcLBganbaCrM+NxWuCEa889Tmm6SosLoqvundk6pdsvPb9ubMqOEjg== + +"@rspack/binding@1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/binding/-/binding-1.0.9.tgz#8ace66b9534eab02fdded4a9782cb54c681de01d" + integrity sha512-QbhCVrnSMB1HyvRXhzGJK1J4AKZbckAUFlN1fTijH3oRbSYzUOK8bbL9DPt6BtIjkEWnfPv8rKqfl3Yo9OJbTA== + optionalDependencies: + "@rspack/binding-darwin-arm64" "1.0.9" + "@rspack/binding-darwin-x64" "1.0.9" + "@rspack/binding-linux-arm64-gnu" "1.0.9" + "@rspack/binding-linux-arm64-musl" "1.0.9" + "@rspack/binding-linux-x64-gnu" "1.0.9" + "@rspack/binding-linux-x64-musl" "1.0.9" + "@rspack/binding-win32-arm64-msvc" "1.0.9" + "@rspack/binding-win32-ia32-msvc" "1.0.9" + "@rspack/binding-win32-x64-msvc" "1.0.9" + +"@rspack/core@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@rspack/core/-/core-1.0.9.tgz#566ae593d525627b0351f4c7789893b7f2eae41b" + integrity sha512-NqvMrB9sHsKn+xTyhNx+dF10eBmntVIWkzSZq89WaOASnCGYx5QWg8ZvZNGEr24T8mrbATsOkB3q8xPlpvHv4A== + dependencies: + "@module-federation/runtime-tools" "0.5.1" + "@rspack/binding" "1.0.9" + "@rspack/lite-tapable" "1.0.1" + caniuse-lite "^1.0.30001616" + +"@rspack/lite-tapable@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz#d4540a5d28bd6177164bc0ba0bee4bdec0458591" + integrity sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w== + "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -3448,6 +3562,14 @@ dependencies: "@types/webpack" "^4" +"@types/fs-extra@^11.0.4": + version "11.0.4" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-11.0.4.tgz#e16a863bb8843fba8c5004362b5a73e17becca45" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== + dependencies: + "@types/jsonfile" "*" + "@types/node" "*" + "@types/fs-extra@^9.0.13": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -3583,6 +3705,13 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/jsonfile@*": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@types/jsonfile/-/jsonfile-6.1.4.tgz#614afec1a1164e7d670b4a7ad64df3e7beb7b702" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== + dependencies: + "@types/node" "*" + "@types/katex@^0.16.0": version "0.16.1" resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.1.tgz#e1faa29f131c241a7669e65bdf8ce470c9c4e3a9" @@ -3957,15 +4086,6 @@ "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack@5.28.5": - version "5.28.5" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.5.tgz#0e9d9a15efa09bbda2cef41356ca4ac2031ea9a2" - integrity sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw== - dependencies: - "@types/node" "*" - tapable "^2.2.0" - webpack "^5" - "@types/webpack@^4": version "4.41.33" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc" @@ -4322,10 +4442,10 @@ acorn-jsx@^5.0.0, acorn-jsx@^5.0.1, acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@8.3.3, acorn-walk@^8.0.0, acorn-walk@^8.0.2: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== +acorn-walk@8.3.4, acorn-walk@^8.0.0, acorn-walk@^8.0.2: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" @@ -4709,10 +4829,10 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0" integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g== -axios@^1, axios@^1.0.0, axios@^1.5.0, axios@^1.7.2: - version "1.7.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" - integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== +axios@^1, axios@^1.0.0, axios@^1.5.0, axios@^1.7.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -4926,24 +5046,6 @@ bluebird@~3.4.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== -body-parser@1.20.2: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - body-parser@1.20.3: version "1.20.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" @@ -5254,7 +5356,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001616, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001663: version "1.0.30001664" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz#d588d75c9682d3301956b05a3749652a80677df4" integrity sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g== @@ -6753,12 +6855,7 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -dayjs@1.11.12: - version "1.11.12" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.12.tgz#5245226cc7f40a15bf52e0b99fd2a04669ccac1d" - integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg== - -dayjs@^1.11.10: +dayjs@1.11.13, dayjs@^1.11.10: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== @@ -7294,10 +7391,10 @@ env-paths@^2.2.0, env-paths@^2.2.1: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@7.13.0, envinfo@^7.7.4: - version "7.13.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" - integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== +envinfo@7.14.0, envinfo@^7.7.4: + version "7.14.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.14.0.tgz#26dac5db54418f2a4c1159153a0b2ae980838aae" + integrity sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg== equals@^1.0.5: version "1.0.5" @@ -8076,10 +8173,10 @@ filelist@^1.0.4: dependencies: minimatch "^5.0.1" -filesize@^10.1.4: - version "10.1.4" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.4.tgz#184f256063a201f08b6e6b3cc47d21b60f5b8d89" - integrity sha512-ryBwPIIeErmxgPnm6cbESAzXjuEFubs+yKYLBZvg3CaiNcmkJChoOGcBSrZ6IwkMwPABwPpVXE6IlNdGJJrvEg== +filesize@^10.1.6: + version "10.1.6" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.1.6.tgz#31194da825ac58689c0bce3948f33ce83aabd361" + integrity sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w== filesize@^8.0.6: version "8.0.7" @@ -10961,7 +11058,7 @@ loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== -loader-utils@^2.0.0, loader-utils@^2.0.4: +loader-utils@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== @@ -14970,10 +15067,10 @@ roughjs@^4.6.6: points-on-curve "^0.2.0" points-on-path "^0.2.1" -rslog@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/rslog/-/rslog-1.2.2.tgz#057791013c1de27d1d8b0728a766688d11c13830" - integrity sha512-tZP8KjrI1nz6qOYCrFxAV7cfmfS2GV94jotU2zOmF/6ByO1zNvGR6/+0inylpjqyBjAdnnutTUW0m4th06bSTw== +rslog@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/rslog/-/rslog-1.2.3.tgz#9114d93056312fbe35c11b3fea3f2774a7debe56" + integrity sha512-antALPJaKBRPBU1X2q9t085K4htWDOOv/K1qhTUk7h0l1ePU/KbDqKJn19eKP0dk7PqMioeA0+fu3gyPXCsXxQ== rtl-detect@^1.0.4: version "1.0.4" @@ -15256,16 +15353,6 @@ serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - serve-static@1.16.0: version "1.16.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.0.tgz#2bf4ed49f8af311b519c46f272bf6ac3baf38a92" @@ -15276,6 +15363,16 @@ serve-static@1.16.0: parseurl "~1.3.3" send "0.18.0" +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + server-only@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e"