diff --git a/.changeset/beige-otters-tease.md b/.changeset/beige-otters-tease.md new file mode 100644 index 00000000000..228fdb22eb0 --- /dev/null +++ b/.changeset/beige-otters-tease.md @@ -0,0 +1,5 @@ +--- +'create-module-federation': minor +--- + +feat: add Create a new Module Federation project cli diff --git a/.changeset/config.json b/.changeset/config.json index 5d217131121..48ecd9e0391 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -25,7 +25,8 @@ "@module-federation/rsbuild-plugin", "@module-federation/error-codes", "@module-federation/inject-external-runtime-core-plugin", - "@module-federation/runtime-core" + "@module-federation/runtime-core", + "create-module-federation" ] ], "ignorePatterns": ["^alpha|^beta"], diff --git a/.changeset/dirty-rivers-sing.md b/.changeset/dirty-rivers-sing.md new file mode 100644 index 00000000000..07aefa80d87 --- /dev/null +++ b/.changeset/dirty-rivers-sing.md @@ -0,0 +1,5 @@ +--- +'@module-federation/rsbuild-plugin': patch +--- + +chore(rsbuild-plugin): set 'loaded-first' as default shareStrategy diff --git a/.eslintignore b/.eslintignore index 52908858183..91aba082d89 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,3 @@ node_modules/ vite.config.ts -**/dist/** \ No newline at end of file +**/dist/** diff --git a/.github/workflows/e2e-modern-ssr.yml b/.github/workflows/e2e-modern-ssr.yml index f9734661e65..896a409e087 100644 --- a/.github/workflows/e2e-modern-ssr.yml +++ b/.github/workflows/e2e-modern-ssr.yml @@ -48,12 +48,12 @@ jobs: lsof -ti tcp:3050,3051,3052,3053,3054,3055,3056 | xargs -r kill && pnpm run app:modern:dev & sleep 30 && - npx wait-on http://127.0.0.1:3050/mf-manifest.json && npx wait-on http://127.0.0.1:3051/mf-manifest.json && - npx wait-on http://127.0.0.1:3052/mf-manifest.json && npx wait-on http://127.0.0.1:3053/mf-manifest.json && - npx wait-on http://127.0.0.1:3054/mf-manifest.json && npx wait-on http://127.0.0.1:3055/mf-manifest.json && npx wait-on http://127.0.0.1:3056/mf-manifest.json && + npx wait-on http://127.0.0.1:3054/mf-manifest.json && + npx wait-on http://127.0.0.1:3052/mf-manifest.json && + npx wait-on http://127.0.0.1:3050/mf-manifest.json && npx nx run modernjs-ssr-host:e2e && lsof -ti tcp:3050,3051,3052,3053,3054,3055,3056 | xargs kill diff --git a/.prettierignore b/.prettierignore index 53d01379255..149a6d43d01 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,3 +11,5 @@ apps/website-new/docs /.nx/workspace-data /.nx/cache + +**/*.handlebars diff --git a/apps/rslib-module/rslib.config.ts b/apps/rslib-module/rslib.config.ts index dd3763fa44b..5e22e8f0955 100644 --- a/apps/rslib-module/rslib.config.ts +++ b/apps/rslib-module/rslib.config.ts @@ -36,11 +36,11 @@ export default defineConfig({ root: './dist/mf', }, }, - server: { - port: 3001, - }, }, ], + server: { + port: 3001, + }, plugins: [ pluginReact(), pluginModuleFederation({ diff --git a/apps/website-new/docs/en/guide/start/quick-start.mdx b/apps/website-new/docs/en/guide/start/quick-start.mdx index 0721955470e..e30c6bf8c0f 100644 --- a/apps/website-new/docs/en/guide/start/quick-start.mdx +++ b/apps/website-new/docs/en/guide/start/quick-start.mdx @@ -1,4 +1,4 @@ -import { Badge } from "@theme"; +import { Badge, PackageManagerTabs } from "@theme"; # Quick Start Guide @@ -6,14 +6,169 @@ Before reading this guide, please first read the [Setting Up Environment](./sett _ You can also use [Nx](https://nx.dev) to rapidly scaffold Module Federation projects for [React](../../practice/frameworks/react/using-nx-for-react) and [Angular](../../practice/frameworks/angular/using-nx-for-angular)._ -## Creating a Producer +## Creating a New Project -### 1. Initializing the Project +Module Federation provides the `create-module-federation` tool to create projects. You don't need to install it globally; you can directly use `npx` to run it on-demand. -Use [Rsbuild](https://rsbuild.dev/) to create a producer and call the following command: +You can use `create-module-federation` to create a Module Federation project by running the following command: + + +Just follow the prompts step by step. During the creation process, you can select the project type, role type, etc. + +### Templates + +When creating a project, you can choose from the following templates provided by `create-module-federation`: + +| Template | Description | +| --------------------- | ------------------------------------------------------------ | +| provider-modern | A provider using [Modern.js](https://modernjs.dev/) | +| provider-rsbuild | A provider using [Rsbuild](https://rsbuild.dev/) | +| provider-rslib | A provider using [Rslib](https://lib.rsbuild.dev/) | +| provider-rslib-storybook | A provider using [Rslib](https://lib.rsbuild.dev/) with the storybook feature enabled | +| consumer-modern | A consumer using [Modern.js](https://modernjs.dev/) | +| consumer-rsbuild | A consumer using [Rsbuild](https://rsbuild.dev/) | + +### Quick Creation + +[create-module-federation](https://www.npmjs.com/package/create-module-federation) provides some CLI options. By setting these CLI options, you can skip the interactive selection steps and create a project with one click. + +For example, to create a Modern.js provider project named `provider` in the `my-project` directory with one click: + +```bash +npx create-module-federation --dir my-project --template provider-modern --name provider + +# Use abbreviations +npx create-module-federation -d my-project -t provider-modern -n provider +``` + +The complete CLI options for `create-module-federation` are as follows: + +```text +Usage: create-module-federation [options] + +Options: + + -h, --help display help for command + -d, --dir create project in specified directory + -t, --template specify the template to use + -n, --name specify the mf name + -r, --role specify the mf role type: provider or consumer + --override override files in target directory + +Templates: + + provider-modern, provider-rsbuild, provider-rslib, provider-rslib-storybook, consumer-modern, consumer-rsbuild +``` + +### Create a provider + +Execute the `create-module-federation` command, select the required framework and type according to your needs, and select the role type as provider to create a project. + +Here we take creating an rsbuild provider project as an example: + +```bash +➜ ~ ✗ npm create module-federation@latest + +> npx +> create-module-federation + +◆ Create Module Federation Project +│ +◇ Please input Module Federation name: +│ mf_provider +│ +◇ Please select the type of project you want to create: +│ Application +│ +◇ Select template +│ Rsbuild +│ +◇ Please select the role of project you want to create: +│ Provider +│ +◇ Next steps ─────╮ +│ │ +│ cd mf_provider │ +│ npm install │ +│ npm run dev │ +│ │ +├──────────────────╯ +│ +└ Done. +``` + +### Create a consumer + +Execute the `create-module-federation` command, select the required framework and type according to your needs, and select the role type as consumer to create a project. + +Here is an example of creating an rsbuild consumer project: + +```bash +➜ ~ ✗ npm create module-federation@latest + +> npx +> create-module-federation + +◆ Create Module Federation Project +│ +◇ Please input Module Federation name: +│ mf_consumer +│ +◇ Please select the type of project you want to create: +│ Application +│ +◇ Select template +│ Rsbuild +│ +◇ Please select the role of project you want to create: +│ Consumer +│ +◇ Next steps ─────╮ +│ │ +│ cd mf_provider │ +│ npm install │ +│ npm run dev │ +│ │ +├──────────────────╯ +│ +└ Done. +``` + +#### Replace provider + +The default consumer project created will consume a published provider. If you want to replace the provider, you need to modify the `remotes` configuration in `module-federation.config.ts`. + +```diff title="module-federation.config.ts" +import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'; + +export default createModuleFederationConfig({ + name: 'mf_consumer', + remotes: { +- 'provider': 'rslib_provider@https://unpkg.com/module-federation-rslib-provider@latest/dist/mf/mf-manifest.json', ++ 'provider': 'rslib_provider@http://localhost:3000/mf-manifest.json', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); + +``` + +## Create from existing project + +### Creating a Producer + +#### 1. Initializing the Project -import { PackageManagerTabs } from '@theme'; +Use [Rsbuild](https://rsbuild.dev/) to create a provider and call the following command: TypeScript ``` -### 2. Installing Module Federation Build Plugin +#### 2. Installing Module Federation Build Plugin Following the steps above for initializing the project, we created a `React` project named `federation_provider`. Execute the following commands in sequence: @@ -62,7 +217,7 @@ bun add @module-federation/rsbuild-plugin --save-dev }} /> -### 3. Exporting Modules by the Producer +#### 3. Exporting Modules by the Producer > Change the entry file to asynchronous @@ -118,7 +273,7 @@ export default defineConfig({ }); ``` -### 4. Starting the Producer +#### 4. Starting the Producer TypeScript ``` -### 2. Installing Module Federation Build Plugin +#### 2. Installing Module Federation Build Plugin Following the steps above for initializing the project, we created a `React` project named `federation_consumer`. Execute the following commands in sequence: @@ -201,7 +356,7 @@ bun add @module-federation/rsbuild-plugin --save-dev /> -### 3. Consuming the Producer +#### 3. Consuming the Producer > Declare the `Module Federation` type path in `tsconfig.json` @@ -285,7 +440,7 @@ export default App; ## Summary -Through the above process, you have completed the export of a component from a 'producer' for use by a 'consumer' based on Module Federation. Along the way, you have preliminarily used and understood the configurations of remotes, exposes, and shared in the Module Federation plugin. +Through the above process, you have completed the export of a component from a 'provider' for use by a 'consumer' based on Module Federation. Along the way, you have preliminarily used and understood the configurations of remotes, exposes, and shared in the Module Federation plugin. If you wish to learn how to directly export and consume remote modules on Webpack and Rspack build tools, you can refer to: [Rspack Plugin](../basic/rspack), [Webpack Plugin](../basic/webpack) diff --git a/apps/website-new/docs/zh/guide/start/quick-start.mdx b/apps/website-new/docs/zh/guide/start/quick-start.mdx index a56370b78fb..718ceaa4662 100644 --- a/apps/website-new/docs/zh/guide/start/quick-start.mdx +++ b/apps/website-new/docs/zh/guide/start/quick-start.mdx @@ -2,14 +2,173 @@ 在阅读本指南前,请先阅读 [设置环境](./setting-up-env)。本指南将引导你逐步学习使用 Module Federation。我们将构建两个独立的单页面应用程序 (SPA),它们会使用 Module Federation 共享组件,下文中遇到不熟的名词请查看[名词解释](./glossary)。 -## 创建一个生产者 +## 新项目创建 -### 1. 初始化项目 +Module Federation 提供了 `create-module-federation` 工具来创建项目,不需要全局安装,直接使用 npx 按需运行即可。 -使用 [Rsbuild](https://rsbuild.dev/) 来创建一个生产者,调用以下命令: +你可以使用 `create-module-federation` 来创建一个 Module Federation 项目,调用以下命令: import { PackageManagerTabs } from '@theme'; + + +按照提示一步步操作即可。在创建过程中,你可以选择项目类型、角色类型等。 + +### 模板 + +在创建项目时,你可以选择 `create-module-federation` 提供的下列模板: + +| 模板 | 描述 | +| ------------------------- | ------------------------------------------------------------ | +| provider-modern | 使用 [Modern.js](https://modernjs.dev/) 的生产者 | +| provider-rsbuild | 使用 [Rsbuild](https://rsbuild.dev/) 的生产者 | +| provider-rslib | 使用 [Rslib](https://lib.rsbuild.dev/) 的生产者 | +| provider-rslib-storybook | 使用 [Rslib](https://lib.rsbuild.dev/) 的生产者,并且开启了 storybook 功能 | +| consumer-modern | 使用 [Modern.js](https://modernjs.dev/) 的消费者 | +| consumer-rsbuild | 使用 [Rsbuild](https://rsbuild.dev/) 的消费者 | + + +### 快速创建 + +[create-module-federation](https://www.npmjs.com/package/create-module-federation) 提供了一些 CLI 选项。通过设置这些 CLI 选项,你可以跳过交互式的选择步骤,一键创建项目。 + +比如,一键创建名称为 provider 的 Modern.js 生产者项目到 `my-project` 目录: + +```bash +npx create-module-federation --dir my-project --template provider-modern --name provider + +# 使用缩写 +npx create-module-federation -d my-project -t provider-modern -n provider +``` + +`create-module-federation` 完整的 CLI 选项如下: + +```text +Usage: create-module-federation [options] + +Options: + + -h, --help display help for command + -d, --dir create project in specified directory + -t, --template specify the template to use + -n, --name specify the mf name + -r, --role specify the mf role type: provider or consumer + --override override files in target directory + +Templates: + + provider-modern, provider-rsbuild, provider-rslib, provider-rslib-storybook, consumer-modern, consumer-rsbuild +``` + +### 创建一个生产者 + +执行 `create-module-federation` 命令,按照需求选择需要的框架和类型,并选择角色类型为生产者即可创建项目。 + +此处以创建一个 rsbuild 生产者项目为例: + +```bash +➜ ~ ✗ npm create module-federation@latest + +> npx +> create-module-federation + +◆ Create Module Federation Project +│ +◇ Please input Module Federation name: +│ mf_provider +│ +◇ Please select the type of project you want to create: +│ Application +│ +◇ Select template +│ Rsbuild +│ +◇ Please select the role of project you want to create: +│ Provider +│ +◇ Next steps ─────╮ +│ │ +│ cd mf_provider │ +│ npm install │ +│ npm run dev │ +│ │ +├──────────────────╯ +│ +└ Done. +``` + +### 创建一个消费者 + +执行 `create-module-federation` 命令,按照需求选择需要的框架和类型,并选择角色类型为消费者即可创建项目。 + +此处以创建一个 rsbuild 消费者项目为例: + +```bash +➜ ~ ✗ npm create module-federation@latest + +> npx +> create-module-federation + +◆ Create Module Federation Project +│ +◇ Please input Module Federation name: +│ mf_consumer +│ +◇ Please select the type of project you want to create: +│ Application +│ +◇ Select template +│ Rsbuild +│ +◇ Please select the role of project you want to create: +│ Consumer +│ +◇ Next steps ─────╮ +│ │ +│ cd mf_provider │ +│ npm install │ +│ npm run dev │ +│ │ +├──────────────────╯ +│ +└ Done. +``` + +#### 替换生产者 + +默认创建的消费者项目会消费一个已发布的生产者,如果你想替换生产者,需要在 `module-federation.config.ts` 中修改 `remotes` 配置。 + +```diff title="module-federation.config.ts" +import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'; + +export default createModuleFederationConfig({ + name: 'mf_consumer', + remotes: { +- 'provider': 'rslib_provider@https://unpkg.com/module-federation-rslib-provider@latest/dist/mf/mf-manifest.json', ++ 'provider': 'rslib_provider@http://localhost:3000/mf-manifest.json', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); + +``` + +## 已有项目创建 + +### 创建一个生产者 + +#### 1. 初始化项目 + +使用 [Rsbuild](https://rsbuild.dev/) 来创建一个生产者,调用以下命令: + TypeScript ``` -### 2. 安装 Module Federation 构建插件 +#### 2. 安装 Module Federation 构建插件 根据上面初始化项目的步骤,我们创建了名为 `federation_provider` 的 `React` 项目,依次执行以下命令 @@ -56,7 +215,7 @@ bun add @module-federation/rsbuild-plugin --save-dev }} /> -### 3. 生产者导出模块 +#### 3. 生产者导出模块 > 将入口改为异步 @@ -111,7 +270,7 @@ export default defineConfig({ }); ``` -### 4. 启动生产者 +#### 4. 启动生产者 TypeScript ``` -### 2. 安装 Module Federation 构建插件 +#### 2. 安装 Module Federation 构建插件 根据上面初始化项目的步骤,我们创建了名为 `federation_consumer` 的 `React` 项目,依次执行以下命令 @@ -192,7 +351,7 @@ bun add @module-federation/rsbuild-plugin --save-dev }} /> -### 3. 消费生产者 +#### 3. 消费生产者 > 增加 Module Federation 插件消费远程模块 diff --git a/packages/create-module-federation/CHANGELOG.md b/packages/create-module-federation/CHANGELOG.md new file mode 100644 index 00000000000..992a0c9c99a --- /dev/null +++ b/packages/create-module-federation/CHANGELOG.md @@ -0,0 +1 @@ +# create-module-federation diff --git a/packages/create-module-federation/LICENSE b/packages/create-module-federation/LICENSE new file mode 100644 index 00000000000..f428f6109cd --- /dev/null +++ b/packages/create-module-federation/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024-present hanric(2heal1) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/create-module-federation/README.md b/packages/create-module-federation/README.md new file mode 100644 index 00000000000..9e8eab0b2e8 --- /dev/null +++ b/packages/create-module-federation/README.md @@ -0,0 +1,40 @@ +

+ Module Federation 2.0 +

+ +# create-module-federation + +Create a new Module Federation project. + +

+ + npm version + + license + downloads +

+ +## Usage + +Using `npm create`: + +```bash +npm create module-federation@latest +``` + +Using CLI flags: + +```bash +npx create-module-federation --dir my-project --template provider-modern --name provider + +# Using abbreviations +npx create-module-federation -d my-project -t provider-modern -n provider +``` + +## Documentation + +See [Documentation](https://module-federation.io/guide/start/quick-start). + +## License + +[MIT](https://github.com/module-federation/core/blob/main/LICENSE). diff --git a/packages/create-module-federation/jest.config.js b/packages/create-module-federation/jest.config.js new file mode 100644 index 00000000000..e99f20c50b7 --- /dev/null +++ b/packages/create-module-federation/jest.config.js @@ -0,0 +1,27 @@ +// For a detailed explanation regarding each configuration property, visit: +// https://jestjs.io/docs/en/configuration.html + +module.exports = { + clearMocks: true, + testEnvironment: 'jsdom', + coveragePathIgnorePatterns: ['__tests__', '/node_modules/'], + coverageProvider: 'v8', + coverageReporters: ['cobertura', 'clover', 'json', 'lcov', 'text'], + globals: { + __DEV__: true, + __TEST__: true, + __BROWSER__: false, + __VERSION__: '"unknown"', + }, + preset: 'ts-jest', + transformIgnorePatterns: [ + // Change MODULE_NAME_HERE to your module that isn't being compiled + '/node_modules/(?!((@byted/garfish-)|(byted-tea-sdk))).+\\.js$', + ], + transform: { + '^.+\\.(t|j)sx?$': ['@swc/jest'], + }, + rootDir: __dirname, + testMatch: ['__tests__/**/**.spec.[jt]s?(x)'], + testPathIgnorePatterns: ['/node_modules/'], +}; diff --git a/packages/create-module-federation/package.json b/packages/create-module-federation/package.json new file mode 100644 index 00000000000..bd629425fb1 --- /dev/null +++ b/packages/create-module-federation/package.json @@ -0,0 +1,47 @@ +{ + "name": "create-module-federation", + "description": "Create a new Module Federation project", + "public": true, + "sideEffects": false, + "version": "0.10.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/module-federation/core/", + "directory": "packages/create-module-federation" + }, + "publishConfig": { + "access": "public" + }, + "type": "module", + "scripts": { + "build": "rslib build" + }, + "main": "./dist/index.js", + "engines": { + "node": ">=16.7.0" + }, + "bin": { + "create-module-federation": "./dist/index.js" + }, + "files": [ + "templates", + "dist" + ], + "dependencies": { + "@clack/prompts": "^0.8.2", + "execa": "5.1.1", + "fs-extra": "9.1.0", + "minimist": "^1.2.8", + "rslog": "^1.2.3", + "glob": "7.2.0", + "handlebars": "4.7.7" + }, + "devDependencies": { + "@types/glob": "7.2.0", + "@types/minimist": "^1.2.5", + "@types/fs-extra": "9.0.6", + "@rslib/core": "^0.3.1", + "rsbuild-plugin-publint": "^0.2.1" + } +} diff --git a/packages/create-module-federation/project.json b/packages/create-module-federation/project.json new file mode 100644 index 00000000000..97a9be02ad8 --- /dev/null +++ b/packages/create-module-federation/project.json @@ -0,0 +1,64 @@ +{ + "name": "create-module-federation", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "packages/create-module-federation/src", + "projectType": "library", + "tags": ["type:pkg"], + "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "parallel": false, + "dependsOn": [ + { + "target": "build", + "dependencies": true + } + ], + "commands": [ + "cd packages/create-module-federation; pnpm run build", + "cp packages/create-module-federation/LICENSE packages/create-module-federation/dist" + ] + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"], + "options": { + "lintFilePatterns": [ + "packages/create-module-federation/**/*.ts", + "packages/create-module-federation/package.json" + ] + } + }, + "test": { + "executor": "nx:run-commands", + "options": { + "parallel": false, + "dependsOn": [ + { + "target": "build", + "dependencies": true + } + ], + "commands": ["echo 'no test'"] + } + }, + "pre-release": { + "executor": "nx:run-commands", + "options": { + "parallel": false, + "commands": [ + { + "command": "nx run create-module-federation:test", + "forwardAllArgs": false + }, + { + "command": "nx run create-module-federation:build", + "forwardAllArgs": false + } + ] + } + } + } +} diff --git a/packages/create-module-federation/rslib.config.ts b/packages/create-module-federation/rslib.config.ts new file mode 100644 index 00000000000..1d1da13fdf5 --- /dev/null +++ b/packages/create-module-federation/rslib.config.ts @@ -0,0 +1,13 @@ +import { pluginPublint } from 'rsbuild-plugin-publint'; +import { defineConfig } from '@rslib/core'; +import pkg from './package.json'; + +export default defineConfig({ + lib: [{ format: 'esm' }], + plugins: [pluginPublint()], + source: { + define: { + __VERSION__: JSON.stringify(pkg.version), + }, + }, +}); diff --git a/packages/create-module-federation/src/create.ts b/packages/create-module-federation/src/create.ts new file mode 100644 index 00000000000..ec495119628 --- /dev/null +++ b/packages/create-module-federation/src/create.ts @@ -0,0 +1,441 @@ +/** + * forked from https://github.com/rspack-contrib/create-rstack + * license at https://github.com/rspack-contrib/create-rstack/blob/main/LICENSE + */ +import path from 'path'; +import fs from 'fs'; +import { spawnSync } from 'child_process'; +import { fileURLToPath } from 'url'; +import { + cancel, + isCancel, + multiselect, + note, + outro, + select, + text, +} from '@clack/prompts'; +import minimist from 'minimist'; +import { logger } from 'rslog'; +import { FsMaterial } from './materials/FsMaterial'; +import { HandlebarsAPI } from './handlebars'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const packageDir = path.resolve(__dirname, '..'); + +declare const __VERSION__: string; + +const enum ProjectType { + app = 'app', + lib = 'lib', + zephyr = 'zephyr', + // not used yet + other = 'other', +} + +const enum RoleType { + consumer = 'consumer', + provider = 'provider', +} + +type Argv = { + help?: boolean; + dir?: string; + template?: string; + override?: boolean; + name?: string; + role?: RoleType; +}; + +const OTHER_TYPE: { + [typeName: string]: { + label: string; + packageName: string; + hint?: string; + }; +} = { + zephyr: { + label: 'zephyr', + packageName: 'zephyr-apps@latest', + hint: 'create zephyr-apps@latest', + }, +}; + +type AppTemplateName = 'modern' | 'rsbuild'; +type LibTemplateName = 'rslib'; + +function upperFirst(str: string) { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +function logHelpMessage(name: string, templates: string[]) { + logger.log(` + Usage: create-${name} [options] + + Options: + + -h, --help display help for command + -d, --dir create project in specified directory + -t, --template specify the template to use + -n, --name specify the mf name + -r, --role specify the mf role type: provider or consumer + --override override files in target directory + + Templates: + ${templates.filter((t) => !t.startsWith('zephyr')).join(', ')} +`); +} + +function pkgFromUserAgent(userAgent: string | undefined) { + if (!userAgent) return undefined; + const pkgSpec = userAgent.split(' ')[0]; + const pkgSpecArr = pkgSpec.split('/'); + return { + name: pkgSpecArr[0], + version: pkgSpecArr[1], + }; +} + +function cancelAndExit() { + cancel('Operation cancelled.'); + process.exit(0); +} + +function checkCancel(value: unknown) { + if (isCancel(value)) { + cancelAndExit(); + } + return value as T; +} + +/** + * 1. Input: 'foo' + * Output: folder `/foo`, `package.json#name` -> `foo` + * + * 2. Input: 'foo/bar' + * Output: folder -> `/foo/bar` folder, `package.json#name` -> `bar` + * + * 3. Input: '@scope/foo' + * Output: folder -> `/@scope/bar` folder, `package.json#name` -> `@scope/foo` + * + * 4. Input: './foo/bar' + * Output: folder -> `/foo/bar` folder, `package.json#name` -> `bar` + * + * 5. Input: '/root/path/to/foo' + * Output: folder -> `'/root/path/to/foo'` folder, `package.json#name` -> `foo` + */ +function formatProjectName(input: string) { + const formatted = input.trim().replace(/\/+$/g, ''); + return { + packageName: input, + targetDir: formatted, + }; +} + +function isEmptyDir(path: string) { + const files = fs.readdirSync(path); + return files.length === 0 || (files.length === 1 && files[0] === '.git'); +} + +async function getAppTemplateName( + { + roleType, + framework, + }: { + roleType: RoleType; + framework: AppTemplateName; + }, + { template }: Argv, +) { + if (template) { + return `${template}-ts`; + } + + return `${roleType}-${framework}-ts`; +} + +async function getLibTemplateName({ template, role }: Argv) { + if (template) { + return `${template}-ts`; + } + + const templateName = checkCancel( + await select({ + message: 'Select template', + options: [{ value: 'rslib', label: 'Rslib' }], + }), + ); + + type ExcludesFalse = (x: T | false) => x is T; + const tools = checkCancel( + await multiselect({ + message: + 'Select development tools (Use to select, to continue)', + required: false, + options: [ + { + value: 'storybook', + label: 'Storybook', + }, + // TODO: support Rspress Module doc in the future + ].filter(Boolean as any as ExcludesFalse), + }), + ); + + // not support consumer yet, only support consume by runtime api + const roleType: RoleType = role || RoleType.provider; + + if (!tools || !Object.keys(tools).length) { + return `${roleType}-${templateName}-ts`; + } + + return `${roleType}-${templateName}-${tools[0]}-ts`; +} + +function getTemplateName( + { + projectType, + roleType, + framework, + }: { + projectType: ProjectType; + roleType: RoleType; + framework: AppTemplateName; + }, + args: Argv, +) { + if (projectType === 'app') { + return getAppTemplateName( + { + roleType, + framework, + }, + args, + ); + } + return getLibTemplateName(args); +} + +function getTemplateDir(templateName: string) { + return `templates/${templateName}/`; +} + +async function getProjectType(template?: string) { + if (!template) { + return checkCancel( + await select({ + message: 'Please select the type of project you want to create:', + options: [ + { value: ProjectType.app, label: 'Application' }, + { value: ProjectType.lib, label: 'Lib' }, + { + value: ProjectType.zephyr, + label: 'Zephyr Powered (Learn more at https://zephyr-cloud.io)', + }, + ], + }), + ); + } + + if (template.includes('lib')) { + return ProjectType.lib; + } + + return ProjectType.app; +} +async function forgeTemplate({ + projectType, + argv, + templateParameters, + distFolder, +}: { + projectType: ProjectType; + argv: Argv; + templateParameters: Record; + distFolder: string; +}) { + let framework: AppTemplateName = 'modern'; + let roleType: RoleType = RoleType.provider; + + if (!argv?.template && projectType === 'app') { + framework = checkCancel( + await select({ + message: 'Select template', + options: [ + { value: 'modern', label: 'Modern.js Framework' }, + { value: 'rsbuild', label: 'Rsbuild' }, + ], + }), + ); + + roleType = + argv.role || + checkCancel( + await select({ + message: 'Please select the role of project you want to create:', + initialValue: 'provider', + options: [ + { value: 'consumer', label: 'Consumer' }, + { value: 'provider', label: 'Provider' }, + ], + }), + ); + } + + const templateName = await getTemplateName( + { + projectType, + framework, + roleType, + }, + argv, + ); + const material = new FsMaterial(packageDir); + + const renderTemplate = async (templateDir: string) => { + const templatePattern = `${templateDir}**/*`; + const resourceMap = await material.find(templatePattern, { + nodir: true, + dot: true, + }); + + const parameters = { + ...templateParameters, + }; + + await Promise.all( + Object.keys(resourceMap).map(async (resourceKey) => { + const target = resourceKey + .replace(templateDir, ``) + .replace('.handlebars', ``); + + const handlebarsAPI = new HandlebarsAPI(); + await handlebarsAPI.renderTemplate( + material.get(resourceKey), + target, + distFolder, + { + ...parameters, + }, + ); + }), + ); + }; + + const templateDir = getTemplateDir(templateName); + + let commonTemplateDir = ''; + if (projectType === ProjectType.lib) { + commonTemplateDir = 'templates/lib-common/'; + } else if (projectType === 'app') { + commonTemplateDir = `templates/${framework}-common/`; + } + + // Only render common templates if they exist and are applicable + if (commonTemplateDir) { + await renderTemplate(commonTemplateDir); + } + await renderTemplate(templateDir); +} + +export async function create({ + name, + templates, +}: { + name: string; + templates: string[]; +}) { + const argv = minimist(process.argv.slice(2), { + alias: { h: 'help', d: 'dir', t: 'template', n: 'name', r: 'role' }, + }); + + console.log(''); + logger.greet(`◆ Create ${upperFirst(name)} Project`); + + if (argv.help) { + logHelpMessage(name, templates); + return; + } + + const cwd = process.cwd(); + const pkgInfo = pkgFromUserAgent(process.env['npm_config_user_agent']); + const pkgManager = pkgInfo ? pkgInfo.name : 'npm'; + const mfVersion = __VERSION__; + + argv.template = templates.includes(argv.template || '') + ? argv.template + : undefined; + + const projectType = await getProjectType(argv.template); + + if (projectType === ProjectType.zephyr) { + const zephyrPackage = OTHER_TYPE['zephyr'].packageName; + const zephyrCommand = `${pkgManager} create ${zephyrPackage}`; + note(`Running: ${zephyrCommand}`, 'Launching Zephyr setup'); + + spawnSync(pkgManager, ['create', zephyrPackage], { + stdio: 'inherit', + shell: true, + }); + + outro('Done.'); + return; + } + + const mfName = + argv.name || + checkCancel( + await text({ + message: 'Please input Module Federation name:', + placeholder: 'mf_project_name', + defaultValue: 'mf_project_name', + validate(value) { + if (value.length === 0) { + return 'Name is required'; + } + }, + }), + ); + + const { targetDir } = formatProjectName(path.join(argv.dir || mfName)); + const distFolder = path.isAbsolute(targetDir) + ? targetDir + : path.join(cwd, targetDir); + + if (!argv.override && fs.existsSync(distFolder) && !isEmptyDir(distFolder)) { + const option = checkCancel( + await select({ + message: `"${targetDir}" is not empty, please choose:`, + options: [ + { value: 'yes', label: 'Continue and override files' }, + { value: 'no', label: 'Cancel operation' }, + ], + }), + ); + + if (option === 'no') { + cancelAndExit(); + } + } + + await forgeTemplate({ + projectType, + argv, + templateParameters: { + mfName, + mfVersion, + }, + distFolder, + }); + + const nextSteps = [ + `cd ${targetDir}`, + `${pkgManager} install`, + `${pkgManager} run ${projectType === ProjectType.lib ? 'mf-dev' : 'dev'}`, + ]; + + note(nextSteps.join('\n'), 'Next steps'); + + outro('Done.'); +} diff --git a/packages/create-module-federation/src/handlebars/index.ts b/packages/create-module-federation/src/handlebars/index.ts new file mode 100644 index 00000000000..09e55cb41f0 --- /dev/null +++ b/packages/create-module-federation/src/handlebars/index.ts @@ -0,0 +1,68 @@ +import { FS_RESOURCE } from '../materials'; +import { renderString, outputFs } from './utils'; + +import type { FsMaterial, FsResource } from '../materials'; + +type TargetFunction = (globMatch: string) => string; + +type RenderTemplateDirOptions = { + nodir?: boolean; + dot?: boolean; + ignore?: string | readonly string[]; + parameters?: Record; +}; + +export { renderString }; + +export class HandlebarsAPI { + async renderTemplate( + templateResource: FsResource, + target: string, + outputFilePath: string, + parameters: Record = {}, + ) { + if (templateResource._type !== FS_RESOURCE) { + throw new Error('resource not match'); + } + const resourceValue = await templateResource.value(); + if (typeof resourceValue.content !== 'string') { + throw new Error( + `resource.value is not string, resourceValue=${ + resourceValue as unknown as string + }`, + ); + } + await outputFs( + target, + templateResource.resourceKey.endsWith('.handlebars') + ? renderString(resourceValue.content, parameters) + : resourceValue.content, + outputFilePath, + { encoding: 'utf-8' }, + ); + } + + async renderTemplateDir( + material: FsMaterial, + findGlob: string, + target: TargetFunction, + outputFilePath: string, + options?: RenderTemplateDirOptions, + ) { + const resourceMap = await material.find(findGlob, { + nodir: true, + ...options, + }); + await Promise.all( + // resourceKey is relate path. example: in `garr-master/package.json`, package.json is resourceKey + Object.keys(resourceMap).map(async (resourceKey) => { + await this.renderTemplate( + material.get(resourceKey), + target(resourceKey), + outputFilePath, + options?.parameters, + ); + }), + ); + } +} diff --git a/packages/create-module-federation/src/handlebars/utils.ts b/packages/create-module-federation/src/handlebars/utils.ts new file mode 100644 index 00000000000..73c93ff827f --- /dev/null +++ b/packages/create-module-federation/src/handlebars/utils.ts @@ -0,0 +1,21 @@ +import fs from 'fs-extra'; +import path from 'path'; +import handlebars from 'handlebars'; + +export function renderString( + template: string, + fullData: Record, +): string { + return handlebars.compile(template)(fullData) || ''; +} + +export async function outputFs( + file: string | number, + content: any, + outputPath: string, + options?: fs.WriteFileOptions | string, +) { + const filePath = path.resolve(outputPath, file.toString()); + await fs.mkdirp(path.dirname(filePath)); + await fs.writeFile(filePath, content, options); +} diff --git a/packages/create-module-federation/src/index.ts b/packages/create-module-federation/src/index.ts new file mode 100644 index 00000000000..e5915cef078 --- /dev/null +++ b/packages/create-module-federation/src/index.ts @@ -0,0 +1,21 @@ +#!/usr/bin/env node +import { create } from './create'; + +interface Template { + template: string; + tools?: Record; +} + +export const TEMPLATES = [ + 'provider-modern', + 'provider-rsbuild', + 'provider-rslib', + 'provider-rslib-storybook', + 'consumer-modern', + 'consumer-rsbuild', +]; + +create({ + name: 'Module Federation', + templates: TEMPLATES, +}); diff --git a/packages/create-module-federation/src/materials/FsMaterial.ts b/packages/create-module-federation/src/materials/FsMaterial.ts new file mode 100644 index 00000000000..a91eabc506c --- /dev/null +++ b/packages/create-module-federation/src/materials/FsMaterial.ts @@ -0,0 +1,48 @@ +import path from 'path'; +import glob from 'glob'; +import { FsResource } from './FsResource'; + +const promisifyGlob = ( + pattern: string, + options: glob.IOptions, +): Promise => + new Promise((resolve, reject) => { + glob(pattern, options, (err, files) => + err === null ? resolve(files) : reject(err), + ); + }); + +export class FsMaterial { + basePath: string; + + constructor(basePath: string) { + this.basePath = basePath; + } + + get(resourceKey: string) { + return new FsResource( + path.resolve(this.basePath, resourceKey), + resourceKey, + ); + } + + async find( + globStr: string, + options?: { + nodir?: boolean; + dot?: boolean; + ignore?: string | readonly string[]; + }, + ): Promise> { + const matches = await promisifyGlob(globStr, { + cwd: path.resolve(this.basePath), + nodir: options?.nodir, + dot: options?.dot, + ignore: options?.ignore, + }); + return matches.reduce>((pre, cur) => { + pre[cur] = new FsResource(path.resolve(this.basePath, cur), cur); + return pre; + }, {}); + } +} diff --git a/packages/create-module-federation/src/materials/FsResource.ts b/packages/create-module-federation/src/materials/FsResource.ts new file mode 100644 index 00000000000..1dbbacd7d92 --- /dev/null +++ b/packages/create-module-federation/src/materials/FsResource.ts @@ -0,0 +1,29 @@ +import type { Buffer } from 'buffer'; +import path from 'path'; +import fs from 'fs-extra'; +import { IMAGE_EXT_LIST } from './constants'; + +export const FS_RESOURCE = '_mf_fs_resource'; + +export class FsResource { + _type: string = FS_RESOURCE; + + filePath: string; + + resourceKey: string; + + constructor(filePath: string, resourceKey: string) { + this.filePath = filePath; + this.resourceKey = resourceKey; + } + + async value(): Promise<{ content: string | Buffer }> { + const resourceFileExt = path.extname(this.filePath); + if (IMAGE_EXT_LIST.includes(resourceFileExt)) { + const buffer = await fs.readFile(path.resolve(this.filePath)); + return { content: buffer }; + } + const text = await fs.readFile(path.resolve(this.filePath), 'utf8'); + return { content: text }; + } +} diff --git a/packages/create-module-federation/src/materials/constants.ts b/packages/create-module-federation/src/materials/constants.ts new file mode 100644 index 00000000000..32e6a4449ec --- /dev/null +++ b/packages/create-module-federation/src/materials/constants.ts @@ -0,0 +1,12 @@ +export const IMAGE_EXT_LIST = [ + '.jpg', + '.jpeg', + '.png', + '.gif', + '.bmp', + '.ico', + '.icon', + '.mpt', + '.psd', + '.wmf', +]; diff --git a/packages/create-module-federation/src/materials/index.ts b/packages/create-module-federation/src/materials/index.ts new file mode 100644 index 00000000000..4ec1a014781 --- /dev/null +++ b/packages/create-module-federation/src/materials/index.ts @@ -0,0 +1,2 @@ +export { FsMaterial } from './FsMaterial'; +export { FsResource, FS_RESOURCE } from './FsResource'; diff --git a/packages/create-module-federation/templates/consumer-modern-ts/modern.config.ts b/packages/create-module-federation/templates/consumer-modern-ts/modern.config.ts new file mode 100644 index 00000000000..acaec611f69 --- /dev/null +++ b/packages/create-module-federation/templates/consumer-modern-ts/modern.config.ts @@ -0,0 +1,15 @@ +import { appTools, defineConfig } from '@modern-js/app-tools'; +import { moduleFederationPlugin } from '@module-federation/modern-js'; + +// https://modernjs.dev/en/configure/app/usage +export default defineConfig({ + runtime: { + router: true, + }, + plugins: [ + appTools({ + bundler: 'rspack', // Set to 'webpack' to enable webpack + }), + moduleFederationPlugin(), + ], +}); diff --git a/packages/create-module-federation/templates/consumer-modern-ts/module-federation.config.ts.handlebars b/packages/create-module-federation/templates/consumer-modern-ts/module-federation.config.ts.handlebars new file mode 100644 index 00000000000..28dbf654e4d --- /dev/null +++ b/packages/create-module-federation/templates/consumer-modern-ts/module-federation.config.ts.handlebars @@ -0,0 +1,12 @@ +import { createModuleFederationConfig } from '@module-federation/modern-js'; + +export default createModuleFederationConfig({ + name: '{{mfName}}', + remotes: { + 'provider': 'rslib_provider@https://unpkg.com/module-federation-rslib-provider@latest/dist/mf/mf-manifest.json', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); diff --git a/packages/create-module-federation/templates/consumer-modern-ts/src/routes/page.tsx b/packages/create-module-federation/templates/consumer-modern-ts/src/routes/page.tsx new file mode 100644 index 00000000000..8ba40d36e3a --- /dev/null +++ b/packages/create-module-federation/templates/consumer-modern-ts/src/routes/page.tsx @@ -0,0 +1,21 @@ +import { Helmet } from '@modern-js/runtime/head'; +import './index.css'; +import Provider from 'provider'; + +const Index = () => ( +
+ + + + +
+ +
+
+); + +export default Index; diff --git a/packages/create-module-federation/templates/consumer-rsbuild-ts/module-federation.config.ts.handlebars b/packages/create-module-federation/templates/consumer-rsbuild-ts/module-federation.config.ts.handlebars new file mode 100644 index 00000000000..51de1d0375f --- /dev/null +++ b/packages/create-module-federation/templates/consumer-rsbuild-ts/module-federation.config.ts.handlebars @@ -0,0 +1,12 @@ +import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'; + +export default createModuleFederationConfig({ + name: '{{mfName}}', + remotes: { + 'provider': 'rslib_provider@https://unpkg.com/module-federation-rslib-provider@latest/dist/mf/mf-manifest.json', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); diff --git a/packages/create-module-federation/templates/consumer-rsbuild-ts/rsbuild.config.ts b/packages/create-module-federation/templates/consumer-rsbuild-ts/rsbuild.config.ts new file mode 100644 index 00000000000..b593e818429 --- /dev/null +++ b/packages/create-module-federation/templates/consumer-rsbuild-ts/rsbuild.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from '@rsbuild/core'; +import { pluginReact } from '@rsbuild/plugin-react'; +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; +import moduleFederationConfig from './module-federation.config'; + +export default defineConfig({ + plugins: [pluginReact(), pluginModuleFederation(moduleFederationConfig)], +}); diff --git a/packages/create-module-federation/templates/consumer-rsbuild-ts/src/App.tsx b/packages/create-module-federation/templates/consumer-rsbuild-ts/src/App.tsx new file mode 100644 index 00000000000..9b16a426363 --- /dev/null +++ b/packages/create-module-federation/templates/consumer-rsbuild-ts/src/App.tsx @@ -0,0 +1,12 @@ +import './App.css'; +import Provider from 'provider'; + +const App = () => { + return ( +
+ +
+ ); +}; + +export default App; diff --git a/packages/create-module-federation/templates/lib-common/module-federation.config.ts.handlebars b/packages/create-module-federation/templates/lib-common/module-federation.config.ts.handlebars new file mode 100644 index 00000000000..acf4fd99828 --- /dev/null +++ b/packages/create-module-federation/templates/lib-common/module-federation.config.ts.handlebars @@ -0,0 +1,17 @@ +import {createModuleFederationConfig} from '@module-federation/rsbuild-plugin'; +import pkg from './package.json'; + +export default createModuleFederationConfig({ + name: pkg.name, + exposes: { + '.': './src/index.tsx', + }, + shared: { + react: { + singleton: true, + }, + 'react-dom': { + singleton: true, + }, + }, +}) diff --git a/packages/create-module-federation/templates/lib-common/rslib.config.ts b/packages/create-module-federation/templates/lib-common/rslib.config.ts new file mode 100644 index 00000000000..6a527ba269a --- /dev/null +++ b/packages/create-module-federation/templates/lib-common/rslib.config.ts @@ -0,0 +1,52 @@ +import { pluginReact } from '@rsbuild/plugin-react'; +import { defineConfig } from '@rslib/core'; +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; +import moduleFederationConfig from './module-federation.config'; +import pkg from './package.json'; + +const shared = { + dts: { + bundle: false, + }, +}; + +export default defineConfig({ + lib: [ + { + ...shared, + format: 'esm', + output: { + distPath: { + root: './dist/esm', + }, + }, + }, + { + ...shared, + format: 'cjs', + output: { + distPath: { + root: './dist/cjs', + }, + }, + }, + { + ...shared, + format: 'mf', + output: { + // set unpkg cdn as assetPrefix if you want to publish + assetPrefix: + process.env.NODE_ENV === 'production' + ? `https://unpkg.com/${pkg.name}@latest/dist/mf/` + : undefined, + distPath: { + root: './dist/mf', + }, + }, + }, + ], + server: { + port: 3001, + }, + plugins: [pluginReact(), pluginModuleFederation(moduleFederationConfig)], +}); diff --git a/packages/create-module-federation/templates/lib-common/src/index.css b/packages/create-module-federation/templates/lib-common/src/index.css new file mode 100644 index 00000000000..a5408717129 --- /dev/null +++ b/packages/create-module-federation/templates/lib-common/src/index.css @@ -0,0 +1,53 @@ +.container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 60vh; + padding: 10vh; + background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc); + background-size: 400% 400%; + animation: gradientFlow 6s ease infinite; +} + +.icon-container { + width: 180px; + margin-bottom: 20px; + position: relative; + transition: all 0.3s ease; +} + +.logo-image { + width: 100%; + transition: opacity 0.3s ease; +} + +.title { + font-size: 3rem; + color: #fff; + margin-bottom: 20px; + animation: fadeInUp 1s ease-out; +} + +@keyframes gradientFlow { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/packages/create-module-federation/templates/lib-common/src/index.tsx b/packages/create-module-federation/templates/lib-common/src/index.tsx new file mode 100644 index 00000000000..88e092d7d7e --- /dev/null +++ b/packages/create-module-federation/templates/lib-common/src/index.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import './index.css'; + +const Provider: React.FC = () => { + return ( +
+
+ logo +
+

Hello Module Federation 2.0

+
+ ); +}; + +export default Provider; diff --git a/packages/create-module-federation/templates/lib-common/tsconfig.json b/packages/create-module-federation/templates/lib-common/tsconfig.json new file mode 100644 index 00000000000..ae6b0a38bc7 --- /dev/null +++ b/packages/create-module-federation/templates/lib-common/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2021"], + "module": "ESNext", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "useDefineForClassFields": true + }, + "include": ["src"] +} diff --git a/packages/create-module-federation/templates/modern-common/.browserslistrc b/packages/create-module-federation/templates/modern-common/.browserslistrc new file mode 100644 index 00000000000..f5ceef6bb8e --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.browserslistrc @@ -0,0 +1,5 @@ +chrome >= 51 +edge >= 15 +firefox >= 54 +safari >= 10 +ios_saf >= 10 diff --git a/packages/create-module-federation/templates/modern-common/.gitignore b/packages/create-module-federation/templates/modern-common/.gitignore new file mode 100644 index 00000000000..cd3fdf89df0 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.gitignore @@ -0,0 +1,30 @@ +.DS_Store + +.pnp +.pnp.js +.env.local +.env.*.local +.history +*.log* + +node_modules/ +.yarn-integrity +.pnpm-store/ +*.tsbuildinfo +.changeset/pre.json + +dist/ +coverage/ +release/ +output/ +output_resource/ +log/ + +.vscode/**/* +!.vscode/settings.json +!.vscode/extensions.json +.idea/ + +**/*/typings/auto-generated + +modern.config.local.* diff --git a/packages/create-module-federation/templates/modern-common/.npmrc b/packages/create-module-federation/templates/modern-common/.npmrc new file mode 100644 index 00000000000..319e41e69dc --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.npmrc @@ -0,0 +1 @@ +strict-peer-dependencies=false diff --git a/packages/create-module-federation/templates/modern-common/.nvmrc b/packages/create-module-federation/templates/modern-common/.nvmrc new file mode 100644 index 00000000000..a77793ecc52 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.nvmrc @@ -0,0 +1 @@ +lts/hydrogen diff --git a/packages/create-module-federation/templates/modern-common/.vscode/extensions.json b/packages/create-module-federation/templates/modern-common/.vscode/extensions.json new file mode 100644 index 00000000000..de9dced4ecd --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.vscode/extensions.json @@ -0,0 +1,14 @@ +{ + "recommendations": [ + "styled-components.vscode-styled-components", + "EditorConfig.editorconfig", + "streetsidesoftware.code-spell-checker", + "codezombiech.gitignore", + "aaron-bond.better-comments", + "jasonnutter.search-node-modules", + "jock.svg", + "mikestead.dotenv", + "vscode-icons-team.vscode-icons", + "biomejs.biome" + ] +} diff --git a/packages/create-module-federation/templates/modern-common/.vscode/settings.json b/packages/create-module-federation/templates/modern-common/.vscode/settings.json new file mode 100644 index 00000000000..7326d94d7a8 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/.vscode/settings.json @@ -0,0 +1,88 @@ +{ + "files.associations": { + ".code-workspace": "jsonc", + ".stylelintrc": "jsonc", + "stylelintrc": "jsonc", + "README": "markdown" + }, + "search.useIgnoreFiles": true, + "search.exclude": { + "**/dist": true, + "**/*.log": true, + "**/*.pid": true, + "**/.git": true, + "**/node_modules": true + }, + // + "editor.rulers": [80, 120], + "files.eol": "\n", + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + // + "cSpell.diagnosticLevel": "Hint", + "javascript.validate.enable": false, + "typescript.validate.enable": true, + "css.validate": false, + "scss.validate": false, + "less.validate": false, + "[css]": { + "editor.formatOnType": true, + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "[scss]": { + "editor.formatOnType": true, + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "[less]": { + "editor.formatOnType": true, + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit" + }, + "editor.defaultFormatter": "biomejs.biome", + "editor.formatOnSave": true, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports": "never", + "source.organizeImports.biome": "explicit" + } + }, + "[typescriptreact]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports": "never", + "source.organizeImports.biome": "explicit" + } + }, + "[json]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[jsonc]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[javascriptreact]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports": "never", + "source.organizeImports.biome": "explicit" + } + }, + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "quickfix.biome": "explicit", + "source.organizeImports": "never", + "source.organizeImports.biome": "explicit" + } + }, + "emmet.triggerExpansionOnTab": true, + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/packages/create-module-federation/templates/modern-common/README.md b/packages/create-module-federation/templates/modern-common/README.md new file mode 100644 index 00000000000..38d1d2a1c55 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/README.md @@ -0,0 +1,37 @@ +# Modern.js App + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get Started + +Start the dev server: + +```bash +pnpm dev +``` + +Enable optional features or add a new entry: + +```bash +pnpm new +``` + +Build the app for production: + +```bash +pnpm build +``` + +Preview the production build locally: + +```bash +pnpm serve +``` + +For more information, see the [Modern.js documentation](https://modernjs.dev/en). diff --git a/packages/create-module-federation/templates/modern-common/biome.json b/packages/create-module-federation/templates/modern-common/biome.json new file mode 100644 index 00000000000..58a177b1d2e --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/biome.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "vcs": { + "enabled": true, + "defaultBranch": "main", + "clientKind": "git", + "useIgnoreFile": true + }, + "formatter": { + "enabled": true, + "indentStyle": "space" + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "arrowParentheses": "asNeeded", + "jsxQuoteStyle": "double", + "lineWidth": 80 + } + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "organizeImports": { + "enabled": true + }, + "files": { + "ignoreUnknown": true, + "ignore": [".vscode/**/*", "node_modules/**/*", "dist/**/*"] + } +} diff --git a/packages/create-module-federation/templates/modern-common/package.json.handlebars b/packages/create-module-federation/templates/modern-common/package.json.handlebars new file mode 100644 index 00000000000..f8812686a83 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/package.json.handlebars @@ -0,0 +1,45 @@ +{ + "name": "{{ mfName }}", + "version": "0.1.0", + "scripts": { + "reset": "npx rimraf node_modules ./**/node_modules", + "dev": "modern dev", + "build": "modern build", + "start": "modern start", + "serve": "modern serve", + "new": "modern new", + "lint": "biome check", + "prepare": "simple-git-hooks", + "upgrade": "modern upgrade" + }, + "engines": { + "node": ">=16.18.1" + }, + "lint-staged": { + "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [ + "biome check --files-ignore-unknown=true" + ] + }, + "simple-git-hooks": { + "pre-commit": "npx lint-staged" + }, + "dependencies": { + "@modern-js/runtime": "^2.65.1", + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@modern-js/app-tools": "^2.65.1", + "@modern-js/tsconfig": "^2.65.1", + "@biomejs/biome": "1.8.3", + "typescript": "~5.0.4", + "@types/jest": "~29.2.4", + "@types/node": "~18.11.9", + "@types/react": "^18.3.11", + "@types/react-dom": "~18.3.1", + "lint-staged": "~13.1.0", + "simple-git-hooks": "^2.11.1", + "rimraf": "^6.0.1", + "@module-federation/modern-js":"^{{mfVersion}}" + } +} diff --git a/packages/create-module-federation/templates/modern-common/src/modern-app-env.d.ts b/packages/create-module-federation/templates/modern-common/src/modern-app-env.d.ts new file mode 100644 index 00000000000..3f453508cee --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/src/modern-app-env.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// diff --git a/packages/create-module-federation/templates/modern-common/src/modern.runtime.ts b/packages/create-module-federation/templates/modern-common/src/modern.runtime.ts new file mode 100644 index 00000000000..7437c8314e5 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/src/modern.runtime.ts @@ -0,0 +1,3 @@ +import { defineRuntimeConfig } from '@modern-js/runtime'; + +export default defineRuntimeConfig({}); diff --git a/packages/create-module-federation/templates/modern-common/src/routes/index.css b/packages/create-module-federation/templates/modern-common/src/routes/index.css new file mode 100644 index 00000000000..d8a5be9ffdd --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/src/routes/index.css @@ -0,0 +1,41 @@ +html, +body { + padding: 0; + margin: 0; + font-family: + PingFang SC, + Hiragino Sans GB, + Microsoft YaHei, + Arial, + sans-serif; + background: linear-gradient(to bottom, transparent, #fff) #eceeef; +} + +p { + margin: 0; +} + +* { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + box-sizing: border-box; +} + +.container-box { + min-height: 100vh; + max-width: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 50px; +} + +.landing-page { + padding: 20px; + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} diff --git a/packages/create-module-federation/templates/modern-common/src/routes/layout.tsx b/packages/create-module-federation/templates/modern-common/src/routes/layout.tsx new file mode 100644 index 00000000000..6433ea79e92 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/src/routes/layout.tsx @@ -0,0 +1,9 @@ +import { Outlet } from '@modern-js/runtime/router'; + +export default function Layout() { + return ( +
+ +
+ ); +} diff --git a/packages/create-module-federation/templates/modern-common/tsconfig.json b/packages/create-module-federation/templates/modern-common/tsconfig.json new file mode 100644 index 00000000000..26ef0ff0304 --- /dev/null +++ b/packages/create-module-federation/templates/modern-common/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "@modern-js/tsconfig/base", + "compilerOptions": { + "declaration": false, + "jsx": "preserve", + "baseUrl": "./", + "paths": { + "@/*": ["./src/*"], + "@shared/*": ["./shared/*"], + "*": ["./@mf-types/*"] + } + }, + "include": ["src", "shared", "config", "modern.config.ts"], + "exclude": ["**/node_modules"] +} diff --git a/packages/create-module-federation/templates/provider-modern-ts/modern.config.ts b/packages/create-module-federation/templates/provider-modern-ts/modern.config.ts new file mode 100644 index 00000000000..616290711f3 --- /dev/null +++ b/packages/create-module-federation/templates/provider-modern-ts/modern.config.ts @@ -0,0 +1,18 @@ +import { appTools, defineConfig } from '@modern-js/app-tools'; +import { moduleFederationPlugin } from '@module-federation/modern-js'; + +// https://modernjs.dev/en/configure/app/usage +export default defineConfig({ + runtime: { + router: true, + }, + plugins: [ + appTools({ + bundler: 'rspack', // Set to 'webpack' to enable webpack + }), + moduleFederationPlugin(), + ], + server: { + port: 3001, + }, +}); diff --git a/packages/create-module-federation/templates/provider-modern-ts/module-federation.config.ts.handlebars b/packages/create-module-federation/templates/provider-modern-ts/module-federation.config.ts.handlebars new file mode 100644 index 00000000000..fbe462949ce --- /dev/null +++ b/packages/create-module-federation/templates/provider-modern-ts/module-federation.config.ts.handlebars @@ -0,0 +1,12 @@ +import { createModuleFederationConfig } from '@module-federation/modern-js'; + +export default createModuleFederationConfig({ + name: '{{mfName}}', + exposes: { + '.': './src/components/ProviderComponent.tsx', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); diff --git a/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.css b/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.css new file mode 100644 index 00000000000..1deda4d67ee --- /dev/null +++ b/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.css @@ -0,0 +1,52 @@ +.container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; + background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc); + background-size: 400% 400%; + animation: gradientFlow 6s ease infinite; +} + +.icon-container { + width: 180px; + margin-bottom: 20px; + position: relative; + transition: all 0.3s ease; +} + +.logo-image { + width: 100%; + transition: opacity 0.3s ease; +} + +.title { + font-size: 3rem; + color: #fff; + margin-bottom: 20px; + animation: fadeInUp 1s ease-out; +} + +@keyframes gradientFlow { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.tsx b/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.tsx new file mode 100644 index 00000000000..83d8aa0512b --- /dev/null +++ b/packages/create-module-federation/templates/provider-modern-ts/src/components/ProviderComponent.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import './ProviderComponent.css'; + +const Provider: React.FC = () => { + return ( +
+
+ logo +
+

