From 1dbcfa51a615c88b9f775f559e6b970eecc40cbf Mon Sep 17 00:00:00 2001 From: ClarkXia Date: Mon, 21 Aug 2023 16:26:00 +0800 Subject: [PATCH 1/4] chore: bump version of dependencies (#6472) * chore: bump version of dependencies * fix: update transform rule * fix: test case * chore: update core-js --- .changeset/late-trains-relate.md | 5 + examples/app-config/package.json | 2 +- examples/basic-project/package.json | 2 +- examples/cavans-project/package.json | 2 +- examples/csr-project/package.json | 2 +- examples/disable-data-loader/package.json | 2 +- examples/miniapp-project/package.json | 2 +- examples/rax-inline-style/package.json | 2 +- examples/rax-project/package.json | 2 +- examples/with-entry-type/package.json | 2 +- examples/with-nested-routes/package.json | 2 +- examples/with-pha/package.json | 2 +- packages/bundles/package.json | 12 +- packages/ice/package.json | 2 +- packages/jsx-runtime/build.config.mts | 4 - packages/jsx-runtime/package.json | 2 +- packages/miniapp-loader/package.json | 2 +- packages/plugin-cavans/package.json | 2 +- packages/plugin-i18n/package.json | 2 +- packages/plugin-miniapp/package.json | 2 +- packages/plugin-miniapp/src/miniapp/index.ts | 2 +- packages/plugin-miniapp/src/types.ts | 5 +- packages/plugin-pha/package.json | 2 +- packages/plugin-rax-compat/package.json | 4 +- packages/rax-compat/package.json | 2 +- packages/webpack-config/package.json | 2 +- .../webpack-config/src/getCompilerPlugins.ts | 5 +- packages/webpack-config/src/types.ts | 2 +- .../src/unPlugins/compilation.ts | 2 +- .../src/utils/transformImport.ts | 5 +- .../tests/fixtures/transformImport/swc-esm.js | 2 +- .../tests/fixtures/transformImport/swc.js | 2 +- .../tests/transformImport.test.ts | 2 +- packages/webpack-modify/package.json | 2 +- pnpm-lock.yaml | 733 +++++++----------- website/package.json | 2 +- 36 files changed, 343 insertions(+), 486 deletions(-) create mode 100644 .changeset/late-trains-relate.md diff --git a/.changeset/late-trains-relate.md b/.changeset/late-trains-relate.md new file mode 100644 index 0000000000..a0289e71cc --- /dev/null +++ b/.changeset/late-trains-relate.md @@ -0,0 +1,5 @@ +--- +'@ice/bundles': patch +--- + +fix: bump @swc/core, webpack, swc plugins, core-js version diff --git a/examples/app-config/package.json b/examples/app-config/package.json index 0d92b04c46..25618a5f2d 100644 --- a/examples/app-config/package.json +++ b/examples/app-config/package.json @@ -24,6 +24,6 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/basic-project/package.json b/examples/basic-project/package.json index 8219b64d40..0f0b6fb5cc 100644 --- a/examples/basic-project/package.json +++ b/examples/basic-project/package.json @@ -23,6 +23,6 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/cavans-project/package.json b/examples/cavans-project/package.json index bce995ca97..b4a62878ab 100644 --- a/examples/cavans-project/package.json +++ b/examples/cavans-project/package.json @@ -20,6 +20,6 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/csr-project/package.json b/examples/csr-project/package.json index c26c080d32..764e864b54 100644 --- a/examples/csr-project/package.json +++ b/examples/csr-project/package.json @@ -21,6 +21,6 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/disable-data-loader/package.json b/examples/disable-data-loader/package.json index 5652f79d43..fe046e8e25 100644 --- a/examples/disable-data-loader/package.json +++ b/examples/disable-data-loader/package.json @@ -24,6 +24,6 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/miniapp-project/package.json b/examples/miniapp-project/package.json index afd4c42d5f..5f54d3b35b 100644 --- a/examples/miniapp-project/package.json +++ b/examples/miniapp-project/package.json @@ -28,6 +28,6 @@ "@types/react-dom": "^18.0.2", "browserslist": "^4.19.3", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/rax-inline-style/package.json b/examples/rax-inline-style/package.json index 7a8ef5d2fd..1d584940d5 100644 --- a/examples/rax-inline-style/package.json +++ b/examples/rax-inline-style/package.json @@ -24,6 +24,6 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/rax-project/package.json b/examples/rax-project/package.json index d002401396..0214043bf1 100644 --- a/examples/rax-project/package.json +++ b/examples/rax-project/package.json @@ -26,6 +26,6 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/with-entry-type/package.json b/examples/with-entry-type/package.json index 37f3890b94..76c13d53af 100644 --- a/examples/with-entry-type/package.json +++ b/examples/with-entry-type/package.json @@ -19,6 +19,6 @@ "fs-extra": "^10.0.0", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/with-nested-routes/package.json b/examples/with-nested-routes/package.json index 16d91b8362..689dedfca9 100644 --- a/examples/with-nested-routes/package.json +++ b/examples/with-nested-routes/package.json @@ -19,6 +19,6 @@ "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "speed-measure-webpack-plugin": "^1.5.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/examples/with-pha/package.json b/examples/with-pha/package.json index 9597b0e41d..9f1bbf2a90 100644 --- a/examples/with-pha/package.json +++ b/examples/with-pha/package.json @@ -19,6 +19,6 @@ "devDependencies": { "@types/react": "^18.0.0", "@types/react-dom": "^18.0.2", - "webpack": "^5.86.0" + "webpack": "^5.88.0" } } diff --git a/packages/bundles/package.json b/packages/bundles/package.json index 515af3384c..ad267e4e9a 100644 --- a/packages/bundles/package.json +++ b/packages/bundles/package.json @@ -15,13 +15,13 @@ "main": "./esm/index.js", "type": "module", "dependencies": { - "@swc/core": "1.3.19", - "@ice/swc-plugin-remove-export": "0.1.2", - "@ice/swc-plugin-keep-export": "0.1.4-2", - "@ice/swc-plugin-node-transform": "0.1.0-8", + "@swc/core": "1.3.77", + "@ice/swc-plugin-remove-export": "0.2.0", + "@ice/swc-plugin-keep-export": "0.2.0", + "@ice/swc-plugin-node-transform": "0.2.0", "ansi-html-community": "^0.0.8", "html-entities": "^2.3.2", - "core-js": "3.29.1", + "core-js": "3.32.0", "caniuse-lite": "^1.0.30001431", "chokidar": "3.5.3", "esbuild": "^0.17.16", @@ -65,7 +65,7 @@ "terser-webpack-plugin": "5.3.5", "typescript": "^4.6.4", "trusted-cert": "1.1.3", - "webpack": "5.86.0", + "webpack": "5.88.2", "webpack-bundle-analyzer": "4.5.0", "webpack-dev-server": "4.15.0", "unplugin": "0.9.5", diff --git a/packages/ice/package.json b/packages/ice/package.json index a8f183ab4b..f78b9e009f 100644 --- a/packages/ice/package.json +++ b/packages/ice/package.json @@ -84,7 +84,7 @@ "react-router": "6.14.2", "sass": "^1.50.0", "unplugin": "^0.9.0", - "webpack": "^5.86.0", + "webpack": "^5.88.0", "webpack-dev-server": "^4.7.4" }, "peerDependencies": { diff --git a/packages/jsx-runtime/build.config.mts b/packages/jsx-runtime/build.config.mts index 7b0a2646cc..94b594e9bc 100644 --- a/packages/jsx-runtime/build.config.mts +++ b/packages/jsx-runtime/build.config.mts @@ -1,10 +1,6 @@ import { defineConfig } from '@ice/pkg'; export default defineConfig({ - bundle: { - filename: 'jsx-runtime', - formats: ['umd'], - }, transform: { formats: ['esm'], }, diff --git a/packages/jsx-runtime/package.json b/packages/jsx-runtime/package.json index aa6e4a466e..37aa2d065f 100644 --- a/packages/jsx-runtime/package.json +++ b/packages/jsx-runtime/package.json @@ -37,7 +37,7 @@ "style-unit": "^3.0.4" }, "devDependencies": { - "@ice/pkg": "1.1.2-0", + "@ice/pkg": "^1.5.0", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "react": "^18.0.0", diff --git a/packages/miniapp-loader/package.json b/packages/miniapp-loader/package.json index 78d7d90bb2..aabcec9c70 100644 --- a/packages/miniapp-loader/package.json +++ b/packages/miniapp-loader/package.json @@ -21,7 +21,7 @@ "@ice/bundles": "^0.1.10" }, "devDependencies": { - "webpack": "^5.86.0" + "webpack": "^5.88.0" }, "publishConfig": { "access": "public" diff --git a/packages/plugin-cavans/package.json b/packages/plugin-cavans/package.json index 2e5df2d4ec..b22bcb0883 100644 --- a/packages/plugin-cavans/package.json +++ b/packages/plugin-cavans/package.json @@ -32,7 +32,7 @@ }, "devDependencies": { "@ice/app": "^3.2.10", - "webpack": "^5.86.0", + "webpack": "^5.88.0", "@ice/runtime": "^1.2.5" }, "repository": { diff --git a/packages/plugin-i18n/package.json b/packages/plugin-i18n/package.json index af9a661f9c..d43c8163c6 100644 --- a/packages/plugin-i18n/package.json +++ b/packages/plugin-i18n/package.json @@ -46,7 +46,7 @@ "url-join": "^5.0.0" }, "devDependencies": { - "@ice/pkg": "^1.0.0", + "@ice/pkg": "^1.5.0", "@ice/app": "workspace:^", "@ice/runtime": "workspace:^", "@remix-run/router": "^1.6.1", diff --git a/packages/plugin-miniapp/package.json b/packages/plugin-miniapp/package.json index 76acef391c..f6be295cb5 100644 --- a/packages/plugin-miniapp/package.json +++ b/packages/plugin-miniapp/package.json @@ -49,7 +49,7 @@ "devDependencies": { "@ice/app": "^3.2.6", "@ice/runtime": "^1.2.4", - "webpack": "^5.86.0" + "webpack": "^5.88.0" }, "repository": { "type": "http", diff --git a/packages/plugin-miniapp/src/miniapp/index.ts b/packages/plugin-miniapp/src/miniapp/index.ts index cf1fe2e7b3..31150f480c 100644 --- a/packages/plugin-miniapp/src/miniapp/index.ts +++ b/packages/plugin-miniapp/src/miniapp/index.ts @@ -79,7 +79,7 @@ const getMiniappTask = ({ // FIXME: enable cache will cause error, disable it temporarily enableCache: false, plugins, - loaders: module.rules, + loaders: module?.rules, optimization: { sideEffects: true, usedExports: true, diff --git a/packages/plugin-miniapp/src/types.ts b/packages/plugin-miniapp/src/types.ts index c926aa5223..75e02d5f4b 100644 --- a/packages/plugin-miniapp/src/types.ts +++ b/packages/plugin-miniapp/src/types.ts @@ -44,4 +44,7 @@ export interface MiniappWebpackOptions { nativeConfig: Record; } -export type MiniappWebpackConfig = Pick; +export interface MiniappWebpackConfig { + plugins: Config['plugins']; + module: webpack.Configuration['module']; +} diff --git a/packages/plugin-pha/package.json b/packages/plugin-pha/package.json index ba34dbbe8d..2cbdddd683 100644 --- a/packages/plugin-pha/package.json +++ b/packages/plugin-pha/package.json @@ -28,7 +28,7 @@ "@ice/app": "^3.2.9", "build-scripts": "^2.1.1-0", "esbuild": "^0.17.16", - "webpack": "^5.86.0", + "webpack": "^5.88.0", "webpack-dev-server": "^4.9.2" }, "repository": { diff --git a/packages/plugin-rax-compat/package.json b/packages/plugin-rax-compat/package.json index 396b8838a2..cc945f8dad 100644 --- a/packages/plugin-rax-compat/package.json +++ b/packages/plugin-rax-compat/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@ice/app": "^3.2.8", "@types/lodash-es": "^4.17.7", - "webpack": "^5.86.0" + "webpack": "^5.88.0" }, "repository": { "type": "http", @@ -45,4 +45,4 @@ "publishConfig": { "access": "public" } -} \ No newline at end of file +} diff --git a/packages/rax-compat/package.json b/packages/rax-compat/package.json index 9515ef5cb6..850ed2662c 100644 --- a/packages/rax-compat/package.json +++ b/packages/rax-compat/package.json @@ -54,7 +54,7 @@ "@ice/appear": "^0.2.0" }, "devDependencies": { - "@ice/pkg": "1.1.2-0", + "@ice/pkg": "^1.5.0", "@types/rax": "^1.0.8", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", diff --git a/packages/webpack-config/package.json b/packages/webpack-config/package.json index f58c97b709..4cc7aaa4e4 100644 --- a/packages/webpack-config/package.json +++ b/packages/webpack-config/package.json @@ -26,7 +26,7 @@ "devDependencies": { "esbuild": "^0.17.16", "postcss": "^8.4.18", - "webpack": "^5.86.0", + "webpack": "^5.88.0", "webpack-dev-server": "^4.7.4" }, "scripts": { diff --git a/packages/webpack-config/src/getCompilerPlugins.ts b/packages/webpack-config/src/getCompilerPlugins.ts index 49b94ff60e..f8230d8fea 100644 --- a/packages/webpack-config/src/getCompilerPlugins.ts +++ b/packages/webpack-config/src/getCompilerPlugins.ts @@ -1,7 +1,6 @@ import type { BuildOptions } from 'esbuild'; import unplugin from '@ice/bundles/compiled/unplugin/index.js'; import type { UnpluginOptions } from '@ice/bundles/compiled/unplugin/index.js'; -import type { Configuration } from 'webpack'; import type { Config } from './types.js'; import compilationPlugin from './unPlugins/compilation.js'; import redirectImportPlugin from './unPlugins/redirectImport.js'; @@ -32,7 +31,7 @@ function transformInclude(id: string) { return !!id.match(/\.(js|jsx|ts|tsx|mjs|mts|css|less|scss)$/); } -function getCompilerPlugins(rootDir: string, config: Config, compiler: 'webpack', transformOptions: TransformOptions): Configuration['plugins']; +function getCompilerPlugins(rootDir: string, config: Config, compiler: 'webpack', transformOptions: TransformOptions): Config['plugins']; function getCompilerPlugins(rootDir: string, config: Config, compiler: 'esbuild', transformOptions: TransformOptions): BuildOptions['plugins']; function getCompilerPlugins(rootDir: string, config: Config, compiler: Compiler, transformOptions: TransformOptions) { const { @@ -91,7 +90,7 @@ function getCompilerPlugins(rootDir: string, config: Config, compiler: Compiler, // Plugins will be transformed as webpack loader, the execute order of webpack loader is reversed. ? compilerPlugins .reverse() - .map((plugin) => createUnplugin(() => getPluginTransform(plugin, transformOptions)).webpack()) + .map((plugin) => createUnplugin(() => getPluginTransform(plugin, transformOptions)).webpack()) as Config['plugins'] : compilerPlugins.map(plugin => getPluginTransform(plugin, transformOptions)); } diff --git a/packages/webpack-config/src/types.ts b/packages/webpack-config/src/types.ts index 148abb72ce..70dc995e34 100644 --- a/packages/webpack-config/src/types.ts +++ b/packages/webpack-config/src/types.ts @@ -96,7 +96,7 @@ export interface Config { publicPath?: string; - loaders?: (RuleSetRule | '...')[]; + loaders?: (undefined | null | false | '' | 0 | RuleSetRule | '...')[]; plugins?: ( | ((this: Compiler, compiler: Compiler) => void) diff --git a/packages/webpack-config/src/unPlugins/compilation.ts b/packages/webpack-config/src/unPlugins/compilation.ts index 20024e3710..43b9729705 100644 --- a/packages/webpack-config/src/unPlugins/compilation.ts +++ b/packages/webpack-config/src/unPlugins/compilation.ts @@ -226,7 +226,7 @@ function getJsxTransformOptions({ loose: false, ...(polyfill ? { mode: polyfill, - coreJs: '3.29', + coreJs: '3.32', } : {}), }; const supportBrowsers = getSupportedBrowsers(rootDir, mode === 'development'); diff --git a/packages/webpack-config/src/utils/transformImport.ts b/packages/webpack-config/src/utils/transformImport.ts index e05e4aeedc..fcd7219072 100644 --- a/packages/webpack-config/src/utils/transformImport.ts +++ b/packages/webpack-config/src/utils/transformImport.ts @@ -40,10 +40,11 @@ const transformImport = async (source: string, coreJsPath: string) => { if (!isESM) { // Replace @swc/helpers with cjs path. const importStr = source.substring(targetImport.ss, targetImport.se); - const matchImport = importStr.match(/import\s+([\w*\s{},]*)\s+from\s+['"](.*)['"]/); + // Import rule: import { _ as _type_of } from "@swc/helpers/_/_type_of"; + const matchImport = importStr.match(/import\s+{\s+([\w*\s{},]*)\s+}\s+from\s+['"](.*)['"]/); if (matchImport) { const [,identifier] = matchImport; - const replaceModule = `var ${identifier} = require('${targetImport.n.replace(/@swc\/helpers\/src\/(.*).mjs$/, + const replaceModule = `var ${identifier.split('as')[1].trim()} = require('${targetImport.n.replace(/@swc\/helpers\/_\/(.*)$/, (_, matched) => `@swc/helpers/cjs/${matched}.cjs`)}')._`; str().overwrite(targetImport.ss, targetImport.se, replaceModule); } diff --git a/packages/webpack-config/tests/fixtures/transformImport/swc-esm.js b/packages/webpack-config/tests/fixtures/transformImport/swc-esm.js index 9353e93c22..a13e6a2c0b 100644 --- a/packages/webpack-config/tests/fixtures/transformImport/swc-esm.js +++ b/packages/webpack-config/tests/fixtures/transformImport/swc-esm.js @@ -1 +1 @@ -import _object_spread from '@swc/helpers/src/_object_spread.mjs';import 'react'; \ No newline at end of file +import { _ as _object_spread } from '@swc/helpers/_/_object_spread';import 'react'; \ No newline at end of file diff --git a/packages/webpack-config/tests/fixtures/transformImport/swc.js b/packages/webpack-config/tests/fixtures/transformImport/swc.js index ecfb88dd92..4199ead237 100644 --- a/packages/webpack-config/tests/fixtures/transformImport/swc.js +++ b/packages/webpack-config/tests/fixtures/transformImport/swc.js @@ -1 +1 @@ -import _object_spread from '@swc/helpers/src/_object_spread.mjs';module.exports = {}; \ No newline at end of file +import { _ as _object_spread } from '@swc/helpers/_/_object_spread';module.exports = {}; \ No newline at end of file diff --git a/packages/webpack-config/tests/transformImport.test.ts b/packages/webpack-config/tests/transformImport.test.ts index 69cb73027e..1ebdab5470 100644 --- a/packages/webpack-config/tests/transformImport.test.ts +++ b/packages/webpack-config/tests/transformImport.test.ts @@ -40,7 +40,7 @@ describe('transform core js path', () => { it('@swc/helpers esm', async () => { const orignalCode = fs.readFileSync(path.join(__dirname, './fixtures/transformImport/swc-esm.js'), 'utf-8'); expect(await transformImport(orignalCode, coreJsPath)) - .toBe('import _object_spread from \'@swc/helpers/src/_object_spread.mjs\';import \'react\';'); + .toBe('import { _ as _object_spread } from \'@swc/helpers/_/_object_spread\';import \'react\';'); }); it('@swc/helpers cjs', async () => { const orignalCode = fs.readFileSync(path.join(__dirname, './fixtures/transformImport/swc.js'), 'utf-8'); diff --git a/packages/webpack-modify/package.json b/packages/webpack-modify/package.json index 194f99871d..c65c792671 100644 --- a/packages/webpack-modify/package.json +++ b/packages/webpack-modify/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@ice/webpack-config": "^1.0.0", - "webpack": "^5.86.0" + "webpack": "^5.88.0" }, "scripts": { "watch": "tsc -w", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62fec97b5b..669d30a72b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,7 +91,7 @@ importers: react: ^18.2.0 react-dom: ^18.2.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-auth': link:../../packages/plugin-auth @@ -104,8 +104,8 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/basic-project: specifiers: @@ -119,7 +119,7 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-rax-compat': link:../../packages/plugin-rax-compat @@ -131,8 +131,8 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/cavans-project: specifiers: @@ -144,7 +144,7 @@ importers: '@types/react-dom': ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/cache-canvas': link:../../packages/cache-canvas @@ -155,7 +155,7 @@ importers: devDependencies: '@types/react': 18.0.34 '@types/react-dom': 18.0.11 - webpack: 5.86.0 + webpack: 5.88.2 examples/csr-project: specifiers: @@ -168,7 +168,7 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-auth': link:../../packages/plugin-auth @@ -179,8 +179,8 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/disable-data-loader: specifiers: @@ -195,7 +195,7 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-auth': link:../../packages/plugin-auth @@ -208,8 +208,8 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/hash-router: specifiers: @@ -299,7 +299,7 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/miniapp-html-styles': link:../../packages/miniapp-html-styles @@ -313,8 +313,8 @@ importers: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 browserslist: 4.21.5 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/multi-target: specifiers: @@ -349,7 +349,7 @@ importers: rax-view: ^2.3.0 react: ^18.0.0 react-dom: ^18.0.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-rax-compat': link:../../packages/plugin-rax-compat @@ -364,7 +364,7 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - webpack: 5.86.0 + webpack: 5.88.2 examples/rax-project: specifiers: @@ -382,7 +382,7 @@ importers: rax-view: ^2.3.0 react: ^18.0.0 react-dom: ^18.0.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/appear': link:../../packages/appear @@ -399,7 +399,7 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - webpack: 5.86.0 + webpack: 5.88.2 examples/routes-config: specifiers: @@ -583,7 +583,7 @@ importers: fs-extra: ^10.0.0 react: ^18.0.0 react-dom: ^18.0.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/runtime': link:../../packages/runtime @@ -593,7 +593,7 @@ importers: '@types/react': 18.0.34 '@types/react-dom': 18.0.11 fs-extra: 10.1.0 - webpack: 5.86.0 + webpack: 5.88.2 examples/with-fusion: specifiers: @@ -716,7 +716,7 @@ importers: react: ^18.0.0 react-dom: ^18.0.0 speed-measure-webpack-plugin: ^1.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/runtime': link:../../packages/runtime @@ -725,8 +725,8 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - speed-measure-webpack-plugin: 1.5.0_webpack@5.86.0 - webpack: 5.86.0 + speed-measure-webpack-plugin: 1.5.0_webpack@5.88.2 + webpack: 5.88.2 examples/with-pha: specifiers: @@ -737,7 +737,7 @@ importers: '@types/react-dom': ^18.0.2 react: ^18.0.0 react-dom: ^18.0.0 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/app': link:../../packages/ice '@ice/plugin-pha': link:../../packages/plugin-pha @@ -747,7 +747,7 @@ importers: devDependencies: '@types/react': 18.0.28 '@types/react-dom': 18.0.11 - webpack: 5.86.0 + webpack: 5.88.2 examples/with-request: specifiers: @@ -898,11 +898,11 @@ importers: packages/bundles: specifiers: - '@ice/swc-plugin-keep-export': 0.1.4-2 - '@ice/swc-plugin-node-transform': 0.1.0-8 - '@ice/swc-plugin-remove-export': 0.1.2 + '@ice/swc-plugin-keep-export': 0.2.0 + '@ice/swc-plugin-node-transform': 0.2.0 + '@ice/swc-plugin-remove-export': 0.2.0 '@pmmmwh/react-refresh-webpack-plugin': 0.5.10 - '@swc/core': 1.3.19 + '@swc/core': 1.3.77 '@types/less': ^3.0.3 '@types/lodash': ^4.14.181 '@types/webpack-bundle-analyzer': ^4.4.1 @@ -916,7 +916,7 @@ importers: compression: ^1.7.4 connect-history-api-fallback: ^1.6.0 copy-webpack-plugin: 10.2.4 - core-js: 3.29.1 + core-js: 3.32.0 core-js-pure: ^3.8.1 css-loader: 6.7.1 css-minimizer-webpack-plugin: 3.4.1 @@ -971,20 +971,20 @@ importers: trusted-cert: 1.1.3 typescript: ^4.6.4 unplugin: 0.9.5 - webpack: 5.86.0 + webpack: 5.88.2 webpack-bundle-analyzer: 4.5.0 webpack-dev-middleware: ^5.3.1 webpack-dev-server: 4.15.0 ws: ^8.4.2 dependencies: - '@ice/swc-plugin-keep-export': 0.1.4-2 - '@ice/swc-plugin-node-transform': 0.1.0-8 - '@ice/swc-plugin-remove-export': 0.1.2 - '@swc/core': 1.3.19 + '@ice/swc-plugin-keep-export': 0.2.0 + '@ice/swc-plugin-node-transform': 0.2.0 + '@ice/swc-plugin-remove-export': 0.2.0 + '@swc/core': 1.3.77 ansi-html-community: 0.0.8 caniuse-lite: 1.0.30001462 chokidar: 3.5.3 - core-js: 3.29.1 + core-js: 3.32.0 core-js-pure: 3.29.0 error-stack-parser: 2.1.4 esbuild: 0.17.16 @@ -996,49 +996,49 @@ importers: react-refresh: 0.14.0 sass: 1.50.0 devDependencies: - '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_xl75jf2rcivcbfvir2zwdrg55y + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_ynqbgb5bmgbvx2am6mt2h3lxsq '@types/less': 3.0.3 '@types/lodash': 4.14.191 - '@types/webpack-bundle-analyzer': 4.6.0_w34or7orauknzckzea4nxxqrru + '@types/webpack-bundle-analyzer': 4.6.0_4xkclhduw6cmnopkeqfp6begte bonjour-service: 1.1.0 cacache: 17.0.4 colorette: 2.0.19 common-path-prefix: 3.0.0 compression: 1.7.4 connect-history-api-fallback: 1.6.0 - copy-webpack-plugin: 10.2.4_webpack@5.86.0 - css-loader: 6.7.1_webpack@5.86.0 - css-minimizer-webpack-plugin: 3.4.1_3d2sldnof75occqqtyfzznb47i + copy-webpack-plugin: 10.2.4_webpack@5.88.2 + css-loader: 6.7.1_webpack@5.88.2 + css-minimizer-webpack-plugin: 3.4.1_4yjf5voakpkrj4qbnm3gtqjbli cssnano: 5.1.15_postcss@8.4.12 default-gateway: 6.0.3 es-module-lexer: 0.10.5 esbuild-register: 3.4.1_esbuild@0.17.16 eslint: 8.35.0 - eslint-webpack-plugin: 3.1.1_q3hmn467a5h5crilb2qohj5d34 + eslint-webpack-plugin: 3.1.1_rjw5ojvju3cwto23hvu2jcx2wi express: 4.18.2 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 7.2.6_y75l3d5in5mgvug53qfq62ncxu + fork-ts-checker-webpack-plugin: 7.2.6_rggdtlzfqxxwxudp3onsqdyocm fs-extra: 10.1.0 globby: 13.1.2 graceful-fs: 4.2.10 http-proxy-middleware: 2.0.6 ipaddr.js: 2.0.1 - less-loader: 10.2.0_less@4.1.2+webpack@5.86.0 + less-loader: 10.2.0_less@4.1.2+webpack@5.88.2 loader-utils: 2.0.4 lodash: 4.17.21 magic-string: 0.27.0 - mini-css-extract-plugin: 2.6.1_webpack@5.86.0 + mini-css-extract-plugin: 2.6.1_webpack@5.88.2 open: 8.4.2 ora: 5.4.1 p-retry: 4.6.2 portfinder: 1.0.32 - postcss-loader: 6.2.1_wqk23ab45kwprbaswwurijjkaa + postcss-loader: 6.2.1_qchtspfgma7jloh7olgj4ntig4 postcss-modules: 4.3.1_postcss@8.4.12 postcss-nested: 5.0.6_postcss@8.4.12 postcss-plugin-rpx2vw: 1.0.0_postcss@8.4.12 postcss-preset-env: 7.4.3_postcss@8.4.12 rimraf: 3.0.2 - sass-loader: 12.6.0_sass@1.50.0+webpack@5.86.0 + sass-loader: 12.6.0_sass@1.50.0+webpack@5.88.2 schema-utils: 4.0.0 selfsigned: 2.1.1 serve-index: 1.9.1 @@ -1047,14 +1047,14 @@ importers: spdy: 4.0.2 tapable: 2.2.1 terser: 5.14.2 - terser-webpack-plugin: 5.3.5_kn3rentq3i47ljvblyy4hgdaoi + terser-webpack-plugin: 5.3.5_axvalpe33xu7j6desnybwj35vm trusted-cert: 1.1.3 typescript: 4.9.5 - unplugin: 0.9.5_3d2sldnof75occqqtyfzznb47i - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + unplugin: 0.9.5_4yjf5voakpkrj4qbnm3gtqjbli + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte webpack-bundle-analyzer: 4.5.0 - webpack-dev-middleware: 5.3.3_webpack@5.86.0 - webpack-dev-server: 4.15.0_webpack@5.86.0 + webpack-dev-middleware: 5.3.3_webpack@5.88.2 + webpack-dev-server: 4.15.0_webpack@5.88.2 ws: 8.12.1 packages/cache-canvas: @@ -1133,7 +1133,7 @@ importers: source-map-support: ^0.5.21 temp: ^0.9.4 unplugin: ^0.9.0 - webpack: ^5.86.0 + webpack: ^5.88.0 webpack-dev-server: ^4.7.4 yargs-parser: ^21.1.1 dependencies: @@ -1182,13 +1182,13 @@ importers: react: 18.2.0 react-router: 6.14.2_react@18.2.0 sass: 1.50.0 - unplugin: 0.9.5_3d2sldnof75occqqtyfzznb47i - webpack: 5.86.0_esbuild@0.17.16 - webpack-dev-server: 4.11.1_webpack@5.86.0 + unplugin: 0.9.5_4yjf5voakpkrj4qbnm3gtqjbli + webpack: 5.88.2_esbuild@0.17.16 + webpack-dev-server: 4.11.1_webpack@5.88.2 packages/jsx-runtime: specifiers: - '@ice/pkg': 1.1.2-0 + '@ice/pkg': ^1.5.0 '@types/react': ^18.0.0 '@types/react-dom': ^18.0.0 react: ^18.0.0 @@ -1197,7 +1197,7 @@ importers: dependencies: style-unit: 3.0.5 devDependencies: - '@ice/pkg': 1.1.2-0 + '@ice/pkg': 1.5.5 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 react: 18.2.0 @@ -1209,11 +1209,11 @@ importers: packages/miniapp-loader: specifiers: '@ice/bundles': ^0.1.10 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/bundles': link:../bundles devDependencies: - webpack: 5.86.0 + webpack: 5.88.2 packages/miniapp-react-dom: specifiers: @@ -1277,13 +1277,13 @@ importers: '@ice/app': ^3.2.10 '@ice/cache-canvas': workspace:* '@ice/runtime': ^1.2.5 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/cache-canvas': link:../cache-canvas devDependencies: '@ice/app': link:../ice '@ice/runtime': link:../runtime - webpack: 5.86.0 + webpack: 5.88.2 packages/plugin-css-assets-local: specifiers: @@ -1309,7 +1309,7 @@ importers: specifiers: '@ice/app': workspace:^ '@ice/jsx-runtime': ^0.2.0 - '@ice/pkg': ^1.0.0 + '@ice/pkg': ^1.5.0 '@ice/runtime': workspace:^ '@remix-run/router': ^1.6.1 '@swc/helpers': ^0.4.14 @@ -1394,7 +1394,7 @@ importers: html-minifier: ^4.0.0 regenerator-runtime: ^0.11.0 sax: ^1.2.4 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@ice/bundles': link:../bundles '@ice/miniapp-loader': link:../miniapp-loader @@ -1411,7 +1411,7 @@ importers: devDependencies: '@ice/app': link:../ice '@ice/runtime': link:../runtime - webpack: 5.86.0 + webpack: 5.88.2 packages/plugin-moment-locales: specifiers: @@ -1430,7 +1430,7 @@ importers: htmlparser2: ^8.0.1 humps: ^2.0.1 lodash.clonedeep: ^4.5.0 - webpack: ^5.86.0 + webpack: ^5.88.0 webpack-dev-server: ^4.9.2 dependencies: '@remix-run/router': 1.6.1 @@ -1443,8 +1443,8 @@ importers: '@ice/app': link:../ice build-scripts: 2.1.1-0 esbuild: 0.17.16 - webpack: 5.86.0_esbuild@0.17.16 - webpack-dev-server: 4.11.1_webpack@5.86.0 + webpack: 5.88.2_esbuild@0.17.16 + webpack-dev-server: 4.11.1_webpack@5.88.2 packages/plugin-rax-compat: specifiers: @@ -1460,7 +1460,7 @@ importers: rax-compat: ^0.2.1 style-unit: ^3.0.5 stylesheet-loader: ^0.9.1 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@babel/core': 7.21.0 '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.21.0 @@ -1475,7 +1475,7 @@ importers: devDependencies: '@ice/app': link:../ice '@types/lodash-es': 4.17.7 - webpack: 5.86.0 + webpack: 5.88.2 packages/plugin-request: specifiers: @@ -1526,7 +1526,7 @@ importers: packages/rax-compat: specifiers: '@ice/appear': ^0.2.0 - '@ice/pkg': 1.1.2-0 + '@ice/pkg': ^1.5.0 '@swc/helpers': ^0.4.3 '@types/rax': ^1.0.8 '@types/react': ^18.0.0 @@ -1541,7 +1541,7 @@ importers: create-react-class: 15.7.0 style-unit: 3.0.5 devDependencies: - '@ice/pkg': 1.1.2-0 + '@ice/pkg': 1.5.5 '@types/rax': 1.0.10 '@types/react': 18.0.28 '@types/react-dom': 18.0.11 @@ -1615,7 +1615,7 @@ importers: fast-glob: ^3.2.11 postcss: ^8.4.18 process: ^0.11.10 - webpack: ^5.86.0 + webpack: ^5.88.0 webpack-dev-server: ^4.7.4 dependencies: '@ice/bundles': link:../bundles @@ -1627,19 +1627,19 @@ importers: devDependencies: esbuild: 0.17.16 postcss: 8.4.21 - webpack: 5.86.0_esbuild@0.17.16 - webpack-dev-server: 4.11.1_webpack@5.86.0 + webpack: 5.88.2_esbuild@0.17.16 + webpack-dev-server: 4.11.1_webpack@5.88.2 packages/webpack-modify: specifiers: '@ice/webpack-config': ^1.0.0 consola: ^2.15.3 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: consola: 2.15.3 devDependencies: '@ice/webpack-config': link:../webpack-config - webpack: 5.86.0 + webpack: 5.88.2 website: specifiers: @@ -1663,7 +1663,7 @@ importers: react-dom: ^17.0.2 typescript: ^4.9.5 url-loader: ^4.1.1 - webpack: ^5.86.0 + webpack: ^5.88.0 dependencies: '@docusaurus/core': 2.3.1_qy6u2m3twle75rldwm5f2xep3a '@docusaurus/preset-classic': 2.3.1_2jztdqikgvncsnfpdl66ylawqq @@ -1672,11 +1672,11 @@ importers: '@mdx-js/react': 1.6.22_react@17.0.2 '@svgr/webpack': 5.5.0 clsx: 1.2.1 - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 prism-react-renderer: 1.3.5_react@17.0.2 react: 17.0.2 react-dom: 17.0.2_react@17.0.2 - url-loader: 4.1.1_3isns6qywnihuyc5a5zesgru7e + url-loader: 4.1.1_pbpjnf4ifq5edsddxe3xbm7czm devDependencies: '@algolia/client-search': 4.15.0 '@docusaurus/theme-common': 2.3.1_qy6u2m3twle75rldwm5f2xep3a @@ -1686,7 +1686,7 @@ importers: glob: 7.2.3 gray-matter: 4.0.3 typescript: 4.9.5 - webpack: 5.86.0 + webpack: 5.88.2 packages: @@ -3939,7 +3939,7 @@ packages: '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 autoprefixer: 10.4.13_postcss@8.4.21 - babel-loader: 8.3.0_faqmw3hzxbd2amkwvsk4dmxive + babel-loader: 8.3.0_bckyc4ywv6ed2sy2snlzby5mbi babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 @@ -3948,33 +3948,33 @@ packages: cli-table3: 0.6.3 combine-promises: 1.1.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0_webpack@5.86.0 - core-js: 3.29.1 - css-loader: 6.7.3_webpack@5.86.0 - css-minimizer-webpack-plugin: 4.2.2_pkowl6ba77tblhp3ka4lysrqwi + copy-webpack-plugin: 11.0.0_webpack@5.88.2 + core-js: 3.32.0 + css-loader: 6.7.3_webpack@5.88.2 + css-minimizer-webpack-plugin: 4.2.2_ltzhhs6ml74uoexipkdt2pgtmi cssnano: 5.1.15_postcss@8.4.21 del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 eta: 2.0.1 - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 fs-extra: 10.1.0 html-minifier-terser: 6.1.0 html-tags: 3.2.0 - html-webpack-plugin: 5.5.0_webpack@5.86.0 + html-webpack-plugin: 5.5.0_webpack@5.88.2 import-fresh: 3.3.0 leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.7.2_webpack@5.86.0 + mini-css-extract-plugin: 2.7.2_webpack@5.88.2 postcss: 8.4.21 - postcss-loader: 7.0.2_zml2csqpzana4ilfc2mv2obllm + postcss-loader: 7.0.2_spab46aedetttbaa4fvapwm3fq prompts: 2.4.2 react: 17.0.2 - react-dev-utils: 12.0.1_y75l3d5in5mgvug53qfq62ncxu + react-dev-utils: 12.0.1_rggdtlzfqxxwxudp3onsqdyocm react-dom: 17.0.2_react@17.0.2 react-helmet-async: 1.3.0_sfoxds7t5ydpegc3knd667wn6m react-loadable: /@docusaurus/react-loadable/5.5.2_react@17.0.2 - react-loadable-ssr-addon-v5-slorber: 1.0.1_o2jg6bgy63srrfuw3are3pafxm + react-loadable-ssr-addon-v5-slorber: 1.0.1_hshiizlgc3g7hkow5ydbqook5i react-router: 5.3.4_react@17.0.2 react-router-config: 5.1.1_2dl5roaqnyqqppnjni7uetnb3a react-router-dom: 5.3.4_react@17.0.2 @@ -3982,16 +3982,16 @@ packages: semver: 7.4.0 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.6_webpack@5.86.0 + terser-webpack-plugin: 5.3.6_webpack@5.88.2 tslib: 2.5.0 update-notifier: 5.1.0 - url-loader: 4.1.1_3isns6qywnihuyc5a5zesgru7e + url-loader: 4.1.1_pbpjnf4ifq5edsddxe3xbm7czm wait-on: 6.0.1_debug@4.3.4 - webpack: 5.86.0 + webpack: 5.88.2 webpack-bundle-analyzer: 4.8.0 - webpack-dev-server: 4.15.0_debug@4.3.4+webpack@5.86.0 + webpack-dev-server: 4.15.0_debug@4.3.4+webpack@5.88.2 webpack-merge: 5.8.0 - webpackbar: 5.0.2_webpack@5.86.0 + webpackbar: 5.0.2_webpack@5.88.2 transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -4039,7 +4039,7 @@ packages: '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 autoprefixer: 10.4.13_postcss@8.4.21 - babel-loader: 8.3.0_faqmw3hzxbd2amkwvsk4dmxive + babel-loader: 8.3.0_bckyc4ywv6ed2sy2snlzby5mbi babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 @@ -4048,33 +4048,33 @@ packages: cli-table3: 0.6.3 combine-promises: 1.1.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0_webpack@5.86.0 - core-js: 3.29.1 - css-loader: 6.7.3_webpack@5.86.0 - css-minimizer-webpack-plugin: 4.2.2_pkowl6ba77tblhp3ka4lysrqwi + copy-webpack-plugin: 11.0.0_webpack@5.88.2 + core-js: 3.32.0 + css-loader: 6.7.3_webpack@5.88.2 + css-minimizer-webpack-plugin: 4.2.2_ltzhhs6ml74uoexipkdt2pgtmi cssnano: 5.1.15_postcss@8.4.21 del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 eta: 2.0.1 - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 fs-extra: 10.1.0 html-minifier-terser: 6.1.0 html-tags: 3.2.0 - html-webpack-plugin: 5.5.0_webpack@5.86.0 + html-webpack-plugin: 5.5.0_webpack@5.88.2 import-fresh: 3.3.0 leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.7.2_webpack@5.86.0 + mini-css-extract-plugin: 2.7.2_webpack@5.88.2 postcss: 8.4.21 - postcss-loader: 7.0.2_zml2csqpzana4ilfc2mv2obllm + postcss-loader: 7.0.2_spab46aedetttbaa4fvapwm3fq prompts: 2.4.2 react: 17.0.2 - react-dev-utils: 12.0.1_y75l3d5in5mgvug53qfq62ncxu + react-dev-utils: 12.0.1_rggdtlzfqxxwxudp3onsqdyocm react-dom: 17.0.2_react@17.0.2 react-helmet-async: 1.3.0_sfoxds7t5ydpegc3knd667wn6m react-loadable: /@docusaurus/react-loadable/5.5.2_react@17.0.2 - react-loadable-ssr-addon-v5-slorber: 1.0.1_o2jg6bgy63srrfuw3are3pafxm + react-loadable-ssr-addon-v5-slorber: 1.0.1_hshiizlgc3g7hkow5ydbqook5i react-router: 5.3.4_react@17.0.2 react-router-config: 5.1.1_2dl5roaqnyqqppnjni7uetnb3a react-router-dom: 5.3.4_react@17.0.2 @@ -4082,16 +4082,16 @@ packages: semver: 7.4.0 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.6_webpack@5.86.0 + terser-webpack-plugin: 5.3.6_webpack@5.88.2 tslib: 2.5.0 update-notifier: 5.1.0 - url-loader: 4.1.1_3isns6qywnihuyc5a5zesgru7e + url-loader: 4.1.1_pbpjnf4ifq5edsddxe3xbm7czm wait-on: 6.0.1 - webpack: 5.86.0 + webpack: 5.88.2 webpack-bundle-analyzer: 4.8.0 - webpack-dev-server: 4.15.0_webpack@5.86.0 + webpack-dev-server: 4.15.0_webpack@5.88.2 webpack-merge: 5.8.0 - webpackbar: 5.0.2_webpack@5.86.0 + webpackbar: 5.0.2_webpack@5.88.2 transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -4139,7 +4139,7 @@ packages: '@docusaurus/utils': 2.3.1_@docusaurus+types@2.3.1 '@mdx-js/mdx': 1.6.22 escape-html: 1.0.3 - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 fs-extra: 10.1.0 image-size: 1.0.2 mdast-util-to-string: 2.0.0 @@ -4150,8 +4150,8 @@ packages: tslib: 2.5.0 unified: 9.2.2 unist-util-visit: 2.0.3 - url-loader: 4.1.1_3isns6qywnihuyc5a5zesgru7e - webpack: 5.86.0 + url-loader: 4.1.1_pbpjnf4ifq5edsddxe3xbm7czm + webpack: 5.88.2 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -4206,7 +4206,7 @@ packages: tslib: 2.5.0 unist-util-visit: 2.0.3 utility-types: 3.10.0 - webpack: 5.86.0 + webpack: 5.88.2 transitivePeerDependencies: - '@parcel/css' - '@swc/core' @@ -4248,7 +4248,7 @@ packages: react-dom: 17.0.2_react@17.0.2 tslib: 2.5.0 utility-types: 3.10.0 - webpack: 5.86.0 + webpack: 5.88.2 transitivePeerDependencies: - '@parcel/css' - '@swc/core' @@ -4291,7 +4291,7 @@ packages: react-dom: 17.0.2_react@17.0.2 tslib: 2.5.0 utility-types: 3.10.0 - webpack: 5.86.0 + webpack: 5.88.2 transitivePeerDependencies: - '@parcel/css' - '@swc/core' @@ -4325,7 +4325,7 @@ packages: react: 17.0.2 react-dom: 17.0.2_react@17.0.2 tslib: 2.5.0 - webpack: 5.86.0 + webpack: 5.88.2 transitivePeerDependencies: - '@parcel/css' - '@swc/core' @@ -4721,7 +4721,7 @@ packages: react-dom: 17.0.2_react@17.0.2 react-helmet-async: 1.3.0_sfoxds7t5ydpegc3knd667wn6m utility-types: 3.10.0 - webpack: 5.86.0 + webpack: 5.88.2 webpack-merge: 5.8.0 transitivePeerDependencies: - '@swc/core' @@ -4771,7 +4771,7 @@ packages: '@docusaurus/types': 2.3.1_sfoxds7t5ydpegc3knd667wn6m '@svgr/webpack': 6.5.1 escape-string-regexp: 4.0.0 - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 fs-extra: 10.1.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -4782,8 +4782,8 @@ packages: resolve-pathname: 3.0.0 shelljs: 0.8.5 tslib: 2.5.0 - url-loader: 4.1.1_3isns6qywnihuyc5a5zesgru7e - webpack: 5.86.0 + url-loader: 4.1.1_pbpjnf4ifq5edsddxe3xbm7czm + webpack: 5.88.2 transitivePeerDependencies: - '@swc/core' - esbuild @@ -5400,50 +5400,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@ice/pkg-plugin-component/1.0.0: - resolution: {integrity: sha512-Mff6Em1RwY2NOZgciQyy2NXL65u9ebHV2Jqb5746vUVEh0l7Xpokb+3djV1pKcgED4wU8pSuSQ6jj+hXd9Ht1Q==} - dependencies: - consola: 2.15.3 - fs-extra: 10.1.0 - dev: true - - /@ice/pkg/1.1.2-0: - resolution: {integrity: sha512-cv//5fNdAZz6QZRnnNe0aiEa3n/K/dhlTcYrDbb2kcki4CAzn1ZN0YxxVWQQxpiphAkCo+FOWDG0IZF8PF8+Ug==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dependencies: - '@babel/core': 7.21.0 - '@babel/parser': 7.21.2 - '@ice/pkg-plugin-component': 1.0.0 - '@rollup/plugin-alias': 3.1.9_rollup@2.79.1 - '@rollup/plugin-commonjs': 21.1.0_rollup@2.79.1 - '@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.1 - '@rollup/pluginutils': 4.2.1 - '@swc/core': 1.3.19 - acorn: 8.8.2 - autoprefixer: 10.4.13_postcss@8.4.21 - build-scripts: 2.0.0-24 - cac: 6.7.14 - chokidar: 3.5.3 - consola: 2.15.3 - debug: 4.3.4 - deepmerge: 4.3.0 - es-module-lexer: 0.10.5 - escape-string-regexp: 5.0.0 - fs-extra: 10.1.0 - globby: 11.1.0 - gzip-size: 7.0.0 - magic-string: 0.25.9 - picocolors: 1.0.0 - postcss: 8.4.21 - rollup: 2.79.1 - rollup-plugin-postcss: 4.0.2_postcss@8.4.21 - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - /@ice/pkg/1.5.5: resolution: {integrity: sha512-0BIfv6Uzs2wpHv7RmFwz+kWfoJLfx0yJrQyh3yqy+F6TZWxTwrqQmX+5yRmgqK5f7lGGhYfMMVNWjRSCw5MHPQ==} engines: {node: '>=16.14.0'} @@ -5522,16 +5478,16 @@ packages: - react-native dev: false - /@ice/swc-plugin-keep-export/0.1.4-2: - resolution: {integrity: sha512-kmQms1GTc4LBfPK+SyEo3UBBX0GMhPB02VJPA34AtIpNmaWApgmkqQBHbmeeV8ad0nrHrxTfRL80ldMhplyC4g==} + /@ice/swc-plugin-keep-export/0.2.0: + resolution: {integrity: sha512-N3tg4BOV78jZSR/9CypJf5YzHxrNi40dNlUAwFjf7nr9pzMvVlo9bZM0I/A9l6J9vMff/5mgtkW5+JiMYdyjig==} dev: false - /@ice/swc-plugin-node-transform/0.1.0-8: - resolution: {integrity: sha512-MbvlCk34Mim823VflDdSnlJemeQURpwcSyT4f9mODFufAypmaaLf2/lmhcPfn6C4CvrRD5Qj2XV8FTFV60Q2XQ==} + /@ice/swc-plugin-node-transform/0.2.0: + resolution: {integrity: sha512-06NtOUGVAUKP1eQXGMkaIZpNl9d5RK6SB6xQJsMY/DIso8WnwymyN7hmoFXPzX0eFkhmQEc7jzJ7NDBXaXRqWQ==} dev: false - /@ice/swc-plugin-remove-export/0.1.2: - resolution: {integrity: sha512-HPeYj+z1ylaD5fJkSqyJ+eXbrHiCdy/t/t56uyf20aqsAyx12EiHVnfV4blW31DSWhFt/veAUXYzbaJ8b9KLOQ==} + /@ice/swc-plugin-remove-export/0.2.0: + resolution: {integrity: sha512-kmyrCMtuEsS7J3rpENT5qUhhbuu3eldsN1WpJjtXX4rgogJ1+QmnAPjnhB0SWzr0/b5ArGfz83O6M+5NNGRd+A==} dev: false /@iceworks/generate-project/2.0.2: @@ -6261,7 +6217,7 @@ packages: semver: 7.4.0 dev: true - /@pmmmwh/react-refresh-webpack-plugin/0.5.10_xl75jf2rcivcbfvir2zwdrg55y: + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_ynqbgb5bmgbvx2am6mt2h3lxsq: resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} engines: {node: '>= 10.13'} peerDependencies: @@ -6297,8 +6253,8 @@ packages: react-refresh: 0.14.0 schema-utils: 3.1.1 source-map: 0.7.4 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru - webpack-dev-server: 4.15.0_webpack@5.86.0 + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte + webpack-dev-server: 4.15.0_webpack@5.88.2 dev: true /@polka/url/1.0.0-next.21: @@ -6479,16 +6435,6 @@ packages: web-streams-polyfill: 3.2.1 dev: true - /@rollup/plugin-alias/3.1.9_rollup@2.79.1: - resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} - engines: {node: '>=8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - rollup: 2.79.1 - slash: 3.0.0 - dev: true - /@rollup/plugin-commonjs/21.1.0_rollup@2.79.1: resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} engines: {node: '>= 8.0.0'} @@ -6893,14 +6839,6 @@ packages: transitivePeerDependencies: - supports-color - /@swc/core-darwin-arm64/1.3.19: - resolution: {integrity: sha512-6xLtmXzS4nNWGQkajbiAjGXspUJfxS2IWoGQ16J9nfOFdttKyoIG5o5+mxUfKeg5bXw9cI+r675kN/irx3z7MQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - /@swc/core-darwin-arm64/1.3.32: resolution: {integrity: sha512-o19bhlxuUgjUElm6i+QhXgZ0vD6BebiB/gQpK3en5aAwhOvinwr4sah3GqFXsQzz/prKVDuMkj9SW6F/Ug5hgg==} engines: {node: '>=10'} @@ -6910,10 +6848,10 @@ packages: dev: true optional: true - /@swc/core-darwin-x64/1.3.19: - resolution: {integrity: sha512-qCDQcngYBeWrsNS1kcBslRD0dahKcYKaUUWRC9yHpRcs3SRvnSpJyWQR4y9RCdO9YNmixJ9+5+zPD9qcgL7jBw==} + /@swc/core-darwin-arm64/1.3.77: + resolution: {integrity: sha512-l4KGQAGB4Ih1Al2tWoUBrtVJCF/xZRjH3jCMCRD52KZDRAnRVDq42JKek7+aHjjH8juzTISaqzsI8Ipv6zvKhA==} engines: {node: '>=10'} - cpu: [x64] + cpu: [arm64] os: [darwin] requiresBuild: true optional: true @@ -6927,11 +6865,11 @@ packages: dev: true optional: true - /@swc/core-linux-arm-gnueabihf/1.3.19: - resolution: {integrity: sha512-ufbKW6Lhii1+kVCXnsHgqYIpRvXhPjdhMudfP4KKVgJtT6TsdEIr+KRAQIBHLjRUsTKA2DLsGEpu9jfjwFiNEg==} + /@swc/core-darwin-x64/1.3.77: + resolution: {integrity: sha512-eFCkZg/BzObOn5IWn7t/Ywz+jlZKff/1XBymT7Arh/UkO39Agh+rYdBqjbylp4JQMl0qGRBfxD3wPgDRoViNVQ==} engines: {node: '>=10'} - cpu: [arm] - os: [linux] + cpu: [x64] + os: [darwin] requiresBuild: true optional: true @@ -6944,10 +6882,10 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-gnu/1.3.19: - resolution: {integrity: sha512-HHhqLRZv9Ss8orJrlEP4XRcLuqLDwFtGgbtHU8kyWBmQEtK42uT18Pf5RJBo5sPJHY8m5EO8C8y3hIbGmKtLyg==} + /@swc/core-linux-arm-gnueabihf/1.3.77: + resolution: {integrity: sha512-+1BueyGcCQAtxSORJml0CU8aKQNssQ5E3ABMFJwCbcec+lUCiGYK1fBfqj4FmWQMbXuQ+mn1SMeXSZAtaXoQ3w==} engines: {node: '>=10'} - cpu: [arm64] + cpu: [arm] os: [linux] requiresBuild: true optional: true @@ -6961,8 +6899,8 @@ packages: dev: true optional: true - /@swc/core-linux-arm64-musl/1.3.19: - resolution: {integrity: sha512-vipnF3C6T1368uHQqz8RpdszWxxGh0X8VBK3TdTOSWvI/duNZtZXEOZlB2Nh9w+u09umVw0MsJhvg86Aon39mA==} + /@swc/core-linux-arm64-gnu/1.3.77: + resolution: {integrity: sha512-3smbzVcuuCiWWPFeUIp1c0aAXd+fGsc8x8rUcYvoJAWBgLJ45JymOI5WSUjIybl3rk0prdkbFylZuR0t1Rue3A==} engines: {node: '>=10'} cpu: [arm64] os: [linux] @@ -6978,10 +6916,10 @@ packages: dev: true optional: true - /@swc/core-linux-x64-gnu/1.3.19: - resolution: {integrity: sha512-dUbq8mnIqBhU7OppfY3ncOvl26691WFGxd97QtnnlfMZrKnaofKFMIxE9sTHOLSbBo16AylnEMiwa45w2UWDEg==} + /@swc/core-linux-arm64-musl/1.3.77: + resolution: {integrity: sha512-e81+i4ef5vDeu9AkMY2AamPcmtPVPUqeqq3aNWM1tcHCaUej1DwY4xhRxrd1OvEoYyVBLtiMb5nenF3V9OzXIQ==} engines: {node: '>=10'} - cpu: [x64] + cpu: [arm64] os: [linux] requiresBuild: true optional: true @@ -6995,8 +6933,8 @@ packages: dev: true optional: true - /@swc/core-linux-x64-musl/1.3.19: - resolution: {integrity: sha512-RiVZrlkNGcj9jZyjF7YFOW3fj9fWPC25AYkknLpWxAmLQcp1piAWj+aSixmMWUC4QJau78VZzcm+kRgIOECALw==} + /@swc/core-linux-x64-gnu/1.3.77: + resolution: {integrity: sha512-gl3+9VESckZ/GYCmGClGgXqB2tAA2MivEV/51Wde+2alo2lPSSujEhxE6Q3TNYkXOLAHSupYyDZ0ou9RfXufOw==} engines: {node: '>=10'} cpu: [x64] os: [linux] @@ -7012,11 +6950,11 @@ packages: dev: true optional: true - /@swc/core-win32-arm64-msvc/1.3.19: - resolution: {integrity: sha512-r2U6GC+go2iiLx5JBZIJswYFiMv0yOsm+pgE1srVvAc8dP02320t9yh0Uj4Sr2hDipTWJ33Y5PMZwEsZSfBVbQ==} + /@swc/core-linux-x64-musl/1.3.77: + resolution: {integrity: sha512-AqQLZAMYTaNrA4i/Nv/GhXdildDZyRv6xsK8u2actevv5PPjD/69yYB3Z4uaptwh/4ys4W/Y2vnt+OPCNH4OQg==} engines: {node: '>=10'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [linux] requiresBuild: true optional: true @@ -7029,10 +6967,10 @@ packages: dev: true optional: true - /@swc/core-win32-ia32-msvc/1.3.19: - resolution: {integrity: sha512-SPpESDa4vr0PRvUiqXSi8oZSTmkDOGrZ/pSiLD7ISgjsQ5RQMbPkuEK0ztWljim87q2fO0bGVVhyaVYxdOVS1A==} + /@swc/core-win32-arm64-msvc/1.3.77: + resolution: {integrity: sha512-Wdw++6w7WyavxZ3WruElCrRJ6EO0iHS0Mts4qHnbKgD08GJqIMTZPtZ5qhRe9zCf6sj2rQqhAMf/HKhYrHoF+w==} engines: {node: '>=10'} - cpu: [ia32] + cpu: [arm64] os: [win32] requiresBuild: true optional: true @@ -7046,10 +6984,10 @@ packages: dev: true optional: true - /@swc/core-win32-x64-msvc/1.3.19: - resolution: {integrity: sha512-0X5HqFC1wQlheOQDZeF6KNOSURZKkGISNK3aTSmTq9g7dDJ/kTcVjsdKbu2rK4ibCnlC9IS0cLK9FpROnsVPwA==} + /@swc/core-win32-ia32-msvc/1.3.77: + resolution: {integrity: sha512-ObNVpdtLdXDpmVKuMZh87yBYL4ti64WX95o2j5Oq3r0e0RqwIGqGvPDxvJVEiyCnaXHfl8eSNKWuiOxPHPkMNQ==} engines: {node: '>=10'} - cpu: [x64] + cpu: [ia32] os: [win32] requiresBuild: true optional: true @@ -7063,22 +7001,13 @@ packages: dev: true optional: true - /@swc/core/1.3.19: - resolution: {integrity: sha512-KiXUv2vpmOaGhoLCN9Rw7Crsfq1YmOR2ZbajiqNAh/iu0d3CKn5JZhLRs6S7nCk78cwFFac2obQfTWPePLUe/g==} + /@swc/core-win32-x64-msvc/1.3.77: + resolution: {integrity: sha512-Ew6jg/qr0v/2ixeJXvIUBuAPMKTz8HRoDBO/nHkvlnDFmkhsyH7h5YwJS1rLBwAEhWuJaVYjYi7cibZTI/QRYQ==} engines: {node: '>=10'} - hasBin: true + cpu: [x64] + os: [win32] requiresBuild: true - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.19 - '@swc/core-darwin-x64': 1.3.19 - '@swc/core-linux-arm-gnueabihf': 1.3.19 - '@swc/core-linux-arm64-gnu': 1.3.19 - '@swc/core-linux-arm64-musl': 1.3.19 - '@swc/core-linux-x64-gnu': 1.3.19 - '@swc/core-linux-x64-musl': 1.3.19 - '@swc/core-win32-arm64-msvc': 1.3.19 - '@swc/core-win32-ia32-msvc': 1.3.19 - '@swc/core-win32-x64-msvc': 1.3.19 + optional: true /@swc/core/1.3.32: resolution: {integrity: sha512-Yx/n1j+uUkcqlJAW8IRg8Qymgkdow6NHJZPFShiR0YiaYq2sXY+JHmvh16O6GkL91Y+gTlDUS7uVgDz50czJUQ==} @@ -7097,6 +7026,27 @@ packages: '@swc/core-win32-x64-msvc': 1.3.32 dev: true + /@swc/core/1.3.77: + resolution: {integrity: sha512-CiLD2NGTdhE8JnWFHeRAglaCAcvwOxvpeWNtCIT261GrxTKCXHPAn4eqIWiBzXnwWDmZ6XdyrCL4/GmPESNnrg==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.77 + '@swc/core-darwin-x64': 1.3.77 + '@swc/core-linux-arm-gnueabihf': 1.3.77 + '@swc/core-linux-arm64-gnu': 1.3.77 + '@swc/core-linux-arm64-musl': 1.3.77 + '@swc/core-linux-x64-gnu': 1.3.77 + '@swc/core-linux-x64-musl': 1.3.77 + '@swc/core-win32-arm64-msvc': 1.3.77 + '@swc/core-win32-ia32-msvc': 1.3.77 + '@swc/core-win32-x64-msvc': 1.3.77 + /@swc/helpers/0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: @@ -7663,12 +7613,12 @@ packages: /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - /@types/webpack-bundle-analyzer/4.6.0_w34or7orauknzckzea4nxxqrru: + /@types/webpack-bundle-analyzer/4.6.0_4xkclhduw6cmnopkeqfp6begte: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: '@types/node': 18.14.6 tapable: 2.2.1 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte transitivePeerDependencies: - '@swc/core' - esbuild @@ -8711,7 +8661,7 @@ packages: - supports-color dev: true - /babel-loader/8.3.0_faqmw3hzxbd2amkwvsk4dmxive: + /babel-loader/8.3.0_bckyc4ywv6ed2sy2snlzby5mbi: resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: @@ -8723,7 +8673,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.86.0 + webpack: 5.88.2 /babel-plugin-apply-mdx-type-prop/1.6.22_@babel+core@7.12.9: resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} @@ -9081,23 +9031,6 @@ packages: ieee754: 1.2.1 dev: false - /build-scripts/2.0.0-24: - resolution: {integrity: sha512-FoGyAZ+Xz3B51ui8mMnAtswVL7rxPjeA67ggzG08mDYK29XPdLdnS8rAI6cagxFiPjQ6o4BMzR2uFXcegxmBgA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - camelcase: 5.3.1 - commander: 2.20.3 - consola: 2.15.3 - esbuild: 0.14.54 - fast-glob: 3.2.12 - fs-extra: 8.1.0 - json5: 2.2.3 - lodash: 4.17.21 - npmlog: 4.1.2 - picocolors: 1.0.0 - semver: 7.4.0 - dev: true - /build-scripts/2.1.0: resolution: {integrity: sha512-Lk3GT54QraZHPGV9xMka9MvA7B4buuCnb0t2HWKCwGUaGd5pRr7lj/6AKn19YDMvlJGJHNp2wlWDGUyf0/l7Ng==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -9674,12 +9607,6 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /concat-with-sourcemaps/1.1.0: - resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} - dependencies: - source-map: 0.6.1 - dev: true - /configstore/5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} @@ -9793,7 +9720,7 @@ packages: toggle-selection: 1.0.6 dev: false - /copy-webpack-plugin/10.2.4_webpack@5.86.0: + /copy-webpack-plugin/10.2.4_webpack@5.88.2: resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} engines: {node: '>= 12.20.0'} peerDependencies: @@ -9805,10 +9732,10 @@ packages: normalize-path: 3.0.0 schema-utils: 4.0.0 serialize-javascript: 6.0.1 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /copy-webpack-plugin/11.0.0_webpack@5.86.0: + /copy-webpack-plugin/11.0.0_webpack@5.88.2: resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -9820,7 +9747,7 @@ packages: normalize-path: 3.0.0 schema-utils: 4.0.0 serialize-javascript: 6.0.1 - webpack: 5.86.0 + webpack: 5.88.2 /core-js-compat/3.29.0: resolution: {integrity: sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==} @@ -9837,8 +9764,8 @@ packages: requiresBuild: true dev: false - /core-js/3.29.1: - resolution: {integrity: sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==} + /core-js/3.32.0: + resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} requiresBuild: true /core-util-is/1.0.2: @@ -9986,7 +9913,7 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /css-loader/6.7.1_webpack@5.86.0: + /css-loader/6.7.1_webpack@5.88.2: resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -10000,10 +9927,10 @@ packages: postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /css-loader/6.7.3_webpack@5.86.0: + /css-loader/6.7.3_webpack@5.88.2: resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -10017,9 +9944,9 @@ packages: postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 semver: 7.4.0 - webpack: 5.86.0 + webpack: 5.88.2 - /css-minimizer-webpack-plugin/3.4.1_3d2sldnof75occqqtyfzznb47i: + /css-minimizer-webpack-plugin/3.4.1_4yjf5voakpkrj4qbnm3gtqjbli: resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -10045,10 +9972,10 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /css-minimizer-webpack-plugin/4.2.2_pkowl6ba77tblhp3ka4lysrqwi: + /css-minimizer-webpack-plugin/4.2.2_ltzhhs6ml74uoexipkdt2pgtmi: resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -10080,7 +10007,7 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.86.0 + webpack: 5.88.2 /css-prefers-color-scheme/6.0.3_postcss@8.4.12: resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==} @@ -10876,8 +10803,8 @@ packages: dependencies: once: 1.4.0 - /enhanced-resolve/5.14.1: - resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} + /enhanced-resolve/5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 @@ -11739,7 +11666,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-webpack-plugin/3.1.1_q3hmn467a5h5crilb2qohj5d34: + /eslint-webpack-plugin/3.1.1_rjw5ojvju3cwto23hvu2jcx2wi: resolution: {integrity: sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -11752,7 +11679,7 @@ packages: micromatch: 4.0.5 normalize-path: 3.0.0 schema-utils: 3.1.1 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true /eslint/8.35.0: @@ -11839,10 +11766,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - /estree-walker/0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: true - /estree-walker/1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true @@ -12143,7 +12066,7 @@ packages: flat-cache: 3.0.4 dev: true - /file-loader/6.2.0_webpack@5.86.0: + /file-loader/6.2.0_webpack@5.88.2: resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -12151,7 +12074,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.1 - webpack: 5.86.0 + webpack: 5.88.2 /file-type/8.1.0: resolution: {integrity: sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==} @@ -12290,7 +12213,7 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: false - /fork-ts-checker-webpack-plugin/6.5.3_y75l3d5in5mgvug53qfq62ncxu: + /fork-ts-checker-webpack-plugin/6.5.3_rggdtlzfqxxwxudp3onsqdyocm: resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -12318,9 +12241,9 @@ packages: semver: 7.4.0 tapable: 1.1.3 typescript: 4.9.5 - webpack: 5.86.0 + webpack: 5.88.2 - /fork-ts-checker-webpack-plugin/7.2.6_y75l3d5in5mgvug53qfq62ncxu: + /fork-ts-checker-webpack-plugin/7.2.6_rggdtlzfqxxwxudp3onsqdyocm: resolution: {integrity: sha512-q5rdvy7CaqEWyK3ly/AjSMQ+e3DGkjuqP0pkTwJcg+PHLhQfTJXqkmRIeA2y0TPfX4U00Et+AxS2ObAsVcm0hQ==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -12343,7 +12266,7 @@ packages: semver: 7.3.8 tapable: 2.2.1 typescript: 4.9.5 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true /form-data/2.3.3: @@ -12985,7 +12908,7 @@ packages: /html-void-elements/1.0.5: resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - /html-webpack-plugin/5.5.0_webpack@5.86.0: + /html-webpack-plugin/5.5.0_webpack@5.88.2: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -12996,7 +12919,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.86.0 + webpack: 5.88.2 /htmlparser2/6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} @@ -13250,13 +13173,6 @@ packages: /immutable/4.2.4: resolution: {integrity: sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==} - /import-cwd/3.0.0: - resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} - engines: {node: '>=8'} - dependencies: - import-from: 3.0.0 - dev: true - /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -13264,13 +13180,6 @@ packages: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-from/3.0.0: - resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - /import-lazy/2.1.0: resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} engines: {node: '>=4'} @@ -15011,7 +14920,7 @@ packages: picocolors: 1.0.0 shell-quote: 1.8.0 - /less-loader/10.2.0_less@4.1.2+webpack@5.86.0: + /less-loader/10.2.0_less@4.1.2+webpack@5.88.2: resolution: {integrity: sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -15020,7 +14929,7 @@ packages: dependencies: klona: 2.0.6 less: 4.1.2 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true /less/4.1.2: @@ -15548,24 +15457,24 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin/2.6.1_webpack@5.86.0: + /mini-css-extract-plugin/2.6.1_webpack@5.88.2: resolution: {integrity: sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /mini-css-extract-plugin/2.7.2_webpack@5.86.0: + /mini-css-extract-plugin/2.7.2_webpack@5.88.2: resolution: {integrity: sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.86.0 + webpack: 5.88.2 /mini-svg-data-uri/1.4.4: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} @@ -16308,11 +16217,6 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - /pify/5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - dev: true - /pirates/4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -16722,7 +16626,7 @@ packages: yaml: 1.10.2 dev: true - /postcss-loader/6.2.1_wqk23ab45kwprbaswwurijjkaa: + /postcss-loader/6.2.1_qchtspfgma7jloh7olgj4ntig4: resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -16733,10 +16637,10 @@ packages: klona: 2.0.6 postcss: 8.4.12 semver: 7.3.8 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /postcss-loader/7.0.2_zml2csqpzana4ilfc2mv2obllm: + /postcss-loader/7.0.2_spab46aedetttbaa4fvapwm3fq: resolution: {integrity: sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -16747,7 +16651,7 @@ packages: klona: 2.0.6 postcss: 8.4.21 semver: 7.4.0 - webpack: 5.86.0 + webpack: 5.88.2 /postcss-logical/5.0.4_postcss@8.4.12: resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==} @@ -17005,22 +16909,6 @@ packages: string-hash: 1.1.3 dev: true - /postcss-modules/4.3.1_postcss@8.4.21: - resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} - peerDependencies: - postcss: ^8.0.0 - dependencies: - generic-names: 4.0.0 - icss-replace-symbols: 1.1.0 - lodash.camelcase: 4.3.0 - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 - postcss-modules-scope: 3.0.0_postcss@8.4.21 - postcss-modules-values: 4.0.0_postcss@8.4.21 - string-hash: 1.1.3 - dev: true - /postcss-nested/5.0.6_postcss@8.4.12: resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} engines: {node: '>=12.0'} @@ -17650,11 +17538,6 @@ packages: optional: true dev: true - /promise.series/0.2.0: - resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} - engines: {node: '>=0.12'} - dev: true - /promise/7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: @@ -18824,7 +18707,7 @@ packages: pure-color: 1.3.0 dev: false - /react-dev-utils/12.0.1_y75l3d5in5mgvug53qfq62ncxu: + /react-dev-utils/12.0.1_rggdtlzfqxxwxudp3onsqdyocm: resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -18843,7 +18726,7 @@ packages: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3_y75l3d5in5mgvug53qfq62ncxu + fork-ts-checker-webpack-plugin: 6.5.3_rggdtlzfqxxwxudp3onsqdyocm global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -18859,7 +18742,7 @@ packages: strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 4.9.5 - webpack: 5.86.0 + webpack: 5.88.2 transitivePeerDependencies: - eslint - supports-color @@ -18957,7 +18840,7 @@ packages: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} dev: false - /react-loadable-ssr-addon-v5-slorber/1.0.1_o2jg6bgy63srrfuw3are3pafxm: + /react-loadable-ssr-addon-v5-slorber/1.0.1_hshiizlgc3g7hkow5ydbqook5i: resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} engines: {node: '>=10.13.0'} peerDependencies: @@ -18966,7 +18849,7 @@ packages: dependencies: '@babel/runtime': 7.21.0 react-loadable: /@docusaurus/react-loadable/5.5.2_react@17.0.2 - webpack: 5.86.0 + webpack: 5.88.2 /react-reconciler/0.27.0_react@18.2.0: resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} @@ -19566,30 +19449,6 @@ packages: dependencies: glob: 7.2.3 - /rollup-plugin-postcss/4.0.2_postcss@8.4.21: - resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} - engines: {node: '>=10'} - peerDependencies: - postcss: 8.x - dependencies: - chalk: 4.1.2 - concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15_postcss@8.4.21 - import-cwd: 3.0.0 - p-queue: 6.6.2 - pify: 5.0.0 - postcss: 8.4.21 - postcss-load-config: 3.1.4_postcss@8.4.21 - postcss-modules: 4.3.1_postcss@8.4.21 - promise.series: 0.2.0 - resolve: 1.22.1 - rollup-pluginutils: 2.8.2 - safe-identifier: 0.4.2 - style-inject: 0.3.0 - transitivePeerDependencies: - - ts-node - dev: true - /rollup-plugin-styles/4.0.0_rollup@2.79.1: resolution: {integrity: sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -19634,12 +19493,6 @@ packages: yargs: 17.7.1 dev: true - /rollup-pluginutils/2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - dependencies: - estree-walker: 0.6.1 - dev: true - /rollup/2.77.3: resolution: {integrity: sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==} engines: {node: '>=10.0.0'} @@ -19701,10 +19554,6 @@ packages: /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-identifier/0.4.2: - resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} - dev: true - /safe-regex-test/1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -19715,7 +19564,7 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass-loader/12.6.0_sass@1.50.0+webpack@5.86.0: + /sass-loader/12.6.0_sass@1.50.0+webpack@5.88.2: resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -19737,7 +19586,7 @@ packages: klona: 2.0.6 neo-async: 2.6.2 sass: 1.50.0 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true /sass/1.50.0: @@ -19808,6 +19657,14 @@ packages: ajv: 6.12.6 ajv-keywords: 3.5.2_ajv@6.12.6 + /schema-utils/3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.11 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + /schema-utils/4.0.0: resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} engines: {node: '>= 12.13.0'} @@ -20222,14 +20079,14 @@ packages: transitivePeerDependencies: - supports-color - /speed-measure-webpack-plugin/1.5.0_webpack@5.86.0: + /speed-measure-webpack-plugin/1.5.0_webpack@5.88.2: resolution: {integrity: sha512-Re0wX5CtM6gW7bZA64ONOfEPEhwbiSF/vz6e2GvadjuaPrQcHTQdRGsD8+BE7iUOysXH8tIenkPCQBEcspXsNg==} engines: {node: '>=6.0.0'} peerDependencies: webpack: ^1 || ^2 || ^3 || ^4 || ^5 dependencies: chalk: 4.1.2 - webpack: 5.86.0 + webpack: 5.88.2 dev: true /split-on-first/1.1.0: @@ -20491,10 +20348,6 @@ packages: resolution: {integrity: sha512-gf20kfwh7eXsgPcwvYqViCBHr+GXIlpXOZR1wQftNH4/ee2P/yolWUVA/MdMdmMp+0BMfvaMKSIR1DQlY64Btw==} dev: false - /style-inject/0.3.0: - resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} - dev: true - /style-search/0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true @@ -20798,7 +20651,7 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser-webpack-plugin/5.3.5_kn3rentq3i47ljvblyy4hgdaoi: + /terser-webpack-plugin/5.3.5_axvalpe33xu7j6desnybwj35vm: resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20815,16 +20668,16 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.17 - '@swc/core': 1.3.19 + '@swc/core': 1.3.77 esbuild: 0.17.16 jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.1 terser: 5.14.2 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /terser-webpack-plugin/5.3.6_webpack@5.86.0: + /terser-webpack-plugin/5.3.6_webpack@5.88.2: resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20842,12 +20695,12 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.17 jest-worker: 27.5.1 - schema-utils: 3.1.2 + schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.86.0 + webpack: 5.88.2 - /terser-webpack-plugin/5.3.7_3d2sldnof75occqqtyfzznb47i: + /terser-webpack-plugin/5.3.7_4yjf5voakpkrj4qbnm3gtqjbli: resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20869,10 +20722,10 @@ packages: schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.86.0_esbuild@0.17.16 + webpack: 5.88.2_esbuild@0.17.16 dev: true - /terser-webpack-plugin/5.3.7_kn3rentq3i47ljvblyy4hgdaoi: + /terser-webpack-plugin/5.3.7_axvalpe33xu7j6desnybwj35vm: resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20889,15 +20742,15 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.17 - '@swc/core': 1.3.19 + '@swc/core': 1.3.77 esbuild: 0.17.16 jest-worker: 27.5.1 schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte - /terser-webpack-plugin/5.3.7_webpack@5.86.0: + /terser-webpack-plugin/5.3.7_webpack@5.88.2: resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20918,7 +20771,7 @@ packages: schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.86.0 + webpack: 5.88.2 /terser/5.14.2: resolution: {integrity: sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==} @@ -21509,7 +21362,7 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - /unplugin/0.9.5_3d2sldnof75occqqtyfzznb47i: + /unplugin/0.9.5_4yjf5voakpkrj4qbnm3gtqjbli: resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==} peerDependencies: esbuild: '>=0.13' @@ -21529,7 +21382,7 @@ packages: acorn: 8.8.2 chokidar: 3.5.3 esbuild: 0.17.16 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte webpack-sources: 3.2.3 webpack-virtual-modules: 0.4.6 dev: true @@ -21589,7 +21442,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: false - /url-loader/4.1.1_3isns6qywnihuyc5a5zesgru7e: + /url-loader/4.1.1_pbpjnf4ifq5edsddxe3xbm7czm: resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -21599,11 +21452,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0_webpack@5.86.0 + file-loader: 6.2.0_webpack@5.88.2 loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.1.1 - webpack: 5.86.0 + webpack: 5.88.2 /url-parse-lax/3.0.0: resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} @@ -22091,7 +21944,7 @@ packages: schema-utils: 4.0.0 dev: true - /webpack-dev-middleware/5.3.3_webpack@5.86.0: + /webpack-dev-middleware/5.3.3_webpack@5.88.2: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -22102,9 +21955,9 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte - /webpack-dev-server/4.11.1_webpack@5.86.0: + /webpack-dev-server/4.11.1_webpack@5.88.2: resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} engines: {node: '>= 12.13.0'} hasBin: true @@ -22142,8 +21995,8 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.86.0_esbuild@0.17.16 - webpack-dev-middleware: 5.3.3_webpack@5.86.0 + webpack: 5.88.2_esbuild@0.17.16 + webpack-dev-middleware: 5.3.3_webpack@5.88.2 ws: 8.12.1 transitivePeerDependencies: - bufferutil @@ -22202,7 +22055,7 @@ packages: - utf-8-validate dev: true - /webpack-dev-server/4.15.0_debug@4.3.4+webpack@5.86.0: + /webpack-dev-server/4.15.0_debug@4.3.4+webpack@5.88.2: resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==} engines: {node: '>= 12.13.0'} hasBin: true @@ -22243,8 +22096,8 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.86.0 - webpack-dev-middleware: 5.3.3_webpack@5.86.0 + webpack: 5.88.2 + webpack-dev-middleware: 5.3.3_webpack@5.88.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -22253,7 +22106,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-server/4.15.0_webpack@5.86.0: + /webpack-dev-server/4.15.0_webpack@5.88.2: resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==} engines: {node: '>= 12.13.0'} hasBin: true @@ -22294,8 +22147,8 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.86.0_w34or7orauknzckzea4nxxqrru - webpack-dev-middleware: 5.3.3_webpack@5.86.0 + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte + webpack-dev-middleware: 5.3.3_webpack@5.88.2 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -22326,8 +22179,8 @@ packages: resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} dev: true - /webpack/5.86.0: - resolution: {integrity: sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==} + /webpack/5.88.2: + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -22345,7 +22198,7 @@ packages: acorn-import-assertions: 1.9.0_acorn@8.8.2 browserslist: 4.21.5 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 + enhanced-resolve: 5.15.0 es-module-lexer: 1.2.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -22355,9 +22208,9 @@ packages: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.1.2 + schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7_webpack@5.86.0 + terser-webpack-plugin: 5.3.7_webpack@5.88.2 watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -22365,8 +22218,8 @@ packages: - esbuild - uglify-js - /webpack/5.86.0_esbuild@0.17.16: - resolution: {integrity: sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==} + /webpack/5.88.2_4xkclhduw6cmnopkeqfp6begte: + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -22384,7 +22237,7 @@ packages: acorn-import-assertions: 1.9.0_acorn@8.8.2 browserslist: 4.21.5 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 + enhanced-resolve: 5.15.0 es-module-lexer: 1.2.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -22394,19 +22247,18 @@ packages: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.1.2 + schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7_3d2sldnof75occqqtyfzznb47i + terser-webpack-plugin: 5.3.7_axvalpe33xu7j6desnybwj35vm watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - dev: true - /webpack/5.86.0_w34or7orauknzckzea4nxxqrru: - resolution: {integrity: sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==} + /webpack/5.88.2_esbuild@0.17.16: + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -22424,7 +22276,7 @@ packages: acorn-import-assertions: 1.9.0_acorn@8.8.2 browserslist: 4.21.5 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 + enhanced-resolve: 5.15.0 es-module-lexer: 1.2.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -22434,17 +22286,18 @@ packages: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.1.2 + schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7_kn3rentq3i47ljvblyy4hgdaoi + terser-webpack-plugin: 5.3.7_4yjf5voakpkrj4qbnm3gtqjbli watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js + dev: true - /webpackbar/5.0.2_webpack@5.86.0: + /webpackbar/5.0.2_webpack@5.88.2: resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -22454,7 +22307,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.2 - webpack: 5.86.0 + webpack: 5.88.2 /websocket-driver/0.7.4: resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} diff --git a/website/package.json b/website/package.json index 8e82f60ec7..d7dc5bf7e4 100644 --- a/website/package.json +++ b/website/package.json @@ -36,7 +36,7 @@ "glob": "^7.2.3", "gray-matter": "^4.0.3", "typescript": "^4.9.5", - "webpack": "^5.86.0" + "webpack": "^5.88.0" }, "browserslist": { "production": [ From f5d155b5f0233b722356d0dd45d7f6a59e3386cd Mon Sep 17 00:00:00 2001 From: ClarkXia Date: Mon, 21 Aug 2023 17:17:17 +0800 Subject: [PATCH 2/4] feat: support register different bundler (#6440) * feat: refactor bundler * fix: refactor getwebpack config * fix: add start and build * fix: optimize code * fix: remove useless file * chore: remove useless file * chore: optimize code * fix: bump build-scripts version * fix: bump build-scripts version * chore: refactor file * feat: refactor shared config * feat: support rspack config * fix: reset example * chore: optimize code * fix: update css rule * chore: version * chore: update lock * fix: get css modules ident * feat: support rspack build * fix: css modules ident rule * chore: add changelog * chore: test case * chore: test case * chore: optimize code * fix: compilation.chunks cause performace issue * fix: hmr * chore: lint * feat: support dataLoader in rspack mode * chore: format * fix: add dependencies to bundles * chore: reduce dependencies * refactor: optimize code --- .changeset/happy-avocados-eat.md | 6 + .../src/components/Comments.tsx | 2 +- packages/bundles/package.json | 5 +- packages/bundles/src/dev-server.ts | 1 + packages/bundles/src/index.ts | 2 + packages/bundles/src/react-refresh-runtime.ts | 3 + packages/bundles/src/rspack.ts | 1 + packages/ice/bin/ice-cli.mjs | 1 + packages/ice/package.json | 8 +- .../src/bundler/config/defaultServerConfig.ts | 21 + packages/ice/src/bundler/config/getUrls.ts | 33 + .../ice/src/bundler/config/middlewares.ts | 64 + packages/ice/src/bundler/config/output.ts | 62 + packages/ice/src/bundler/config/plugins.ts | 68 + packages/ice/src/bundler/rspack/build.ts | 68 + .../ice/src/bundler/rspack/formatStats.ts | 42 + packages/ice/src/bundler/rspack/getConfig.ts | 93 + packages/ice/src/bundler/rspack/index.ts | 55 + packages/ice/src/bundler/rspack/start.ts | 93 + packages/ice/src/bundler/types.ts | 142 ++ packages/ice/src/bundler/webpack/build.ts | 81 + .../src/bundler/webpack/getWebpackConfig.ts | 126 ++ packages/ice/src/bundler/webpack/index.ts | 51 + packages/ice/src/bundler/webpack/start.ts | 142 ++ packages/ice/src/commands/build.ts | 205 -- packages/ice/src/commands/start.ts | 268 --- packages/ice/src/commands/test.ts | 2 +- packages/ice/src/config.ts | 6 +- packages/ice/src/constant.ts | 3 + packages/ice/src/createService.ts | 63 +- packages/ice/src/getWatchEvents.ts | 2 +- .../ice/src/middlewares/renderMiddleware.ts | 2 +- packages/ice/src/plugins/web/task.ts | 2 +- packages/ice/src/service/ServerRunner.ts | 21 +- packages/ice/src/service/onDemandPreBundle.ts | 10 +- packages/ice/src/service/preBundleDeps.ts | 26 +- packages/ice/src/service/serverCompiler.ts | 24 +- packages/ice/src/service/webpackCompiler.ts | 2 +- packages/ice/src/test/defineJestConfig.ts | 2 +- packages/ice/src/types/index.ts | 2 +- packages/ice/src/types/plugin.ts | 2 +- packages/ice/src/types/userConfig.ts | 2 +- packages/ice/src/utils/getCSSModuleIdent.ts | 26 + packages/ice/src/utils/getRouterBasename.ts | 2 +- packages/ice/src/utils/mergeTaskConfig.ts | 2 +- packages/ice/src/utils/runtimePolyfill.ts | 2 +- .../ice/src/webpack/ServerCompilerPlugin.ts | 1 + packages/ice/tsconfig.json | 3 +- packages/plugin-pha/package.json | 2 +- packages/rspack-config/README.md | 3 + packages/rspack-config/package.json | 31 + packages/rspack-config/src/assetsRule.ts | 36 + .../rspack-config/src/client/reactRefresh.cts | 23 + packages/rspack-config/src/cssRules.ts | 58 + packages/rspack-config/src/index.ts | 170 ++ .../src/plugins/AssetManifest.ts | 75 + packages/rspack-config/src/splitChunks.ts | 88 + packages/rspack-config/tsconfig.json | 10 + packages/shared-config/README.md | 3 + packages/shared-config/package.json | 40 + .../src/compileExcludes.ts | 0 .../src}/getCSSModuleLocalIdent.ts | 2 +- .../src/getCompilerPlugins.ts | 2 +- packages/shared-config/src/getDefineVars.ts | 47 + packages/shared-config/src/getPostcssOpts.ts | 67 + packages/shared-config/src/index.ts | 16 + .../src/types.ts | 0 .../src/unPlugins/compilation.ts | 0 .../src/unPlugins/redirectImport.ts | 0 .../src/utils/transformImport.ts | 0 .../src/webpackLoaders/compilationLoader.cts | 0 .../tests/fixtures/redirectImport/alias.js | 0 .../fixtures/redirectImport/aliasWithAs.js | 0 .../tests/fixtures/redirectImport/as.js | 0 .../tests/fixtures/redirectImport/basic.js | 0 .../tests/fixtures/redirectImport/matched.js | 0 .../fixtures/redirectImport/missmatch.js | 0 .../tests/fixtures/redirectImport/multiple.js | 0 .../tests/fixtures/transformImport/cjs.js | 0 .../tests/fixtures/transformImport/esm.js | 0 .../fixtures/transformImport/importMeta.js | 0 .../tests/fixtures/transformImport/match.js | 0 .../fixtures/transformImport/missmatch.js | 0 .../fixtures/transformImport/stringInclude.js | 0 .../tests/fixtures/transformImport/swc-esm.js | 0 .../tests/fixtures/transformImport/swc.js | 0 .../tests/redirectImport.test.ts | 0 .../tests/transformImport.test.ts | 0 packages/shared-config/tsconfig.json | 10 + packages/shared-config/types.d.ts | 1 + packages/webpack-config/package.json | 12 +- packages/webpack-config/src/config/assets.ts | 2 +- packages/webpack-config/src/config/css.ts | 64 +- packages/webpack-config/src/index.ts | 68 +- pnpm-lock.yaml | 1872 +++++++++++++++-- 95 files changed, 3700 insertions(+), 852 deletions(-) create mode 100644 .changeset/happy-avocados-eat.md create mode 100644 packages/bundles/src/dev-server.ts create mode 100644 packages/bundles/src/react-refresh-runtime.ts create mode 100644 packages/bundles/src/rspack.ts create mode 100644 packages/ice/src/bundler/config/defaultServerConfig.ts create mode 100644 packages/ice/src/bundler/config/getUrls.ts create mode 100644 packages/ice/src/bundler/config/middlewares.ts create mode 100644 packages/ice/src/bundler/config/output.ts create mode 100644 packages/ice/src/bundler/config/plugins.ts create mode 100644 packages/ice/src/bundler/rspack/build.ts create mode 100644 packages/ice/src/bundler/rspack/formatStats.ts create mode 100644 packages/ice/src/bundler/rspack/getConfig.ts create mode 100644 packages/ice/src/bundler/rspack/index.ts create mode 100644 packages/ice/src/bundler/rspack/start.ts create mode 100644 packages/ice/src/bundler/types.ts create mode 100644 packages/ice/src/bundler/webpack/build.ts create mode 100644 packages/ice/src/bundler/webpack/getWebpackConfig.ts create mode 100644 packages/ice/src/bundler/webpack/index.ts create mode 100644 packages/ice/src/bundler/webpack/start.ts delete mode 100644 packages/ice/src/commands/build.ts delete mode 100644 packages/ice/src/commands/start.ts create mode 100644 packages/ice/src/utils/getCSSModuleIdent.ts create mode 100644 packages/rspack-config/README.md create mode 100644 packages/rspack-config/package.json create mode 100644 packages/rspack-config/src/assetsRule.ts create mode 100644 packages/rspack-config/src/client/reactRefresh.cts create mode 100644 packages/rspack-config/src/cssRules.ts create mode 100644 packages/rspack-config/src/index.ts create mode 100644 packages/rspack-config/src/plugins/AssetManifest.ts create mode 100644 packages/rspack-config/src/splitChunks.ts create mode 100644 packages/rspack-config/tsconfig.json create mode 100644 packages/shared-config/README.md create mode 100644 packages/shared-config/package.json rename packages/{webpack-config => shared-config}/src/compileExcludes.ts (100%) rename packages/{webpack-config/src/utils => shared-config/src}/getCSSModuleLocalIdent.ts (85%) rename packages/{webpack-config => shared-config}/src/getCompilerPlugins.ts (100%) create mode 100644 packages/shared-config/src/getDefineVars.ts create mode 100644 packages/shared-config/src/getPostcssOpts.ts create mode 100644 packages/shared-config/src/index.ts rename packages/{webpack-config => shared-config}/src/types.ts (100%) rename packages/{webpack-config => shared-config}/src/unPlugins/compilation.ts (100%) rename packages/{webpack-config => shared-config}/src/unPlugins/redirectImport.ts (100%) rename packages/{webpack-config => shared-config}/src/utils/transformImport.ts (100%) rename packages/{webpack-config => shared-config}/src/webpackLoaders/compilationLoader.cts (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/alias.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/aliasWithAs.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/as.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/basic.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/matched.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/missmatch.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/redirectImport/multiple.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/cjs.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/esm.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/importMeta.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/match.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/missmatch.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/stringInclude.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/swc-esm.js (100%) rename packages/{webpack-config => shared-config}/tests/fixtures/transformImport/swc.js (100%) rename packages/{webpack-config => shared-config}/tests/redirectImport.test.ts (100%) rename packages/{webpack-config => shared-config}/tests/transformImport.test.ts (100%) create mode 100644 packages/shared-config/tsconfig.json create mode 100644 packages/shared-config/types.d.ts diff --git a/.changeset/happy-avocados-eat.md b/.changeset/happy-avocados-eat.md new file mode 100644 index 0000000000..c052ea2e6c --- /dev/null +++ b/.changeset/happy-avocados-eat.md @@ -0,0 +1,6 @@ +--- +'@ice/webpack-config': minor +'@ice/app': minor +--- + +feat: support build by rust tools diff --git a/examples/with-suspense-ssr/src/components/Comments.tsx b/examples/with-suspense-ssr/src/components/Comments.tsx index 537315ab67..252ee4bc02 100644 --- a/examples/with-suspense-ssr/src/components/Comments.tsx +++ b/examples/with-suspense-ssr/src/components/Comments.tsx @@ -33,4 +33,4 @@ async function getData(ctx) { }); return fakeData; -} \ No newline at end of file +} diff --git a/packages/bundles/package.json b/packages/bundles/package.json index ad267e4e9a..923099c6f0 100644 --- a/packages/bundles/package.json +++ b/packages/bundles/package.json @@ -32,7 +32,10 @@ "sass": "1.50.0", "react-refresh": "0.14.0", "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6" + "error-stack-parser": "^2.0.6", + "@rspack/core": "0.2.12", + "@rspack/dev-server": "0.2.12", + "@ice/css-modules-hash": "0.0.6" }, "devDependencies": { "@types/less": "^3.0.3", diff --git a/packages/bundles/src/dev-server.ts b/packages/bundles/src/dev-server.ts new file mode 100644 index 0000000000..794a2cc45a --- /dev/null +++ b/packages/bundles/src/dev-server.ts @@ -0,0 +1 @@ +export * from '@rspack/dev-server'; diff --git a/packages/bundles/src/index.ts b/packages/bundles/src/index.ts index c37218faaa..4cc767dd61 100644 --- a/packages/bundles/src/index.ts +++ b/packages/bundles/src/index.ts @@ -6,6 +6,7 @@ import sass from 'sass'; import swc from '@swc/core'; import esbuild from 'esbuild'; import * as caniuseLite from 'caniuse-lite'; +import { getCssModulesLocalIdent } from '@ice/css-modules-hash'; const require = createRequire(import.meta.url); const swcPluginRemoveExport = require.resolve('@ice/swc-plugin-remove-export'); @@ -26,6 +27,7 @@ export { esbuild, caniuseLite, + getCssModulesLocalIdent, }; export type { ProcessOptions } from 'postcss'; diff --git a/packages/bundles/src/react-refresh-runtime.ts b/packages/bundles/src/react-refresh-runtime.ts new file mode 100644 index 0000000000..6840faba3d --- /dev/null +++ b/packages/bundles/src/react-refresh-runtime.ts @@ -0,0 +1,3 @@ +import runtime from 'react-refresh/runtime'; + +export default runtime; diff --git a/packages/bundles/src/rspack.ts b/packages/bundles/src/rspack.ts new file mode 100644 index 0000000000..afd429cbbc --- /dev/null +++ b/packages/bundles/src/rspack.ts @@ -0,0 +1 @@ +export * from '@rspack/core'; diff --git a/packages/ice/bin/ice-cli.mjs b/packages/ice/bin/ice-cli.mjs index 3e2f451d14..b9b9dba617 100755 --- a/packages/ice/bin/ice-cli.mjs +++ b/packages/ice/bin/ice-cli.mjs @@ -57,6 +57,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)); .option('--analyzer', 'visualize size of output files', false) .option('--https [https]', 'enable https', false) .option('--force', 'force remove cache directory', false) + .option('--speedup', 'speed up build time based on Rust tools', false) .action(async ({ rootDir, ...commandArgs }, ctx) => { renamePlatformToTarget(commandArgs); process.env.NODE_ENV = 'development'; diff --git a/packages/ice/package.json b/packages/ice/package.json index f78b9e009f..6a84ef6eeb 100644 --- a/packages/ice/package.json +++ b/packages/ice/package.json @@ -40,11 +40,13 @@ "@ice/bundles": "0.1.13", "@ice/route-manifest": "1.2.1", "@ice/runtime": "^1.2.7", + "@ice/shared-config": "1.0.0", "@ice/webpack-config": "1.0.20", + "@ice/rspack-config": "1.0.0", "@swc/helpers": "0.5.1", "@types/express": "^4.17.14", "address": "^1.1.2", - "build-scripts": "^2.1.1-0", + "build-scripts": "^2.1.2-0", "chalk": "^4.0.0", "commander": "^9.0.0", "consola": "^2.15.3", @@ -85,7 +87,9 @@ "sass": "^1.50.0", "unplugin": "^0.9.0", "webpack": "^5.88.0", - "webpack-dev-server": "^4.7.4" + "webpack-dev-server": "^4.7.4", + "@rspack/core": "0.2.12", + "@rspack/dev-server": "0.2.12" }, "peerDependencies": { "react": ">=18.0.0", diff --git a/packages/ice/src/bundler/config/defaultServerConfig.ts b/packages/ice/src/bundler/config/defaultServerConfig.ts new file mode 100644 index 0000000000..5daa47d873 --- /dev/null +++ b/packages/ice/src/bundler/config/defaultServerConfig.ts @@ -0,0 +1,21 @@ +import detectPort from 'detect-port'; +import type { CommandArgs } from 'build-scripts'; +import type { Configuration } from 'webpack-dev-server'; +import { DEFAULT_HOST, DEFAULT_PORT } from '../../constant.js'; + +async function getDefaultServerConfig(devServerConfig: Configuration, commandArgs: CommandArgs) { + // Get the value of the host and port from the command line, environment variables, and webpack config. + // Value priority: process.env.PORT > commandArgs > webpackConfig > DEFAULT. + const host = process.env.HOST || + commandArgs.host || + devServerConfig?.host || + DEFAULT_HOST; + const port = process.env.PORT || + commandArgs.port || + devServerConfig?.port || + await detectPort(DEFAULT_PORT); + + return { host, port }; +} + +export default getDefaultServerConfig; diff --git a/packages/ice/src/bundler/config/getUrls.ts b/packages/ice/src/bundler/config/getUrls.ts new file mode 100644 index 0000000000..69d4bae422 --- /dev/null +++ b/packages/ice/src/bundler/config/getUrls.ts @@ -0,0 +1,33 @@ +import type { TaskConfig } from 'build-scripts'; +import type { Config } from '@ice/shared-config/types'; +import type { AppConfig } from '@ice/runtime/types'; +import type { Configuration as DevServerConfiguration } from 'webpack-dev-server'; +import prepareURLs from '../../utils/prepareURLs.js'; +import getRouterBasename from '../../utils/getRouterBasename.js'; + +interface Options { + taskConfig: TaskConfig; + appConfig: AppConfig; + devServerConfig: DevServerConfiguration; +} + +const getUrls = ({ + taskConfig, + appConfig, + devServerConfig, +}: Options) => { + const urlPathname = getRouterBasename(taskConfig, appConfig) || '/'; + const protocol = devServerConfig.https ? 'https' : 'http'; + const enabledHashRouter = appConfig.router?.type === 'hash'; + const urls = prepareURLs( + protocol, + devServerConfig.host, + devServerConfig.port as number, + urlPathname.endsWith('/') ? urlPathname : `${urlPathname}/`, + enabledHashRouter, + ); + + return urls; +}; + +export default getUrls; diff --git a/packages/ice/src/bundler/config/middlewares.ts b/packages/ice/src/bundler/config/middlewares.ts new file mode 100644 index 0000000000..5cb6851e7f --- /dev/null +++ b/packages/ice/src/bundler/config/middlewares.ts @@ -0,0 +1,64 @@ +import type { Configuration as DevServerConfiguration } from 'webpack-dev-server'; +import type { TaskConfig } from 'build-scripts'; +import type { RenderMode } from '@ice/runtime'; +import type { Config } from '@ice/shared-config/types'; +import createMockMiddleware from '../../middlewares/mock/createMiddleware.js'; +import createRenderMiddleware from '../../middlewares/renderMiddleware.js'; +import type { UserConfig } from '../../types/userConfig.js'; +import type RouteManifest from '../../utils/routeManifest.js'; +import type { GetAppConfig } from '../../types/plugin.js'; + +interface SetupOptions { + userConfig: UserConfig; + taskConfig: TaskConfig; + routeManifest: RouteManifest; + getAppConfig: GetAppConfig; + excuteServerEntry: () => Promise; + mock: boolean; + rootDir: string; +} + +function setupMiddlewares(middlewares: Parameters[0], { + userConfig, + taskConfig, + routeManifest, + getAppConfig, + excuteServerEntry, + mock, + rootDir, +}: SetupOptions) { + const { ssr, ssg } = userConfig; + let renderMode: RenderMode; + // If ssr is set to true, use ssr for preview. + if (ssr) { + renderMode = 'SSR'; + } else if (ssg) { + renderMode = 'SSG'; + } + // Both ssr and ssg, should render the whole page in dev mode. + const documentOnly = !ssr && !ssg; + const serverRenderMiddleware = createRenderMiddleware({ + documentOnly, + renderMode, + getAppConfig, + taskConfig, + userConfig, + routeManifest, + excuteServerEntry, + }); + // @ts-ignore property of name is exist. + const insertIndex = middlewares.findIndex(({ name }) => name === 'serve-index'); + middlewares.splice( + insertIndex, 0, + serverRenderMiddleware, + ); + + if (mock) { + const mockMiddleware = createMockMiddleware({ rootDir, exclude: userConfig?.mock?.exclude }); + middlewares.splice(insertIndex, 0, mockMiddleware); + } + return middlewares; +} + + +export default setupMiddlewares; diff --git a/packages/ice/src/bundler/config/output.ts b/packages/ice/src/bundler/config/output.ts new file mode 100644 index 0000000000..1ec47ecfb5 --- /dev/null +++ b/packages/ice/src/bundler/config/output.ts @@ -0,0 +1,62 @@ +import * as path from 'path'; +import fse from 'fs-extra'; +import generateEntry from '../../utils/generateEntry.js'; +import injectInitialEntry from '../../utils/injectInitialEntry.js'; +import { SERVER_OUTPUT_DIR } from '../../constant.js'; +import { logger } from '../../utils/logger.js'; +import type { BundlerOptions } from '../types.js'; + +export async function getOutputPaths(options: { + rootDir: string; + outputDir: string; + serverEntry: string; + bundleOptions: Pick; +}) { + const { outputDir, serverEntry, bundleOptions, rootDir } = options; + const { userConfig } = bundleOptions; + let outputPaths: string[] = []; + if (userConfig.ssg) { + if (!userConfig.htmlGenerating) { + logger.warn('SSG depends on htmlGenerating, SSG will not work when htmlGenerating is set to false.'); + } + } + if (serverEntry && userConfig.htmlGenerating) { + outputPaths = await buildCustomOuputs(rootDir, outputDir, serverEntry, bundleOptions); + } + return outputPaths; +} + +export async function removeServerOutput(outputDir: string, ssr: boolean) { + if (!ssr) { + await fse.remove(path.join(outputDir, SERVER_OUTPUT_DIR)); + } +} +// Build custom outputs such html and js file for weex. +async function buildCustomOuputs( + rootDir: string, + outputDir: string, + serverEntry: string, + bundleOptions: Pick, +) { + const { userConfig, appConfig, routeManifest } = bundleOptions; + const { ssg, output: { distType, prependCode } } = userConfig; + const routeType = appConfig?.router?.type; + const { + outputPaths = [], + } = await generateEntry({ + rootDir, + outputDir, + entry: serverEntry, + // only ssg need to generate the whole page html when build time. + documentOnly: !ssg, + renderMode: ssg ? 'SSG' : undefined, + routeType: appConfig?.router?.type, + distType, + prependCode, + routeManifest, + }); + if (routeType === 'memory' && userConfig?.routes?.injectInitialEntry) { + injectInitialEntry(routeManifest, outputDir); + } + return outputPaths; +} diff --git a/packages/ice/src/bundler/config/plugins.ts b/packages/ice/src/bundler/config/plugins.ts new file mode 100644 index 0000000000..f2ce39d9f9 --- /dev/null +++ b/packages/ice/src/bundler/config/plugins.ts @@ -0,0 +1,68 @@ +import ServerRunnerPlugin from '../../webpack/ServerRunnerPlugin.js'; +import { IMPORT_META_RENDERER, IMPORT_META_TARGET, WEB } from '../../constant.js'; +import getServerCompilerPlugin from '../../utils/getServerCompilerPlugin.js'; +import ReCompilePlugin from '../../webpack/ReCompilePlugin.js'; +import type ServerRunner from '../../service/ServerRunner'; +import type ServerCompileTask from '../../utils/ServerCompileTask.js'; +import type { ServerCompiler, UserConfig } from '../../types'; +import type RouteManifest from '../../utils/routeManifest.js'; + +export const getSpinnerPlugin = (spinner, name?: string) => { + return (compiler) => { + compiler.hooks.beforeCompile.tap('spinner', () => { + spinner.text = `Compiling task ${name || 'web'}...\n`; + }); + compiler.hooks.afterEmit.tap('spinner', () => { + spinner.stop(); + }); + }; +}; + +interface ServerPluginOptions { + serverRunner?: ServerRunner; + serverCompiler?: ServerCompiler; + serverCompileTask?: ServerCompileTask; + rootDir?: string; + outputDir?: string; + target?: string; + serverEntry?: string; + ensureRoutesConfig: () => Promise; + userConfig?: UserConfig; +} +export const getServerPlugin = ({ + serverRunner, + ensureRoutesConfig, + serverCompiler, + target = WEB, + rootDir, + serverEntry, + outputDir, + serverCompileTask, + userConfig, +}: ServerPluginOptions) => { + if (serverRunner) { + return new ServerRunnerPlugin(serverRunner, ensureRoutesConfig); + } else { + // It will be deprecated in the future. + return getServerCompilerPlugin(serverCompiler, { + rootDir, + serverEntry, + outputDir, + serverCompileTask, + userConfig, + ensureRoutesConfig, + runtimeDefineVars: { + [IMPORT_META_TARGET]: JSON.stringify(target), + [IMPORT_META_RENDERER]: JSON.stringify('server'), + }, + }); + } +}; + +export const getReCompilePlugin = (reCompile: (taskKey: string) => void, routeManifest: RouteManifest) => { + return new ReCompilePlugin(reCompile, (files) => { + // Only when routes file changed. + const routeFiles = routeManifest.getRoutesFile(); + return files.some((filePath) => routeFiles.some(routeFile => filePath.includes(routeFile))); + }); +}; diff --git a/packages/ice/src/bundler/rspack/build.ts b/packages/ice/src/bundler/rspack/build.ts new file mode 100644 index 0000000000..3e34d42aea --- /dev/null +++ b/packages/ice/src/bundler/rspack/build.ts @@ -0,0 +1,68 @@ +import { logger } from '../../utils/logger.js'; +import { getOutputPaths, removeServerOutput } from '../config/output.js'; +import type { BuildOptions, CompileResults, MultiStats } from '../types.js'; +import formatStats from './formatStats.js'; + +async function build(options: BuildOptions) { + const { compiler, context, hooksAPI, taskConfigs, rspackConfigs, appConfig, routeManifest } = options; + const { rootDir, extendsPluginAPI, applyHook, userConfig } = context; + const { stats, isSuccessful, messages } = await new Promise((resolve, reject) => { + let messages: { errors: string[]; warnings: string[] }; + compiler.run(async (_, stats: MultiStats) => { + const obj = stats.toJson({ + all: false, + timings: true, + }); + if (!stats.hasErrors()) { + obj.children?.forEach(c => { + c.time && + logger.success(`${c.name} compiled successfully in`, c.time, 'ms'); + }); + } + const { message, level } = formatStats(stats); + let isSuccessful = level !== 'error'; + if (level === 'error' || level === 'warning') { + logger.log(message); + } + compiler.close(() => { + if (isSuccessful) { + resolve({ + stats, + messages, + isSuccessful, + }); + } else { + reject(new Error(message)); + } + }); + }); + }); + + if (isSuccessful) { + const outputDir = rspackConfigs[0].output.path; + const { serverEntry } = await extendsPluginAPI.serverCompileTask.get() || {}; + const outputPaths = await getOutputPaths({ + rootDir, + serverEntry, + outputDir, + bundleOptions: { + userConfig, + appConfig, + routeManifest, + }, + }); + await applyHook('after.build.compile', { + ...hooksAPI, + stats, + isSuccessful, + messages, + taskConfigs, + rspackConfigs, + output: { paths: outputPaths }, + appConfig, + }); + await removeServerOutput(outputDir, userConfig.ssr); + } +} + +export default build; diff --git a/packages/ice/src/bundler/rspack/formatStats.ts b/packages/ice/src/bundler/rspack/formatStats.ts new file mode 100644 index 0000000000..a63265b8d2 --- /dev/null +++ b/packages/ice/src/bundler/rspack/formatStats.ts @@ -0,0 +1,42 @@ +import chalk from 'chalk'; +import formatWebpackMessages from '../../utils/formatWebpackMessages.js'; +import type { Stats, MultiStats } from '../types.js'; + +function formatStats(stats: Stats | MultiStats, showWarnings = true) { + const statsData = stats.toJson({ + preset: 'errors-warnings', + }); + // @ts-ignore + const { errors, warnings } = formatWebpackMessages(statsData); + + if (errors.length) { + const errorMsgs = `${errors.join('\n\n')}\n`; + const isTerserError = errorMsgs.includes('from Terser'); + const title = chalk.red.bold( + isTerserError ? 'Minify Error: ' : 'Compile Error: ', + ); + const tip = chalk.yellow( + isTerserError + ? 'Failed to minify the code with terser, please check if there are any syntax errors in the code.' + : 'Failed to compile the code, please refer to the following errors for troubleshooting.', + ); + + return { + message: `${title}\n${tip}\n${errorMsgs}`, + level: 'error', + }; + } + + // always show warnings in tty mode + if (warnings.length && (showWarnings || process.stdout.isTTY)) { + const title = chalk.yellow.bold('Compile Warning: \n'); + return { + message: `${title}${`${warnings.join('\n\n')}\n`}`, + level: 'warning', + }; + } + + return {}; +} + +export default formatStats; diff --git a/packages/ice/src/bundler/rspack/getConfig.ts b/packages/ice/src/bundler/rspack/getConfig.ts new file mode 100644 index 0000000000..8636ce2d19 --- /dev/null +++ b/packages/ice/src/bundler/rspack/getConfig.ts @@ -0,0 +1,93 @@ +import getRspackConfig from '@ice/rspack-config'; +import type { Configuration } from '@rspack/core'; +import type { Config } from '@ice/shared-config/types'; +import { getRouteExportConfig } from '../../service/config.js'; +import { + RUNTIME_TMP_DIR, + IMPORT_META_TARGET, + IMPORT_META_RENDERER, + CSS_MODULES_LOCAL_IDENT_NAME, + CSS_MODULES_LOCAL_IDENT_NAME_DEV, +} from '../../constant.js'; +import { getReCompilePlugin, getServerPlugin, getSpinnerPlugin } from '../config/plugins.js'; +import { getExpandedEnvs } from '../../utils/runtimeEnv.js'; +import DataLoaderPlugin from '../../webpack/DataLoaderPlugin.js'; +import type { BundlerOptions, Context } from '../types.js'; + +type GetConfig = ( + context: Context, + options: BundlerOptions +) => Promise; + +const getConfig: GetConfig = async (context, options) => { + const { + taskConfigs, + spinner, + routeManifest, + hooksAPI: { + serverRunner, + serverCompiler, + }, + } = options; + const { + rootDir, + userConfig, + getAllPlugin, + extendsPluginAPI: { + serverCompileTask, + getRoutesFile, + generator, + }, + } = context; + const { reCompile, ensureRoutesConfig } = getRouteExportConfig(rootDir); + const getPlugins = (taskConfig: Config): Configuration['plugins'] => { + const { target, outputDir, useDataLoader, server } = taskConfig; + return [ + // Add spinner for webpack task. + getSpinnerPlugin(spinner), + // Add Server runner plugin. + getServerPlugin({ + serverRunner, + ensureRoutesConfig, + serverCompiler, + target, + rootDir, + serverEntry: server?.entry, + outputDir, + serverCompileTask, + userConfig, + }), + // Add ReCompile plugin when routes config changed. + getReCompilePlugin(reCompile, routeManifest), + // Add DataLoader plugin. + useDataLoader && new DataLoaderPlugin({ + serverCompiler, + target, + rootDir, + getAllPlugin, + frameworkExports: generator.getExportList('framework', target), + }), + ].filter(Boolean); + }; + return taskConfigs.map(({ config }) => { + const plugins = getPlugins(config); + return getRspackConfig({ + rootDir, + runtimeTmpDir: RUNTIME_TMP_DIR, + runtimeDefineVars: { + [IMPORT_META_TARGET]: JSON.stringify(config.target), + [IMPORT_META_RENDERER]: JSON.stringify('client'), + }, + getRoutesFile, + getExpandedEnvs, + localIdentName: config.mode === 'development' ? CSS_MODULES_LOCAL_IDENT_NAME_DEV : CSS_MODULES_LOCAL_IDENT_NAME, + taskConfig: { + ...config, + plugins: (config.plugins || []).concat(plugins), + }, + }); + }); +}; + + +export default getConfig; diff --git a/packages/ice/src/bundler/rspack/index.ts b/packages/ice/src/bundler/rspack/index.ts new file mode 100644 index 0000000000..f8323071dd --- /dev/null +++ b/packages/ice/src/bundler/rspack/index.ts @@ -0,0 +1,55 @@ +import type { MultiCompiler } from '@rspack/core'; +import type { RspackDevServer } from '@rspack/dev-server'; +import { logger } from '../../utils/logger.js'; +import type { BundlerOptions, Context } from '../types.js'; +import getConfig from './getConfig.js'; +import start from './start.js'; +import build from './build.js'; + +async function bundler( + context: Context, + options: BundlerOptions, +) { + const { command, applyHook, commandArgs } = context; + const { + taskConfigs, + hooksAPI, + routeManifest, + appConfig, + } = options; + const rspackConfigs = await getConfig(context, options); + await applyHook(`before.${command}.run`, { + commandArgs, + taskConfigs, + rspackConfigs, + ...hooksAPI, + }); + + let compiler: MultiCompiler; + let devServer: RspackDevServer; + try { + const { rspack } = await import('@ice/bundles/esm/rspack.js'); + compiler = rspack(rspackConfigs); + } catch (error) { + logger.error('Webpack compile error.'); + logger.error(error); + } + const buildOptions = { + context, + compiler, + routeManifest, + appConfig, + hooksAPI, + taskConfigs, + rspackConfigs, + }; + if (command === 'start') { + devServer = await start(buildOptions); + } else if (command === 'build') { + await build(buildOptions); + } + return { compiler, devServer }; +} + + +export default bundler; diff --git a/packages/ice/src/bundler/rspack/start.ts b/packages/ice/src/bundler/rspack/start.ts new file mode 100644 index 0000000000..2e5fad3e0a --- /dev/null +++ b/packages/ice/src/bundler/rspack/start.ts @@ -0,0 +1,93 @@ +import type { Configuration as DevServerConfiguration } from '@rspack/dev-server'; +import getDefaultServerConfig from '../config/defaultServerConfig.js'; +import getMiddlewares from '../config/middlewares.js'; +import { logger } from '../../utils/logger.js'; +import getUrls from '../config/getUrls.js'; +import { WEB } from '../../constant.js'; +import type { BuildOptions } from '../types.js'; +import formatStats from './formatStats.js'; + +const start = async ({ + context, + rspackConfigs, + taskConfigs, + routeManifest, + compiler, + appConfig, + hooksAPI, +}: BuildOptions) => { + const { rootDir, applyHook, commandArgs, userConfig, extendsPluginAPI: { excuteServerEntry } } = context; + const customMiddlewares = rspackConfigs[0].devServer?.setupMiddlewares; + const defaultConfig = await getDefaultServerConfig(rspackConfigs[0].devServer, commandArgs); + const webTaskConfig = taskConfigs.find(({ name }) => name === WEB); + const devServerConfig: DevServerConfiguration = { + ...defaultConfig, + ...rspackConfigs[0].devServer, + setupMiddlewares: (middlewares, devServer) => { + const builtInMiddlewares = getMiddlewares(middlewares, { + userConfig, + routeManifest, + getAppConfig: hooksAPI.getAppConfig, + taskConfig: webTaskConfig, + excuteServerEntry, + mock: commandArgs.mock, + rootDir, + }); + return customMiddlewares ? customMiddlewares(builtInMiddlewares, devServer) : builtInMiddlewares; + }, + }; + const routePaths = routeManifest.getFlattenRoute().sort((a, b) => + // Sort by length, shortest path first. + a.split('/').filter(Boolean).length - b.split('/').filter(Boolean).length); + let isFirstCompile = true; + const urls = getUrls({ + taskConfig: webTaskConfig, + appConfig, + devServerConfig, + }); + + const { RspackDevServer } = await import('@ice/bundles/esm/dev-server.js'); + const devServer = new RspackDevServer(devServerConfig, compiler); + + compiler.hooks.done.tap('done', async stats => { + const obj = stats.toJson({ + all: false, + timings: true, + }); + if (!stats.hasErrors()) { + obj.children?.forEach(c => { + c.time && + logger.success(`${c.name} compiled successfully in`, c.time, 'ms'); + }); + } + const { message, level } = formatStats(stats); + let isSuccessful = level !== 'error'; + if (level === 'error' || level === 'warning') { + logger.log(message); + } + + await applyHook('after.start.compile', { + stats, + isSuccessful, + isFirstCompile, + urls, + devUrlInfo: { + devPath: (routePaths[0] || '').replace(/^[/\\]/, ''), + }, + messages: message, + taskConfigs, + ...hooksAPI, + }); + isFirstCompile = false; + }); + + devServer.startCallback(() => { + applyHook('after.start.devServer', { + urls, + devServer, + }); + }); + return devServer; +}; + +export default start; diff --git a/packages/ice/src/bundler/types.ts b/packages/ice/src/bundler/types.ts new file mode 100644 index 0000000000..bac1ba7200 --- /dev/null +++ b/packages/ice/src/bundler/types.ts @@ -0,0 +1,142 @@ +import type { Config } from '@ice/shared-config/types'; +import type ora from '@ice/bundles/compiled/ora/index.js'; +import type { Stats as WebpackStats } from '@ice/bundles/compiled/webpack/index.js'; +import type { AppConfig } from '@ice/runtime/types'; +import type { Configuration, MultiCompiler } from '@rspack/core'; +import type { Context as DefaultContext, TaskConfig } from 'build-scripts'; +import type { ServerCompiler, GetAppConfig, GetRoutesConfig, GetDataloaderConfig, ExtendsPluginAPI } from '../types/plugin.js'; +import type { UserConfig } from '../types/userConfig.js'; +import type RouteManifest from '../utils/routeManifest.js'; +import type ServerRunner from '../service/ServerRunner.js'; + +export type Context = DefaultContext; + +export interface BuildOptions { + context: Context; + rspackConfigs: Configuration[]; + routeManifest: BundlerOptions['routeManifest']; + compiler: MultiCompiler; + appConfig: BundlerOptions['appConfig']; + hooksAPI: BundlerOptions['hooksAPI']; + taskConfigs: BundlerOptions['taskConfigs']; +} + +export interface BundlerOptions { + taskConfigs: TaskConfig[]; + spinner: ora.Ora; + hooksAPI: { + serverCompiler: ServerCompiler; + getAppConfig: GetAppConfig; + getRoutesConfig: GetRoutesConfig; + getDataloaderConfig: GetDataloaderConfig; + /** + * Only for dev + */ + serverRunner?: ServerRunner; + }; + appConfig: AppConfig; + configFile: string; + userConfig: UserConfig; + routeManifest: RouteManifest; +} + +export type CompileResults = { + stats: WebpackStats | MultiStats; + isSuccessful: boolean; + messages: { errors: string[]; warnings: string[] }; +}; + +interface StatsOptionsObj { + all?: boolean; + preset?: 'normal' | 'none' | 'verbose' | 'errors-only' | 'errors-warnings'; + assets?: boolean; + chunks?: boolean; + modules?: boolean; + entrypoints?: boolean; + warnings?: boolean; + warningsCount?: boolean; + errors?: boolean; + errorsCount?: boolean; + colors?: boolean; + timings?: boolean; + + /** Rspack not support below opts */ + cachedAssets?: boolean; + groupAssetsByInfo?: boolean; + groupAssetsByPath?: boolean; + groupAssetsByChunk?: boolean; + groupAssetsByExtension?: boolean; + groupAssetsByEmitStatus?: boolean; +} + +/** webpack not support boolean or string */ +type StatsOptions = StatsOptionsObj; + +interface StatsAssetInfo { + development?: boolean; +} + +export interface StatsAsset { + type: string; + name: string; + size: number; + chunks?: Array; + chunkNames?: Array; + info: StatsAssetInfo; +} + +interface StatsError { + message: string; + formatted?: string; +} + +interface StatsModule { + type?: string; + moduleType?: string; + identifier?: string; + name?: string; + id?: string; + chunks?: Array; + size?: number; +} + +interface StatsCompilation { + assets?: Array; + modules?: Array; + chunks?: Array; + // entrypoints?: Array; + errors?: Array; + errorsCount?: number; + warnings?: Array; + warningsCount?: number; + time?: number; + name?: string; + children?: StatsCompilation[]; +} + +interface StatsChunk { + type?: string; + files?: Array; + id?: string | number; + entry: boolean; + initial: boolean; + names?: Array; + size: number; +} + +export declare class Stats { + constructor(statsJson: any); + hasErrors(): boolean; + hasWarnings(): boolean; + toJson(opts?: StatsOptions): StatsCompilation; + toString(opts?: StatsOptions): string; +} + +export declare class MultiStats { + stats: Stats[]; + hasErrors(): boolean; + hasWarnings(): boolean; + toJson(options?: StatsOptions): StatsCompilation; + toString(options?: StatsOptions): string; +} + diff --git a/packages/ice/src/bundler/webpack/build.ts b/packages/ice/src/bundler/webpack/build.ts new file mode 100644 index 0000000000..7e822775bb --- /dev/null +++ b/packages/ice/src/bundler/webpack/build.ts @@ -0,0 +1,81 @@ +import type webpack from '@ice/bundles/compiled/webpack/index.js'; +import type { StatsCompilation, StatsError, Configuration } from 'webpack'; +import { getOutputPaths, removeServerOutput } from '../config/output.js'; +import { logger } from '../../utils/logger.js'; +import formatWebpackMessages from '../../utils/formatWebpackMessages.js'; +import type { BundlerOptions, CompileResults, Context } from '../types.js'; +// Enable source map support when build. +import 'source-map-support/register.js'; + +async function build( + compiler: webpack.Compiler, + webpackConfigs: Configuration[], + context: Context, + options: BundlerOptions, +) { + const { rootDir, extendsPluginAPI, applyHook } = context; + const { hooksAPI, taskConfigs, appConfig, userConfig, routeManifest } = options; + // Run webpack compiler. + const { stats, isSuccessful, messages } = await new Promise((resolve, reject) => { + let messages: { errors: string[]; warnings: string[] }; + compiler.run(async (err, stats) => { + let statsInfo: StatsCompilation; + if (err) { + if (!err.message) { + reject(err); + return; + } + messages = formatWebpackMessages({ + errors: [err.message as unknown as StatsError], + warnings: [], + }); + } else { + statsInfo = stats.toJson({ all: false, warnings: true, errors: true }); + messages = formatWebpackMessages(statsInfo); + } + if (messages.errors.length) { + logger.briefError('Webpack compile error.'); + logger.debug(statsInfo); + reject(new Error(messages.errors.join('\n\n'))); + } else { + compiler?.close?.(() => {}); + const isSuccessful = !messages.errors.length; + resolve({ + stats, + messages, + isSuccessful, + }); + } + }); + }); + + if (isSuccessful) { + // Generate html when SSG. + const outputDir = webpackConfigs[0].output.path; + const { serverEntry } = await extendsPluginAPI.serverCompileTask.get() || {}; + const outputPaths = await getOutputPaths({ + rootDir, + serverEntry, + outputDir, + bundleOptions: { + userConfig, + appConfig, + routeManifest, + }, + }); + await applyHook('after.build.compile', { + ...hooksAPI, + stats, + isSuccessful, + messages, + taskConfigs, + webpackConfigs, + serverEntryRef: { current: serverEntry }, + output: { paths: outputPaths }, + appConfig, + }); + await removeServerOutput(outputDir, userConfig.ssr); + } +} + +export default build; diff --git a/packages/ice/src/bundler/webpack/getWebpackConfig.ts b/packages/ice/src/bundler/webpack/getWebpackConfig.ts new file mode 100644 index 0000000000..d45402f19d --- /dev/null +++ b/packages/ice/src/bundler/webpack/getWebpackConfig.ts @@ -0,0 +1,126 @@ +import webpack from '@ice/bundles/compiled/webpack/index.js'; +import lodash from '@ice/bundles/compiled/lodash/index.js'; +import { getWebpackConfig as getDefaultWebpackConfig } from '@ice/webpack-config'; +import type { Configuration } from 'webpack'; +import { getExpandedEnvs } from '../../utils/runtimeEnv.js'; +import { getRouteExportConfig } from '../../service/config.js'; +import { getFileHash } from '../../utils/hash.js'; +import DataLoaderPlugin from '../../webpack/DataLoaderPlugin.js'; +import { IMPORT_META_RENDERER, IMPORT_META_TARGET, RUNTIME_TMP_DIR, WEB } from '../../constant.js'; +import { getReCompilePlugin, getServerPlugin, getSpinnerPlugin } from '../config/plugins.js'; +import type RouteManifest from '../../utils/routeManifest.js'; +import type ServerRunnerPlugin from '../../webpack/ServerRunnerPlugin.js'; +import type ServerCompilerPlugin from '../../webpack/ServerCompilerPlugin.js'; +import type { BundlerOptions, Context } from '../types.js'; + +const { debounce } = lodash; + +type GetWebpackConfig = ( + context: Context, + options: BundlerOptions +) => Promise; + +interface DevOptions { + context: Context; + routeManifest: RouteManifest; + reCompile: (taskKey: string) => void; + serverCompilerPlugin?: ServerCompilerPlugin | ServerRunnerPlugin; +} + +const addDevPlugins = (webpackConfig: Configuration, options: DevOptions) => { + const { reCompile, context, routeManifest, serverCompilerPlugin } = options; + const { watch } = context.extendsPluginAPI; + // Add re-compile plugin + webpackConfig.plugins.push( + getReCompilePlugin(reCompile, routeManifest), + ); + const debounceCompile = debounce(() => { + (serverCompilerPlugin as ServerCompilerPlugin)?.buildResult?.context.rebuild(); + console.log('Document updated, try to reload page for latest html content.'); + }, 200); + watch.addEvent([ + /src\/document(\/index)?(.js|.jsx|.tsx)/, + (event: string) => { + if (event === 'change') { + debounceCompile(); + } + }, + ]); +}; + +const getWebpackConfig: GetWebpackConfig = async (context, options) => { + const { hooksAPI: { serverRunner, serverCompiler }, spinner, taskConfigs, routeManifest } = options; + const { + rootDir, + command, + commandArgs, + userConfig, + getAllPlugin, + configFilePath, + extendsPluginAPI: { + serverCompileTask, + getRoutesFile, + generator, + }, + } = context; + const { target = WEB } = commandArgs; + const userConfigHash = await getFileHash(configFilePath); + + const webpackConfigs = taskConfigs.map(({ config }) => { + const { useDevServer, useDataLoader, server } = config; + // If the target in the task config doesn't exit, use the target from cli command option. + config.target ||= target; + let webpackConfig = getDefaultWebpackConfig({ + config, + rootDir, + // @ts-expect-error fix type error of compiled webpack + webpack, + runtimeTmpDir: RUNTIME_TMP_DIR, + userConfigHash, + getExpandedEnvs, + runtimeDefineVars: { + [IMPORT_META_TARGET]: JSON.stringify(target), + [IMPORT_META_RENDERER]: JSON.stringify('client'), + }, + getRoutesFile, + }); + const { reCompile, ensureRoutesConfig } = getRouteExportConfig(rootDir); + const outputDir = webpackConfig.output.path; + const serverCompilerPlugin = useDevServer && getServerPlugin({ + serverRunner, + ensureRoutesConfig, + serverCompiler, + target, + rootDir, + serverEntry: server?.entry, + outputDir, + serverCompileTask, + userConfig, + }); + if (serverCompilerPlugin) { + webpackConfig.plugins.push(serverCompilerPlugin); + } + + if (command === 'start') { + addDevPlugins(webpackConfig, { routeManifest, reCompile, context, serverCompilerPlugin }); + } + if (useDataLoader) { + const frameworkExports = generator.getExportList('framework', target); + webpackConfig.plugins.push(new DataLoaderPlugin({ + serverCompiler, + target, + rootDir, + getAllPlugin, + frameworkExports, + })); + } + // Add spinner for webpack task. + webpackConfig.plugins.push(getSpinnerPlugin(spinner)); + + return webpackConfig; + }); + + return webpackConfigs; +}; + +export default getWebpackConfig; diff --git a/packages/ice/src/bundler/webpack/index.ts b/packages/ice/src/bundler/webpack/index.ts new file mode 100644 index 0000000000..2989a3651c --- /dev/null +++ b/packages/ice/src/bundler/webpack/index.ts @@ -0,0 +1,51 @@ +import webpack from '@ice/bundles/compiled/webpack/index.js'; +import type WebpackDevServer from '@ice/bundles/compiled/webpack-dev-server/lib/Server.js'; +import { logger } from '../../utils/logger.js'; +import type { BundlerOptions, Context } from '../types.js'; +import getWebpackConfig from './getWebpackConfig.js'; +import build from './build.js'; +import { startDevServer, invokeCompilerWatch } from './start.js'; + +async function bundler( + context: Context, + options: BundlerOptions, +) { + const { command, applyHook, commandArgs } = context; + const { + taskConfigs, + hooksAPI, + } = options; + const webpackConfigs = await getWebpackConfig(context, options); + + await applyHook(`before.${command}.run`, { + commandArgs, + taskConfigs, + webpackConfigs, + ...hooksAPI, + }); + + let compiler: webpack.Compiler; + let devServer: WebpackDevServer; + try { + // @ts-ignore + compiler = webpack(webpackConfigs); + } catch (error) { + logger.error('Webpack compile error.'); + logger.error(error); + } + + if (command === 'start') { + const useDevServer = taskConfigs.reduce((prev, curr) => prev || curr.config.useDevServer, false); + if (useDevServer) { + devServer = await startDevServer(compiler, webpackConfigs, context, options); + } else { + await invokeCompilerWatch(compiler, context); + } + } else if (command === 'build') { + await build(compiler, webpackConfigs, context, options); + } + return { compiler, devServer }; +} + + +export default bundler; diff --git a/packages/ice/src/bundler/webpack/start.ts b/packages/ice/src/bundler/webpack/start.ts new file mode 100644 index 0000000000..2f504f0411 --- /dev/null +++ b/packages/ice/src/bundler/webpack/start.ts @@ -0,0 +1,142 @@ +import * as path from 'path'; +import lodash from '@ice/bundles/compiled/lodash/index.js'; +import WebpackDevServer from '@ice/bundles/compiled/webpack-dev-server/lib/Server.js'; +import type { StatsError, Configuration } from 'webpack'; +import type { Configuration as DevServerConfiguration } from 'webpack-dev-server'; +import type webpack from '@ice/bundles/compiled/webpack/index.js'; +import formatWebpackMessages from '../../utils/formatWebpackMessages.js'; +import { logger } from '../../utils/logger.js'; +import { WEB } from '../../constant.js'; +import getMiddlewares from '../config/middlewares.js'; +import getDefaultServerConfig from '../config/defaultServerConfig.js'; +import getUrls from '../config/getUrls.js'; +import type { BundlerOptions, Context } from '../types.js'; + +const { merge } = lodash; + +export async function startDevServer( + compiler: webpack.Compiler, + webpackConfigs: Configuration[], + context: Context, + options: BundlerOptions, +) { + const { rootDir, applyHook, commandArgs, extendsPluginAPI: { excuteServerEntry } } = context; + const { + taskConfigs, + hooksAPI, + routeManifest, + userConfig, + appConfig, + } = options; + const routePaths = routeManifest.getFlattenRoute().sort((a, b) => + // Sort by length, shortest path first. + a.split('/').filter(Boolean).length - b.split('/').filter(Boolean).length); + const webTaskConfig = taskConfigs.find(({ name }) => name === WEB); + const customMiddlewares = webpackConfigs[0].devServer?.setupMiddlewares; + const defaultDevServerConfig = await getDefaultServerConfig(webpackConfigs[0].devServer, commandArgs); + let devServerConfig: DevServerConfiguration = { + ...defaultDevServerConfig, + setupMiddlewares: (middlewares, devServer) => { + const builtInMiddlewares = getMiddlewares(middlewares, { + userConfig, + routeManifest, + getAppConfig: hooksAPI.getAppConfig, + taskConfig: webTaskConfig, + excuteServerEntry, + mock: commandArgs.mock, + rootDir, + }); + return customMiddlewares ? customMiddlewares(builtInMiddlewares, devServer) : builtInMiddlewares; + }, + }; + // merge devServerConfig with webpackConfig.devServer + devServerConfig = merge(webpackConfigs[0].devServer, devServerConfig); + const urls = getUrls({ + taskConfig: webTaskConfig, + devServerConfig, + appConfig, + }); + let isFirstCompile = true; + compiler.hooks.done.tap('done', async stats => { + const statsData = stats.toJson({ + all: false, + warnings: true, + errors: true, + timings: true, + assets: true, + }); + const messages = formatWebpackMessages(statsData); + const isSuccessful = !messages.errors.length; + if (messages.errors.length) { + // Only keep the first error. Others are often indicative + // of the same problem, but confuse the reader with noise. + if (messages.errors.length > 1) { + messages.errors.length = 1; + } + logger.error('Client compiled with errors.'); + console.error(messages.errors.join('\n')); + return; + } else if (messages.warnings.length) { + logger.warn('Client compiled with warnings.'); + logger.warn(messages.warnings.join('\n')); + } + // compiler.hooks.done is AsyncSeriesHook which does not support async function + await applyHook('after.start.compile', { + stats, + isSuccessful, + isFirstCompile, + urls, + devUrlInfo: { + devPath: (routePaths[0] || '').replace(/^[/\\]/, ''), + }, + messages, + taskConfigs, + ...hooksAPI, + }); + if (isSuccessful) { + // if compiled successfully reset first compile flag after been posted to lifecycle hooks + isFirstCompile = false; + } + }); + + const devServer = new WebpackDevServer(devServerConfig, compiler); + devServer.startCallback(() => { + applyHook('after.start.devServer', { + urls, + devServer, + }); + }); + + return devServer; +} + +export async function invokeCompilerWatch( + compiler: webpack.Compiler, + context: Context, +) { + const { userConfig, rootDir } = context; + const { outputDir } = userConfig; + const absoluteOutputDir = path.resolve(rootDir, outputDir); + let messages: { errors: string[]; warnings: string[] }; + compiler.watch({ + aggregateTimeout: 200, + ignored: ['**/node_modules/**', `${absoluteOutputDir}/**`], + }, async (err, stats) => { + if (err) { + if (!err.message) { + throw err; + } + messages = formatWebpackMessages({ + errors: [err.message as unknown as StatsError], + warnings: [], + }); + } else { + messages = formatWebpackMessages(stats.toJson({ all: false, warnings: true, errors: true })); + } + + if (messages.errors.length) { + logger.error('Webpack compile error'); + throw new Error(messages.errors.join('\n\n')); + } + }); +} diff --git a/packages/ice/src/commands/build.ts b/packages/ice/src/commands/build.ts deleted file mode 100644 index f63efb384e..0000000000 --- a/packages/ice/src/commands/build.ts +++ /dev/null @@ -1,205 +0,0 @@ -import * as path from 'path'; -import fse from 'fs-extra'; -import { getWebpackConfig } from '@ice/webpack-config'; -import type { Context, TaskConfig } from 'build-scripts'; -import webpack from '@ice/bundles/compiled/webpack/index.js'; -import type { StatsError, Stats } from 'webpack'; -import type { Config } from '@ice/webpack-config/types'; -import type ora from '@ice/bundles/compiled/ora/index.js'; -import type { AppConfig } from '@ice/runtime/types'; -import type { RenderMode } from '@ice/runtime'; -import type { ServerCompiler, GetAppConfig, GetRoutesConfig, ExtendsPluginAPI, GetDataloaderConfig } from '../types/plugin.js'; -import webpackCompiler from '../service/webpackCompiler.js'; -import formatWebpackMessages from '../utils/formatWebpackMessages.js'; -import { IMPORT_META_RENDERER, IMPORT_META_TARGET, RUNTIME_TMP_DIR, SERVER_OUTPUT_DIR, WEB } from '../constant.js'; -import emptyDir from '../utils/emptyDir.js'; -import type { UserConfig } from '../types/userConfig.js'; -import warnOnHashRouterEnabled from '../utils/warnOnHashRouterEnabled.js'; -import generateEntry from '../utils/generateEntry.js'; -import { logger } from '../utils/logger.js'; -import { getExpandedEnvs } from '../utils/runtimeEnv.js'; -import type RouteManifest from '../utils/routeManifest.js'; -import injectInitialEntry from '../utils/injectInitialEntry.js'; -// Enable source map support when build. -import 'source-map-support/register.js'; - -const build = async ( - context: Context, - options: { - taskConfigs: TaskConfig[]; - serverCompiler: ServerCompiler; - spinner: ora.Ora; - getAppConfig: GetAppConfig; - appConfig: AppConfig; - getRoutesConfig: GetRoutesConfig; - getDataloaderConfig: GetDataloaderConfig; - userConfigHash: string; - userConfig: UserConfig; - routeManifest: RouteManifest; - }, -) => { - const { - taskConfigs, - serverCompiler, - spinner, - getAppConfig, - appConfig, - getRoutesConfig, - getDataloaderConfig, - userConfigHash, - userConfig, - routeManifest, - } = options; - - const { applyHook, commandArgs, rootDir, extendsPluginAPI: { serverCompileTask, getRoutesFile } } = context; - const { target = WEB } = commandArgs; - - if (appConfig?.router?.type === 'hash') { - warnOnHashRouterEnabled(userConfig); - } - - const webpackConfigs = taskConfigs.map(({ config }) => { - // If the target in the task config doesn't exit, use the target from cli command option. - config.target ||= target; - - return getWebpackConfig({ - config, - rootDir, - // @ts-expect-error fix type error of compiled webpack - webpack, - runtimeTmpDir: RUNTIME_TMP_DIR, - userConfigHash, - getExpandedEnvs, - runtimeDefineVars: { - [IMPORT_META_TARGET]: JSON.stringify(target), - [IMPORT_META_RENDERER]: JSON.stringify('client'), - }, - getRoutesFile, - }); - }); - const outputDir = webpackConfigs[0].output.path; - - await emptyDir(outputDir); - const hooksAPI = { - serverCompiler, - getAppConfig, - getRoutesConfig, - getDataloaderConfig, - }; - const compiler = await webpackCompiler({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, - }); - - const serverEntryRef = { current: null }; - const output = { - paths: [], - }; - - type CompileResults = { - stats: Stats; - isSuccessful: boolean; - messages: { errors: string[]; warnings: string[] }; - }; - const { stats, isSuccessful, messages } = await new Promise((resolve, reject) => { - let messages: { errors: string[]; warnings: string[] }; - compiler.run(async (err, stats) => { - if (err) { - if (!err.message) { - reject(err); - return; - } - messages = formatWebpackMessages({ - errors: [err.message as unknown as StatsError], - warnings: [], - }); - } else { - messages = formatWebpackMessages(stats.toJson({ all: false, warnings: true, errors: true })); - } - - if (messages.errors.length) { - logger.error('Webpack compile error.'); - reject(new Error(messages.errors.join('\n\n'))); - return; - } else { - compiler?.close?.(() => { }); - const isSuccessful = !messages.errors.length; - resolve({ - stats, - messages, - isSuccessful, - }); - } - }); - }); - - const { - ssg, - output: { - distType, - prependCode, - }, - htmlGenerating, - } = userConfig; - let renderMode: RenderMode; - if (ssg) { - renderMode = 'SSG'; - if (!htmlGenerating) { - logger.warn('SSG depends on htmlGenerating, SSG will not work when htmlGenerating is set to false.'); - } - } - const { serverEntry } = await serverCompileTask.get() || {}; - if (serverEntry && htmlGenerating) { - serverEntryRef.current = serverEntry; - const routeType = appConfig?.router?.type; - const { - outputPaths = [], - } = await generateEntry({ - rootDir, - outputDir, - entry: serverEntry, - // only ssg need to generate the whole page html when build time. - documentOnly: !ssg, - renderMode, - routeType: appConfig?.router?.type, - distType, - prependCode, - routeManifest, - }); - // This depends on orders. - output.paths = [...outputPaths]; - if (routeType === 'memory' && userConfig?.routes?.injectInitialEntry) { - injectInitialEntry(routeManifest, outputDir); - } - } - - await applyHook('after.build.compile', { - stats, - isSuccessful, - messages, - taskConfigs, - webpackConfigs, - serverCompiler, - serverEntryRef, - output, - getAppConfig, - getRoutesConfig, - getDataloaderConfig, - appConfig, - }); - - await removeServerOutput(outputDir, userConfig.ssr); - - return { compiler }; -}; - -async function removeServerOutput(outputDir: string, ssr: boolean) { - if (!ssr) { - await fse.remove(path.join(outputDir, SERVER_OUTPUT_DIR)); - } -} - -export default build; diff --git a/packages/ice/src/commands/start.ts b/packages/ice/src/commands/start.ts deleted file mode 100644 index 4549d96255..0000000000 --- a/packages/ice/src/commands/start.ts +++ /dev/null @@ -1,268 +0,0 @@ -import * as path from 'path'; -import detectPort from 'detect-port'; -import type { Configuration as DevServerConfiguration } from 'webpack-dev-server'; -import type { Context, TaskConfig } from 'build-scripts'; -import type { StatsError, Compiler, Configuration } from 'webpack'; -import type { Config } from '@ice/webpack-config/types'; -import type { AppConfig, RenderMode } from '@ice/runtime'; -import type ora from '@ice/bundles/compiled/ora/index.js'; -import WebpackDevServer from '@ice/bundles/compiled/webpack-dev-server/lib/Server.js'; -import webpack from '@ice/bundles/compiled/webpack/index.js'; -import lodash from '@ice/bundles/compiled/lodash/index.js'; -import { getWebpackConfig } from '@ice/webpack-config'; -import type { ExtendsPluginAPI, ServerCompiler, GetAppConfig, GetRoutesConfig, GetDataloaderConfig } from '../types'; -import { IMPORT_META_RENDERER, IMPORT_META_TARGET, RUNTIME_TMP_DIR, WEB, DEFAULT_HOST, DEFAULT_PORT } from '../constant.js'; -import webpackCompiler from '../service/webpackCompiler.js'; -import formatWebpackMessages from '../utils/formatWebpackMessages.js'; -import prepareURLs from '../utils/prepareURLs.js'; -import createRenderMiddleware from '../middlewares/renderMiddleware.js'; -import createMockMiddleware from '../middlewares/mock/createMiddleware.js'; -import getRouterBasename from '../utils/getRouterBasename.js'; -import { getExpandedEnvs } from '../utils/runtimeEnv.js'; -import { logger } from '../utils/logger.js'; -import type ServerRunner from '../service/ServerRunner.js'; -import type RouteManifest from '../utils/routeManifest.js'; - -const { merge } = lodash; - -const start = async ( - context: Context, - options: { - routeManifest: RouteManifest; - taskConfigs: TaskConfig[]; - serverCompiler: ServerCompiler; - appConfig: AppConfig; - devPath: string; - spinner: ora.Ora; - getAppConfig: GetAppConfig; - getRoutesConfig: GetRoutesConfig; - getDataloaderConfig: GetDataloaderConfig; - userConfigHash: string; - serverRunner?: ServerRunner; - }, -) => { - const { - taskConfigs, - serverCompiler, - appConfig, - devPath, - spinner, - getAppConfig, - getRoutesConfig, - getDataloaderConfig, - userConfigHash, - routeManifest, - serverRunner, - } = options; - const { commandArgs, rootDir, extendsPluginAPI } = context; - const { target = WEB } = commandArgs; - const { getRoutesFile } = extendsPluginAPI; - const webpackConfigs = taskConfigs.map(({ config }) => { - // If the target in the task config doesn't exit, use the target from cli command option. - config.target ||= target; - - return getWebpackConfig({ - config, - rootDir, - // @ts-expect-error fix type error of compiled webpack - webpack, - runtimeTmpDir: RUNTIME_TMP_DIR, - userConfigHash, - getExpandedEnvs, - runtimeDefineVars: { - [IMPORT_META_TARGET]: JSON.stringify(target), - [IMPORT_META_RENDERER]: JSON.stringify('client'), - }, - getRoutesFile, - }); - }); - - const hooksAPI = { - serverCompiler, - getAppConfig, - getRoutesConfig, - getDataloaderConfig, - serverRunner, - }; - - const useDevServer = taskConfigs.reduce((prev, curr) => prev || curr.config.useDevServer, false); - if (useDevServer) { - return (await startDevServer({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, - appConfig, - devPath, - routeManifest, - })); - } else { - return (await invokeCompilerWatch({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, - })); - } -}; - -interface StartDevServerOptions { - context: Context; - webpackConfigs: Configuration[]; - taskConfigs: TaskConfig[]; - spinner: ora.Ora; - hooksAPI: { - serverCompiler: ServerCompiler; - getAppConfig: GetAppConfig; - getRoutesConfig: GetRoutesConfig; - getDataloaderConfig: GetDataloaderConfig; - }; - appConfig: AppConfig; - devPath: string; - routeManifest: RouteManifest; -} -async function startDevServer({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, - appConfig, - devPath, - routeManifest, -}: StartDevServerOptions): Promise<{ compiler: Compiler; devServer: WebpackDevServer }> { - const { commandArgs, userConfig, rootDir, applyHook, extendsPluginAPI: { excuteServerEntry } } = context; - const { ssg, ssr } = userConfig; - const { getAppConfig } = hooksAPI; - const webTaskConfig = taskConfigs.find(({ name }) => name === WEB); - const customMiddlewares = webpackConfigs[0].devServer?.setupMiddlewares; - // Get the value of the host and port from the command line, environment variables, and webpack config. - // Value priority: process.env.PORT > commandArgs > webpackConfig > DEFAULT. - const host = process.env.HOST || - commandArgs.host || - webpackConfigs[0].devServer?.host || - DEFAULT_HOST; - const port = process.env.PORT || - commandArgs.port || - webpackConfigs[0].devServer?.port || - await detectPort(DEFAULT_PORT); - - - let devServerConfig: DevServerConfiguration = { - port, - host, - setupMiddlewares: (middlewares, devServer) => { - let renderMode: RenderMode; - // If ssr is set to true, use ssr for preview. - if (ssr) { - renderMode = 'SSR'; - } else if (ssg) { - renderMode = 'SSG'; - } - // both ssr and ssg, should render the whole page in dev mode. - const documentOnly = !ssr && !ssg; - const middlewareOptions = { - documentOnly, - renderMode, - getAppConfig, - taskConfig: webTaskConfig, - userConfig, - routeManifest, - }; - const serverRenderMiddleware = createRenderMiddleware({ - ...middlewareOptions, - excuteServerEntry, - }); - // @ts-ignore - const insertIndex = middlewares.findIndex(({ name }) => name === 'serve-index'); - middlewares.splice( - insertIndex, 0, - serverRenderMiddleware, - ); - - if (commandArgs.mock) { - const mockMiddleware = createMockMiddleware({ rootDir, exclude: userConfig?.mock?.exclude }); - middlewares.splice(insertIndex, 0, mockMiddleware); - } - return customMiddlewares ? customMiddlewares(middlewares, devServer) : middlewares; - }, - }; - // merge devServerConfig with webpackConfig.devServer - devServerConfig = merge(webpackConfigs[0].devServer, devServerConfig); - const protocol = devServerConfig.https ? 'https' : 'http'; - let urlPathname = getRouterBasename(webTaskConfig, appConfig) || '/'; - const enabledHashRouter = appConfig.router?.type === 'hash'; - const urls = prepareURLs( - protocol, - devServerConfig.host, - devServerConfig.port as number, - urlPathname.endsWith('/') ? urlPathname : `${urlPathname}/`, - enabledHashRouter, - ); - const compiler = await webpackCompiler({ - context, - webpackConfigs, - taskConfigs, - urls, - hooksAPI, - spinner, - devPath, - }); - const devServer = new WebpackDevServer(devServerConfig, compiler); - devServer.startCallback(() => { - applyHook('after.start.devServer', { - urls, - devServer, - }); - }); - return { compiler, devServer }; -} - -async function invokeCompilerWatch({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, -}: Pick< - StartDevServerOptions, - 'context' | 'webpackConfigs' | 'taskConfigs' | 'spinner' | 'hooksAPI' ->): Promise<{ compiler: Compiler }> { - const compiler = await webpackCompiler({ - context, - webpackConfigs, - taskConfigs, - spinner, - hooksAPI, - }); - const { userConfig, rootDir } = context; - const { outputDir } = userConfig; - const absoluteOutputDir = path.resolve(rootDir, outputDir); - let messages: { errors: string[]; warnings: string[] }; - compiler.watch({ - aggregateTimeout: 200, - ignored: ['**/node_modules/**', `${absoluteOutputDir}/**`], - }, async (err, stats) => { - if (err) { - if (!err.message) { - throw err; - } - messages = formatWebpackMessages({ - errors: [err.message as unknown as StatsError], - warnings: [], - }); - } else { - messages = formatWebpackMessages(stats.toJson({ all: false, warnings: true, errors: true })); - } - - if (messages.errors.length) { - logger.error('Webpack compile error'); - throw new Error(messages.errors.join('\n\n')); - } - }); - return { compiler }; -} - -export default start; diff --git a/packages/ice/src/commands/test.ts b/packages/ice/src/commands/test.ts index 2bf84c4343..a5e43bc22e 100644 --- a/packages/ice/src/commands/test.ts +++ b/packages/ice/src/commands/test.ts @@ -1,5 +1,5 @@ import type { Context, TaskConfig } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type ora from '@ice/bundles/compiled/ora/index.js'; function test( diff --git a/packages/ice/src/config.ts b/packages/ice/src/config.ts index def093188a..4db01cee1c 100644 --- a/packages/ice/src/config.ts +++ b/packages/ice/src/config.ts @@ -1,7 +1,7 @@ import { createRequire } from 'module'; import trustCert from '@ice/bundles/compiled/trusted-cert/index.js'; import fse from 'fs-extra'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { UserConfigContext } from 'build-scripts'; import lodash from '@ice/bundles/compiled/lodash/index.js'; import type { UserConfig } from './types/userConfig.js'; @@ -433,6 +433,10 @@ const cliOption = [ name: 'open', commands: ['start'], }, + { + name: 'speedup', + commands: ['start', 'build'], + }, { name: 'mode', commands: ['start', 'build', 'test'], diff --git a/packages/ice/src/constant.ts b/packages/ice/src/constant.ts index 276b50c1b2..42158a8131 100644 --- a/packages/ice/src/constant.ts +++ b/packages/ice/src/constant.ts @@ -74,3 +74,6 @@ export const RUNTIME_EXPORTS = [ source: '@ice/runtime', }, ]; + +export const CSS_MODULES_LOCAL_IDENT_NAME = '[local]_[hash:8]'; +export const CSS_MODULES_LOCAL_IDENT_NAME_DEV = '[path][name][ext]__[local]'; diff --git a/packages/ice/src/createService.ts b/packages/ice/src/createService.ts index 95993d4c1f..c94cba07bf 100644 --- a/packages/ice/src/createService.ts +++ b/packages/ice/src/createService.ts @@ -3,10 +3,9 @@ import { fileURLToPath } from 'url'; import { createRequire } from 'module'; import { Context } from 'build-scripts'; import type { CommandArgs, CommandName } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { AppConfig } from '@ice/runtime/types'; import webpack from '@ice/bundles/compiled/webpack/index.js'; -import fg from 'fast-glob'; import type { DeclarationData, PluginData, @@ -17,8 +16,6 @@ import { DeclarationType } from './types/index.js'; import Generator from './service/runtimeGenerator.js'; import { createServerCompiler } from './service/serverCompiler.js'; import createWatch from './service/watchSource.js'; -import start from './commands/start.js'; -import build from './commands/build.js'; import pluginWeb from './plugins/web/index.js'; import test from './commands/test.js'; import getWatchEvents from './getWatchEvents.js'; @@ -32,13 +29,14 @@ import ServerCompileTask from './utils/ServerCompileTask.js'; import { getAppExportConfig, getRouteExportConfig } from './service/config.js'; import renderExportsTemplate from './utils/renderExportsTemplate.js'; import { getFileExports } from './service/analyze.js'; -import { getFileHash } from './utils/hash.js'; import { logger, createLogger } from './utils/logger.js'; import ServerRunner from './service/ServerRunner.js'; import RouteManifest from './utils/routeManifest.js'; import dynamicImport from './utils/dynamicImport.js'; import mergeTaskConfig from './utils/mergeTaskConfig.js'; import addPolyfills from './utils/runtimePolyfill.js'; +import webpackBundler from './bundler/webpack/index.js'; +import rspackBundler from './bundler/rspack/index.js'; const require = createRequire(import.meta.url); const __dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -222,7 +220,6 @@ async function createService({ rootDir, command, commandArgs }: CreateServiceOpt // get userConfig after setup because of userConfig maybe modified by plugins const { userConfig } = ctx; const { routes: routesConfig, server, syntaxFeatures, polyfill, output: { distType } } = userConfig; - const userConfigHash = await getFileHash(path.join(rootDir, fg.sync(configFile, { cwd: rootDir })[0])); const coreEnvKeys = getCoreEnvKeys(); @@ -316,6 +313,7 @@ async function createService({ rootDir, command, commandArgs }: CreateServiceOpt logger.debug('template render cost:', new Date().getTime() - renderStart); if (server.onDemand && command === 'start') { serverRunner = new ServerRunner({ + speedup: commandArgs.speedup, rootDir, task: platformTaskConfig, server, @@ -336,6 +334,7 @@ async function createService({ rootDir, command, commandArgs }: CreateServiceOpt rootDir, task: platformTaskConfig, command, + speedup: commandArgs.speedup, server, syntaxFeatures, getRoutesFile: () => routeManifest.getRoutesFile(), @@ -361,43 +360,31 @@ async function createService({ rootDir, command, commandArgs }: CreateServiceOpt return { run: async () => { + const bundlerConfig = { + taskConfigs, + spinner: buildSpinner, + routeManifest, + appConfig, + hooksAPI: { + getAppConfig, + getRoutesConfig, + getDataloaderConfig, + serverRunner, + serverCompiler, + }, + userConfig, + configFile, + }; try { - if (command === 'start') { - const routePaths = routeManifest.getFlattenRoute() - .sort((a, b) => - // Sort by length, shortest path first. - a.split('/').filter(Boolean).length - b.split('/').filter(Boolean).length); - return await start(ctx, { - routeManifest, - taskConfigs, - serverCompiler, - getRoutesConfig, - getDataloaderConfig, - getAppConfig, - appConfig, - devPath: (routePaths[0] || '').replace(/^[/\\]/, ''), - spinner: buildSpinner, - userConfigHash, - serverRunner, - }); - } else if (command === 'build') { - return await build(ctx, { - routeManifest, - getRoutesConfig, - getDataloaderConfig, - getAppConfig, - appConfig, - taskConfigs, - serverCompiler, - spinner: buildSpinner, - userConfigHash, - userConfig, - }); - } else if (command === 'test') { + if (command === 'test') { return test(ctx, { taskConfigs, spinner: buildSpinner, }); + } else { + return commandArgs.speedup + ? await rspackBundler(ctx, bundlerConfig) + : await webpackBundler(ctx, bundlerConfig); } } catch (error) { buildSpinner.stop(); diff --git a/packages/ice/src/getWatchEvents.ts b/packages/ice/src/getWatchEvents.ts index 8bb5081d8f..05eda45a47 100644 --- a/packages/ice/src/getWatchEvents.ts +++ b/packages/ice/src/getWatchEvents.ts @@ -1,6 +1,6 @@ import * as path from 'path'; import type { Context } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { WatchEvent } from './types/plugin.js'; import { generateRoutesInfo, getRoutesDefinition } from './routes.js'; import type Generator from './service/runtimeGenerator'; diff --git a/packages/ice/src/middlewares/renderMiddleware.ts b/packages/ice/src/middlewares/renderMiddleware.ts index ab7357659a..718be0edff 100644 --- a/packages/ice/src/middlewares/renderMiddleware.ts +++ b/packages/ice/src/middlewares/renderMiddleware.ts @@ -2,7 +2,7 @@ import type { ExpressRequestHandler, Middleware } from 'webpack-dev-server'; import type { ServerContext, RenderMode } from '@ice/runtime'; import matchRoutes from '@ice/runtime/matchRoutes'; import type { TaskConfig } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { ExtendsPluginAPI } from '../types/plugin.js'; import getRouterBasename from '../utils/getRouterBasename.js'; import warnOnHashRouterEnabled from '../utils/warnOnHashRouterEnabled.js'; diff --git a/packages/ice/src/plugins/web/task.ts b/packages/ice/src/plugins/web/task.ts index 78d6ce4da4..5b792793a6 100644 --- a/packages/ice/src/plugins/web/task.ts +++ b/packages/ice/src/plugins/web/task.ts @@ -1,6 +1,6 @@ import * as path from 'path'; import { createRequire } from 'module'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import { CACHE_DIR, RUNTIME_TMP_DIR, WEB } from '../../constant.js'; const require = createRequire(import.meta.url); diff --git a/packages/ice/src/service/ServerRunner.ts b/packages/ice/src/service/ServerRunner.ts index 3ab8a44dad..214e4ac7d3 100644 --- a/packages/ice/src/service/ServerRunner.ts +++ b/packages/ice/src/service/ServerRunner.ts @@ -1,22 +1,22 @@ import * as path from 'path'; import fse from 'fs-extra'; import fg from 'fast-glob'; -import { getCompilerPlugins, getCSSModuleLocalIdent } from '@ice/webpack-config'; +import { getCompilerPlugins } from '@ice/shared-config'; import moduleLexer from '@ice/bundles/compiled/es-module-lexer/index.js'; import MagicString from '@ice/bundles/compiled/magic-string/index.js'; import type { TaskConfig } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { PluginBuild, OnResolveOptions, Plugin, OnLoadResult, OnResolveResult } from 'esbuild'; import emptyCSSPlugin from '../esbuild/emptyCSS.js'; import ignorePlugin from '../esbuild/ignore.js'; import cssModulesPlugin from '../esbuild/cssModules.js'; import createAssetsPlugin from '../esbuild/assets.js'; import externalPlugin from '../esbuild/external.js'; -import escapeLocalIdent from '../utils/escapeLocalIdent.js'; import transformPipePlugin from '../esbuild/transformPipe.js'; import type { CompilerOptions } from '../types/plugin.js'; import type { UserConfig } from '../types/userConfig.js'; import { logger } from '../utils/logger.js'; +import getCSSModuleIdent from '../utils/getCSSModuleIdent.js'; import { resolveId as resolveWithAlias } from './analyze.js'; import Runner from './Runner.js'; import { RuntimeMeta } from './onDemandPreBundle.js'; @@ -28,6 +28,7 @@ interface InitOptions { csr: boolean; task: TaskConfig; getRoutesFile: () => string[]; + speedup: boolean; } type ResolveCallback = Parameters[1]; @@ -90,6 +91,7 @@ class ServerRunner extends Runner { rootDir, csr, getRoutesFile, + speedup, }: InitOptions) { const transformPlugins = getCompilerPlugins(rootDir, { ...task.config, @@ -118,6 +120,7 @@ class ServerRunner extends Runner { ignores, external: server.externals || [], define, + speedup, }); const esbuildPlugins = [ @@ -131,9 +134,15 @@ class ServerRunner extends Runner { server?.ignores && ignorePlugin(server.ignores), cssModulesPlugin({ extract: false, - generateLocalIdentName: function (name: string, filename: string) { - // Compatible with webpack css-loader. - return escapeLocalIdent(getCSSModuleLocalIdent(filename, name)); + generateLocalIdentName: function (name: string, fileName: string) { + return getCSSModuleIdent({ + rootDir, + // ServerRunner only works in development mode. + mode: 'development', + fileName, + localIdentName: name, + rule: speedup ? 'native' : 'loader', + }); }, }), createAssetsPlugin(() => { diff --git a/packages/ice/src/service/onDemandPreBundle.ts b/packages/ice/src/service/onDemandPreBundle.ts index fd420ccf7b..cefc4b3738 100644 --- a/packages/ice/src/service/onDemandPreBundle.ts +++ b/packages/ice/src/service/onDemandPreBundle.ts @@ -24,6 +24,7 @@ interface PreBundleOptions { plugins?: Plugin[]; external?: string[]; define?: Record; + speedup?: boolean; } export class RuntimeMeta { @@ -35,6 +36,7 @@ export class RuntimeMeta { private cachePath: string; private external: string[]; private define: Record; + private speedup: boolean; constructor(options: Omit) { this.rootDir = options.rootDir; @@ -43,6 +45,7 @@ export class RuntimeMeta { this.plugins = options.plugins; this.external = options.external; this.define = options.define; + this.speedup = options.speedup; this.cachePath = path.join(getDepsCacheDir(path.join(this.rootDir, CACHE_DIR)), 'metadata.json'); } @@ -97,6 +100,7 @@ export class RuntimeMeta { define: this.define, pkgName: pkgName, resolveId, + speedup: this.speedup, }); await this.setDepsCache(pkgName, resolveId, bundlePath); return bundlePath; @@ -107,7 +111,7 @@ export class RuntimeMeta { } export default async function preBundleDeps(options: PreBundleOptions): Promise { - const { rootDir, pkgName, alias, ignores, plugins, resolveId, external, define } = options; + const { rootDir, pkgName, alias, ignores, plugins, resolveId, external, define, speedup } = options; const depsCacheDir = getDepsCacheDir(path.join(rootDir, CACHE_DIR)); try { await bundleDeps({ @@ -118,6 +122,8 @@ export default async function preBundleDeps(options: PreBundleOptions): Promise< plugins: plugins || [], external, define, + speedup, + rootDir, }); } catch (err) { logger.error('Failed to bundle dependencies.'); @@ -127,4 +133,4 @@ export default async function preBundleDeps(options: PreBundleOptions): Promise< return { bundlePath: path.join(depsCacheDir, `${pkgName}.mjs`), }; -} \ No newline at end of file +} diff --git a/packages/ice/src/service/preBundleDeps.ts b/packages/ice/src/service/preBundleDeps.ts index e7789408c9..a994ab1b36 100644 --- a/packages/ice/src/service/preBundleDeps.ts +++ b/packages/ice/src/service/preBundleDeps.ts @@ -5,9 +5,8 @@ import { esbuild } from '@ice/bundles'; import type { Plugin, BuildOptions } from 'esbuild'; import { resolve as resolveExports, legacy as resolveLegacy } from 'resolve.exports'; import moduleLexer from '@ice/bundles/compiled/es-module-lexer/index.js'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { TaskConfig } from 'build-scripts'; -import { getCSSModuleLocalIdent } from '@ice/webpack-config'; import flattenId from '../utils/flattenId.js'; import formatPath from '../utils/formatPath.js'; import { BUILDIN_CJS_DEPS, BUILDIN_ESM_DEPS } from '../constant.js'; @@ -15,8 +14,8 @@ import type { DepScanData } from '../esbuild/scan.js'; import externalPlugin from '../esbuild/external.js'; import emptyCSSPlugin from '../esbuild/emptyCSS.js'; import cssModulesPlugin from '../esbuild/cssModules.js'; -import escapeLocalIdent from '../utils/escapeLocalIdent.js'; import { createLogger } from '../utils/logger.js'; +import getCSSModuleIdent from '../utils/getCSSModuleIdent.js'; const logger = createLogger('pre-bundle-deps'); @@ -43,6 +42,7 @@ interface PreBundleDepsOptions { plugins?: Plugin[]; define?: esbuild.BuildOptions['define']; external?: esbuild.BuildOptions['external']; + speedup?: boolean; } /** @@ -55,7 +55,7 @@ export default async function preBundleDeps( depsInfo: Record, options: PreBundleDepsOptions, ): Promise { - const { cacheDir, taskConfig, plugins = [], alias, ignores, define, external = [] } = options; + const { cacheDir, taskConfig, plugins = [], alias, ignores, define, external = [], rootDir, speedup } = options; const metadata = createDepsMetadata(depsInfo, taskConfig); if (!Object.keys(depsInfo)) { @@ -96,6 +96,7 @@ export default async function preBundleDeps( try { await bundleDeps({ + rootDir, entryPoints: flatIdDeps, outdir: depsCacheDir, plugins, @@ -103,6 +104,7 @@ export default async function preBundleDeps( alias, external, define, + speedup, }); await fse.writeJSON(metadataJSONPath, metadata, { spaces: 2 }); @@ -119,6 +121,7 @@ export default async function preBundleDeps( export async function bundleDeps(options: { + rootDir: string; entryPoints: BuildOptions['entryPoints']; outdir: BuildOptions['outdir']; alias: BuildOptions['alias']; @@ -126,8 +129,9 @@ export async function bundleDeps(options: plugins: Plugin[]; external: string[]; define: BuildOptions['define']; + speedup?: boolean; }) { - const { entryPoints, outdir, alias, ignores, plugins, external, define } = options; + const { entryPoints, outdir, alias, ignores, plugins, external, define, speedup, rootDir } = options; return await esbuild.build({ absWorkingDir: process.cwd(), entryPoints, @@ -152,9 +156,15 @@ export async function bundleDeps(options: externalPlugin({ ignores, format: 'esm', externalDependencies: false }), cssModulesPlugin({ extract: false, - generateLocalIdentName: function (name: string, filename: string) { - // Compatible with webpack css-loader. - return escapeLocalIdent(getCSSModuleLocalIdent(filename, name)); + generateLocalIdentName: function (name: string, fileName: string) { + return getCSSModuleIdent({ + rootDir, + // Prebundle only works in development mode. + mode: 'development', + fileName, + localIdentName: name, + rule: speedup ? 'native' : 'loader', + }); }, }), ...plugins, diff --git a/packages/ice/src/service/serverCompiler.ts b/packages/ice/src/service/serverCompiler.ts index ff320a7abb..2118de2302 100644 --- a/packages/ice/src/service/serverCompiler.ts +++ b/packages/ice/src/service/serverCompiler.ts @@ -2,13 +2,12 @@ import * as path from 'path'; import { esbuild } from '@ice/bundles'; import fse from 'fs-extra'; import fg from 'fast-glob'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import lodash from '@ice/bundles/compiled/lodash/index.js'; import type { TaskConfig } from 'build-scripts'; -import { getCompilerPlugins, getCSSModuleLocalIdent } from '@ice/webpack-config'; +import { getCompilerPlugins } from '@ice/shared-config'; import type { ServerCompiler } from '../types/plugin.js'; import type { UserConfig } from '../types/userConfig.js'; -import escapeLocalIdent from '../utils/escapeLocalIdent.js'; import cssModulesPlugin from '../esbuild/cssModules.js'; import externalPlugin from '../esbuild/external.js'; import ignorePlugin from '../esbuild/ignore.js'; @@ -23,6 +22,7 @@ import type { DepScanData } from '../esbuild/scan.js'; import formatPath from '../utils/formatPath.js'; import { createLogger } from '../utils/logger.js'; import { getExpandedEnvs } from '../utils/runtimeEnv.js'; +import getCSSModuleIdent from '../utils/getCSSModuleIdent.js'; import { scanImports } from './analyze.js'; import type { PreBundleDepsMetaData } from './preBundleDeps.js'; import preBundleDeps from './preBundleDeps.js'; @@ -36,6 +36,7 @@ interface Options { server: UserConfig['server']; syntaxFeatures: UserConfig['syntaxFeatures']; getRoutesFile: () => string[]; + speedup: boolean; } const { merge, difference } = lodash; @@ -94,7 +95,7 @@ export const getRuntimeDefination = ( }; export function createServerCompiler(options: Options) { - const { task, rootDir, command, server, syntaxFeatures, getRoutesFile } = options; + const { task, rootDir, command, speedup, server, syntaxFeatures, getRoutesFile } = options; const externals = task.config?.externals || {}; const sourceMap = task.config?.sourceMap; const dev = command === 'start'; @@ -151,6 +152,7 @@ export function createServerCompiler(options: Options) { ignores, rootDir, define, + speedup, external: Object.keys(externals), // Pass transformPlugins only if syntaxFeatures is enabled plugins: enableSyntaxFeatures ? [ @@ -197,9 +199,15 @@ export function createServerCompiler(options: Options) { server?.ignores && ignorePlugin(server.ignores), cssModulesPlugin({ extract: false, - generateLocalIdentName: function (name: string, filename: string) { + generateLocalIdentName: function (name: string, fileName: string) { // Compatible with webpack css-loader. - return escapeLocalIdent(getCSSModuleLocalIdent(filename, name)); + return getCSSModuleIdent({ + rootDir, + mode: dev ? 'development' : 'production', + fileName, + localIdentName: name, + rule: speedup ? 'native' : 'loader', + }); }, }), compilationInfo && createAssetsPlugin(compilationInfo, rootDir), @@ -275,12 +283,13 @@ interface CreateDepsMetadataOptions { ignores: string[]; define: esbuild.BuildOptions['define']; external: esbuild.BuildOptions['external']; + speedup: boolean; } /** * Create dependencies metadata only when server entry is bundled to esm. */ async function createPreBundleDepsMetadata( - { rootDir, task, plugins, alias, ignores, define, external }: CreateDepsMetadataOptions, + { rootDir, task, plugins, alias, ignores, define, external, speedup }: CreateDepsMetadataOptions, ) { const serverEntry = getServerEntry(rootDir, task.config?.server?.entry); const deps = await scanImports([serverEntry], { @@ -312,6 +321,7 @@ async function createPreBundleDepsMetadata( plugins, define, external, + speedup, }); return ret.metadata; diff --git a/packages/ice/src/service/webpackCompiler.ts b/packages/ice/src/service/webpackCompiler.ts index 297c0b655b..0ecacbc930 100644 --- a/packages/ice/src/service/webpackCompiler.ts +++ b/packages/ice/src/service/webpackCompiler.ts @@ -2,7 +2,7 @@ import webpackBundler from '@ice/bundles/compiled/webpack/index.js'; import type ora from '@ice/bundles/compiled/ora/index.js'; import lodash from '@ice/bundles/compiled/lodash/index.js'; import type { TaskConfig, Context } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type webpack from 'webpack'; import type { Urls, ServerCompiler, GetAppConfig, GetRoutesConfig, ExtendsPluginAPI, GetDataloaderConfig } from '../types/plugin.js'; import formatWebpackMessages from '../utils/formatWebpackMessages.js'; diff --git a/packages/ice/src/test/defineJestConfig.ts b/packages/ice/src/test/defineJestConfig.ts index 358db55021..39d79b8569 100644 --- a/packages/ice/src/test/defineJestConfig.ts +++ b/packages/ice/src/test/defineJestConfig.ts @@ -1,7 +1,7 @@ import * as path from 'path'; import type { Config as JestConfig } from 'jest'; import fse from 'fs-extra'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import lodash from '@ice/bundles/compiled/lodash/index.js'; import getTaskConfig from './getTaskConfig.js'; diff --git a/packages/ice/src/types/index.ts b/packages/ice/src/types/index.ts index b24b6ed76b..9531652587 100644 --- a/packages/ice/src/types/index.ts +++ b/packages/ice/src/types/index.ts @@ -2,4 +2,4 @@ export * from './generator.js'; export * from './plugin.js'; export * from './userConfig.js'; // Export type webpack for same instance of webpack. -export type { Config, webpack } from '@ice/webpack-config/types'; +export type { Config, webpack } from '@ice/shared-config/types'; diff --git a/packages/ice/src/types/plugin.ts b/packages/ice/src/types/plugin.ts index 082e5f1634..c4972dbde2 100644 --- a/packages/ice/src/types/plugin.ts +++ b/packages/ice/src/types/plugin.ts @@ -3,7 +3,7 @@ import type { _Plugin, CommandArgs, TaskConfig } from 'build-scripts'; import type { Configuration, Stats, WebpackOptionsNormalized } from '@ice/bundles/compiled/webpack'; import type { esbuild } from '@ice/bundles'; import type { DefineExtraRoutes, NestedRouteManifest } from '@ice/route-manifest'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { AppConfig, AssetsManifest } from '@ice/runtime/types'; import type ServerCompileTask from '../utils/ServerCompileTask.js'; import type { CreateLogger } from '../utils/logger.js'; diff --git a/packages/ice/src/types/userConfig.ts b/packages/ice/src/types/userConfig.ts index 8efced52f2..bbf2435c21 100644 --- a/packages/ice/src/types/userConfig.ts +++ b/packages/ice/src/types/userConfig.ts @@ -2,7 +2,7 @@ import type { DefineRouteFunction, RouteItem } from '@ice/route-manifest'; import type { PluginList } from 'build-scripts'; import type { UnpluginOptions } from '@ice/bundles/compiled/unplugin/index.js'; import type { ProcessOptions } from '@ice/bundles'; -import type { Config, ModifyWebpackConfig, MinimizerOptions } from '@ice/webpack-config/types'; +import type { Config, ModifyWebpackConfig, MinimizerOptions } from '@ice/shared-config/types'; import type { OverwritePluginAPI } from './plugin'; interface SyntaxFeatures { diff --git a/packages/ice/src/utils/getCSSModuleIdent.ts b/packages/ice/src/utils/getCSSModuleIdent.ts new file mode 100644 index 0000000000..ae4b1927d0 --- /dev/null +++ b/packages/ice/src/utils/getCSSModuleIdent.ts @@ -0,0 +1,26 @@ +import * as path from 'path'; +import { getCSSModuleLocalIdent } from '@ice/shared-config'; +import { getCssModulesLocalIdent as getIdentByRust } from '@ice/bundles'; +import { CSS_MODULES_LOCAL_IDENT_NAME, CSS_MODULES_LOCAL_IDENT_NAME_DEV } from '../constant.js'; +import escapeLocalIdent from '../utils/escapeLocalIdent.js'; + +interface Options { + rootDir?: string; + rule?: string; + mode?: 'development' | 'production'; + fileName: string; + localIdentName: string; +} + +const getCSSModuleIdent = (options: Options) => { + const { rootDir, fileName, localIdentName, rule, mode } = options; + if (rule === 'native') { + const template = mode === 'development' ? CSS_MODULES_LOCAL_IDENT_NAME_DEV : CSS_MODULES_LOCAL_IDENT_NAME; + const relativePath = path.isAbsolute(fileName) ? path.relative(rootDir, fileName) : fileName; + return getIdentByRust(relativePath, localIdentName, template); + } else { + return escapeLocalIdent(getCSSModuleLocalIdent(fileName, localIdentName)); + } +}; + +export default getCSSModuleIdent; diff --git a/packages/ice/src/utils/getRouterBasename.ts b/packages/ice/src/utils/getRouterBasename.ts index e3cf7d958e..4ad0e90ec5 100644 --- a/packages/ice/src/utils/getRouterBasename.ts +++ b/packages/ice/src/utils/getRouterBasename.ts @@ -1,5 +1,5 @@ import type { AppConfig } from '@ice/runtime'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import type { TaskConfig } from 'build-scripts'; const getRouterBasename = (taskConfig: TaskConfig, appConfig: AppConfig) => { diff --git a/packages/ice/src/utils/mergeTaskConfig.ts b/packages/ice/src/utils/mergeTaskConfig.ts index b7782a704d..d093fca4e5 100644 --- a/packages/ice/src/utils/mergeTaskConfig.ts +++ b/packages/ice/src/utils/mergeTaskConfig.ts @@ -1,5 +1,5 @@ import type { TaskConfig } from 'build-scripts'; -import type { Config } from '@ice/webpack-config/types'; +import type { Config } from '@ice/shared-config/types'; import lodash from '@ice/bundles/compiled/lodash/index.js'; const { mergeWith } = lodash; diff --git a/packages/ice/src/utils/runtimePolyfill.ts b/packages/ice/src/utils/runtimePolyfill.ts index 459dfae166..941ca7b121 100644 --- a/packages/ice/src/utils/runtimePolyfill.ts +++ b/packages/ice/src/utils/runtimePolyfill.ts @@ -1,4 +1,4 @@ -import { isSupportedFeature } from '@ice/webpack-config'; +import { isSupportedFeature } from '@ice/shared-config'; import type { ExtendsPluginAPI } from '../types/plugin.js'; import type { UserConfig } from '../types/userConfig.js'; diff --git a/packages/ice/src/webpack/ServerCompilerPlugin.ts b/packages/ice/src/webpack/ServerCompilerPlugin.ts index 30032ac3e6..42711e4118 100644 --- a/packages/ice/src/webpack/ServerCompilerPlugin.ts +++ b/packages/ice/src/webpack/ServerCompilerPlugin.ts @@ -60,6 +60,7 @@ export default class ServerCompilerPlugin { compiler.hooks.watchRun.tap(pluginName, () => { this.isCompiling = true; }); + // @ts-expect-error webpack hooks type not match. compiler.hooks.emit.tapPromise(pluginName, async (compilation: Compilation) => { this.isCompiling = false; await this.compileTask(compilation); diff --git a/packages/ice/tsconfig.json b/packages/ice/tsconfig.json index 20bb37a778..ce00f8369f 100644 --- a/packages/ice/tsconfig.json +++ b/packages/ice/tsconfig.json @@ -3,7 +3,8 @@ "compilerOptions": { "rootDir": "src", "outDir": "esm", - "preserveSymlinks": true + "preserveSymlinks": true, + "moduleDetection": "legacy" }, "include": ["src"], "exclude": ["src/shims/*"] diff --git a/packages/plugin-pha/package.json b/packages/plugin-pha/package.json index 2cbdddd683..8579fca562 100644 --- a/packages/plugin-pha/package.json +++ b/packages/plugin-pha/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@ice/app": "^3.2.9", - "build-scripts": "^2.1.1-0", + "build-scripts": "^2.1.2-0", "esbuild": "^0.17.16", "webpack": "^5.88.0", "webpack-dev-server": "^4.9.2" diff --git a/packages/rspack-config/README.md b/packages/rspack-config/README.md new file mode 100644 index 0000000000..08a0ebbfe1 --- /dev/null +++ b/packages/rspack-config/README.md @@ -0,0 +1,3 @@ +# @ice/rspack-config + +This package providers basic rspack configuration. diff --git a/packages/rspack-config/package.json b/packages/rspack-config/package.json new file mode 100644 index 0000000000..3d5324702a --- /dev/null +++ b/packages/rspack-config/package.json @@ -0,0 +1,31 @@ +{ + "name": "@ice/rspack-config", + "version": "1.0.0", + "repository": "alibaba/ice", + "bugs": "https://github.com/alibaba/ice/issues", + "homepage": "https://v3.ice.work", + "type": "module", + "main": "./esm/index.js", + "exports": { + ".": "./esm/index.js" + }, + "files": [ + "esm", + "!esm/**/*.map", + "*.d.ts" + ], + "dependencies": { + "@ice/shared-config": "1.0.0", + "@ice/bundles": "0.1.13" + }, + "devDependencies": { + "@rspack/core": "^0.2.12" + }, + "scripts": { + "watch": "tsc -w", + "build": "tsc" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/rspack-config/src/assetsRule.ts b/packages/rspack-config/src/assetsRule.ts new file mode 100644 index 0000000000..fa04ea23d7 --- /dev/null +++ b/packages/rspack-config/src/assetsRule.ts @@ -0,0 +1,36 @@ +import type { Configuration } from '@rspack/core'; + +const getAssetsRule = () => { + const assetsRule = [ + [/\.woff2?$/, { mimetype: 'application/font-woff' }], + [/\.ttf$/, { mimetype: 'application/octet-stream' }], + [/\.eot$/, { mimetype: 'application/vnd.ms-fontobject' }], + [/\.svg$/, { mimetype: 'image/svg+xml' }, false], + [/\.(png|jpg|webp|jpeg|gif)$/i], + ]; + + const queryRules = [{ + resourceQuery: /raw/, + type: 'asset/source', + }, { + resourceQuery: /url/, + type: 'asset/resource', + }]; + + return (assetsRule.map(([test, ruleOption = {}, urlCondition = true]) => { + return { + test, + type: 'asset', + parser: { + ...(urlCondition ? { + dataUrlCondition: { + maxSize: 8 * 1024, // 8kb + }, + } : {}), + }, + ...(typeof ruleOption === 'object' ? ruleOption : {}), + }; + }) as Configuration['module']['rules']).concat(queryRules); +}; + +export default getAssetsRule; diff --git a/packages/rspack-config/src/client/reactRefresh.cts b/packages/rspack-config/src/client/reactRefresh.cts new file mode 100644 index 0000000000..ea69cc4d40 --- /dev/null +++ b/packages/rspack-config/src/client/reactRefresh.cts @@ -0,0 +1,23 @@ +// Thanks https://github.com/pmmmwh/react-refresh-webpack-plugin +const RefreshUtils = require('@ice/bundles/compiled/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils'); +const RefreshRuntime = require('@ice/bundles/esm/react-refresh-runtime').default; + +// Port from https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/loader/utils/getRefreshModuleRuntime.js#L29 +function refresh(moduleId, webpackHot) { + const currentExports = RefreshUtils.getModuleExports(moduleId); + const fn = exports => { + RefreshUtils.executeRuntime(exports, moduleId, webpackHot); + }; + if (typeof Promise !== "undefined" && currentExports instanceof Promise) { + currentExports.then(fn); + } else { + fn(currentExports); + } +} + +module.exports = { + refresh, + register: RefreshRuntime.register, + createSignatureFunctionForTransform: + RefreshRuntime.createSignatureFunctionForTransform +}; diff --git a/packages/rspack-config/src/cssRules.ts b/packages/rspack-config/src/cssRules.ts new file mode 100644 index 0000000000..fe25ce7640 --- /dev/null +++ b/packages/rspack-config/src/cssRules.ts @@ -0,0 +1,58 @@ +import { createRequire } from 'module'; +import { sass, less } from '@ice/bundles'; +import { getPostcssOpts } from '@ice/shared-config'; +import type { Config } from '@ice/shared-config/types'; +import type { Configuration } from '@rspack/core'; + +const require = createRequire(import.meta.url); + +type CSSRuleConfig = [string, string?, Record?]; +interface Options { + postcssOptions: Config['postcss']; + rootDir: string; + enableRpx2Vw: boolean; +} + +const getCssRules = ({ + rootDir, + postcssOptions, + enableRpx2Vw, +}: Options): Configuration['module']['rules'] => { + const rules: CSSRuleConfig[] = [ + ['css'], + ['less', require.resolve('@ice/bundles/compiled/less-loader'), { + lessOptions: { javascriptEnabled: true }, + implementation: less, + }], + ['scss', require.resolve('@ice/bundles/compiled/sass-loader'), { + implementation: sass, + }], + ]; + + const defailtOpts = { + sourceMap: true, + }; + const postcssOpts = getPostcssOpts({ rootDir, userPostcssOptions: postcssOptions, enableRpx2Vw }); + const cssRules = rules.map(([suffix, loader, options]) => { + return { + test: new RegExp(`\\.${suffix}$`), + use: [ + { + loader: require.resolve('@ice/bundles/compiled/postcss-loader'), + options: { + ...defailtOpts, + ...postcssOpts, + }, + }, + loader && { + loader, + options: { ...defailtOpts, ...options }, + }, + ].filter(Boolean), + type: 'css/auto', + }; + }); + return cssRules; +}; + +export default getCssRules; diff --git a/packages/rspack-config/src/index.ts b/packages/rspack-config/src/index.ts new file mode 100644 index 0000000000..6599892416 --- /dev/null +++ b/packages/rspack-config/src/index.ts @@ -0,0 +1,170 @@ +import * as path from 'path'; +import { createRequire } from 'module'; +import { compilationPlugin, compileExcludes, getDefineVars } from '@ice/shared-config'; +import type { Config } from '@ice/shared-config/types'; +import type { Configuration } from '@rspack/core'; +import AssetManifest from './plugins/AssetManifest.js'; +import getSplitChunks from './splitChunks.js'; +import getAssetsRule from './assetsRule.js'; +import getCssRules from './cssRules.js'; + +interface GetRspackConfigOptions { + rootDir: string; + taskConfig: Config; + runtimeTmpDir: string; + getExpandedEnvs: () => Record; + runtimeDefineVars?: Record; + getRoutesFile?: () => string[]; + localIdentName?: string; +} + +type GetConfig = ( + options: GetRspackConfigOptions, +) => Configuration; + +const require = createRequire(import.meta.url); + +const getConfig: GetConfig = (options) => { + const { + rootDir, + taskConfig, + runtimeTmpDir, + getExpandedEnvs, + runtimeDefineVars, + getRoutesFile, + localIdentName, + } = options; + + const { + mode, + publicPath = '/', + cacheDir, + outputDir = 'build', + sourceMap, + externals = {}, + alias = {}, + compileIncludes, + polyfill, + swcOptions, + hash, + define = {}, + splitChunks, + enableRpx2Vw = true, + postcss, + proxy, + devServer = {}, + plugins = [], + } = taskConfig || {}; + const absoluteOutputDir = path.isAbsolute(outputDir) ? outputDir : path.join(rootDir, outputDir); + const hashKey = hash === true ? 'hash:8' : (hash || ''); + const compilation = compilationPlugin({ + rootDir, + cacheDir, + sourceMap, + fastRefresh: false, + mode, + compileIncludes, + compileExcludes, + swcOptions, + polyfill, + enableEnv: true, + getRoutesFile, + }); + const cssFilename = `css/${hashKey ? `[name]-[${hashKey}].css` : '[name].css'}`; + const config: Configuration = { + entry: { + main: [path.join(rootDir, runtimeTmpDir, 'entry.client.tsx')], + }, + name: 'web', + mode, + externals, + output: { + clean: true, + publicPath, + path: absoluteOutputDir, + filename: `js/${hashKey ? `[name]-[${hashKey}].js` : '[name].js'}`, + cssFilename, + cssChunkFilename: cssFilename, + assetModuleFilename: 'assets/[name].[hash:8][ext]', + }, + context: rootDir, + module: { + rules: [ + // Compliation rules for js / ts. + { + test: compilation.transformInclude, + use: [{ + loader: require.resolve('@ice/shared-config/compilation-loader'), + options: { + transform: compilation.transform, + }, + }], + }, + ...getAssetsRule(), + ...getCssRules({ + rootDir, + enableRpx2Vw, + postcssOptions: postcss, + }), + ], + }, + resolve: { + alias, + }, + watchOptions: { + ignored: /node_modules/, + aggregateTimeout: 100, + }, + optimization: { + splitChunks: typeof splitChunks == 'object' + ? splitChunks + : getSplitChunks(rootDir, splitChunks), + }, + // @ts-expect-error plugin instance defined by default in not compatible with rspack. + plugins: [ + new AssetManifest({ + fileName: 'assets-manifest.json', + outputDir: path.join(rootDir, runtimeTmpDir), + }), + ...plugins, + ].filter(Boolean), + builtins: { + define: getDefineVars(define, runtimeDefineVars, getExpandedEnvs), + provide: { + process: [require.resolve('process/browser')], + $ReactRefreshRuntime$: [require.resolve('./client/reactRefresh.cjs')], + }, + devFriendlySplitChunks: true, + css: { + modules: { localIdentName }, + }, + }, + stats: 'none', + infrastructureLogging: { + level: 'warn', + }, + devServer: { + allowedHosts: 'all', + headers: { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': '*', + 'Access-Control-Allow-Headers': '*', + }, + // @ts-expect-error devServer.hot in rspack only support boolean. + hot: true, + compress: false, + proxy, + devMiddleware: { + publicPath, + }, + client: { + logging: 'info', + }, + ...devServer, + }, + }; + return config; +}; + + +export default getConfig; diff --git a/packages/rspack-config/src/plugins/AssetManifest.ts b/packages/rspack-config/src/plugins/AssetManifest.ts new file mode 100644 index 0000000000..e51f67e67f --- /dev/null +++ b/packages/rspack-config/src/plugins/AssetManifest.ts @@ -0,0 +1,75 @@ +import { existsSync } from 'fs'; +import { resolve } from 'path'; +import type { Compiler, Compilation, RspackPluginInstance } from '@rspack/core'; + +export default class AssetManifest implements RspackPluginInstance { + private fileName: string; + private outputDir: string; + + constructor(options) { + this.fileName = options?.fileName || 'assets-manifest.json'; + this.outputDir = options?.outputDir || './'; + } + + apply(compiler: Compiler) { + compiler.hooks.thisCompilation.tap(this.constructor.name, (compilation) => { + compilation.hooks.processAssets.tapAsync( + { + name: this.constructor.name, + stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE, + }, + (_: Compilation['assets'], callback) => { + const entries = {}; + const pages = {}; + // TODO: get assets info by compilation.assetsInfo (not supported yet). + const assets = {}; + const entryNames = Array.from(compilation.entrypoints.keys()); + entryNames.forEach((entryName: string) => { + const entryUnfilteredPointFiles = compilation.entrypoints.get(entryName)?.getFiles(); + const entryPointFiles = entryUnfilteredPointFiles?.filter((chunkFile) => { + const asset = compilation.getAsset(chunkFile); + if (!asset) { + return true; + } + const assetMetaInfo = asset.info; + return !( + assetMetaInfo.hotModuleReplacement || + assetMetaInfo.development + ); + }); + entries[entryName] = entryPointFiles; + }); + const stats = compilation.getStats().toJson({ + all: false, + chunks: true, + }); + stats.chunks.filter(({ entry, initial }) => !entry && !initial).forEach((chunk) => { + const chunkName = chunk.id; + + if (chunkName) { + pages[chunkName.replace(/^p_/, '')] = chunk.files.filter((file: string) => { + return file.endsWith('.js') || file.endsWith('.css'); + }); + } + }); + const manifest = { + publicPath: compilation.outputOptions?.publicPath, + entries, + pages, + assets, + }; + + const dataLoader = resolve(this.outputDir, './data-loader.ts'); + if (existsSync(dataLoader)) { + manifest['dataLoader'] = 'js/data-loader.js'; + } + + const output = JSON.stringify(manifest, null, 2); + // Emit asset manifest for server compile. + compilation.emitAsset(this.fileName, new compiler.webpack.sources.RawSource(output)); + callback(); + }, + ); + }); + } +} diff --git a/packages/rspack-config/src/splitChunks.ts b/packages/rspack-config/src/splitChunks.ts new file mode 100644 index 0000000000..027e6a55ed --- /dev/null +++ b/packages/rspack-config/src/splitChunks.ts @@ -0,0 +1,88 @@ +import * as path from 'path'; +import { createRequire } from 'module'; +import type { Configuration } from '@rspack/core'; + +const require = createRequire(import.meta.url); +const FRAMEWORK_BUNDLES = [ + 'react', 'react-dom', 'react-router', 'react-router-dom', +]; + +const getChunksStrategy = (rootDir: string) => { + const frameworkPaths: string[] = []; + const visitedFramework = new Set(); + function addPackagePath(packageName: string, dir: string) { + try { + if (visitedFramework.has(packageName)) { + return; + } + visitedFramework.add(packageName); + const packageJsonPath = require.resolve(`${packageName}/package.json`, { + paths: [dir], + }); + const packageDir = path.join(packageJsonPath, '../'); + if (frameworkPaths.includes(packageDir)) return; + frameworkPaths.push(packageDir); + const dependencies = require(packageJsonPath).dependencies || {}; + for (const name of Object.keys(dependencies)) { + addPackagePath(name, packageDir); + } + } catch (_) { + // Do not error on resolve framework package + } + } + + FRAMEWORK_BUNDLES.forEach((packageName) => { + addPackagePath(packageName, rootDir); + }); + + // Create test rule for framework. + const frameworkTest = new RegExp(frameworkPaths.join('|')); + return { + chunks: 'all', + cacheGroups: { + framework: { + chunks: 'all', + name: 'framework', + test: frameworkTest, + priority: 40, + enforce: true, + }, + lib: { + test: /[\\/]node_modules[\\/]/, + priority: 30, + minChunks: 1, + reuseExistingChunk: true, + }, + }, + maxInitialRequests: 25, + minSize: 20000, + }; +}; + +// @ts-expect-error +export const getVendorStrategy = (options: Configuration['splitChunks']) => { + return { + ...options, + chunks: 'all', + cacheGroups: { + vendors: { + test: /[\\/]node_modules[\\/]/, + priority: 10, + name: 'vendors', + reuseExistingChunk: true, + }, + }, + }; +}; + +const getSplitChunks = (rootDir: string, strategy: string | boolean) => { + if (strategy === false) { + return { minChunks: Infinity, cacheGroups: { default: false } }; + } else if (typeof strategy === 'string' && ['page-vendors', 'vendors'].includes(strategy)) { + const splitChunksOptions = strategy === 'page-vendors' ? { chunks: 'all' } : {}; + return getVendorStrategy(splitChunksOptions); + } + return getChunksStrategy(rootDir); +}; + +export default getSplitChunks; diff --git a/packages/rspack-config/tsconfig.json b/packages/rspack-config/tsconfig.json new file mode 100644 index 0000000000..4db748139d --- /dev/null +++ b/packages/rspack-config/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./", + "rootDir": "src", + "outDir": "esm", + "moduleDetection": "legacy" + }, + "include": ["src"] +} diff --git a/packages/shared-config/README.md b/packages/shared-config/README.md new file mode 100644 index 0000000000..f3eb598715 --- /dev/null +++ b/packages/shared-config/README.md @@ -0,0 +1,3 @@ +# @ice/shared-config + +This package providers shared configuration for rspack and webpack. diff --git a/packages/shared-config/package.json b/packages/shared-config/package.json new file mode 100644 index 0000000000..1b97ba77e1 --- /dev/null +++ b/packages/shared-config/package.json @@ -0,0 +1,40 @@ +{ + "name": "@ice/shared-config", + "version": "1.0.0", + "repository": "alibaba/ice", + "bugs": "https://github.com/alibaba/ice/issues", + "homepage": "https://v3.ice.work", + "type": "module", + "main": "./esm/index.js", + "exports": { + ".": "./esm/index.js", + "./compilation-loader": "./esm/webpackLoaders/compilationLoader.cjs", + "./types": "./esm/types.js" + }, + "files": [ + "esm", + "!esm/**/*.map", + "*.d.ts" + ], + "dependencies": { + "@ice/bundles": "0.1.13", + "@rollup/pluginutils": "^4.2.0", + "browserslist": "^4.19.3", + "consola": "^2.15.3", + "fast-glob": "^3.2.11", + "process": "^0.11.10" + }, + "devDependencies": { + "esbuild": "^0.17.16", + "postcss": "^8.4.18", + "webpack": "^5.86.0", + "webpack-dev-server": "^4.7.4" + }, + "scripts": { + "watch": "tsc -w", + "build": "tsc" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/webpack-config/src/compileExcludes.ts b/packages/shared-config/src/compileExcludes.ts similarity index 100% rename from packages/webpack-config/src/compileExcludes.ts rename to packages/shared-config/src/compileExcludes.ts diff --git a/packages/webpack-config/src/utils/getCSSModuleLocalIdent.ts b/packages/shared-config/src/getCSSModuleLocalIdent.ts similarity index 85% rename from packages/webpack-config/src/utils/getCSSModuleLocalIdent.ts rename to packages/shared-config/src/getCSSModuleLocalIdent.ts index 8233b04b76..90e2d36241 100644 --- a/packages/webpack-config/src/utils/getCSSModuleLocalIdent.ts +++ b/packages/shared-config/src/getCSSModuleLocalIdent.ts @@ -1,6 +1,6 @@ import { createHash } from 'crypto'; -export function getCSSModuleLocalIdent(filename: string, localName: string) { +export default function getCSSModuleLocalIdent(filename: string, localName: string) { const hash = createHash('md5'); hash.update(Buffer.from(filename + localName, 'utf8')); const localIdentHash = hash.digest('base64') diff --git a/packages/webpack-config/src/getCompilerPlugins.ts b/packages/shared-config/src/getCompilerPlugins.ts similarity index 100% rename from packages/webpack-config/src/getCompilerPlugins.ts rename to packages/shared-config/src/getCompilerPlugins.ts index f8230d8fea..0c4a4ac3b9 100644 --- a/packages/webpack-config/src/getCompilerPlugins.ts +++ b/packages/shared-config/src/getCompilerPlugins.ts @@ -1,5 +1,5 @@ -import type { BuildOptions } from 'esbuild'; import unplugin from '@ice/bundles/compiled/unplugin/index.js'; +import type { BuildOptions } from 'esbuild'; import type { UnpluginOptions } from '@ice/bundles/compiled/unplugin/index.js'; import type { Config } from './types.js'; import compilationPlugin from './unPlugins/compilation.js'; diff --git a/packages/shared-config/src/getDefineVars.ts b/packages/shared-config/src/getDefineVars.ts new file mode 100644 index 0000000000..292ef95bba --- /dev/null +++ b/packages/shared-config/src/getDefineVars.ts @@ -0,0 +1,47 @@ +const RUNTIME_PREFIX = /^ICE_/i; + +function getImportMetaEnv(getExpandedEnvs: () => Record): Record { + const env = {}; + const validEnvKeys = ['NODE_ENV']; + + Object.keys(process.env) + .filter((key) => RUNTIME_PREFIX.test(key) || validEnvKeys.includes(key)) + .forEach((key) => { + env[key] = JSON.stringify(process.env[key]); + }); + + // User defined envs at `.env` series files. + const expandedEnvs = getExpandedEnvs(); + for (const [key, value] of Object.entries(expandedEnvs)) { + env[`import.meta.env.${key}`] = JSON.stringify(value); + } + return env; +} + +export default function getDefineVars( + define: Record, + runtimeDefineVars: Record, + getExpandedEnvs: () => Record, + webpack?: any, +) { + Object.keys(process.env).filter((key) => { + return RUNTIME_PREFIX.test(key) || ['NODE_ENV'].includes(key); + }).forEach((key) => { + if (webpack && /^ICE_CORE_/i.test(key)) { + // ICE_CORE_* will be updated dynamically, so we need to make it effectively + runtimeDefineVars[`process.env.${key}`] = webpack.DefinePlugin.runtimeValue(() => JSON.stringify(process.env[key]), true); + } else { + runtimeDefineVars[`process.env.${key}`] = JSON.stringify(process.env[key]); + } + }); + // ImportMeta.env is ice defined env variables. + runtimeDefineVars['import.meta.env'] = getImportMetaEnv(getExpandedEnvs); + + return { + ...(define || {}), + ...runtimeDefineVars, + // Make sure ICE_CORE_SSR and ICE_CORE_SSG is always false in csr mode. + 'process.env.ICE_CORE_SSR': 'false', + 'process.env.ICE_CORE_SSG': 'false', + }; +} diff --git a/packages/shared-config/src/getPostcssOpts.ts b/packages/shared-config/src/getPostcssOpts.ts new file mode 100644 index 0000000000..152bcf1a67 --- /dev/null +++ b/packages/shared-config/src/getPostcssOpts.ts @@ -0,0 +1,67 @@ +import * as path from 'path'; +import * as fs from 'fs'; +import { postcss } from '@ice/bundles'; +import lodash from '@ice/bundles/compiled/lodash/index.js'; +import type { Config } from './types.js'; + +const { mergeWith, isArray } = lodash; + +interface Options { + publicPath: string; + postcssOptions: Config['postcss']; + rootDir: string; + enableRpx2Vw: boolean; +} + +export default function getPostcssOpts({ + rootDir, + userPostcssOptions, + enableRpx2Vw, +}: { + rootDir: string; + userPostcssOptions: Options['postcssOptions']; + enableRpx2Vw: boolean; +}): Options['postcssOptions'] & { implementation?: typeof postcss } { + const postcssConfigPath = path.join(rootDir, 'postcss.config.js'); + const defaultPostcssOpts = { + // lock postcss version + implementation: postcss, + }; + if (fs.existsSync(postcssConfigPath)) { + return defaultPostcssOpts; + } else { + const defaultPostcssPlugins = [ + ['@ice/bundles/compiled/postcss-nested'], + ['@ice/bundles/compiled/postcss-preset-env', { + // Without any configuration options, PostCSS Preset Env enables Stage 2 features. + stage: 3, + autoprefixer: { + // Disable legacy flexbox support + flexbox: 'no-2009', + }, + features: { + 'custom-properties': false, + }, + }], + ]; + if (enableRpx2Vw) { + defaultPostcssPlugins.push(['@ice/bundles/compiled/postcss-plugin-rpx2vw']); + } + const postcssOpts = mergeWith( + { + ...defaultPostcssOpts, + postcssOptions: { + config: false, + plugins: defaultPostcssPlugins, + }, + }, + { postcssOptions: userPostcssOptions }, + (objValue, srcValue) => { + if (isArray(objValue)) { + return objValue.concat(srcValue); + } + }, + ); + return postcssOpts; + } +} diff --git a/packages/shared-config/src/index.ts b/packages/shared-config/src/index.ts new file mode 100644 index 0000000000..bd5e13d781 --- /dev/null +++ b/packages/shared-config/src/index.ts @@ -0,0 +1,16 @@ +import compilationPlugin, { isSupportedFeature } from './unPlugins/compilation.js'; +import compileExcludes from './compileExcludes.js'; +import getCompilerPlugins from './getCompilerPlugins.js'; +import getDefineVars from './getDefineVars.js'; +import getPostcssOpts from './getPostcssOpts.js'; +import getCSSModuleLocalIdent from './getCSSModuleLocalIdent.js'; + +export { + getCSSModuleLocalIdent, + compilationPlugin, + isSupportedFeature, + compileExcludes, + getCompilerPlugins, + getDefineVars, + getPostcssOpts, +}; diff --git a/packages/webpack-config/src/types.ts b/packages/shared-config/src/types.ts similarity index 100% rename from packages/webpack-config/src/types.ts rename to packages/shared-config/src/types.ts diff --git a/packages/webpack-config/src/unPlugins/compilation.ts b/packages/shared-config/src/unPlugins/compilation.ts similarity index 100% rename from packages/webpack-config/src/unPlugins/compilation.ts rename to packages/shared-config/src/unPlugins/compilation.ts diff --git a/packages/webpack-config/src/unPlugins/redirectImport.ts b/packages/shared-config/src/unPlugins/redirectImport.ts similarity index 100% rename from packages/webpack-config/src/unPlugins/redirectImport.ts rename to packages/shared-config/src/unPlugins/redirectImport.ts diff --git a/packages/webpack-config/src/utils/transformImport.ts b/packages/shared-config/src/utils/transformImport.ts similarity index 100% rename from packages/webpack-config/src/utils/transformImport.ts rename to packages/shared-config/src/utils/transformImport.ts diff --git a/packages/webpack-config/src/webpackLoaders/compilationLoader.cts b/packages/shared-config/src/webpackLoaders/compilationLoader.cts similarity index 100% rename from packages/webpack-config/src/webpackLoaders/compilationLoader.cts rename to packages/shared-config/src/webpackLoaders/compilationLoader.cts diff --git a/packages/webpack-config/tests/fixtures/redirectImport/alias.js b/packages/shared-config/tests/fixtures/redirectImport/alias.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/alias.js rename to packages/shared-config/tests/fixtures/redirectImport/alias.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/aliasWithAs.js b/packages/shared-config/tests/fixtures/redirectImport/aliasWithAs.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/aliasWithAs.js rename to packages/shared-config/tests/fixtures/redirectImport/aliasWithAs.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/as.js b/packages/shared-config/tests/fixtures/redirectImport/as.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/as.js rename to packages/shared-config/tests/fixtures/redirectImport/as.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/basic.js b/packages/shared-config/tests/fixtures/redirectImport/basic.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/basic.js rename to packages/shared-config/tests/fixtures/redirectImport/basic.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/matched.js b/packages/shared-config/tests/fixtures/redirectImport/matched.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/matched.js rename to packages/shared-config/tests/fixtures/redirectImport/matched.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/missmatch.js b/packages/shared-config/tests/fixtures/redirectImport/missmatch.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/missmatch.js rename to packages/shared-config/tests/fixtures/redirectImport/missmatch.js diff --git a/packages/webpack-config/tests/fixtures/redirectImport/multiple.js b/packages/shared-config/tests/fixtures/redirectImport/multiple.js similarity index 100% rename from packages/webpack-config/tests/fixtures/redirectImport/multiple.js rename to packages/shared-config/tests/fixtures/redirectImport/multiple.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/cjs.js b/packages/shared-config/tests/fixtures/transformImport/cjs.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/cjs.js rename to packages/shared-config/tests/fixtures/transformImport/cjs.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/esm.js b/packages/shared-config/tests/fixtures/transformImport/esm.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/esm.js rename to packages/shared-config/tests/fixtures/transformImport/esm.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/importMeta.js b/packages/shared-config/tests/fixtures/transformImport/importMeta.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/importMeta.js rename to packages/shared-config/tests/fixtures/transformImport/importMeta.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/match.js b/packages/shared-config/tests/fixtures/transformImport/match.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/match.js rename to packages/shared-config/tests/fixtures/transformImport/match.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/missmatch.js b/packages/shared-config/tests/fixtures/transformImport/missmatch.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/missmatch.js rename to packages/shared-config/tests/fixtures/transformImport/missmatch.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/stringInclude.js b/packages/shared-config/tests/fixtures/transformImport/stringInclude.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/stringInclude.js rename to packages/shared-config/tests/fixtures/transformImport/stringInclude.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/swc-esm.js b/packages/shared-config/tests/fixtures/transformImport/swc-esm.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/swc-esm.js rename to packages/shared-config/tests/fixtures/transformImport/swc-esm.js diff --git a/packages/webpack-config/tests/fixtures/transformImport/swc.js b/packages/shared-config/tests/fixtures/transformImport/swc.js similarity index 100% rename from packages/webpack-config/tests/fixtures/transformImport/swc.js rename to packages/shared-config/tests/fixtures/transformImport/swc.js diff --git a/packages/webpack-config/tests/redirectImport.test.ts b/packages/shared-config/tests/redirectImport.test.ts similarity index 100% rename from packages/webpack-config/tests/redirectImport.test.ts rename to packages/shared-config/tests/redirectImport.test.ts diff --git a/packages/webpack-config/tests/transformImport.test.ts b/packages/shared-config/tests/transformImport.test.ts similarity index 100% rename from packages/webpack-config/tests/transformImport.test.ts rename to packages/shared-config/tests/transformImport.test.ts diff --git a/packages/shared-config/tsconfig.json b/packages/shared-config/tsconfig.json new file mode 100644 index 0000000000..4db748139d --- /dev/null +++ b/packages/shared-config/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./", + "rootDir": "src", + "outDir": "esm", + "moduleDetection": "legacy" + }, + "include": ["src"] +} diff --git a/packages/shared-config/types.d.ts b/packages/shared-config/types.d.ts new file mode 100644 index 0000000000..8554e6cd41 --- /dev/null +++ b/packages/shared-config/types.d.ts @@ -0,0 +1 @@ +export * from './esm/types'; diff --git a/packages/webpack-config/package.json b/packages/webpack-config/package.json index 4cc7aaa4e4..71c8560288 100644 --- a/packages/webpack-config/package.json +++ b/packages/webpack-config/package.json @@ -7,8 +7,7 @@ "type": "module", "main": "./esm/index.js", "exports": { - ".": "./esm/index.js", - "./types": "./esm/types.js" + ".": "./esm/index.js" }, "files": [ "esm", @@ -16,18 +15,13 @@ "*.d.ts" ], "dependencies": { + "@ice/shared-config": "1.0.0", "@ice/bundles": "0.1.13", - "@rollup/pluginutils": "^4.2.0", - "browserslist": "^4.19.3", - "consola": "^2.15.3", "fast-glob": "^3.2.11", "process": "^0.11.10" }, "devDependencies": { - "esbuild": "^0.17.16", - "postcss": "^8.4.18", - "webpack": "^5.88.0", - "webpack-dev-server": "^4.7.4" + "webpack": "^5.88.0" }, "scripts": { "watch": "tsc -w", diff --git a/packages/webpack-config/src/config/assets.ts b/packages/webpack-config/src/config/assets.ts index 67f4402678..f37aac22e5 100644 --- a/packages/webpack-config/src/config/assets.ts +++ b/packages/webpack-config/src/config/assets.ts @@ -1,6 +1,6 @@ import type webpack from 'webpack'; import type { Configuration } from 'webpack'; -import type { ModifyWebpackConfig } from '../types.js'; +import type { ModifyWebpackConfig } from '@ice/shared-config/types'; type AssetRuleConfig = [RegExp, Record?, boolean?]; diff --git a/packages/webpack-config/src/config/css.ts b/packages/webpack-config/src/config/css.ts index 659dfc14fb..7e45e6a759 100644 --- a/packages/webpack-config/src/config/css.ts +++ b/packages/webpack-config/src/config/css.ts @@ -1,16 +1,11 @@ import { createRequire } from 'module'; -import * as path from 'path'; -import * as fs from 'fs'; // FIXME when resolve mini-css-extract-plugin symbol in test import MiniCssExtractPlugin from '@ice/bundles/compiled/mini-css-extract-plugin/dist/index.js'; -import { sass, less, postcss } from '@ice/bundles'; +import { sass, less } from '@ice/bundles'; import type webpack from 'webpack'; +import { getPostcssOpts, getCSSModuleLocalIdent } from '@ice/shared-config'; import type { LoaderContext, Configuration } from 'webpack'; -import lodash from '@ice/bundles/compiled/lodash/index.js'; -import { getCSSModuleLocalIdent } from '../utils/getCSSModuleLocalIdent.js'; -import type { ModifyWebpackConfig, Config } from '../types.js'; - -const { mergeWith, isArray } = lodash; +import type { ModifyWebpackConfig, Config } from '@ice/shared-config/types'; type CSSRuleConfig = [string, string?, Record?]; interface Options { @@ -95,57 +90,4 @@ const css: ModifyWebpackConfig = (config, ctx) => return config; }; -function getPostcssOpts({ - rootDir, - userPostcssOptions, - enableRpx2Vw, -}: { - rootDir: string; - userPostcssOptions: Options['postcssOptions']; - enableRpx2Vw: boolean; -}) { - const postcssConfigPath = path.join(rootDir, 'postcss.config.js'); - const defaultPostcssOpts = { - // lock postcss version - implementation: postcss, - }; - if (fs.existsSync(postcssConfigPath)) { - return defaultPostcssOpts; - } else { - const defaultPostcssPlugins = [ - ['@ice/bundles/compiled/postcss-nested'], - ['@ice/bundles/compiled/postcss-preset-env', { - // Without any configuration options, PostCSS Preset Env enables Stage 2 features. - stage: 3, - autoprefixer: { - // Disable legacy flexbox support - flexbox: 'no-2009', - }, - features: { - 'custom-properties': false, - }, - }], - ]; - if (enableRpx2Vw) { - defaultPostcssPlugins.push(['@ice/bundles/compiled/postcss-plugin-rpx2vw']); - } - const postcssOpts = mergeWith( - { - ...defaultPostcssOpts, - postcssOptions: { - config: false, - plugins: defaultPostcssPlugins, - }, - }, - { postcssOptions: userPostcssOptions }, - (objValue, srcValue) => { - if (isArray(objValue)) { - return objValue.concat(srcValue); - } - }, - ); - return postcssOpts; - } -} - export default css; diff --git a/packages/webpack-config/src/index.ts b/packages/webpack-config/src/index.ts index 7fa83fad81..fe9b9d2081 100644 --- a/packages/webpack-config/src/index.ts +++ b/packages/webpack-config/src/index.ts @@ -11,18 +11,13 @@ import ESlintPlugin from '@ice/bundles/compiled/eslint-webpack-plugin/index.js'; import CopyPlugin from '@ice/bundles/compiled/copy-webpack-plugin/index.js'; import type { NormalModule, Compiler, Configuration } from 'webpack'; import type webpack from 'webpack'; -import type { Config, ModifyWebpackConfig } from './types.js'; +import { compilationPlugin, compileExcludes, getCompilerPlugins, getDefineVars } from '@ice/shared-config'; +import type { Config, ModifyWebpackConfig } from '@ice/shared-config/types.js'; import configAssets from './config/assets.js'; import configCss from './config/css.js'; import AssetsManifestPlugin from './webpackPlugins/AssetsManifestPlugin.js'; import EnvReplacementPlugin from './webpackPlugins/EnvReplacementPlugin.js'; -import getCompilerPlugins from './getCompilerPlugins.js'; import getSplitChunksConfig, { FRAMEWORK_BUNDLES } from './config/splitChunks.js'; -import compilationPlugin from './unPlugins/compilation.js'; -import compileExcludes from './compileExcludes.js'; - -export { isSupportedFeature } from './unPlugins/compilation.js'; -export { getCSSModuleLocalIdent } from './utils/getCSSModuleLocalIdent.js'; const require = createRequire(import.meta.url); const { merge } = lodash; @@ -65,7 +60,7 @@ function getEntry(rootDir: string, runtimeTmpDir: string) { } // format alias -function getAliasWithRoot(rootDir: string, alias?: Record) { +export function getAliasWithRoot(rootDir: string, alias?: Record) { const aliasWithRoot = {}; Object.keys(alias).forEach((key) => { const aliasValue = alias[key]; @@ -74,56 +69,6 @@ function getAliasWithRoot(rootDir: string, alias?: Record, - getExpandedEnvs: () => Record, - webpack, -) { - const { define = {} } = config; - - Object.keys(process.env).filter((key) => { - return RUNTIME_PREFIX.test(key) || ['NODE_ENV'].includes(key); - }).forEach((key) => { - runtimeDefineVars[`process.env.${key}`] = - /^ICE_CORE_/i.test(key) - // ICE_CORE_* will be updated dynamically, so we need to make it effectively - ? webpack.DefinePlugin.runtimeValue(() => JSON.stringify(process.env[key]), true) - : JSON.stringify(process.env[key]); - }); - // ImportMeta.env is ice defined env variables. - runtimeDefineVars['import.meta.env'] = getImportMetaEnv(getExpandedEnvs); - - return { - ...define, - ...runtimeDefineVars, - // Make sure ICE_CORE_SSR and ICE_CORE_SSG is always false in csr mode. - 'process.env.ICE_CORE_SSR': 'false', - 'process.env.ICE_CORE_SSG': 'false', - }; -} - -function getImportMetaEnv(getExpandedEnvs: () => Record): Record { - const env = {}; - const validEnvKeys = ['NODE_ENV']; - - Object.keys(process.env) - .filter((key) => RUNTIME_PREFIX.test(key) || validEnvKeys.includes(key)) - .forEach((key) => { - env[key] = JSON.stringify(process.env[key]); - }); - - // User defined envs at `.env` series files. - const expandedEnvs = getExpandedEnvs(); - for (const [key, value] of Object.entries(expandedEnvs)) { - env[`import.meta.env.${key}`] = JSON.stringify(value); - } - - return env; -} - export function getWebpackConfig(options: GetWebpackConfigOptions): Configuration { const { rootDir, @@ -179,7 +124,7 @@ export function getWebpackConfig(options: GetWebpackConfigOptions): Configuratio const hashKey = hash === true ? 'hash:8' : (hash || ''); const aliasWithRoot = getAliasWithRoot(rootDir, alias); - const defineVars = getDefineVars(config, runtimeDefineVars, getExpandedEnvs, webpack); + const defineVars = getDefineVars(config.define, runtimeDefineVars, getExpandedEnvs, webpack); const lazyCompilationConfig = dev && experimental?.lazyCompilation ? { lazyCompilation: { @@ -241,6 +186,7 @@ export function getWebpackConfig(options: GetWebpackConfigOptions): Configuratio entry: entry || (() => getEntry(rootDir, runtimeTmpDir)), externals, output: { + clean: true, publicPath, path: absoluteOutputDir, filename: `js/${hashKey ? `[name]-[${hashKey}].js` : '[name].js'}`, @@ -261,7 +207,7 @@ export function getWebpackConfig(options: GetWebpackConfigOptions): Configuratio { test: compilation.transformInclude, use: { - loader: require.resolve('./webpackLoaders/compilationLoader.cjs'), + loader: require.resolve('@ice/shared-config/compilation-loader'), options: { transform: compilation.transform, }, @@ -495,5 +441,3 @@ function getDevtoolValue(sourceMap: Config['sourceMap']) { return 'source-map'; } - -export { getCompilerPlugins }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 669d30a72b..10d2c19c99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -898,10 +898,13 @@ importers: packages/bundles: specifiers: + '@ice/css-modules-hash': 0.0.6 '@ice/swc-plugin-keep-export': 0.2.0 '@ice/swc-plugin-node-transform': 0.2.0 '@ice/swc-plugin-remove-export': 0.2.0 '@pmmmwh/react-refresh-webpack-plugin': 0.5.10 + '@rspack/core': 0.2.12 + '@rspack/dev-server': 0.2.12 '@swc/core': 1.3.77 '@types/less': ^3.0.3 '@types/lodash': ^4.14.181 @@ -977,9 +980,12 @@ importers: webpack-dev-server: 4.15.0 ws: ^8.4.2 dependencies: + '@ice/css-modules-hash': 0.0.6 '@ice/swc-plugin-keep-export': 0.2.0 '@ice/swc-plugin-node-transform': 0.2.0 '@ice/swc-plugin-remove-export': 0.2.0 + '@rspack/core': 0.2.12_zur76qpjdwubwowmoyfe2ntqhe + '@rspack/dev-server': 0.2.12_x32enbhagq6lxl6wy5tbwrcyii '@swc/core': 1.3.77 ansi-html-community: 0.0.8 caniuse-lite: 1.0.30001462 @@ -1091,8 +1097,12 @@ importers: specifiers: '@ice/bundles': 0.1.13 '@ice/route-manifest': 1.2.1 + '@ice/rspack-config': 1.0.0 '@ice/runtime': ^1.2.7 + '@ice/shared-config': 1.0.0 '@ice/webpack-config': 1.0.20 + '@rspack/core': 0.2.12 + '@rspack/dev-server': 0.2.12 '@swc/helpers': 0.5.1 '@types/babel__generator': ^7.6.4 '@types/babel__traverse': ^7.17.1 @@ -1104,7 +1114,7 @@ importers: '@types/multer': ^1.4.7 '@types/temp': ^0.9.1 address: ^1.1.2 - build-scripts: ^2.1.1-0 + build-scripts: ^2.1.2-0 chalk: ^4.0.0 chokidar: ^3.5.3 commander: ^9.0.0 @@ -1139,12 +1149,14 @@ importers: dependencies: '@ice/bundles': link:../bundles '@ice/route-manifest': link:../route-manifest + '@ice/rspack-config': link:../rspack-config '@ice/runtime': link:../runtime + '@ice/shared-config': link:../shared-config '@ice/webpack-config': link:../webpack-config '@swc/helpers': 0.5.1 '@types/express': 4.17.17 address: 1.2.2 - build-scripts: 2.1.1-0 + build-scripts: 2.1.2-0 chalk: 4.1.2 commander: 9.5.0 consola: 2.15.3 @@ -1168,6 +1180,8 @@ importers: temp: 0.9.4 yargs-parser: 21.1.1 devDependencies: + '@rspack/core': 0.2.12_ls5vlc7kphql6b6gtepk5p7cmu + '@rspack/dev-server': 0.2.12_47whzdhzq5y53rbotb3d4jbbju '@types/babel__generator': 7.6.4 '@types/babel__traverse': 7.18.3 '@types/cross-spawn': 6.0.2 @@ -1423,7 +1437,7 @@ importers: specifiers: '@ice/app': ^3.2.9 '@remix-run/router': ^1.6.1 - build-scripts: ^2.1.1-0 + build-scripts: ^2.1.2-0 chalk: ^4.0.0 consola: ^2.15.3 esbuild: ^0.17.16 @@ -1441,7 +1455,7 @@ importers: lodash.clonedeep: 4.5.0 devDependencies: '@ice/app': link:../ice - build-scripts: 2.1.1-0 + build-scripts: 2.1.2-0 esbuild: 0.17.16 webpack: 5.88.2_esbuild@0.17.16 webpack-dev-server: 4.11.1_webpack@5.88.2 @@ -1554,6 +1568,17 @@ importers: dependencies: minimatch: 5.1.6 + packages/rspack-config: + specifiers: + '@ice/bundles': 0.1.13 + '@ice/shared-config': 1.0.0 + '@rspack/core': ^0.2.12 + dependencies: + '@ice/bundles': link:../bundles + '@ice/shared-config': link:../shared-config + devDependencies: + '@rspack/core': 0.2.12 + packages/runtime: specifiers: '@ice/jsx-runtime': ^0.2.1 @@ -1597,6 +1622,31 @@ importers: devDependencies: typescript: 4.9.5 + packages/shared-config: + specifiers: + '@ice/bundles': 0.1.13 + '@rollup/pluginutils': ^4.2.0 + browserslist: ^4.19.3 + consola: ^2.15.3 + esbuild: ^0.17.16 + fast-glob: ^3.2.11 + postcss: ^8.4.18 + process: ^0.11.10 + webpack: ^5.86.0 + webpack-dev-server: ^4.7.4 + dependencies: + '@ice/bundles': link:../bundles + '@rollup/pluginutils': 4.2.1 + browserslist: 4.21.5 + consola: 2.15.3 + fast-glob: 3.3.0 + process: 0.11.10 + devDependencies: + esbuild: 0.17.16 + postcss: 8.4.25 + webpack: 5.86.0_esbuild@0.17.16 + webpack-dev-server: 4.15.0_webpack@5.86.0 + packages/style-import: specifiers: es-module-lexer: ^1.0.2 @@ -1608,27 +1658,17 @@ importers: packages/webpack-config: specifiers: '@ice/bundles': 0.1.13 - '@rollup/pluginutils': ^4.2.0 - browserslist: ^4.19.3 - consola: ^2.15.3 - esbuild: ^0.17.16 + '@ice/shared-config': 1.0.0 fast-glob: ^3.2.11 - postcss: ^8.4.18 process: ^0.11.10 webpack: ^5.88.0 - webpack-dev-server: ^4.7.4 dependencies: '@ice/bundles': link:../bundles - '@rollup/pluginutils': 4.2.1 - browserslist: 4.21.5 - consola: 2.15.3 + '@ice/shared-config': link:../shared-config fast-glob: 3.2.12 process: 0.11.10 devDependencies: - esbuild: 0.17.16 - postcss: 8.4.21 - webpack: 5.88.2_esbuild@0.17.16 - webpack-dev-server: 4.11.1_webpack@5.88.2 + webpack: 5.88.2 packages/webpack-modify: specifiers: @@ -1999,7 +2039,7 @@ packages: '@applint/commitlint-config': 1.0.2 '@applint/eslint-config': 1.1.12_iqs4awvhuo7d5qfalrm5goz2ja '@applint/prettier-config': 1.0.1 - '@applint/stylelint-config': 1.0.2_l27tme7gmbb6czcwbj7ki3rooy + '@applint/stylelint-config': 1.0.2_7vyjejygt4qpevhvxnirljzeeu '@babel/core': 7.21.0 '@babel/eslint-parser': 7.19.1_zt6cfucldurvbyn2isj445jria '@babel/preset-react': 7.18.6_@babel+core@7.21.0 @@ -2015,9 +2055,9 @@ packages: eslint-plugin-react: 7.32.2_eslint@8.35.0 eslint-plugin-react-hooks: 4.6.0_eslint@8.35.0 eslint-plugin-vue: 8.7.1_eslint@8.35.0 - postcss: 8.4.21 - postcss-less: 6.0.0_postcss@8.4.21 - postcss-scss: 4.0.6_postcss@8.4.21 + postcss: 8.4.25 + postcss-less: 6.0.0_postcss@8.4.25 + postcss-scss: 4.0.6_postcss@8.4.25 require-all: 3.0.0 stylelint: 15.10.1 stylelint-scss: 4.4.0_stylelint@15.10.1 @@ -2029,7 +2069,7 @@ packages: - typescript dev: true - /@applint/stylelint-config/1.0.2_l27tme7gmbb6czcwbj7ki3rooy: + /@applint/stylelint-config/1.0.2_7vyjejygt4qpevhvxnirljzeeu: resolution: {integrity: sha512-qJGy/91OIj2YA6mF21UC0O7Ab1TT28fUt4OgZXZ/kdrgvEHek7/2njoN1f4RRNM9Q0R/+fQYjfGc2mrN+M47Kw==} peerDependencies: postcss: '>=8.0.0' @@ -2038,9 +2078,9 @@ packages: stylelint: '>=11.0.0' stylelint-scss: '>=3.18.0' dependencies: - postcss: 8.4.21 - postcss-less: 6.0.0_postcss@8.4.21 - postcss-scss: 4.0.6_postcss@8.4.21 + postcss: 8.4.25 + postcss-less: 6.0.0_postcss@8.4.25 + postcss-scss: 4.0.6_postcss@8.4.25 stylelint: 15.10.1 stylelint-scss: 4.4.0_stylelint@15.10.1 dev: true @@ -3938,7 +3978,7 @@ packages: '@docusaurus/utils-validation': 2.3.1_@docusaurus+types@2.3.1 '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 - autoprefixer: 10.4.13_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.25 babel-loader: 8.3.0_bckyc4ywv6ed2sy2snlzby5mbi babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 @@ -3952,7 +3992,7 @@ packages: core-js: 3.32.0 css-loader: 6.7.3_webpack@5.88.2 css-minimizer-webpack-plugin: 4.2.2_ltzhhs6ml74uoexipkdt2pgtmi - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.25 del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 @@ -3966,8 +4006,8 @@ packages: leven: 3.1.0 lodash: 4.17.21 mini-css-extract-plugin: 2.7.2_webpack@5.88.2 - postcss: 8.4.21 - postcss-loader: 7.0.2_spab46aedetttbaa4fvapwm3fq + postcss: 8.4.25 + postcss-loader: 7.0.2_pu275c3rt57tiockloa6nvewbm prompts: 2.4.2 react: 17.0.2 react-dev-utils: 12.0.1_rggdtlzfqxxwxudp3onsqdyocm @@ -4038,7 +4078,7 @@ packages: '@docusaurus/utils-validation': 2.3.1_@docusaurus+types@2.3.1 '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 - autoprefixer: 10.4.13_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.25 babel-loader: 8.3.0_bckyc4ywv6ed2sy2snlzby5mbi babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 @@ -4052,7 +4092,7 @@ packages: core-js: 3.32.0 css-loader: 6.7.3_webpack@5.88.2 css-minimizer-webpack-plugin: 4.2.2_ltzhhs6ml74uoexipkdt2pgtmi - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.25 del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 @@ -4066,8 +4106,8 @@ packages: leven: 3.1.0 lodash: 4.17.21 mini-css-extract-plugin: 2.7.2_webpack@5.88.2 - postcss: 8.4.21 - postcss-loader: 7.0.2_spab46aedetttbaa4fvapwm3fq + postcss: 8.4.25 + postcss-loader: 7.0.2_pu275c3rt57tiockloa6nvewbm prompts: 2.4.2 react: 17.0.2 react-dev-utils: 12.0.1_rggdtlzfqxxwxudp3onsqdyocm @@ -4114,9 +4154,9 @@ packages: resolution: {integrity: sha512-7mIhAROES6CY1GmCjR4CZkUfjTL6B3u6rKHK0ChQl2d1IevYXq/k/vFgvOrJfcKxiObpMnE9+X6R2Wt1KqxC6w==} engines: {node: '>=16.14'} dependencies: - cssnano-preset-advanced: 5.3.10_postcss@8.4.21 - postcss: 8.4.21 - postcss-sort-media-queries: 4.3.0_postcss@8.4.21 + cssnano-preset-advanced: 5.3.10_postcss@8.4.25 + postcss: 8.4.25 + postcss-sort-media-queries: 4.3.0_postcss@8.4.25 tslib: 2.5.0 /@docusaurus/logger/2.3.1: @@ -4584,7 +4624,7 @@ packages: infima: 0.2.0-alpha.42 lodash: 4.17.21 nprogress: 0.2.0 - postcss: 8.4.21 + postcss: 8.4.25 prism-react-renderer: 1.3.5_react@17.0.2 prismjs: 1.29.0 react: 17.0.2 @@ -5400,6 +5440,81 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@ice/css-modules-hash-darwin-arm64/0.0.6: + resolution: {integrity: sha512-5QWZl3+biY5U/kRhymH+6X/kAk3Imvkqu9QpV+LTDxhoXEkdhzZd2sCO5ZNfrsODFuHy78iKzh6gEweADPwYkQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-darwin-universal/0.0.6: + resolution: {integrity: sha512-PLmDCFZHvpNysvMhUa363QWvgCMIwr6vYwEkHkC/AF9NZvl25r2R9mfdExHw8sZHu9fMHVINwWEBcMiYbZd/cg==} + engines: {node: '>= 10'} + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-darwin-x64/0.0.6: + resolution: {integrity: sha512-HOmh+Yiw6rH9VJD2XBN7sZmigo+jwi7qAD/J12pbxVrMJ//aIsv3BwpgFhfGO8eqKeyVqNXac3S/vC2hq8t8jw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-linux-x64-gnu/0.0.6: + resolution: {integrity: sha512-PS7lTINETFqzbU0nbgLgxXJOp+BU51VvNeNEF1h6Xz6soR23yqFht6d8xuNC1auBnPHZM+RDiQYzwi9MCBTvgA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-linux-x64-musl/0.0.6: + resolution: {integrity: sha512-UiDg8KpoDGmQrBt9z5lqjr+OAG2S2xQi00Unt2yali1dvhS1tpcN16isiBA2yO3JOy2b0Y0VtlmpJKxpMDsFcg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-win32-arm64-msvc/0.0.6: + resolution: {integrity: sha512-7rF1gX9QyhhGUo4JKZUQ6DSJs/xJiJlrKC9D91dkTHs81e0G6IQLv9EnIaX2OPF3/SPnqp7CAGxr7TOtDYsyAw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash-win32-x64-msvc/0.0.6: + resolution: {integrity: sha512-on3tYfhvBW6XQ6tkE0KKZvFK0JB/iwBrvUiRo/Di3ceJPPwD619PJNNQnn78kqcrZIVdQZ41HMdyuEnz8UHVpQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@ice/css-modules-hash/0.0.6: + resolution: {integrity: sha512-UbYq2Ldw+hamc9HoIfKTZORmmYCaGnP6f361XdB/7PQZHZ5hAak6TePdcVQekLHGEg/+zIccN33mflJqucC1Aw==} + engines: {node: '>= 10'} + optionalDependencies: + '@ice/css-modules-hash-darwin-arm64': 0.0.6 + '@ice/css-modules-hash-darwin-universal': 0.0.6 + '@ice/css-modules-hash-darwin-x64': 0.0.6 + '@ice/css-modules-hash-linux-x64-gnu': 0.0.6 + '@ice/css-modules-hash-linux-x64-musl': 0.0.6 + '@ice/css-modules-hash-win32-arm64-msvc': 0.0.6 + '@ice/css-modules-hash-win32-x64-msvc': 0.0.6 + dev: false + /@ice/pkg/1.5.5: resolution: {integrity: sha512-0BIfv6Uzs2wpHv7RmFwz+kWfoJLfx0yJrQyh3yqy+F6TZWxTwrqQmX+5yRmgqK5f7lGGhYfMMVNWjRSCw5MHPQ==} engines: {node: '>=16.14.0'} @@ -5407,7 +5522,7 @@ packages: dependencies: '@ampproject/remapping': 2.2.0 '@babel/core': 7.21.0 - '@babel/parser': 7.18.10 + '@babel/parser': 7.21.2 '@babel/preset-react': 7.18.6_@babel+core@7.21.0 '@babel/preset-typescript': 7.21.0_@babel+core@7.21.0 '@rollup/plugin-commonjs': 21.1.0_rollup@2.79.1 @@ -5418,7 +5533,7 @@ packages: '@rollup/pluginutils': 4.2.1 '@swc/core': 1.3.32 acorn: 8.8.2 - autoprefixer: 10.4.13_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.25 build-scripts: 2.1.0 cac: 6.7.14 chokidar: 3.5.3 @@ -5432,7 +5547,7 @@ packages: lodash.merge: 4.6.2 magic-string: 0.25.9 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.25 rollup: 2.79.1 rollup-plugin-styles: 4.0.0_rollup@2.79.1 rollup-plugin-visualizer: 5.9.0_rollup@2.79.1 @@ -6217,7 +6332,7 @@ packages: semver: 7.4.0 dev: true - /@pmmmwh/react-refresh-webpack-plugin/0.5.10_ynqbgb5bmgbvx2am6mt2h3lxsq: + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_4p7fys4vpjth4wnvvzaxfza3hm: resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} engines: {node: '>= 10.13'} peerDependencies: @@ -6253,70 +6368,226 @@ packages: react-refresh: 0.14.0 schema-utils: 3.1.1 source-map: 0.7.4 - webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte - webpack-dev-server: 4.15.0_webpack@5.88.2 - dev: true - - /@polka/url/1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - - /@rc-component/context/1.3.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-6QdaCJ7Wn5UZLJs15IEfqy4Ru3OaL5ctqpQYWd5rlfV9wwzrzdt6+kgAQZV/qdB0MUPN4nhyBfRembQCIvBf+w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.21.0 - rc-util: 5.29.3_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false - - /@rc-component/mini-decimal/1.0.1: - resolution: {integrity: sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA==} - engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': 7.21.0 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + webpack-dev-server: 4.13.1_webpack@5.76.0 dev: false - /@rc-component/mutate-observer/1.0.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-okqRJSfNisXdI6CUeOLZC5ukBW/8kir2Ii4PJiKpUt+3+uS7dxwJUMxsUZquxA1rQuL8YcEmKVp/TCnR+yUdZA==} - engines: {node: '>=8.x'} + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_p44l2xjftguod6ctnkuod3jp7e: + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true dependencies: - '@babel/runtime': 7.21.0 - classnames: 2.3.2 - rc-util: 5.28.0_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.29.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.3.3 + loader-utils: 2.0.4 + schema-utils: 3.1.1 + source-map: 0.7.4 + webpack: 5.76.0_esbuild@0.17.16 + webpack-dev-server: 4.13.1_webpack@5.76.0 + dev: true - /@rc-component/portal/1.1.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-tbXM9SB1r5FOuZjRCljERFByFiEUcMmCWMXLog/NmgCzlAzreXyf23Vei3ZpSMxSMavzPnhCovfZjZdmxS3d1w==} - engines: {node: '>=8.x'} + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_react-refresh@0.14.0: + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true dependencies: - '@babel/runtime': 7.21.0 - classnames: 2.3.2 - rc-util: 5.28.0_biqbaboplfbrettd7655fr4n2y - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - dev: false + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.29.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.3.3 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.1.1 + source-map: 0.7.4 + dev: true - /@rc-component/tour/1.8.0_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-rrRGioHTLQlGca27G2+lw7QpRb3uuMYCUIJjj31/B44VCJS0P2tqYhOgtzvWQmaLMlWH3ZlpzotkKX13NT4XEA==} - engines: {node: '>=8.x'} + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_tqapdebyd4tzx34bcf5zu6h6n4: + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true dependencies: - '@babel/runtime': 7.21.0 - '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y - '@rc-component/trigger': 1.8.0_biqbaboplfbrettd7655fr4n2y + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.29.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.3.3 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.1.1 + source-map: 0.7.4 + webpack: 5.88.2_esbuild@0.17.16 + webpack-dev-server: 4.11.1_webpack@5.88.2 + dev: true + + /@pmmmwh/react-refresh-webpack-plugin/0.5.10_ynqbgb5bmgbvx2am6mt2h3lxsq: + resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <4.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.29.0 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.3.3 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.1.1 + source-map: 0.7.4 + webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte + webpack-dev-server: 4.15.0_webpack@5.88.2 + + /@polka/url/1.0.0-next.21: + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + + /@rc-component/context/1.3.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-6QdaCJ7Wn5UZLJs15IEfqy4Ru3OaL5ctqpQYWd5rlfV9wwzrzdt6+kgAQZV/qdB0MUPN4nhyBfRembQCIvBf+w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.21.0 + rc-util: 5.29.3_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@rc-component/mini-decimal/1.0.1: + resolution: {integrity: sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA==} + engines: {node: '>=8.x'} + dependencies: + '@babel/runtime': 7.21.0 + dev: false + + /@rc-component/mutate-observer/1.0.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-okqRJSfNisXdI6CUeOLZC5ukBW/8kir2Ii4PJiKpUt+3+uS7dxwJUMxsUZquxA1rQuL8YcEmKVp/TCnR+yUdZA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.21.0 + classnames: 2.3.2 + rc-util: 5.28.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@rc-component/portal/1.1.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-tbXM9SB1r5FOuZjRCljERFByFiEUcMmCWMXLog/NmgCzlAzreXyf23Vei3ZpSMxSMavzPnhCovfZjZdmxS3d1w==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.21.0 + classnames: 2.3.2 + rc-util: 5.28.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + + /@rc-component/tour/1.8.0_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-rrRGioHTLQlGca27G2+lw7QpRb3uuMYCUIJjj31/B44VCJS0P2tqYhOgtzvWQmaLMlWH3ZlpzotkKX13NT4XEA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.21.0 + '@rc-component/portal': 1.1.0_biqbaboplfbrettd7655fr4n2y + '@rc-component/trigger': 1.8.0_biqbaboplfbrettd7655fr4n2y classnames: 2.3.2 rc-util: 5.28.0_biqbaboplfbrettd7655fr4n2y react: 18.2.0 @@ -6537,6 +6808,336 @@ packages: rollup: 2.79.1 dev: true + /@rspack/binding-darwin-arm64/0.2.12: + resolution: {integrity: sha512-TTiizzXNYGILAwwUhf49AqeNRJ7NXnzObhmqaDJ76lwDph+yLf8HYhNWAzrhYljaWQGYjwTYUdXVrGflYb2pHA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@rspack/binding-darwin-x64/0.2.12: + resolution: {integrity: sha512-zq32runVEEXoJQjo5xfKxoDsxPVQu3KHplZR3Yxp5fxnx7b9eiM5BPf1FQ6ml7b6FC4ZXyQNYwtoDsLSTYRnfg==} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@rspack/binding-linux-arm64-gnu/0.2.12: + resolution: {integrity: sha512-C5LR+/na47/ZlQXvrQP96GfzRnh34fa4cT3wD7C+BOwPrPrCdhf8Z3GNzv2J6Rs/ACBZjpD2DE+ARrWsBAv33w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rspack/binding-linux-arm64-musl/0.2.12: + resolution: {integrity: sha512-UbLGMUOSPaivO6TbGVt1JKeOXTfj1DFjIBTy2CKxIF5+B6xvg+ns9BhZobtZmjDlJ9GvkkHFoawFyl6UG+XLpg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@rspack/binding-linux-x64-gnu/0.2.12: + resolution: {integrity: sha512-I5W6WaD9llJjFR+Z1aJj0Ml/cheyHDH4eyTfEZXiOCEeTFJlA5NhMn97fDWoFKVYh5wq6uwCrxnaOSehYlsbYw==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rspack/binding-linux-x64-musl/0.2.12: + resolution: {integrity: sha512-JuJKw502u/1FroIfR5iwoZ9pfx/iPpFEQmA6TseIKnu8eHM1jPKlPWAY4geBvzgiz04EdTs4uJ8o1ItoQLsddg==} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@rspack/binding-win32-arm64-msvc/0.2.12: + resolution: {integrity: sha512-f5npfQkXP8uHDSwiT1cXAhrdPwr7hrCz3EVKfwsB5Y1ny17YAH4ztm5Pk7oBB8H8SjQfn2Af8C3YEz1SUyk5/g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + /@rspack/binding-win32-ia32-msvc/0.2.12: + resolution: {integrity: sha512-pw8a1gCK+TK8suZdEZwXzdEzC+ZGtYsv75BhwHNRrcKUbmRjn7FTtvSO0beZlRMNcfc3A2SD1ZmozZM1czbang==} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@rspack/binding-win32-x64-msvc/0.2.12: + resolution: {integrity: sha512-6UGQKJ0CG5g/v7vSeDr5wI1AuAaWR4P6xoRcyWMeeW5Vw3sOxqK/MfEOtwVseX47IcF+NhrmHhVX7MN4EiO0ZA==} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + /@rspack/binding/0.2.12: + resolution: {integrity: sha512-Pi/Zi6NgOXiHPA08lk1yFTJwlTozLx6cLI87astcMQz56LSOQb8wBV9uiRvWufnWWijh7+jznNxpv7psWqXRoA==} + optionalDependencies: + '@rspack/binding-darwin-arm64': 0.2.12 + '@rspack/binding-darwin-x64': 0.2.12 + '@rspack/binding-linux-arm64-gnu': 0.2.12 + '@rspack/binding-linux-arm64-musl': 0.2.12 + '@rspack/binding-linux-x64-gnu': 0.2.12 + '@rspack/binding-linux-x64-musl': 0.2.12 + '@rspack/binding-win32-arm64-msvc': 0.2.12 + '@rspack/binding-win32-ia32-msvc': 0.2.12 + '@rspack/binding-win32-x64-msvc': 0.2.12 + + /@rspack/core/0.2.12: + resolution: {integrity: sha512-SekS+6bdTSx16nWQD7rGdnLK6fr0PewV2KKDt6w3jwHkJxDQygdUqL+st3c/JBGm/dpIVVpWkAcoLpK3EjFUcA==} + dependencies: + '@rspack/binding': 0.2.12 + '@rspack/dev-client': 0.2.12_react-refresh@0.14.0 + '@swc/helpers': 0.5.1 + browserslist: 4.21.5 + compare-versions: 6.0.0-rc.1 + enhanced-resolve: 5.12.0 + graceful-fs: 4.2.10 + neo-async: 2.6.2 + react-refresh: 0.14.0 + schema-utils: 4.0.0 + tapable: 2.2.1 + util: 0.12.5 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + zod: 3.21.4 + zod-validation-error: 1.2.0_zod@3.21.4 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/core/0.2.12_ls5vlc7kphql6b6gtepk5p7cmu: + resolution: {integrity: sha512-SekS+6bdTSx16nWQD7rGdnLK6fr0PewV2KKDt6w3jwHkJxDQygdUqL+st3c/JBGm/dpIVVpWkAcoLpK3EjFUcA==} + dependencies: + '@rspack/binding': 0.2.12 + '@rspack/dev-client': 0.2.12_tqapdebyd4tzx34bcf5zu6h6n4 + '@swc/helpers': 0.5.1 + browserslist: 4.21.5 + compare-versions: 6.0.0-rc.1 + enhanced-resolve: 5.12.0 + graceful-fs: 4.2.10 + neo-async: 2.6.2 + react-refresh: 0.14.0 + schema-utils: 4.0.0 + tapable: 2.2.1 + util: 0.12.5 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + zod: 3.21.4 + zod-validation-error: 1.2.0_zod@3.21.4 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/core/0.2.12_zur76qpjdwubwowmoyfe2ntqhe: + resolution: {integrity: sha512-SekS+6bdTSx16nWQD7rGdnLK6fr0PewV2KKDt6w3jwHkJxDQygdUqL+st3c/JBGm/dpIVVpWkAcoLpK3EjFUcA==} + dependencies: + '@rspack/binding': 0.2.12 + '@rspack/dev-client': 0.2.12_ynqbgb5bmgbvx2am6mt2h3lxsq + '@swc/helpers': 0.5.1 + browserslist: 4.21.5 + compare-versions: 6.0.0-rc.1 + enhanced-resolve: 5.12.0 + graceful-fs: 4.2.10 + neo-async: 2.6.2 + react-refresh: 0.14.0 + schema-utils: 4.0.0 + tapable: 2.2.1 + util: 0.12.5 + watchpack: 2.4.0 + webpack-sources: 3.2.3 + zod: 3.21.4 + zod-validation-error: 1.2.0_zod@3.21.4 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + /@rspack/dev-client/0.2.12_4p7fys4vpjth4wnvvzaxfza3hm: + resolution: {integrity: sha512-EeovUu3iItItbSKcZH3eNoGvvFiqUfFEHg22jJQTGeV3I5sZWvgfQA7+JQq44HI50Rq1EI8R9rB5X1rXwrhv/w==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + dependencies: + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_4p7fys4vpjth4wnvvzaxfza3hm + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + /@rspack/dev-client/0.2.12_p44l2xjftguod6ctnkuod3jp7e: + resolution: {integrity: sha512-EeovUu3iItItbSKcZH3eNoGvvFiqUfFEHg22jJQTGeV3I5sZWvgfQA7+JQq44HI50Rq1EI8R9rB5X1rXwrhv/w==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + dependencies: + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_p44l2xjftguod6ctnkuod3jp7e + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/dev-client/0.2.12_react-refresh@0.14.0: + resolution: {integrity: sha512-EeovUu3iItItbSKcZH3eNoGvvFiqUfFEHg22jJQTGeV3I5sZWvgfQA7+JQq44HI50Rq1EI8R9rB5X1rXwrhv/w==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + dependencies: + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_react-refresh@0.14.0 + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/dev-client/0.2.12_tqapdebyd4tzx34bcf5zu6h6n4: + resolution: {integrity: sha512-EeovUu3iItItbSKcZH3eNoGvvFiqUfFEHg22jJQTGeV3I5sZWvgfQA7+JQq44HI50Rq1EI8R9rB5X1rXwrhv/w==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + dependencies: + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_tqapdebyd4tzx34bcf5zu6h6n4 + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/dev-client/0.2.12_ynqbgb5bmgbvx2am6mt2h3lxsq: + resolution: {integrity: sha512-EeovUu3iItItbSKcZH3eNoGvvFiqUfFEHg22jJQTGeV3I5sZWvgfQA7+JQq44HI50Rq1EI8R9rB5X1rXwrhv/w==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true + dependencies: + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_ynqbgb5bmgbvx2am6mt2h3lxsq + react-refresh: 0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - type-fest + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + /@rspack/dev-server/0.2.12_47whzdhzq5y53rbotb3d4jbbju: + resolution: {integrity: sha512-z69w6lvRR1ZVJmdSWzs/bc9w29ZhSU1bz1GPDSdHPJ05fesvEtMrEYwg8YOO69lAKHGVQHoevHILO32cwMtKQQ==} + peerDependencies: + '@rspack/core': '*' + dependencies: + '@rspack/core': 0.2.12_ls5vlc7kphql6b6gtepk5p7cmu + '@rspack/dev-client': 0.2.12_p44l2xjftguod6ctnkuod3jp7e + chokidar: 3.5.3 + connect-history-api-fallback: 2.0.0 + express: 4.18.1 + http-proxy-middleware: 2.0.6_@types+express@4.17.17 + mime-types: 2.1.35 + webpack: 5.76.0_esbuild@0.17.16 + webpack-dev-middleware: 6.0.2_webpack@5.76.0 + webpack-dev-server: 4.13.1_webpack@5.76.0 + ws: 8.8.1 + transitivePeerDependencies: + - '@swc/core' + - '@types/express' + - '@types/webpack' + - bufferutil + - debug + - esbuild + - react-refresh + - sockjs-client + - supports-color + - type-fest + - uglify-js + - utf-8-validate + - webpack-cli + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@rspack/dev-server/0.2.12_x32enbhagq6lxl6wy5tbwrcyii: + resolution: {integrity: sha512-z69w6lvRR1ZVJmdSWzs/bc9w29ZhSU1bz1GPDSdHPJ05fesvEtMrEYwg8YOO69lAKHGVQHoevHILO32cwMtKQQ==} + peerDependencies: + '@rspack/core': '*' + dependencies: + '@rspack/core': 0.2.12_zur76qpjdwubwowmoyfe2ntqhe + '@rspack/dev-client': 0.2.12_4p7fys4vpjth4wnvvzaxfza3hm + chokidar: 3.5.3 + connect-history-api-fallback: 2.0.0 + express: 4.18.1 + http-proxy-middleware: 2.0.6 + mime-types: 2.1.35 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + webpack-dev-middleware: 6.0.2_webpack@5.76.0 + webpack-dev-server: 4.13.1_webpack@5.76.0 + ws: 8.8.1 + transitivePeerDependencies: + - '@swc/core' + - '@types/express' + - '@types/webpack' + - bufferutil + - debug + - esbuild + - react-refresh + - sockjs-client + - supports-color + - type-fest + - uglify-js + - utf-8-validate + - webpack-cli + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + /@sideway/address/4.1.4: resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} dependencies: @@ -7057,7 +7658,6 @@ packages: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.5.0 - dev: false /@szmarczak/http-timer/1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} @@ -7216,11 +7816,11 @@ packages: '@types/node': 17.0.45 dev: true - /@types/cssnano/5.1.0_postcss@8.4.21: + /@types/cssnano/5.1.0_postcss@8.4.25: resolution: {integrity: sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==} deprecated: This is a stub types definition. cssnano provides its own type definitions, so you do not need this installed. dependencies: - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.25 transitivePeerDependencies: - postcss dev: true @@ -7256,6 +7856,9 @@ packages: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + /@types/estree/1.0.0: resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} @@ -7838,21 +8441,43 @@ packages: resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} dev: true + /@webassemblyjs/ast/1.11.1: + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + /@webassemblyjs/ast/1.11.5: resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==} dependencies: '@webassemblyjs/helper-numbers': 1.11.5 '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + /@webassemblyjs/floating-point-hex-parser/1.11.1: + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + /@webassemblyjs/floating-point-hex-parser/1.11.5: resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==} + /@webassemblyjs/helper-api-error/1.11.1: + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + /@webassemblyjs/helper-api-error/1.11.5: resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==} + /@webassemblyjs/helper-buffer/1.11.1: + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + /@webassemblyjs/helper-buffer/1.11.5: resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==} + /@webassemblyjs/helper-numbers/1.11.1: + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@xtuc/long': 4.2.2 + /@webassemblyjs/helper-numbers/1.11.5: resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==} dependencies: @@ -7860,9 +8485,20 @@ packages: '@webassemblyjs/helper-api-error': 1.11.5 '@xtuc/long': 4.2.2 + /@webassemblyjs/helper-wasm-bytecode/1.11.1: + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + /@webassemblyjs/helper-wasm-bytecode/1.11.5: resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==} + /@webassemblyjs/helper-wasm-section/1.11.1: + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + /@webassemblyjs/helper-wasm-section/1.11.5: resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==} dependencies: @@ -7871,19 +8507,44 @@ packages: '@webassemblyjs/helper-wasm-bytecode': 1.11.5 '@webassemblyjs/wasm-gen': 1.11.5 + /@webassemblyjs/ieee754/1.11.1: + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + dependencies: + '@xtuc/ieee754': 1.2.0 + /@webassemblyjs/ieee754/1.11.5: resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==} dependencies: '@xtuc/ieee754': 1.2.0 + /@webassemblyjs/leb128/1.11.1: + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + dependencies: + '@xtuc/long': 4.2.2 + /@webassemblyjs/leb128/1.11.5: resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==} dependencies: '@xtuc/long': 4.2.2 + /@webassemblyjs/utf8/1.11.1: + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + /@webassemblyjs/utf8/1.11.5: resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==} + /@webassemblyjs/wasm-edit/1.11.1: + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-wasm-section': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-opt': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/wast-printer': 1.11.1 + /@webassemblyjs/wasm-edit/1.11.5: resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==} dependencies: @@ -7896,6 +8557,15 @@ packages: '@webassemblyjs/wasm-parser': 1.11.5 '@webassemblyjs/wast-printer': 1.11.5 + /@webassemblyjs/wasm-gen/1.11.1: + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + /@webassemblyjs/wasm-gen/1.11.5: resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==} dependencies: @@ -7905,6 +8575,14 @@ packages: '@webassemblyjs/leb128': 1.11.5 '@webassemblyjs/utf8': 1.11.5 + /@webassemblyjs/wasm-opt/1.11.1: + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-buffer': 1.11.1 + '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + /@webassemblyjs/wasm-opt/1.11.5: resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==} dependencies: @@ -7913,6 +8591,16 @@ packages: '@webassemblyjs/wasm-gen': 1.11.5 '@webassemblyjs/wasm-parser': 1.11.5 + /@webassemblyjs/wasm-parser/1.11.1: + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/ieee754': 1.11.1 + '@webassemblyjs/leb128': 1.11.1 + '@webassemblyjs/utf8': 1.11.1 + /@webassemblyjs/wasm-parser/1.11.5: resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==} dependencies: @@ -7923,6 +8611,12 @@ packages: '@webassemblyjs/leb128': 1.11.5 '@webassemblyjs/utf8': 1.11.5 + /@webassemblyjs/wast-printer/1.11.1: + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + dependencies: + '@webassemblyjs/ast': 1.11.1 + '@xtuc/long': 4.2.2 + /@webassemblyjs/wast-printer/1.11.5: resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==} dependencies: @@ -8556,7 +9250,7 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autoprefixer/10.4.13_postcss@8.4.21: + /autoprefixer/10.4.13_postcss@8.4.25: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -8568,7 +9262,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.25 postcss-value-parser: 4.2.0 /available-typed-arrays/1.0.5: @@ -8909,6 +9603,25 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: false + /body-parser/1.20.0: + resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + 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.10.3 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + /body-parser/1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -9039,7 +9752,7 @@ packages: commander: 2.20.3 consola: 2.15.3 esbuild: 0.16.17 - fast-glob: 3.2.12 + fast-glob: 3.3.0 fs-extra: 8.1.0 json5: 2.2.3 lodash: 4.17.21 @@ -9048,8 +9761,8 @@ packages: semver: 7.4.0 dev: true - /build-scripts/2.1.1-0: - resolution: {integrity: sha512-rsJ2uPLbwDDyEY0QWqmH6hiRJLPFtn5jcoCt9EsV4qb+sS+pY/b1Pan9twmEtHEdoBc27c4GhjkJJppyAtr27g==} + /build-scripts/2.1.2-0: + resolution: {integrity: sha512-Sk+5saWFgh4ELpWwMe4ZsSRs75cy1a5YjUydpmDYI/W6d0ucyPE70vjRTVQi1Gm3mqXSQdnhVLq8EILrY0/+1w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: camelcase: 5.3.1 @@ -9564,7 +10277,6 @@ packages: /common-path-prefix/3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - dev: true /commondir/1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -9576,6 +10288,9 @@ packages: dot-prop: 5.3.0 dev: true + /compare-versions/6.0.0-rc.1: + resolution: {integrity: sha512-cFhkjbGY1jLFWIV7KegECbfuyYPxSGvgGkdkfM+ibboQDoPwg2FRHm5BSNTOApiauRBzJIQH7qvOJs2sW5ueKQ==} + /compressible/2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -9741,7 +10456,7 @@ packages: peerDependencies: webpack: ^5.1.0 dependencies: - fast-glob: 3.2.12 + fast-glob: 3.3.0 glob-parent: 6.0.2 globby: 13.1.3 normalize-path: 3.0.0 @@ -9896,6 +10611,15 @@ packages: postcss: ^8.0.9 dependencies: postcss: 8.4.21 + dev: true + + /css-declaration-sorter/6.3.1_postcss@8.4.25: + resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.25 /css-functions-list/3.1.0: resolution: {integrity: sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==} @@ -9936,12 +10660,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.21 - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 - postcss-modules-scope: 3.0.0_postcss@8.4.21 - postcss-modules-values: 4.0.0_postcss@8.4.21 + icss-utils: 5.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.25 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.25 + postcss-modules-scope: 3.0.0_postcss@8.4.25 + postcss-modules-values: 4.0.0_postcss@8.4.25 postcss-value-parser: 4.2.0 semver: 7.4.0 webpack: 5.88.2 @@ -10001,9 +10725,9 @@ packages: optional: true dependencies: clean-css: 5.3.2 - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.25 jest-worker: 29.5.0 - postcss: 8.4.21 + postcss: 8.4.25 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 @@ -10104,19 +10828,19 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-advanced/5.3.10_postcss@8.4.21: + /cssnano-preset-advanced/5.3.10_postcss@8.4.25: resolution: {integrity: sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - autoprefixer: 10.4.13_postcss@8.4.21 - cssnano-preset-default: 5.2.14_postcss@8.4.21 - postcss: 8.4.21 - postcss-discard-unused: 5.1.0_postcss@8.4.21 - postcss-merge-idents: 5.1.1_postcss@8.4.21 - postcss-reduce-idents: 5.2.0_postcss@8.4.21 - postcss-zindex: 5.1.0_postcss@8.4.21 + autoprefixer: 10.4.13_postcss@8.4.25 + cssnano-preset-default: 5.2.14_postcss@8.4.25 + postcss: 8.4.25 + postcss-discard-unused: 5.1.0_postcss@8.4.25 + postcss-merge-idents: 5.1.1_postcss@8.4.25 + postcss-reduce-idents: 5.2.0_postcss@8.4.25 + postcss-zindex: 5.1.0_postcss@8.4.25 /cssnano-preset-default/5.2.14_postcss@8.4.12: resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} @@ -10192,6 +10916,44 @@ packages: postcss-reduce-transforms: 5.1.0_postcss@8.4.21 postcss-svgo: 5.1.0_postcss@8.4.21 postcss-unique-selectors: 5.1.1_postcss@8.4.21 + dev: true + + /cssnano-preset-default/5.2.14_postcss@8.4.25: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.3.1_postcss@8.4.25 + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-calc: 8.2.4_postcss@8.4.25 + postcss-colormin: 5.3.1_postcss@8.4.25 + postcss-convert-values: 5.1.3_postcss@8.4.25 + postcss-discard-comments: 5.1.2_postcss@8.4.25 + postcss-discard-duplicates: 5.1.0_postcss@8.4.25 + postcss-discard-empty: 5.1.1_postcss@8.4.25 + postcss-discard-overridden: 5.1.0_postcss@8.4.25 + postcss-merge-longhand: 5.1.7_postcss@8.4.25 + postcss-merge-rules: 5.1.4_postcss@8.4.25 + postcss-minify-font-values: 5.1.0_postcss@8.4.25 + postcss-minify-gradients: 5.1.1_postcss@8.4.25 + postcss-minify-params: 5.1.4_postcss@8.4.25 + postcss-minify-selectors: 5.2.1_postcss@8.4.25 + postcss-normalize-charset: 5.1.0_postcss@8.4.25 + postcss-normalize-display-values: 5.1.0_postcss@8.4.25 + postcss-normalize-positions: 5.1.1_postcss@8.4.25 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.25 + postcss-normalize-string: 5.1.0_postcss@8.4.25 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.25 + postcss-normalize-unicode: 5.1.1_postcss@8.4.25 + postcss-normalize-url: 5.1.0_postcss@8.4.25 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.25 + postcss-ordered-values: 5.1.3_postcss@8.4.25 + postcss-reduce-initial: 5.1.2_postcss@8.4.25 + postcss-reduce-transforms: 5.1.0_postcss@8.4.25 + postcss-svgo: 5.1.0_postcss@8.4.25 + postcss-unique-selectors: 5.1.1_postcss@8.4.25 /cssnano-utils/3.1.0_postcss@8.4.12: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} @@ -10209,6 +10971,15 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /cssnano-utils/3.1.0_postcss@8.4.25: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 /cssnano/5.1.15_postcss@8.4.12: resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} @@ -10232,6 +11003,18 @@ packages: lilconfig: 2.1.0 postcss: 8.4.21 yaml: 1.10.2 + dev: true + + /cssnano/5.1.15_postcss@8.4.25: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 5.2.14_postcss@8.4.25 + lilconfig: 2.1.0 + postcss: 8.4.25 + yaml: 1.10.2 /csso/4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} @@ -10803,6 +11586,21 @@ packages: dependencies: once: 1.4.0 + /enhanced-resolve/5.12.0: + resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + + /enhanced-resolve/5.14.1: + resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.10 + tapable: 2.2.1 + dev: true + /enhanced-resolve/5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} @@ -10902,6 +11700,9 @@ packages: resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==} dev: true + /es-module-lexer/0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + /es-module-lexer/1.2.0: resolution: {integrity: sha512-2BMfqBDeVCcOlLaL1ZAfp+D868SczNpKArrTM3dhpd7dK/OVlogzY15qpUngt+LMTq5UC/csb9vVQAgupucSbA==} dev: false @@ -11860,6 +12661,44 @@ packages: jest-util: 29.5.0 dev: true + /express/4.18.1: + resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.0 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.10.3 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + /express/4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -12601,7 +13440,7 @@ packages: dependencies: array-union: 3.0.1 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.0 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -12623,7 +13462,7 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.0 ignore: 5.2.4 merge2: 1.4.1 slash: 4.0.0 @@ -12992,7 +13831,6 @@ packages: micromatch: 4.0.5 transitivePeerDependencies: - debug - dev: true /http-proxy-middleware/2.0.6_@types+express@4.17.17: resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} @@ -13141,6 +13979,15 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.21 + dev: true + + /icss-utils/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.25 /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -13336,7 +14183,6 @@ packages: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true /is-array-buffer/3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -13446,7 +14292,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -15628,7 +16473,6 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /natural-compare-lite/1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -16287,6 +17131,16 @@ packages: postcss: 8.4.21 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 + dev: true + + /postcss-calc/8.2.4_postcss@8.4.25: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 /postcss-clamp/4.1.0_postcss@8.4.12: resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} @@ -16352,6 +17206,19 @@ packages: colord: 2.9.3 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin/5.3.1_postcss@8.4.25: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-convert-values/5.1.3_postcss@8.4.12: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} @@ -16373,6 +17240,17 @@ packages: browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values/5.1.3_postcss@8.4.25: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-custom-media/8.0.2_postcss@8.4.12: resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==} @@ -16430,6 +17308,15 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /postcss-discard-comments/5.1.2_postcss@8.4.25: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 /postcss-discard-duplicates/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} @@ -16447,6 +17334,15 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /postcss-discard-duplicates/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 /postcss-discard-empty/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} @@ -16464,6 +17360,15 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /postcss-discard-empty/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 /postcss-discard-overridden/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} @@ -16481,14 +17386,23 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /postcss-discard-overridden/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 - /postcss-discard-unused/5.1.0_postcss@8.4.21: + /postcss-discard-unused/5.1.0_postcss@8.4.25: resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 postcss-selector-parser: 6.0.11 /postcss-double-position-gradients/3.1.2_postcss@8.4.12: @@ -16600,13 +17514,13 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-less/6.0.0_postcss@8.4.21: + /postcss-less/6.0.0_postcss@8.4.25: resolution: {integrity: sha512-FPX16mQLyEjLzEuuJtxA8X3ejDLNGGEG503d2YGZR5Ask1SpDN8KmZUMpzCvyalWRywAn1n1VOA5dcqfCLo5rg==} engines: {node: '>=12'} peerDependencies: postcss: ^8.3.5 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 dev: true /postcss-load-config/3.1.4_postcss@8.4.21: @@ -16640,7 +17554,7 @@ packages: webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true - /postcss-loader/7.0.2_spab46aedetttbaa4fvapwm3fq: + /postcss-loader/7.0.2_pu275c3rt57tiockloa6nvewbm: resolution: {integrity: sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -16649,7 +17563,7 @@ packages: dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 - postcss: 8.4.21 + postcss: 8.4.25 semver: 7.4.0 webpack: 5.88.2 @@ -16675,14 +17589,14 @@ packages: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} dev: true - /postcss-merge-idents/5.1.1_postcss@8.4.21: + /postcss-merge-idents/5.1.1_postcss@8.4.25: resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 postcss-value-parser: 4.2.0 /postcss-merge-longhand/5.1.7_postcss@8.4.12: @@ -16705,6 +17619,17 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 stylehacks: 5.1.1_postcss@8.4.21 + dev: true + + /postcss-merge-longhand/5.1.7_postcss@8.4.25: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1_postcss@8.4.25 /postcss-merge-rules/5.1.4_postcss@8.4.12: resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} @@ -16730,6 +17655,19 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-selector-parser: 6.0.11 + dev: true + + /postcss-merge-rules/5.1.4_postcss@8.4.25: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 /postcss-minify-font-values/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} @@ -16749,6 +17687,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-font-values/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-minify-gradients/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} @@ -16772,6 +17720,18 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-minify-params/5.1.4_postcss@8.4.12: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} @@ -16795,6 +17755,18 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params/5.1.4_postcss@8.4.25: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-minify-selectors/5.2.1_postcss@8.4.12: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} @@ -16814,6 +17786,16 @@ packages: dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.11 + dev: true + + /postcss-minify-selectors/5.2.1_postcss@8.4.25: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 /postcss-modules-extract-imports/3.0.0_postcss@8.4.12: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} @@ -16831,6 +17813,15 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.21 + dev: true + + /postcss-modules-extract-imports/3.0.0_postcss@8.4.25: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.25 /postcss-modules-local-by-default/4.0.0_postcss@8.4.12: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} @@ -16844,14 +17835,26 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-local-by-default/4.0.0_postcss@8.4.21: + /postcss-modules-local-by-default/4.0.0_postcss@8.4.21: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-local-by-default/4.0.0_postcss@8.4.25: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.21 - postcss: 8.4.21 + icss-utils: 5.1.0_postcss@8.4.25 + postcss: 8.4.25 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 @@ -16873,6 +17876,16 @@ packages: dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.11 + dev: true + + /postcss-modules-scope/3.0.0_postcss@8.4.25: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 /postcss-modules-values/4.0.0_postcss@8.4.12: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} @@ -16892,6 +17905,16 @@ packages: dependencies: icss-utils: 5.1.0_postcss@8.4.21 postcss: 8.4.21 + dev: true + + /postcss-modules-values/4.0.0_postcss@8.4.25: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.25 + postcss: 8.4.25 /postcss-modules/4.3.1_postcss@8.4.12: resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} @@ -16956,6 +17979,15 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.21 + dev: true + + /postcss-normalize-charset/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 /postcss-normalize-display-values/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} @@ -16975,6 +18007,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-display-values/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-positions/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} @@ -16994,6 +18036,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-repeat-style/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} @@ -17013,6 +18065,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-string/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} @@ -17032,6 +18094,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-timing-functions/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} @@ -17051,6 +18123,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-unicode/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} @@ -17072,6 +18154,17 @@ packages: browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-url/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} @@ -17093,6 +18186,17 @@ packages: normalize-url: 6.1.0 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + normalize-url: 6.1.0 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-normalize-whitespace/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} @@ -17112,6 +18216,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-opacity-percentage/1.1.3_postcss@8.4.12: resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} @@ -17142,6 +18256,17 @@ packages: cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values/5.1.3_postcss@8.4.25: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 3.1.0_postcss@8.4.25 + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-overflow-shorthand/3.0.4_postcss@8.4.12: resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==} @@ -17241,13 +18366,13 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /postcss-reduce-idents/5.2.0_postcss@8.4.21: + /postcss-reduce-idents/5.2.0_postcss@8.4.25: resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 postcss-value-parser: 4.2.0 /postcss-reduce-initial/5.1.2_postcss@8.4.12: @@ -17270,6 +18395,17 @@ packages: browserslist: 4.21.5 caniuse-api: 3.0.0 postcss: 8.4.21 + dev: true + + /postcss-reduce-initial/5.1.2_postcss@8.4.25: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + caniuse-api: 3.0.0 + postcss: 8.4.25 /postcss-reduce-transforms/5.1.0_postcss@8.4.12: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} @@ -17289,6 +18425,16 @@ packages: dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-transforms/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.12: resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} @@ -17311,13 +18457,13 @@ packages: postcss: 8.4.25 dev: true - /postcss-scss/4.0.6_postcss@8.4.21: + /postcss-scss/4.0.6_postcss@8.4.25: resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.19 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 dev: true /postcss-selector-not/5.0.0_postcss@8.4.12: @@ -17344,13 +18490,13 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-sort-media-queries/4.3.0_postcss@8.4.21: + /postcss-sort-media-queries/4.3.0_postcss@8.4.25: resolution: {integrity: sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==} engines: {node: '>=10.0.0'} peerDependencies: postcss: ^8.4.16 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 sort-css-media-queries: 2.1.0 /postcss-svgo/5.1.0_postcss@8.4.12: @@ -17373,6 +18519,17 @@ packages: postcss: 8.4.21 postcss-value-parser: 4.2.0 svgo: 2.8.0 + dev: true + + /postcss-svgo/5.1.0_postcss@8.4.25: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 /postcss-unique-selectors/5.1.1_postcss@8.4.12: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} @@ -17392,17 +18549,27 @@ packages: dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.11 + dev: true + + /postcss-unique-selectors/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss-zindex/5.1.0_postcss@8.4.21: + /postcss-zindex/5.1.0_postcss@8.4.25: resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.25 /postcss/7.0.39: resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} @@ -17427,6 +18594,7 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true /postcss/8.4.25: resolution: {integrity: sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==} @@ -17435,7 +18603,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /preferred-pm/3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} @@ -17668,6 +18835,12 @@ packages: react: 18.2.0 dev: false + /qs/6.10.3: + resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + /qs/6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -19456,18 +20629,18 @@ packages: rollup: ^2.63.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@types/cssnano': 5.1.0_postcss@8.4.21 + '@types/cssnano': 5.1.0_postcss@8.4.25 cosmiconfig: 7.1.0 - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.25 fs-extra: 10.1.0 - icss-utils: 5.1.0_postcss@8.4.21 + icss-utils: 5.1.0_postcss@8.4.25 mime-types: 2.1.35 p-queue: 6.6.2 - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 - postcss-modules-scope: 3.0.0_postcss@8.4.21 - postcss-modules-values: 4.0.0_postcss@8.4.21 + postcss: 8.4.25 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.25 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.25 + postcss-modules-scope: 3.0.0_postcss@8.4.25 + postcss-modules-values: 4.0.0_postcss@8.4.25 postcss-value-parser: 4.2.0 query-string: 7.1.3 resolve: 1.22.1 @@ -19518,7 +20691,7 @@ packages: dependencies: find-up: 5.0.0 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.25 strip-json-comments: 3.1.1 dev: false @@ -19656,6 +20829,7 @@ packages: '@types/json-schema': 7.0.11 ajv: 6.12.6 ajv-keywords: 3.5.2_ajv@6.12.6 + dev: true /schema-utils/3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -20384,6 +21558,17 @@ packages: browserslist: 4.21.5 postcss: 8.4.21 postcss-selector-parser: 6.0.11 + dev: true + + /stylehacks/5.1.1_postcss@8.4.25: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.5 + postcss: 8.4.25 + postcss-selector-parser: 6.0.11 /stylelint-scss/4.4.0_stylelint@15.10.1: resolution: {integrity: sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==} @@ -20677,6 +21862,56 @@ packages: webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte dev: true + /terser-webpack-plugin/5.3.5_f3zd7efg6ezat75e64xurz6cta: + resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + '@swc/core': 1.3.77 + esbuild: 0.17.16 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.1 + terser: 5.14.2 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + + /terser-webpack-plugin/5.3.5_sozpi7ywd3sv63uu2kzspstlze: + resolution: {integrity: sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + esbuild: 0.17.16 + jest-worker: 27.5.1 + schema-utils: 3.1.1 + serialize-javascript: 6.0.1 + terser: 5.14.2 + webpack: 5.76.0_esbuild@0.17.16 + dev: true + /terser-webpack-plugin/5.3.6_webpack@5.88.2: resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} @@ -20698,7 +21933,32 @@ packages: schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.88.2 + webpack: 5.88.2 + + /terser-webpack-plugin/5.3.7_3d2sldnof75occqqtyfzznb47i: + resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.17 + esbuild: 0.17.16 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.16.5 + webpack: 5.86.0_esbuild@0.17.16 + dev: true /terser-webpack-plugin/5.3.7_4yjf5voakpkrj4qbnm3gtqjbli: resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} @@ -20719,7 +21979,7 @@ packages: '@jridgewell/trace-mapping': 0.3.17 esbuild: 0.17.16 jest-worker: 27.5.1 - schema-utils: 3.1.2 + schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.16.5 webpack: 5.88.2_esbuild@0.17.16 @@ -20745,7 +22005,7 @@ packages: '@swc/core': 1.3.77 esbuild: 0.17.16 jest-worker: 27.5.1 - schema-utils: 3.1.2 + schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.16.5 webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte @@ -20768,7 +22028,7 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.17 jest-worker: 27.5.1 - schema-utils: 3.1.2 + schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.16.5 webpack: 5.88.2 @@ -20782,7 +22042,6 @@ packages: acorn: 8.8.2 commander: 2.20.3 source-map-support: 0.5.21 - dev: true /terser/5.16.5: resolution: {integrity: sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==} @@ -21540,7 +22799,6 @@ packages: is-generator-function: 1.0.10 is-typed-array: 1.1.10 which-typed-array: 1.1.9 - dev: true /utila/0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} @@ -21944,6 +23202,33 @@ packages: schema-utils: 4.0.0 dev: true + /webpack-dev-middleware/5.3.3_webpack@5.76.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.13 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + + /webpack-dev-middleware/5.3.3_webpack@5.86.0: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.19 + memfs: 3.4.13 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.86.0_esbuild@0.17.16 + dev: true + /webpack-dev-middleware/5.3.3_webpack@5.88.2: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} engines: {node: '>= 12.13.0'} @@ -21957,6 +23242,22 @@ packages: schema-utils: 4.0.0 webpack: 5.88.2_4xkclhduw6cmnopkeqfp6begte + /webpack-dev-middleware/6.0.2_webpack@5.76.0: + resolution: {integrity: sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + dependencies: + colorette: 2.0.19 + memfs: 3.4.13 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.0.0 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + /webpack-dev-server/4.11.1_webpack@5.88.2: resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} engines: {node: '>= 12.13.0'} @@ -22005,6 +23306,56 @@ packages: - utf-8-validate dev: true + /webpack-dev-server/4.13.1_webpack@5.76.0: + resolution: {integrity: sha512-5tWg00bnWbYgkN+pd5yISQKDejRBYGEw15RaEEslH+zdbNDxxaZvEAO2WulaSaFKb5n3YG8JXsGaDsut1D0xdA==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.17 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.1 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.4 + ansi-html-community: 0.0.8 + bonjour-service: 1.1.0 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.17 + ipaddr.js: 2.0.1 + launch-editor: 2.6.0 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.76.0_4xkclhduw6cmnopkeqfp6begte + webpack-dev-middleware: 5.3.3_webpack@5.76.0 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + /webpack-dev-server/4.13.2: resolution: {integrity: sha512-5i6TrGBRxG4vnfDpB6qSQGfnB6skGBXNL5/542w2uRGLimX6qeE5BQMLrzIC3JYV/xlGOv+s+hTleI9AZKUQNw==} engines: {node: '>= 12.13.0'} @@ -22106,6 +23457,57 @@ packages: - utf-8-validate dev: false + /webpack-dev-server/4.15.0_webpack@5.86.0: + resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.10 + '@types/connect-history-api-fallback': 1.3.5 + '@types/express': 4.17.17 + '@types/serve-index': 1.9.1 + '@types/serve-static': 1.15.1 + '@types/sockjs': 0.3.33 + '@types/ws': 8.5.4 + ansi-html-community: 0.0.8 + bonjour-service: 1.1.0 + chokidar: 3.5.3 + colorette: 2.0.19 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.10 + html-entities: 2.3.3 + http-proxy-middleware: 2.0.6_@types+express@4.17.17 + ipaddr.js: 2.0.1 + launch-editor: 2.6.0 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.0.0 + selfsigned: 2.1.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.86.0_esbuild@0.17.16 + webpack-dev-middleware: 5.3.3_webpack@5.86.0 + ws: 8.13.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + /webpack-dev-server/4.15.0_webpack@5.88.2: resolution: {integrity: sha512-HmNB5QeSl1KpulTBQ8UT4FPrByYyaLxpJoQ0+s7EvUrMc16m0ZS1sgb1XGqzmgCPk0c9y+aaXxn11tbLzuM7NQ==} engines: {node: '>= 12.13.0'} @@ -22179,6 +23581,125 @@ packages: resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} dev: true + /webpack/5.76.0_4xkclhduw6cmnopkeqfp6begte: + resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.9.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.5_f3zd7efg6ezat75e64xurz6cta + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + /webpack/5.76.0_esbuild@0.17.16: + resolution: {integrity: sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 0.0.51 + '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/wasm-edit': 1.11.1 + '@webassemblyjs/wasm-parser': 1.11.1 + acorn: 8.8.2 + acorn-import-assertions: 1.9.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 0.9.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.5_sozpi7ywd3sv63uu2kzspstlze + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /webpack/5.86.0_esbuild@0.17.16: + resolution: {integrity: sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.4 + '@types/estree': 1.0.0 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/wasm-edit': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 + acorn: 8.8.2 + acorn-import-assertions: 1.9.0_acorn@8.8.2 + browserslist: 4.21.5 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.14.1 + es-module-lexer: 1.2.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.1.2 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.7_3d2sldnof75occqqtyfzznb47i + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + /webpack/5.88.2: resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} @@ -22412,7 +23933,7 @@ packages: /wide-align/1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: - string-width: 1.0.2 + string-width: 4.2.3 /widest-line/3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} @@ -22523,6 +24044,18 @@ packages: utf-8-validate: optional: true + /ws/8.8.1: + resolution: {integrity: sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + /xdg-basedir/4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'} @@ -22650,5 +24183,16 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + /zod-validation-error/1.2.0_zod@3.21.4: + resolution: {integrity: sha512-laJkD/ugwEh8CpuH+xXv5L9Z+RLz3lH8alNxolfaHZJck611OJj97R4Rb+ZqA7WNly2kNtTo4QwjdjXw9scpiw==} + engines: {node: ^14.17 || >=16.0.0} + peerDependencies: + zod: ^3.18.0 + dependencies: + zod: 3.21.4 + + /zod/3.21.4: + resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} + /zwitch/1.0.5: resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} From 1ccd3a6ef275655a47579e20da4306aa3b9491bb Mon Sep 17 00:00:00 2001 From: ClarkXia Date: Mon, 21 Aug 2023 17:38:24 +0800 Subject: [PATCH 3/4] chore: fix type error --- packages/plugin-pha/src/constants.ts | 4 ++-- packages/plugin-pha/src/generateManifest.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/plugin-pha/src/constants.ts b/packages/plugin-pha/src/constants.ts index 7070e7d621..b26b23e181 100644 --- a/packages/plugin-pha/src/constants.ts +++ b/packages/plugin-pha/src/constants.ts @@ -1,4 +1,4 @@ -import type { PluginData } from '@ice/app/types'; +import type { Config, OverwritePluginAPI, PluginData } from '@ice/app/types'; import type { Context } from 'build-scripts'; // Keys of appConfig need transform to manifest. @@ -91,7 +91,7 @@ export const pageDefaultValueKeys = [ ]; export const getCompilerConfig = (options: { - getAllPlugin: Context['getAllPlugin']; + getAllPlugin: Context['getAllPlugin']; }) => { const { getAllPlugin, diff --git a/packages/plugin-pha/src/generateManifest.ts b/packages/plugin-pha/src/generateManifest.ts index b69b5b8ae4..db66b3500c 100644 --- a/packages/plugin-pha/src/generateManifest.ts +++ b/packages/plugin-pha/src/generateManifest.ts @@ -1,6 +1,6 @@ import * as path from 'path'; import * as fs from 'fs'; -import type { GetAppConfig, GetDataloaderConfig, GetRoutesConfig, CreateLoggerReturnType } from '@ice/app/types'; +import type { GetAppConfig, GetDataloaderConfig, GetRoutesConfig, CreateLoggerReturnType, Config, OverwritePluginAPI } from '@ice/app/types'; import type { Context } from 'build-scripts'; import { parseManifest, rewriteAppWorker, getAppWorkerUrl, getMultipleManifest, type ParseOptions } from './manifestHelpers.js'; import { getCompilerConfig } from './constants.js'; @@ -14,7 +14,7 @@ export interface Options { getAppConfig: GetAppConfig; getRoutesConfig: GetRoutesConfig; getDataloaderConfig: GetDataloaderConfig; - getAllPlugin: Context['getAllPlugin']; + getAllPlugin: Context['getAllPlugin']; logger?: CreateLoggerReturnType; } From 48e3d8b6f96f53bfa8c2950503adfeab63fc6fc4 Mon Sep 17 00:00:00 2001 From: ClarkXia Date: Tue, 22 Aug 2023 12:07:37 +0800 Subject: [PATCH 4/4] chore: update versions (#6482) --- .changeset/happy-avocados-eat.md | 6 ------ .changeset/late-trains-relate.md | 5 ----- packages/bundles/CHANGELOG.md | 6 ++++++ packages/bundles/package.json | 2 +- packages/ice/CHANGELOG.md | 15 +++++++++++++++ packages/ice/package.json | 10 +++++----- packages/plugin-i18n/CHANGELOG.md | 7 +++++++ packages/plugin-i18n/package.json | 4 ++-- packages/rspack-config/CHANGELOG.md | 9 +++++++++ packages/rspack-config/package.json | 6 +++--- packages/shared-config/CHANGELOG.md | 8 ++++++++ packages/shared-config/package.json | 4 ++-- packages/webpack-config/CHANGELOG.md | 12 ++++++++++++ packages/webpack-config/package.json | 6 +++--- pnpm-lock.yaml | 18 +++++++++--------- 15 files changed, 82 insertions(+), 36 deletions(-) delete mode 100644 .changeset/happy-avocados-eat.md delete mode 100644 .changeset/late-trains-relate.md create mode 100644 packages/rspack-config/CHANGELOG.md create mode 100644 packages/shared-config/CHANGELOG.md diff --git a/.changeset/happy-avocados-eat.md b/.changeset/happy-avocados-eat.md deleted file mode 100644 index c052ea2e6c..0000000000 --- a/.changeset/happy-avocados-eat.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@ice/webpack-config': minor -'@ice/app': minor ---- - -feat: support build by rust tools diff --git a/.changeset/late-trains-relate.md b/.changeset/late-trains-relate.md deleted file mode 100644 index a0289e71cc..0000000000 --- a/.changeset/late-trains-relate.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@ice/bundles': patch ---- - -fix: bump @swc/core, webpack, swc plugins, core-js version diff --git a/packages/bundles/CHANGELOG.md b/packages/bundles/CHANGELOG.md index d7901ddba0..fcbebf07e1 100644 --- a/packages/bundles/CHANGELOG.md +++ b/packages/bundles/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.1.14 + +### Patch Changes + +- 1dbcfa51: fix: bump @swc/core, webpack, swc plugins, core-js version + ## 0.1.13 ### Patch Changes diff --git a/packages/bundles/package.json b/packages/bundles/package.json index 923099c6f0..342fe8cc6c 100644 --- a/packages/bundles/package.json +++ b/packages/bundles/package.json @@ -1,6 +1,6 @@ { "name": "@ice/bundles", - "version": "0.1.13", + "version": "0.1.14", "license": "MIT", "author": "ICE", "description": "Basic dependencies for ice.", diff --git a/packages/ice/CHANGELOG.md b/packages/ice/CHANGELOG.md index 452a6fe2ca..8ace7c69b7 100644 --- a/packages/ice/CHANGELOG.md +++ b/packages/ice/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 3.3.0 + +### Minor Changes + +- f5d155b5: feat: support build by rust tools + +### Patch Changes + +- Updated dependencies [f5d155b5] +- Updated dependencies [1dbcfa51] + - @ice/webpack-config@1.1.0 + - @ice/bundles@0.1.14 + - @ice/rspack-config@1.0.1 + - @ice/shared-config@1.0.1 + ## 3.2.10 ### Patch Changes diff --git a/packages/ice/package.json b/packages/ice/package.json index 6a84ef6eeb..646f0c8f3b 100644 --- a/packages/ice/package.json +++ b/packages/ice/package.json @@ -1,6 +1,6 @@ { "name": "@ice/app", - "version": "3.2.10", + "version": "3.3.0", "description": "provide scripts and configuration used by web framework ice", "type": "module", "main": "./esm/index.js", @@ -37,12 +37,12 @@ "bugs": "https://github.com/alibaba/ice/issues", "homepage": "https://v3.ice.work", "dependencies": { - "@ice/bundles": "0.1.13", + "@ice/bundles": "0.1.14", "@ice/route-manifest": "1.2.1", "@ice/runtime": "^1.2.7", - "@ice/shared-config": "1.0.0", - "@ice/webpack-config": "1.0.20", - "@ice/rspack-config": "1.0.0", + "@ice/shared-config": "1.0.1", + "@ice/webpack-config": "1.1.0", + "@ice/rspack-config": "1.0.1", "@swc/helpers": "0.5.1", "@types/express": "^4.17.14", "address": "^1.1.2", diff --git a/packages/plugin-i18n/CHANGELOG.md b/packages/plugin-i18n/CHANGELOG.md index d8b24f2b95..269e39ad0c 100644 --- a/packages/plugin-i18n/CHANGELOG.md +++ b/packages/plugin-i18n/CHANGELOG.md @@ -1,5 +1,12 @@ # @ice/plugin-i18n +## 2.0.0 + +### Patch Changes + +- Updated dependencies [f5d155b5] + - @ice/app@3.3.0 + ## 1.0.0 ### Major Changes diff --git a/packages/plugin-i18n/package.json b/packages/plugin-i18n/package.json index d43c8163c6..8f659d3329 100644 --- a/packages/plugin-i18n/package.json +++ b/packages/plugin-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@ice/plugin-i18n", - "version": "1.0.0", + "version": "2.0.0", "description": "I18n plugin for ice.js 3.", "files": [ "es2017", @@ -55,7 +55,7 @@ "webpack-dev-server": "^4.13.2" }, "peerDependencies": { - "@ice/app": "^3.2.10", + "@ice/app": "^3.3.0", "@ice/runtime": "^1.2.7" }, "publishConfig": { diff --git a/packages/rspack-config/CHANGELOG.md b/packages/rspack-config/CHANGELOG.md new file mode 100644 index 0000000000..899f5ebdf0 --- /dev/null +++ b/packages/rspack-config/CHANGELOG.md @@ -0,0 +1,9 @@ +# @ice/rspack-config + +## 1.0.1 + +### Patch Changes + +- Updated dependencies [1dbcfa51] + - @ice/bundles@0.1.14 + - @ice/shared-config@1.0.1 diff --git a/packages/rspack-config/package.json b/packages/rspack-config/package.json index 3d5324702a..0cddb2c27b 100644 --- a/packages/rspack-config/package.json +++ b/packages/rspack-config/package.json @@ -1,6 +1,6 @@ { "name": "@ice/rspack-config", - "version": "1.0.0", + "version": "1.0.1", "repository": "alibaba/ice", "bugs": "https://github.com/alibaba/ice/issues", "homepage": "https://v3.ice.work", @@ -15,8 +15,8 @@ "*.d.ts" ], "dependencies": { - "@ice/shared-config": "1.0.0", - "@ice/bundles": "0.1.13" + "@ice/shared-config": "1.0.1", + "@ice/bundles": "0.1.14" }, "devDependencies": { "@rspack/core": "^0.2.12" diff --git a/packages/shared-config/CHANGELOG.md b/packages/shared-config/CHANGELOG.md new file mode 100644 index 0000000000..cb36722513 --- /dev/null +++ b/packages/shared-config/CHANGELOG.md @@ -0,0 +1,8 @@ +# @ice/shared-config + +## 1.0.1 + +### Patch Changes + +- Updated dependencies [1dbcfa51] + - @ice/bundles@0.1.14 diff --git a/packages/shared-config/package.json b/packages/shared-config/package.json index 1b97ba77e1..e43a151e8d 100644 --- a/packages/shared-config/package.json +++ b/packages/shared-config/package.json @@ -1,6 +1,6 @@ { "name": "@ice/shared-config", - "version": "1.0.0", + "version": "1.0.1", "repository": "alibaba/ice", "bugs": "https://github.com/alibaba/ice/issues", "homepage": "https://v3.ice.work", @@ -17,7 +17,7 @@ "*.d.ts" ], "dependencies": { - "@ice/bundles": "0.1.13", + "@ice/bundles": "0.1.14", "@rollup/pluginutils": "^4.2.0", "browserslist": "^4.19.3", "consola": "^2.15.3", diff --git a/packages/webpack-config/CHANGELOG.md b/packages/webpack-config/CHANGELOG.md index 3f131c44b6..bac6cdaa02 100644 --- a/packages/webpack-config/CHANGELOG.md +++ b/packages/webpack-config/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## 1.1.0 + +### Minor Changes + +- f5d155b5: feat: support build by rust tools + +### Patch Changes + +- Updated dependencies [1dbcfa51] + - @ice/bundles@0.1.14 + - @ice/shared-config@1.0.1 + ## 1.0.20 ### Patch Changes diff --git a/packages/webpack-config/package.json b/packages/webpack-config/package.json index 71c8560288..9c2d54b0dc 100644 --- a/packages/webpack-config/package.json +++ b/packages/webpack-config/package.json @@ -1,6 +1,6 @@ { "name": "@ice/webpack-config", - "version": "1.0.20", + "version": "1.1.0", "repository": "alibaba/ice", "bugs": "https://github.com/alibaba/ice/issues", "homepage": "https://v3.ice.work", @@ -15,8 +15,8 @@ "*.d.ts" ], "dependencies": { - "@ice/shared-config": "1.0.0", - "@ice/bundles": "0.1.13", + "@ice/shared-config": "1.0.1", + "@ice/bundles": "0.1.14", "fast-glob": "^3.2.11", "process": "^0.11.10" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10d2c19c99..49d3cd98a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1095,12 +1095,12 @@ importers: packages/ice: specifiers: - '@ice/bundles': 0.1.13 + '@ice/bundles': 0.1.14 '@ice/route-manifest': 1.2.1 - '@ice/rspack-config': 1.0.0 + '@ice/rspack-config': 1.0.1 '@ice/runtime': ^1.2.7 - '@ice/shared-config': 1.0.0 - '@ice/webpack-config': 1.0.20 + '@ice/shared-config': 1.0.1 + '@ice/webpack-config': 1.1.0 '@rspack/core': 0.2.12 '@rspack/dev-server': 0.2.12 '@swc/helpers': 0.5.1 @@ -1570,8 +1570,8 @@ importers: packages/rspack-config: specifiers: - '@ice/bundles': 0.1.13 - '@ice/shared-config': 1.0.0 + '@ice/bundles': 0.1.14 + '@ice/shared-config': 1.0.1 '@rspack/core': ^0.2.12 dependencies: '@ice/bundles': link:../bundles @@ -1624,7 +1624,7 @@ importers: packages/shared-config: specifiers: - '@ice/bundles': 0.1.13 + '@ice/bundles': 0.1.14 '@rollup/pluginutils': ^4.2.0 browserslist: ^4.19.3 consola: ^2.15.3 @@ -1657,8 +1657,8 @@ importers: packages/webpack-config: specifiers: - '@ice/bundles': 0.1.13 - '@ice/shared-config': 1.0.0 + '@ice/bundles': 0.1.14 + '@ice/shared-config': 1.0.1 fast-glob: ^3.2.11 process: ^0.11.10 webpack: ^5.88.0