Hello Module Federation 2.0

+
+ ); +}; + +export default Provider; diff --git a/packages/create-module-federation/templates/provider-modern-ts/src/routes/page.tsx b/packages/create-module-federation/templates/provider-modern-ts/src/routes/page.tsx new file mode 100644 index 00000000000..f00c0f71bed --- /dev/null +++ b/packages/create-module-federation/templates/provider-modern-ts/src/routes/page.tsx @@ -0,0 +1,21 @@ +import { Helmet } from '@modern-js/runtime/head'; +import './index.css'; +import Provider from '../components/ProviderComponent'; + +const Index = () => ( +
+ + + + +
+ +
+
+); + +export default Index; diff --git a/packages/create-module-federation/templates/provider-rsbuild-ts/module-federation.config.ts.handlebars b/packages/create-module-federation/templates/provider-rsbuild-ts/module-federation.config.ts.handlebars new file mode 100644 index 00000000000..ded744910c7 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rsbuild-ts/module-federation.config.ts.handlebars @@ -0,0 +1,12 @@ +import { createModuleFederationConfig } from '@module-federation/rsbuild-plugin'; + +export default createModuleFederationConfig({ + name: '{{mfName}}', + exposes: { + '.': './src/components/ProviderComponent.tsx', + }, + shared: { + react: { singleton: true }, + 'react-dom': { singleton: true }, + }, +}); diff --git a/packages/create-module-federation/templates/provider-rsbuild-ts/rsbuild.config.ts b/packages/create-module-federation/templates/provider-rsbuild-ts/rsbuild.config.ts new file mode 100644 index 00000000000..aec11f21d02 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rsbuild-ts/rsbuild.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from '@rsbuild/core'; +import { pluginReact } from '@rsbuild/plugin-react'; +import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'; +import moduleFederationConfig from './module-federation.config'; + +export default defineConfig({ + plugins: [pluginReact(), pluginModuleFederation(moduleFederationConfig)], + server: { + port: 3001, + }, +}); diff --git a/packages/create-module-federation/templates/provider-rsbuild-ts/src/App.tsx b/packages/create-module-federation/templates/provider-rsbuild-ts/src/App.tsx new file mode 100644 index 00000000000..97b3b3a73bb --- /dev/null +++ b/packages/create-module-federation/templates/provider-rsbuild-ts/src/App.tsx @@ -0,0 +1,12 @@ +import './App.css'; +import Provider from './components/ProviderComponent'; + +const App = () => { + return ( +
+ +
+ ); +}; + +export default App; diff --git a/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.css b/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.css new file mode 100644 index 00000000000..1deda4d67ee --- /dev/null +++ b/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.css @@ -0,0 +1,52 @@ +.container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100vh; + background: linear-gradient(45deg, #3a65f2, #6a5acd, #8a2be2, #023cfc); + background-size: 400% 400%; + animation: gradientFlow 6s ease infinite; +} + +.icon-container { + width: 180px; + margin-bottom: 20px; + position: relative; + transition: all 0.3s ease; +} + +.logo-image { + width: 100%; + transition: opacity 0.3s ease; +} + +.title { + font-size: 3rem; + color: #fff; + margin-bottom: 20px; + animation: fadeInUp 1s ease-out; +} + +@keyframes gradientFlow { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.tsx b/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.tsx new file mode 100644 index 00000000000..83d8aa0512b --- /dev/null +++ b/packages/create-module-federation/templates/provider-rsbuild-ts/src/components/ProviderComponent.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import './ProviderComponent.css'; + +const Provider: React.FC = () => { + return ( +
+
+ logo +
+

Hello Module Federation 2.0

+
+ ); +}; + +export default Provider; diff --git a/packages/create-module-federation/templates/provider-rslib-storybook-ts/.gitignore b/packages/create-module-federation/templates/provider-rslib-storybook-ts/.gitignore new file mode 100644 index 00000000000..c5f1042988d --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-storybook-ts/.gitignore @@ -0,0 +1,16 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea + +# Storybook dist +storybook-static/ diff --git a/packages/create-module-federation/templates/provider-rslib-storybook-ts/.storybook/main.ts.handlebars b/packages/create-module-federation/templates/provider-rslib-storybook-ts/.storybook/main.ts.handlebars new file mode 100644 index 00000000000..9ecc0104c66 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-storybook-ts/.storybook/main.ts.handlebars @@ -0,0 +1,41 @@ +import { dirname, join } from 'node:path'; +import type { StorybookConfig } from 'storybook-react-rsbuild'; + +/** + * This function is used to resolve the absolute path of a package. + * It is needed in projects that use Yarn PnP or are set up within a monorepo. + */ +function getAbsolutePath(value: string): any { + return dirname(require.resolve(join(value, 'package.json'))); +} + +const config: StorybookConfig = { + stories: [ + '../stories/**/*.mdx', + '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)', + ], + framework: { + name: getAbsolutePath('storybook-react-rsbuild'), + options: {}, + }, + addons: [ + { + name: getAbsolutePath('storybook-addon-rslib'), + options: { + rslib: { + include: ['**/stories/**'], + }, + }, + }, + { + name: '@module-federation/storybook-addon/preset', + options: { + remotes: { + provider: '{{mfName}}@http://localhost:3001/mf-manifest.json', + }, + }, + }, + ], +}; + +export default config; diff --git a/packages/create-module-federation/templates/provider-rslib-storybook-ts/README.md b/packages/create-module-federation/templates/provider-rslib-storybook-ts/README.md new file mode 100644 index 00000000000..f8d0efb3119 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-storybook-ts/README.md @@ -0,0 +1,27 @@ +# Rslib MF Project + +This example demonstrates how to use Rslib to build a simple Module Federation React component. + +### Command + +Build package + +``` +pnpm build +``` + +Dev package + +1. + +``` +pnpm mf-dev +``` + +2. + +``` +pnpm storybook +``` + +visit http://localhost:6006 diff --git a/packages/create-module-federation/templates/provider-rslib-storybook-ts/package.json.handlebars b/packages/create-module-federation/templates/provider-rslib-storybook-ts/package.json.handlebars new file mode 100644 index 00000000000..bb66ed78102 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-storybook-ts/package.json.handlebars @@ -0,0 +1,50 @@ +{ + "name": "{{ mfName }}", + "version": "0.0.0", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rslib build", + "build:storybook": "storybook build", + "dev": "rslib build --watch", + "storybook": "storybook dev -p 6006", + "mf-dev": "rslib mf-dev" + }, + "devDependencies": { + "@rsbuild/core": "^1.2.15", + "@rsbuild/plugin-react": "^1.1.1", + "@rslib/core": ">=0.5.3", + "@storybook/addon-essentials": "^8.4.7", + "@storybook/addon-interactions": "^8.4.7", + "@storybook/addon-links": "^8.4.7", + "@storybook/addon-onboarding": "^8.4.7", + "@storybook/blocks": "^8.4.7", + "@storybook/react": "^8.4.7", + "@storybook/test": "^8.4.7", + "@types/react": "^18.3.11", + "@types/react-dom": "~18.3.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "storybook": "^8.4.7", + "storybook-addon-rslib": "^0.1.7", + "storybook-react-rsbuild": "^0.1.7", + "typescript": "^5.7.3", + "@types/node": "^22.13.9", + "@module-federation/rsbuild-plugin":"^{{mfVersion}}", + "@module-federation/storybook-addon":"^4.0.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } +} diff --git a/packages/create-module-federation/templates/provider-rslib-storybook-ts/stories/Index.stories.tsx b/packages/create-module-federation/templates/provider-rslib-storybook-ts/stories/Index.stories.tsx new file mode 100644 index 00000000000..5455f51991a --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-storybook-ts/stories/Index.stories.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import Provider from 'provider'; + +const Component = () => ; + +export default { + title: 'Provider Component', + component: Component, +}; + +export const Basic = {}; diff --git a/packages/create-module-federation/templates/provider-rslib-ts/.gitignore b/packages/create-module-federation/templates/provider-rslib-ts/.gitignore new file mode 100644 index 00000000000..38d7344c8ca --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-ts/.gitignore @@ -0,0 +1,13 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/packages/create-module-federation/templates/provider-rslib-ts/README.md b/packages/create-module-federation/templates/provider-rslib-ts/README.md new file mode 100644 index 00000000000..cffe4ed5fd3 --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-ts/README.md @@ -0,0 +1,19 @@ +# Rslib MF Project + +This example demonstrates how to use Rslib to build a simple Module Federation React component. + +### Command + +Build package + +``` +pnpm build +``` + +Dev package + + +``` +pnpm mf-dev +``` + diff --git a/packages/create-module-federation/templates/provider-rslib-ts/package.json.handlebars b/packages/create-module-federation/templates/provider-rslib-ts/package.json.handlebars new file mode 100644 index 00000000000..4c7c52ee9ce --- /dev/null +++ b/packages/create-module-federation/templates/provider-rslib-ts/package.json.handlebars @@ -0,0 +1,35 @@ +{ + "name": "{{ mfName }}", + "version": "0.0.0", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + } + }, + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rslib build", + "dev": "rslib build --watch", + "mf-dev": "rslib mf-dev" + }, + "devDependencies": { + "@rsbuild/core": "^1.2.15", + "@rsbuild/plugin-react": "^1.1.1", + "@rslib/core": ">=0.5.3", + "@types/react": "^18.3.11", + "react": "^18.3.1", + "typescript": "^5.7.3", + "@types/node": "^22.13.9", + "@module-federation/rsbuild-plugin":"^{{mfVersion}}" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } +} diff --git a/packages/create-module-federation/templates/rsbuild-common/.gitignore b/packages/create-module-federation/templates/rsbuild-common/.gitignore new file mode 100644 index 00000000000..38d7344c8ca --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/.gitignore @@ -0,0 +1,13 @@ +# Local +.DS_Store +*.local +*.log* + +# Dist +node_modules +dist/ + +# IDE +.vscode/* +!.vscode/extensions.json +.idea diff --git a/packages/create-module-federation/templates/rsbuild-common/README.md b/packages/create-module-federation/templates/rsbuild-common/README.md new file mode 100644 index 00000000000..37b1dd3328b --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/README.md @@ -0,0 +1,29 @@ +# Rsbuild Project + +## Setup + +Install the dependencies: + +```bash +pnpm install +``` + +## Get Started + +Start the dev server: + +```bash +pnpm dev +``` + +Build the app for production: + +```bash +pnpm build +``` + +Preview the production build locally: + +```bash +pnpm preview +``` diff --git a/packages/create-module-federation/templates/rsbuild-common/package.json.handlebars b/packages/create-module-federation/templates/rsbuild-common/package.json.handlebars new file mode 100644 index 00000000000..f8a33e357bd --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/package.json.handlebars @@ -0,0 +1,22 @@ +{ + "name": "{{ mfName }}", + "private": true, + "version": "1.0.0", + "scripts": { + "dev": "rsbuild dev --open", + "build": "rsbuild build", + "preview": "rsbuild preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@rsbuild/core": "^1.2.15", + "@rsbuild/plugin-react": "^1.1.1", + "@types/react": "^18.3.11", + "@types/react-dom": "~18.3.1", + "typescript": "^5.7.2", + "@module-federation/rsbuild-plugin":"^{{mfVersion}}" + } +} diff --git a/packages/create-module-federation/templates/rsbuild-common/public/.gitkeep b/packages/create-module-federation/templates/rsbuild-common/public/.gitkeep new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/create-module-federation/templates/rsbuild-common/src/App.css b/packages/create-module-federation/templates/rsbuild-common/src/App.css new file mode 100644 index 00000000000..93464a0bbd1 --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/src/App.css @@ -0,0 +1,15 @@ +body { + margin: 0; + color: #fff; + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + background-image: linear-gradient(to bottom, #020917, #101725); +} + +.content { + display: flex; + min-height: 100vh; + line-height: 1.1; + text-align: center; + flex-direction: column; + justify-content: center; +} diff --git a/packages/create-module-federation/templates/rsbuild-common/src/bootstrap.tsx b/packages/create-module-federation/templates/rsbuild-common/src/bootstrap.tsx new file mode 100644 index 00000000000..55f29bff5c9 --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/src/bootstrap.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +const rootEl = document.getElementById('root'); +if (rootEl) { + const root = ReactDOM.createRoot(rootEl); + root.render( + + + , + ); +} diff --git a/packages/create-module-federation/templates/rsbuild-common/src/env.d.ts b/packages/create-module-federation/templates/rsbuild-common/src/env.d.ts new file mode 100644 index 00000000000..b0ac762b091 --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/create-module-federation/templates/rsbuild-common/src/index.tsx b/packages/create-module-federation/templates/rsbuild-common/src/index.tsx new file mode 100644 index 00000000000..b93c7a0268a --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/src/index.tsx @@ -0,0 +1 @@ +import('./bootstrap'); diff --git a/packages/create-module-federation/templates/rsbuild-common/tsconfig.json b/packages/create-module-federation/templates/rsbuild-common/tsconfig.json new file mode 100644 index 00000000000..9221337cd8f --- /dev/null +++ b/packages/create-module-federation/templates/rsbuild-common/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2020"], + "jsx": "react-jsx", + "target": "ES2020", + "noEmit": true, + "skipLibCheck": true, + "useDefineForClassFields": true, + + /* modules */ + "module": "ESNext", + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + + /* type checking */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "paths": { + "*": ["./@mf-types/*"] + } + }, + "include": ["src"] +} diff --git a/packages/create-module-federation/tsconfig.json b/packages/create-module-federation/tsconfig.json new file mode 100644 index 00000000000..56e67fa0f0c --- /dev/null +++ b/packages/create-module-federation/tsconfig.json @@ -0,0 +1,30 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": ["DOM", "ESNext"], + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "Bundler", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noFallthroughCasesInSwitch": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "declaration": true, + "noImplicitReturns": false + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/packages/create-module-federation/tsconfig.lib.json b/packages/create-module-federation/tsconfig.lib.json new file mode 100644 index 00000000000..33eca2c2cdf --- /dev/null +++ b/packages/create-module-federation/tsconfig.lib.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"] +} diff --git a/packages/create-module-federation/tsconfig.spec.json b/packages/create-module-federation/tsconfig.spec.json new file mode 100644 index 00000000000..9b2a121d114 --- /dev/null +++ b/packages/create-module-federation/tsconfig.spec.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": [ + "jest.config.ts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/packages/rsbuild-plugin/src/cli/index.ts b/packages/rsbuild-plugin/src/cli/index.ts index efa7a7f479f..cf7e562fbdf 100644 --- a/packages/rsbuild-plugin/src/cli/index.ts +++ b/packages/rsbuild-plugin/src/cli/index.ts @@ -12,7 +12,7 @@ import type { moduleFederationPlugin, sharePlugin, } from '@module-federation/sdk'; -import type { RsbuildPlugin, Rspack } from '@rsbuild/core'; +import type { RsbuildConfig, RsbuildPlugin, Rspack } from '@rsbuild/core'; import logger from '../logger'; type ModuleFederationOptions = @@ -32,6 +32,17 @@ export { const LIB_FORMAT = ['umd', 'modern-module']; +function isStoryBook(rsbuildConfig: RsbuildConfig) { + if ( + rsbuildConfig.plugins?.find( + (p) => + p && 'name' in p && p.name === 'module-federation-storybook-plugin', + ) + ) { + return true; + } +} + export function isMFFormat(bundlerConfig: Rspack.Configuration) { const library = bundlerConfig.output?.library; @@ -79,6 +90,8 @@ export const pluginModuleFederation = ( bundlerConfigs.forEach((bundlerConfig) => { if (!isMFFormat(bundlerConfig)) { return; + } else if (isStoryBook(api.getRsbuildConfig())) { + bundlerConfig.output!.uniqueName = `${moduleFederationOptions.name}-storybook-host`; } else { // mf autoDeleteSplitChunkCacheGroups( @@ -147,6 +160,9 @@ export const pluginModuleFederation = ( if ( !bundlerConfig.plugins!.find((p) => p && p.name === PLUGIN_NAME) ) { + if (!moduleFederationOptions.shareStrategy) { + moduleFederationOptions.shareStrategy = 'loaded-first'; + } bundlerConfig.plugins!.push( new ModuleFederationPlugin(moduleFederationOptions), ); @@ -157,6 +173,10 @@ export const pluginModuleFederation = ( // dev config only works on format: 'mf' api.modifyRsbuildConfig((config) => { + // skip storybook + if (isStoryBook(config)) { + return; + } // Change some default configs for remote modules if (moduleFederationOptions.exposes) { config.dev ||= {}; @@ -192,3 +212,5 @@ export const pluginModuleFederation = ( }); }, }); + +export { createModuleFederationConfig } from '@module-federation/enhanced'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e561db56e1e..24e449d62b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -223,7 +223,7 @@ importers: version: 8.1.11 '@storybook/react': specifier: 8.3.5 - version: 8.3.5(@storybook/test@8.3.5)(react-dom@18.3.1)(react@18.3.1)(storybook@8.3.5)(typescript@5.5.2) + version: 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.3.5)(typescript@5.5.2) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@5.5.2) @@ -1627,7 +1627,7 @@ importers: version: link:../../packages/storybook-addon '@rsbuild/plugin-react': specifier: ^1.0.6 - version: 1.0.6(@rsbuild/core@1.2.17) + version: 1.0.6(@rsbuild/core@1.2.8) '@rslib/core': specifier: 0.2.0 version: 0.2.0(typescript@5.5.2) @@ -1648,10 +1648,10 @@ importers: version: 8.4.2(prettier@3.3.3) storybook-addon-rslib: specifier: ^0.1.4 - version: 0.1.4(@rsbuild/core@1.2.17)(@rslib/core@0.2.0)(storybook-builder-rsbuild@1.0.0)(typescript@5.5.2) + version: 0.1.4(@rsbuild/core@1.2.8)(@rslib/core@0.2.0)(storybook-builder-rsbuild@0.1.10)(typescript@5.5.2) storybook-react-rsbuild: specifier: ^0.1.5 - version: 0.1.5(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(react-dom@18.3.1)(react@18.3.1)(rollup@4.24.0)(storybook@8.4.2)(typescript@5.5.2)(webpack@5.93.0) + version: 0.1.5(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.24.0)(storybook@8.4.2)(typescript@5.5.2)(webpack@5.93.0) apps/runtime-demo/3005-runtime-host: dependencies: @@ -2046,6 +2046,46 @@ importers: specifier: ^5.40.0 version: 5.93.0(@swc/core@1.7.26)(esbuild@0.24.0) + packages/create-module-federation: + dependencies: + '@clack/prompts': + specifier: ^0.8.2 + version: 0.8.2 + execa: + specifier: 5.1.1 + version: 5.1.1 + fs-extra: + specifier: 9.1.0 + version: 9.1.0 + glob: + specifier: 7.2.0 + version: 7.2.0 + handlebars: + specifier: 4.7.7 + version: 4.7.7 + minimist: + specifier: ^1.2.8 + version: 1.2.8 + rslog: + specifier: ^1.2.3 + version: 1.2.3 + devDependencies: + '@rslib/core': + specifier: ^0.3.1 + version: 0.3.2(typescript@5.5.2) + '@types/fs-extra': + specifier: 9.0.6 + version: 9.0.6 + '@types/glob': + specifier: 7.2.0 + version: 7.2.0 + '@types/minimist': + specifier: ^1.2.5 + version: 1.2.5 + rsbuild-plugin-publint: + specifier: ^0.2.1 + version: 0.2.1(@rsbuild/core@1.2.0-beta.1) + packages/data-prefetch: dependencies: '@module-federation/runtime': @@ -3136,10 +3176,10 @@ packages: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.9 '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 convert-source-map: 2.0.0 debug: 4.4.0(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -3226,7 +3266,7 @@ packages: resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -3255,7 +3295,7 @@ packages: resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 /@babel/helper-builder-binary-assignment-operator-visitor@7.25.9: resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} @@ -3348,6 +3388,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} @@ -3365,7 +3406,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} @@ -3401,6 +3441,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} @@ -3418,7 +3459,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} @@ -3442,6 +3482,7 @@ packages: '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.1.1 semver: 6.3.1 + dev: true /@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} @@ -3453,7 +3494,6 @@ packages: '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.1.1 semver: 6.3.1 - dev: true /@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} @@ -3477,6 +3517,7 @@ packages: '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.1.1 semver: 6.3.1 + dev: true /@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==} @@ -3488,7 +3529,6 @@ packages: '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.1.1 semver: 6.3.1 - dev: true /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.7): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} @@ -3518,6 +3558,7 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.26.9): resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} @@ -3532,7 +3573,6 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-member-expression-to-functions@7.25.7: resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} @@ -3565,8 +3605,8 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color @@ -3574,8 +3614,8 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.9(supports-color@5.5.0) - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.9(supports-color@5.5.0) + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color @@ -3589,7 +3629,7 @@ packages: '@babel/helper-module-imports': 7.25.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color @@ -3707,6 +3747,7 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} @@ -3720,7 +3761,6 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-replace-supers@7.25.7(@babel/core@7.25.2): resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} @@ -3762,6 +3802,7 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-replace-supers@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} @@ -3775,7 +3816,6 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-replace-supers@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} @@ -3803,6 +3843,7 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-replace-supers@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} @@ -3816,7 +3857,6 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} @@ -3907,7 +3947,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 /@babel/helpers@7.26.0: resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} @@ -3946,7 +3986,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 /@babel/parser@7.26.2: resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} @@ -3954,6 +3994,7 @@ packages: hasBin: true dependencies: '@babel/types': 7.26.9 + dev: true /@babel/parser@7.26.9: resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} @@ -3986,6 +4027,7 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} @@ -3998,7 +4040,6 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} @@ -4018,6 +4059,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} @@ -4027,7 +4069,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} @@ -4047,6 +4088,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} @@ -4056,7 +4098,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} @@ -4084,6 +4125,7 @@ packages: '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} @@ -4097,7 +4139,6 @@ packages: '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} @@ -4107,7 +4148,7 @@ packages: dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color dev: true @@ -4120,9 +4161,10 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} @@ -4135,7 +4177,6 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-proposal-decorators@7.25.7(@babel/core@7.25.2): resolution: {integrity: sha512-q1mqqqH0e1lhmsEQHV5U8OmdueBC2y0RFr2oUzZoFRtN3MvPmt2fsFRcNQAoGLTSNdHBFUYGnlgcRFhkBbKjPw==} @@ -4163,6 +4204,7 @@ packages: '@babel/plugin-syntax-decorators': 7.25.7(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-proposal-decorators@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-q1mqqqH0e1lhmsEQHV5U8OmdueBC2y0RFr2oUzZoFRtN3MvPmt2fsFRcNQAoGLTSNdHBFUYGnlgcRFhkBbKjPw==} @@ -4176,7 +4218,6 @@ packages: '@babel/plugin-syntax-decorators': 7.25.7(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-proposal-decorators@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==} @@ -4284,6 +4325,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.26.0 + dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} @@ -4292,7 +4334,6 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.26.9 - dev: true /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -4395,6 +4436,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-decorators@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-oXduHo642ZhstLVYTe2z2GSJIruU0c/W3/Ghr6A5yGMsVrvdnxO1z+3pbTcT7f3/Clnt+1z8D/w1r1f1SHaCHw==} @@ -4404,7 +4446,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} @@ -4490,6 +4531,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} @@ -4499,7 +4541,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-syntax-import-attributes@7.25.7(@babel/core@7.25.2): resolution: {integrity: sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==} @@ -4539,6 +4580,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} @@ -4548,7 +4590,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -4653,6 +4694,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} @@ -4906,6 +4948,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} @@ -4915,7 +4958,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -4937,6 +4979,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.9): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -4947,7 +4990,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} @@ -4967,6 +5009,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} @@ -4976,7 +5019,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} @@ -4987,7 +5029,7 @@ packages: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.25.7) - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color dev: true @@ -5001,9 +5043,10 @@ packages: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} @@ -5017,7 +5060,6 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} @@ -5045,6 +5087,7 @@ packages: '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} @@ -5058,7 +5101,6 @@ packages: '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} @@ -5078,6 +5120,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} @@ -5087,7 +5130,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} @@ -5107,6 +5149,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} @@ -5116,7 +5159,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} @@ -5155,6 +5197,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} @@ -5167,7 +5210,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.25.7): resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} @@ -5193,6 +5235,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} @@ -5205,7 +5248,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-classes@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} @@ -5218,7 +5260,7 @@ packages: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.25.7) - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -5235,10 +5277,11 @@ packages: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} @@ -5255,7 +5298,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} @@ -5277,6 +5319,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 '@babel/template': 7.25.9 + dev: true /@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} @@ -5287,7 +5330,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/template': 7.25.9 - dev: true /@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} @@ -5307,6 +5349,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} @@ -5316,7 +5359,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} @@ -5338,6 +5380,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} @@ -5348,7 +5391,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} @@ -5368,6 +5410,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} @@ -5377,7 +5420,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} @@ -5399,6 +5441,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} @@ -5409,7 +5452,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} @@ -5429,6 +5471,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} @@ -5438,7 +5481,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==} @@ -5464,6 +5506,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==} @@ -5476,7 +5519,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-export-namespace-from@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==} @@ -5507,6 +5549,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} @@ -5516,7 +5559,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-flow-strip-types@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w==} @@ -5553,6 +5595,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} @@ -5565,7 +5608,6 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-function-name@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} @@ -5576,7 +5618,7 @@ packages: '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color dev: true @@ -5590,9 +5632,10 @@ packages: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} @@ -5606,7 +5649,6 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} @@ -5626,6 +5668,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} @@ -5635,7 +5678,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-literals@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} @@ -5655,6 +5697,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} @@ -5664,7 +5707,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} @@ -5684,6 +5726,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} @@ -5693,7 +5736,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} @@ -5713,6 +5755,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} @@ -5722,7 +5765,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} @@ -5748,6 +5790,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} @@ -5760,7 +5803,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.26.0): resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} @@ -5802,6 +5844,7 @@ packages: '@babel/helper-simple-access': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==} @@ -5815,7 +5858,6 @@ packages: '@babel/helper-simple-access': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} @@ -5827,7 +5869,7 @@ packages: '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.7) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color dev: true @@ -5842,9 +5884,10 @@ packages: '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} @@ -5859,7 +5902,6 @@ packages: '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} @@ -5885,6 +5927,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} @@ -5897,7 +5940,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} @@ -5919,6 +5961,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} @@ -5929,7 +5972,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-new-target@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} @@ -5949,6 +5991,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} @@ -5958,7 +6001,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} @@ -5978,6 +6020,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} @@ -5987,7 +6030,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-numeric-separator@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==} @@ -6018,6 +6060,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} @@ -6027,7 +6070,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-object-rest-spread@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==} @@ -6064,6 +6106,7 @@ packages: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + dev: true /@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} @@ -6075,7 +6118,6 @@ packages: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.9) - dev: true /@babel/plugin-transform-object-super@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} @@ -6101,6 +6143,7 @@ packages: '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} @@ -6113,7 +6156,6 @@ packages: '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} @@ -6133,6 +6175,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} @@ -6142,7 +6185,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} @@ -6168,6 +6210,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} @@ -6180,7 +6223,6 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==} @@ -6220,6 +6262,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} @@ -6229,7 +6272,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} @@ -6255,6 +6297,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} @@ -6267,7 +6310,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} @@ -6295,6 +6337,7 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} @@ -6308,7 +6351,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} @@ -6328,6 +6370,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} @@ -6337,15 +6380,14 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true - /@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.26.0): + /@babel/plugin-transform-react-constant-elements@7.25.1(@babel/core@7.26.9): resolution: {integrity: sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 /@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.25.8): @@ -6358,13 +6400,13 @@ packages: '@babel/helper-plugin-utils': 7.25.9 dev: true - /@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.26.0): + /@babel/plugin-transform-react-display-name@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 /@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.25.2): @@ -6409,14 +6451,14 @@ packages: - supports-color dev: true - /@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.26.0): + /@babel/plugin-transform-react-jsx-development@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.26.9 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color @@ -6503,7 +6545,7 @@ packages: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.7) - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color dev: true @@ -6519,26 +6561,11 @@ packages: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.25.8) - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0): - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - /@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} @@ -6550,10 +6577,9 @@ packages: '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.9) - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.25.8): resolution: {integrity: sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==} @@ -6566,13 +6592,13 @@ packages: '@babel/helper-plugin-utils': 7.25.9 dev: true - /@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.26.0): + /@babel/plugin-transform-react-pure-annotations@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.9 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-plugin-utils': 7.25.9 @@ -6629,6 +6655,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 regenerator-transform: 0.15.2 + dev: true /@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} @@ -6639,7 +6666,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 regenerator-transform: 0.15.2 - dev: true /@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.25.7): resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} @@ -6661,6 +6687,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} @@ -6671,7 +6698,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} @@ -6691,6 +6717,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} @@ -6700,7 +6727,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-runtime@7.25.7(@babel/core@7.25.7): resolution: {integrity: sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==} @@ -6734,6 +6760,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-runtime@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==} @@ -6750,7 +6777,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} @@ -6770,6 +6796,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} @@ -6779,7 +6806,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-spread@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} @@ -6805,6 +6831,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} @@ -6817,7 +6844,6 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} @@ -6837,6 +6863,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} @@ -6846,7 +6873,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} @@ -6866,6 +6892,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} @@ -6875,7 +6902,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} @@ -6895,6 +6921,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} @@ -6904,7 +6931,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} @@ -6952,6 +6978,7 @@ packages: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-transform-typescript@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==} @@ -6967,7 +6994,6 @@ packages: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} @@ -6987,6 +7013,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} @@ -6996,7 +7023,6 @@ packages: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} @@ -7018,6 +7044,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} @@ -7028,7 +7055,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} @@ -7050,6 +7076,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} @@ -7060,7 +7087,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.25.7): resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} @@ -7082,6 +7108,7 @@ packages: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + dev: true /@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.9): resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} @@ -7092,7 +7119,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.26.9) '@babel/helper-plugin-utils': 7.25.9 - dev: true /@babel/preset-env@7.26.0(@babel/core@7.25.7): resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} @@ -7252,6 +7278,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /@babel/preset-env@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} @@ -7331,7 +7358,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /@babel/preset-flow@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-q2x3g0YHzo/Ohsr51KOYS/BtZMsvkzVd8qEyhZAyTatYdobfgXCuyppTqTuIhdq5kR/P3nyyVvZ6H5dMc4PnCQ==} @@ -7352,7 +7378,7 @@ packages: dependencies: '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 esutils: 2.0.3 dev: true @@ -7363,8 +7389,9 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.9 esutils: 2.0.3 + dev: true /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.9): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -7375,7 +7402,6 @@ packages: '@babel/helper-plugin-utils': 7.25.9 '@babel/types': 7.26.0 esutils: 2.0.3 - dev: true /@babel/preset-react@7.25.7(@babel/core@7.25.8): resolution: {integrity: sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==} @@ -7394,19 +7420,19 @@ packages: - supports-color dev: true - /@babel/preset-react@7.25.7(@babel/core@7.26.0): + /@babel/preset-react@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-react-pure-annotations': 7.25.7(@babel/core@7.26.0) + '@babel/plugin-transform-react-display-name': 7.25.7(@babel/core@7.26.9) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-react-jsx-development': 7.25.7(@babel/core@7.26.9) + '@babel/plugin-transform-react-pure-annotations': 7.25.7(@babel/core@7.26.9) transitivePeerDependencies: - supports-color @@ -7491,6 +7517,7 @@ packages: '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /@babel/preset-typescript@7.26.0(@babel/core@7.26.9): resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} @@ -7506,7 +7533,6 @@ packages: '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /@babel/register@7.25.7(@babel/core@7.26.9): resolution: {integrity: sha512-qHTd2Rhn/rKhSUwdY6+n98FmwXN+N+zxSVx3zWqRe9INyvTpv+aQ5gDV2+43ACd3VtMBzPPljbb0gZb8u5ma6Q==} @@ -7553,8 +7579,8 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 /@babel/template@7.25.9: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} @@ -7575,20 +7601,6 @@ packages: /@babel/traverse@7.25.7: resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.4.0(supports-color@8.1.1) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/traverse@7.25.9: - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} - engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.2 @@ -7600,7 +7612,7 @@ packages: transitivePeerDependencies: - supports-color - /@babel/traverse@7.25.9(supports-color@5.5.0): + /@babel/traverse@7.25.9: resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} dependencies: @@ -7609,7 +7621,7 @@ packages: '@babel/parser': 7.26.9 '@babel/template': 7.25.9 '@babel/types': 7.26.9 - debug: 4.4.0(supports-color@5.5.0) + debug: 4.4.0(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -7908,6 +7920,21 @@ packages: - react dev: true + /@clack/core@0.3.5: + resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + dev: false + + /@clack/prompts@0.8.2: + resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + dependencies: + '@clack/core': 0.3.5 + picocolors: 1.1.1 + sisteransi: 1.0.5 + dev: false + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -10117,7 +10144,7 @@ packages: chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 @@ -13854,19 +13881,19 @@ packages: verdaccio: optional: true dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.9 + '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.26.9) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.26.9) + '@babel/preset-env': 7.26.0(@babel/core@7.26.9) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.9) '@babel/runtime': 7.26.0 '@nx/devkit': 20.1.1(nx@20.1.4) '@nx/workspace': 20.1.1(@swc-node/register@1.10.9)(@swc/core@1.7.26) '@zkochan/js-yaml': 0.0.7 - babel-plugin-const-enum: 1.2.0(@babel/core@7.26.0) + babel-plugin-const-enum: 1.2.0(@babel/core@7.26.9) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.26.0) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.26.9)(@babel/traverse@7.26.9) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.6.1 @@ -13905,19 +13932,19 @@ packages: verdaccio: optional: true dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.9 + '@babel/plugin-proposal-decorators': 7.25.7(@babel/core@7.26.9) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-runtime': 7.25.7(@babel/core@7.26.9) + '@babel/preset-env': 7.26.0(@babel/core@7.26.9) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.9) '@babel/runtime': 7.26.0 '@nx/devkit': 20.1.1(nx@20.1.4) '@nx/workspace': 20.1.1(@swc-node/register@1.10.9)(@swc/core@1.7.26) '@zkochan/js-yaml': 0.0.7 - babel-plugin-const-enum: 1.2.0(@babel/core@7.26.0) + babel-plugin-const-enum: 1.2.0(@babel/core@7.26.9) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.26.0) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.26.9)(@babel/traverse@7.26.9) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.6.1 @@ -16367,7 +16394,7 @@ packages: '@rollup/pluginutils': 3.1.0(rollup@2.79.2) commondir: 1.0.1 estree-walker: 2.0.2 - glob: 7.2.3 + glob: 7.2.0 is-reference: 1.2.1 magic-string: 0.25.9 resolve: 1.22.8 @@ -16873,7 +16900,7 @@ packages: '@rspack/core': 1.0.14(@swc/helpers@0.5.13) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.13 - caniuse-lite: 1.0.30001700 + caniuse-lite: 1.0.30001668 core-js: 3.38.1 optionalDependencies: fsevents: 2.3.3 @@ -16902,18 +16929,15 @@ packages: core-js: 3.39.0 dev: true - /@rsbuild/core@1.2.17: - resolution: {integrity: sha512-e5J+Fn5kjwOcf254pGwNGeMdTSmsFFC3vmLEAmxVVRYOr8rgph4fSfKXxUwN1jbL2o5sEDdw0vFNq02PdEofnQ==} + /@rsbuild/core@1.2.0-beta.1: + resolution: {integrity: sha512-+TzwALD2xEpgc2FQgjn1CtNtE2CTS1FELuWXpjI4AABjytYDGdaOHvHyCLXHiJpuvDdnyJumoN/T8i8zhbTkPg==} engines: {node: '>=16.7.0'} hasBin: true dependencies: - '@rspack/core': 1.2.7(@swc/helpers@0.5.15) + '@rspack/core': 1.2.0-beta.0(@swc/helpers@0.5.15) '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.15 - core-js: 3.41.0 - jiti: 2.4.2 - transitivePeerDependencies: - - '@rspack/tracing' + core-js: 3.40.0 dev: true /@rsbuild/core@1.2.8: @@ -17142,12 +17166,12 @@ packages: '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.14.2) react-refresh: 0.14.2 - /@rsbuild/plugin-react@1.0.6(@rsbuild/core@1.2.17): + /@rsbuild/plugin-react@1.0.6(@rsbuild/core@1.2.8): resolution: {integrity: sha512-k2VS7nvNm74DlVQROK+w+Ua1j60n3qSnVFva8zjmj6uakLCxxp85aRwfEHzaVP/YdDLffweypROuQPYvTZ57ew==} peerDependencies: '@rsbuild/core': 1.x dependencies: - '@rsbuild/core': 1.2.17 + '@rsbuild/core': 1.2.8 '@rspack/plugin-react-refresh': 1.0.0(react-refresh@0.14.2) react-refresh: 0.14.2 dev: true @@ -17274,46 +17298,6 @@ packages: toml: 3.0.0 dev: true - /@rsbuild/plugin-type-check@1.0.1(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(typescript@5.5.2): - resolution: {integrity: sha512-BahXAJNq4kWtL2dINUlrOL9UCN1t8c/qf5RW8JXx2HSSasfKPJGJ1BVfieMcIaFa/t8/QdafcwoxY1WKPTlSMg==} - peerDependencies: - '@rsbuild/core': 1.x || ^1.0.1-beta.0 - peerDependenciesMeta: - '@rsbuild/core': - optional: true - dependencies: - '@rsbuild/core': 1.2.17 - deepmerge: 4.3.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.5.2)(webpack@5.95.0) - json5: 2.2.3 - reduce-configs: 1.0.0 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.18.20) - transitivePeerDependencies: - - '@swc/core' - - esbuild - - typescript - - uglify-js - - webpack-cli - dev: true - - /@rsbuild/plugin-type-check@1.2.1(@rsbuild/core@1.2.17)(@rspack/core@1.0.8)(typescript@5.5.2): - resolution: {integrity: sha512-PtbjeMqDQy8IiPDTuaj8ZmvR42b0AsRq6RUF6wxa8dDsOzD0Dl1GcvemVGCto+/Dh8frLUmnlWF+T8riBw5rtA==} - peerDependencies: - '@rsbuild/core': 1.x - peerDependenciesMeta: - '@rsbuild/core': - optional: true - dependencies: - '@rsbuild/core': 1.2.17 - deepmerge: 4.3.1 - json5: 2.2.3 - reduce-configs: 1.1.0 - ts-checker-rspack-plugin: 1.1.1(@rspack/core@1.0.8)(typescript@5.5.2) - transitivePeerDependencies: - - '@rspack/core' - - typescript - dev: true - /@rsbuild/plugin-type-check@1.2.1(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(typescript@5.0.4): resolution: {integrity: sha512-PtbjeMqDQy8IiPDTuaj8ZmvR42b0AsRq6RUF6wxa8dDsOzD0Dl1GcvemVGCto+/Dh8frLUmnlWF+T8riBw5rtA==} peerDependencies: @@ -17498,6 +17482,25 @@ packages: typescript: 5.5.2 dev: true + /@rslib/core@0.3.2(typescript@5.5.2): + resolution: {integrity: sha512-BdR/1kjR+Jk614je0ijjEwGoY44fLtPg6PoWHoKfzMkqNMtFg40AwMaBS04SylvR4BuUt1Q+9k6NQ/IWdE5HWg==} + engines: {node: '>=16.0.0'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7 + typescript: ^5 + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + typescript: + optional: true + dependencies: + '@rsbuild/core': 1.2.0-beta.1 + rsbuild-plugin-dts: 0.3.2(@rsbuild/core@1.2.0-beta.1)(typescript@5.5.2) + tinyglobby: 0.2.10 + typescript: 5.5.2 + dev: true + /@rspack/binding-darwin-arm64@0.5.0: resolution: {integrity: sha512-zRx4efhn2eCjdhHt6avhdkKur6FZvYy1TgPhNKpWbTg7fnrvtNGzcVQCAOnPUUPkJjnss3veOhZlWJ3paX0EDQ==} cpu: [arm64] @@ -17552,16 +17555,16 @@ packages: dev: true optional: true - /@rspack/binding-darwin-arm64@1.2.3: - resolution: {integrity: sha512-xuwYzhPgNCr4BtKXCU3xe4249TFsXAZglIlbxv8Qs3PeIarrZMRddcqH2zUXi+nJavNw3yN12sCYEzk1f+O4FQ==} + /@rspack/binding-darwin-arm64@1.2.0-beta.0: + resolution: {integrity: sha512-g8NgY4OIjZf5LabAKOHNr2rs/WzVaxXpOSVsdHztQL6ETdeEpIPUul4p/5zivFNcrvJxVVeHzKJHyB5lqxDcTA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rspack/binding-darwin-arm64@1.2.7: - resolution: {integrity: sha512-dT5eSMTknZaI8Djmz8KnaWM68rjZuBZwsKyF144o+ZSJM55vgiNXyL0lQYB8mX9nR3Gck+jKuGUAT2W/EF/t5Q==} + /@rspack/binding-darwin-arm64@1.2.3: + resolution: {integrity: sha512-xuwYzhPgNCr4BtKXCU3xe4249TFsXAZglIlbxv8Qs3PeIarrZMRddcqH2zUXi+nJavNw3yN12sCYEzk1f+O4FQ==} cpu: [arm64] os: [darwin] requiresBuild: true @@ -17622,16 +17625,16 @@ packages: dev: true optional: true - /@rspack/binding-darwin-x64@1.2.3: - resolution: {integrity: sha512-afiIN8elcrO2EtO27UN0qyZqu5FXGUdclud56DrhvEfnWS3GGxJEdjA8XUYVXkfCYakdXHucIJKlkkgaAjEvHg==} + /@rspack/binding-darwin-x64@1.2.0-beta.0: + resolution: {integrity: sha512-+BH/1UpG96exJc6KhDOiSHAb05bUwxbYCd37HAJwcLxQgB7IEmPtBYvV5CtHysteM5NBtbNeeAcyXK+dIYvUew==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rspack/binding-darwin-x64@1.2.7: - resolution: {integrity: sha512-5n8IhKBxH71d4BUIvyzTwSOAOKNneLPJwLIphSPNIbCMGjLI59/EVpxSQ/AAUfyMkqOs635NNCn0eGQVuzpI/w==} + /@rspack/binding-darwin-x64@1.2.3: + resolution: {integrity: sha512-afiIN8elcrO2EtO27UN0qyZqu5FXGUdclud56DrhvEfnWS3GGxJEdjA8XUYVXkfCYakdXHucIJKlkkgaAjEvHg==} cpu: [x64] os: [darwin] requiresBuild: true @@ -17692,16 +17695,16 @@ packages: dev: true optional: true - /@rspack/binding-linux-arm64-gnu@1.2.3: - resolution: {integrity: sha512-K2u/fPUmKujlKSWL3q2zaUu8/6ZK/bOGKcqJSib8jdanQQ/GFKwKtPAFOOa/vvqbzhDocqKOobFR10FhgJqCHg==} + /@rspack/binding-linux-arm64-gnu@1.2.0-beta.0: + resolution: {integrity: sha512-LdIBNy5WAXJ1J9nB3bEyvqz7mJrMN/7cCtPHMmFBR1aTFbh1NAjYZl24fc+f59aSV5jAU9wfTrOtqtSwnXg4tQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rspack/binding-linux-arm64-gnu@1.2.7: - resolution: {integrity: sha512-DTtFBJmgQQrVWjbklpgJDr3kE9Uf1fHsPh+1GVslsBuyn+o4O7JslrnjuVsQCYKoiEg0Lg4ZPQmwnhJLHssZ5A==} + /@rspack/binding-linux-arm64-gnu@1.2.3: + resolution: {integrity: sha512-K2u/fPUmKujlKSWL3q2zaUu8/6ZK/bOGKcqJSib8jdanQQ/GFKwKtPAFOOa/vvqbzhDocqKOobFR10FhgJqCHg==} cpu: [arm64] os: [linux] requiresBuild: true @@ -17762,16 +17765,16 @@ packages: dev: true optional: true - /@rspack/binding-linux-arm64-musl@1.2.3: - resolution: {integrity: sha512-mgovdzGb6cH9hQsjTyzDbfZWCPhTcoHcLro1P7UbiqcLPMDJp/k3Io9xV2/EJhaDA1aynIdq7XfY0fuk4+6Irw==} + /@rspack/binding-linux-arm64-musl@1.2.0-beta.0: + resolution: {integrity: sha512-4tRi87UyEWV25X6Ul68kJJ/de/cwmASmrIUrCYmdWEdtWMN46UOz0OvxCYvcHTf0DCP8M1CZf0cSiRuG/hsxGA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rspack/binding-linux-arm64-musl@1.2.7: - resolution: {integrity: sha512-01/OoQQF9eyDvRKkxj4DzCznfGZIvnzI8qOsrv+M7VBm8FLoKpb3hygXixaGQOXmNL42XTh61qjgm++fBu6aUA==} + /@rspack/binding-linux-arm64-musl@1.2.3: + resolution: {integrity: sha512-mgovdzGb6cH9hQsjTyzDbfZWCPhTcoHcLro1P7UbiqcLPMDJp/k3Io9xV2/EJhaDA1aynIdq7XfY0fuk4+6Irw==} cpu: [arm64] os: [linux] requiresBuild: true @@ -17832,16 +17835,16 @@ packages: dev: true optional: true - /@rspack/binding-linux-x64-gnu@1.2.3: - resolution: {integrity: sha512-542lwJzB1RMGuVdBdA3cOWTlmL9okpOppHUBWcNCjmJM+9zTI+0jwjVe8HaqOqtuR8XzNsoCwT9QonU/GLcuhg==} + /@rspack/binding-linux-x64-gnu@1.2.0-beta.0: + resolution: {integrity: sha512-rWWrPwUH3V4yG46acZDIlqr7H/yCxbu+WdPhdIRBvgT7bisQkZa2HYx6MXmUXxx94U2iFy5bh+un0ho5FZOeCg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rspack/binding-linux-x64-gnu@1.2.7: - resolution: {integrity: sha512-lUOAUq0YSsofCXsP6XnlgfH0ZRDZ2X2XqXLXYjqf4xkSxCl5eBmE0EQYjAHF4zjUvU5rVx4a4bDLWv7+t3bOHg==} + /@rspack/binding-linux-x64-gnu@1.2.3: + resolution: {integrity: sha512-542lwJzB1RMGuVdBdA3cOWTlmL9okpOppHUBWcNCjmJM+9zTI+0jwjVe8HaqOqtuR8XzNsoCwT9QonU/GLcuhg==} cpu: [x64] os: [linux] requiresBuild: true @@ -17902,16 +17905,16 @@ packages: dev: true optional: true - /@rspack/binding-linux-x64-musl@1.2.3: - resolution: {integrity: sha512-dJromiREDcTWqzfCOI5y1IVoYmUnCv7vCp63AEq0+13fJJdk7+pcNN3VV2jOKpk9VECSvjg1c01wl+UzXAXFMw==} + /@rspack/binding-linux-x64-musl@1.2.0-beta.0: + resolution: {integrity: sha512-9pgL17Bk8aSrTBx6VfQbb313RInDjlY9DfgV5ybbSsWaFs/oAs4oPy+kepWWixfb9Y2q/74bSBPrBNTBYQpknw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rspack/binding-linux-x64-musl@1.2.7: - resolution: {integrity: sha512-ZrPXfgT30p4DlydYavaTHiluxHkWvZHt7K4q7qNyTfYYowG6jRGwWi/PATdugNICGv027Wsh5nzEO4o27Iuhwg==} + /@rspack/binding-linux-x64-musl@1.2.3: + resolution: {integrity: sha512-dJromiREDcTWqzfCOI5y1IVoYmUnCv7vCp63AEq0+13fJJdk7+pcNN3VV2jOKpk9VECSvjg1c01wl+UzXAXFMw==} cpu: [x64] os: [linux] requiresBuild: true @@ -17972,16 +17975,16 @@ packages: dev: true optional: true - /@rspack/binding-win32-arm64-msvc@1.2.3: - resolution: {integrity: sha512-S8ZKddMMQDGy8jx/R0i2m1XrmfY2CpI+t6lIEpsuZuKUR4MbOGKN2DuL4MDnT3m8JaYvC8ihsvQjBXQCy3SNxQ==} + /@rspack/binding-win32-arm64-msvc@1.2.0-beta.0: + resolution: {integrity: sha512-JQ06Q3uTclIk4AvKUqx0Royx2PqVcUuumEUFVWERbd01fntkQqI3RFrPazBYAIvk5JmXk40+CKA1CsFef4RKOA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding-win32-arm64-msvc@1.2.7: - resolution: {integrity: sha512-1OzzM+OUSWX39XYcDfxJ8bGX5vNNrRejCMGotBEdP+uQ3KMWCPz0G4KRc3QIjghaLIYk3ofd83hcfUxyk/2Xog==} + /@rspack/binding-win32-arm64-msvc@1.2.3: + resolution: {integrity: sha512-S8ZKddMMQDGy8jx/R0i2m1XrmfY2CpI+t6lIEpsuZuKUR4MbOGKN2DuL4MDnT3m8JaYvC8ihsvQjBXQCy3SNxQ==} cpu: [arm64] os: [win32] requiresBuild: true @@ -18042,16 +18045,16 @@ packages: dev: true optional: true - /@rspack/binding-win32-ia32-msvc@1.2.3: - resolution: {integrity: sha512-74lqSMKQJcJcgfFaxm+G9YVJSl2KK9/v4fRoMsWApztNy2qNgee+UguNBCOU6JLa3rVSj8Z5OVVDtJkGFrSvVg==} + /@rspack/binding-win32-ia32-msvc@1.2.0-beta.0: + resolution: {integrity: sha512-rNz/sXjXLAqCZkDuTumqm9Aa47Hiu45+vkJ0XvbirJ0A+dzuyGjdtlinwLyZtCY+dVAlS+AcX5znJLlpTSnjjA==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding-win32-ia32-msvc@1.2.7: - resolution: {integrity: sha512-VWlDCV9kDtijk9GK6ZtBQmYoVzKGpnrJB0iI3d2gIEa/2NwikJ89bLMFE4dFx8UNH3p/sSyb5pmPOQnbudFK7Q==} + /@rspack/binding-win32-ia32-msvc@1.2.3: + resolution: {integrity: sha512-74lqSMKQJcJcgfFaxm+G9YVJSl2KK9/v4fRoMsWApztNy2qNgee+UguNBCOU6JLa3rVSj8Z5OVVDtJkGFrSvVg==} cpu: [ia32] os: [win32] requiresBuild: true @@ -18112,16 +18115,16 @@ packages: dev: true optional: true - /@rspack/binding-win32-x64-msvc@1.2.3: - resolution: {integrity: sha512-fcU532PgFdd5Bil8jwQW0Dcb/80oM6V0qSstGIxZ4M77t4t8e/PcukXfORTL71FfNQ64Rd4Dp6XRl1NHNJVxeg==} + /@rspack/binding-win32-x64-msvc@1.2.0-beta.0: + resolution: {integrity: sha512-LKFcgaeEo7G6YLE5aKIbeWzXUpVZc02u0q4as0TjTTRBHd8r21GeaGJVh1Xm9YBkHpIX8Ho1DMftYVd+F6gHzw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@rspack/binding-win32-x64-msvc@1.2.7: - resolution: {integrity: sha512-l/sTdeMsQF1a1aB79cWykDNRZG6nkUA0biJo2/sEARP3ijdr8TuwUdirp2JRDmZfQJkoJnQ2un9y9qyW+TIZzA==} + /@rspack/binding-win32-x64-msvc@1.2.3: + resolution: {integrity: sha512-fcU532PgFdd5Bil8jwQW0Dcb/80oM6V0qSstGIxZ4M77t4t8e/PcukXfORTL71FfNQ64Rd4Dp6XRl1NHNJVxeg==} cpu: [x64] os: [win32] requiresBuild: true @@ -18224,6 +18227,20 @@ packages: '@rspack/binding-win32-x64-msvc': 1.1.8 dev: true + /@rspack/binding@1.2.0-beta.0: + resolution: {integrity: sha512-ZUBWVKCVC3uunZhjH7FAVLP83r/6QvPmYViA6n0JF3ycBmcJLkHJb26v42j6d5EfYfTtNvfRUlzHckIkFDQeDQ==} + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.2.0-beta.0 + '@rspack/binding-darwin-x64': 1.2.0-beta.0 + '@rspack/binding-linux-arm64-gnu': 1.2.0-beta.0 + '@rspack/binding-linux-arm64-musl': 1.2.0-beta.0 + '@rspack/binding-linux-x64-gnu': 1.2.0-beta.0 + '@rspack/binding-linux-x64-musl': 1.2.0-beta.0 + '@rspack/binding-win32-arm64-msvc': 1.2.0-beta.0 + '@rspack/binding-win32-ia32-msvc': 1.2.0-beta.0 + '@rspack/binding-win32-x64-msvc': 1.2.0-beta.0 + dev: true + /@rspack/binding@1.2.3: resolution: {integrity: sha512-enpOXZPQOJO800wdWcR7H5Dx5UZfwkaT0D0xsHD53WbpI09Z2KJbLX7I/i1FLLy3K1KQTB+2FIHLVdRikasXZA==} optionalDependencies: @@ -18238,20 +18255,6 @@ packages: '@rspack/binding-win32-x64-msvc': 1.2.3 dev: true - /@rspack/binding@1.2.7: - resolution: {integrity: sha512-QH+kxkG0I9C6lmlwgBUDFsy24ihXMGG5lfiNtQilk4CyBN+AgSWFENcYrnkUaBioZAvMBznQLiccV3X0JeH9iQ==} - optionalDependencies: - '@rspack/binding-darwin-arm64': 1.2.7 - '@rspack/binding-darwin-x64': 1.2.7 - '@rspack/binding-linux-arm64-gnu': 1.2.7 - '@rspack/binding-linux-arm64-musl': 1.2.7 - '@rspack/binding-linux-x64-gnu': 1.2.7 - '@rspack/binding-linux-x64-musl': 1.2.7 - '@rspack/binding-win32-arm64-msvc': 1.2.7 - '@rspack/binding-win32-ia32-msvc': 1.2.7 - '@rspack/binding-win32-x64-msvc': 1.2.7 - dev: true - /@rspack/core@0.5.0(@swc/helpers@0.5.3): resolution: {integrity: sha512-/Bpujdtx28qYir7AK9VVSbY35GBFEcZ1NTJZBx/WIzZGZWLCxhlVYfjH8cj44y4RvXa0Y26tnj/q7VJ4U3sHug==} engines: {node: '>=16.0.0'} @@ -18399,27 +18402,24 @@ packages: caniuse-lite: 1.0.30001700 dev: true - /@rspack/core@1.2.3(@swc/helpers@0.5.15): - resolution: {integrity: sha512-BFgdUYf05/hjjY9Nlwq8DpWaRJN5w2kTl8ZJi20SRL60oAx+ZD2ABT+fsPhBiFSmfTZDdvGGIq5e3vfRzoIuqg==} + /@rspack/core@1.2.0-beta.0(@swc/helpers@0.5.15): + resolution: {integrity: sha512-0o0EYNeCwbRrh1l+P6HEKGS3Y+SVE/+J6SqDGGBsOixt/YzFeYNeaePWUnFfQ8a27jp9s//Ix6iuxMYGjWmitA==} engines: {node: '>=16.0.0'} peerDependencies: - '@rspack/tracing': ^1.x '@swc/helpers': '>=0.5.1' peerDependenciesMeta: - '@rspack/tracing': - optional: true '@swc/helpers': optional: true dependencies: '@module-federation/runtime-tools': 0.8.4 - '@rspack/binding': 1.2.3 + '@rspack/binding': 1.2.0-beta.0 '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001700 dev: true - /@rspack/core@1.2.7(@swc/helpers@0.5.15): - resolution: {integrity: sha512-Vg7ySflnqI1nNOBPd6VJkQozWADssxn3einbxa9OqDVAB+dGSj8qihTs6rlaTSewidoaYTGIAiTMHO2y+61qqQ==} + /@rspack/core@1.2.3(@swc/helpers@0.5.15): + resolution: {integrity: sha512-BFgdUYf05/hjjY9Nlwq8DpWaRJN5w2kTl8ZJi20SRL60oAx+ZD2ABT+fsPhBiFSmfTZDdvGGIq5e3vfRzoIuqg==} engines: {node: '>=16.0.0'} peerDependencies: '@rspack/tracing': ^1.x @@ -18431,10 +18431,10 @@ packages: optional: true dependencies: '@module-federation/runtime-tools': 0.8.4 - '@rspack/binding': 1.2.7 + '@rspack/binding': 1.2.3 '@rspack/lite-tapable': 1.0.1 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001703 + caniuse-lite: 1.0.30001700 dev: true /@rspack/dev-server@1.0.9(@rspack/core@1.0.8)(@types/express@4.17.21)(webpack@5.93.0): @@ -19218,28 +19218,6 @@ packages: - webpack-sources dev: true - /@storybook/addon-docs@8.3.5(storybook@8.4.2): - resolution: {integrity: sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==} - peerDependencies: - storybook: ^8.3.5 - dependencies: - '@mdx-js/react': 3.0.1(@types/react@18.3.11)(react@18.3.1) - '@storybook/blocks': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2) - '@storybook/csf-plugin': 8.3.5(storybook@8.4.2) - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2) - '@types/react': 18.3.11 - fs-extra: 11.3.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-external-links: 3.0.0 - rehype-slug: 6.0.0 - storybook: 8.4.2(prettier@3.3.3) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - webpack-sources - dev: true - /@storybook/addon-docs@8.6.4(@types/react@18.3.11)(storybook@8.4.2): resolution: {integrity: sha512-+kbcjvEAH0Xs+k+raAwfC0WmJilWhxBYnLLeazP3m5AkVI3sIjbzuuZ78NR0DCdRkw9BpuuXMHv5o4tIvLIUlw==} peerDependencies: @@ -19464,37 +19442,6 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/blocks@8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2): - resolution: {integrity: sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.12(react-dom@18.3.1)(react@18.3.1) - '@types/lodash': 4.17.9 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.5.0(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react: 18.3.1 - react-colorful: 5.6.1(react-dom@18.3.1)(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.2(prettier@3.3.3) - telejson: 7.2.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - dev: true - /@storybook/blocks@8.6.4(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2): resolution: {integrity: sha512-+oPXwT3KzJzsdkQuGEzBqOKTIFlb6qmlCWWbDwAnP0SEqYHoTVRTAIa44icFP0EZeIe+ypFVAm1E7kWTLmw1hQ==} peerDependencies: @@ -19754,7 +19701,7 @@ packages: find-up: 5.0.0 fs-extra: 11.3.0 glob: 10.4.5 - handlebars: 4.7.8 + handlebars: 4.7.7 lazy-universal-dotenv: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) picomatch: 2.3.1 @@ -19791,7 +19738,7 @@ packages: find-up: 5.0.0 fs-extra: 11.3.0 glob: 10.4.5 - handlebars: 4.7.8 + handlebars: 4.7.7 lazy-universal-dotenv: 4.0.0 node-fetch: 2.7.0(encoding@0.1.13) picomatch: 2.3.1 @@ -19891,16 +19838,6 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/core-webpack@8.3.5(storybook@8.4.2): - resolution: {integrity: sha512-mN8BHNc6lSGUf/nKgDr6XoTt1cX+Tap9RnKMUiROCDzfVlJPeJBrG4qrTOok7AwObzeDl9DNFyun6+pVgXJe7A==} - peerDependencies: - storybook: ^8.3.5 - dependencies: - '@types/node': 22.7.4 - storybook: 8.4.2(prettier@3.3.3) - ts-dedent: 2.2.0 - dev: true - /@storybook/core-webpack@8.6.4(storybook@8.4.2): resolution: {integrity: sha512-/E+NDs4Ls2KQhQJyEbqyddvcevPGCNbBIRoR691gq2lnZV7lYFfhpGfYlXL1uSoA3WUWmql/gBsa2/O3vB+HKg==} peerDependencies: @@ -20041,17 +19978,6 @@ packages: - webpack-sources dev: true - /@storybook/csf-plugin@8.3.5(storybook@8.4.2): - resolution: {integrity: sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==} - peerDependencies: - storybook: ^8.3.5 - dependencies: - storybook: 8.4.2(prettier@3.3.3) - unplugin: 1.14.1 - transitivePeerDependencies: - - webpack-sources - dev: true - /@storybook/csf-plugin@8.6.4(storybook@8.4.2): resolution: {integrity: sha512-7UpEp4PFTy1iKjZiRaYMG7zvnpLIRPyD0+lUJUlLYG4UIemV3onvnIi1Je1tSZ4hfTup+ulom7JLztVSHZGRMg==} peerDependencies: @@ -20384,7 +20310,7 @@ packages: flat-cache: 3.2.0 micromatch: 4.0.8 react-docgen-typescript: 2.2.2(typescript@5.5.2) - tslib: 2.6.3 + tslib: 2.8.1 typescript: 5.5.2 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.18.20) transitivePeerDependencies: @@ -20548,6 +20474,47 @@ packages: '@storybook/preview-api': 8.3.5(storybook@8.3.5) '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.3.5) '@storybook/test': 8.3.5(storybook@8.3.5) + '@storybook/theming': 8.6.4(storybook@8.3.5) + '@types/escodegen': 0.0.6 + '@types/estree': 0.0.51 + '@types/node': 22.7.4 + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + acorn-walk: 7.2.0 + escodegen: 2.1.0 + html-tags: 3.3.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-element-to-jsx-string: 15.0.0(react-dom@18.3.1)(react@18.3.1) + semver: 7.6.3 + storybook: 8.3.5 + ts-dedent: 2.2.0 + type-fest: 2.19.0 + typescript: 5.5.2 + util-deprecate: 1.0.2 + dev: true + + /@storybook/react@8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.3.5)(typescript@5.5.2): + resolution: {integrity: sha512-kuBPe/wBin10SWr4EWPKxiTRGQ4RD2etGEVWVQLqVpOuJp/J2hVvXQHtCfZXU4TZT5x4PBbPRswbr58+XlF+kQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@storybook/test': 8.3.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.3.5 + typescript: '>= 4.2.x' + peerDependenciesMeta: + '@storybook/test': + optional: true + typescript: + optional: true + dependencies: + '@storybook/components': 8.3.5(storybook@8.3.5) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 8.3.5(storybook@8.3.5) + '@storybook/preview-api': 8.3.5(storybook@8.3.5) + '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.3.5) '@storybook/theming': 8.3.5(storybook@8.3.5) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 @@ -20589,7 +20556,7 @@ packages: '@storybook/manager-api': 8.3.5(storybook@8.4.2) '@storybook/preview-api': 8.3.5(storybook@8.4.2) '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2) - '@storybook/theming': 8.3.5(storybook@8.4.2) + '@storybook/theming': 8.6.4(storybook@8.4.2) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 22.7.4 @@ -20690,10 +20657,18 @@ packages: storybook: 8.3.5 dev: true - /@storybook/theming@8.3.5(storybook@8.4.2): - resolution: {integrity: sha512-9HmDDyC691oqfg4RziIM9ElsS2HITaxmH7n/yeUPtuirkPdAQzqOzhvH/Sa0qOhifzs8VjR+Gd/a/ZQ+S38r7w==} + /@storybook/theming@8.6.4(storybook@8.3.5): + resolution: {integrity: sha512-g9Ns4uenC9oAWETaJ/tEKEIPMdS+CqjNWZz5Wbw1bLNhXwADZgKrVqawzZi64+bYYtQ+i8VCTjPoFa6s2eHiDQ==} peerDependencies: - storybook: ^8.3.5 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + dependencies: + storybook: 8.3.5 + dev: true + + /@storybook/theming@8.6.4(storybook@8.4.2): + resolution: {integrity: sha512-g9Ns4uenC9oAWETaJ/tEKEIPMdS+CqjNWZz5Wbw1bLNhXwADZgKrVqawzZi64+bYYtQ+i8VCTjPoFa6s2eHiDQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 dependencies: storybook: 8.4.2(prettier@3.3.3) dev: true @@ -20882,11 +20857,11 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-react': 7.25.7(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.26.9 + '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.26.9) + '@babel/preset-env': 7.26.0(@babel/core@7.26.9) + '@babel/preset-react': 7.25.7(@babel/core@7.26.9) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.9) '@svgr/core': 8.1.0(typescript@5.5.2) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.5.2) @@ -21407,8 +21382,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 @@ -21455,7 +21430,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 18.16.9 + '@types/node': 20.12.14 '@types/responselike': 1.0.3 dev: true @@ -21498,7 +21473,7 @@ packages: resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} requiresBuild: true dependencies: - '@types/node': 18.16.9 + '@types/node': 20.12.14 dev: true optional: true @@ -21956,7 +21931,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 18.16.9 + '@types/node': 20.12.14 dev: true /@types/koa-compose@3.2.8: @@ -22017,6 +21992,10 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true + /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} @@ -22157,7 +22136,7 @@ packages: /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 18.16.9 + '@types/node': 20.12.14 dev: true /@types/retry@0.12.0: @@ -22746,7 +22725,7 @@ packages: async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 micromatch: 4.0.8 node-gyp-build: 4.8.2 @@ -23208,8 +23187,8 @@ packages: '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.2) '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 '@vue/babel-helper-vue-transform-on': 1.2.5 '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.25.2) html-tags: 3.3.1 @@ -24765,8 +24744,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.24.0 - caniuse-lite: 1.0.30001668 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001700 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -24780,8 +24759,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.24.0 - caniuse-lite: 1.0.30001668 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001700 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -24910,7 +24889,7 @@ packages: dependencies: '@babel/core': 7.25.7 find-cache-dir: 4.0.0 - schema-utils: 4.3.0 + schema-utils: 4.2.0 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.24.0) dev: true @@ -24923,7 +24902,7 @@ packages: dependencies: '@babel/core': 7.26.0 find-cache-dir: 4.0.0 - schema-utils: 4.3.0 + schema-utils: 4.2.0 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.18.20) /babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.98.0): @@ -24935,7 +24914,7 @@ packages: dependencies: '@babel/core': 7.26.9 find-cache-dir: 4.0.0 - schema-utils: 4.3.0 + schema-utils: 4.2.0 webpack: 5.98.0(@swc/core@1.10.16)(esbuild@0.17.19) dev: true @@ -24960,6 +24939,20 @@ packages: '@babel/traverse': 7.26.9 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-const-enum@1.2.0(@babel/core@7.26.9): + resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + dev: false /babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} @@ -25052,6 +25045,7 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.26.9): resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} @@ -25064,7 +25058,6 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true /babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.7): resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} @@ -25088,6 +25081,7 @@ packages: core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.9): resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} @@ -25099,7 +25093,6 @@ packages: core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color - dev: true /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.7): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} @@ -25121,6 +25114,7 @@ packages: '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.0) transitivePeerDependencies: - supports-color + dev: true /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.26.9): resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} @@ -25131,7 +25125,6 @@ packages: '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.26.9) transitivePeerDependencies: - supports-color - dev: true /babel-plugin-styled-components@1.13.3(styled-components@6.1.15): resolution: {integrity: sha512-meGStRGv+VuKA/q0/jXxrPNWEm4LPfYIqxooDTdmh8kFsP/Ph7jJG5rUPwUPX3QHUvggwdbgdGpo88P/rRYsVw==} @@ -25181,6 +25174,7 @@ packages: dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + dev: true /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.26.9)(@babel/traverse@7.26.9): resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} @@ -25194,7 +25188,6 @@ packages: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.25.9 '@babel/traverse': 7.26.9 - dev: true /babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} @@ -26575,7 +26568,7 @@ packages: hasBin: true dependencies: conventional-commits-filter: 5.0.0 - handlebars: 4.7.8 + handlebars: 4.7.7 meow: 13.2.0 semver: 7.6.3 dev: true @@ -26748,11 +26741,6 @@ packages: requiresBuild: true dev: true - /core-js@3.41.0: - resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} - requiresBuild: true - dev: true - /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -26965,6 +26953,7 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: true /cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} @@ -26973,7 +26962,6 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true /crypto-browserify@3.12.0: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} @@ -27043,14 +27031,6 @@ packages: postcss: 8.4.31 dev: true - /css-declaration-sorter@7.2.0(postcss@8.4.47): - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - dependencies: - postcss: 8.4.47 - /css-declaration-sorter@7.2.0(postcss@8.5.2): resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -27058,7 +27038,6 @@ packages: postcss: ^8.0.9 dependencies: postcss: 8.5.2 - dev: true /css-loader@6.11.0(@rspack/core@1.0.8)(webpack@5.93.0): resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} @@ -27073,12 +27052,12 @@ packages: optional: true dependencies: '@rspack/core': 1.0.8(@swc/helpers@0.5.13) - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) - postcss-modules-scope: 3.2.0(postcss@8.4.47) - postcss-modules-values: 4.0.0(postcss@8.4.47) + icss-utils: 5.1.0(postcss@8.5.2) + postcss: 8.5.2 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.2) + postcss-modules-local-by-default: 4.0.5(postcss@8.5.2) + postcss-modules-scope: 3.2.0(postcss@8.5.2) + postcss-modules-values: 4.0.0(postcss@8.5.2) postcss-value-parser: 4.2.0 semver: 7.6.3 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.18.20) @@ -27096,12 +27075,12 @@ packages: optional: true dependencies: '@rspack/core': 1.1.1(@swc/helpers@0.5.13) - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) - postcss-modules-scope: 3.2.0(postcss@8.4.47) - postcss-modules-values: 4.0.0(postcss@8.4.47) + icss-utils: 5.1.0(postcss@8.5.2) + postcss: 8.5.2 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.2) + postcss-modules-local-by-default: 4.0.5(postcss@8.5.2) + postcss-modules-scope: 3.2.0(postcss@8.5.2) + postcss-modules-values: 4.0.0(postcss@8.5.2) postcss-value-parser: 4.2.0 semver: 7.6.3 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.24.0) @@ -27133,10 +27112,10 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.47) + cssnano: 6.1.2(postcss@8.5.2) esbuild: 0.17.19 jest-worker: 29.7.0 - postcss: 8.4.47 + postcss: 8.5.2 schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.98.0(@swc/core@1.10.16)(esbuild@0.17.19) @@ -27168,10 +27147,10 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.47) + cssnano: 6.1.2(postcss@8.5.2) esbuild: 0.18.20 jest-worker: 29.7.0 - postcss: 8.4.47 + postcss: 8.5.2 schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.18.20) @@ -27202,10 +27181,10 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.47) + cssnano: 6.1.2(postcss@8.5.2) esbuild: 0.18.20 jest-worker: 29.7.0 - postcss: 8.4.47 + postcss: 8.5.2 schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.98.0(@swc/core@1.10.16)(esbuild@0.18.20) @@ -27237,10 +27216,10 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.4.47) + cssnano: 6.1.2(postcss@8.5.2) esbuild: 0.24.0 jest-worker: 29.7.0 - postcss: 8.4.47 + postcss: 8.5.2 schema-utils: 4.2.0 serialize-javascript: 6.0.2 webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.24.0) @@ -27382,44 +27361,6 @@ packages: postcss-unique-selectors: 6.0.4(postcss@8.4.31) dev: true - /cssnano-preset-default@6.1.2(postcss@8.4.47): - resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - css-declaration-sorter: 7.2.0(postcss@8.4.47) - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-calc: 9.0.1(postcss@8.4.47) - postcss-colormin: 6.1.0(postcss@8.4.47) - postcss-convert-values: 6.1.0(postcss@8.4.47) - postcss-discard-comments: 6.0.2(postcss@8.4.47) - postcss-discard-duplicates: 6.0.3(postcss@8.4.47) - postcss-discard-empty: 6.0.3(postcss@8.4.47) - postcss-discard-overridden: 6.0.2(postcss@8.4.47) - postcss-merge-longhand: 6.0.5(postcss@8.4.47) - postcss-merge-rules: 6.1.1(postcss@8.4.47) - postcss-minify-font-values: 6.1.0(postcss@8.4.47) - postcss-minify-gradients: 6.0.3(postcss@8.4.47) - postcss-minify-params: 6.1.0(postcss@8.4.47) - postcss-minify-selectors: 6.0.4(postcss@8.4.47) - postcss-normalize-charset: 6.0.2(postcss@8.4.47) - postcss-normalize-display-values: 6.0.2(postcss@8.4.47) - postcss-normalize-positions: 6.0.2(postcss@8.4.47) - postcss-normalize-repeat-style: 6.0.2(postcss@8.4.47) - postcss-normalize-string: 6.0.2(postcss@8.4.47) - postcss-normalize-timing-functions: 6.0.2(postcss@8.4.47) - postcss-normalize-unicode: 6.1.0(postcss@8.4.47) - postcss-normalize-url: 6.0.2(postcss@8.4.47) - postcss-normalize-whitespace: 6.0.2(postcss@8.4.47) - postcss-ordered-values: 6.0.2(postcss@8.4.47) - postcss-reduce-initial: 6.1.0(postcss@8.4.47) - postcss-reduce-transforms: 6.0.2(postcss@8.4.47) - postcss-svgo: 6.0.3(postcss@8.4.47) - postcss-unique-selectors: 6.0.4(postcss@8.4.47) - /cssnano-preset-default@6.1.2(postcss@8.5.2): resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} @@ -27457,7 +27398,6 @@ packages: postcss-reduce-transforms: 6.0.2(postcss@8.5.2) postcss-svgo: 6.0.3(postcss@8.5.2) postcss-unique-selectors: 6.0.4(postcss@8.5.2) - dev: true /cssnano-utils@3.1.0(postcss@8.4.47): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} @@ -27477,14 +27417,6 @@ packages: postcss: 8.4.31 dev: true - /cssnano-utils@4.0.2(postcss@8.4.47): - resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /cssnano-utils@4.0.2(postcss@8.5.2): resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -27492,7 +27424,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /cssnano@5.1.15(postcss@8.4.47): resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} @@ -27528,15 +27459,15 @@ packages: postcss: 8.5.2 dev: true - /cssnano@6.1.2(postcss@8.4.47): + /cssnano@6.1.2(postcss@8.5.2): resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.4.31 dependencies: - cssnano-preset-default: 6.1.2(postcss@8.4.47) + cssnano-preset-default: 6.1.2(postcss@8.5.2) lilconfig: 3.1.2 - postcss: 8.4.47 + postcss: 8.5.2 /csso@4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} @@ -29657,7 +29588,7 @@ packages: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 @@ -29857,7 +29788,7 @@ packages: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 5.2.0 human-signals: 1.1.1 is-stream: 2.0.1 @@ -29872,7 +29803,7 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -29886,7 +29817,7 @@ packages: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 4.3.1 is-stream: 3.0.0 @@ -29901,7 +29832,7 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -30649,7 +30580,7 @@ packages: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 /forever-agent@0.6.1: @@ -30727,29 +30658,6 @@ packages: webpack: 5.93.0(@swc/core@1.7.26)(esbuild@0.24.0) dev: true - /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.2)(webpack@5.95.0): - resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} - peerDependencies: - typescript: '>3.6.0' - webpack: ^5.11.0 - dependencies: - '@babel/code-frame': 7.26.2 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.5.2) - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.2 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.6.3 - tapable: 2.2.1 - typescript: 5.5.2 - webpack: 5.95.0(@swc/core@1.7.26)(esbuild@0.18.20) - dev: true - /form-data-encoder@1.7.2: resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} dev: false @@ -31288,6 +31196,17 @@ packages: path-is-absolute: 1.0.1 dev: true + /glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -31298,6 +31217,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: true /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -31384,7 +31304,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - glob: 7.2.3 + glob: 7.2.0 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -31518,6 +31438,18 @@ packages: /handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + /handlebars@4.7.7: + resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + /handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -32429,6 +32361,7 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.47 + dev: true /icss-utils@5.1.0(postcss@8.5.2): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} @@ -32437,7 +32370,6 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.5.2 - dev: true /identity-obj-proxy@3.0.0: resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} @@ -33545,7 +33477,7 @@ packages: chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 jest-circus: 29.7.0 jest-environment-node: 29.7.0 @@ -33585,7 +33517,7 @@ packages: chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 jest-circus: 29.7.0 jest-environment-node: 29.7.0 @@ -33625,7 +33557,7 @@ packages: chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 jest-circus: 29.7.0 jest-environment-node: 29.7.0 @@ -33867,7 +33799,7 @@ packages: chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 - glob: 7.2.3 + glob: 7.2.0 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 jest-message-util: 29.7.0 @@ -33887,7 +33819,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.26.9 - '@babel/generator': 7.26.2 + '@babel/generator': 7.26.9 '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.26.9) '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.26.9) '@babel/types': 7.26.9 @@ -34028,6 +33960,7 @@ packages: hasBin: true requiresBuild: true dev: true + optional: true /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -34913,7 +34846,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.3.1) flatted: 3.3.1 rfdc: 1.4.1 streamroller: 3.1.5 @@ -35041,12 +34974,6 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - /magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - dev: true - /magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} dependencies: @@ -36648,7 +36575,7 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 ignore-walk: 3.0.4 npm-bundled: 1.1.2 npm-normalize-package-bin: 1.0.1 @@ -37555,7 +37482,7 @@ packages: dependencies: '@babel/code-frame': 7.26.2 index-to-position: 0.1.2 - type-fest: 4.26.1 + type-fest: 4.37.0 dev: true /parse-ms@4.0.0: @@ -37963,16 +37890,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-calc@9.0.1(postcss@8.4.47): - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - /postcss-calc@9.0.1(postcss@8.5.2): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -37982,7 +37899,6 @@ packages: postcss: 8.5.2 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - dev: true /postcss-calc@9.0.1(postcss@8.5.3): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} @@ -38021,18 +37937,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-colormin@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} @@ -38044,7 +37948,6 @@ packages: colord: 2.9.3 postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-convert-values@5.1.3(postcss@8.4.47): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} @@ -38068,16 +37971,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-convert-values@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} @@ -38087,7 +37980,6 @@ packages: browserslist: 4.24.4 postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-custom-properties@13.3.12(postcss@8.5.2): resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==} @@ -38135,14 +38027,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-discard-comments@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /postcss-discard-comments@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} @@ -38150,7 +38034,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /postcss-discard-duplicates@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} @@ -38170,14 +38053,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-discard-duplicates@6.0.3(postcss@8.4.47): - resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /postcss-discard-duplicates@6.0.3(postcss@8.5.2): resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} @@ -38185,7 +38060,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /postcss-discard-empty@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} @@ -38205,14 +38079,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-discard-empty@6.0.3(postcss@8.4.47): - resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /postcss-discard-empty@6.0.3(postcss@8.5.2): resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -38220,7 +38086,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /postcss-discard-overridden@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} @@ -38240,14 +38105,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-discard-overridden@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /postcss-discard-overridden@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -38255,7 +38112,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /postcss-flexbugs-fixes@5.0.2(postcss@8.5.2): resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==} @@ -38486,16 +38342,6 @@ packages: stylehacks: 6.1.1(postcss@8.4.31) dev: true - /postcss-merge-longhand@6.0.5(postcss@8.4.47): - resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.4.47) - /postcss-merge-longhand@6.0.5(postcss@8.5.2): resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} @@ -38505,7 +38351,6 @@ packages: postcss: 8.5.2 postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.5.2) - dev: true /postcss-merge-rules@5.1.4(postcss@8.4.47): resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} @@ -38533,18 +38378,6 @@ packages: postcss-selector-parser: 6.1.2 dev: true - /postcss-merge-rules@6.1.1(postcss@8.4.47): - resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - /postcss-merge-rules@6.1.1(postcss@8.5.2): resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -38556,7 +38389,6 @@ packages: cssnano-utils: 4.0.2(postcss@8.5.2) postcss: 8.5.2 postcss-selector-parser: 6.1.2 - dev: true /postcss-minify-font-values@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} @@ -38578,15 +38410,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-minify-font-values@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-minify-font-values@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.0} @@ -38595,7 +38418,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-minify-gradients@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} @@ -38621,17 +38443,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@6.0.3(postcss@8.4.47): - resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-minify-gradients@6.0.3(postcss@8.5.2): resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -38642,7 +38453,6 @@ packages: cssnano-utils: 4.0.2(postcss@8.5.2) postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-minify-params@5.1.4(postcss@8.4.47): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} @@ -38668,17 +38478,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-minify-params@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} @@ -38689,7 +38488,6 @@ packages: cssnano-utils: 4.0.2(postcss@8.5.2) postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-minify-selectors@5.2.1(postcss@8.4.47): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} @@ -38711,15 +38509,6 @@ packages: postcss-selector-parser: 6.1.2 dev: true - /postcss-minify-selectors@6.0.4(postcss@8.4.47): - resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - /postcss-minify-selectors@6.0.4(postcss@8.5.2): resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -38728,7 +38517,6 @@ packages: dependencies: postcss: 8.5.2 postcss-selector-parser: 6.1.2 - dev: true /postcss-modules-extract-imports@3.1.0(postcss@8.4.47): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} @@ -38737,6 +38525,7 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.47 + dev: true /postcss-modules-extract-imports@3.1.0(postcss@8.5.2): resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} @@ -38745,7 +38534,6 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.5.2 - dev: true /postcss-modules-local-by-default@4.0.5(postcss@8.4.47): resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} @@ -38757,6 +38545,7 @@ packages: postcss: 8.4.47 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 + dev: true /postcss-modules-local-by-default@4.0.5(postcss@8.5.2): resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} @@ -38768,7 +38557,6 @@ packages: postcss: 8.5.2 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - dev: true /postcss-modules-scope@3.2.0(postcss@8.4.47): resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} @@ -38778,6 +38566,7 @@ packages: dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 + dev: true /postcss-modules-scope@3.2.0(postcss@8.5.2): resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} @@ -38787,7 +38576,6 @@ packages: dependencies: postcss: 8.5.2 postcss-selector-parser: 6.1.2 - dev: true /postcss-modules-values@4.0.0(postcss@8.4.47): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} @@ -38797,6 +38585,7 @@ packages: dependencies: icss-utils: 5.1.0(postcss@8.4.47) postcss: 8.4.47 + dev: true /postcss-modules-values@4.0.0(postcss@8.5.2): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} @@ -38806,7 +38595,6 @@ packages: dependencies: icss-utils: 5.1.0(postcss@8.5.2) postcss: 8.5.2 - dev: true /postcss-modules@4.3.1(postcss@8.4.47): resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} @@ -38879,14 +38667,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-normalize-charset@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - /postcss-normalize-charset@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -38894,7 +38674,6 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.5.2 - dev: true /postcss-normalize-display-values@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} @@ -38916,15 +38695,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-display-values@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-display-values@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.0} @@ -38933,7 +38703,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-positions@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} @@ -38955,15 +38724,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-positions@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -38972,7 +38732,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-repeat-style@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} @@ -38994,15 +38753,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-repeat-style@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -39011,7 +38761,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-string@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} @@ -39033,15 +38782,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-string@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -39050,7 +38790,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-timing-functions@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} @@ -39072,15 +38811,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-timing-functions@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.0} @@ -39089,7 +38819,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-unicode@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} @@ -39113,16 +38842,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-unicode@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} @@ -39132,7 +38851,6 @@ packages: browserslist: 4.24.4 postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-url@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} @@ -39155,15 +38873,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-url@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -39172,7 +38881,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-normalize-whitespace@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} @@ -39194,15 +38902,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-normalize-whitespace@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -39211,7 +38910,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-ordered-values@5.1.3(postcss@8.4.47): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} @@ -39235,16 +38933,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - cssnano-utils: 4.0.2(postcss@8.4.47) - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-ordered-values@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} @@ -39254,7 +38942,6 @@ packages: cssnano-utils: 4.0.2(postcss@8.5.2) postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-page-break@3.0.4(postcss@8.5.2): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} @@ -39286,16 +38973,6 @@ packages: postcss: 8.4.31 dev: true - /postcss-reduce-initial@6.1.0(postcss@8.4.47): - resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - caniuse-api: 3.0.0 - postcss: 8.4.47 - /postcss-reduce-initial@6.1.0(postcss@8.5.2): resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} @@ -39305,7 +38982,6 @@ packages: browserslist: 4.24.4 caniuse-api: 3.0.0 postcss: 8.5.2 - dev: true /postcss-reduce-transforms@5.1.0(postcss@8.4.47): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} @@ -39327,15 +39003,6 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-transforms@6.0.2(postcss@8.4.47): - resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - /postcss-reduce-transforms@6.0.2(postcss@8.5.2): resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.0} @@ -39344,7 +39011,6 @@ packages: dependencies: postcss: 8.5.2 postcss-value-parser: 4.2.0 - dev: true /postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} @@ -39375,16 +39041,6 @@ packages: svgo: 3.3.2 dev: true - /postcss-svgo@6.0.3(postcss@8.4.47): - resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} - engines: {node: ^14 || ^16 || >= 18} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - /postcss-svgo@6.0.3(postcss@8.5.2): resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} @@ -39394,7 +39050,6 @@ packages: postcss: 8.5.2 postcss-value-parser: 4.2.0 svgo: 3.3.2 - dev: true /postcss-unique-selectors@5.1.1(postcss@8.4.47): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} @@ -39416,15 +39071,6 @@ packages: postcss-selector-parser: 6.1.2 dev: true - /postcss-unique-selectors@6.0.4(postcss@8.4.47): - resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - /postcss-unique-selectors@6.0.4(postcss@8.5.2): resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} @@ -39433,7 +39079,6 @@ packages: dependencies: postcss: 8.5.2 postcss-selector-parser: 6.1.2 - dev: true /postcss-url@10.1.3(postcss@8.5.3): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} @@ -41517,9 +41162,9 @@ packages: resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} engines: {node: '>=16.14.0'} dependencies: - '@babel/core': 7.26.0 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/core': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 @@ -42628,7 +42273,7 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 dev: true /rimraf@2.7.1: @@ -42636,7 +42281,7 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 dev: true /rimraf@3.0.2: @@ -42644,7 +42289,7 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: - glob: 7.2.3 + glob: 7.2.0 /rimraf@5.0.10: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} @@ -42816,7 +42461,27 @@ packages: typescript: 5.5.2 dev: true - /rsbuild-plugin-html-minifier-terser@1.1.1(@rsbuild/core@1.2.17): + /rsbuild-plugin-dts@0.3.2(@rsbuild/core@1.2.0-beta.1)(typescript@5.5.2): + resolution: {integrity: sha512-Gjaf5ANA6R9t92Va6utNG1iyRxCE0QLoswKvR5UkOkX5GUpNyWveze+k/6L/qrkgqGRuJqUuYX3lrwatrOUZ3A==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@microsoft/api-extractor': ^7 + '@rsbuild/core': 1.x + typescript: ^5 + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + typescript: + optional: true + dependencies: + '@rsbuild/core': 1.2.0-beta.1 + magic-string: 0.30.17 + picocolors: 1.1.1 + tinyglobby: 0.2.10 + typescript: 5.5.2 + dev: true + + /rsbuild-plugin-html-minifier-terser@1.1.1(@rsbuild/core@1.2.8): resolution: {integrity: sha512-rbDLv+XmGeSQo9JWKSwBst3Qwx1opLqtQCnQ3t9Z0F0ZTxKOC1S/ypPv5tSn/S3GMHct5Yb76mMgh6p80hjOAQ==} peerDependencies: '@rsbuild/core': 1.x || ^1.0.1-beta.0 @@ -42824,11 +42489,24 @@ packages: '@rsbuild/core': optional: true dependencies: - '@rsbuild/core': 1.2.17 + '@rsbuild/core': 1.2.8 '@types/html-minifier-terser': 7.0.2 html-minifier-terser: 7.2.0 dev: true + /rsbuild-plugin-publint@0.2.1(@rsbuild/core@1.2.0-beta.1): + resolution: {integrity: sha512-iD/qeXWHmx2KKRT3cZ0lWa6Nz+K3NWFkVBfq+NQC3LAtHZCMftBbUzbjbJsjDiH195PVPdPmy+5qbxLf6HYqKg==} + peerDependencies: + '@rsbuild/core': 1.x + peerDependenciesMeta: + '@rsbuild/core': + optional: true + dependencies: + '@rsbuild/core': 1.2.0-beta.1 + picocolors: 1.1.1 + publint: 0.2.12 + dev: true + /rsc-html-stream@0.0.4: resolution: {integrity: sha512-1isiXIrlTI/vRLTvS3O4fMrO9qIHje1FSphufrIV5QfzHUgBDCZFwP9b8+rH63nbhxtcKTqfyziwM+2khfX0Uw==} @@ -43499,6 +43177,7 @@ packages: ajv: 8.17.1 ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + dev: true /screenfull@5.2.0: resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} @@ -43912,7 +43591,6 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true /skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} @@ -44261,7 +43939,7 @@ packages: dependencies: graceful-fs: 4.2.11 - /storybook-addon-rslib@0.1.4(@rsbuild/core@1.2.17)(@rslib/core@0.2.0)(storybook-builder-rsbuild@1.0.0)(typescript@5.5.2): + /storybook-addon-rslib@0.1.4(@rsbuild/core@1.2.8)(@rslib/core@0.2.0)(storybook-builder-rsbuild@0.1.10)(typescript@5.5.2): resolution: {integrity: sha512-JXF2OZb3NXE7iYztLxiOTMP1j2BGHSNhREu+5LCjsOXxXFXiJrh4T8OeVLKsg7FlBSfnTkALSra0vHHnerFlfA==} engines: {node: '>=18.0.0'} peerDependencies: @@ -44273,14 +43951,14 @@ packages: typescript: optional: true dependencies: - '@rsbuild/core': 1.2.17 + '@rsbuild/core': 1.2.8 '@rslib/core': 0.2.0(typescript@5.5.2) - storybook-builder-rsbuild: 1.0.0(@rsbuild/core@1.2.17)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2) + storybook-builder-rsbuild: 0.1.10(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2) typescript: 5.5.2 dev: true - /storybook-builder-rsbuild@0.1.5(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(storybook@8.4.2)(typescript@5.5.2): - resolution: {integrity: sha512-g8/pVX+2YixHpWt/Q8dQWtkuKpWKxm1i9h+ihTFPO5LQWc3HvlF6PAXccPvedicLizGR2xTaI/RcJkE+2bYXqA==} + /storybook-builder-rsbuild@0.1.10(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2): + resolution: {integrity: sha512-lTfDMxswJM80c/bj1RO4198S+h/WjXKfWffdotm6DsAykUz4kiyXy0/jO4O1Wz7WXX/yS7OMY08GPq4xjM7Jwg==} peerDependencies: '@rsbuild/core': ^1.0.1 storybook: ^8.2.1 @@ -44289,20 +43967,21 @@ packages: typescript: optional: true dependencies: - '@rsbuild/core': 1.2.17 - '@rsbuild/plugin-type-check': 1.0.1(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(typescript@5.5.2) - '@storybook/addon-docs': 8.3.5(storybook@8.4.2) - '@storybook/core-webpack': 8.3.5(storybook@8.4.2) + '@rsbuild/core': 1.2.8 + '@rsbuild/plugin-type-check': 1.2.1(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(typescript@5.5.2) + '@storybook/addon-docs': 8.6.4(@types/react@18.3.11)(storybook@8.4.2) + '@storybook/core-webpack': 8.6.4(storybook@8.4.2) browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 - cjs-module-lexer: 1.4.1 + cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 + find-cache-dir: 5.0.0 fs-extra: 11.3.0 magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 - rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.2.17) + rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.2.8) sirv: 2.0.4 storybook: 8.4.2(prettier@3.3.3) ts-dedent: 2.2.0 @@ -44311,15 +43990,12 @@ packages: util: 0.12.5 util-deprecate: 1.0.2 transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack-cli - - webpack-sources + - '@rspack/core' + - '@types/react' dev: true - /storybook-builder-rsbuild@1.0.0(@rsbuild/core@1.2.17)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2): - resolution: {integrity: sha512-ECRjXUOQCsuWEe4P2gjsMdh5olEf/nudUpwZ7yWepl4QLYULuMvOY7tN8yxCXImO4AuhgKjQgw59V/ZoO0pyOw==} + /storybook-builder-rsbuild@0.1.5(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2): + resolution: {integrity: sha512-g8/pVX+2YixHpWt/Q8dQWtkuKpWKxm1i9h+ihTFPO5LQWc3HvlF6PAXccPvedicLizGR2xTaI/RcJkE+2bYXqA==} peerDependencies: '@rsbuild/core': ^1.0.1 storybook: ^8.2.1 @@ -44328,8 +44004,8 @@ packages: typescript: optional: true dependencies: - '@rsbuild/core': 1.2.17 - '@rsbuild/plugin-type-check': 1.2.1(@rsbuild/core@1.2.17)(@rspack/core@1.0.8)(typescript@5.5.2) + '@rsbuild/core': 1.2.8 + '@rsbuild/plugin-type-check': 1.2.1(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(typescript@5.5.2) '@storybook/addon-docs': 8.6.4(@types/react@18.3.11)(storybook@8.4.2) '@storybook/core-webpack': 8.6.4(storybook@8.4.2) browser-assert: 1.2.1 @@ -44337,12 +44013,11 @@ packages: cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 es-module-lexer: 1.6.0 - find-cache-dir: 5.0.0 fs-extra: 11.3.0 magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 - rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.2.17) + rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@1.2.8) sirv: 2.0.4 storybook: 8.4.2(prettier@3.3.3) ts-dedent: 2.2.0 @@ -44355,7 +44030,7 @@ packages: - '@types/react' dev: true - /storybook-react-rsbuild@0.1.5(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(react-dom@18.3.1)(react@18.3.1)(rollup@4.24.0)(storybook@8.4.2)(typescript@5.5.2)(webpack@5.93.0): + /storybook-react-rsbuild@0.1.5(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.24.0)(storybook@8.4.2)(typescript@5.5.2)(webpack@5.93.0): resolution: {integrity: sha512-Cy7Ms5COLR1FTelGRxS5pE9LVlDSvaJeBsTH2MVi/29ZK8UEE0VH+Mnve2MboB93GbC3fhZFtIcNSF2dy9pjTw==} engines: {node: '>=18.0.0'} peerDependencies: @@ -44369,30 +44044,27 @@ packages: optional: true dependencies: '@rollup/pluginutils': 5.1.3(rollup@4.24.0) - '@rsbuild/core': 1.2.17 + '@rsbuild/core': 1.2.8 '@storybook/react': 8.3.5(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.5.2) '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.5.2)(webpack@5.93.0) '@types/node': 18.16.9 find-up: 5.0.0 - magic-string: 0.30.12 + magic-string: 0.30.17 react: 18.3.1 react-docgen: 7.1.0 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 storybook: 8.4.2(prettier@3.3.3) - storybook-builder-rsbuild: 0.1.5(@rsbuild/core@1.2.17)(@swc/core@1.7.26)(esbuild@0.18.20)(storybook@8.4.2)(typescript@5.5.2) + storybook-builder-rsbuild: 0.1.5(@rsbuild/core@1.2.8)(@rspack/core@1.0.8)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.5.2) tsconfig-paths: 4.2.0 typescript: 5.5.2 transitivePeerDependencies: + - '@rspack/core' - '@storybook/test' - - '@swc/core' - - esbuild + - '@types/react' - rollup - supports-color - - uglify-js - webpack - - webpack-cli - - webpack-sources dev: true /storybook@7.6.20(encoding@0.1.13): @@ -44873,16 +44545,6 @@ packages: postcss-selector-parser: 6.1.2 dev: true - /stylehacks@6.1.1(postcss@8.4.47): - resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.4.31 - dependencies: - browserslist: 4.24.4 - postcss: 8.4.47 - postcss-selector-parser: 6.1.2 - /stylehacks@6.1.1(postcss@8.5.2): resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} @@ -44892,7 +44554,6 @@ packages: browserslist: 4.24.4 postcss: 8.5.2 postcss-selector-parser: 6.1.2 - dev: true /stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -45519,7 +45180,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 + glob: 7.2.0 minimatch: 3.1.2 dev: true @@ -47251,7 +46912,7 @@ packages: '@volar/typescript': 2.4.5 '@vue/language-core': 2.1.6(typescript@5.5.2) compare-versions: 6.1.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.3.1) kolorist: 1.8.0 local-pkg: 0.5.0 magic-string: 0.30.17 @@ -47278,7 +46939,7 @@ packages: '@volar/typescript': 2.4.5 '@vue/language-core': 2.1.6(typescript@5.5.2) compare-versions: 6.1.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.3.1) kolorist: 1.8.0 local-pkg: 0.5.0 magic-string: 0.30.17 @@ -47376,7 +47037,7 @@ packages: '@types/node': 18.16.9 esbuild: 0.20.2 less: 4.2.2 - postcss: 8.5.2 + postcss: 8.4.47 rollup: 4.24.0 stylus: 0.64.0 optionalDependencies: @@ -48027,7 +47688,7 @@ packages: browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -48066,7 +47727,7 @@ packages: browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -48105,7 +47766,7 @@ packages: browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -48143,7 +47804,7 @@ packages: browserslist: 4.24.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 - es-module-lexer: 1.6.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1