From b1bba84c563f5eea7e92aad250f422d0b624f664 Mon Sep 17 00:00:00 2001 From: Giorgio Boa <35845425+gioboa@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:51:20 +0200 Subject: [PATCH] Merge pull request #34 from module-federation/v1.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: new plugin configuration (#28) * init ts (#29) * fix: tsconfig * fix: issues 2 3 * feat: rust demo build and preview --------- Co-authored-by: 张洪恩 * feat: support runtime plugins (#30) Co-authored-by: Sergey Melukov * fix: Ensure @module-federation/runtime singleton (#31) * fix: Ensure @module-federation/runtime singleton * fix: build preview --------- Co-authored-by: 张洪恩 * feat: add packageManager * fix: remoteEntry support hash; format dynamic es module (#35) * 1.0.0-alpha-7c3ba59 * fix: remove default export (#37) * fix: remove pkg-pr-new * chore: add PR title check * 1.0.0-alpha-ffc6e23 * fix: #36 and dynamic import (#38) * fix: dynamic import * fix: #36 * 1.0.0-alpha-54ad191 * 1.0.0-alpha-80b7215 * fix: #39 #44 #45 (#46) * fix: pre-bunding * feat: add pre-bunding subdependencies demo * fix: exposes . * fix: remotes support namespace * 1.0.0-alpha-4a73cd4 * fix: windows remoteEntry error (#48) Co-authored-by: 张洪恩 * feat: updated examples (#50) * 1.0.0-alpha-def937d * fix updated examples (#51) * fix: #47 (#53) * 1.0.0-alpha-10e1f83 * improved examples with MUI and etc (#55) * fix: #56 #41 (#58) * 1.0.0-alpha-6cae9ab * mfruntime update and new examples (#62) * fix: #61 (#63) Co-authored-by: 张洪恩 * 1.0.0-alpha-51eeeb6 * feat: shared-slash (#67) * feat: shared slash * feat: shared slash * feat: preview examples * feat: remove an-empty-js-file * fix: remove console * optimization: reduce dev mode page reload * Optimize code and comments * fix: 64 * fix: only slash --------- Co-authored-by: 张洪恩 * 1.0.0-alpha-f87d7d3 * fix: nx #40 (#69) * 1.0.0-alpha-661e052 * fix: #68 (#71) * fix: #68 * fix: #68 * fix: windows Multi-Pack * Optimization: Reduce file writing * Optimization: code format * fix: support nx monorepo --------- Co-authored-by: 张洪恩 * 1.0.0-alpha-1aa30c0 * fix: monorepo (#72) Co-authored-by: 张洪恩 * feat: add Nuxt example (#75) * Add Nuxt host example * Gitignore generated .__mf__win folder --------- Co-authored-by: David Sellén Co-authored-by: David Sellén * chore: update module federation and more examples (#81) * fix: #78 (#79) * fix: #78 * Update src/utils/normalizeOptimizeDeps.ts Co-authored-by: Sergey Melyukov --------- Co-authored-by: 张洪恩 Co-authored-by: Sergey Melyukov * fix: #77 (#82) * 1.0.0-alpha-2f53b4e * docs: update Vue example link * docs: update React example link * docs: update README * fix: Remote virtual module path (#84) Co-authored-by: 张洪恩 * 1.0.0-alpha-c13dc95 * feat: add improvements (#86) * fix: Remote virtual module path * examples: nuxt(Unfinished) * feat: mf-manifest; Register remote on demand * doc: roadmap * doc: npm url * Delete src/utils/getLocalSharedImportMap_windows.ts --------- Co-authored-by: 张洪恩 --------- Co-authored-by: zhn Co-authored-by: 张洪恩 Co-authored-by: Sergey Melyukov Co-authored-by: Sergey Melukov Co-authored-by: HG Co-authored-by: David sellén Co-authored-by: David Sellén Co-authored-by: David Sellén --- .github/workflows/CI-CD.yml | 27 - .github/workflows/pr.yml | 19 + .gitignore | 5 +- .vscode/settings.json | 4 +- CHANGELOG.md | 8 + README.md | 104 +- examples/nuxt-vite/nuxt-host/.gitignore | 24 + examples/nuxt-vite/nuxt-host/app.vue | 21 + examples/nuxt-vite/nuxt-host/nuxt.config.ts | 33 + examples/nuxt-vite/nuxt-host/package.json | 20 + .../nuxt-vite/nuxt-host/public/favicon.ico | Bin 0 -> 4286 bytes .../nuxt-vite/nuxt-host/public/robots.txt | 1 + .../nuxt-vite/nuxt-host/server/tsconfig.json | 3 + examples/nuxt-vite/nuxt-host/tsconfig.json | 4 + .../nuxt-vite/nuxt-host/utils/mfPlugins.js | 22 + examples/nuxt-vite/nuxt-remote/.gitignore | 24 + examples/nuxt-vite/nuxt-remote/app.vue | 14 + examples/nuxt-vite/nuxt-remote/nuxt.config.ts | 30 + examples/nuxt-vite/nuxt-remote/package.json | 20 + .../nuxt-vite/nuxt-remote/public/favicon.ico | Bin 0 -> 4286 bytes .../nuxt-vite/nuxt-remote/public/robots.txt | 1 + .../nuxt-remote/server/tsconfig.json | 3 + examples/nuxt-vite/nuxt-remote/tsconfig.json | 4 + examples/rust-vite/rust-host/README.md | 29 + examples/rust-vite/rust-host/package.json | 24 + .../rust-vite/rust-host/rsbuild.config.ts | 48 + examples/rust-vite/rust-host/src/App.tsx | 11 + .../rust-vite/rust-host/src/bootstrap.tsx | 11 + examples/rust-vite/rust-host/src/env.d.ts | 1 + examples/rust-vite/rust-host/src/index.tsx | 1 + examples/rust-vite/rust-host/tsconfig.json | 16 + examples/rust-vite/vite-remote/.gitignore | 26 + examples/rust-vite/vite-remote/index.html | 13 + examples/rust-vite/vite-remote/package.json | 23 + examples/rust-vite/vite-remote/src/App.jsx | 20 + .../rust-vite/vite-remote/src/assets/vue.svg | 1 + examples/rust-vite/vite-remote/src/main.jsx | 11 + .../rust-vite/vite-remote/src/mfPlugins.js | 11 + examples/rust-vite/vite-remote/src/style.css | 79 + examples/rust-vite/vite-remote/vite.config.js | 42 + examples/vite-vite/vite-host/.gitignore | 26 + examples/vite-vite/vite-host/index.html | 14 + examples/vite-vite/vite-host/package.json | 29 + .../vite-vite/vite-host/public/compare.html | 29 + examples/vite-vite/vite-host/src/App.jsx | 63 + .../vite-vite/vite-host/src/assets/vue.svg | 1 + examples/vite-vite/vite-host/src/main.jsx | 13 + examples/vite-vite/vite-host/src/mfPlugins.js | 22 + examples/vite-vite/vite-host/src/style.css | 79 + examples/vite-vite/vite-host/vite.config.js | 50 + examples/vite-vite/vite-remote/.gitignore | 26 + examples/vite-vite/vite-remote/index.html | 16 + examples/vite-vite/vite-remote/package.json | 30 + .../vite-vite/vite-remote/public/vite.svg | 21 + .../vite-vite/vite-remote/src/AgGridDemo.jsx | 37 + examples/vite-vite/vite-remote/src/App.css | 37 + examples/vite-vite/vite-remote/src/App.jsx | 29 + examples/vite-vite/vite-remote/src/App1.jsx | 12 + examples/vite-vite/vite-remote/src/App2.jsx | 12 + .../vite-vite/vite-remote/src/EmotionDemo.jsx | 17 + .../vite-remote/src/Mui5Widget.module.css | 12 + .../vite-vite/vite-remote/src/MuiDemo.jsx | 96 + .../vite-vite/vite-remote/src/StyledDemo.jsx | 9 + examples/vite-vite/vite-remote/src/agGrid.css | 15 + examples/vite-vite/vite-remote/src/app2.sass | 4 + .../vite-remote/src/assets/react.svg | 6 + .../vite-remote/src/assets/viteback.png | Bin 0 -> 626852 bytes .../vite-vite/vite-remote/src/assets/vue.svg | 1 + examples/vite-vite/vite-remote/src/main.jsx | 43 + examples/vite-vite/vite-remote/vite.config.js | 66 + lib/index.cjs | 1262 ++ lib/index.d.ts | 4 + lib/index.esm.js | 1239 ++ lib/index.modern.js | 1288 ++ lib/index.umd.js | 1262 ++ lib/plugins/pluginAddEntry.d.ts | 8 + .../pluginDevProxyModuleTopLevelAwait.d.ts | 2 + lib/plugins/pluginMFManifest.d.ts | 3 + lib/plugins/pluginModuleParseEnd.d.ts | 8 + lib/plugins/pluginProxyRemoteEntry.d.ts | 2 + lib/plugins/pluginProxyRemotes.d.ts | 3 + .../pluginProxySharedModule_preBuild.d.ts | 7 + lib/utils/PromiseStore.d.ts | 16 + lib/utils/VirtualModule.d.ts | 16 + lib/utils/aliasToArrayPlugin.d.ts | 10 + .../getLocalSharedImportMap_windows.d.ts | 2 + lib/utils/localSharedImportMap_windows.d.ts | 2 + .../normalizeModuleFederationOptions.d.ts | 90 + lib/utils/normalizeOptimizeDeps.d.ts | 9 + lib/utils/packageNameUtils.d.ts | 22 + lib/utils/wrapManualChunks.d.ts | 1 + lib/virtualModules/index.d.ts | 5 + lib/virtualModules/virtualRemoteEntry.d.ts | 11 + lib/virtualModules/virtualRemotes.d.ts | 6 + .../virtualRuntimeInitStatus.d.ts | 3 + .../virtualShared_preBuild.d.ts | 17 + package.json | 28 +- pnpm-lock.yaml | 15157 +++++++++++----- pnpm-workspace.yaml | 3 + src/dev-externals-mixin.ts | 36 - src/externals-skip-list.ts | 5 - src/index.ts | 145 +- src/plugins/pluginAddEntry.ts | 100 + .../pluginDevProxyModuleTopLevelAwait.ts | 88 + src/plugins/pluginMFManifest.ts | 357 + src/plugins/pluginModuleParseEnd.ts | 56 + src/plugins/pluginProxyRemoteEntry.ts | 31 + src/plugins/pluginProxyRemotes.ts | 28 + .../pluginProxySharedModule_preBuild.ts | 92 + src/utils/PromiseStore.ts | 34 + src/utils/VirtualModule.ts | 78 + src/utils/aliasToArrayPlugin.ts | 20 + src/utils/localSharedImportMap_windows.ts | 24 + src/utils/normalizeModuleFederationOptions.ts | 318 + src/utils/normalizeOptimizeDeps.ts | 20 + src/utils/packageNameUtils.ts | 55 + src/utils/wrapManualChunks.ts | 16 + src/virtualModules/index.ts | 22 + src/virtualModules/virtualRemoteEntry.ts | 173 + src/virtualModules/virtualRemotes.ts | 37 + .../virtualRuntimeInitStatus.ts | 16 + src/virtualModules/virtualShared_preBuild.ts | 55 + tsconfig.json | 13 + 123 files changed, 19450 insertions(+), 4428 deletions(-) delete mode 100644 .github/workflows/CI-CD.yml create mode 100644 .github/workflows/pr.yml create mode 100644 examples/nuxt-vite/nuxt-host/.gitignore create mode 100644 examples/nuxt-vite/nuxt-host/app.vue create mode 100644 examples/nuxt-vite/nuxt-host/nuxt.config.ts create mode 100644 examples/nuxt-vite/nuxt-host/package.json create mode 100644 examples/nuxt-vite/nuxt-host/public/favicon.ico create mode 100644 examples/nuxt-vite/nuxt-host/public/robots.txt create mode 100644 examples/nuxt-vite/nuxt-host/server/tsconfig.json create mode 100644 examples/nuxt-vite/nuxt-host/tsconfig.json create mode 100644 examples/nuxt-vite/nuxt-host/utils/mfPlugins.js create mode 100644 examples/nuxt-vite/nuxt-remote/.gitignore create mode 100644 examples/nuxt-vite/nuxt-remote/app.vue create mode 100644 examples/nuxt-vite/nuxt-remote/nuxt.config.ts create mode 100644 examples/nuxt-vite/nuxt-remote/package.json create mode 100644 examples/nuxt-vite/nuxt-remote/public/favicon.ico create mode 100644 examples/nuxt-vite/nuxt-remote/public/robots.txt create mode 100644 examples/nuxt-vite/nuxt-remote/server/tsconfig.json create mode 100644 examples/nuxt-vite/nuxt-remote/tsconfig.json create mode 100644 examples/rust-vite/rust-host/README.md create mode 100644 examples/rust-vite/rust-host/package.json create mode 100644 examples/rust-vite/rust-host/rsbuild.config.ts create mode 100644 examples/rust-vite/rust-host/src/App.tsx create mode 100644 examples/rust-vite/rust-host/src/bootstrap.tsx create mode 100644 examples/rust-vite/rust-host/src/env.d.ts create mode 100644 examples/rust-vite/rust-host/src/index.tsx create mode 100644 examples/rust-vite/rust-host/tsconfig.json create mode 100644 examples/rust-vite/vite-remote/.gitignore create mode 100644 examples/rust-vite/vite-remote/index.html create mode 100644 examples/rust-vite/vite-remote/package.json create mode 100644 examples/rust-vite/vite-remote/src/App.jsx create mode 100644 examples/rust-vite/vite-remote/src/assets/vue.svg create mode 100644 examples/rust-vite/vite-remote/src/main.jsx create mode 100644 examples/rust-vite/vite-remote/src/mfPlugins.js create mode 100644 examples/rust-vite/vite-remote/src/style.css create mode 100644 examples/rust-vite/vite-remote/vite.config.js create mode 100644 examples/vite-vite/vite-host/.gitignore create mode 100644 examples/vite-vite/vite-host/index.html create mode 100644 examples/vite-vite/vite-host/package.json create mode 100644 examples/vite-vite/vite-host/public/compare.html create mode 100644 examples/vite-vite/vite-host/src/App.jsx create mode 100644 examples/vite-vite/vite-host/src/assets/vue.svg create mode 100644 examples/vite-vite/vite-host/src/main.jsx create mode 100644 examples/vite-vite/vite-host/src/mfPlugins.js create mode 100644 examples/vite-vite/vite-host/src/style.css create mode 100644 examples/vite-vite/vite-host/vite.config.js create mode 100644 examples/vite-vite/vite-remote/.gitignore create mode 100644 examples/vite-vite/vite-remote/index.html create mode 100644 examples/vite-vite/vite-remote/package.json create mode 100644 examples/vite-vite/vite-remote/public/vite.svg create mode 100644 examples/vite-vite/vite-remote/src/AgGridDemo.jsx create mode 100644 examples/vite-vite/vite-remote/src/App.css create mode 100644 examples/vite-vite/vite-remote/src/App.jsx create mode 100644 examples/vite-vite/vite-remote/src/App1.jsx create mode 100644 examples/vite-vite/vite-remote/src/App2.jsx create mode 100644 examples/vite-vite/vite-remote/src/EmotionDemo.jsx create mode 100644 examples/vite-vite/vite-remote/src/Mui5Widget.module.css create mode 100644 examples/vite-vite/vite-remote/src/MuiDemo.jsx create mode 100644 examples/vite-vite/vite-remote/src/StyledDemo.jsx create mode 100644 examples/vite-vite/vite-remote/src/agGrid.css create mode 100644 examples/vite-vite/vite-remote/src/app2.sass create mode 100644 examples/vite-vite/vite-remote/src/assets/react.svg create mode 100644 examples/vite-vite/vite-remote/src/assets/viteback.png create mode 100644 examples/vite-vite/vite-remote/src/assets/vue.svg create mode 100644 examples/vite-vite/vite-remote/src/main.jsx create mode 100644 examples/vite-vite/vite-remote/vite.config.js create mode 100644 lib/index.cjs create mode 100644 lib/index.d.ts create mode 100644 lib/index.esm.js create mode 100644 lib/index.modern.js create mode 100644 lib/index.umd.js create mode 100644 lib/plugins/pluginAddEntry.d.ts create mode 100644 lib/plugins/pluginDevProxyModuleTopLevelAwait.d.ts create mode 100644 lib/plugins/pluginMFManifest.d.ts create mode 100644 lib/plugins/pluginModuleParseEnd.d.ts create mode 100644 lib/plugins/pluginProxyRemoteEntry.d.ts create mode 100644 lib/plugins/pluginProxyRemotes.d.ts create mode 100644 lib/plugins/pluginProxySharedModule_preBuild.d.ts create mode 100644 lib/utils/PromiseStore.d.ts create mode 100644 lib/utils/VirtualModule.d.ts create mode 100644 lib/utils/aliasToArrayPlugin.d.ts create mode 100644 lib/utils/getLocalSharedImportMap_windows.d.ts create mode 100644 lib/utils/localSharedImportMap_windows.d.ts create mode 100644 lib/utils/normalizeModuleFederationOptions.d.ts create mode 100644 lib/utils/normalizeOptimizeDeps.d.ts create mode 100644 lib/utils/packageNameUtils.d.ts create mode 100644 lib/utils/wrapManualChunks.d.ts create mode 100644 lib/virtualModules/index.d.ts create mode 100644 lib/virtualModules/virtualRemoteEntry.d.ts create mode 100644 lib/virtualModules/virtualRemotes.d.ts create mode 100644 lib/virtualModules/virtualRuntimeInitStatus.d.ts create mode 100644 lib/virtualModules/virtualShared_preBuild.d.ts create mode 100644 pnpm-workspace.yaml delete mode 100644 src/dev-externals-mixin.ts delete mode 100644 src/externals-skip-list.ts create mode 100644 src/plugins/pluginAddEntry.ts create mode 100644 src/plugins/pluginDevProxyModuleTopLevelAwait.ts create mode 100644 src/plugins/pluginMFManifest.ts create mode 100644 src/plugins/pluginModuleParseEnd.ts create mode 100644 src/plugins/pluginProxyRemoteEntry.ts create mode 100644 src/plugins/pluginProxyRemotes.ts create mode 100644 src/plugins/pluginProxySharedModule_preBuild.ts create mode 100644 src/utils/PromiseStore.ts create mode 100644 src/utils/VirtualModule.ts create mode 100644 src/utils/aliasToArrayPlugin.ts create mode 100644 src/utils/localSharedImportMap_windows.ts create mode 100644 src/utils/normalizeModuleFederationOptions.ts create mode 100644 src/utils/normalizeOptimizeDeps.ts create mode 100644 src/utils/packageNameUtils.ts create mode 100644 src/utils/wrapManualChunks.ts create mode 100644 src/virtualModules/index.ts create mode 100644 src/virtualModules/virtualRemoteEntry.ts create mode 100644 src/virtualModules/virtualRemotes.ts create mode 100644 src/virtualModules/virtualRuntimeInitStatus.ts create mode 100644 src/virtualModules/virtualShared_preBuild.ts create mode 100644 tsconfig.json diff --git a/.github/workflows/CI-CD.yml b/.github/workflows/CI-CD.yml deleted file mode 100644 index 1807049..0000000 --- a/.github/workflows/CI-CD.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: pkg-pr-new - Publish Any Commit -on: [push, pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - run: corepack enable - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Install dependencies - run: pnpm install - - - name: Build - run: pnpm build - - - run: pnpx pkg-pr-new publish --compact - working-directory: ./lib - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000..5add237 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,19 @@ +name: Validate PR title + +on: + pull_request: + branches: + - main + +permissions: + pull-requests: read + +jobs: + ############ SEMANTIC PR TITLE VALIDATION ############ + semantic-pr: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5.5.3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 0ae7e5c..2ee0033 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ node_modules -/lib +dist +.DS_Store +.idea +.__mf__win \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 9cefca0..59b3455 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,7 @@ { "editor.codeActionsOnSave": { - "source.organizeImports": true, - "source.fixAll": true + "source.organizeImports": "explicit", + "source.fixAll": "explicit" }, "editor.formatOnSave": true } diff --git a/CHANGELOG.md b/CHANGELOG.md index 26133cb..463bc58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [1.0.0-alpha-7c3ba59] + +### Features + +- new configuration based on Module Federation 2.0 via @module-federation/runtime library + +# Changelog + ## [0.2.8] ### Chores diff --git a/README.md b/README.md index 6456a59..4dd60d0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# Vite/Rollup plugin for Module Federation +# Vite plugin for Module Federation + +[![npm](https://img.shields.io/npm/v/@module-federation/vite.svg)](https://www.npmjs.com/package/@module-federation/vite) ## Reason why 🤔 @@ -9,65 +11,85 @@ This plugin makes Module Federation work together with [Vite](https://vitejs.dev ## Working implementations -### [React](https://github.com/module-federation/module-federation-examples/tree/master/vite-react-microfrontends)
-### [Svelte](https://github.com/module-federation/module-federation-examples/tree/master/vite-svelte-microfrontends)
-### [Vue](https://github.com/module-federation/module-federation-examples/tree/master/vite-vue-microfrontends) +### [Vue](https://github.com/gioboa/vue-microfrontend-demo) +### [React](https://github.com/gioboa/react-microfrontend-demo)
-## Getting started 🚀 +### [More examples here](https://github.com/module-federation/vite/tree/main/examples)
+ +``` +pnpm install && pnpm run dev-vv # vite+vite dev demo +``` -This plugin is based on top of [native-federation](https://www.npmjs.com/package/@softarc/native-federation) so this library is a [peer dependency](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#peerdependencies). +``` +pnpm install && pnpm run preview-vv # vite+vite build demo +``` -You need to extend the Vite configuration with this plugin: +## Getting started 🚀 -```typescript +https://module-federation.io/guide/basic/webpack.html + +```js +// vite.config.js import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; import { federation } from '@module-federation/vite'; -import { createEsBuildAdapter } from '@softarc/native-federation-esbuild'; +import topLevelAwait from 'vite-plugin-top-level-await'; // https://vitejs.dev/config/ -export default defineConfig(async ({ command }) => ({ - server: { - fs: { - allow: ['.', '../shared'], - }, - }, +export default defineConfig({ plugins: [ - await federation({ - options: { - workspaceRoot: __dirname, - outputPath: 'dist', - tsConfig: 'tsconfig.json', - federationConfig: 'module-federation/federation.config.cjs', - verbose: false, - dev: command === 'serve', + federation({ + name: 'bbc', + remotes: { + mfapp01: 'mfapp01@https://unpkg.com/mf-app-01@1.0.9/dist/remoteEntry.js', + remote2: 'mfapp02@https://unpkg.com/mf-app-02/dist/remoteEntry.js', + remote3: + 'remote1@https://unpkg.com/react-manifest-example_remote1@1.0.6/dist/mf-manifest.json', + // "remote4": { + // entry: "http://localhost:5174/dd/remoteEntry.js", + // globalEntryName: "bb", + // type: "esm" + // } + }, + exposes: { + './App': './src/App.vue', + }, + filename: 'dd/remoteEntry.js', + shared: { + vue: {}, + react: { + requiredVersion: '18', + }, }, - adapter: createEsBuildAdapter({ plugins: [...], }), }), - [...] + // If you set build.target: "chrome89", you can remove this plugin + // topLevelAwait(), ], -})); + server: { + port: 5173, + // dev mode please set origin + origin: 'http://localhost:5173', + }, + build: { + target: 'chrome89', + }, +}); ``` -
+## roadmap -### Define configs +- ✅ ~~feat: generate mf-manifest.json~~ +- ✅ ~~feat: support chrome plugin~~ -You need to define two different configurations in the `federationConfig` property.
-Here are two examples: +* ✅ ~~feat: support runtime plugins~~ +* feat: nuxt ssr -- [host](https://www.npmjs.com/package/@softarc/native-federation#configuring-hosts) -- [remote](https://www.npmjs.com/package/@softarc/native-federation#configuring-remotes) -

+- feat: download remote d.ts +- feat: generate d.ts +- feat: support @vitejs/plugin-legacy +- feat: Another plugin, when only some remote modules are started, automatically completes HMR[(#54)](https://github.com/module-federation/vite/issues/54) ### So far so good 🎉 Now you are ready to use Module Federation in Vite! - -## Thanks 🤝 - -Big thanks to: - -[Manfred Steyer](https://twitter.com/manfredsteyer), Speaker, Trainer, Consultant and Author with focus on Angular. Google Developer Expert (GDE) and Microsoft MVP. - -who collaborate with me to make this possible. diff --git a/examples/nuxt-vite/nuxt-host/.gitignore b/examples/nuxt-vite/nuxt-host/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/examples/nuxt-vite/nuxt-host/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/examples/nuxt-vite/nuxt-host/app.vue b/examples/nuxt-vite/nuxt-host/app.vue new file mode 100644 index 0000000..04857f5 --- /dev/null +++ b/examples/nuxt-vite/nuxt-host/app.vue @@ -0,0 +1,21 @@ + + + diff --git a/examples/nuxt-vite/nuxt-host/nuxt.config.ts b/examples/nuxt-vite/nuxt-host/nuxt.config.ts new file mode 100644 index 0000000..0a98f9d --- /dev/null +++ b/examples/nuxt-vite/nuxt-host/nuxt.config.ts @@ -0,0 +1,33 @@ +import { federation } from '@module-federation/vite'; +import TopAwait from 'vite-plugin-top-level-await'; + +export default defineNuxtConfig({ + compatibilityDate: '2024-04-03', + debug: true, + devtools: { enabled: true }, + vite: { + plugins: [ + federation({ + name: 'nuxhost', + remotes: { + '@namespace/viteViteRemote': 'viteRemote@http://localhost:3000/_nuxt/mf-manifest.json', + }, + filename: 'remoteEntry.js', + shared: { + // vue: {}, + }, + runtimePlugins: ['./utils/mfPlugins'], + // exposes: { + // "./App": "./App.vue" + // } + // manifest: { + // fileName: "_nuxt/mf-manifest.json", + // } + }), + new TopAwait(), + ], + build: { + target: 'chrome89', + }, + }, +}); diff --git a/examples/nuxt-vite/nuxt-host/package.json b/examples/nuxt-vite/nuxt-host/package.json new file mode 100644 index 0000000..558a8c9 --- /dev/null +++ b/examples/nuxt-vite/nuxt-host/package.json @@ -0,0 +1,20 @@ +{ + "name": "examples-nuxt-vite-host", + "private": true, + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "NODE_OPTIONS=--experimental-vm-modules nuxt dev --experimental-vm-modules --port=3001", + "generate": "nuxt generate", + "preview": "NITRO_PORT=3001 nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "nuxt": "^3.13.0", + "vue": "latest", + "@module-federation/vite": "workspace:*" + }, + "devDependencies": { + "vite-plugin-top-level-await": "^1.4.4" + } +} diff --git a/examples/nuxt-vite/nuxt-host/public/favicon.ico b/examples/nuxt-vite/nuxt-host/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..18993ad91cfd43e03b074dd0b5cc3f37ab38e49c GIT binary patch literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e { + return { + name: 'module-federation-example-plugin', + beforeInit(args) { + return args; + }, + init(args) { + console.log('init: ', args); + return args; + }, + beforeLoadShare(args) { + console.log('beforeLoadShare: ', args); + return args; + }, + beforeRequest(args) { + console.log('before request hook', args); + return args; + }, + }; +}; + +export default runtimePlugin; diff --git a/examples/nuxt-vite/nuxt-remote/.gitignore b/examples/nuxt-vite/nuxt-remote/.gitignore new file mode 100644 index 0000000..4a7f73a --- /dev/null +++ b/examples/nuxt-vite/nuxt-remote/.gitignore @@ -0,0 +1,24 @@ +# Nuxt dev/build outputs +.output +.data +.nuxt +.nitro +.cache +dist + +# Node dependencies +node_modules + +# Logs +logs +*.log + +# Misc +.DS_Store +.fleet +.idea + +# Local env files +.env +.env.* +!.env.example diff --git a/examples/nuxt-vite/nuxt-remote/app.vue b/examples/nuxt-vite/nuxt-remote/app.vue new file mode 100644 index 0000000..34930cb --- /dev/null +++ b/examples/nuxt-vite/nuxt-remote/app.vue @@ -0,0 +1,14 @@ + + + diff --git a/examples/nuxt-vite/nuxt-remote/nuxt.config.ts b/examples/nuxt-vite/nuxt-remote/nuxt.config.ts new file mode 100644 index 0000000..99cdd3a --- /dev/null +++ b/examples/nuxt-vite/nuxt-remote/nuxt.config.ts @@ -0,0 +1,30 @@ +import { federation } from '@module-federation/vite'; +import TopAwait from 'vite-plugin-top-level-await'; + +export default defineNuxtConfig({ + compatibilityDate: '2024-04-03', + debug: true, + devtools: { enabled: true }, + vite: { + plugins: [ + federation({ + name: 'nuxremote', + filename: 'remoteEntry.js', + shared: { + // vue: {}, + }, + runtimePlugins: ['./utils/mfPlugins'], + exposes: { + './app': './app.vue', + }, + manifest: { + fileName: '_nuxt/mf-manifest.json', + }, + }), + new TopAwait(), + ], + build: { + target: 'chrome89', + }, + }, +}); diff --git a/examples/nuxt-vite/nuxt-remote/package.json b/examples/nuxt-vite/nuxt-remote/package.json new file mode 100644 index 0000000..25e6f10 --- /dev/null +++ b/examples/nuxt-vite/nuxt-remote/package.json @@ -0,0 +1,20 @@ +{ + "name": "examples-nuxt-vite-remote", + "private": true, + "type": "module", + "scripts": { + "build": "nuxt build", + "dev": "NODE_OPTIONS=--experimental-vm-modules nuxt dev --experimental-vm-modules", + "generate": "nuxt generate", + "preview": "nuxt preview --port=3001", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@module-federation/vite": "workspace:*", + "nuxt": "^3.13.0", + "vue": "latest" + }, + "devDependencies": { + "vite-plugin-top-level-await": "^1.4.4" + } +} diff --git a/examples/nuxt-vite/nuxt-remote/public/favicon.ico b/examples/nuxt-vite/nuxt-remote/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..18993ad91cfd43e03b074dd0b5cc3f37ab38e49c GIT binary patch literal 4286 zcmeHLOKuuL5PjK%MHWVi6lD zOGiREbCw`xmFozJ^aNatJY>w+g ze6a2@u~m#^BZm@8wco9#Crlli0uLb^3E$t2-WIc^#(?t)*@`UpuofJ(Uyh@F>b3Ph z$D^m8Xq~pTkGJ4Q`Q2)te3mgkWYZ^Ijq|hkiP^9`De={bQQ%heZC$QU2UpP(-tbl8 zPWD2abEew;oat@w`uP3J^YpsgT%~jT(Dk%oU}sa$7|n6hBjDj`+I;RX(>)%lm_7N{+B7Mu%H?422lE%MBJH!!YTN2oT7xr>>N-8OF$C&qU^ z>vLsa{$0X%q1fjOe3P1mCv#lN{xQ4_*HCSAZjTb1`}mlc+9rl8$B3OP%VT@mch_~G z7Y+4b{r>9e=M+7vSI;BgB?ryZDY4m>&wcHSn81VH1N~`0gvwH{ z8dv#hG|OK`>1;j7tM#B)Z7zDN?{6=dUal}$e { + config.output!.uniqueName = 'app1'; + appendPlugins([ + new ModuleFederationPlugin({ + name: 'examples_rust', + remotes: { + viteRemote: 'http://localhost:5173/dd/remoteEntry.js', + }, + remoteType: 'module', + exposes: { + './app': './src/app.tsx', + }, + manifest: { + filePath: 'manifestpath', + }, + shared: [ + 'react', + 'react-dom', + 'vue', + // 'antd' + ], + }), + ]); + }, + }, + plugins: [ + pluginReact({ + splitChunks: { + react: false, + router: false, + }, + }), + ], +}); diff --git a/examples/rust-vite/rust-host/src/App.tsx b/examples/rust-vite/rust-host/src/App.tsx new file mode 100644 index 0000000..37d47fb --- /dev/null +++ b/examples/rust-vite/rust-host/src/App.tsx @@ -0,0 +1,11 @@ +import ViteApp from 'viteRemote/App'; + +export default function Button() { + return ( +
+ rust host +
+ +
+ ); +} diff --git a/examples/rust-vite/rust-host/src/bootstrap.tsx b/examples/rust-vite/rust-host/src/bootstrap.tsx new file mode 100644 index 0000000..b19d261 --- /dev/null +++ b/examples/rust-vite/rust-host/src/bootstrap.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +//@ts-ignore +const root = ReactDOM.createRoot(document.getElementById('root')!); +root.render( + + + +); diff --git a/examples/rust-vite/rust-host/src/env.d.ts b/examples/rust-vite/rust-host/src/env.d.ts new file mode 100644 index 0000000..b0ac762 --- /dev/null +++ b/examples/rust-vite/rust-host/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/rust-vite/rust-host/src/index.tsx b/examples/rust-vite/rust-host/src/index.tsx new file mode 100644 index 0000000..b93c7a0 --- /dev/null +++ b/examples/rust-vite/rust-host/src/index.tsx @@ -0,0 +1 @@ +import('./bootstrap'); diff --git a/examples/rust-vite/rust-host/tsconfig.json b/examples/rust-vite/rust-host/tsconfig.json new file mode 100644 index 0000000..77055e1 --- /dev/null +++ b/examples/rust-vite/rust-host/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "ES2020", + "lib": ["DOM", "ES2020"], + "module": "ESNext", + "jsx": "react-jsx", + "strict": true, + "skipLibCheck": true, + "isolatedModules": true, + "resolveJsonModule": true, + "moduleResolution": "bundler", + "useDefineForClassFields": true + }, + "include": ["src"] +} diff --git a/examples/rust-vite/vite-remote/.gitignore b/examples/rust-vite/vite-remote/.gitignore new file mode 100644 index 0000000..6026b06 --- /dev/null +++ b/examples/rust-vite/vite-remote/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +pnpm-lock.yaml + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/examples/rust-vite/vite-remote/index.html b/examples/rust-vite/vite-remote/index.html new file mode 100644 index 0000000..d15bba7 --- /dev/null +++ b/examples/rust-vite/vite-remote/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + Vue + + +
+ + + diff --git a/examples/rust-vite/vite-remote/package.json b/examples/rust-vite/vite-remote/package.json new file mode 100644 index 0000000..7bd9e7f --- /dev/null +++ b/examples/rust-vite/vite-remote/package.json @@ -0,0 +1,23 @@ +{ + "name": "examples-rust-vite-vite", + "version": "0.0.3", + "type": "module", + "scripts": { + "dev": "vite --force", + "build": "vite build", + "preview": "vite build && http-server --cors -p 5173 dist" + }, + "dependencies": { + "@module-federation/vite": "workspace:*", + "react": "^18.3.1", + "react-dom": "^18.2.0", + "vue": "^3.4.35", + "vue-router": "^4.4.0" + }, + "devDependencies": { + "@swc/core": "~1.6.0", + "@vitejs/plugin-react": "^4.3.1", + "vite": "^5.3.1", + "vite-plugin-top-level-await": "^1.4.1" + } +} diff --git a/examples/rust-vite/vite-remote/src/App.jsx b/examples/rust-vite/vite-remote/src/App.jsx new file mode 100644 index 0000000..069cb28 --- /dev/null +++ b/examples/rust-vite/vite-remote/src/App.jsx @@ -0,0 +1,20 @@ +import Mfapp01App from 'mfapp01/App'; +import R from 'react'; +import RD from 'react-dom'; +import Remote2App from 'remote2/App'; +import Button from 'remote3/button'; +import { ref } from 'vue'; + +console.log('share vue', ref); +console.log('share React', R, RD, import('remote3/button'), import('react')); + +export default function () { + return ( +
+ vite react +
+ ); +} diff --git a/examples/rust-vite/vite-remote/src/assets/vue.svg b/examples/rust-vite/vite-remote/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/examples/rust-vite/vite-remote/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/rust-vite/vite-remote/src/main.jsx b/examples/rust-vite/vite-remote/src/main.jsx new file mode 100644 index 0000000..b907c04 --- /dev/null +++ b/examples/rust-vite/vite-remote/src/main.jsx @@ -0,0 +1,11 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; + +//@ts-ignore +const root = ReactDOM.createRoot(document.getElementById('app')); +root.render( + + + +); diff --git a/examples/rust-vite/vite-remote/src/mfPlugins.js b/examples/rust-vite/vite-remote/src/mfPlugins.js new file mode 100644 index 0000000..ef8f547 --- /dev/null +++ b/examples/rust-vite/vite-remote/src/mfPlugins.js @@ -0,0 +1,11 @@ +const runtimePlugin = () => { + return { + name: 'module-federation-example-plugin', + beforeRequest(args) { + console.log('before request hook'); + return args; + }, + }; +}; + +export default runtimePlugin; diff --git a/examples/rust-vite/vite-remote/src/style.css b/examples/rust-vite/vite-remote/src/style.css new file mode 100644 index 0000000..bb131d6 --- /dev/null +++ b/examples/rust-vite/vite-remote/src/style.css @@ -0,0 +1,79 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/examples/rust-vite/vite-remote/vite.config.js b/examples/rust-vite/vite-remote/vite.config.js new file mode 100644 index 0000000..dc41bfc --- /dev/null +++ b/examples/rust-vite/vite-remote/vite.config.js @@ -0,0 +1,42 @@ +import { federation } from '@module-federation/vite'; +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import topLevelAwait from 'vite-plugin-top-level-await'; + +// https://vitejs.dev/config/ +export default defineConfig({ + server: { + open: true, + port: 5173, + }, + base: 'http://localhost:5173', + plugins: [ + react(), + federation({ + name: 'viteRemote', + remotes: { + mfapp01: 'mfapp01@https://unpkg.com/mf-app-01@1.0.11/dist/remoteEntry.js', + remote2: 'mfapp02@https://unpkg.com/mf-app-02/dist/remoteEntry.js', + remote3: + 'remote1@https://unpkg.com/react-manifest-example_remote1@1.0.6/dist/mf-manifest.json', + }, + exposes: { + './App': './src/App.jsx', + }, + filename: 'dd/remoteEntry.js', + shared: { + vue: {}, + react: { + requiredVersion: '18', + }, + 'react-dom': {}, + }, + runtimePlugins: ['./src/mfPlugins'], + }), + // If you set build.target: "chrome89", you can remove this plugin + false && topLevelAwait(), + ], + build: { + target: 'chrome89', + }, +}); diff --git a/examples/vite-vite/vite-host/.gitignore b/examples/vite-vite/vite-host/.gitignore new file mode 100644 index 0000000..6026b06 --- /dev/null +++ b/examples/vite-vite/vite-host/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +pnpm-lock.yaml + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/examples/vite-vite/vite-host/index.html b/examples/vite-vite/vite-host/index.html new file mode 100644 index 0000000..54331db --- /dev/null +++ b/examples/vite-vite/vite-host/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite React Host + + + +
+ + + diff --git a/examples/vite-vite/vite-host/package.json b/examples/vite-vite/vite-host/package.json new file mode 100644 index 0000000..94783f6 --- /dev/null +++ b/examples/vite-vite/vite-host/package.json @@ -0,0 +1,29 @@ +{ + "name": "examples-vite-vite-host", + "version": "0.0.3", + "type": "module", + "scripts": { + "dev": "vite --force", + "build": "vite build", + "preview": "vite build && vite preview" + }, + "dependencies": { + "@emotion/react": "^11.13.0", + "@emotion/styled": "^11.13.0", + "@module-federation/vite": "workspace:*", + "@mui/material": "^5.13.4", + "ag-grid-community": "^30.2.0", + "ag-grid-react": "^30.2.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "styled-components": "5.3.3", + "vue": "^3.4.37", + "vue-router": "^4.4.3" + }, + "devDependencies": { + "@swc/core": "~1.7.10", + "@vitejs/plugin-react": "^4.3.1", + "vite": "^5.4.0", + "vite-plugin-top-level-await": "^1.4.4" + } +} \ No newline at end of file diff --git a/examples/vite-vite/vite-host/public/compare.html b/examples/vite-vite/vite-host/public/compare.html new file mode 100644 index 0000000..f49bc4e --- /dev/null +++ b/examples/vite-vite/vite-host/public/compare.html @@ -0,0 +1,29 @@ + + + + + + + + Vite Mf Compare + + + + +
+ + +
+ + + \ No newline at end of file diff --git a/examples/vite-vite/vite-host/src/App.jsx b/examples/vite-vite/vite-host/src/App.jsx new file mode 100644 index 0000000..06da0d3 --- /dev/null +++ b/examples/vite-vite/vite-host/src/App.jsx @@ -0,0 +1,63 @@ +import Mfapp01App from 'mfapp01/App'; +import R from 'react'; +import RD from 'react-dom/client'; +import Remote2App from 'remote2/App'; +import Button from 'remote3/button'; + +import App from '@namespace/viteViteRemote'; +import { AgGridDemo } from '@namespace/viteViteRemote/AgGridDemo'; +import App1 from '@namespace/viteViteRemote/App1'; +import { App2 } from '@namespace/viteViteRemote/App2'; +import { EmotionDemo } from '@namespace/viteViteRemote/EmotionDemo'; +import { MuiDemo } from '@namespace/viteViteRemote/MuiDemo'; +import StyledDemo from '@namespace/viteViteRemote/StyledDemo'; +import { ref } from 'vue'; + +console.log('Share Vue', ref); +console.log('Share React', R, RD); + +export default function () { + return ( +
+

+ Vite React (v {R.version}) app running from Host in{' '} + {import.meta.env.DEV ? ' Dev ' : ' prod '} mode +

+
+ + + +

Vite Remote Default App

+ + +

Vite Remote App1

+ + +

Vite Remote App2

+ + +

Vite Remote AgGridDemo

+ + +

Vite Remote MuiDemo

+ + +

Styled Components Demo

+ + +

Emotion Styled Components Demo

+ + +
+ +

Button

+
+ ); +} \ No newline at end of file diff --git a/examples/vite-vite/vite-host/src/assets/vue.svg b/examples/vite-vite/vite-host/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/examples/vite-vite/vite-host/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/vite-vite/vite-host/src/main.jsx b/examples/vite-vite/vite-host/src/main.jsx new file mode 100644 index 0000000..0847c7b --- /dev/null +++ b/examples/vite-vite/vite-host/src/main.jsx @@ -0,0 +1,13 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import './style.css'; + +//@ts-ignore +const root = ReactDOM.createRoot(document.getElementById('app')); +root.render( + +

MF HOST Demo

+ +
+); diff --git a/examples/vite-vite/vite-host/src/mfPlugins.js b/examples/vite-vite/vite-host/src/mfPlugins.js new file mode 100644 index 0000000..b36c158 --- /dev/null +++ b/examples/vite-vite/vite-host/src/mfPlugins.js @@ -0,0 +1,22 @@ +const runtimePlugin = () => { + return { + name: 'module-federation-example-plugin', + beforeInit(args) { + return args; + }, + init(args) { + console.log('init: ', args); + return args; + }, + beforeLoadShare(args) { + console.log('beforeLoadShare: ', args); + return args; + }, + beforeRequest(args) { + console.log('before request hook', args); + return args; + }, + }; +}; + +export default runtimePlugin; diff --git a/examples/vite-vite/vite-host/src/style.css b/examples/vite-vite/vite-host/src/style.css new file mode 100644 index 0000000..bb131d6 --- /dev/null +++ b/examples/vite-vite/vite-host/src/style.css @@ -0,0 +1,79 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/examples/vite-vite/vite-host/vite.config.js b/examples/vite-vite/vite-host/vite.config.js new file mode 100644 index 0000000..062e38d --- /dev/null +++ b/examples/vite-vite/vite-host/vite.config.js @@ -0,0 +1,50 @@ +import { federation } from '@module-federation/vite'; +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import topLevelAwait from 'vite-plugin-top-level-await'; + +// https://vitejs.dev/config/ +export default defineConfig({ + server: { + open: true, + port: 5175, + }, + preview: { + port: 5175, + }, + // base: 'http://localhost:5175', + plugins: [ + react(), + federation({ + name: 'viteViteHost', + remotes: { + mfapp01: 'mfapp01@https://unpkg.com/mf-app-01@1.0.11/dist/remoteEntry.js', + remote2: 'mfapp02@https://unpkg.com/mf-app-02/dist/remoteEntry.js', + remote3: + 'remote1@https://unpkg.com/react-manifest-example_remote1@1.0.6/dist/mf-manifest.json', + '@namespace/viteViteRemote': 'http://localhost:5176/mf-manifest.json', + }, + filename: 'remoteEntry-[hash].js', + manifest: true, + shared: { + vue: {}, + 'react/': { + requiredVersion: '18', + }, + 'react-dom': {}, + 'ag-grid-community': {}, + 'ag-grid-react': {}, + '@emotion/react': {}, + 'styled-components': { singleton: true }, + '@emotion/styled': {}, + '@mui/material': {}, + }, + runtimePlugins: ['./src/mfPlugins'], + }), + // If you set build.target: "chrome89", you can remove this plugin + false && topLevelAwait(), + ], + build: { + target: 'chrome89', + }, +}); diff --git a/examples/vite-vite/vite-remote/.gitignore b/examples/vite-vite/vite-remote/.gitignore new file mode 100644 index 0000000..6026b06 --- /dev/null +++ b/examples/vite-vite/vite-remote/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +pnpm-lock.yaml + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/examples/vite-vite/vite-remote/index.html b/examples/vite-vite/vite-remote/index.html new file mode 100644 index 0000000..70fcc41 --- /dev/null +++ b/examples/vite-vite/vite-remote/index.html @@ -0,0 +1,16 @@ + + + + + + + + Vite React Remote + + + +
+ + + + \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/package.json b/examples/vite-vite/vite-remote/package.json new file mode 100644 index 0000000..c21ff8a --- /dev/null +++ b/examples/vite-vite/vite-remote/package.json @@ -0,0 +1,30 @@ +{ + "name": "examples-vite-vite-remote", + "version": "0.0.3", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite build&&vite preview" + }, + "dependencies": { + "@emotion/react": "^11.13.0", + "@emotion/styled": "^11.13.0", + "@module-federation/vite": "workspace:*", + "@mui/material": "^5.13.4", + "ag-grid-community": "^30.2.0", + "ag-grid-react": "^30.2.0", + "react": "18.2.0", + "react-dom": "18.2.0", + "sass-embedded": "^1.77.8", + "styled-components": "5.3.3", + "vue": "^3.4.37", + "vue-router": "^4.4.3" + }, + "devDependencies": { + "@swc/core": "~1.7.10", + "@vitejs/plugin-react": "^4.3.1", + "vite": "^5.4.0", + "vite-plugin-top-level-await": "^1.4.4" + } +} \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/public/vite.svg b/examples/vite-vite/vite-remote/public/vite.svg new file mode 100644 index 0000000..f7aeec4 --- /dev/null +++ b/examples/vite-vite/vite-remote/public/vite.svg @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/AgGridDemo.jsx b/examples/vite-vite/vite-remote/src/AgGridDemo.jsx new file mode 100644 index 0000000..797e21b --- /dev/null +++ b/examples/vite-vite/vite-remote/src/AgGridDemo.jsx @@ -0,0 +1,37 @@ +import 'ag-grid-community/styles/ag-grid.css'; +import 'ag-grid-community/styles/ag-theme-alpine.css'; +import { AgGridReact } from 'ag-grid-react'; +import { useState } from 'react'; +import './agGrid.css'; + + +export const AgGridDemo = ({ }) => { + const [rowData] = useState([ + { make: 'Toyota', model: 'Celica', price: 35000 }, + { make: 'Ford', model: 'Mondeo', price: 32000 }, + { make: 'Porsche', model: 'Boxter', price: 72000 }, + ]); + + const [columnDefs] = useState([{ field: 'make' }, { field: 'model' }, { field: 'price' }]); + + return ( +
+
+
+ +
+
+ +
+
+
+ ); +}; \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/App.css b/examples/vite-vite/vite-remote/src/App.css new file mode 100644 index 0000000..d59a1cb --- /dev/null +++ b/examples/vite-vite/vite-remote/src/App.css @@ -0,0 +1,37 @@ +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + } + + .logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); + } + + .logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); + } + + @keyframes logo-spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } + } + + @media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } + } + + .card { + padding: 2em; + } + + .read-the-docs { + color: #888; + } \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/App.jsx b/examples/vite-vite/vite-remote/src/App.jsx new file mode 100644 index 0000000..1faa18f --- /dev/null +++ b/examples/vite-vite/vite-remote/src/App.jsx @@ -0,0 +1,29 @@ +import { useState } from 'react'; +import './App.css'; +import reactLogo from './assets/react.svg'; +// import viteLogo from './assets/vite.svg'; + +function App() { + const [count, setCount] = useState(0); + + return ( +
+ +

Vite + React

+
+

+ Edit src/App.jsx and save to test HMR +

+
+
+ ); +} + +export default App; \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/App1.jsx b/examples/vite-vite/vite-remote/src/App1.jsx new file mode 100644 index 0000000..bbe3ec5 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/App1.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import vueImg from "./assets/vue.svg"; + +export default function () { + return ( +
+ + Vite React App1 as default export via remote in + {import.meta.env.DEV ? ' Dev ' : ' prod '} mode +
+ ); +} diff --git a/examples/vite-vite/vite-remote/src/App2.jsx b/examples/vite-vite/vite-remote/src/App2.jsx new file mode 100644 index 0000000..684ca63 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/App2.jsx @@ -0,0 +1,12 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import "./app2.sass"; + +console.log("App2 shared React", React, ReactDOM) +export function App2() { + return ( +
+ Vite react (v. {React.version})App2 as named export via remote with Sass use +
+ ); +} diff --git a/examples/vite-vite/vite-remote/src/EmotionDemo.jsx b/examples/vite-vite/vite-remote/src/EmotionDemo.jsx new file mode 100644 index 0000000..93afbf1 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/EmotionDemo.jsx @@ -0,0 +1,17 @@ +import styled from '@emotion/styled'; + +const Heading = styled('h1')` + background-color: ${props => props.bg}; + padding:${props => props.pd}; + color: ${props => props.fg}; +`; + +export const EmotionDemo = () => { + return ( +
+ + Heading with a green background and yellow text. + +
+ ); +} diff --git a/examples/vite-vite/vite-remote/src/Mui5Widget.module.css b/examples/vite-vite/vite-remote/src/Mui5Widget.module.css new file mode 100644 index 0000000..7067c71 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/Mui5Widget.module.css @@ -0,0 +1,12 @@ +.container { + padding: 20px; + border: 2px; + border-style: solid; + border-color: cadetblue; + } + + .myButton { + color: black; + background-color: blueviolet; + font-size: 10px; + } \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/MuiDemo.jsx b/examples/vite-vite/vite-remote/src/MuiDemo.jsx new file mode 100644 index 0000000..388fb25 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/MuiDemo.jsx @@ -0,0 +1,96 @@ +import { css } from '@emotion/react'; +import { createTheme, Paper, StyledEngineProvider, ThemeProvider, Typography } from '@mui/material'; +import Button from '@mui/material/Button'; +import React from 'react'; +import styles from './Mui5Widget.module.css'; + +const FooterClasses = { + root: { + padding: '10px', + }, +}; + +// Emotion +const emotionClass = css` + background-color: orange; + color: red; + border: 1px solid black; + font-size: 20px; + margin: 10px; +`; + +// Create Theme +const theme = createTheme({ + palette: { + background: { + paper: '#FF0000', + }, + text: { + primary: '#173A5E', + secondary: '#46505A', + }, + action: { + active: '#001E3C', + }, + }, + components: { + // Name of the component + MuiButtonBase: { + defaultProps: { + // The props to change the default for. + disableRipple: true, // No more ripple, on the whole application 💣! + }, + }, + MuiButton: { + styleOverrides: { + // Name of the slot + root: { + // Some CSS + fontSize: '1rem', + fontFamily: 'Arial', + margin: 10, + border: '2px solid yellow', + }, + }, + }, + }, +}); + +export const MuiDemo = ({ }) => { + return ( + +
+
+ +
+
+ + + +
+
+ + + +
+
+ +
+ +
+ +
+ + + Text inside typography + +
+
+ ); +}; diff --git a/examples/vite-vite/vite-remote/src/StyledDemo.jsx b/examples/vite-vite/vite-remote/src/StyledDemo.jsx new file mode 100644 index 0000000..fe27b5e --- /dev/null +++ b/examples/vite-vite/vite-remote/src/StyledDemo.jsx @@ -0,0 +1,9 @@ +import React from 'react'; +import styled from 'styled-components'; + +export default styled(function ({ className }) { + return
Styled components
; +})` + background: salmon; + padding: 30px; +`; \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/agGrid.css b/examples/vite-vite/vite-remote/src/agGrid.css new file mode 100644 index 0000000..8e96cba --- /dev/null +++ b/examples/vite-vite/vite-remote/src/agGrid.css @@ -0,0 +1,15 @@ +#grid1 .ag-header-cell { + background-color: #b02e2e; + } + + #grid1 .ag-row { + font-weight: bold; + } + + #grid2 .ag-header-cell { + background-color: #26ea2c; + } + + #grid2 .ag-row { + font-weight: bold; + } \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/app2.sass b/examples/vite-vite/vite-remote/src/app2.sass new file mode 100644 index 0000000..5f88ad7 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/app2.sass @@ -0,0 +1,4 @@ +.container + background-image: url(./assets/viteback.png) + height: 200px + color: orange diff --git a/examples/vite-vite/vite-remote/src/assets/react.svg b/examples/vite-vite/vite-remote/src/assets/react.svg new file mode 100644 index 0000000..15895c2 --- /dev/null +++ b/examples/vite-vite/vite-remote/src/assets/react.svg @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/examples/vite-vite/vite-remote/src/assets/viteback.png b/examples/vite-vite/vite-remote/src/assets/viteback.png new file mode 100644 index 0000000000000000000000000000000000000000..a0464ee9ca142eeea0c8c914b84f7c0897797740 GIT binary patch literal 626852 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%0A@rVSy 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 i+sjv!HUlX@9_+fbxHnF3VO8Cty`-MyMu4;X) z04MmNl4Ra>O$af`+ru-G>v=U@-P6u^_Cw|DgGLn3wf*5{k9G$_E|JwN=@4ukXCEvO zHs@VjoUN{sXg<=^6#OKa0rL7b=-lwD@~^72+4(uY!(van`wD)tH@LW)ZErj6Q`%3% zPs2bD^Vlwx&J*8Lrb{gDEIC`4XJ>an{fBpeWa>yXI*B=g^?cUB54$0#_C(uKvDH#} zDiWJSi(p2J|0c2zcH5Wo2QD!q(N)a)1}7ewgWze$u=+ z$fd=U_3)$Pp>WpPpTw!)=Oge_W7GZ7)OdC_xb`dhX*Q@T(B}(&o(OXB`v&T}jg9qn zz;9(8D{1u}jn55)o8jb&RGmlUVqAQ|RS&Jp87l%Fk zc0Ye6Hw8bcG?VtSI{=`PKk>zu0|S}p0Dg`K?ci4cOk=dc5AXjO`0f73;Wv=N6#O9V z^stX;0cZp|{DZ7hHCd!BYBy?4ksF@Tc~<8$b3HaHgDz`60kn|-hGz!~7~diIF>Ixl zIiT{B%7ybim=WM4v?pG@Qs!Gn5;O4gLGxKb)sVu(`GEVUJ@_DinO4q=*$6PP6hyy~ zbsro+<(hA(^4#2f{wG#;8|y2Zn*iIt;SQP{ULCxDkM{r`Q3r*~ z%E1a>4_FJz21r_ghJxL&5_E=VT?ywJ3{${W#V0fZK?}Bc?E@Sp#fW?P1Y^6tDg4Rj ze#EzEg}T1;&OfX-Ld2PBKC4@Nk9wh!#ALchDa-(Vi9t(4G@!KIZ-A?qh#N>*;LH=i9y$$6<&+6%61AwSS;$i>v+ZaX zS5G0nY%wp;sASR6Cv9lgOb}*x2YYgQ2Q2A%*tnJtUW$Blk7u;s(34R){Vahhz-d^yNyk&Hjh6SGi(geRkThn>Y=hMT$52<8V zSM%-daPVDZFk&SLJek6^Cu76(=4Q{$P4LannD$kkUIo7(O^!fmJ-yF12y}Mm@W^^2 z4ExUJsOnh$aeI5huFo&n{A5+9)~0?B8=o!!0Y8`{d`3GSB%YDo-B5#=licLwE@~E4 zb%vjO@+0`k?=Bx8Kv?k8ix9|rlHfN4SYKl{_@ULQ|32XF_3KzI+V8-ppI@g!)PHT69$qiNFU8&%evb|N zys2GCXq?g+<{OETF{7fvu&!t-*V%Dthalkjg1&D-S%K%--_q5LQ zc{MX@lb;8Db_9CH*9t$sd!=m8R}imk{2SnhvTg&%ChQEa4%Xivs0wte6WEi*p%kH+ zt1vnRagdkTXxem+}j)fxJe(Z>D9R1Yui+wgUBlJwBr|P?t zo$PeT7?4JG<-nX=Tr^`u>eLKnrFd6{g%PwQ?g3#Jcf z$!-U?GjsIs`wFoKUZT|c`?S1h=L8}bS{q>TC)4}7us#8jkip!NL)_oTwx*|mPW-H& zh=6H)(^A`I^s}M8^YL+i-*e=vagh;gJMMCLndP>w`%?cshwp)D(^Yg~8ff9C=Xt}` zwmti@kfBRHv+$+6DHaG>*j)ie@3}dGU#h`!IN;vR4IqyPgRL>~qqqf<&&`b$?r2!y z_)pr-W~>z&p`zx#Uc6vfOX*zRR&|!9r9>!385n3A{EO>TjM>^m?|uP(R&ZKm z85yUuJ^5WyPXu(?7btR!ryUM_%QmL3eL@OLia@^;!wy#y>j{|(ucO}k${LP2FSbTx z+P4V5`+LEUMmpAki|{)Yp<0#;uG32x5DwtyIiUbIy_wG^fS-2t34T{S{FLLOBJy1l zukrq!OF1=AC-2_fRIDe@PESuSqX0#=r#8NG7RaBN_FZvzyXv;HW_lL_13$}KwE9RB zKG%bw@WuJrnc#=5eS#eroA8#vPaRB1Sd#2nD$knqonM^U@XqFE2S2qd4L>D+Qv6bZ z*Yxeh)^Jkw9mj#S0m3OR#HSV~34XD|quEI_!Aupjh-j?`F~-ApBlKnT=0uk@$L@)?Zg$VeH6#^4!#itJBvf$ zw}gF;GAsDWy;mun1wUkYa>DnVb>ZC|P^J10e~)2>1To?XKpZ;N^`U(2Zfv%<(R)VP z(t4p0x}?Ktm8jvT?xtsd>U)+E!ti@_P*Xm#4}J%xxHR}3@ZFKddmQ+Md3|$J2X6Pz z$KhAp>fs0NN)JEWM3h9{Qmo6l5&VvN_@Re-BzFe=4d;CW_*J{J4(4sbuArR^YE@d=$-byJJ^)>( z4==7sEZW~|O_5Zf29;$pdIJ*z8=7gH8mw%I+7IDcQM(loV(od}D!2FXtthA@ms~ds z?NmQJyjei-OoIoMp6Jw|dQTeIPBcC)6;u)m+iC^5&8 zAmuP@i3*I{+uH!14DZ@#%ibm4Ypov}rL#Hq_^J0v^(HPMv*iTv74*ET??V)zv+eEk z4_hqV|vX=I7e3tMxka=$@h7paHD4J#)wK z)oM~Fya>X!uIHC<)~D!irq^_E%p-5_^qtpikK!k)J)EcDg#p(1U0@l#e|`_-b@RSa z*E5Yy_BQ=PvpsK8iu{wH(<`tj7X9`&ATW(g!0-6^-JO`EmStovg*N|4GE4NL4UaNW zcy&8(&$B8(%}1)k*4>QKlNLXLv8g~|-CJK@`739D=yVEsE35?V@}uE_oWVWt`)v;4 zm(PJ*yV?NP&aH7m7$l-o+7MVcq*x_$!Ppk~G{dhyo2~C^gB~3@JnE%o9DrZ%Baop>yeWx+^ljT9ZFL}sO1$8HOcD%=X&d#@atpH26q$) z``Moyeg!{f%dnj*ZLOp~c?NIu69GS(9uRm&_<5fn=mgF^f6j#K--F-i2;GWt_VJB% zpSbO1;D_>&VEgSiz%QkoTBI%P%vIXJ;1Ce9Ny)}&Rf8paX%U{S@=G0;_wo4URn5?< z{mR*=nvg?1^fWc$6AMxQ5q>l{P~$=d5`INY!*2XD^y@$T`{0K;9E|hL)Xsn0ACcLh z&en$>e$aES75up4LDgS20m}BCrAE+p$}-5ZEpxyO|GKqD0$QrSs{aP!m)$=Izul$q z%UKXjpB{lt!!JI(M6Z*3Z7qHY_V5ZB4j3l1$?l#>pFmi)bx-c>2}B~b;OG9QDzh8k+^}aX zX5xno7+~pYDjs@SEuyUV_UK|T81Vh=Il`IP*^fHMbQE94A~PT_CyUydGyx7yk;z~S%{wl@qQ=;P%}&iL4*fr3;W1BPxypA$zU|(!!S_&OW^LWD=X-I zl747+;vKE+4yj(D@TGxI@H6np#3Auqp>=R;G1hKrj!-wO6=hAApk;8^(dWC;g+NUsU?ertm$g`j>an{_41p!N!`NekL`{pC|% z>!~ej!gY<#K(MJ|05Fqv&=MUC`xXoj!}jOXr%%%JRQ+bS1%4^63>&u`xxPqjD)_ml z$y2WQSb=q}z2MaJOp&J>Y@DdEqS~h4fM2T&)#9YxqTB74zlIecnx)?9z6d`I4-G%g z1qHF`3a5LI)~A9cPVS z*VqRVPA0DUbPiKP-{94@iSShJnRnXyoRBxaxw#n-uj~#j$gB&urpoiiyWPFTJ;Bv2 z;>?ph=eyLb&pwC1P_fqg=3>_WmHV9y(N^bh0I2`tuePWc8WDo*XqK!+fuMmOxA}3! zJDo{e*Rnd2Mc$BpH!ZL-+Mo{P>e?ahhMxemN8rbX=Sz+MZjTFo z#|?goCUZd-GXW(b{DfLX--UGi|H(z?8Zi-H* zs094r>T{JR?Ah`FC{9%6RhFj>4=niH0JQ<$O-}(-+18MUP3hQEkiZA6PT0{Nq{F zZ><*G-xn!!zoaZwm0r!fx)vZq6z328U9jMZWhb-QK9<;`&eHJE2V=oo(-9{%6Fgy=nN>`+Q|*Ye(DMeON4lL&+|}+ersKq^VKNLcVAQ zD5eofBbccUOEa^dd-h*lRbLQlq++iz<8p*Jd-6g}hbY$--av zR{_8F9}X}Ha%pqsYz_-oieXt#+p}(HchAT#XC-aXdfUb0_!tk2Oy%wl=%C}zGrM>j zc-=u}gJx%|?5YlIYaYbF2EU3l+id0sgj(agDm#2ebCn2l2%9W$4PeI$!Y9M>RUX8+@;sBO-LcYvz=MpGrFlR}^%{`JZ*2r%3xmrIq}$(}(LX zfS<{8cul(lziQ!%;pYXl9mT}I7UL;?U%l z_q3e>h6(({N!44)jO^P?cxkoY$;tWI ze0x9eQ!ut`xw?t7E#0oRXeaVisYjdNg*Lad6KbvJ5PtfKusML=PO}LRep*+lzyJUs z07*naRE|1RKQZug_?X~F4W@V#`1Nhf3cC)v7T`DNNf!KYR=*>mF7<>#eW{vnhjHNT z*%(3MZ|>+9BV)lCRo}PZ$3fsD@Vo8c_xjuL>&`y^Cj5Bz?pSfuP=0P61Aea1NU&;u z26#>N+2Ge#g;{Lt`cD;NI-jck2)lwGwKj#h4T)RwzTmgc-lyTWxw&FQJ_5fr!fzwU zd-bY^-+~A<@OwXi-_iT`xOD_SuD0#qS5}8CFDm#QJq|y!Z!L*0+3(I-Uw7D{M~0~) zbYLg|NehG!n2JrLa}+l14>{N1*EU6fO;zHxCv@Oiq@QnXcjPl`IRbF_h|izD%hkW* z`rlPC7W`sqH>%!#l&}5%*I!G%0>e4sr%I5U9J)HK3zY6m4yGPXGJ*vHm{16BQL(L3+4|1VQQR&Z0OIAK6%$hDf2wcAe?b-}N2=vvUt zRW(gl_xAQE71eMLfSgYipABOmg3ngpsRB%k6Kfh+FEWyoz}()(C*q87 zXJ^yZ>HOksvgcgSGq7}qtQ91TcC3uk_23ek^@pS)EZ)t(p+26(;v{-vU~wmpR1}(qL0qc`t0k(EP8RumD^D9pX!s<>mFf90)?+pAj9O3d&n2Dfyl8cb zscw7r_)Dv^L9hW&KERyO*4rLz(s%Z-YyU_Z)2m&tafOcJDwaE>fT_oReuq<$o~ugI$5EnAAJp}`I^C@p9|)Sn3wGj zZ`|Sx3OOLG0JKzweC=Yai9r((kYT-P)ahS_ps(DT~ri&d#p7x`kTCa=QR)WIa4{~Z(w~# znalR}wiet<>1iW8tHZ154Fb|`h&*dOX^Nj=XS+L}DBM^9BI1l|iD*W^64}`gKj1c{ zeX0psnobV=hMqs+?|eM}tB7k^A!<3T&bti6PgRP5-w8@LuKrUQIDp>=#+V6@tm{7P z#0OX?v<)5|PEnCfPHQPsvw80W;gluoX;%*5SM^`b3iKMnEy&bqz20*Gzhl9#*l75*d0~ZG7eWKNDg-wd;kR zu`e>uMfl}iPr%ISP#{+7S$dy?&uiZ3(58KaANRZme!|@n_{m`2!OxI8TI=Aq#yTyv zBNIFa@Z)DhU?_ua&U2~IGx4m4pO@yge3&+1?0cjBvT8d23Vq9W zHNfS{cYhb$J}-mc--TJiPYufJYdiW_-+4{#{g)Rl&ZVR+4*+0ARjY~FOb)mv<9hga zzYtce&xB zndvzKZ8qDVTeB(r={Zz`QWGlIgIw-ACufqlu*$22elhZ~uv23cCI`zx5R%P|GbO_W zmDrDD8$*d(%GhAhizP8sg{t}@AbAy)m+p#Yv=+@W-E4d$0IlD~H}LQI&{$D-l*zrq z*mnL0bg9y|==RsQxFz=me?1D@frrG{pm?(mfW+9S_xVVLSLg2j_BT5Hgu6S;?p{8} zrUt+gulRJA$)3YI`^IMos5=EEXRo+_nYJfony%!O1*)sWUQPK_LmGKrVH*loNg4jx z512_G^__nW&8+8K;rNbIzubd!de>VVbeMdFKA@|+Qm0edjkTbHQz5Z%8MJkG0#D7! z(BV+@3;YUX!JKQoHK)AT1mP7(zOJbrCx8RK;2wT2Cz9o9e970&cu+J)JwcR;v>@oJ zkGHE{Ts-=-YN6)*5P60m-=npO=BDe&?}W;~|6Mv%&in{Qwn+c}M6<8&CHOs@ zK3rpSEw<36q@x2+X`Whj6j5d1C#7dM;4}PyxkdOT(xv1z)S0fT;W>sMn~>ZYVfd+W zs?rQ^a~7Ai!&Z2^s)Q`)6geF{Cs=6Tj7qHkUMQHbus)Z-Lr{3rS{a4TP!sq{9;|lWY6$p1&BT<$TAy5;A;wcJPOChV=d#s<(5led0-+6nZNmfW zM$1`xWoHjRoKWqj*B*ZCkQywh4+%fd<~sQK?P%IJ_|Umy1ssNbZ8M9j$%Y_C73!-@#+>a|Y<3-6?*Nem;eM>CpoGjxr}K_#KVl z$0?s`ydFtHX`SN?5jiiZ;#50^gUNU?3~QZj;Vs47!ZG}EG>ePj#o?!xkui zF|bD(az6M(4nAox6>=tBr}_5v*I&O}zm;iE6<^5q@b&Ajzj}?4t1xAA5_2sPwC01N zn}>ho` zvz&oBJ5}XKt2=xSt9v)CT{^v)?(Jb-$UIP@5)^bV6pGR59NkVfH`xc}hIiz|@JeoE zyK}z3J-@*Okcfi7MRU9vqtVWo-`P+3wzsPmlqhC42O@d!rV_6x*^_6_&(F`c)7A_r zp$26RC_ACG-H(k-G*45@r3EU4c@pSJq1GA+a}t6!Aq?7^tOIF!*Ar6vX>l&^{GjMF zgUv_R=j7)PZ4-m0e1)Q_XPPY@N2c7g0Ht; z-#x#54NikNcmz^DUsnsXm%ixzaJUCh4L=)*%KY@r1RcEW3_a5~PzCZnxccr?4T3~? zMbeA>eyRjRD_~LxVil+*N4?yogJ`Vn$K9;2#4M&}V8;rOHDzi&dE1fNB4wxboT3{` z!Hs`oz{?6GF6dMSVHcHK3+} z!IbBK-U=9SMYfW5rwHf~UombFnx-|jtx;OnBBW^rBr&IR85GvtVJ$ES!OJ1GxRV%~ z*adNHRQ~$wmyeD%VSQkpR$!$iWnTU6qI5VkUJmX8ZG-}bN`2^AeLd z30??7Y$&CTAscNBVFO>c<0`DBlX(?ht);i8t{5_amR&M)Ru z-U0-<<=M(&}+(9Clli7Kn=0d;vxdYGK2xV~y_=$vQ zd{)Yf(^(q)G#O0OQ%i1D6Snh8?A+j8Kexr2y}obvJ_F;Irt*re=fT9o>KO0D2Cny$(@zBI%QHW~d37^rB{`ke4M!fFZ!Nx$(c~ z`V+%a_1V2wNc6O>Zoy&r#onO8QSjr{&HBtH=f44d<>uz*hNivw z)%3spx9RlehwbhC?X#=Z)gRE5oI|vNm}^&&60=wo>d-Q1JGZyDsaRp$H9lWlzy%0| zVY34LceB~{-t?lY*Z@8?KlL7l2JV31RtNYXvd1CeEi(V%JIea(j&sz1`}^F+7n?h) zG%`ziP+xa7IosaGh3$RZC`9UJC40gR7-OGUxxas|xHC`uh(!J#)`PspZ&turd&N&1 z(|>ABP@>AMQF;D4%0<=EexSwK%>mmpxLnEGYzuzRxNA3L9S;BegL+W3I{`oK{p0Te z>E+XKJWcQL5d=MC0l)K2=hidTdE<#UWvCr$& zS+E4vA2+@8R$`F=L&p=ZDeUw$gH6TZ=3oE1sUcz7p8jcdi-5O5NvE5jsrwjQ&9y~; z{cFd$L4;X5u&P1V(IC~SG5qjd7~|OjC3N~)FqPgAlCB-Q@~&@-?(XV&?M(e#>oKQ8 z7_0lpvLl|y(G2oU;pu`d#)wSm?C*2Q=X(qxFMLpSrpnGA$);wAZ`E7FB%rEyz*CFP zj^-uT`sz-sGy%IxF-C{(y@1zT5W8rR((3T#OLA5Y-(Fw8W%Z<{q(eSc1{VARwVYLp z^Q~&U3PIyd+|!qRMirP=m0z?l(uBG|Z1X~ViG+e6ld_ho3-gbk=@MjGiwzHi*(bRh z2ml1KDq-BSN_Z6@YCl-_}xrSR~!65GwytV z0EPoc@Uh^BR;O1xz@pB)GsExQJGdXDB>mwBmVtmD`k&}!-mFgM+Y0ie2au+CXgXtK za4x4Oe%sqW{IJ~?+hS+m+11St+}sC$p3*n>x2IE7cBtQgIyXN#vvZawD@8R&i8ds_ z#J1iJFsv58>rnkCxaCxv*SQT!1~>Tav)Y80&pVE+{N&ddbynHcDiLP_Tqb{jpTf?V z)*|?MGDs{H*vKL~^qz5*>==GSJ44UDpvw2u9I$_e*Xp)~x|}kWt-`Es&?_d2lFweh zZr5>h`TFi=C*Ocyg;fv1R-XwlG&=jy;G!5NxC{JfeozaP$`~|CRj>W_w+6qE?B#Rd z>9^lD0YEl5OYeEyzqW4}ey#uuexpNlBK$}<3R!G@uC+jDc{;OISoh<4}37=9Y-#oo}tZ-h3Vvo=$EAqIDJ8J>f~P0ZZKw&m^+ ze%h96_<0*c;3v6Epk~sv#eT+77xph1{Eh~ksC#)qK|kzH4`!`Sdy z?b^co&NztD4^{{1F=;_K9q2P#+}Xke&oeyzkR%4y_uLkK75HRwVBR(5E6i!}Zp_*VY_bnm-vhegd7Adou%DQho!*79bQw*%xZy6IcXAs;=#b$CG8G)XMqbW z7=qvQ{+@O`28Q8t@ zvtbZvFeo=Y-)o|k5X^1Q&fgA*`Le^!WPj%b&_6T%6A!cLA@*=qS(dw~BMJ(gpSSF@ zXIm@@K^)|(c&rzg_5DeI4B9*vtWV9LV5z8o-7_z3@XGeohem1#Km0|nf7bW(d%DhO zp-q2BVQP@zsbhF%iI0zBmGRlWI#g&`r|0C*E;ffD6oD@-y;YH>W+iwBa{czdU^P$W zmzuDUR&}D@SEI9UdsZ7X>`TTA4^(y==3k||$k=X+J9jt?4`hG_gvXmz?`>`zB0e*>v8}mK-F4o+Zl9kTq(=iRf^SFVE7|n7}W` z|E2AHUgOHMH1C{$L5o~^GaEq!I6&a+3=#*ZNe$)I4K9*J8Vs>$gS2hvNoc!pp}D*; z3!|=R0@V;Wc^7vfD5#C0sfBXm#ZcaN)qjw@-ik}1cabjn*2xaf&ycwU#7GIFf%+mm~ zU~I_29r#svQ=zj4*#Lfnf@kUP4V2(d!jBS<@Y7Pi$osJeXeN4z3eQN-I?%Kck+DMD(++OGaU2LGUu~~pYnmB^=1d5_z-gs zNTIuT%PBAZ=6$t$;5Tga>FhxrY_D#}kORMX0iZqy{5-v-I6)bHkA7gluMR9I9~kfh z>7*Bxi=a|uKCpE6^dh0t-p}F?C2z6sLD9i;mp~JK)^nu{I)vYoC*KDAJi2UWtYLLDc*2yP0XCm(Yl8VaJC&z_G|P25$zHge%X3=dnU56gx zblNqOrfoYFQPFkmz}cn7SyRISWYl`@+PyfLqi8BOXDUDd(_w}n+etz#5BC2Cno!5_ z3tbr=)^_%K;=4s&F0}PM#GO_gX~^|>h_yC7;E2^nzQPan+lq$sPtJP@BE_KT=;RIW z6xxD)FJ4eyx{z6vU-8HAPtB_;sg@0c1$KI8GS+3*D(Fz%DaheF3z=WN;gB;09ZG>y zhLyycM_Py96aUpC&v+)ff{DM(0Qw*r(ea}@liU3~-Ym>7(FN4fA-PY|!I|`P0x+}d z2Hwc;8Rb!h9`sY150Q2}6GqS1XGg{Rd4_N07@Iqx_wEln=m=#;_#GWF@W69N=mK&R z?)m%MQs#sL98;})$320t+T+PE{OJJ)fsVbO!*>MoRN%zHlBaPRVF+Ca>cwC*4?4>u z94x3-%JX8qXbma-W@xdXsXD5FR=vt^iN;+NL1hJ%l#4>DP{_N)IUW3_9$>^Ce3w<8 ze^VMi!&mxW{tGs_i%1{-_y6V+Tes&(Kr9}TRul3<4a(|L!7suN(JBnDXo4}}cX9F5 z_7%D_9fr4Q?AJ;c1^9u0Q?RdD zZKl&j)A!T1X=tC}Spc`iC^Uj>4wt9)J7`5M)L_fbAJyPsXJ5k4I~(RX&4p93ZGIVo zPeFIVZ!{F9KrpAg7=AI?g?rw!T>9G=w6xUlgGWSQGahymfP6N3gQiOW2mfSuPeF(Q z{6f+3zv@Z7Rkc+~!@A(<$B6P$?yTTvn2q2^Q5o!`-Q_3Y_m$ztGH3;}A^aRBpQ^kc;KyXU=;TCts6A=9YH#h(*%?}|EVR|ww6Jn=G3^0y zXjTb+X9rkaOZYhmIAC1ShP!$&%r0Snso{rH)i?Zm^yuhxR^WG<?d*S)4YoDcanDDa#O!(Cs_iSR(j85vd47OVd>fRg# zqm6vPUJ62SQZr+WOS(Db;gs-lyH4zrK%>8f|B8+DZW@l7ErSTegts>NNM?4v;AR|MDf36;uVVFD5moG+K#W`a!=*!j@+ zE7Gqa)cVz;qd5i>YOb19Kk2CSR-0AN&F~X+2D>XfxbC~{VgdCBtm5ZpI&HUC%|=Tu zP#%S?^wrlGTCK5Yt@R%}gbqBY^vNkNmtDJjA@r&D2fIq!0-)eg(TFy$r2f;$vT%oD zj!f=;hq*=Jhn(VK_|fwTp%=Q&KrGW>tof>~?u8WIeH7RuP%6gcZNutfK3k?ydr+C7 zl#fRZlx0)56Xk93H^u0QM8dGrlLL(xWn2HYqAGWe*xi7`I!~B0%m6{0GsXs$O^4R2 z?|Lc-_wpt35TKJn4yE|%y|p>-(=Jc~umCnO7|Z-L5eCK=IWdop-aQK-8f(VjXyL7k zq_DgMC&5rs%?Uodjp|N>LxeqAfRub#ZIp;DM;&z^AG$(vFu^Q=$SK@)mt5XNE%6Dd42{1mv;{XWf-eTO0PuO1;0>&f|{vT z*o^5eJ{Kwwcg6m9z4;RpE#Oy7ED1xk_pHGpKJF-dDURx<7)_nV8GAzqw?2JJz(s*n z_D@SXHxNa$jJzYhkY*Q1ISn}rxK;3z9cBbSxIqQK3D+8F2Lmy6sD|PIeo-yWsC&R~ zbij1Ua2;058e^LHX&Xx*FyI$+U=Ak%Kj6w#Q|d0@7wqel_TyW$@6SWcRKc`clf};f zCD?~<9iw`4K&x3CHk(beBKtOIO#+1tN}~O`Z<oj~IPC%rJIr8@0}s#Z zq{{mm)6Zm>QMdtpy5nUPdyl>#x_sQ`9>;IF#UaFCIWZFPa{vG!07*naR2>QOnthf1 zMer-el$tF96LavTFSrkW6z(qI#_ui8mKuJa{fFRZCC3m$ z1-}Y?hF`VD_IgOaYb5tDAJo}Bzz=~27(3PT!{{?AKjr=yc7WR@>4)zGrBi%RhE?&? z-pg1-JA|Kpgx^yY(X%feSpm}Cd4@ioc&A?9>&U7j@F4mfRWj4ZN8!h>wF|UnpX@KW z&nTHy)S#>|*bRsk4%M~u+gnY*PPKR+{0y_A*%E$Fp6r32I&}qp5`qPOn$V(s?xE>Q z_V3{Uej0Hm3rjquwMVf4m(QDis(cD`HT>!ts32Ft&l)c2mR6TA!K9)qeB_m~*Dr1( z{JtH*&-CNSl}PGcAnESq43={qQzj*-WwM&>5)6xysB5HQ6fNkxxZt9_03(sd--Hp` z)OyfyG{fMxr00`RRO!+hks~q>2ZWTM11I$<8h*SL6FDU)8HVs+7pcvshYNo3s}W(> zTu*QAgSlo>%Af(k!^7s{!-q*nSEg;CUTizLxhWEn-9nM<@b1nonX>aJ1e^7nukbl$ z-<$PX)6bfT2VgI}@Mw#1FrW(Ma&PGl`3z>$Fz(Z9N1x+7< z9^j`B;9j@r`^^*#BwVk6xGCC%cvm}b7n6R4owx0Dx@i_|*G#(Zu$fL9Xim97y~-A9 zj>S(V;srmb!KLEtE?P1(=soVR!c^tVqW@I(j4G$wZtmh~;)#J*kFb{H(_2c~PYaE- z^F4ZeImo&kq{^#TfwTcbf;q&Nw&=lG8nzSNl#WdQ3)`l>F{P$Cf}hKtFP0}LqXzu^ zK5lftBhl)EC=S>a4A$5~(l7oE+zst6zOMi<*Bp)5mz*ni>Pt-U)M{F=OjZ>H*WbNU zj?a;XchA0h`xf{D`&9mnBcgmU_F8BBV8jqYxuwU`|H&z%zF-(ar3^W|jK)oe_WY46 zYXLvK5|dmq(ibDIi#vuf_j?a2H|svn00o|O4kgK0V}#uhnQUMY6l2hijvk%PZf|c- zfl@G$yvkG{;dpvLVD0Pa!6dVDHsBX6LjLQK)?t4+=NkbponwL1)|WUV4HtoTTVL$9 z9Ker;7JwxXSoZr#0OC%INBd$5@?>UFfmB7zU{n}vbR~+IdDkG(7tT-~gCb{9h@}^Z zgJn(5eB|8grHlX>)NOFBbT*hvzq8wx_#p1X?;e1Aai8;fG*)6}ULm z-^H9?#XY0TeL|B?)2xSSJ}x2R_6BY_LRs|ikh>cKelT^$8yP56mha*zA*5Fo_#F=5 zN9@TW>UBj|%?N%$Ik-i0&wCsL_Icd(0&`m$R!Ipzszw?^nbq^Qzs>{9c#qK3I0Df% z8yHYDsYSwa-eS2C)En5hTJ>xG%l~vtn$@O5Kd|Zh%?8R5LXPxYY(PJ*IGS&p$!dyT z-n^Y|nr=Q{PyueH4akVUD|Y@7V}_pteBSN89L{$E)`recX}=17weuxvk=ezojVKlT zfH#yZ{Y<3&5_gQf$2aYEh(|q4<(Q#{JW^<}PQL>g`Dq@CNbKKwKTN0gr z|JkwO$6fJpFzjIXX>N?&pZ?qO-vYlk*BobdjX7uhid^5v;HPuw1rFg?x_TA-9CPQG zGZripeh4ePydQp#u)7cNds`L_iC?n0Fy+TH@7_Jr(j$+aR_;93-6lC>)=MhD)NL$q zQsG(Cso<&p-`Q)v@9gXhI~#JQXZk{8dC}hnKm477pE`Zo2BE;aG+-bqouN{GewU5| zu21q}q|*bzZ`9Kxr4DBI!4Iqd@>>nP8h%eA)R3VE!SCT-_%R=-ULIg2OnJGHcF_uN zWu6O>=jouCoafBXKozIO2uz_73;PT|%>-2mvxZ-g%sMjRSJgrX<p`B z%<0g3s6o#~V?05EPi*7h7ca5J@U#+iS6)z$b5R3jUc?zDJxnZwokv{{wI9`Czaab& zRVZ~)j2zPrzj8>=K}%NO^N`cCTl@;;P(&O!u#pk1IC|JutQIEACOCVH9*{s6p(DzFeW5be?(V7X&8Vx=XEB z_xEb}m7VNXdPPB+by{I$oi|jasrO`E!OcJx;rDjAynX|Q*7l$wj#A z1VY$(`lmp7ie0$Fa;6lY-T?7f&2ur(&Trpy>%@);rYt!cJdvRUe0vzpJ!35qsZ0Zl zmx#YdK{G8eS^TuFi#af9cTu&}cQE7-V_>2r8nZr&kJANBtH(I}8_HUwD&kP~2qyf5 zJ$gC$T)d-l#^|K zd=%tj&qE@w4E*FNj5tH-QwxRm#M*_#sy8@-AFnfo4){6hj<%upJrp0PnsFf$^|MT& z))`H5X*8btO3`^hkDWV6G<5m8>Bb|_=IGu z85|r;c!@xKNyBrwK_XA*s}W~QbqH(tMG#&is{?F-yx$Jt#|mZK0qEiLi?12w^KOTN zp5Z#7O6-Y{Q6P=hou+z5iPAt^E*0%lowL%2{u^t!nvf|q3-)xsS%;r*5`HXyo}A#! zi<6kusWRsd{9szd6*1AID@rfqnz&aQc?Et{fBq*fN=6p4JsYes+UxkN78@Py$@zhV z5qj5G=u5$mrO=q`qM6wv_!SYzJfL7%qwM_j{QY}cJj_ye@Jxx0&d|T-GN_fy4vem_6XKpLfxac z#XHLT0+R8}Cz0awBBQjYME@>=40)Dv&jAR{WQi@cMKSKY<9kozv}pz*26gjv-Zsyt z7g{VUK2DxaRK(=2bzlzv@D-{=l7rFX^AKw${|W*%C|lV-FSf0w!}L9_tH$X%X@7G= zf&qU)x1rTVyB^r+Bl=kL#8))X8qb&3Rz0~vi8RL@><{(Pd7~f0@G4g-t(Qr_aDMLl zPxK?>qIk+$C!H^bV%KixJiF~SNd2kJ*KHRo8eLYK&1T9>AjhF$#V)L!%Q@ILUw*w^ z^;7IsSjyxgB0}@c=hM|{0|vf&)lLCEWa2mdq-p1`wwr!3fi(tWui?y82p++AU@&MW zoE6ZaD2gH}f`U5(UPcJiS|la@2(=gVeRt3$4etzg1^ zx0n<TeL@b0<$q?l5;UPppS%)UP9@IL!3(a%w3xu3)nM9O0*#UO8!Xw)1KS>o@++J5Vz{-eF5i#f zN4=LD{1kn+?WI7|5)NzstRVFc6)ka1h}AUC!>8X?=}OXYzTINJC`XHK85yu>|Qz;8L9_Wfdh z^7Z9(HEE`_!=U{qFXs|JGTM$(=Zh1>B1(xLY6y(s*S5>}ockSUi>XSR zvA-{l{ojNH9e^KJCym$Hs)975G)gOqVSKelK2tbB3Ql_TPU?Y(>v6 z;pahT`Bu?y2)}|r!_Qi9AN=ZXARBh^?SmgjR}Zp#1%6S?44qe^@GfR1{Nlez_9gth z-S7IE_RmcH=@m-}66Ig10uiOKDTr!1s6-#NVth}}3!jNm*Rrq(fO>Dv{xk`PYOla=)YdCM zvnU#AKXoLB@QYo4L*=KHep*^Y;86*NQnOv9P6KLXka}))sZ(WCzC-Z)zEXwS-2lva zFFVaK0$vzp!t)7%rYYF^-2@jwm`<1P?=<$ByZxf>>Geh^g+>5A{#O3Vh_&N?sM3B< z6`ha)6r)g7>J;>pXyb17JM{p=`pNTFP3-zj0_tL4+4(Rv4l$_{=+gg&)r$I#eL(yT+qP>~xMSN+SF~y_ z=gp+)=1a^=Lzxpx9lA~tLutNk*G~IMx8(>l_*mv07v^Hd44Ap;Et z>W<;{SapOh-xBb<R5G;C+3)+u%_B7xS=Hv*) zXLS>E3aB2&`r52^ezXyYBjCq76NQ4EKC%-?=AGLM3iuVf3;uB3e+qT?Xgu!|fE#!9 zT)Y&sRKP5l99UiS>51o_d4wkJ|Tk$5RCS< zD77v@H-aCob6n^hCU+M2$<4#G-_uFP8SLjw_yKi>AK$>U8k8wCV#;;j*z%&OVgWy= z7QEpv;fD^Q-~`9($idjUQqac`#qvb^0Nwu+g|Z4cz*P(=tBjvelxh~r#p1|& zx?l2nqpE&eVlH}!DK`BlN+#}u-p_zvxIBm3Yb*2(jW30CKL>tgs*8*+gdy+1G|z%V zrP@{QtQ8=19;`Ak=2hk(fakmLldw|?Fz^|h9OM`c|BK=0oA$#m z6yk0X^yBb@+tXMo9!)te+1c|Hmk%Gl_k_-v`x2$fsFkX2iRHHZ$dn*sd@5O5LbBxO zNh_S-;xM`^penvjY%*2%&M60d;``g*&gR zu30*PRiTqywBEzMhPyjOAM`+0MK3;l=&9$F=tB`v>_a0jztu{R)MR3B4M`XU(WrE$ zt>p?;MxidVeVo3D+gOHl^c>I4vD>|4qYvSEt*Y(j+r=TrmaY30HE7K4oN&t#fr(BZ zo0Z!8{_12t#k4c-bl6@l=bIJa=L18~I_&l1?gyA%HVqcqzJl$Ak1Sw!*|yE%@)iF$ z%m&3^>=s=_*hHbvqM)huM_$%oMaV3K`g<)dh08OyGn7CBBNAM9greuyuP)1e_cF{( zdH7(T)*r=DRAHE7hTM=Iiws~56rc#xJX6mNBj}1JBUQyt#==t-rmLAXivlia+#W?so@}a>RAm zHVr$HQ)8_&4`@4#?+~D<{urbn=A;+B5ikM|A=!$DMJUwgoVRAQRmRRia6SvDpMK(H zvSp!A%(X7?^IT3(+8hKKP}8IVw7?H9)8tQ@RPg#TjWcx}m#DKG8O|5WOXc8M|E!`7 zdJgaBJ2>zfN)DQhu%m-iI@R&_-$y2J^3>b<(&<8cvFm8YnR(dkr|;H#(20Uywcy>f z4E!POx7dXrcKC^YL-;KYo5|!5N)FJ0CRDII;Aa&mhFRy~&V=7Y@WWIWz>0IJ8F9xr zYgs?9$T5EJ@c##Z-m1Z17xeos+YNtWZxM3scsu)?_@fX|ZxMrF=WlVfUCuZCqMNqM zWjh7lXocZjq~9DJKkRouMze6N|jpoxW<)C%@4E6Y$gL$oO$_E!%w+{GL5~hAUES>GC{!L@%iHURqlmW@oNX z1`MFK3Ok7#yraq&O? zM`e47wp|uL^+6-dobZ!VCPEMwlx2ZQPjSKC1$j3ksfU6iSJg6Rk4RuySxYJwamV+T z+9u1G^^j{8KQr-=uTTlo*>#R@(eP@HCu3JH;K%60Az}{h?{O_qx<2^^t?xtN0Yfke zNJbw}(2VhAq#Ru|8h?hTsroS7`f$BQI30Tw7-z7nGu9X3-YsTpZZ!jx&_e{l8y}2D zwhk+&Ct#Q12h=*}^TlD;wo^>BW{Zycu}68cL$;mcuUjPbFsrjg0C2T}Wpg`Saj_BT z$8bC*xWL)jZshMo!2JZ!L!qvPl794l5`h1t zS!dTOZQ=mjG89i1MdYEBK>@VyAA^N(Wm= z2Y0DE81@%wy4fvK48tO*aE6v)jYmU{YAnj6+yUVvU<}fXm;&ci3p5T(1SCN>ht%a3 zt4A)i@H-&58n(+*Isos%AA9|gbgp)++IMa56<}o{BqCw1y&sW zzs0X9H<*nq4CCz8`*gzUlzxv`@eDebI%Sjz6k;I@J*!hiQ|m!#N>c87lsyem z>p|~*5b^MvZDxtlXk6=#PYko;`6ysssHTZ?Vp%Qv{caQ~!*rMSD zQFm@uPXmm%8d()$pftY4=>Vr&eODa{rZm84tTi9Z@huqB8Qs1?xV_~a-2_4p#dbNz;-c*q^E!DJLJu6ox+1JZ zLdK8Z=5y{~2go{f4!Z>yILEtC{cM-yBI19O2J>Gc!vNI10^&|iupNRX7~5Zpi6wL% z0}Z(8_*j7mQID(sDw7M9ot&Yb)N*_>pBMNcwlMa4<~8g$GT8jxc+tL2D?R5Bl5qXC+C`RWm5J6bDvSdx%&O_=kPDZs51Q2#7@)ip1GdI z`7-c-vU)jc^;xxDr`C%jdVM5X zRV)2U)ih`(2znSc|IHCX?RN zy4slFDV?Xgbj|sB-$N^C)IkgVV&i+Y(8$F~8e8;tieR{?LaF}6Sr0tRf@b6+f_r5N zQbkQ|8H{4ey(QLlQre4BeAmEz%O?DH5di097KU1-5uPVR}L-y(bGj6sykT24`&^5Z!qL61Aej7Xg~Zo z_!B>;Q}+JC8iW2GhgEYg--e^k)(yIDZP$Q(%huIR%)_RkrQP(+72zk$K?*MB%O&(0 z##Jv-2fdnNpxJcAIN&Qxf| z>nLu|9#%_$)Vi=$VetI|O3@!iwAOJ~3K~#Ohul}p@*ZY6HP9m9j zeEjAby~{UmK0}#O5r?GU5PnsduYw;%-P@x75`LC^FA1>Wu@8P)HT0|uxUS(x!%O%+ z3;nX}Nt6kGfwdZbsr~YN0btxVKwvzY2OESuxqop{nH@8`jdc+BAC;&>xwA_C@iS*~ z3Vx3~piJFA!cUm1q7S0q{qQU9&syc-JchuG;FoJ_&qMcl){F1qKKK#*q6_GGpIY0l zml<67uV7~{r?%ea_X59w<#4?b_@yD%E~^@TdeVMS`#*>9!&4~%b6a~2Kh;C`z>hV} zvXx!#PnAK{+e@!Yz)zMI6(hNp)=56vQgqTK)F@bHBMyQu0E)*HazH7RMiyrls(Pjh zuatmF5W0+64Y`)5)ZzHa1bbv{BUOSuq7THWIO!Rl`AOr_)X|GQ4go+ZzC$$O)(tFdsCrLJ`xB*MBSq}iu0x9$^WhthL1TfVS@>MM?eyOaRx}@U%^sl-_z~V ztyVxF&^Li@Z92u#mx3QwKTz1smmLtx9$w2~Xtc6yFEJ04*C7Qrf)x6B;IgJ%;}S*V zayiFjYZzm;Tg2Tl{}cP*Iaw5iQR%z+M!iCI7%4jOC$y-JzJkcJzJu9CN%h+QIT-e$ zWkooi>l1MK>TCF2IOPQuQvP3m&+*h&cN=7QyB(lXh2_wo6>WFt(CY+B1;46`7T}Q1 z@_1{WD9#kQHcPQGO)cfnX$9GhIZyS(=duT|`i=3INZ^$-ahiWGW}CW~$H8p)38M=I z9HyDQdneQ8n}7Y+H<4ZdOcf&W$|&}Z?DSDxkY zGnO^|Z$L}vi;iBI^`Zi2P%@`~M&VPWGZq7Qb;Q9QmtbDNO+&PIkE65K5qAiy%Et~O z&H;xV+lsn+nw=*u3Y<4?UyPNYPrP-0fag*LrhbOb#{1R3;TlttP`bQ?~bcJ+9yv zYEU+rl6VLJN|!PupX-nEnIs`T$?ziaR?TzCVVnNw9e!NH?oy|ld8l)OE0%wPAESSy zkX4_zEdVe4yqFMvlXRLY?I$Q@xzc^Tr}w~*O3qA$n-kqcmRRw-`kt9Vmpvy#_^FU9 zPYaZ4Njxx>m%I!3;f*8s33n`dRtGFHd*DY|2iR2bGu(tg!tcWH+g>dccvy_!r!=76 zr-t7Op#0>@mx)1Zo*6T)tIXA0@H(;X!7v0+K zB1%Hj;TBFGeebyjsXn;Rk7qwaS+c0O!J^v{ zg9>g0zrX+cFn%8I!0-4t0}MRO!*s>?&I*2Vi;k&Rf68y!k9;mD>VJn<7~#~vzLCrG z`YlnH@MGid%`W^1t1|P2eY^^O2A2#hHSj(PzY3XyGAX-zDxw;D1Naee+T&N3GX**9 ze(=c={8-#HGKzYa+UyePw!MX1TJ>r7miNoHg^Ei?@3VUY8YCG zInMeN7rCy1=S!Z?cW3k+UBJrZLf(00gmoMd$KM*?V|ba`d+HGe&mIoomrShSHzoJd2QBWq(|Bq{)9qxT68!$+(4(Tg)gjhDIKm#2SVXnobI%?;pT<>5pi{7g z_XR~rltLL%sL&}%CligdA?}T}NQZ~&+=U+0zt({22io09WqHILstAd%F zople8!2#XI`vQL5;wjvpIE^4&mOJA(Jj9l~L)umh#k@A@(E`*i2NgTDxYl!E%7m9I zEG3fDGmD#ESqpSAxwl<#gqd~}kx9y&FR<64og>BoTMP1efE>8SX`f`|bc6M^%mQ*? zHJ+Seh#Ac>UUtNXS1Yb5nosd{2`R_@4qdaF0-5g2!Gwc(F`Mb~1cp-}4;9ywleWY5 zTfS5_&hgAoExBD%3p%wIb+d)lq#_53dGZ09dc& z7Kbc;;$z@1erLAuSmb1sp>lgxh0a0jy+&Kz<=ZWH)@Wn-mYFbqFl-` z)O^Bw0*M}-3=o-sI8J4o!C9JMj=15SH!1uuR)X4o`~E#UeQAoR(PtOS;1QH4Z{Gun zahz+gH9?loJK-0G%(B%X09Xz$FB00szi-buQ8SC0spwRiEagslSoqm}#JV&JL=|L) zi6u&=<=5e_P=_x{q%M0hTwzG&yij4Ugyla8M`rZl_!;o?R) z79I|d0>AvsCNG{qY9YgzGJuQp)X0{#>sQ85O%GuLZ{6E-V^_vS5E9JNqpfM4IX zcsCRturu%a6|P}I=W^an)@zV+2_&-jCeq>Aeg#NQH>hTwyjX&b%OyOmTafhR1rqOD zxL+7_hX<5%x2gZE^j>i8HQk)}0LLj_k}?pqWmR;$h0Mcn>p>}0#{c7!C4OHC!jF1= zg5SvP;(fPZbl;eM(1_LfA?C8n_cy{X-J!Z1PS0KV@ux3Qy=C@2N|-jM zSkVna54r0vE190!67ciFBNagfpnLj&$OtCQClh|EcM^#Mj2#>t%-+Ap5YPH-g}FVU2>3JKkKlJ+W&PrQYqOsNKaa{T zB~BzBYWNk^$Fqq!Yq|=Nqh&}{ZcjR`+#N8j;FnGp!>{B9tB&9v_+^jIw$3uTC37`P9_OQg$ll2YP|6$Nsb#MtS zBM~vxlPNxaC(m3CjY%zKX;COX+&Mw8{c3x~Eq|h8hqbY(3FGc=v%!GvoAsva`kR}6 zvDs*H%XGCyfpWR*u+c~XcGOFkbG08CVSrHUpbfhY+uAv{n#EG|`EXz+O+#G=1B)u7 zl!t9QUH2UI3H!?ivt0y7_&{NGdGX@wOKf?7|1;~Uz#_tf)4V4)Jg@{B1F?xf8eO~u zcRN3kRx`?!eMpeSaw9^{sX$!yVq2MFA_Q*?a?5*wBL}Se{|IAe ze2LMYMdMZdzzTkY*YdBgf4iTk|BE}vpXwI@euA2cqUr&b9v^le75+J#o?3A{p87uE z?S78(XX){&su|x)?UITQd*Bi0J9_5gXIzh;4!9@nfV4!RZ7<{a-teferry&RiM%Lw zhOzUWBNrbX9eq(&97VnlXk$h52psh0qEp2kj!t91b+L5@{DN1v?`L~=w_}apc*_yX zpg4sx>W&`NpwHP%TZwFKK{L^-Y@;X|nB%_&Uf@sYC=e8iD!xU!ugt+tSEpj|pMIM5 z8AB`#GdVnstP6$ba;ixisI=?m+t?qkZeAIL=1w6e#UwhjQ&@hD;P>As=WOcy9{oHt z@id7{@N?<02)>B7BbFD_%cKZR(VSIAeZ~?dnr$QY5o-2rYCVwv7H$E0^m9R#i9D?T>&EcIU>LYRZF|8} z2)OGNEO27J3d@_iW4x;Y>Jsx^aK}Zqa6a(>E)eU`dRPV#$f0l7O7_vh>z>VvkN3I$D(W6PSkZ zs|d*9*BhfrT zUldODCFvJ;>TA?Pd6S?gLre8H{B7{Vflok?a97Hm_@-`LfnO{p+JBTzUtn%O{Ia8G zO&F#Y9K81E-Mg1V_|XMwP$7-r!sZZu;7zUI_@w_S9?+2q)R-J1tt@}oZ+^kJvmN*y zeMBSjYP?cg{Z#NA+B%tQAHr`yI1Yh1fB$}`1!&C8X6FY7vwiThXGYVm!`C@O;;(|A zVU}7jbL|1YZ}-Ems5|ETsb6)q8Ya6y%mqX&IH0+QGrp2mGw@OEOgkVRy=IKB1= z7@RN@FAGZSV~;K%E10l%D&vP)X3e5m-`p@kkG|gm^QafA9y8Wh4h`dG+itI9ZQ(aQ zPceo$o`^j#|6ombx!tUqEQ}JFcnv%-Q>Zq~d?ClSSB$h{#-}9Vw1Xw)WQktmb~|l2 zO$}kcuP>Q?XG;&3P*gn?|Ld^q9eKU4vG@-Zj15R`>bd2In>h4L^-e%f<`)z~L(?6< z(5SOeb_&BM8xxT(mKFmg4_jPfY5eif{&J!qL^WTfJR8F}qrzE%sRm=ZTKF|9odRSf z2&0Esgkg$J{G%nc5`S5)zewP0&+UF6rQAa|C`Odk_^Lk3;3B@{yt1MPL))=fDvOJ6 zO#l{rjXHwkV=(Bt%zOD*Pq5mhM0WCnhn?BzspCj6lqMWcua?}K(Z@N)n>69=?TmfE z&~f`Qs`C$L@84tSr_C-3F&KrM_VVp}!ZC12Lkr8KqGGs46NiQs0hbdw3l1gX@GWdG z5Q>6da5ox=ek$VaCC*NGsUuh{E!iimMx5z;%n{YDh`6d}J^|lKT2FmGCD>zPb)@{T zSb?sW-(yc+gdy}8Gknx_;#$}Z^n63N5(brxz9Y zskUi@i-({QdA-V+kra&e5!7qq?P3>x#+=@qF@_3$tZ;THcCK0NtOD(YaP0LR-UGiy zf3xnW1%&On3?Sp^v9oFmPRR z2_GycSkHjzEj%&j4tUl$iNGy}z%1~V4oN*sCbN&z@Po~TGLFN{IMYlxoKB%9U!1gr zAKuP&56hDi^bezCN+&9q%k*C~|1Mtz=v1>TpUW->b`^CZ?45!iPpa2f;P=^m@S_w= zc*JSDB_q*SX+Fa*P89gX)dH^oS}3^6HCp<3X?Qsv!p{;g87TB672~~cehPla_rp(9 zU7#LgOc`j0Qe?t!(CYgL{2XGC4dyM2mNcOhaw*={aJ zcwhni>=cV0cHk%C&2GcvIfmc+_lgw`o_X^Ay=J`_fV=SH80~fK?0)#weL}YV1i#D%rVh+!KGA5G7$2>9D^hzj zta$&rYMBliXod?lUq8BI>GF>MVEc zVMN-^+RqYZQ9cb%W?(RkoH?+Jqsye?pe5_FD8L%UPTd&_GTvN+&;L#OUY{pD<)qkG z;jLR}ESlbtQFk%Zsxiax7|arZ2F4)tan-ZP>4GRnS0muAZvdobOV4p96kd-}W^itX zF@{NX8b`01&1yB7^bNN}bdxnqF&&1Kt*}XOImft9&U@i_YO;y)Z?lmOTr@DU0BX$h zZ93OGfkG8ArTCUxbon6b)F(WFLX^UsYmt$AcWujgp^8#)$|&lv^nxzuFsv~0XYRS^ z$@6f5#?(&gF3~rxnZC$QQ{0= z%e!}VrXk%gL$_xzj|I%){*1lsG0N=OS5Sj5@rAC=w0x@Tmm^>B0iMpcZzaTVB}_2! zFE{vcp;1k{sBsn>Xn~+Ek8La}k>)pgL1#1XZrA4b`wwh+FJC@#UpD(}dXc?FL5CWC ziao$B!>nH(+6dv%pTZT|fq>t6P;x*^U~g6{#rPmbJw%@n%&g9yBGzyo3BLlj(ji2d zv)Ek-J^w6cd_Jn2q{{pEV3+cKx~koPq4cWWn`)VOVJg77XsT|V7A56`m;a?-6ez2a zX4E;}t|b!15L29@@{V%0XDq>!_KQsm0Y4TYIdJ--hTr$qjy*o7ydFn$CdtGkvoD5| zdEgjElYRK`yWd^>%5u+MQxr#IC!e&TQB=WC1hSG})Y8>I$R1s4k$~_PcNEnU_ zY;>@qOU;+COG}Klwl@=1JIgP^{)K_Ii;eJ>gd!mSB->w55!ExYzzBYe1!C%<+5&#j z*}J013!R7n18=0ilha%l)75&7G9`#dn0`cjj2@0=?Mrr?%gI_{kY+h$!(; z0WRi*?uCs)2&vUZ7>uu(-E*R^QirvSEY28tNzFb|@3Y_j-H$*1_~Sp9T}k`?p8BuC z&$n-N;`;igc@_j!Se$sPzirCYBKGrZ1WI&Yt-Mg1BedjZczP1eH)EM(C;g>Mn zg&%-c0_}mip{pem?~(K)>T&^+fOCd3QelFkCv=XLV}+3sIQAh3d; z;}LRyO5xS;i=RQiY~Gb6e&^JaqF6X)48Jt0l-`>k%pqq1Kff%Bl`+^%DvlAt0sP{# z5E@fHaWUXWb7^Wmc}E4mGM<{s3k1_<_mVIVugl%{vCU5ja%r?&TU62y2AP@U$O4WM zS;t&XeA3VrJz6@0dO~$ozG-rIxAw{h{;q~vPxEF<9xro#ia3Z{0kZP1PQ#5-DLVN< ziW>Wq#YU$L_~>{NCW2j9`GZfkRHUSGcYTPqkKOBhQ8x`gRwE* z{WqOz%@G=eItTD=^lP-mVLol?5A|jT%D*(g=!`XD05A5t$2LC&->m>i6ZQJ272O|< z&R~^z05W8ODMdt=J8QT_S=DDko*_q=A->O|Q0ls64z`Y4vf-BrKR;;kn0gP#KmPc` z4?q0y<8Qwk(63UYC6@o$@ynOb`M+ejd<*Tz|AE(UFzr*WPPg{*N7!M;g-u`!|0*U= z81e^tbh}oU8kP>Qs|fn?AATb>h{7nwSi3xGt2Pc3Ac-hN&aI2Bn8UQ2Tr(VKf!_m<} zYB&tMW;bsZz{9^4|Z~p6Z*{WxkUNGID=@6K=H(9R3EEJ{@UyTQOtsUXnBzat&a{CijvGjGxkh zIKlB|8dV(?Opt33;>*1aU}6?IMTaPFa>1oIt%uKe!0J0n2Sj+1Nc>2AIc!K!wP;v8C@{4 zy(}gdH&lK&FQw;tr{I?YvA_?FK+ftk{PaNW=#<%o^Fw*-e2R8n2UE*>-8UGA-OaZb zcWd}FSA7FF=Dh8o1)(OPtTt;z6{rZqsKO~_w2x|RH8wa1etkccxSJbwh_=(q0#3>k zgR3~J1xQ4vH$ULM`F!e-1f^j6poP}#S6lZ9Tfh$}e9(1vf8q_=7omuQ;D?BVXP?b& zDqWsDKNkEV01;vLD3=meBluC(J!(Vm$_}xDA4dHiu{PrbhzU+bD$w|Rp{jZUz^+Y@H zD^5;ce*4n!s{uHKp9-T2FI>O;%}>BDN}N)50l%2nlJZXQ8?cXCj{I3q=!=S+0Y4}G zaIL_vDvItszIgpp@H;;pzz-u`P@$BU#oHR71|5EvkgIi_lp#N0|GQIvIsi|PK=Wbv z0b$>`TSI5)R=9Q727U&gsW3j4?I*ocas+2}%J!=NI`Gg_!rxz+$dYa4kcMd4zbeHse z(#{#kddgkwvd1`2z~-Rt5k3ep&#_kT&;2@Gjwi)BgRdMmu#|BufkX^c)18XZOYa%Q zHpc+4`98rdYL&Ixi|Y+Li<2EZM)%Iq2mKi}Q(e8pXS4uGJZx_8;gQ#pY+M|xumj@j z8DYPIT~y-E_AUcOV>@LeCrnPWspUal&46=2n zvL+oW%EJR*tIZM}J-!Fe%4a>aiM!*I%geOMm}5#e5D9_1 z-0e`CUtXNd2kVYX*^r;P45@sta5E^2?iM;7XULnZ;__z%7lL_lP45rzrQZANU;pyw zIR5fO4L?tQiN9%}SM}NdYmr^Yf}`uV%O%R2gcN}n@%Mn=a8pA8oS;US$*{6>$L=#} zbfGb(*jMzp1Ydlw5m*YI5qStOmMJa)yl=j#hFd!VUuvQegDCe8`+j>4YytGA{mL-) z-XmzWxYeD!YJa?ao(wzS7zQLnwUX^)X%iv9q}A;$x_xEUZP9%Qx}R5?uLd7xcyhNp z@fOfS-;bA{eEY3-01g$Oik#AYG;{I{oiNC+>uUu+>p4$5(~l@Emc#QtLjsyg2)_It@vr>W5^K;m>pZE#FuxGFgx}MrzyFn2q08Cw{Q!PKW08F9 z!=c|N%?P(>Ea79}GIqFQh!_-@a(}VPojVf>;bKLRI97vBlnFAH@6k!jv$UU3+OLb0ti=}^_f0T zRx!IK0_>I4>uUHhZjNJv8m8~SmiF}xW|?iUj!zr(t`<#$l?`3LUQP8hc0OoE3}h8P zw(V87Kq#-OKFRAD-p>LReRK?>hM&KsOS2BLS5FQGTzj*T9*ehC{k_zCfBEyD|Gzl? z{MYYL_zc!@Aa_l_3d;rL8g4E4otzYy;q3G0WvK(=3D5QpFstCl?%f!4_rp*Bp)0rp zzqj|n&qdHjM@K4tR+Bw3S&phax>xTN5SHB!1%AFIXg7S& zAqHtbKYesGgDwLsg`xwk`4i@VA7WQD2GhGd|Ili_SQFXhwB@@U)}Z-|f4EabNW zzsNR3YS2(a7B0{iQT0P$l)vll!w06;7l#u}N})<@CKF8Q%#>dhfKWq^dxUz|H)(@W z&(D3o=mzWW7qeqjb@2L)p2Ff{OYjp zfuilU=_v+Tk0iCw09>`m_#wYHfkhMtN1svnZDX9-B?ooV?!v|$0JT|dS~L+?nAgdP zp;+k)U}lmOGtHh<+XWcwij?Da0`uVHC!W2c1V`uqt~d_yj+Ja-_zrq6+-tN_j&$ zG_kY7Tr9!W#)fie@t~%27QOd(L%o;i3;1Pk&oe#qZ!dqx@bAYb1>B(mmB17A>RFyu z5p+DoGdHsr$c3`g7vEW3tr1u2z=FH@?!I4ff^uDLD8oJZ^qnKdR4dU}B7PBX;QHGv zkM29L_5IODj__*2Bbq}$%T_;qzpsgCsLApY_XY-mDi3^#NiguZkXIac9q^;+1@29i zR`(nTx+`T@OMiF|@ccAIpZ?yz>2s_;C-rr!bweFN+GpJ(T8NHu| zPAWeYMx(=rpK^loy6#F?$)*zeF+3{{%Ezx@PcV!w0Ixt$zX3c(+v5#Zi;6%9sD__x znG88FVc>WJGYYbGddRg@V!%(N(xWn{a33wH=dk&Q4=Rz$%Za3e#)nn>N@pcMd0!vl zN0ceNUX@3Ex1Sw=5DfDja*0yw5q|ugks8DSgGdxH@9q>)$D9^}7B|wGvH<*4BJH*< zsaB#3p#U{Kjb+cif?st{)A#YcfRM~;H0Nd0OeQhhEV_V39eaJ;!XQ0}i7X5|$m*i) z?D!3RgRScrp^fw(2T>D#5n1PO&c59?&3wM;CzF1)*&xHG>D1h5bOn9cwpZKvlEc!h z+_b=UwLuvbyW7<&1pMIMM70vwb+gauJs4%SG>@W-Cqan1XVY(&Crbnk;gV7Koxej( z#CbPGw-WzLTqz|K4L>Z*wZ+9j_vg<`3Dk2wvmWZwC*k*{O`m1zCv{*sTi|DOVCP@y z?j^h;)KE&91$-m=X-7jQ_ViT34{gCzgX|LS>+jWiuYw=To*A33H?-dmzt1Z8Dd$HP zaq5c|VCDVX2fyP?=#7<~kXMyBhXqfD9sXAMX;*trgo)8+X>F;F09r06D)Ty1drtD)J#sc$sz_)3z)2#;cWLyQP-qQEWth`IA^LQRrB1?$iyW{G z5I&gE-Uh;qR74+;YiY+^o? zzUjL4x<`(W&A&Ehz@UF9YYLp3UDr;VNx#}|o6X#%O0Dq&z%a{Y)c|dirddrE0GtMn zl5=yeHPQ&ScFrY5+Yaxcs*5panfW8Gn5>Uc)-uXKs%@`caUaB{YuVeA!^Oo;B@KP( ztjsx*m2LzIbkB*v=U?KA%`O`D5{r+LesMasy+^~ZT4@{jBT`&N^jzzT9YW$TX2A2+ z&3sE~^|_>3?hP;*F znvCZ_Grmi^{bIX=f)3p7z)ZVi@GgKJL|h$+3!s&4dCI#WLbbwWpguns@~M^btQ;iQp@223# z$A<9Zz?M4njw|WbG}KBQo;>T<3^pX%;%;d>ejmXv%bmyr5_r-7(}LUW6*jb^)7QYd zLik-;?_Jg5KGLsStk)}OKYW=2dW^VZXbQw)+dlq75BP1SUAJkr*!kCboEY^R5z}E< z83vIZPF9BBat@ex#1{kaEnY0&XV-R%mEi~2X?EIb)m8ADZrC=|?)7=M2|dX00-P;K z^dbD775o&F zPv`|kjJJE>2OU?@?YLgjUaP?he*Ra~JO27-=)H3M<>$fg_-Dc|+@G<_sNikX!=vl7 zKChoO{I19Fd-?3Ew|n3RCCKZ~cH#F8;a7V)6_ekE-!~QfhDkrwKa~%xE1@{}qN;ya z;J5!M>G!iUL2M5seJW?ac!?2I9k3;6f?%N>x$X!uPxcpSNiquPLP1pBKCd={_2po9 z-lv?O?D3(ZsU^09;nr~gZrFwNq&joXpAp!b>4z8I?uB1^K0V)T2)~CF{CIr3)BH>L z&HnhuZ}q&|e$fdO2m^j`E!umz*}YbYaR_(=_@$=Q*>H~%ekyemaga!eDx|xG$kB{5 zI#yz8m_}*p6BB-@b~??#v7Tu44MvbD|G@cYStPZ^liS}T)ZRF5PmE3OJ|NVdF$ycW zn_oN7K!XeGl&*W~FCx1XZZ}YI2yU@|o&Ci4>n0Z$VSYjVvZ%-6{VWz1sXoC^X}^vL z&AgajWaeQHzR6~YtYZc!1GCeOuHN6@V{E2>U7L|Nrr zuc!0N7XUO1T4rk(3=A!TABL5YeMjuzA>{z}fn-3J zuqR!I?}i_NID*;%+JFxggx6gbZiCV$v57-p&iR8@O0P8%20a{26R@T8d}kyN9DG;t z^7b|?FA-aRG7DX(uQ8sQSj)lJ>MS}&&pS%TF#CT6YF>rJVb&OIRu?!+Wt7hr)Vao~ z5uZ*37G$13{6stPr0>i*3pvgCM5z;r_cAV8@QdPQ?Cj&fYj|MTIn-wM?B>~3<0u~$ zV65O9!jFx@2reMhZg*!5zx4oq7*{Q?OQ^@PdEJH|>HbUUaiYY+DuhDvU$u%vluAX+ZFMT+mmD^3MH(N=g4%(m)d?%@IGr`$Ub zO1F#P$LNFL$BCaMpw8Z(6xM{QQ0JKT2P(uW9cLg%|bBF#?IIz3ju3vfx*t z;1GWHxqL;XH-aC(_||lE-VZ;`d(rhF_C~gsl3=K^41}M5#seC7AiUd*CPB zd0@4>g0iI~$Aq0+f@_r0O&Uz{gqJGQr*dYX4*aUEEdjZBgAw;IR=mf+>jFQ~@}c2p zp7H`LU2$`-H-hVujl8E`Zv-}S__bh4y%z;eybY*9>>cpa2s1pw!X(4# z{3Bc$)l+1o%ARzU3W_dR@^lQq_8tkpExU$RfpHuTz^6)QoGDxW;#?Lz;nf5j)xbMM z?oa!SZf*=eTUd%lbdC=hJi;ySa_MukYVdYyzL?(0v1Ojy*-rcQq{BGR;W%rRLRag4 zg=jm#3WE!rtGJQfKIuP(+qKT9Yc`Ly$(GgA?Yx6EX4^ugvB%alG{%^(t$KXi;Vzd9 zw?24(19W0&M%=@~rWU2XeNk6#Ag$z%qPaE;vyJ#n%Rs z66R7`Y@B}}5jEQr*mJov7WT;j>T)NlpKV)wFR=*T0SF*(H2Kq?_l&*{X2rDY>U^B_ z{LF#s%7NJR`Mmyf{G2uH{)GRkE)xFeDR)ZCC#~p7FIvA8aL;nTc zM!mkbFJHQ}X?_V$(G%P)kp|YR0~Ki}5d(C^_)>QGy(Pg43{&?-wl7DZef4Zm?#$47 zT;-|ivPYL?xzndY`Q=fw@288QISAV$(sXuM5|z3`?%nHa5rseChae#^7Vlx~&&Ac8 z`H8p#m{cPV^o%IPjG+h3_oQ}w7-P`fyQA|(jX)MiPvhF{tw)bJ^nfKtflh@SZdnTj zk4{ekvfJ4yzWI5DA_9Cag92_^UE~zI+%3273jy^ckrk^Qs0+1nH#q1!SO6WsP)F1> zE2wF0ZCGe>2LzAtPnJEiG^wSvF{MQnOttf%)~aD+ERdEUL&A^!LB7myly@c?bE0Od zHjOsZnxXg`)TIl-mc>!$BdjHbGEWH|!%s-G=2YWvFzPH;+LD1;B>f2dXk_92aB-Fr zCrXx8U$2IrM_4zIXNx`XIahEv=8nH$|%6P@(U%A-7C?(DYnORq;l zKpo9Mv;hS_wf;y*mlE-!b_0(Lmew*;2PN37|FGe5BS=kIRJ3B9vpg~Jb6Vi1K!r9u z(6cG!N3ACKwbO1v4ag^`_3*BflaqG(fa9^L;g<9E0j7BJ`^l@WnNDFT#j$w+k0_3S zpHhZeJ#2XZXb-rB~B$2Y!T_dVu@k z7t>w9xtCbchudrT@e43iwm|6H7=8j8!tMk3Ro7y2OGevcb5T_u_4sOj5)k(t#iMx- z{7Ourg5N=9?JV%~5Ko>ufH)HcG4PCcQPp;>1G&FnV(N>%7huIGcR<0QaSYsfwssgUeFb&$brwh(S54m=m(2YMWN08tN4ngZlRSYoTtSa9hJKckDB-uNp$I;KJy31f z^5^qH;?+Xi9PrNs;M3|N3^aqTY^UhJEv~eqXw%=^tTDmUW7BeNdI!fReJz}W1~t}o z9O%gn5-Y7Vnj-kXGA9@9aRKcmR@|;MzM3Pjn+1@>y%HW@&D{?3>0@Ohq#OY~lsUmS zIX$)Gf#C&wU19?S%d1N$L#@Z%pp?sB&KceUU%-zFvFn!5acc6V0Tc-Hz%w9#PSE0O zsRSRDU|>%Nz_~l&B`N5T`xu790%M@aI~)A1!ek})z61DvLhtPWZvej^9Bl~rMGpVD z^{n>%mH$Q8*U+MGt|0}l|JB>kNZA@`3Gn0H-yUd8gZlP2=j^a)Hm(Y9p zGW?*>jsNhQ^mKm3bw;_sD1c~}XSzNM4ZnJJ^vg2e6X^Wqy8^|kewl%Xu({;P>U(t@ z+0R*1Zg89)#JIDgvo8jBxP4gG+G6h?Cwm?p9i0(lL>#J=ly*l4v-h{;r_3#ip`Q|@ zq4@%6=L|ZiEP8%R$7gJGr?m6aH6jCp7=We`XvN=o$|qU)e4?dB#-S>xIrrts6BJ4x zJ`_tIau0+sr-`3tPugB^3kD@KE0N(b=$d*QB9a#e9OJ`~(ldN1drh3brWJ%aG{ zmIoC`OW8C2)6<{){`at~xJ+5#r&%pt=~t$8dct(LVLp7X@hob(dC_~wwv=eWSGi^a zc#6~)otHVjUHX+5*4M(%V%8G0iwb_^n}(bbP#0<%GCYqL34T(2cty-3!d3&Eps}h3dHa;;sP`gPJ>;KYrZKx9#JNtSXvTJ>76{3t&k2!Sk}2a<+@z zovd&^py=e(ZG05~Rs5XKn+9A%Y96o?{5-$~SS9?1hsV7DO_GBNzvs`HR$tCD@(_R{ z$RrW>!jBEY3UdBb>A<}3T_yKI@BQVc^xj9|2d}68BnK>V0ilmKZ*)0MU30Q0TYl>K zaeD)(w_MuYIRaR%zJ?G(o%25U1uhAyA^hI%!0+V%esAxGpYnd*@?L4Z;spi#^v#NJ zFup8Qo)_8v1pJ`)J|_48zmLIDcynLxHGP}H;4L$Pp7H7HgdZI-u36%k%`n;8e$C*S zAQz?YVMOA)V;b#fAj| z(522$d%rh~%F;h;z0iov*{Me-OI=mNWVmW9UXKnYIvlsX63^u0E@kfX#PWg50C z5KkSE$TI5!UBkE`V(o~%H;UFVoH*HZ1ZLYQ$#Hp?5o%qTr zpTsKqkKhZ#cM@k!Gg%=FF`svvjfR?G!vb1-Qiqrdx&pA+;oEF5n!3B%w$tf$8=1c8 zW`jPSBp`VCfa5sn-rRPZsTMM9=r3iTQPVt0HweVX4`77Ztfmi$IT>-Z^-ps=?fXvV%Y|B^9w&%92LXn;(>tf3d5cZZ&(T09>5 zIg8x;pTu4n&-pjNZgl*+gAVki2H-05OZ}H9;-JrgD0n_W!Gfmi=PGlC6-MV-)>N;q za(516?^W;atG6z0a@)hRf->DVHn}`|h8pOw$|=B=L)}2YPbgH5p$s}R@T%V5SI-oM zh^l97dvMZkOuw2~SIa3jV(q|(DeJ5?V~Z~ zAhelEpVWsCki-;BE!yi)OfAm5hsM*iPtChlVUr7xZsBtA_S=~9DGnaoax!Qh5txsN zgEk@QUHDuAfCmR9*p4+yLP>N719XI6pwPTBvyy9jco*M&Hs_n+>0$@O=wDH7v`JZW6-<v?kWV(A_qdt26fWyl%t61c7-4wlbie?%5~BEd@KcGCdoA|EZveIE)fG(_--n70n$8ggC;fn&0x{et ztd)Ovy`FnIe(#9KgkODtWP{xfn)?#Dz8vxrmqP>^YW`U&ocncLi8d6+XMJaWq1yPX`QCvC&U0~aJ?fybt07CB^na=dnwkwDs-p4QszCWv zkDDg{0$zi(UqCF7hBdPR){6@S)2%N#?kqf@)m$O>=?xke>Z4vvq z;InDwpW9T^s)3jSa*Dlvj~}oAN>j@NHT)>p$zouMpy?j9!^YgQuTWBBub5O_OYPwnX& zu{J?m{tFyxZv)$Z9%!cAUjR{ndh>?bIV56%9!ix7!E(SD!%gikVOL>Ml*-R1QRIX< zhW)f*(ts)O^4B&2V**=yimGXR`3<2!+l(6UcLlFMXaS9P)oe7WL%OkxH2N zcwbPh%-s&v;IoR7xrp!RVD@i}P~ai^S@fGK&4@}PK6BI1j98>)MVW`_@FBVYmZ3lz zYVRP1Syx@XD0CL^0c}&y zRyXS@cN1Y(-$EgH`CitLS~1uRrOo9W84C2#<|u-$yX~rXN4VdR~wlhpaP(pUa*Sb(;QJjrdgd50VeGQ)h4|oNQa1WWwAh97XJa%i>$ zc~+MUKhp1SgP(eS=nC#+`zrY1{L#@b6Mpo1y0j_$LiIzJY^y0%8uJQ|XiN6PpfTZwa+`&V3KipESj& zn>Vv6lv#%Q49JT_pL==_$MDmjw3(HiuY@Tk79ioCgdeVt;CGJT0<1D4(~A{ieI_fQ z0l!iJYpQnX}%qDuc2z{XoNpzPC6G4YH&!~5XJ?`re$eW4GZJOTW)qzIt|iYr6! z`wNegp4@%V%uk2k5rs%)W!1+W4q9mBgo8(u@eT(WYMJI|%PA<%5^(45yz`a24=7FI zPAnC=S))v;T@4v?Ko~x-IqYEZ{Ef(#RmX<9$UF(~hUxR+k z@vWK-9%zBl9=OQ>03ZNKL_t)%p4ORd+brbhWO`xK_ugVO1^hJa6Ryt5VvZp$P2VFG zNQdT>%WLPG#|X>=ep)AsQe?xeM#vvbS@dM85A$0tNmvTH&1$N0B?9>E>M_rFMLSF{ zw9T+`3LS`%+JxU~+A_e-4xqTF4eg4uE4E&eeC+3W#I`Ij(wΜ2zmugi9|y3i`z$ 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 z%0D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

Z<1~O@t1r_y7VzqIMu{d~la+pZ9Z*#K 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 ehT-k4R_h;i4M${i_1Gf-0000

MF Remote as standalone app

+ +

+ Vite React (v {React.version}) app running from Remote in{' '} + {import.meta.env.DEV ? ' Dev ' : ' prod '} mode +

+
+ +

App

+ + +

App1

+ + +

App2

+ + +

AgGridDemo

+ + +

MuiDemo

+ + +

Styled Components Demo

+ + +

Emotion Styled Components Demo

+ + +); diff --git a/examples/vite-vite/vite-remote/vite.config.js b/examples/vite-vite/vite-remote/vite.config.js new file mode 100644 index 0000000..46624fa --- /dev/null +++ b/examples/vite-vite/vite-remote/vite.config.js @@ -0,0 +1,66 @@ +import { federation } from '@module-federation/vite'; +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import topLevelAwait from 'vite-plugin-top-level-await'; + +// https://vitejs.dev/config/ +export default defineConfig({ + server: { + open: true, + port: 5176, + origin: 'http://localhost:5176', + }, + preview: { + port: 5176, + }, + // base: 'http://localhost:5176', + experimental: { + renderBuiltUrl() { + return { relative: true }; + }, + }, + plugins: [ + react({ jsxImportSource: '@emotion/react' }), + federation({ + name: '@namespace/viteViteRemote', + exposes: { + './App1': './src/App1', + './App2': './src/App2.jsx', + './AgGridDemo': './src/AgGridDemo.jsx', + './MuiDemo': './src/MuiDemo.jsx', + './StyledDemo': './src/StyledDemo.jsx', + './EmotionDemo': './src/EmotionDemo.jsx', + '.': './src/App.jsx', + }, + filename: 'remoteEntry-[hash].js', + manifest: true, + shared: { + vue: {}, + 'react/': {}, + react: { + requiredVersion: '18', + }, + 'react-dom/': {}, + 'react-dom': {}, + 'styled-components': { singleton: true }, + 'ag-grid-community/': {}, + 'ag-grid-react': {}, + '@emotion/react': {}, + '@emotion/styled': { singleton: true }, + '@mui/material': {}, + }, + }), + // If you set build.target: "chrome89", you can remove this plugin + false && topLevelAwait(), + ], + build: { + target: 'chrome89', + rollupOptions: { + output: { + chunkFileNames: 'static/js/[name]-[hash].js', + entryFileNames: 'static/js/[name]-[hash].js', + assetFileNames: 'static/[ext]/[name]-[hash].[ext]', + }, + }, + }, +}); diff --git a/lib/index.cjs b/lib/index.cjs new file mode 100644 index 0000000..e3fd316 --- /dev/null +++ b/lib/index.cjs @@ -0,0 +1,1262 @@ +var fs = require('fs'); +var path = require('pathe'); +var pluginutils = require('@rollup/pluginutils'); +var estreeWalker = require('estree-walker'); +var MagicString = require('magic-string'); +var defu = require('defu'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return n; +} + +var fs__namespace = /*#__PURE__*/_interopNamespace(fs); +var path__namespace = /*#__PURE__*/_interopNamespace(path); +var path__default = /*#__PURE__*/_interopDefaultLegacy(path); +var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString); + +var addEntry = function addEntry(_ref) { + var entryName = _ref.entryName, + entryPath = _ref.entryPath, + fileName = _ref.fileName; + var devEntryPath = entryPath.startsWith("virtual:mf") ? "/@id/" + entryPath : entryPath; + var entryFiles = []; + var htmlFilePath; + var _command; + return [{ + name: 'add-entry', + apply: "serve", + config: function config(_config, _ref2) { + var command = _ref2.command; + _command = command; + }, + configureServer: function configureServer(server) { + var _server$httpServer; + (_server$httpServer = server.httpServer) == null || _server$httpServer.once == null || _server$httpServer.once('listening', function () { + var port = server.config.server.port; + fetch(path__namespace.join("http://localhost:" + port, "" + devEntryPath))["catch"](function (e) {}); + }); + server.middlewares.use(function (req, res, next) { + if (!fileName) { + next(); + return; + } + if (req.url && req.url.startsWith(fileName.replace(/^\/?/, '/'))) { + req.url = devEntryPath; + } + next(); + }); + }, + transformIndexHtml: function transformIndexHtml(c) { + return c.replace('', ""); + } + }, { + name: "add-entry", + enforce: "post", + configResolved: function configResolved(config) { + var inputOptions = config.build.rollupOptions.input; + if (!inputOptions) { + htmlFilePath = path__namespace.resolve(config.root, 'index.html'); + } else if (typeof inputOptions === 'string') { + entryFiles = [inputOptions]; + htmlFilePath = path__namespace.resolve(config.root, inputOptions); + } else if (Array.isArray(inputOptions)) { + entryFiles = inputOptions; + htmlFilePath = path__namespace.resolve(config.root, inputOptions[0]); + } else if (typeof inputOptions === 'object') { + entryFiles = Object.values(inputOptions); + htmlFilePath = path__namespace.resolve(config.root, Object.values(inputOptions)[0]); + } + }, + buildStart: function buildStart() { + var _this$emitFile; + if (_command === "serve") return; + var hasHash = fileName == null || fileName.includes == null ? void 0 : fileName.includes("[hash"); + this.emitFile((_this$emitFile = { + name: entryName + }, _this$emitFile[hasHash ? "name" : "fileName"] = fileName, _this$emitFile.type = 'chunk', _this$emitFile.id = entryPath, _this$emitFile.preserveSignature = 'strict', _this$emitFile)); + if (htmlFilePath) { + var htmlContent = fs__namespace.readFileSync(htmlFilePath, 'utf-8'); + var scriptRegex = /]*src=["']([^"']+)["'][^>]*>/gi; + var match; + while ((match = scriptRegex.exec(htmlContent)) !== null) { + entryFiles.push(match[1]); + } + } + }, + transform: function transform(code, id) { + if (entryFiles.some(function (file) { + return id.endsWith(file); + })) { + var injection = "\n import " + JSON.stringify(entryPath) + ";\n "; + return injection + code; + } + } + }]; +}; + +/** + * Solve the problem that dev mode dependency prebunding does not support top-level await syntax + */ +function PluginDevProxyModuleTopLevelAwait() { + var filterFunction = pluginutils.createFilter(); + return { + name: "dev-proxy-module-top-level-await", + apply: "serve", + transform: function transform(code, id) { + if (!code.includes("/*mf top-level-await placeholder replacement mf*/")) { + return null; + } + if (!filterFunction(id)) return null; + var ast; + try { + ast = this.parse(code, { + allowReturnOutsideFunction: true + }); + } catch (e) { + throw new Error(id + ": " + e); + } + var magicString = new MagicString__default["default"](code); + estreeWalker.walk(ast, { + enter: function enter(node) { + if (node.type === 'ExportNamedDeclaration' && node.specifiers) { + var exportSpecifiers = node.specifiers.map(function (specifier) { + return specifier.exported.name; + }); + var proxyStatements = exportSpecifiers.map(function (name) { + return "\n const __mfproxy__await" + name + " = await " + name + "();\n const __mfproxy__" + name + " = () => __mfproxy__await" + name + ";\n "; + }).join('\n'); + var exportStatements = exportSpecifiers.map(function (name) { + return "__mfproxy__" + name + " as " + name; + }).join(', '); + var start = node.start; + var end = node.end; + var replacement = proxyStatements + "\nexport { " + exportStatements + " };"; + magicString.overwrite(start, end, replacement); + } + if (node.type === 'ExportDefaultDeclaration') { + var declaration = node.declaration; + var _start = node.start; + var _end = node.end; + var proxyStatement; + var exportStatement = 'default'; + if (declaration.type === 'Identifier') { + // example: export default foo; + proxyStatement = "\n const __mfproxy__awaitdefault = await " + declaration.name + "();\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else if (declaration.type === 'CallExpression' || declaration.type === 'FunctionDeclaration') { + // example: export default someFunction(); + var declarationCode = code.slice(declaration.start, declaration.end); + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + declarationCode + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else { + // other + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + code.slice(declaration.start, declaration.end) + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } + var _replacement = proxyStatement + "\nexport { __mfproxy__default as " + exportStatement + " };"; + magicString.overwrite(_start, _end, _replacement); + } + } + }); + return { + code: magicString.toString(), + map: magicString.generateMap({ + hires: true + }) + }; + } + }; +} + +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} +function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function () { + return o >= r.length ? { + done: !0 + } : { + done: !1, + value: r[o++] + }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } +} + +function normalizeExposesItem(key, item) { + var importPath = ''; + if (typeof item === 'string') { + importPath = item; + } + if (typeof item === 'object') { + importPath = item["import"]; + } + return { + "import": importPath + }; +} +function normalizeExposes(exposes) { + if (!exposes) return {}; + var res = {}; + Object.keys(exposes).forEach(function (key) { + res[key] = normalizeExposesItem(key, exposes[key]); + }); + return res; +} +function normalizeRemotes(remotes) { + if (!remotes) return {}; + var result = {}; + if (typeof remotes === 'object') { + Object.keys(remotes).forEach(function (key) { + result[key] = normalizeRemoteItem(key, remotes[key]); + }); + } + return result; +} +function normalizeRemoteItem(key, remote) { + if (typeof remote === 'string') { + var _remote$split = remote.split('@'), + entryGlobalName = _remote$split[0]; + var entry = remote.replace(entryGlobalName + '@', ''); + return { + type: 'var', + name: key, + entry: entry, + entryGlobalName: entryGlobalName, + shareScope: 'default' + }; + } + return Object.assign({ + type: 'var', + name: key, + shareScope: 'default', + entryGlobalName: key + }, remote); +} +function removePathFromNpmPackage(packageString) { + // 匹配npm包名的正则表达式,忽略路径部分 + var regex = /^(?:@[^/]+\/)?[^/]+/; + // 使用正则表达式匹配并提取包名 + var match = packageString.match(regex); + // 返回匹配到的包名,如果没有匹配到则返回原字符串 + return match ? match[0] : packageString; +} +function normalizeShareItem(key, shareItem) { + var version; + try { + version = require(path__namespace.join(removePathFromNpmPackage(key), 'package.json')).version; + } catch (e) { + console.log(e); + } + if (typeof shareItem === 'string') { + return { + name: shareItem, + version: version, + scope: 'default', + from: '', + shareConfig: { + singleton: false, + requiredVersion: "^" + version || '*' + } + }; + } + return { + name: key, + from: '', + version: shareItem.version || version, + scope: shareItem.shareScope || 'default', + shareConfig: { + singleton: shareItem.singleton || false, + requiredVersion: shareItem.requiredVersion || "^" + version || '*', + strictVersion: !!shareItem.strictVersion + } + }; +} +function normalizeShared(shared) { + if (!shared) return {}; + var result = {}; + if (Array.isArray(shared)) { + shared.forEach(function (key) { + result[key] = normalizeShareItem(key, key); + }); + return result; + } + if (typeof shared === 'object') { + Object.keys(shared).forEach(function (key) { + result[key] = normalizeShareItem(key, shared[key]); + }); + } + return result; +} +function normalizeLibrary(library) { + if (!library) return undefined; + return library; +} +function normalizeManifest(manifest) { + if (manifest === void 0) { + manifest = false; + } + if (typeof manifest === "boolean") { + return manifest; + } + return Object.assign({ + filePath: "", + disableAssetsAnalyze: false, + fileName: "mf-manifest.json" + }, manifest); +} +var config; +function getNormalizeModuleFederationOptions() { + return config; +} +function getNormalizeShareItem(key) { + var options = getNormalizeModuleFederationOptions(); + var shareItem = options.shared[removePathFromNpmPackage(key)] || options.shared[removePathFromNpmPackage(key) + "/"]; + return shareItem; +} +function normalizeModuleFederationOptions(options) { + return config = { + exposes: normalizeExposes(options.exposes), + filename: options.filename || 'remoteEntry-[hash]', + library: normalizeLibrary(options.library), + name: options.name, + // remoteType: options.remoteType, + remotes: normalizeRemotes(options.remotes), + runtime: options.runtime, + shareScope: options.shareScope || 'default', + shared: normalizeShared(options.shared), + runtimePlugins: options.runtimePlugins || [], + getPublicPath: options.getPublicPath, + implementation: options.implementation, + manifest: normalizeManifest(options.manifest), + dev: options.dev, + dts: options.dts + }; +} + +/** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ +/** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ +function packageNameEncode(name) { + if (typeof name !== "string") throw new Error("A string package name is required"); + return name.replace(/@/g, "_mf_0_").replace(/\//g, "_mf_1_").replace(/-/g, "_mf_2_").replace(/\./g, "_mf_3_"); +} +/** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ +function packageNameDecode(encoded) { + if (typeof encoded !== "string") throw new Error("A string encoded file name is required"); + return encoded.replace(/_mf_0_/g, "@").replace(/_mf_1_/g, "/").replace(/_mf_2_/g, "-").replace(/_mf_3_/g, "."); +} + +/** + * https://github.com/module-federation/vite/issues/68 + */ +function getLocalSharedImportMapPath_windows() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + name = _getNormalizeModuleFe.name; + return path__default["default"].resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap"); +} +function writeLocalSharedImportMap_windows(content) { + var localSharedImportMapId = getLocalSharedImportMapPath_windows(); + createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content); +} +function createFile(filePath, content) { + var dir = path__default["default"].dirname(filePath); + fs.mkdirSync(dir, { + recursive: true + }); + fs.writeFileSync(filePath, content); +} + +var nodeModulesDir = function findNodeModulesDir(startDir) { + if (startDir === void 0) { + startDir = process.cwd(); + } + var currentDir = startDir; + while (currentDir !== path.parse(currentDir).root) { + var nodeModulesPath = path.join(currentDir, 'node_modules'); + if (fs.existsSync(nodeModulesPath)) { + return nodeModulesPath; + } + currentDir = path.dirname(currentDir); + } + return ""; +}(); +var virtualPackageName = "__mf__virtual"; +if (!fs.existsSync(path.resolve(nodeModulesDir, virtualPackageName))) { + fs.mkdirSync(path.resolve(nodeModulesDir, virtualPackageName)); +} +fs.writeFileSync(path.resolve(nodeModulesDir, virtualPackageName, "empty.js"), ""); +fs.writeFileSync(path.resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.stringify({ + name: virtualPackageName, + main: "empty.js" +})); +var patternMap = {}; +var cacheMap = {}; +/** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ +var VirtualModule = /*#__PURE__*/function () { + function VirtualModule(name, tag, suffix) { + var _name$split$slice$pop; + if (tag === void 0) { + tag = '__mf_v__'; + } + if (suffix === void 0) { + suffix = ""; + } + this.name = void 0; + this.tag = void 0; + this.suffix = void 0; + this.inited = false; + this.name = name; + this.tag = tag; + this.suffix = suffix || ((_name$split$slice$pop = name.split(".").slice(1).pop()) == null ? void 0 : _name$split$slice$pop.replace(/(.)/, ".$1")) || ".js"; + if (!cacheMap[this.tag]) cacheMap[this.tag] = {}; + cacheMap[this.tag][this.name] = this; + } + VirtualModule.findModule = function findModule(tag, str) { + if (str === void 0) { + str = ""; + } + if (!patternMap[tag]) patternMap[tag] = new RegExp("(.*" + packageNameEncode(tag) + "(.+?)" + packageNameEncode(tag) + ".*)"); + var moduleName = (str.match(patternMap[tag]) || [])[2]; + if (moduleName) return cacheMap[tag][packageNameDecode(moduleName)]; + return undefined; + }; + var _proto = VirtualModule.prototype; + _proto.getPath = function getPath() { + return path.resolve(nodeModulesDir, this.getImportId()); + }; + _proto.getImportId = function getImportId() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + mfName = _getNormalizeModuleFe.name; + return virtualPackageName + "/" + packageNameEncode("" + mfName + this.tag + this.name + this.tag) + this.suffix; + }; + _proto.writeSync = function writeSync(code, force) { + if (!force && this.inited) return; + if (!this.inited) { + this.inited = true; + } + fs.writeFileSync(this.getPath(), code); + }; + _proto.write = function write(code) { + fs.writeFile(this.getPath(), code, function () {}); + }; + return VirtualModule; +}(); + +var virtualRuntimeInitStatus = new VirtualModule("runtimeInit"); +function writeRuntimeInitStatus() { + virtualRuntimeInitStatus.writeSync("\n let initResolve, initReject\n const initPromise = new Promise((re, rj) => {\n initResolve = re\n initReject = rj\n })\n export {\n initPromise,\n initResolve,\n initReject\n }\n "); +} + +var cacheRemoteMap = {}; +var LOAD_REMOTE_TAG = '__loadRemote__'; +function getRemoteVirtualModule(remote, command) { + if (!cacheRemoteMap[remote]) { + cacheRemoteMap[remote] = new VirtualModule(remote, LOAD_REMOTE_TAG, ".js"); + cacheRemoteMap[remote].writeSync(generateRemotes(remote, command)); + } + var virtual = cacheRemoteMap[remote]; + return virtual; +} +var usedRemotesMap = { + // remote1: {remote1/App, remote1, remote1/Button} +}; +function addUsedRemote(remoteKey, remoteModule) { + if (!usedRemotesMap[remoteKey]) usedRemotesMap[remoteKey] = new Set(); + usedRemotesMap[remoteKey].add(remoteModule); +} +function getUsedRemotesMap() { + return usedRemotesMap; +} +function generateRemotes(id, command) { + return "\n const {loadRemote} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadRemote(" + JSON.stringify(id) + "))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "initPromise.then(_ => res)\n module.exports = exportModule\n "; +} + +/** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ +// *** __prebuild__ +var preBuildCacheMap = {}; +var PREBUILD_TAG = "__prebuild__"; +function writePreBuildLibPath(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + preBuildCacheMap[pkg].writeSync(""); +} +function getPreBuildLibImportId(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + var importId = preBuildCacheMap[pkg].getImportId(); + return importId; +} +// *** __loadShare__ +var LOAD_SHARE_TAG = "__loadShare__"; +var loadShareCacheMap = {}; +function getLoadShareModulePath(pkg) { + if (!loadShareCacheMap[pkg]) loadShareCacheMap[pkg] = new VirtualModule(pkg, LOAD_SHARE_TAG, ".js"); + var filepath = loadShareCacheMap[pkg].getPath(); + return filepath; +} +function writeLoadShareModule(pkg, shareItem, command) { + loadShareCacheMap[pkg].writeSync("\n \n ;() => import(" + JSON.stringify(getPreBuildLibImportId(pkg)) + ").catch(() => {});\n // dev uses dynamic import to separate chunks\n " + (command !== "build" ? ";() => import(" + JSON.stringify(pkg) + ").catch(() => {});" : '') + "\n const {loadShare} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadShare(" + JSON.stringify(pkg) + ", {\n customShareInfo: {shareConfig:{\n singleton: " + shareItem.shareConfig.singleton + ",\n strictVersion: " + shareItem.shareConfig.strictVersion + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }}}))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "res.then(factory => factory())\n module.exports = exportModule\n "); +} + +var usedShares = new Set(); +function getUsedShares() { + return usedShares; +} +function addUsedShares(pkg) { + usedShares.add(pkg); +} +// *** Expose locally provided shared modules here +var localSharedImportMapModule = new VirtualModule("localSharedImportMap"); +function getLocalSharedImportMapPath() { + if (process.platform === "win32") { + return getLocalSharedImportMapPath_windows(); + } + return localSharedImportMapModule.getPath(); +} +var prevSharedCount; +function writeLocalSharedImportMap() { + var sharedCount = getUsedShares().size; + if (prevSharedCount !== sharedCount) { + prevSharedCount = sharedCount; + if (process.platform === "win32") { + writeLocalSharedImportMap_windows(generateLocalSharedImportMap()); + } else { + localSharedImportMapModule.writeSync(generateLocalSharedImportMap(), true); + } + } +} +function generateLocalSharedImportMap() { + var options = getNormalizeModuleFederationOptions(); + return "\n const importMap = {\n " + Array.from(getUsedShares()).map(function (pkg) { + return "\n " + JSON.stringify(pkg) + ": async () => {\n let pkg = await import(\"" + getPreBuildLibImportId(pkg) + "\")\n return pkg\n }\n "; + }).join(",") + "\n }\n const usedShared = {\n " + Array.from(getUsedShares()).map(function (key) { + var shareItem = getNormalizeShareItem(key); + return "\n " + JSON.stringify(key) + ": {\n name: " + JSON.stringify(key) + ",\n version: " + JSON.stringify(shareItem.version) + ",\n scope: [" + JSON.stringify(shareItem.scope) + "],\n loaded: false,\n from: " + JSON.stringify(options.name) + ",\n async get () {\n usedShared[" + JSON.stringify(key) + "].loaded = true\n const {" + JSON.stringify(key) + ": pkgDynamicImport} = importMap \n const res = await pkgDynamicImport()\n const exportModule = {...res}\n // All npm packages pre-built by vite will be converted to esm\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return function () {\n return exportModule\n }\n },\n shareConfig: {\n singleton: " + shareItem.shareConfig.singleton + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }\n }\n "; + }).join(',') + "\n }\n const usedRemotes = [" + Object.keys(getUsedRemotesMap()).map(function (key) { + var remote = options.remotes[key]; + return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n "; + }).join(',') + "\n ]\n export {\n usedShared,\n usedRemotes\n }\n "; +} +var REMOTE_ENTRY_ID = 'virtual:mf-REMOTE_ENTRY_ID'; +function generateRemoteEntry(options) { + var pluginImportNames = options.runtimePlugins.map(function (p, i) { + return ["$runtimePlugin_" + i, "import $runtimePlugin_" + i + " from \"" + p + "\";"]; + }); + return "\n import {init as runtimeInit, loadRemote} from \"@module-federation/runtime\";\n " + pluginImportNames.map(function (item) { + return item[1]; + }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) { + return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n "; + }).join(',') + "\n }\n import {usedShared, usedRemotes} from \"" + getLocalSharedImportMapPath() + "\"\n import {\n initResolve\n } from \"" + virtualRuntimeInitStatus.getImportId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: usedRemotes,\n shared: usedShared,\n plugins: [" + pluginImportNames.map(function (item) { + return item[0] + "()"; + }).join(', ') + "]\n });\n initRes.initShareScopeMap('" + options.shareScope + "', shared);\n initResolve(initRes)\n return initRes\n }\n\n function getExposes(moduleName) {\n if (!(moduleName in exposesMap)) throw new Error(`Module ${moduleName} does not exist in container.`)\n return (exposesMap[moduleName])().then(res => () => res)\n }\n export {\n init,\n getExposes as get\n }\n "; +} +/** + * Inject entry file, automatically init when used as host, + * and will not inject remoteEntry + */ +var hostAutoInitModule = new VirtualModule("hostAutoInit"); +function writeHostAutoInit() { + hostAutoInitModule.writeSync("\n import {init} from \"" + REMOTE_ENTRY_ID + "\"\n init()\n "); +} +function getHostAutoInitImportId() { + return hostAutoInitModule.getImportId(); +} +function getHostAutoInitPath() { + return hostAutoInitModule.getPath(); +} + +function initVirtualModules() { + writeLocalSharedImportMap(); + writeHostAutoInit(); + writeRuntimeInitStatus(); +} + +var Manifest = function Manifest() { + var mfOptions = getNormalizeModuleFederationOptions(); + var name = mfOptions.name, + filename = mfOptions.filename, + manifestOptions = mfOptions.manifest; + var mfManifestName = ""; + if (manifestOptions === true) { + mfManifestName = "mf-manifest.json"; + } + if (typeof manifestOptions !== "boolean") { + mfManifestName = path.join((manifestOptions == null ? void 0 : manifestOptions.filePath) || "", (manifestOptions == null ? void 0 : manifestOptions.fileName) || ""); + } + var extensions; + var root; + var remoteEntryFile; + return [{ + name: 'moddule-federation-manifest', + apply: 'serve', + configureServer: function configureServer(server) { + server.middlewares.use(function (req, res, next) { + if (!mfManifestName) { + next(); + return; + } + if (req.url === mfManifestName.replace(/^\/?/, "/")) { + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.end(JSON.stringify({ + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: { + name: filename, + path: '', + type: 'module' + }, + ssrRemoteEntry: { + name: filename, + path: '', + type: 'module' + }, + types: { + path: '', + name: '' + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: Array.from(getUsedShares()).map(function (shareKey) { + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: [], + sync: [] + }, + css: { + async: [], + sync: [] + } + } + }; + }), + remotes: function () { + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: mfOptions.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + return remotes; + }(), + exposes: Object.keys(mfOptions.exposes).map(function (key) { + var formatKey = key.replace('./', ''); + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: [], + sync: [] + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }) + })); + } else { + next(); + } + }); + } + }, { + name: 'moddule-federation-manifest', + enforce: 'post', + config: function config(_config) { + if (!_config.build) _config.build = {}; + if (!_config.build.manifest) _config.build.manifest = _config.build.manifest || !!manifestOptions; + }, + configResolved: function configResolved(config) { + root = config.root; + extensions = config.resolve.extensions || ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']; + }, + generateBundle: function generateBundle(options, bundle) { + try { + var _this = this; + // 递归查找模块的同步导入文件 + var _findSynchronousImports = function findSynchronousImports(fileName, array) { + var fileData = bundle[fileName]; + if (fileData && fileData.type === 'chunk') { + array.push(fileName); // 将当前文件加入预加载列表 + // 遍历该文件的同步导入文件 + fileData.imports.forEach(function (importedFile) { + if (array.indexOf(importedFile) === -1) { + _findSynchronousImports(importedFile, array); // 递归查找同步导入的文件 + } + }); + } + }; + if (!mfManifestName) return Promise.resolve(); + var exposesModules = Object.keys(mfOptions.exposes).map(function (item) { + return mfOptions.exposes[item]["import"]; + }); // 获取你提供的 moduleIds + var filesContainingModules = {}; + // 帮助函数:检查模块路径是否匹配 + var isModuleMatched = function isModuleMatched(relativeModulePath, preloadModule) { + // 先尝试直接匹配 + if (relativeModulePath === preloadModule) return true; + // 如果 preloadModule 没有后缀,尝试添加可能的后缀进行匹配 + for (var _iterator = _createForOfIteratorHelperLoose(extensions), _step; !(_step = _iterator()).done;) { + var ext = _step.value; + if (relativeModulePath === "" + preloadModule + ext) { + return true; + } + } + return false; + }; + // 遍历打包生成的每个文件 + for (var _i = 0, _Object$entries = Object.entries(bundle); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _Object$entries[_i], + fileName = _Object$entries$_i[0], + fileData = _Object$entries$_i[1]; + if (mfOptions.filename.replace(/[\[\]]/g, "_") === fileData.name) { + remoteEntryFile = fileData.fileName; + } + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i2 = 0, _Object$keys = Object.keys(fileData.modules); _i2 < _Object$keys.length; _i2++) { + var modulePath = _Object$keys[_i2]; + // 将绝对路径转换为相对于 Vite root 的相对路径 + var relativeModulePath = path.relative(root, modulePath); + // 检查模块是否在 preloadModules 列表中 + for (var _iterator2 = _createForOfIteratorHelperLoose(exposesModules), _step2; !(_step2 = _iterator2()).done;) { + var preloadModule = _step2.value; + var formatPreloadModule = preloadModule.replace("./", ""); + if (isModuleMatched(relativeModulePath, formatPreloadModule)) { + var _filesContainingModul; + if (!filesContainingModules[preloadModule]) { + filesContainingModules[preloadModule] = { + sync: [], + async: [] + }; + } + console.log(Object.keys(fileData.modules)); + filesContainingModules[preloadModule].sync.push(fileName); + (_filesContainingModul = filesContainingModules[preloadModule].async).push.apply(_filesContainingModul, fileData.dynamicImports || []); + _findSynchronousImports(fileName, filesContainingModules[preloadModule].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + } + ; + var fileToShareKey = {}; + return Promise.resolve(Promise.all(Array.from(getUsedShares()).map(function (shareKey) { + try { + return Promise.resolve(_this.resolve(getPreBuildLibImportId(shareKey))).then(function (_this$resolve) { + var file = _this$resolve.id.split("?")[0]; + fileToShareKey[file] = shareKey; + }); + } catch (e) { + return Promise.reject(e); + } + }))).then(function () { + // 遍历打包生成的每个文件 + for (var _i3 = 0, _Object$entries2 = Object.entries(bundle); _i3 < _Object$entries2.length; _i3++) { + var _Object$entries2$_i = _Object$entries2[_i3], + _fileName = _Object$entries2$_i[0], + _fileData = _Object$entries2$_i[1]; + if (_fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i4 = 0, _Object$keys2 = Object.keys(_fileData.modules); _i4 < _Object$keys2.length; _i4++) { + var _modulePath = _Object$keys2[_i4]; + var sharedKey = fileToShareKey[_modulePath]; + if (sharedKey) { + var _filesContainingModul2; + if (!filesContainingModules[sharedKey]) { + filesContainingModules[sharedKey] = { + sync: [], + async: [] + }; + } + filesContainingModules[sharedKey].sync.push(_fileName); + (_filesContainingModul2 = filesContainingModules[sharedKey].async).push.apply(_filesContainingModul2, _fileData.dynamicImports || []); + _findSynchronousImports(_fileName, filesContainingModules[sharedKey].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + Object.keys(filesContainingModules).forEach(function (key) { + filesContainingModules[key].sync = Array.from(new Set(filesContainingModules[key].sync)); + filesContainingModules[key].async = Array.from(new Set(filesContainingModules[key].async)); + }); + _this.emitFile({ + type: 'asset', + fileName: mfManifestName, + source: generateMFManifest(filesContainingModules) + }); + }); + } catch (e) { + return Promise.reject(e); + } + } + }]; + function generateMFManifest(preloadMap) { + var options = getNormalizeModuleFederationOptions(); + var name = options.name; + var remoteEntry = { + name: remoteEntryFile, + path: '', + type: 'module' + }; + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: options.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + // @ts-ignore + var shared = Array.from(getUsedShares()).map(function (shareKey) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + if (!preloadMap[shareKey]) return; + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: preloadMap[shareKey].async, + sync: preloadMap[shareKey].sync + }, + css: { + async: [], + sync: [] + } + } + }; + }).filter(function (item) { + return item; + }); + var exposes = Object.keys(options.exposes).map(function (key) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + var formatKey = key.replace('./', ''); + var sourceFile = options.exposes[key]["import"]; + if (!preloadMap[sourceFile]) return; + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: preloadMap[sourceFile].async, + sync: preloadMap[sourceFile].sync + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }).filter(function (item) { + return item; + }); // Filter out any null values + var result = { + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: remoteEntry, + ssrRemoteEntry: remoteEntry, + types: { + path: '', + name: '' + // "zip": "@mf-types.zip", + // "api": "@mf-types.d.ts" + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: shared, + remotes: remotes, + exposes: exposes + }; + return JSON.stringify(result); + } +}; + +var _resolve, + promise = new Promise(function (resolve, reject) { + _resolve = resolve; + }); +var parsePromise = promise; +var parseStartSet = new Set(); +var parseEndSet = new Set(); +function pluginModuleParseEnd (excludeFn) { + return [{ + name: "_", + apply: "serve", + config: function config() { + // No waiting in development mode + _resolve(1); + } + }, { + enforce: "pre", + name: "parseStart", + apply: "build", + load: function load(id) { + if (excludeFn(id)) { + return; + } + parseStartSet.add(id); + } + }, { + enforce: "post", + name: "parseEnd", + apply: "build", + moduleParsed: function moduleParsed(module) { + var id = module.id; + if (excludeFn(id)) { + return; + } + parseEndSet.add(id); + if (parseStartSet.size === parseEndSet.size) { + _resolve(1); + } + } + }]; +} + +var filter = pluginutils.createFilter(); +function pluginProxyRemoteEntry () { + return { + name: 'proxyRemoteEntry', + enforce: 'post', + resolveId: function resolveId(id) { + if (id === REMOTE_ENTRY_ID) { + return REMOTE_ENTRY_ID; + } + }, + load: function load(id) { + if (id === REMOTE_ENTRY_ID) { + return parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + }); + } + }, + transform: function transform(code, id) { + try { + if (!filter(id)) return Promise.resolve(); + if (id.includes(REMOTE_ENTRY_ID)) { + return Promise.resolve(parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + })); + } + return Promise.resolve(); + } catch (e) { + return Promise.reject(e); + } + } + }; +} + +pluginutils.createFilter(); +function pluginProxyRemotes (options) { + var remotes = options.remotes; + return { + name: "proxyRemotes", + config: function config(_config, _ref) { + var _command = _ref.command; + Object.keys(remotes).forEach(function (key) { + var remote = remotes[key]; + _config.resolve.alias.push({ + find: new RegExp("^(" + remote.name + "(/.*|$))"), + replacement: "$1", + customResolver: function customResolver(source) { + var remoteModule = getRemoteVirtualModule(source, _command); + addUsedRemote(remote.name, source); + return remoteModule.getPath(); + } + }); + }); + } + }; +} + +/** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ +var PromiseStore = /*#__PURE__*/function () { + function PromiseStore() { + this.promiseMap = new Map(); + this.resolveMap = new Map(); + } + var _proto = PromiseStore.prototype; + _proto.set = function set(id, promise) { + if (this.resolveMap.has(id)) { + promise.then(this.resolveMap.get(id)); + this.resolveMap["delete"](id); + } + this.promiseMap.set(id, promise); + }; + _proto.get = function get(id) { + var _this = this; + if (this.promiseMap.has(id)) { + return this.promiseMap.get(id); + } + var pendingPromise = new Promise(function (resolve) { + _this.resolveMap.set(id, resolve); + }); + this.promiseMap.set(id, pendingPromise); + return pendingPromise; + }; + return PromiseStore; +}(); + +function proxySharedModule(options) { + var _options$shared = options.shared, + shared = _options$shared === void 0 ? {} : _options$shared; + return [{ + name: "generateLocalSharedImportMap", + enforce: "post", + load: function load(id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + }, + transform: function transform(code, id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + } + }, { + name: 'proxyPreBuildShared', + enforce: 'post', + config: function config(_config, _ref) { + var _config$resolve$alias, _config$resolve$alias2; + var command = _ref.command; + (_config$resolve$alias = _config.resolve.alias).push.apply(_config$resolve$alias, Object.keys(shared).map(function (key) { + var pattern = key.endsWith("/") ? "(^" + key.replace(/\/$/, "") + "(/.+)?$)" : "(^" + key + "$)"; + return { + // Intercept all shared requests and proxy them to loadShare + find: new RegExp(pattern), + replacement: "$1", + customResolver: function customResolver(source, importer) { + var loadSharePath = getLoadShareModulePath(source); + writeLoadShareModule(source, shared[key], command); + writePreBuildLibPath(source); + addUsedShares(source); + writeLocalSharedImportMap(); + return this.resolve(loadSharePath); + } + }; + })); + var savePrebuild = new PromiseStore(); + (_config$resolve$alias2 = _config.resolve.alias).push.apply(_config$resolve$alias2, Object.keys(shared).map(function (key) { + return command === "build" ? { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: function replacement($1) { + var pkgName = VirtualModule.findModule(PREBUILD_TAG, $1).name; + return pkgName; + } + } : { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: "$1", + customResolver: function customResolver(source, importer) { + try { + var _this = this; + var pkgName = VirtualModule.findModule(PREBUILD_TAG, source).name; + if (importer.includes(LOAD_SHARE_TAG)) { + // save pre-bunding module id + savePrebuild.set(pkgName, _this.resolve(pkgName).then(function (item) { + return item.id; + })); + } + // Fix localSharedImportMap import id + var _resolve = _this.resolve; + return Promise.resolve(savePrebuild.get(pkgName)).then(function (_savePrebuild$get) { + return Promise.resolve(_resolve.call(_this, _savePrebuild$get)); + }); + } catch (e) { + return Promise.reject(e); + } + } + }; + })); + } + }, { + name: "watchLocalSharedImportMap", + apply: "serve", + config: function config(_config2) { + _config2.optimizeDeps = defu.defu(_config2.optimizeDeps, { + exclude: [getLocalSharedImportMapPath()] + }); + _config2.server = defu.defu(_config2.server, { + watch: { + ignored: [] + } + }); + var watch = _config2.server.watch; + watch.ignored = [].concat(watch.ignored); + watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**"); + } + }]; +} + +var aliasToArrayPlugin = { + name: 'alias-transform-plugin', + config: function config(_config, _ref) { + if (!_config.resolve) _config.resolve = {}; + if (!_config.resolve.alias) _config.resolve.alias = []; + var alias = _config.resolve.alias; + if (typeof alias === 'object' && !Array.isArray(alias)) { + _config.resolve.alias = Object.entries(alias).map(function (_ref2) { + var find = _ref2[0], + replacement = _ref2[1]; + return { + find: find, + replacement: replacement + }; + }); + } + } +}; + +var normalizeOptimizeDepsPlugin = { + name: 'normalizeOptimizeDeps', + config: function config(_config, _ref) { + var optimizeDeps = _config.optimizeDeps; + if (!optimizeDeps) { + _config.optimizeDeps = {}; + optimizeDeps = _config.optimizeDeps; + } + // todo: fix this workaround + optimizeDeps.force = true; + if (!optimizeDeps.include) optimizeDeps.include = []; + if (!optimizeDeps.needsInterop) optimizeDeps.needsInterop = []; + } +}; + +function federation(mfUserOptions) { + var options = normalizeModuleFederationOptions(mfUserOptions); + initVirtualModules(); + var name = options.name, + shared = options.shared, + filename = options.filename; + if (!name) throw new Error("name is required"); + return [aliasToArrayPlugin, normalizeOptimizeDepsPlugin].concat(addEntry({ + entryName: 'remoteEntry', + entryPath: REMOTE_ENTRY_ID, + fileName: filename + }), addEntry({ + entryName: 'hostInit', + entryPath: getHostAutoInitPath() + }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) { + return id.includes(getHostAutoInitImportId()) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath()); + }), proxySharedModule({ + shared: shared + }), [PluginDevProxyModuleTopLevelAwait(), { + name: 'module-federation-vite', + enforce: 'post', + config: function config(_config, _ref) { + var _config$optimizeDeps; + _config.resolve.alias.push({ + find: '@module-federation/runtime', + replacement: require.resolve('@module-federation/runtime') + }); + (_config$optimizeDeps = _config.optimizeDeps) == null || (_config$optimizeDeps = _config$optimizeDeps.include) == null || _config$optimizeDeps.push('@module-federation/runtime'); + } + }], Manifest()); +} + +exports.federation = federation; diff --git a/lib/index.d.ts b/lib/index.d.ts new file mode 100644 index 0000000..c543f08 --- /dev/null +++ b/lib/index.d.ts @@ -0,0 +1,4 @@ +import { Plugin } from 'vite'; +import { ModuleFederationOptions } from './utils/normalizeModuleFederationOptions'; +declare function federation(mfUserOptions: ModuleFederationOptions): Plugin[]; +export { federation }; diff --git a/lib/index.esm.js b/lib/index.esm.js new file mode 100644 index 0000000..dd6b064 --- /dev/null +++ b/lib/index.esm.js @@ -0,0 +1,1239 @@ +import * as fs from 'fs'; +import { mkdirSync, writeFileSync, existsSync, writeFile } from 'fs'; +import * as path from 'pathe'; +import path__default, { parse, join, dirname, resolve, relative } from 'pathe'; +import { createFilter } from '@rollup/pluginutils'; +import { walk } from 'estree-walker'; +import MagicString from 'magic-string'; +import { defu } from 'defu'; + +var addEntry = function addEntry(_ref) { + var entryName = _ref.entryName, + entryPath = _ref.entryPath, + fileName = _ref.fileName; + var devEntryPath = entryPath.startsWith("virtual:mf") ? "/@id/" + entryPath : entryPath; + var entryFiles = []; + var htmlFilePath; + var _command; + return [{ + name: 'add-entry', + apply: "serve", + config: function config(_config, _ref2) { + var command = _ref2.command; + _command = command; + }, + configureServer: function configureServer(server) { + var _server$httpServer; + (_server$httpServer = server.httpServer) == null || _server$httpServer.once == null || _server$httpServer.once('listening', function () { + var port = server.config.server.port; + fetch(path.join("http://localhost:" + port, "" + devEntryPath))["catch"](function (e) {}); + }); + server.middlewares.use(function (req, res, next) { + if (!fileName) { + next(); + return; + } + if (req.url && req.url.startsWith(fileName.replace(/^\/?/, '/'))) { + req.url = devEntryPath; + } + next(); + }); + }, + transformIndexHtml: function transformIndexHtml(c) { + return c.replace('', ""); + } + }, { + name: "add-entry", + enforce: "post", + configResolved: function configResolved(config) { + var inputOptions = config.build.rollupOptions.input; + if (!inputOptions) { + htmlFilePath = path.resolve(config.root, 'index.html'); + } else if (typeof inputOptions === 'string') { + entryFiles = [inputOptions]; + htmlFilePath = path.resolve(config.root, inputOptions); + } else if (Array.isArray(inputOptions)) { + entryFiles = inputOptions; + htmlFilePath = path.resolve(config.root, inputOptions[0]); + } else if (typeof inputOptions === 'object') { + entryFiles = Object.values(inputOptions); + htmlFilePath = path.resolve(config.root, Object.values(inputOptions)[0]); + } + }, + buildStart: function buildStart() { + var _this$emitFile; + if (_command === "serve") return; + var hasHash = fileName == null || fileName.includes == null ? void 0 : fileName.includes("[hash"); + this.emitFile((_this$emitFile = { + name: entryName + }, _this$emitFile[hasHash ? "name" : "fileName"] = fileName, _this$emitFile.type = 'chunk', _this$emitFile.id = entryPath, _this$emitFile.preserveSignature = 'strict', _this$emitFile)); + if (htmlFilePath) { + var htmlContent = fs.readFileSync(htmlFilePath, 'utf-8'); + var scriptRegex = /]*src=["']([^"']+)["'][^>]*>/gi; + var match; + while ((match = scriptRegex.exec(htmlContent)) !== null) { + entryFiles.push(match[1]); + } + } + }, + transform: function transform(code, id) { + if (entryFiles.some(function (file) { + return id.endsWith(file); + })) { + var injection = "\n import " + JSON.stringify(entryPath) + ";\n "; + return injection + code; + } + } + }]; +}; + +/** + * Solve the problem that dev mode dependency prebunding does not support top-level await syntax + */ +function PluginDevProxyModuleTopLevelAwait() { + var filterFunction = createFilter(); + return { + name: "dev-proxy-module-top-level-await", + apply: "serve", + transform: function transform(code, id) { + if (!code.includes("/*mf top-level-await placeholder replacement mf*/")) { + return null; + } + if (!filterFunction(id)) return null; + var ast; + try { + ast = this.parse(code, { + allowReturnOutsideFunction: true + }); + } catch (e) { + throw new Error(id + ": " + e); + } + var magicString = new MagicString(code); + walk(ast, { + enter: function enter(node) { + if (node.type === 'ExportNamedDeclaration' && node.specifiers) { + var exportSpecifiers = node.specifiers.map(function (specifier) { + return specifier.exported.name; + }); + var proxyStatements = exportSpecifiers.map(function (name) { + return "\n const __mfproxy__await" + name + " = await " + name + "();\n const __mfproxy__" + name + " = () => __mfproxy__await" + name + ";\n "; + }).join('\n'); + var exportStatements = exportSpecifiers.map(function (name) { + return "__mfproxy__" + name + " as " + name; + }).join(', '); + var start = node.start; + var end = node.end; + var replacement = proxyStatements + "\nexport { " + exportStatements + " };"; + magicString.overwrite(start, end, replacement); + } + if (node.type === 'ExportDefaultDeclaration') { + var declaration = node.declaration; + var _start = node.start; + var _end = node.end; + var proxyStatement; + var exportStatement = 'default'; + if (declaration.type === 'Identifier') { + // example: export default foo; + proxyStatement = "\n const __mfproxy__awaitdefault = await " + declaration.name + "();\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else if (declaration.type === 'CallExpression' || declaration.type === 'FunctionDeclaration') { + // example: export default someFunction(); + var declarationCode = code.slice(declaration.start, declaration.end); + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + declarationCode + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else { + // other + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + code.slice(declaration.start, declaration.end) + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } + var _replacement = proxyStatement + "\nexport { __mfproxy__default as " + exportStatement + " };"; + magicString.overwrite(_start, _end, _replacement); + } + } + }); + return { + code: magicString.toString(), + map: magicString.generateMap({ + hires: true + }) + }; + } + }; +} + +function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; +} +function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function () { + return o >= r.length ? { + done: !0 + } : { + done: !1, + value: r[o++] + }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } +} + +function normalizeExposesItem(key, item) { + var importPath = ''; + if (typeof item === 'string') { + importPath = item; + } + if (typeof item === 'object') { + importPath = item["import"]; + } + return { + "import": importPath + }; +} +function normalizeExposes(exposes) { + if (!exposes) return {}; + var res = {}; + Object.keys(exposes).forEach(function (key) { + res[key] = normalizeExposesItem(key, exposes[key]); + }); + return res; +} +function normalizeRemotes(remotes) { + if (!remotes) return {}; + var result = {}; + if (typeof remotes === 'object') { + Object.keys(remotes).forEach(function (key) { + result[key] = normalizeRemoteItem(key, remotes[key]); + }); + } + return result; +} +function normalizeRemoteItem(key, remote) { + if (typeof remote === 'string') { + var _remote$split = remote.split('@'), + entryGlobalName = _remote$split[0]; + var entry = remote.replace(entryGlobalName + '@', ''); + return { + type: 'var', + name: key, + entry: entry, + entryGlobalName: entryGlobalName, + shareScope: 'default' + }; + } + return Object.assign({ + type: 'var', + name: key, + shareScope: 'default', + entryGlobalName: key + }, remote); +} +function removePathFromNpmPackage(packageString) { + // 匹配npm包名的正则表达式,忽略路径部分 + var regex = /^(?:@[^/]+\/)?[^/]+/; + // 使用正则表达式匹配并提取包名 + var match = packageString.match(regex); + // 返回匹配到的包名,如果没有匹配到则返回原字符串 + return match ? match[0] : packageString; +} +function normalizeShareItem(key, shareItem) { + var version; + try { + version = require(path.join(removePathFromNpmPackage(key), 'package.json')).version; + } catch (e) { + console.log(e); + } + if (typeof shareItem === 'string') { + return { + name: shareItem, + version: version, + scope: 'default', + from: '', + shareConfig: { + singleton: false, + requiredVersion: "^" + version || '*' + } + }; + } + return { + name: key, + from: '', + version: shareItem.version || version, + scope: shareItem.shareScope || 'default', + shareConfig: { + singleton: shareItem.singleton || false, + requiredVersion: shareItem.requiredVersion || "^" + version || '*', + strictVersion: !!shareItem.strictVersion + } + }; +} +function normalizeShared(shared) { + if (!shared) return {}; + var result = {}; + if (Array.isArray(shared)) { + shared.forEach(function (key) { + result[key] = normalizeShareItem(key, key); + }); + return result; + } + if (typeof shared === 'object') { + Object.keys(shared).forEach(function (key) { + result[key] = normalizeShareItem(key, shared[key]); + }); + } + return result; +} +function normalizeLibrary(library) { + if (!library) return undefined; + return library; +} +function normalizeManifest(manifest) { + if (manifest === void 0) { + manifest = false; + } + if (typeof manifest === "boolean") { + return manifest; + } + return Object.assign({ + filePath: "", + disableAssetsAnalyze: false, + fileName: "mf-manifest.json" + }, manifest); +} +var config; +function getNormalizeModuleFederationOptions() { + return config; +} +function getNormalizeShareItem(key) { + var options = getNormalizeModuleFederationOptions(); + var shareItem = options.shared[removePathFromNpmPackage(key)] || options.shared[removePathFromNpmPackage(key) + "/"]; + return shareItem; +} +function normalizeModuleFederationOptions(options) { + return config = { + exposes: normalizeExposes(options.exposes), + filename: options.filename || 'remoteEntry-[hash]', + library: normalizeLibrary(options.library), + name: options.name, + // remoteType: options.remoteType, + remotes: normalizeRemotes(options.remotes), + runtime: options.runtime, + shareScope: options.shareScope || 'default', + shared: normalizeShared(options.shared), + runtimePlugins: options.runtimePlugins || [], + getPublicPath: options.getPublicPath, + implementation: options.implementation, + manifest: normalizeManifest(options.manifest), + dev: options.dev, + dts: options.dts + }; +} + +/** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ +/** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ +function packageNameEncode(name) { + if (typeof name !== "string") throw new Error("A string package name is required"); + return name.replace(/@/g, "_mf_0_").replace(/\//g, "_mf_1_").replace(/-/g, "_mf_2_").replace(/\./g, "_mf_3_"); +} +/** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ +function packageNameDecode(encoded) { + if (typeof encoded !== "string") throw new Error("A string encoded file name is required"); + return encoded.replace(/_mf_0_/g, "@").replace(/_mf_1_/g, "/").replace(/_mf_2_/g, "-").replace(/_mf_3_/g, "."); +} + +/** + * https://github.com/module-federation/vite/issues/68 + */ +function getLocalSharedImportMapPath_windows() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + name = _getNormalizeModuleFe.name; + return path__default.resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap"); +} +function writeLocalSharedImportMap_windows(content) { + var localSharedImportMapId = getLocalSharedImportMapPath_windows(); + createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content); +} +function createFile(filePath, content) { + var dir = path__default.dirname(filePath); + mkdirSync(dir, { + recursive: true + }); + writeFileSync(filePath, content); +} + +var nodeModulesDir = function findNodeModulesDir(startDir) { + if (startDir === void 0) { + startDir = process.cwd(); + } + var currentDir = startDir; + while (currentDir !== parse(currentDir).root) { + var nodeModulesPath = join(currentDir, 'node_modules'); + if (existsSync(nodeModulesPath)) { + return nodeModulesPath; + } + currentDir = dirname(currentDir); + } + return ""; +}(); +var virtualPackageName = "__mf__virtual"; +if (!existsSync(resolve(nodeModulesDir, virtualPackageName))) { + mkdirSync(resolve(nodeModulesDir, virtualPackageName)); +} +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "empty.js"), ""); +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.stringify({ + name: virtualPackageName, + main: "empty.js" +})); +var patternMap = {}; +var cacheMap = {}; +/** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ +var VirtualModule = /*#__PURE__*/function () { + function VirtualModule(name, tag, suffix) { + var _name$split$slice$pop; + if (tag === void 0) { + tag = '__mf_v__'; + } + if (suffix === void 0) { + suffix = ""; + } + this.name = void 0; + this.tag = void 0; + this.suffix = void 0; + this.inited = false; + this.name = name; + this.tag = tag; + this.suffix = suffix || ((_name$split$slice$pop = name.split(".").slice(1).pop()) == null ? void 0 : _name$split$slice$pop.replace(/(.)/, ".$1")) || ".js"; + if (!cacheMap[this.tag]) cacheMap[this.tag] = {}; + cacheMap[this.tag][this.name] = this; + } + VirtualModule.findModule = function findModule(tag, str) { + if (str === void 0) { + str = ""; + } + if (!patternMap[tag]) patternMap[tag] = new RegExp("(.*" + packageNameEncode(tag) + "(.+?)" + packageNameEncode(tag) + ".*)"); + var moduleName = (str.match(patternMap[tag]) || [])[2]; + if (moduleName) return cacheMap[tag][packageNameDecode(moduleName)]; + return undefined; + }; + var _proto = VirtualModule.prototype; + _proto.getPath = function getPath() { + return resolve(nodeModulesDir, this.getImportId()); + }; + _proto.getImportId = function getImportId() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + mfName = _getNormalizeModuleFe.name; + return virtualPackageName + "/" + packageNameEncode("" + mfName + this.tag + this.name + this.tag) + this.suffix; + }; + _proto.writeSync = function writeSync(code, force) { + if (!force && this.inited) return; + if (!this.inited) { + this.inited = true; + } + writeFileSync(this.getPath(), code); + }; + _proto.write = function write(code) { + writeFile(this.getPath(), code, function () {}); + }; + return VirtualModule; +}(); + +var virtualRuntimeInitStatus = new VirtualModule("runtimeInit"); +function writeRuntimeInitStatus() { + virtualRuntimeInitStatus.writeSync("\n let initResolve, initReject\n const initPromise = new Promise((re, rj) => {\n initResolve = re\n initReject = rj\n })\n export {\n initPromise,\n initResolve,\n initReject\n }\n "); +} + +var cacheRemoteMap = {}; +var LOAD_REMOTE_TAG = '__loadRemote__'; +function getRemoteVirtualModule(remote, command) { + if (!cacheRemoteMap[remote]) { + cacheRemoteMap[remote] = new VirtualModule(remote, LOAD_REMOTE_TAG, ".js"); + cacheRemoteMap[remote].writeSync(generateRemotes(remote, command)); + } + var virtual = cacheRemoteMap[remote]; + return virtual; +} +var usedRemotesMap = { + // remote1: {remote1/App, remote1, remote1/Button} +}; +function addUsedRemote(remoteKey, remoteModule) { + if (!usedRemotesMap[remoteKey]) usedRemotesMap[remoteKey] = new Set(); + usedRemotesMap[remoteKey].add(remoteModule); +} +function getUsedRemotesMap() { + return usedRemotesMap; +} +function generateRemotes(id, command) { + return "\n const {loadRemote} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadRemote(" + JSON.stringify(id) + "))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "initPromise.then(_ => res)\n module.exports = exportModule\n "; +} + +/** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ +// *** __prebuild__ +var preBuildCacheMap = {}; +var PREBUILD_TAG = "__prebuild__"; +function writePreBuildLibPath(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + preBuildCacheMap[pkg].writeSync(""); +} +function getPreBuildLibImportId(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + var importId = preBuildCacheMap[pkg].getImportId(); + return importId; +} +// *** __loadShare__ +var LOAD_SHARE_TAG = "__loadShare__"; +var loadShareCacheMap = {}; +function getLoadShareModulePath(pkg) { + if (!loadShareCacheMap[pkg]) loadShareCacheMap[pkg] = new VirtualModule(pkg, LOAD_SHARE_TAG, ".js"); + var filepath = loadShareCacheMap[pkg].getPath(); + return filepath; +} +function writeLoadShareModule(pkg, shareItem, command) { + loadShareCacheMap[pkg].writeSync("\n \n ;() => import(" + JSON.stringify(getPreBuildLibImportId(pkg)) + ").catch(() => {});\n // dev uses dynamic import to separate chunks\n " + (command !== "build" ? ";() => import(" + JSON.stringify(pkg) + ").catch(() => {});" : '') + "\n const {loadShare} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadShare(" + JSON.stringify(pkg) + ", {\n customShareInfo: {shareConfig:{\n singleton: " + shareItem.shareConfig.singleton + ",\n strictVersion: " + shareItem.shareConfig.strictVersion + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }}}))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "res.then(factory => factory())\n module.exports = exportModule\n "); +} + +var usedShares = new Set(); +function getUsedShares() { + return usedShares; +} +function addUsedShares(pkg) { + usedShares.add(pkg); +} +// *** Expose locally provided shared modules here +var localSharedImportMapModule = new VirtualModule("localSharedImportMap"); +function getLocalSharedImportMapPath() { + if (process.platform === "win32") { + return getLocalSharedImportMapPath_windows(); + } + return localSharedImportMapModule.getPath(); +} +var prevSharedCount; +function writeLocalSharedImportMap() { + var sharedCount = getUsedShares().size; + if (prevSharedCount !== sharedCount) { + prevSharedCount = sharedCount; + if (process.platform === "win32") { + writeLocalSharedImportMap_windows(generateLocalSharedImportMap()); + } else { + localSharedImportMapModule.writeSync(generateLocalSharedImportMap(), true); + } + } +} +function generateLocalSharedImportMap() { + var options = getNormalizeModuleFederationOptions(); + return "\n const importMap = {\n " + Array.from(getUsedShares()).map(function (pkg) { + return "\n " + JSON.stringify(pkg) + ": async () => {\n let pkg = await import(\"" + getPreBuildLibImportId(pkg) + "\")\n return pkg\n }\n "; + }).join(",") + "\n }\n const usedShared = {\n " + Array.from(getUsedShares()).map(function (key) { + var shareItem = getNormalizeShareItem(key); + return "\n " + JSON.stringify(key) + ": {\n name: " + JSON.stringify(key) + ",\n version: " + JSON.stringify(shareItem.version) + ",\n scope: [" + JSON.stringify(shareItem.scope) + "],\n loaded: false,\n from: " + JSON.stringify(options.name) + ",\n async get () {\n usedShared[" + JSON.stringify(key) + "].loaded = true\n const {" + JSON.stringify(key) + ": pkgDynamicImport} = importMap \n const res = await pkgDynamicImport()\n const exportModule = {...res}\n // All npm packages pre-built by vite will be converted to esm\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return function () {\n return exportModule\n }\n },\n shareConfig: {\n singleton: " + shareItem.shareConfig.singleton + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }\n }\n "; + }).join(',') + "\n }\n const usedRemotes = [" + Object.keys(getUsedRemotesMap()).map(function (key) { + var remote = options.remotes[key]; + return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n "; + }).join(',') + "\n ]\n export {\n usedShared,\n usedRemotes\n }\n "; +} +var REMOTE_ENTRY_ID = 'virtual:mf-REMOTE_ENTRY_ID'; +function generateRemoteEntry(options) { + var pluginImportNames = options.runtimePlugins.map(function (p, i) { + return ["$runtimePlugin_" + i, "import $runtimePlugin_" + i + " from \"" + p + "\";"]; + }); + return "\n import {init as runtimeInit, loadRemote} from \"@module-federation/runtime\";\n " + pluginImportNames.map(function (item) { + return item[1]; + }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) { + return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n "; + }).join(',') + "\n }\n import {usedShared, usedRemotes} from \"" + getLocalSharedImportMapPath() + "\"\n import {\n initResolve\n } from \"" + virtualRuntimeInitStatus.getImportId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: usedRemotes,\n shared: usedShared,\n plugins: [" + pluginImportNames.map(function (item) { + return item[0] + "()"; + }).join(', ') + "]\n });\n initRes.initShareScopeMap('" + options.shareScope + "', shared);\n initResolve(initRes)\n return initRes\n }\n\n function getExposes(moduleName) {\n if (!(moduleName in exposesMap)) throw new Error(`Module ${moduleName} does not exist in container.`)\n return (exposesMap[moduleName])().then(res => () => res)\n }\n export {\n init,\n getExposes as get\n }\n "; +} +/** + * Inject entry file, automatically init when used as host, + * and will not inject remoteEntry + */ +var hostAutoInitModule = new VirtualModule("hostAutoInit"); +function writeHostAutoInit() { + hostAutoInitModule.writeSync("\n import {init} from \"" + REMOTE_ENTRY_ID + "\"\n init()\n "); +} +function getHostAutoInitImportId() { + return hostAutoInitModule.getImportId(); +} +function getHostAutoInitPath() { + return hostAutoInitModule.getPath(); +} + +function initVirtualModules() { + writeLocalSharedImportMap(); + writeHostAutoInit(); + writeRuntimeInitStatus(); +} + +var Manifest = function Manifest() { + var mfOptions = getNormalizeModuleFederationOptions(); + var name = mfOptions.name, + filename = mfOptions.filename, + manifestOptions = mfOptions.manifest; + var mfManifestName = ""; + if (manifestOptions === true) { + mfManifestName = "mf-manifest.json"; + } + if (typeof manifestOptions !== "boolean") { + mfManifestName = join((manifestOptions == null ? void 0 : manifestOptions.filePath) || "", (manifestOptions == null ? void 0 : manifestOptions.fileName) || ""); + } + var extensions; + var root; + var remoteEntryFile; + return [{ + name: 'moddule-federation-manifest', + apply: 'serve', + configureServer: function configureServer(server) { + server.middlewares.use(function (req, res, next) { + if (!mfManifestName) { + next(); + return; + } + if (req.url === mfManifestName.replace(/^\/?/, "/")) { + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.end(JSON.stringify({ + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: { + name: filename, + path: '', + type: 'module' + }, + ssrRemoteEntry: { + name: filename, + path: '', + type: 'module' + }, + types: { + path: '', + name: '' + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: Array.from(getUsedShares()).map(function (shareKey) { + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: [], + sync: [] + }, + css: { + async: [], + sync: [] + } + } + }; + }), + remotes: function () { + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: mfOptions.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + return remotes; + }(), + exposes: Object.keys(mfOptions.exposes).map(function (key) { + var formatKey = key.replace('./', ''); + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: [], + sync: [] + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }) + })); + } else { + next(); + } + }); + } + }, { + name: 'moddule-federation-manifest', + enforce: 'post', + config: function config(_config) { + if (!_config.build) _config.build = {}; + if (!_config.build.manifest) _config.build.manifest = _config.build.manifest || !!manifestOptions; + }, + configResolved: function configResolved(config) { + root = config.root; + extensions = config.resolve.extensions || ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']; + }, + generateBundle: function generateBundle(options, bundle) { + try { + var _this = this; + // 递归查找模块的同步导入文件 + var _findSynchronousImports = function findSynchronousImports(fileName, array) { + var fileData = bundle[fileName]; + if (fileData && fileData.type === 'chunk') { + array.push(fileName); // 将当前文件加入预加载列表 + // 遍历该文件的同步导入文件 + fileData.imports.forEach(function (importedFile) { + if (array.indexOf(importedFile) === -1) { + _findSynchronousImports(importedFile, array); // 递归查找同步导入的文件 + } + }); + } + }; + if (!mfManifestName) return Promise.resolve(); + var exposesModules = Object.keys(mfOptions.exposes).map(function (item) { + return mfOptions.exposes[item]["import"]; + }); // 获取你提供的 moduleIds + var filesContainingModules = {}; + // 帮助函数:检查模块路径是否匹配 + var isModuleMatched = function isModuleMatched(relativeModulePath, preloadModule) { + // 先尝试直接匹配 + if (relativeModulePath === preloadModule) return true; + // 如果 preloadModule 没有后缀,尝试添加可能的后缀进行匹配 + for (var _iterator = _createForOfIteratorHelperLoose(extensions), _step; !(_step = _iterator()).done;) { + var ext = _step.value; + if (relativeModulePath === "" + preloadModule + ext) { + return true; + } + } + return false; + }; + // 遍历打包生成的每个文件 + for (var _i = 0, _Object$entries = Object.entries(bundle); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _Object$entries[_i], + fileName = _Object$entries$_i[0], + fileData = _Object$entries$_i[1]; + if (mfOptions.filename.replace(/[\[\]]/g, "_") === fileData.name) { + remoteEntryFile = fileData.fileName; + } + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i2 = 0, _Object$keys = Object.keys(fileData.modules); _i2 < _Object$keys.length; _i2++) { + var modulePath = _Object$keys[_i2]; + // 将绝对路径转换为相对于 Vite root 的相对路径 + var relativeModulePath = relative(root, modulePath); + // 检查模块是否在 preloadModules 列表中 + for (var _iterator2 = _createForOfIteratorHelperLoose(exposesModules), _step2; !(_step2 = _iterator2()).done;) { + var preloadModule = _step2.value; + var formatPreloadModule = preloadModule.replace("./", ""); + if (isModuleMatched(relativeModulePath, formatPreloadModule)) { + var _filesContainingModul; + if (!filesContainingModules[preloadModule]) { + filesContainingModules[preloadModule] = { + sync: [], + async: [] + }; + } + console.log(Object.keys(fileData.modules)); + filesContainingModules[preloadModule].sync.push(fileName); + (_filesContainingModul = filesContainingModules[preloadModule].async).push.apply(_filesContainingModul, fileData.dynamicImports || []); + _findSynchronousImports(fileName, filesContainingModules[preloadModule].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + } + ; + var fileToShareKey = {}; + return Promise.resolve(Promise.all(Array.from(getUsedShares()).map(function (shareKey) { + try { + return Promise.resolve(_this.resolve(getPreBuildLibImportId(shareKey))).then(function (_this$resolve) { + var file = _this$resolve.id.split("?")[0]; + fileToShareKey[file] = shareKey; + }); + } catch (e) { + return Promise.reject(e); + } + }))).then(function () { + // 遍历打包生成的每个文件 + for (var _i3 = 0, _Object$entries2 = Object.entries(bundle); _i3 < _Object$entries2.length; _i3++) { + var _Object$entries2$_i = _Object$entries2[_i3], + _fileName = _Object$entries2$_i[0], + _fileData = _Object$entries2$_i[1]; + if (_fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i4 = 0, _Object$keys2 = Object.keys(_fileData.modules); _i4 < _Object$keys2.length; _i4++) { + var _modulePath = _Object$keys2[_i4]; + var sharedKey = fileToShareKey[_modulePath]; + if (sharedKey) { + var _filesContainingModul2; + if (!filesContainingModules[sharedKey]) { + filesContainingModules[sharedKey] = { + sync: [], + async: [] + }; + } + filesContainingModules[sharedKey].sync.push(_fileName); + (_filesContainingModul2 = filesContainingModules[sharedKey].async).push.apply(_filesContainingModul2, _fileData.dynamicImports || []); + _findSynchronousImports(_fileName, filesContainingModules[sharedKey].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + Object.keys(filesContainingModules).forEach(function (key) { + filesContainingModules[key].sync = Array.from(new Set(filesContainingModules[key].sync)); + filesContainingModules[key].async = Array.from(new Set(filesContainingModules[key].async)); + }); + _this.emitFile({ + type: 'asset', + fileName: mfManifestName, + source: generateMFManifest(filesContainingModules) + }); + }); + } catch (e) { + return Promise.reject(e); + } + } + }]; + function generateMFManifest(preloadMap) { + var options = getNormalizeModuleFederationOptions(); + var name = options.name; + var remoteEntry = { + name: remoteEntryFile, + path: '', + type: 'module' + }; + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: options.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + // @ts-ignore + var shared = Array.from(getUsedShares()).map(function (shareKey) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + if (!preloadMap[shareKey]) return; + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: preloadMap[shareKey].async, + sync: preloadMap[shareKey].sync + }, + css: { + async: [], + sync: [] + } + } + }; + }).filter(function (item) { + return item; + }); + var exposes = Object.keys(options.exposes).map(function (key) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + var formatKey = key.replace('./', ''); + var sourceFile = options.exposes[key]["import"]; + if (!preloadMap[sourceFile]) return; + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: preloadMap[sourceFile].async, + sync: preloadMap[sourceFile].sync + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }).filter(function (item) { + return item; + }); // Filter out any null values + var result = { + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: remoteEntry, + ssrRemoteEntry: remoteEntry, + types: { + path: '', + name: '' + // "zip": "@mf-types.zip", + // "api": "@mf-types.d.ts" + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: shared, + remotes: remotes, + exposes: exposes + }; + return JSON.stringify(result); + } +}; + +var _resolve, + promise = new Promise(function (resolve, reject) { + _resolve = resolve; + }); +var parsePromise = promise; +var parseStartSet = new Set(); +var parseEndSet = new Set(); +function pluginModuleParseEnd (excludeFn) { + return [{ + name: "_", + apply: "serve", + config: function config() { + // No waiting in development mode + _resolve(1); + } + }, { + enforce: "pre", + name: "parseStart", + apply: "build", + load: function load(id) { + if (excludeFn(id)) { + return; + } + parseStartSet.add(id); + } + }, { + enforce: "post", + name: "parseEnd", + apply: "build", + moduleParsed: function moduleParsed(module) { + var id = module.id; + if (excludeFn(id)) { + return; + } + parseEndSet.add(id); + if (parseStartSet.size === parseEndSet.size) { + _resolve(1); + } + } + }]; +} + +var filter = createFilter(); +function pluginProxyRemoteEntry () { + return { + name: 'proxyRemoteEntry', + enforce: 'post', + resolveId: function resolveId(id) { + if (id === REMOTE_ENTRY_ID) { + return REMOTE_ENTRY_ID; + } + }, + load: function load(id) { + if (id === REMOTE_ENTRY_ID) { + return parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + }); + } + }, + transform: function transform(code, id) { + try { + if (!filter(id)) return Promise.resolve(); + if (id.includes(REMOTE_ENTRY_ID)) { + return Promise.resolve(parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + })); + } + return Promise.resolve(); + } catch (e) { + return Promise.reject(e); + } + } + }; +} + +createFilter(); +function pluginProxyRemotes (options) { + var remotes = options.remotes; + return { + name: "proxyRemotes", + config: function config(_config, _ref) { + var _command = _ref.command; + Object.keys(remotes).forEach(function (key) { + var remote = remotes[key]; + _config.resolve.alias.push({ + find: new RegExp("^(" + remote.name + "(/.*|$))"), + replacement: "$1", + customResolver: function customResolver(source) { + var remoteModule = getRemoteVirtualModule(source, _command); + addUsedRemote(remote.name, source); + return remoteModule.getPath(); + } + }); + }); + } + }; +} + +/** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ +var PromiseStore = /*#__PURE__*/function () { + function PromiseStore() { + this.promiseMap = new Map(); + this.resolveMap = new Map(); + } + var _proto = PromiseStore.prototype; + _proto.set = function set(id, promise) { + if (this.resolveMap.has(id)) { + promise.then(this.resolveMap.get(id)); + this.resolveMap["delete"](id); + } + this.promiseMap.set(id, promise); + }; + _proto.get = function get(id) { + var _this = this; + if (this.promiseMap.has(id)) { + return this.promiseMap.get(id); + } + var pendingPromise = new Promise(function (resolve) { + _this.resolveMap.set(id, resolve); + }); + this.promiseMap.set(id, pendingPromise); + return pendingPromise; + }; + return PromiseStore; +}(); + +function proxySharedModule(options) { + var _options$shared = options.shared, + shared = _options$shared === void 0 ? {} : _options$shared; + return [{ + name: "generateLocalSharedImportMap", + enforce: "post", + load: function load(id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + }, + transform: function transform(code, id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + } + }, { + name: 'proxyPreBuildShared', + enforce: 'post', + config: function config(_config, _ref) { + var _config$resolve$alias, _config$resolve$alias2; + var command = _ref.command; + (_config$resolve$alias = _config.resolve.alias).push.apply(_config$resolve$alias, Object.keys(shared).map(function (key) { + var pattern = key.endsWith("/") ? "(^" + key.replace(/\/$/, "") + "(/.+)?$)" : "(^" + key + "$)"; + return { + // Intercept all shared requests and proxy them to loadShare + find: new RegExp(pattern), + replacement: "$1", + customResolver: function customResolver(source, importer) { + var loadSharePath = getLoadShareModulePath(source); + writeLoadShareModule(source, shared[key], command); + writePreBuildLibPath(source); + addUsedShares(source); + writeLocalSharedImportMap(); + return this.resolve(loadSharePath); + } + }; + })); + var savePrebuild = new PromiseStore(); + (_config$resolve$alias2 = _config.resolve.alias).push.apply(_config$resolve$alias2, Object.keys(shared).map(function (key) { + return command === "build" ? { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: function replacement($1) { + var pkgName = VirtualModule.findModule(PREBUILD_TAG, $1).name; + return pkgName; + } + } : { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: "$1", + customResolver: function customResolver(source, importer) { + try { + var _this = this; + var pkgName = VirtualModule.findModule(PREBUILD_TAG, source).name; + if (importer.includes(LOAD_SHARE_TAG)) { + // save pre-bunding module id + savePrebuild.set(pkgName, _this.resolve(pkgName).then(function (item) { + return item.id; + })); + } + // Fix localSharedImportMap import id + var _resolve = _this.resolve; + return Promise.resolve(savePrebuild.get(pkgName)).then(function (_savePrebuild$get) { + return Promise.resolve(_resolve.call(_this, _savePrebuild$get)); + }); + } catch (e) { + return Promise.reject(e); + } + } + }; + })); + } + }, { + name: "watchLocalSharedImportMap", + apply: "serve", + config: function config(_config2) { + _config2.optimizeDeps = defu(_config2.optimizeDeps, { + exclude: [getLocalSharedImportMapPath()] + }); + _config2.server = defu(_config2.server, { + watch: { + ignored: [] + } + }); + var watch = _config2.server.watch; + watch.ignored = [].concat(watch.ignored); + watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**"); + } + }]; +} + +var aliasToArrayPlugin = { + name: 'alias-transform-plugin', + config: function config(_config, _ref) { + if (!_config.resolve) _config.resolve = {}; + if (!_config.resolve.alias) _config.resolve.alias = []; + var alias = _config.resolve.alias; + if (typeof alias === 'object' && !Array.isArray(alias)) { + _config.resolve.alias = Object.entries(alias).map(function (_ref2) { + var find = _ref2[0], + replacement = _ref2[1]; + return { + find: find, + replacement: replacement + }; + }); + } + } +}; + +var normalizeOptimizeDepsPlugin = { + name: 'normalizeOptimizeDeps', + config: function config(_config, _ref) { + var optimizeDeps = _config.optimizeDeps; + if (!optimizeDeps) { + _config.optimizeDeps = {}; + optimizeDeps = _config.optimizeDeps; + } + // todo: fix this workaround + optimizeDeps.force = true; + if (!optimizeDeps.include) optimizeDeps.include = []; + if (!optimizeDeps.needsInterop) optimizeDeps.needsInterop = []; + } +}; + +function federation(mfUserOptions) { + var options = normalizeModuleFederationOptions(mfUserOptions); + initVirtualModules(); + var name = options.name, + shared = options.shared, + filename = options.filename; + if (!name) throw new Error("name is required"); + return [aliasToArrayPlugin, normalizeOptimizeDepsPlugin].concat(addEntry({ + entryName: 'remoteEntry', + entryPath: REMOTE_ENTRY_ID, + fileName: filename + }), addEntry({ + entryName: 'hostInit', + entryPath: getHostAutoInitPath() + }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) { + return id.includes(getHostAutoInitImportId()) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath()); + }), proxySharedModule({ + shared: shared + }), [PluginDevProxyModuleTopLevelAwait(), { + name: 'module-federation-vite', + enforce: 'post', + config: function config(_config, _ref) { + var _config$optimizeDeps; + _config.resolve.alias.push({ + find: '@module-federation/runtime', + replacement: require.resolve('@module-federation/runtime') + }); + (_config$optimizeDeps = _config.optimizeDeps) == null || (_config$optimizeDeps = _config$optimizeDeps.include) == null || _config$optimizeDeps.push('@module-federation/runtime'); + } + }], Manifest()); +} + +export { federation }; diff --git a/lib/index.modern.js b/lib/index.modern.js new file mode 100644 index 0000000..fea4934 --- /dev/null +++ b/lib/index.modern.js @@ -0,0 +1,1288 @@ +import * as fs from 'fs'; +import { mkdirSync, writeFileSync, existsSync, writeFile } from 'fs'; +import * as path from 'pathe'; +import path__default, { parse, join, dirname, resolve, relative } from 'pathe'; +import { createFilter } from '@rollup/pluginutils'; +import { walk } from 'estree-walker'; +import MagicString from 'magic-string'; +import { defu } from 'defu'; + +const addEntry = ({ + entryName, + entryPath, + fileName +}) => { + const devEntryPath = entryPath.startsWith("virtual:mf") ? "/@id/" + entryPath : entryPath; + let entryFiles = []; + let htmlFilePath; + let _command; + return [{ + name: 'add-entry', + apply: "serve", + config(config, { + command + }) { + _command = command; + }, + configureServer(server) { + var _server$httpServer; + (_server$httpServer = server.httpServer) == null || _server$httpServer.once == null || _server$httpServer.once('listening', () => { + const { + port + } = server.config.server; + fetch(path.join(`http://localhost:${port}`, `${devEntryPath}`)).catch(e => {}); + }); + server.middlewares.use((req, res, next) => { + if (!fileName) { + next(); + return; + } + if (req.url && req.url.startsWith(fileName.replace(/^\/?/, '/'))) { + req.url = devEntryPath; + } + next(); + }); + }, + transformIndexHtml(c) { + return c.replace('', ``); + } + }, { + name: "add-entry", + enforce: "post", + configResolved(config) { + const inputOptions = config.build.rollupOptions.input; + if (!inputOptions) { + htmlFilePath = path.resolve(config.root, 'index.html'); + } else if (typeof inputOptions === 'string') { + entryFiles = [inputOptions]; + htmlFilePath = path.resolve(config.root, inputOptions); + } else if (Array.isArray(inputOptions)) { + entryFiles = inputOptions; + htmlFilePath = path.resolve(config.root, inputOptions[0]); + } else if (typeof inputOptions === 'object') { + entryFiles = Object.values(inputOptions); + htmlFilePath = path.resolve(config.root, Object.values(inputOptions)[0]); + } + }, + buildStart() { + if (_command === "serve") return; + const hasHash = fileName == null || fileName.includes == null ? void 0 : fileName.includes("[hash"); + this.emitFile({ + name: entryName, + [hasHash ? "name" : "fileName"]: fileName, + type: 'chunk', + id: entryPath, + preserveSignature: 'strict' + }); + if (htmlFilePath) { + const htmlContent = fs.readFileSync(htmlFilePath, 'utf-8'); + const scriptRegex = /]*src=["']([^"']+)["'][^>]*>/gi; + let match; + while ((match = scriptRegex.exec(htmlContent)) !== null) { + entryFiles.push(match[1]); + } + } + }, + transform(code, id) { + if (entryFiles.some(file => id.endsWith(file))) { + const injection = ` + import ${JSON.stringify(entryPath)}; + `; + return injection + code; + } + } + }]; +}; + +/** + * Solve the problem that dev mode dependency prebunding does not support top-level await syntax + */ +function PluginDevProxyModuleTopLevelAwait() { + const filterFunction = createFilter(); + return { + name: "dev-proxy-module-top-level-await", + apply: "serve", + transform(code, id) { + if (!code.includes("/*mf top-level-await placeholder replacement mf*/")) { + return null; + } + if (!filterFunction(id)) return null; + let ast; + try { + ast = this.parse(code, { + allowReturnOutsideFunction: true + }); + } catch (e) { + throw new Error(`${id}: ${e}`); + } + const magicString = new MagicString(code); + walk(ast, { + enter(node) { + if (node.type === 'ExportNamedDeclaration' && node.specifiers) { + const exportSpecifiers = node.specifiers.map(specifier => specifier.exported.name); + const proxyStatements = exportSpecifiers.map(name => ` + const __mfproxy__await${name} = await ${name}(); + const __mfproxy__${name} = () => __mfproxy__await${name}; + `).join('\n'); + const exportStatements = exportSpecifiers.map(name => `__mfproxy__${name} as ${name}`).join(', '); + const start = node.start; + const end = node.end; + const replacement = `${proxyStatements}\nexport { ${exportStatements} };`; + magicString.overwrite(start, end, replacement); + } + if (node.type === 'ExportDefaultDeclaration') { + const declaration = node.declaration; + const start = node.start; + const end = node.end; + let proxyStatement; + let exportStatement = 'default'; + if (declaration.type === 'Identifier') { + // example: export default foo; + proxyStatement = ` + const __mfproxy__awaitdefault = await ${declaration.name}(); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } else if (declaration.type === 'CallExpression' || declaration.type === 'FunctionDeclaration') { + // example: export default someFunction(); + const declarationCode = code.slice(declaration.start, declaration.end); + proxyStatement = ` + const __mfproxy__awaitdefault = await (${declarationCode}); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } else { + // other + proxyStatement = ` + const __mfproxy__awaitdefault = await (${code.slice(declaration.start, declaration.end)}); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } + const replacement = `${proxyStatement}\nexport { __mfproxy__default as ${exportStatement} };`; + magicString.overwrite(start, end, replacement); + } + } + }); + return { + code: magicString.toString(), + map: magicString.generateMap({ + hires: true + }) + }; + } + }; +} + +function normalizeExposesItem(key, item) { + let importPath = ''; + if (typeof item === 'string') { + importPath = item; + } + if (typeof item === 'object') { + importPath = item.import; + } + return { + import: importPath + }; +} +function normalizeExposes(exposes) { + if (!exposes) return {}; + const res = {}; + Object.keys(exposes).forEach(key => { + res[key] = normalizeExposesItem(key, exposes[key]); + }); + return res; +} +function normalizeRemotes(remotes) { + if (!remotes) return {}; + const result = {}; + if (typeof remotes === 'object') { + Object.keys(remotes).forEach(key => { + result[key] = normalizeRemoteItem(key, remotes[key]); + }); + } + return result; +} +function normalizeRemoteItem(key, remote) { + if (typeof remote === 'string') { + const [entryGlobalName] = remote.split('@'); + const entry = remote.replace(entryGlobalName + '@', ''); + return { + type: 'var', + name: key, + entry, + entryGlobalName, + shareScope: 'default' + }; + } + return Object.assign({ + type: 'var', + name: key, + shareScope: 'default', + entryGlobalName: key + }, remote); +} +function removePathFromNpmPackage(packageString) { + // 匹配npm包名的正则表达式,忽略路径部分 + const regex = /^(?:@[^/]+\/)?[^/]+/; + // 使用正则表达式匹配并提取包名 + const match = packageString.match(regex); + // 返回匹配到的包名,如果没有匹配到则返回原字符串 + return match ? match[0] : packageString; +} +function normalizeShareItem(key, shareItem) { + let version; + try { + version = require(path.join(removePathFromNpmPackage(key), 'package.json')).version; + } catch (e) { + console.log(e); + } + if (typeof shareItem === 'string') { + return { + name: shareItem, + version, + scope: 'default', + from: '', + shareConfig: { + singleton: false, + requiredVersion: `^${version}` || '*' + } + }; + } + return { + name: key, + from: '', + version: shareItem.version || version, + scope: shareItem.shareScope || 'default', + shareConfig: { + singleton: shareItem.singleton || false, + requiredVersion: shareItem.requiredVersion || `^${version}` || '*', + strictVersion: !!shareItem.strictVersion + } + }; +} +function normalizeShared(shared) { + if (!shared) return {}; + const result = {}; + if (Array.isArray(shared)) { + shared.forEach(key => { + result[key] = normalizeShareItem(key, key); + }); + return result; + } + if (typeof shared === 'object') { + Object.keys(shared).forEach(key => { + result[key] = normalizeShareItem(key, shared[key]); + }); + } + return result; +} +function normalizeLibrary(library) { + if (!library) return undefined; + return library; +} +function normalizeManifest(manifest = false) { + if (typeof manifest === "boolean") { + return manifest; + } + return Object.assign({ + filePath: "", + disableAssetsAnalyze: false, + fileName: "mf-manifest.json" + }, manifest); +} +let config; +function getNormalizeModuleFederationOptions() { + return config; +} +function getNormalizeShareItem(key) { + const options = getNormalizeModuleFederationOptions(); + const shareItem = options.shared[removePathFromNpmPackage(key)] || options.shared[removePathFromNpmPackage(key) + "/"]; + return shareItem; +} +function normalizeModuleFederationOptions(options) { + return config = { + exposes: normalizeExposes(options.exposes), + filename: options.filename || 'remoteEntry-[hash]', + library: normalizeLibrary(options.library), + name: options.name, + // remoteType: options.remoteType, + remotes: normalizeRemotes(options.remotes), + runtime: options.runtime, + shareScope: options.shareScope || 'default', + shared: normalizeShared(options.shared), + runtimePlugins: options.runtimePlugins || [], + getPublicPath: options.getPublicPath, + implementation: options.implementation, + manifest: normalizeManifest(options.manifest), + dev: options.dev, + dts: options.dts + }; +} + +/** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ +/** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ +function packageNameEncode(name) { + if (typeof name !== "string") throw new Error("A string package name is required"); + return name.replace(/@/g, "_mf_0_").replace(/\//g, "_mf_1_").replace(/-/g, "_mf_2_").replace(/\./g, "_mf_3_"); +} +/** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ +function packageNameDecode(encoded) { + if (typeof encoded !== "string") throw new Error("A string encoded file name is required"); + return encoded.replace(/_mf_0_/g, "@").replace(/_mf_1_/g, "/").replace(/_mf_2_/g, "-").replace(/_mf_3_/g, "."); +} + +/** + * https://github.com/module-federation/vite/issues/68 + */ +function getLocalSharedImportMapPath_windows() { + const { + name + } = getNormalizeModuleFederationOptions(); + return path__default.resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap"); +} +function writeLocalSharedImportMap_windows(content) { + const localSharedImportMapId = getLocalSharedImportMapPath_windows(); + createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content); +} +function createFile(filePath, content) { + const dir = path__default.dirname(filePath); + mkdirSync(dir, { + recursive: true + }); + writeFileSync(filePath, content); +} + +const nodeModulesDir = function findNodeModulesDir(startDir = process.cwd()) { + let currentDir = startDir; + while (currentDir !== parse(currentDir).root) { + const nodeModulesPath = join(currentDir, 'node_modules'); + if (existsSync(nodeModulesPath)) { + return nodeModulesPath; + } + currentDir = dirname(currentDir); + } + return ""; +}(); +const virtualPackageName = "__mf__virtual"; +if (!existsSync(resolve(nodeModulesDir, virtualPackageName))) { + mkdirSync(resolve(nodeModulesDir, virtualPackageName)); +} +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "empty.js"), ""); +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.stringify({ + name: virtualPackageName, + main: "empty.js" +})); +const patternMap = {}; +const cacheMap = {}; +/** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ +class VirtualModule { + static findModule(tag, str = "") { + if (!patternMap[tag]) patternMap[tag] = new RegExp(`(.*${packageNameEncode(tag)}(.+?)${packageNameEncode(tag)}.*)`); + const moduleName = (str.match(patternMap[tag]) || [])[2]; + if (moduleName) return cacheMap[tag][packageNameDecode(moduleName)]; + return undefined; + } + constructor(name, tag = '__mf_v__', suffix = "") { + var _name$split$slice$pop; + this.name = void 0; + this.tag = void 0; + this.suffix = void 0; + this.inited = false; + this.name = name; + this.tag = tag; + this.suffix = suffix || ((_name$split$slice$pop = name.split(".").slice(1).pop()) == null ? void 0 : _name$split$slice$pop.replace(/(.)/, ".$1")) || ".js"; + if (!cacheMap[this.tag]) cacheMap[this.tag] = {}; + cacheMap[this.tag][this.name] = this; + } + getPath() { + return resolve(nodeModulesDir, this.getImportId()); + } + getImportId() { + const { + name: mfName + } = getNormalizeModuleFederationOptions(); + return `${virtualPackageName}/${packageNameEncode(`${mfName}${this.tag}${this.name}${this.tag}`)}${this.suffix}`; + } + writeSync(code, force) { + if (!force && this.inited) return; + if (!this.inited) { + this.inited = true; + } + writeFileSync(this.getPath(), code); + } + write(code) { + writeFile(this.getPath(), code, function () {}); + } +} + +const virtualRuntimeInitStatus = new VirtualModule("runtimeInit"); +function writeRuntimeInitStatus() { + virtualRuntimeInitStatus.writeSync(` + let initResolve, initReject + const initPromise = new Promise((re, rj) => { + initResolve = re + initReject = rj + }) + export { + initPromise, + initResolve, + initReject + } + `); +} + +const cacheRemoteMap = {}; +const LOAD_REMOTE_TAG = '__loadRemote__'; +function getRemoteVirtualModule(remote, command) { + if (!cacheRemoteMap[remote]) { + cacheRemoteMap[remote] = new VirtualModule(remote, LOAD_REMOTE_TAG, ".js"); + cacheRemoteMap[remote].writeSync(generateRemotes(remote, command)); + } + const virtual = cacheRemoteMap[remote]; + return virtual; +} +const usedRemotesMap = { + // remote1: {remote1/App, remote1, remote1/Button} +}; +function addUsedRemote(remoteKey, remoteModule) { + if (!usedRemotesMap[remoteKey]) usedRemotesMap[remoteKey] = new Set(); + usedRemotesMap[remoteKey].add(remoteModule); +} +function getUsedRemotesMap() { + return usedRemotesMap; +} +function generateRemotes(id, command) { + return ` + const {loadRemote} = require("@module-federation/runtime") + const {initPromise} = require("${virtualRuntimeInitStatus.getImportId()}") + const res = initPromise.then(_ => loadRemote(${JSON.stringify(id)})) + const exportModule = ${command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await "}initPromise.then(_ => res) + module.exports = exportModule + `; +} + +/** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ +// *** __prebuild__ +const preBuildCacheMap = {}; +const PREBUILD_TAG = "__prebuild__"; +function writePreBuildLibPath(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + preBuildCacheMap[pkg].writeSync(""); +} +function getPreBuildLibImportId(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + const importId = preBuildCacheMap[pkg].getImportId(); + return importId; +} +// *** __loadShare__ +const LOAD_SHARE_TAG = "__loadShare__"; +const loadShareCacheMap = {}; +function getLoadShareModulePath(pkg) { + if (!loadShareCacheMap[pkg]) loadShareCacheMap[pkg] = new VirtualModule(pkg, LOAD_SHARE_TAG, ".js"); + const filepath = loadShareCacheMap[pkg].getPath(); + return filepath; +} +function writeLoadShareModule(pkg, shareItem, command) { + loadShareCacheMap[pkg].writeSync(` + + ;() => import(${JSON.stringify(getPreBuildLibImportId(pkg))}).catch(() => {}); + // dev uses dynamic import to separate chunks + ${command !== "build" ? `;() => import(${JSON.stringify(pkg)}).catch(() => {});` : ''} + const {loadShare} = require("@module-federation/runtime") + const {initPromise} = require("${virtualRuntimeInitStatus.getImportId()}") + const res = initPromise.then(_ => loadShare(${JSON.stringify(pkg)}, { + customShareInfo: {shareConfig:{ + singleton: ${shareItem.shareConfig.singleton}, + strictVersion: ${shareItem.shareConfig.strictVersion}, + requiredVersion: ${JSON.stringify(shareItem.shareConfig.requiredVersion)} + }}})) + const exportModule = ${command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await "}res.then(factory => factory()) + module.exports = exportModule + `); +} + +let usedShares = new Set(); +function getUsedShares() { + return usedShares; +} +function addUsedShares(pkg) { + usedShares.add(pkg); +} +// *** Expose locally provided shared modules here +const localSharedImportMapModule = new VirtualModule("localSharedImportMap"); +function getLocalSharedImportMapPath() { + if (process.platform === "win32") { + return getLocalSharedImportMapPath_windows(); + } + return localSharedImportMapModule.getPath(); +} +let prevSharedCount; +function writeLocalSharedImportMap() { + const sharedCount = getUsedShares().size; + if (prevSharedCount !== sharedCount) { + prevSharedCount = sharedCount; + if (process.platform === "win32") { + writeLocalSharedImportMap_windows(generateLocalSharedImportMap()); + } else { + localSharedImportMapModule.writeSync(generateLocalSharedImportMap(), true); + } + } +} +function generateLocalSharedImportMap() { + const options = getNormalizeModuleFederationOptions(); + return ` + const importMap = { + ${Array.from(getUsedShares()).map(pkg => ` + ${JSON.stringify(pkg)}: async () => { + let pkg = await import("${getPreBuildLibImportId(pkg)}") + return pkg + } + `).join(",")} + } + const usedShared = { + ${Array.from(getUsedShares()).map(key => { + const shareItem = getNormalizeShareItem(key); + return ` + ${JSON.stringify(key)}: { + name: ${JSON.stringify(key)}, + version: ${JSON.stringify(shareItem.version)}, + scope: [${JSON.stringify(shareItem.scope)}], + loaded: false, + from: ${JSON.stringify(options.name)}, + async get () { + usedShared[${JSON.stringify(key)}].loaded = true + const {${JSON.stringify(key)}: pkgDynamicImport} = importMap + const res = await pkgDynamicImport() + const exportModule = {...res} + // All npm packages pre-built by vite will be converted to esm + Object.defineProperty(exportModule, "__esModule", { + value: true, + enumerable: false + }) + return function () { + return exportModule + } + }, + shareConfig: { + singleton: ${shareItem.shareConfig.singleton}, + requiredVersion: ${JSON.stringify(shareItem.shareConfig.requiredVersion)} + } + } + `; + }).join(',')} + } + const usedRemotes = [${Object.keys(getUsedRemotesMap()).map(key => { + const remote = options.remotes[key]; + return ` + { + entryGlobalName: ${JSON.stringify(remote.entryGlobalName)}, + name: ${JSON.stringify(remote.name)}, + type: ${JSON.stringify(remote.type)}, + entry: ${JSON.stringify(remote.entry)}, + } + `; + }).join(',')} + ] + export { + usedShared, + usedRemotes + } + `; +} +const REMOTE_ENTRY_ID = 'virtual:mf-REMOTE_ENTRY_ID'; +function generateRemoteEntry(options) { + const pluginImportNames = options.runtimePlugins.map((p, i) => [`$runtimePlugin_${i}`, `import $runtimePlugin_${i} from "${p}";`]); + return ` + import {init as runtimeInit, loadRemote} from "@module-federation/runtime"; + ${pluginImportNames.map(item => item[1]).join('\n')} + + const exposesMap = { + ${Object.keys(options.exposes).map(key => { + return ` + ${JSON.stringify(key)}: async () => { + const importModule = await import(${JSON.stringify(options.exposes[key].import)}) + const exportModule = {} + Object.assign(exportModule, importModule) + Object.defineProperty(exportModule, "__esModule", { + value: true, + enumerable: false + }) + return exportModule + } + `; + }).join(',')} + } + import {usedShared, usedRemotes} from "${getLocalSharedImportMapPath()}" + import { + initResolve + } from "${virtualRuntimeInitStatus.getImportId()}" + async function init(shared = {}) { + const initRes = runtimeInit({ + name: ${JSON.stringify(options.name)}, + remotes: usedRemotes, + shared: usedShared, + plugins: [${pluginImportNames.map(item => `${item[0]}()`).join(', ')}] + }); + initRes.initShareScopeMap('${options.shareScope}', shared); + initResolve(initRes) + return initRes + } + + function getExposes(moduleName) { + if (!(moduleName in exposesMap)) throw new Error(\`Module \${moduleName} does not exist in container.\`) + return (exposesMap[moduleName])().then(res => () => res) + } + export { + init, + getExposes as get + } + `; +} +/** + * Inject entry file, automatically init when used as host, + * and will not inject remoteEntry + */ +const hostAutoInitModule = new VirtualModule("hostAutoInit"); +function writeHostAutoInit() { + hostAutoInitModule.writeSync(` + import {init} from "${REMOTE_ENTRY_ID}" + init() + `); +} +function getHostAutoInitImportId() { + return hostAutoInitModule.getImportId(); +} +function getHostAutoInitPath() { + return hostAutoInitModule.getPath(); +} + +function initVirtualModules() { + writeLocalSharedImportMap(); + writeHostAutoInit(); + writeRuntimeInitStatus(); +} + +const Manifest = () => { + const mfOptions = getNormalizeModuleFederationOptions(); + const { + name, + filename, + manifest: manifestOptions + } = mfOptions; + let mfManifestName = ""; + if (manifestOptions === true) { + mfManifestName = "mf-manifest.json"; + } + if (typeof manifestOptions !== "boolean") { + mfManifestName = join((manifestOptions == null ? void 0 : manifestOptions.filePath) || "", (manifestOptions == null ? void 0 : manifestOptions.fileName) || ""); + } + let extensions; + let root; + let remoteEntryFile; + return [{ + name: 'moddule-federation-manifest', + apply: 'serve', + configureServer(server) { + server.middlewares.use((req, res, next) => { + if (!mfManifestName) { + next(); + return; + } + if (req.url === mfManifestName.replace(/^\/?/, "/")) { + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.end(JSON.stringify({ + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: { + name: filename, + path: '', + type: 'module' + }, + ssrRemoteEntry: { + name: filename, + path: '', + type: 'module' + }, + types: { + path: '', + name: '' + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: Array.from(getUsedShares()).map(shareKey => { + const shareItem = getNormalizeShareItem(shareKey); + return { + id: `${name}:${shareKey}`, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: [], + sync: [] + }, + css: { + async: [], + sync: [] + } + } + }; + }), + remotes: function () { + const remotes = []; + const usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(remoteKey => { + const usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(moduleKey => { + remotes.push({ + federationContainerName: mfOptions.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + return remotes; + }(), + exposes: Object.keys(mfOptions.exposes).map(key => { + const formatKey = key.replace('./', ''); + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: [], + sync: [] + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }) + })); + } else { + next(); + } + }); + } + }, { + name: 'moddule-federation-manifest', + enforce: 'post', + config(config) { + if (!config.build) config.build = {}; + if (!config.build.manifest) config.build.manifest = config.build.manifest || !!manifestOptions; + }, + configResolved(config) { + root = config.root; + extensions = config.resolve.extensions || ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']; + }, + async generateBundle(options, bundle) { + if (!mfManifestName) return; + const exposesModules = Object.keys(mfOptions.exposes).map(item => mfOptions.exposes[item].import); // 获取你提供的 moduleIds + const filesContainingModules = {}; + // 帮助函数:检查模块路径是否匹配 + const isModuleMatched = (relativeModulePath, preloadModule) => { + // 先尝试直接匹配 + if (relativeModulePath === preloadModule) return true; + // 如果 preloadModule 没有后缀,尝试添加可能的后缀进行匹配 + for (const ext of extensions) { + if (relativeModulePath === `${preloadModule}${ext}`) { + return true; + } + } + return false; + }; + // 遍历打包生成的每个文件 + for (const [fileName, fileData] of Object.entries(bundle)) { + if (mfOptions.filename.replace(/[\[\]]/g, "_") === fileData.name) { + remoteEntryFile = fileData.fileName; + } + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (const modulePath of Object.keys(fileData.modules)) { + // 将绝对路径转换为相对于 Vite root 的相对路径 + const relativeModulePath = relative(root, modulePath); + // 检查模块是否在 preloadModules 列表中 + for (const preloadModule of exposesModules) { + const formatPreloadModule = preloadModule.replace("./", ""); + if (isModuleMatched(relativeModulePath, formatPreloadModule)) { + if (!filesContainingModules[preloadModule]) { + filesContainingModules[preloadModule] = { + sync: [], + async: [] + }; + } + console.log(Object.keys(fileData.modules)); + filesContainingModules[preloadModule].sync.push(fileName); + filesContainingModules[preloadModule].async.push(...(fileData.dynamicImports || [])); + findSynchronousImports(fileName, filesContainingModules[preloadModule].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + } + // 递归查找模块的同步导入文件 + function findSynchronousImports(fileName, array) { + const fileData = bundle[fileName]; + if (fileData && fileData.type === 'chunk') { + array.push(fileName); // 将当前文件加入预加载列表 + // 遍历该文件的同步导入文件 + fileData.imports.forEach(importedFile => { + if (array.indexOf(importedFile) === -1) { + findSynchronousImports(importedFile, array); // 递归查找同步导入的文件 + } + }); + } + } + const fileToShareKey = {}; + await Promise.all(Array.from(getUsedShares()).map(async shareKey => { + const file = (await this.resolve(getPreBuildLibImportId(shareKey))).id.split("?")[0]; + fileToShareKey[file] = shareKey; + })); + // 遍历打包生成的每个文件 + for (const [fileName, fileData] of Object.entries(bundle)) { + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (const modulePath of Object.keys(fileData.modules)) { + const sharedKey = fileToShareKey[modulePath]; + if (sharedKey) { + if (!filesContainingModules[sharedKey]) { + filesContainingModules[sharedKey] = { + sync: [], + async: [] + }; + } + filesContainingModules[sharedKey].sync.push(fileName); + filesContainingModules[sharedKey].async.push(...(fileData.dynamicImports || [])); + findSynchronousImports(fileName, filesContainingModules[sharedKey].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + Object.keys(filesContainingModules).forEach(key => { + filesContainingModules[key].sync = Array.from(new Set(filesContainingModules[key].sync)); + filesContainingModules[key].async = Array.from(new Set(filesContainingModules[key].async)); + }); + this.emitFile({ + type: 'asset', + fileName: mfManifestName, + source: generateMFManifest(filesContainingModules) + }); + } + }]; + function generateMFManifest(preloadMap) { + const options = getNormalizeModuleFederationOptions(); + const { + name + } = options; + const remoteEntry = { + name: remoteEntryFile, + path: '', + type: 'module' + }; + const remotes = []; + const usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(remoteKey => { + const usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(moduleKey => { + remotes.push({ + federationContainerName: options.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + // @ts-ignore + const shared = Array.from(getUsedShares()).map(shareKey => { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + if (!preloadMap[shareKey]) return; + const shareItem = getNormalizeShareItem(shareKey); + return { + id: `${name}:${shareKey}`, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: preloadMap[shareKey].async, + sync: preloadMap[shareKey].sync + }, + css: { + async: [], + sync: [] + } + } + }; + }).filter(item => item); + const exposes = Object.keys(options.exposes).map(key => { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + const formatKey = key.replace('./', ''); + const sourceFile = options.exposes[key].import; + if (!preloadMap[sourceFile]) return; + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: preloadMap[sourceFile].async, + sync: preloadMap[sourceFile].sync + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }).filter(item => item); // Filter out any null values + const result = { + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry, + ssrRemoteEntry: remoteEntry, + types: { + path: '', + name: '' + // "zip": "@mf-types.zip", + // "api": "@mf-types.d.ts" + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared, + remotes, + exposes + }; + return JSON.stringify(result); + } +}; + +let _resolve, + promise = new Promise((resolve, reject) => { + _resolve = resolve; + }); +let parsePromise = promise; +const parseStartSet = new Set(); +const parseEndSet = new Set(); +function pluginModuleParseEnd (excludeFn) { + return [{ + name: "_", + apply: "serve", + config() { + // No waiting in development mode + _resolve(1); + } + }, { + enforce: "pre", + name: "parseStart", + apply: "build", + load(id) { + if (excludeFn(id)) { + return; + } + parseStartSet.add(id); + } + }, { + enforce: "post", + name: "parseEnd", + apply: "build", + moduleParsed(module) { + const id = module.id; + if (excludeFn(id)) { + return; + } + parseEndSet.add(id); + if (parseStartSet.size === parseEndSet.size) { + _resolve(1); + } + } + }]; +} + +const filter = createFilter(); +function pluginProxyRemoteEntry () { + return { + name: 'proxyRemoteEntry', + enforce: 'post', + resolveId(id) { + if (id === REMOTE_ENTRY_ID) { + return REMOTE_ENTRY_ID; + } + }, + load(id) { + if (id === REMOTE_ENTRY_ID) { + return parsePromise.then(_ => generateRemoteEntry(getNormalizeModuleFederationOptions())); + } + }, + async transform(code, id) { + if (!filter(id)) return; + if (id.includes(REMOTE_ENTRY_ID)) { + return parsePromise.then(_ => generateRemoteEntry(getNormalizeModuleFederationOptions())); + } + } + }; +} + +createFilter(); +function pluginProxyRemotes (options) { + const { + remotes + } = options; + return { + name: "proxyRemotes", + config(config, { + command: _command + }) { + Object.keys(remotes).forEach(key => { + const remote = remotes[key]; + config.resolve.alias.push({ + find: new RegExp(`^(${remote.name}(\/.*|$))`), + replacement: "$1", + customResolver(source) { + const remoteModule = getRemoteVirtualModule(source, _command); + addUsedRemote(remote.name, source); + return remoteModule.getPath(); + } + }); + }); + } + }; +} + +/** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ +class PromiseStore { + constructor() { + this.promiseMap = new Map(); + this.resolveMap = new Map(); + } + set(id, promise) { + if (this.resolveMap.has(id)) { + promise.then(this.resolveMap.get(id)); + this.resolveMap.delete(id); + } + this.promiseMap.set(id, promise); + } + get(id) { + if (this.promiseMap.has(id)) { + return this.promiseMap.get(id); + } + const pendingPromise = new Promise(resolve => { + this.resolveMap.set(id, resolve); + }); + this.promiseMap.set(id, pendingPromise); + return pendingPromise; + } +} + +function proxySharedModule(options) { + let { + shared = {}, + include, + exclude + } = options; + return [{ + name: "generateLocalSharedImportMap", + enforce: "post", + load(id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(_ => generateLocalSharedImportMap()); + } + }, + transform(code, id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(_ => generateLocalSharedImportMap()); + } + } + }, { + name: 'proxyPreBuildShared', + enforce: 'post', + config(config, { + command + }) { + config.resolve.alias.push(...Object.keys(shared).map(key => { + const pattern = key.endsWith("/") ? `(^${key.replace(/\/$/, "")}(\/.+)?$)` : `(^${key}$)`; + return { + // Intercept all shared requests and proxy them to loadShare + find: new RegExp(pattern), + replacement: "$1", + customResolver(source, importer) { + const loadSharePath = getLoadShareModulePath(source); + writeLoadShareModule(source, shared[key], command); + writePreBuildLibPath(source); + addUsedShares(source); + writeLocalSharedImportMap(); + return this.resolve(loadSharePath); + } + }; + })); + const savePrebuild = new PromiseStore(); + config.resolve.alias.push(...Object.keys(shared).map(key => { + return command === "build" ? { + find: new RegExp(`(.*${PREBUILD_TAG}.*)`), + replacement: function ($1) { + const pkgName = VirtualModule.findModule(PREBUILD_TAG, $1).name; + return pkgName; + } + } : { + find: new RegExp(`(.*${PREBUILD_TAG}.*)`), + replacement: "$1", + async customResolver(source, importer) { + const pkgName = VirtualModule.findModule(PREBUILD_TAG, source).name; + if (importer.includes(LOAD_SHARE_TAG)) { + // save pre-bunding module id + savePrebuild.set(pkgName, this.resolve(pkgName).then(item => item.id)); + } + // Fix localSharedImportMap import id + return await this.resolve(await savePrebuild.get(pkgName)); + } + }; + })); + } + }, { + name: "watchLocalSharedImportMap", + apply: "serve", + config(config) { + config.optimizeDeps = defu(config.optimizeDeps, { + exclude: [getLocalSharedImportMapPath()] + }); + config.server = defu(config.server, { + watch: { + ignored: [] + } + }); + const watch = config.server.watch; + watch.ignored = [].concat(watch.ignored); + watch.ignored.push(`!**${getLocalSharedImportMapPath()}**`); + } + }]; +} + +var aliasToArrayPlugin = { + name: 'alias-transform-plugin', + config: (config, { + command + }) => { + if (!config.resolve) config.resolve = {}; + if (!config.resolve.alias) config.resolve.alias = []; + const { + alias + } = config.resolve; + if (typeof alias === 'object' && !Array.isArray(alias)) { + config.resolve.alias = Object.entries(alias).map(([find, replacement]) => ({ + find, + replacement + })); + } + } +}; + +var normalizeOptimizeDepsPlugin = { + name: 'normalizeOptimizeDeps', + config: (config, { + command + }) => { + let { + optimizeDeps + } = config; + if (!optimizeDeps) { + config.optimizeDeps = {}; + optimizeDeps = config.optimizeDeps; + } + // todo: fix this workaround + optimizeDeps.force = true; + if (!optimizeDeps.include) optimizeDeps.include = []; + if (!optimizeDeps.needsInterop) optimizeDeps.needsInterop = []; + } +}; + +function federation(mfUserOptions) { + const options = normalizeModuleFederationOptions(mfUserOptions); + initVirtualModules(); + const { + name, + remotes, + shared, + filename + } = options; + if (!name) throw new Error("name is required"); + return [aliasToArrayPlugin, normalizeOptimizeDepsPlugin, ...addEntry({ + entryName: 'remoteEntry', + entryPath: REMOTE_ENTRY_ID, + fileName: filename + }), ...addEntry({ + entryName: 'hostInit', + entryPath: getHostAutoInitPath() + }), pluginProxyRemoteEntry(), pluginProxyRemotes(options), ...pluginModuleParseEnd(id => { + return id.includes(getHostAutoInitImportId()) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath()); + }), ...proxySharedModule({ + shared + }), PluginDevProxyModuleTopLevelAwait(), { + name: 'module-federation-vite', + enforce: 'post', + config(config, { + command: _command + }) { + var _config$optimizeDeps; + config.resolve.alias.push({ + find: '@module-federation/runtime', + replacement: require.resolve('@module-federation/runtime') + }); + (_config$optimizeDeps = config.optimizeDeps) == null || (_config$optimizeDeps = _config$optimizeDeps.include) == null || _config$optimizeDeps.push('@module-federation/runtime'); + } + }, ...Manifest()]; +} + +export { federation }; diff --git a/lib/index.umd.js b/lib/index.umd.js new file mode 100644 index 0000000..9b336cf --- /dev/null +++ b/lib/index.umd.js @@ -0,0 +1,1262 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('fs'), require('pathe'), require('@rollup/pluginutils'), require('estree-walker'), require('magic-string'), require('defu')) : + typeof define === 'function' && define.amd ? define(['exports', 'fs', 'pathe', '@rollup/pluginutils', 'estree-walker', 'magic-string', 'defu'], factory) : + (global = global || self, factory(global.vite = {}, global.fs, global.pathe, global.pluginutils, global.estreeWalker, global.magicString, global.defu)); +})(this, (function (exports, fs, path, pluginutils, estreeWalker, MagicString, defu) { + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return n; + } + + var fs__namespace = /*#__PURE__*/_interopNamespace(fs); + var path__namespace = /*#__PURE__*/_interopNamespace(path); + var path__default = /*#__PURE__*/_interopDefaultLegacy(path); + var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString); + + var addEntry = function addEntry(_ref) { + var entryName = _ref.entryName, + entryPath = _ref.entryPath, + fileName = _ref.fileName; + var devEntryPath = entryPath.startsWith("virtual:mf") ? "/@id/" + entryPath : entryPath; + var entryFiles = []; + var htmlFilePath; + var _command; + return [{ + name: 'add-entry', + apply: "serve", + config: function config(_config, _ref2) { + var command = _ref2.command; + _command = command; + }, + configureServer: function configureServer(server) { + var _server$httpServer; + (_server$httpServer = server.httpServer) == null || _server$httpServer.once == null || _server$httpServer.once('listening', function () { + var port = server.config.server.port; + fetch(path__namespace.join("http://localhost:" + port, "" + devEntryPath))["catch"](function (e) {}); + }); + server.middlewares.use(function (req, res, next) { + if (!fileName) { + next(); + return; + } + if (req.url && req.url.startsWith(fileName.replace(/^\/?/, '/'))) { + req.url = devEntryPath; + } + next(); + }); + }, + transformIndexHtml: function transformIndexHtml(c) { + return c.replace('', ""); + } + }, { + name: "add-entry", + enforce: "post", + configResolved: function configResolved(config) { + var inputOptions = config.build.rollupOptions.input; + if (!inputOptions) { + htmlFilePath = path__namespace.resolve(config.root, 'index.html'); + } else if (typeof inputOptions === 'string') { + entryFiles = [inputOptions]; + htmlFilePath = path__namespace.resolve(config.root, inputOptions); + } else if (Array.isArray(inputOptions)) { + entryFiles = inputOptions; + htmlFilePath = path__namespace.resolve(config.root, inputOptions[0]); + } else if (typeof inputOptions === 'object') { + entryFiles = Object.values(inputOptions); + htmlFilePath = path__namespace.resolve(config.root, Object.values(inputOptions)[0]); + } + }, + buildStart: function buildStart() { + var _this$emitFile; + if (_command === "serve") return; + var hasHash = fileName == null || fileName.includes == null ? void 0 : fileName.includes("[hash"); + this.emitFile((_this$emitFile = { + name: entryName + }, _this$emitFile[hasHash ? "name" : "fileName"] = fileName, _this$emitFile.type = 'chunk', _this$emitFile.id = entryPath, _this$emitFile.preserveSignature = 'strict', _this$emitFile)); + if (htmlFilePath) { + var htmlContent = fs__namespace.readFileSync(htmlFilePath, 'utf-8'); + var scriptRegex = /]*src=["']([^"']+)["'][^>]*>/gi; + var match; + while ((match = scriptRegex.exec(htmlContent)) !== null) { + entryFiles.push(match[1]); + } + } + }, + transform: function transform(code, id) { + if (entryFiles.some(function (file) { + return id.endsWith(file); + })) { + var injection = "\n import " + JSON.stringify(entryPath) + ";\n "; + return injection + code; + } + } + }]; + }; + + /** + * Solve the problem that dev mode dependency prebunding does not support top-level await syntax + */ + function PluginDevProxyModuleTopLevelAwait() { + var filterFunction = pluginutils.createFilter(); + return { + name: "dev-proxy-module-top-level-await", + apply: "serve", + transform: function transform(code, id) { + if (!code.includes("/*mf top-level-await placeholder replacement mf*/")) { + return null; + } + if (!filterFunction(id)) return null; + var ast; + try { + ast = this.parse(code, { + allowReturnOutsideFunction: true + }); + } catch (e) { + throw new Error(id + ": " + e); + } + var magicString = new MagicString__default["default"](code); + estreeWalker.walk(ast, { + enter: function enter(node) { + if (node.type === 'ExportNamedDeclaration' && node.specifiers) { + var exportSpecifiers = node.specifiers.map(function (specifier) { + return specifier.exported.name; + }); + var proxyStatements = exportSpecifiers.map(function (name) { + return "\n const __mfproxy__await" + name + " = await " + name + "();\n const __mfproxy__" + name + " = () => __mfproxy__await" + name + ";\n "; + }).join('\n'); + var exportStatements = exportSpecifiers.map(function (name) { + return "__mfproxy__" + name + " as " + name; + }).join(', '); + var start = node.start; + var end = node.end; + var replacement = proxyStatements + "\nexport { " + exportStatements + " };"; + magicString.overwrite(start, end, replacement); + } + if (node.type === 'ExportDefaultDeclaration') { + var declaration = node.declaration; + var _start = node.start; + var _end = node.end; + var proxyStatement; + var exportStatement = 'default'; + if (declaration.type === 'Identifier') { + // example: export default foo; + proxyStatement = "\n const __mfproxy__awaitdefault = await " + declaration.name + "();\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else if (declaration.type === 'CallExpression' || declaration.type === 'FunctionDeclaration') { + // example: export default someFunction(); + var declarationCode = code.slice(declaration.start, declaration.end); + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + declarationCode + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } else { + // other + proxyStatement = "\n const __mfproxy__awaitdefault = await (" + code.slice(declaration.start, declaration.end) + ");\n const __mfproxy__default = __mfproxy__awaitdefault;\n "; + } + var _replacement = proxyStatement + "\nexport { __mfproxy__default as " + exportStatement + " };"; + magicString.overwrite(_start, _end, _replacement); + } + } + }); + return { + code: magicString.toString(), + map: magicString.generateMap({ + hires: true + }) + }; + } + }; + } + + function _arrayLikeToArray(r, a) { + (null == a || a > r.length) && (a = r.length); + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; + return n; + } + function _createForOfIteratorHelperLoose(r, e) { + var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; + if (t) return (t = t.call(r)).next.bind(t); + if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { + t && (r = t); + var o = 0; + return function () { + return o >= r.length ? { + done: !0 + } : { + done: !1, + value: r[o++] + }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(r, a) { + if (r) { + if ("string" == typeof r) return _arrayLikeToArray(r, a); + var t = {}.toString.call(r).slice(8, -1); + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; + } + } + + function normalizeExposesItem(key, item) { + var importPath = ''; + if (typeof item === 'string') { + importPath = item; + } + if (typeof item === 'object') { + importPath = item["import"]; + } + return { + "import": importPath + }; + } + function normalizeExposes(exposes) { + if (!exposes) return {}; + var res = {}; + Object.keys(exposes).forEach(function (key) { + res[key] = normalizeExposesItem(key, exposes[key]); + }); + return res; + } + function normalizeRemotes(remotes) { + if (!remotes) return {}; + var result = {}; + if (typeof remotes === 'object') { + Object.keys(remotes).forEach(function (key) { + result[key] = normalizeRemoteItem(key, remotes[key]); + }); + } + return result; + } + function normalizeRemoteItem(key, remote) { + if (typeof remote === 'string') { + var _remote$split = remote.split('@'), + entryGlobalName = _remote$split[0]; + var entry = remote.replace(entryGlobalName + '@', ''); + return { + type: 'var', + name: key, + entry: entry, + entryGlobalName: entryGlobalName, + shareScope: 'default' + }; + } + return Object.assign({ + type: 'var', + name: key, + shareScope: 'default', + entryGlobalName: key + }, remote); + } + function removePathFromNpmPackage(packageString) { + // 匹配npm包名的正则表达式,忽略路径部分 + var regex = /^(?:@[^/]+\/)?[^/]+/; + // 使用正则表达式匹配并提取包名 + var match = packageString.match(regex); + // 返回匹配到的包名,如果没有匹配到则返回原字符串 + return match ? match[0] : packageString; + } + function normalizeShareItem(key, shareItem) { + var version; + try { + version = require(path__namespace.join(removePathFromNpmPackage(key), 'package.json')).version; + } catch (e) { + console.log(e); + } + if (typeof shareItem === 'string') { + return { + name: shareItem, + version: version, + scope: 'default', + from: '', + shareConfig: { + singleton: false, + requiredVersion: "^" + version || '*' + } + }; + } + return { + name: key, + from: '', + version: shareItem.version || version, + scope: shareItem.shareScope || 'default', + shareConfig: { + singleton: shareItem.singleton || false, + requiredVersion: shareItem.requiredVersion || "^" + version || '*', + strictVersion: !!shareItem.strictVersion + } + }; + } + function normalizeShared(shared) { + if (!shared) return {}; + var result = {}; + if (Array.isArray(shared)) { + shared.forEach(function (key) { + result[key] = normalizeShareItem(key, key); + }); + return result; + } + if (typeof shared === 'object') { + Object.keys(shared).forEach(function (key) { + result[key] = normalizeShareItem(key, shared[key]); + }); + } + return result; + } + function normalizeLibrary(library) { + if (!library) return undefined; + return library; + } + function normalizeManifest(manifest) { + if (manifest === void 0) { + manifest = false; + } + if (typeof manifest === "boolean") { + return manifest; + } + return Object.assign({ + filePath: "", + disableAssetsAnalyze: false, + fileName: "mf-manifest.json" + }, manifest); + } + var config; + function getNormalizeModuleFederationOptions() { + return config; + } + function getNormalizeShareItem(key) { + var options = getNormalizeModuleFederationOptions(); + var shareItem = options.shared[removePathFromNpmPackage(key)] || options.shared[removePathFromNpmPackage(key) + "/"]; + return shareItem; + } + function normalizeModuleFederationOptions(options) { + return config = { + exposes: normalizeExposes(options.exposes), + filename: options.filename || 'remoteEntry-[hash]', + library: normalizeLibrary(options.library), + name: options.name, + // remoteType: options.remoteType, + remotes: normalizeRemotes(options.remotes), + runtime: options.runtime, + shareScope: options.shareScope || 'default', + shared: normalizeShared(options.shared), + runtimePlugins: options.runtimePlugins || [], + getPublicPath: options.getPublicPath, + implementation: options.implementation, + manifest: normalizeManifest(options.manifest), + dev: options.dev, + dts: options.dts + }; + } + + /** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ + /** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ + function packageNameEncode(name) { + if (typeof name !== "string") throw new Error("A string package name is required"); + return name.replace(/@/g, "_mf_0_").replace(/\//g, "_mf_1_").replace(/-/g, "_mf_2_").replace(/\./g, "_mf_3_"); + } + /** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ + function packageNameDecode(encoded) { + if (typeof encoded !== "string") throw new Error("A string encoded file name is required"); + return encoded.replace(/_mf_0_/g, "@").replace(/_mf_1_/g, "/").replace(/_mf_2_/g, "-").replace(/_mf_3_/g, "."); + } + + /** + * https://github.com/module-federation/vite/issues/68 + */ + function getLocalSharedImportMapPath_windows() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + name = _getNormalizeModuleFe.name; + return path__default["default"].resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap"); + } + function writeLocalSharedImportMap_windows(content) { + var localSharedImportMapId = getLocalSharedImportMapPath_windows(); + createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content); + } + function createFile(filePath, content) { + var dir = path__default["default"].dirname(filePath); + fs.mkdirSync(dir, { + recursive: true + }); + fs.writeFileSync(filePath, content); + } + + var nodeModulesDir = function findNodeModulesDir(startDir) { + if (startDir === void 0) { + startDir = process.cwd(); + } + var currentDir = startDir; + while (currentDir !== path.parse(currentDir).root) { + var nodeModulesPath = path.join(currentDir, 'node_modules'); + if (fs.existsSync(nodeModulesPath)) { + return nodeModulesPath; + } + currentDir = path.dirname(currentDir); + } + return ""; + }(); + var virtualPackageName = "__mf__virtual"; + if (!fs.existsSync(path.resolve(nodeModulesDir, virtualPackageName))) { + fs.mkdirSync(path.resolve(nodeModulesDir, virtualPackageName)); + } + fs.writeFileSync(path.resolve(nodeModulesDir, virtualPackageName, "empty.js"), ""); + fs.writeFileSync(path.resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.stringify({ + name: virtualPackageName, + main: "empty.js" + })); + var patternMap = {}; + var cacheMap = {}; + /** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ + var VirtualModule = /*#__PURE__*/function () { + function VirtualModule(name, tag, suffix) { + var _name$split$slice$pop; + if (tag === void 0) { + tag = '__mf_v__'; + } + if (suffix === void 0) { + suffix = ""; + } + this.name = void 0; + this.tag = void 0; + this.suffix = void 0; + this.inited = false; + this.name = name; + this.tag = tag; + this.suffix = suffix || ((_name$split$slice$pop = name.split(".").slice(1).pop()) == null ? void 0 : _name$split$slice$pop.replace(/(.)/, ".$1")) || ".js"; + if (!cacheMap[this.tag]) cacheMap[this.tag] = {}; + cacheMap[this.tag][this.name] = this; + } + VirtualModule.findModule = function findModule(tag, str) { + if (str === void 0) { + str = ""; + } + if (!patternMap[tag]) patternMap[tag] = new RegExp("(.*" + packageNameEncode(tag) + "(.+?)" + packageNameEncode(tag) + ".*)"); + var moduleName = (str.match(patternMap[tag]) || [])[2]; + if (moduleName) return cacheMap[tag][packageNameDecode(moduleName)]; + return undefined; + }; + var _proto = VirtualModule.prototype; + _proto.getPath = function getPath() { + return path.resolve(nodeModulesDir, this.getImportId()); + }; + _proto.getImportId = function getImportId() { + var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(), + mfName = _getNormalizeModuleFe.name; + return virtualPackageName + "/" + packageNameEncode("" + mfName + this.tag + this.name + this.tag) + this.suffix; + }; + _proto.writeSync = function writeSync(code, force) { + if (!force && this.inited) return; + if (!this.inited) { + this.inited = true; + } + fs.writeFileSync(this.getPath(), code); + }; + _proto.write = function write(code) { + fs.writeFile(this.getPath(), code, function () {}); + }; + return VirtualModule; + }(); + + var virtualRuntimeInitStatus = new VirtualModule("runtimeInit"); + function writeRuntimeInitStatus() { + virtualRuntimeInitStatus.writeSync("\n let initResolve, initReject\n const initPromise = new Promise((re, rj) => {\n initResolve = re\n initReject = rj\n })\n export {\n initPromise,\n initResolve,\n initReject\n }\n "); + } + + var cacheRemoteMap = {}; + var LOAD_REMOTE_TAG = '__loadRemote__'; + function getRemoteVirtualModule(remote, command) { + if (!cacheRemoteMap[remote]) { + cacheRemoteMap[remote] = new VirtualModule(remote, LOAD_REMOTE_TAG, ".js"); + cacheRemoteMap[remote].writeSync(generateRemotes(remote, command)); + } + var virtual = cacheRemoteMap[remote]; + return virtual; + } + var usedRemotesMap = { + // remote1: {remote1/App, remote1, remote1/Button} + }; + function addUsedRemote(remoteKey, remoteModule) { + if (!usedRemotesMap[remoteKey]) usedRemotesMap[remoteKey] = new Set(); + usedRemotesMap[remoteKey].add(remoteModule); + } + function getUsedRemotesMap() { + return usedRemotesMap; + } + function generateRemotes(id, command) { + return "\n const {loadRemote} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadRemote(" + JSON.stringify(id) + "))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "initPromise.then(_ => res)\n module.exports = exportModule\n "; + } + + /** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ + // *** __prebuild__ + var preBuildCacheMap = {}; + var PREBUILD_TAG = "__prebuild__"; + function writePreBuildLibPath(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + preBuildCacheMap[pkg].writeSync(""); + } + function getPreBuildLibImportId(pkg) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG); + var importId = preBuildCacheMap[pkg].getImportId(); + return importId; + } + // *** __loadShare__ + var LOAD_SHARE_TAG = "__loadShare__"; + var loadShareCacheMap = {}; + function getLoadShareModulePath(pkg) { + if (!loadShareCacheMap[pkg]) loadShareCacheMap[pkg] = new VirtualModule(pkg, LOAD_SHARE_TAG, ".js"); + var filepath = loadShareCacheMap[pkg].getPath(); + return filepath; + } + function writeLoadShareModule(pkg, shareItem, command) { + loadShareCacheMap[pkg].writeSync("\n \n ;() => import(" + JSON.stringify(getPreBuildLibImportId(pkg)) + ").catch(() => {});\n // dev uses dynamic import to separate chunks\n " + (command !== "build" ? ";() => import(" + JSON.stringify(pkg) + ").catch(() => {});" : '') + "\n const {loadShare} = require(\"@module-federation/runtime\")\n const {initPromise} = require(\"" + virtualRuntimeInitStatus.getImportId() + "\")\n const res = initPromise.then(_ => loadShare(" + JSON.stringify(pkg) + ", {\n customShareInfo: {shareConfig:{\n singleton: " + shareItem.shareConfig.singleton + ",\n strictVersion: " + shareItem.shareConfig.strictVersion + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }}}))\n const exportModule = " + (command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await ") + "res.then(factory => factory())\n module.exports = exportModule\n "); + } + + var usedShares = new Set(); + function getUsedShares() { + return usedShares; + } + function addUsedShares(pkg) { + usedShares.add(pkg); + } + // *** Expose locally provided shared modules here + var localSharedImportMapModule = new VirtualModule("localSharedImportMap"); + function getLocalSharedImportMapPath() { + if (process.platform === "win32") { + return getLocalSharedImportMapPath_windows(); + } + return localSharedImportMapModule.getPath(); + } + var prevSharedCount; + function writeLocalSharedImportMap() { + var sharedCount = getUsedShares().size; + if (prevSharedCount !== sharedCount) { + prevSharedCount = sharedCount; + if (process.platform === "win32") { + writeLocalSharedImportMap_windows(generateLocalSharedImportMap()); + } else { + localSharedImportMapModule.writeSync(generateLocalSharedImportMap(), true); + } + } + } + function generateLocalSharedImportMap() { + var options = getNormalizeModuleFederationOptions(); + return "\n const importMap = {\n " + Array.from(getUsedShares()).map(function (pkg) { + return "\n " + JSON.stringify(pkg) + ": async () => {\n let pkg = await import(\"" + getPreBuildLibImportId(pkg) + "\")\n return pkg\n }\n "; + }).join(",") + "\n }\n const usedShared = {\n " + Array.from(getUsedShares()).map(function (key) { + var shareItem = getNormalizeShareItem(key); + return "\n " + JSON.stringify(key) + ": {\n name: " + JSON.stringify(key) + ",\n version: " + JSON.stringify(shareItem.version) + ",\n scope: [" + JSON.stringify(shareItem.scope) + "],\n loaded: false,\n from: " + JSON.stringify(options.name) + ",\n async get () {\n usedShared[" + JSON.stringify(key) + "].loaded = true\n const {" + JSON.stringify(key) + ": pkgDynamicImport} = importMap \n const res = await pkgDynamicImport()\n const exportModule = {...res}\n // All npm packages pre-built by vite will be converted to esm\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return function () {\n return exportModule\n }\n },\n shareConfig: {\n singleton: " + shareItem.shareConfig.singleton + ",\n requiredVersion: " + JSON.stringify(shareItem.shareConfig.requiredVersion) + "\n }\n }\n "; + }).join(',') + "\n }\n const usedRemotes = [" + Object.keys(getUsedRemotesMap()).map(function (key) { + var remote = options.remotes[key]; + return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n "; + }).join(',') + "\n ]\n export {\n usedShared,\n usedRemotes\n }\n "; + } + var REMOTE_ENTRY_ID = 'virtual:mf-REMOTE_ENTRY_ID'; + function generateRemoteEntry(options) { + var pluginImportNames = options.runtimePlugins.map(function (p, i) { + return ["$runtimePlugin_" + i, "import $runtimePlugin_" + i + " from \"" + p + "\";"]; + }); + return "\n import {init as runtimeInit, loadRemote} from \"@module-federation/runtime\";\n " + pluginImportNames.map(function (item) { + return item[1]; + }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) { + return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n "; + }).join(',') + "\n }\n import {usedShared, usedRemotes} from \"" + getLocalSharedImportMapPath() + "\"\n import {\n initResolve\n } from \"" + virtualRuntimeInitStatus.getImportId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: usedRemotes,\n shared: usedShared,\n plugins: [" + pluginImportNames.map(function (item) { + return item[0] + "()"; + }).join(', ') + "]\n });\n initRes.initShareScopeMap('" + options.shareScope + "', shared);\n initResolve(initRes)\n return initRes\n }\n\n function getExposes(moduleName) {\n if (!(moduleName in exposesMap)) throw new Error(`Module ${moduleName} does not exist in container.`)\n return (exposesMap[moduleName])().then(res => () => res)\n }\n export {\n init,\n getExposes as get\n }\n "; + } + /** + * Inject entry file, automatically init when used as host, + * and will not inject remoteEntry + */ + var hostAutoInitModule = new VirtualModule("hostAutoInit"); + function writeHostAutoInit() { + hostAutoInitModule.writeSync("\n import {init} from \"" + REMOTE_ENTRY_ID + "\"\n init()\n "); + } + function getHostAutoInitImportId() { + return hostAutoInitModule.getImportId(); + } + function getHostAutoInitPath() { + return hostAutoInitModule.getPath(); + } + + function initVirtualModules() { + writeLocalSharedImportMap(); + writeHostAutoInit(); + writeRuntimeInitStatus(); + } + + var Manifest = function Manifest() { + var mfOptions = getNormalizeModuleFederationOptions(); + var name = mfOptions.name, + filename = mfOptions.filename, + manifestOptions = mfOptions.manifest; + var mfManifestName = ""; + if (manifestOptions === true) { + mfManifestName = "mf-manifest.json"; + } + if (typeof manifestOptions !== "boolean") { + mfManifestName = path.join((manifestOptions == null ? void 0 : manifestOptions.filePath) || "", (manifestOptions == null ? void 0 : manifestOptions.fileName) || ""); + } + var extensions; + var root; + var remoteEntryFile; + return [{ + name: 'moddule-federation-manifest', + apply: 'serve', + configureServer: function configureServer(server) { + server.middlewares.use(function (req, res, next) { + if (!mfManifestName) { + next(); + return; + } + if (req.url === mfManifestName.replace(/^\/?/, "/")) { + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.end(JSON.stringify({ + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: { + name: filename, + path: '', + type: 'module' + }, + ssrRemoteEntry: { + name: filename, + path: '', + type: 'module' + }, + types: { + path: '', + name: '' + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: Array.from(getUsedShares()).map(function (shareKey) { + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: [], + sync: [] + }, + css: { + async: [], + sync: [] + } + } + }; + }), + remotes: function () { + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: mfOptions.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + return remotes; + }(), + exposes: Object.keys(mfOptions.exposes).map(function (key) { + var formatKey = key.replace('./', ''); + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: [], + sync: [] + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }) + })); + } else { + next(); + } + }); + } + }, { + name: 'moddule-federation-manifest', + enforce: 'post', + config: function config(_config) { + if (!_config.build) _config.build = {}; + if (!_config.build.manifest) _config.build.manifest = _config.build.manifest || !!manifestOptions; + }, + configResolved: function configResolved(config) { + root = config.root; + extensions = config.resolve.extensions || ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json']; + }, + generateBundle: function generateBundle(options, bundle) { + try { + var _this = this; + // 递归查找模块的同步导入文件 + var _findSynchronousImports = function findSynchronousImports(fileName, array) { + var fileData = bundle[fileName]; + if (fileData && fileData.type === 'chunk') { + array.push(fileName); // 将当前文件加入预加载列表 + // 遍历该文件的同步导入文件 + fileData.imports.forEach(function (importedFile) { + if (array.indexOf(importedFile) === -1) { + _findSynchronousImports(importedFile, array); // 递归查找同步导入的文件 + } + }); + } + }; + if (!mfManifestName) return Promise.resolve(); + var exposesModules = Object.keys(mfOptions.exposes).map(function (item) { + return mfOptions.exposes[item]["import"]; + }); // 获取你提供的 moduleIds + var filesContainingModules = {}; + // 帮助函数:检查模块路径是否匹配 + var isModuleMatched = function isModuleMatched(relativeModulePath, preloadModule) { + // 先尝试直接匹配 + if (relativeModulePath === preloadModule) return true; + // 如果 preloadModule 没有后缀,尝试添加可能的后缀进行匹配 + for (var _iterator = _createForOfIteratorHelperLoose(extensions), _step; !(_step = _iterator()).done;) { + var ext = _step.value; + if (relativeModulePath === "" + preloadModule + ext) { + return true; + } + } + return false; + }; + // 遍历打包生成的每个文件 + for (var _i = 0, _Object$entries = Object.entries(bundle); _i < _Object$entries.length; _i++) { + var _Object$entries$_i = _Object$entries[_i], + fileName = _Object$entries$_i[0], + fileData = _Object$entries$_i[1]; + if (mfOptions.filename.replace(/[\[\]]/g, "_") === fileData.name) { + remoteEntryFile = fileData.fileName; + } + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i2 = 0, _Object$keys = Object.keys(fileData.modules); _i2 < _Object$keys.length; _i2++) { + var modulePath = _Object$keys[_i2]; + // 将绝对路径转换为相对于 Vite root 的相对路径 + var relativeModulePath = path.relative(root, modulePath); + // 检查模块是否在 preloadModules 列表中 + for (var _iterator2 = _createForOfIteratorHelperLoose(exposesModules), _step2; !(_step2 = _iterator2()).done;) { + var preloadModule = _step2.value; + var formatPreloadModule = preloadModule.replace("./", ""); + if (isModuleMatched(relativeModulePath, formatPreloadModule)) { + var _filesContainingModul; + if (!filesContainingModules[preloadModule]) { + filesContainingModules[preloadModule] = { + sync: [], + async: [] + }; + } + console.log(Object.keys(fileData.modules)); + filesContainingModules[preloadModule].sync.push(fileName); + (_filesContainingModul = filesContainingModules[preloadModule].async).push.apply(_filesContainingModul, fileData.dynamicImports || []); + _findSynchronousImports(fileName, filesContainingModules[preloadModule].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + } + ; + var fileToShareKey = {}; + return Promise.resolve(Promise.all(Array.from(getUsedShares()).map(function (shareKey) { + try { + return Promise.resolve(_this.resolve(getPreBuildLibImportId(shareKey))).then(function (_this$resolve) { + var file = _this$resolve.id.split("?")[0]; + fileToShareKey[file] = shareKey; + }); + } catch (e) { + return Promise.reject(e); + } + }))).then(function () { + // 遍历打包生成的每个文件 + for (var _i3 = 0, _Object$entries2 = Object.entries(bundle); _i3 < _Object$entries2.length; _i3++) { + var _Object$entries2$_i = _Object$entries2[_i3], + _fileName = _Object$entries2$_i[0], + _fileData = _Object$entries2$_i[1]; + if (_fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (var _i4 = 0, _Object$keys2 = Object.keys(_fileData.modules); _i4 < _Object$keys2.length; _i4++) { + var _modulePath = _Object$keys2[_i4]; + var sharedKey = fileToShareKey[_modulePath]; + if (sharedKey) { + var _filesContainingModul2; + if (!filesContainingModules[sharedKey]) { + filesContainingModules[sharedKey] = { + sync: [], + async: [] + }; + } + filesContainingModules[sharedKey].sync.push(_fileName); + (_filesContainingModul2 = filesContainingModules[sharedKey].async).push.apply(_filesContainingModul2, _fileData.dynamicImports || []); + _findSynchronousImports(_fileName, filesContainingModules[sharedKey].sync); + break; // 如果找到匹配,跳出循环 + } + } + } + } + Object.keys(filesContainingModules).forEach(function (key) { + filesContainingModules[key].sync = Array.from(new Set(filesContainingModules[key].sync)); + filesContainingModules[key].async = Array.from(new Set(filesContainingModules[key].async)); + }); + _this.emitFile({ + type: 'asset', + fileName: mfManifestName, + source: generateMFManifest(filesContainingModules) + }); + }); + } catch (e) { + return Promise.reject(e); + } + } + }]; + function generateMFManifest(preloadMap) { + var options = getNormalizeModuleFederationOptions(); + var name = options.name; + var remoteEntry = { + name: remoteEntryFile, + path: '', + type: 'module' + }; + var remotes = []; + var usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach(function (remoteKey) { + var usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach(function (moduleKey) { + remotes.push({ + federationContainerName: options.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*' + }); + }); + }); + // @ts-ignore + var shared = Array.from(getUsedShares()).map(function (shareKey) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + if (!preloadMap[shareKey]) return; + var shareItem = getNormalizeShareItem(shareKey); + return { + id: name + ":" + shareKey, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: preloadMap[shareKey].async, + sync: preloadMap[shareKey].sync + }, + css: { + async: [], + sync: [] + } + } + }; + }).filter(function (item) { + return item; + }); + var exposes = Object.keys(options.exposes).map(function (key) { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + var formatKey = key.replace('./', ''); + var sourceFile = options.exposes[key]["import"]; + if (!preloadMap[sourceFile]) return; + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: preloadMap[sourceFile].async, + sync: preloadMap[sourceFile].sync + }, + css: { + sync: [], + async: [] + } + }, + path: key + }; + }).filter(function (item) { + return item; + }); // Filter out any null values + var result = { + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name + }, + remoteEntry: remoteEntry, + ssrRemoteEntry: remoteEntry, + types: { + path: '', + name: '' + // "zip": "@mf-types.zip", + // "api": "@mf-types.d.ts" + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto' + }, + shared: shared, + remotes: remotes, + exposes: exposes + }; + return JSON.stringify(result); + } + }; + + var _resolve, + promise = new Promise(function (resolve, reject) { + _resolve = resolve; + }); + var parsePromise = promise; + var parseStartSet = new Set(); + var parseEndSet = new Set(); + function pluginModuleParseEnd (excludeFn) { + return [{ + name: "_", + apply: "serve", + config: function config() { + // No waiting in development mode + _resolve(1); + } + }, { + enforce: "pre", + name: "parseStart", + apply: "build", + load: function load(id) { + if (excludeFn(id)) { + return; + } + parseStartSet.add(id); + } + }, { + enforce: "post", + name: "parseEnd", + apply: "build", + moduleParsed: function moduleParsed(module) { + var id = module.id; + if (excludeFn(id)) { + return; + } + parseEndSet.add(id); + if (parseStartSet.size === parseEndSet.size) { + _resolve(1); + } + } + }]; + } + + var filter = pluginutils.createFilter(); + function pluginProxyRemoteEntry () { + return { + name: 'proxyRemoteEntry', + enforce: 'post', + resolveId: function resolveId(id) { + if (id === REMOTE_ENTRY_ID) { + return REMOTE_ENTRY_ID; + } + }, + load: function load(id) { + if (id === REMOTE_ENTRY_ID) { + return parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + }); + } + }, + transform: function transform(code, id) { + try { + if (!filter(id)) return Promise.resolve(); + if (id.includes(REMOTE_ENTRY_ID)) { + return Promise.resolve(parsePromise.then(function (_) { + return generateRemoteEntry(getNormalizeModuleFederationOptions()); + })); + } + return Promise.resolve(); + } catch (e) { + return Promise.reject(e); + } + } + }; + } + + pluginutils.createFilter(); + function pluginProxyRemotes (options) { + var remotes = options.remotes; + return { + name: "proxyRemotes", + config: function config(_config, _ref) { + var _command = _ref.command; + Object.keys(remotes).forEach(function (key) { + var remote = remotes[key]; + _config.resolve.alias.push({ + find: new RegExp("^(" + remote.name + "(/.*|$))"), + replacement: "$1", + customResolver: function customResolver(source) { + var remoteModule = getRemoteVirtualModule(source, _command); + addUsedRemote(remote.name, source); + return remoteModule.getPath(); + } + }); + }); + } + }; + } + + /** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ + var PromiseStore = /*#__PURE__*/function () { + function PromiseStore() { + this.promiseMap = new Map(); + this.resolveMap = new Map(); + } + var _proto = PromiseStore.prototype; + _proto.set = function set(id, promise) { + if (this.resolveMap.has(id)) { + promise.then(this.resolveMap.get(id)); + this.resolveMap["delete"](id); + } + this.promiseMap.set(id, promise); + }; + _proto.get = function get(id) { + var _this = this; + if (this.promiseMap.has(id)) { + return this.promiseMap.get(id); + } + var pendingPromise = new Promise(function (resolve) { + _this.resolveMap.set(id, resolve); + }); + this.promiseMap.set(id, pendingPromise); + return pendingPromise; + }; + return PromiseStore; + }(); + + function proxySharedModule(options) { + var _options$shared = options.shared, + shared = _options$shared === void 0 ? {} : _options$shared; + return [{ + name: "generateLocalSharedImportMap", + enforce: "post", + load: function load(id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + }, + transform: function transform(code, id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(function (_) { + return generateLocalSharedImportMap(); + }); + } + } + }, { + name: 'proxyPreBuildShared', + enforce: 'post', + config: function config(_config, _ref) { + var _config$resolve$alias, _config$resolve$alias2; + var command = _ref.command; + (_config$resolve$alias = _config.resolve.alias).push.apply(_config$resolve$alias, Object.keys(shared).map(function (key) { + var pattern = key.endsWith("/") ? "(^" + key.replace(/\/$/, "") + "(/.+)?$)" : "(^" + key + "$)"; + return { + // Intercept all shared requests and proxy them to loadShare + find: new RegExp(pattern), + replacement: "$1", + customResolver: function customResolver(source, importer) { + var loadSharePath = getLoadShareModulePath(source); + writeLoadShareModule(source, shared[key], command); + writePreBuildLibPath(source); + addUsedShares(source); + writeLocalSharedImportMap(); + return this.resolve(loadSharePath); + } + }; + })); + var savePrebuild = new PromiseStore(); + (_config$resolve$alias2 = _config.resolve.alias).push.apply(_config$resolve$alias2, Object.keys(shared).map(function (key) { + return command === "build" ? { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: function replacement($1) { + var pkgName = VirtualModule.findModule(PREBUILD_TAG, $1).name; + return pkgName; + } + } : { + find: new RegExp("(.*" + PREBUILD_TAG + ".*)"), + replacement: "$1", + customResolver: function customResolver(source, importer) { + try { + var _this = this; + var pkgName = VirtualModule.findModule(PREBUILD_TAG, source).name; + if (importer.includes(LOAD_SHARE_TAG)) { + // save pre-bunding module id + savePrebuild.set(pkgName, _this.resolve(pkgName).then(function (item) { + return item.id; + })); + } + // Fix localSharedImportMap import id + var _resolve = _this.resolve; + return Promise.resolve(savePrebuild.get(pkgName)).then(function (_savePrebuild$get) { + return Promise.resolve(_resolve.call(_this, _savePrebuild$get)); + }); + } catch (e) { + return Promise.reject(e); + } + } + }; + })); + } + }, { + name: "watchLocalSharedImportMap", + apply: "serve", + config: function config(_config2) { + _config2.optimizeDeps = defu.defu(_config2.optimizeDeps, { + exclude: [getLocalSharedImportMapPath()] + }); + _config2.server = defu.defu(_config2.server, { + watch: { + ignored: [] + } + }); + var watch = _config2.server.watch; + watch.ignored = [].concat(watch.ignored); + watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**"); + } + }]; + } + + var aliasToArrayPlugin = { + name: 'alias-transform-plugin', + config: function config(_config, _ref) { + if (!_config.resolve) _config.resolve = {}; + if (!_config.resolve.alias) _config.resolve.alias = []; + var alias = _config.resolve.alias; + if (typeof alias === 'object' && !Array.isArray(alias)) { + _config.resolve.alias = Object.entries(alias).map(function (_ref2) { + var find = _ref2[0], + replacement = _ref2[1]; + return { + find: find, + replacement: replacement + }; + }); + } + } + }; + + var normalizeOptimizeDepsPlugin = { + name: 'normalizeOptimizeDeps', + config: function config(_config, _ref) { + var optimizeDeps = _config.optimizeDeps; + if (!optimizeDeps) { + _config.optimizeDeps = {}; + optimizeDeps = _config.optimizeDeps; + } + // todo: fix this workaround + optimizeDeps.force = true; + if (!optimizeDeps.include) optimizeDeps.include = []; + if (!optimizeDeps.needsInterop) optimizeDeps.needsInterop = []; + } + }; + + function federation(mfUserOptions) { + var options = normalizeModuleFederationOptions(mfUserOptions); + initVirtualModules(); + var name = options.name, + shared = options.shared, + filename = options.filename; + if (!name) throw new Error("name is required"); + return [aliasToArrayPlugin, normalizeOptimizeDepsPlugin].concat(addEntry({ + entryName: 'remoteEntry', + entryPath: REMOTE_ENTRY_ID, + fileName: filename + }), addEntry({ + entryName: 'hostInit', + entryPath: getHostAutoInitPath() + }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) { + return id.includes(getHostAutoInitImportId()) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath()); + }), proxySharedModule({ + shared: shared + }), [PluginDevProxyModuleTopLevelAwait(), { + name: 'module-federation-vite', + enforce: 'post', + config: function config(_config, _ref) { + var _config$optimizeDeps; + _config.resolve.alias.push({ + find: '@module-federation/runtime', + replacement: require.resolve('@module-federation/runtime') + }); + (_config$optimizeDeps = _config.optimizeDeps) == null || (_config$optimizeDeps = _config$optimizeDeps.include) == null || _config$optimizeDeps.push('@module-federation/runtime'); + } + }], Manifest()); + } + + exports.federation = federation; + +})); diff --git a/lib/plugins/pluginAddEntry.d.ts b/lib/plugins/pluginAddEntry.d.ts new file mode 100644 index 0000000..4ea5e42 --- /dev/null +++ b/lib/plugins/pluginAddEntry.d.ts @@ -0,0 +1,8 @@ +import { Plugin } from 'vite'; +interface AddEntryOptions { + entryName: string; + entryPath: string; + fileName?: string; +} +declare const addEntry: ({ entryName, entryPath, fileName }: AddEntryOptions) => Plugin[]; +export default addEntry; diff --git a/lib/plugins/pluginDevProxyModuleTopLevelAwait.d.ts b/lib/plugins/pluginDevProxyModuleTopLevelAwait.d.ts new file mode 100644 index 0000000..e223f16 --- /dev/null +++ b/lib/plugins/pluginDevProxyModuleTopLevelAwait.d.ts @@ -0,0 +1,2 @@ +import { Plugin } from "vite"; +export declare function PluginDevProxyModuleTopLevelAwait(): Plugin; diff --git a/lib/plugins/pluginMFManifest.d.ts b/lib/plugins/pluginMFManifest.d.ts new file mode 100644 index 0000000..f3d07d0 --- /dev/null +++ b/lib/plugins/pluginMFManifest.d.ts @@ -0,0 +1,3 @@ +import { Manifest, Plugin } from 'vite'; +declare const Manifest: () => Plugin[]; +export default Manifest; diff --git a/lib/plugins/pluginModuleParseEnd.d.ts b/lib/plugins/pluginModuleParseEnd.d.ts new file mode 100644 index 0000000..054958e --- /dev/null +++ b/lib/plugins/pluginModuleParseEnd.d.ts @@ -0,0 +1,8 @@ +/** + * Dynamic shared modules, such as "react/" and "react-dom/", can only be parsed during the build process; + * This plugin allows me to wait until all modules are built, and then expose them together. + */ +import { Plugin } from "vite"; +declare let parsePromise: Promise; +export default function (excludeFn: Function): Plugin[]; +export { parsePromise }; diff --git a/lib/plugins/pluginProxyRemoteEntry.d.ts b/lib/plugins/pluginProxyRemoteEntry.d.ts new file mode 100644 index 0000000..e0e6b7c --- /dev/null +++ b/lib/plugins/pluginProxyRemoteEntry.d.ts @@ -0,0 +1,2 @@ +import { Plugin } from 'vite'; +export default function (): Plugin; diff --git a/lib/plugins/pluginProxyRemotes.d.ts b/lib/plugins/pluginProxyRemotes.d.ts new file mode 100644 index 0000000..c01e32b --- /dev/null +++ b/lib/plugins/pluginProxyRemotes.d.ts @@ -0,0 +1,3 @@ +import { Plugin } from "vite"; +import { NormalizedModuleFederationOptions } from "../utils/normalizeModuleFederationOptions"; +export default function (options: NormalizedModuleFederationOptions): Plugin; diff --git a/lib/plugins/pluginProxySharedModule_preBuild.d.ts b/lib/plugins/pluginProxySharedModule_preBuild.d.ts new file mode 100644 index 0000000..ce5d9ec --- /dev/null +++ b/lib/plugins/pluginProxySharedModule_preBuild.d.ts @@ -0,0 +1,7 @@ +import { Plugin } from 'vite'; +import { NormalizedShared } from '../utils/normalizeModuleFederationOptions'; +export declare function proxySharedModule(options: { + shared?: NormalizedShared; + include?: string | string[]; + exclude?: string | string[]; +}): Plugin[]; diff --git a/lib/utils/PromiseStore.d.ts b/lib/utils/PromiseStore.d.ts new file mode 100644 index 0000000..574eca2 --- /dev/null +++ b/lib/utils/PromiseStore.d.ts @@ -0,0 +1,16 @@ +/** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ +export declare class PromiseStore { + private promiseMap; + private resolveMap; + set(id: string, promise: Promise): void; + get(id: string): Promise; +} diff --git a/lib/utils/VirtualModule.d.ts b/lib/utils/VirtualModule.d.ts new file mode 100644 index 0000000..3688a9c --- /dev/null +++ b/lib/utils/VirtualModule.d.ts @@ -0,0 +1,16 @@ +export declare const virtualPackageName = "__mf__virtual"; +/** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ +export default class VirtualModule { + name: string; + tag: string; + suffix: string; + inited: boolean; + static findModule(tag: string, str?: string): VirtualModule | undefined; + constructor(name: string, tag?: string, suffix?: string); + getPath(): string; + getImportId(): string; + writeSync(code: string, force?: boolean): void; + write(code: string): void; +} diff --git a/lib/utils/aliasToArrayPlugin.d.ts b/lib/utils/aliasToArrayPlugin.d.ts new file mode 100644 index 0000000..c8aa357 --- /dev/null +++ b/lib/utils/aliasToArrayPlugin.d.ts @@ -0,0 +1,10 @@ +import { UserConfig } from 'vite'; +export interface Command { +} +declare const _default: { + name: string; + config: (config: UserConfig, { command }: { + command: Command; + }) => void; +}; +export default _default; diff --git a/lib/utils/getLocalSharedImportMap_windows.d.ts b/lib/utils/getLocalSharedImportMap_windows.d.ts new file mode 100644 index 0000000..9dfefa8 --- /dev/null +++ b/lib/utils/getLocalSharedImportMap_windows.d.ts @@ -0,0 +1,2 @@ +export declare function getRemoteEntryPath_windows(): string; +export declare function writeRemoteEntry_windows(content: string): void; diff --git a/lib/utils/localSharedImportMap_windows.d.ts b/lib/utils/localSharedImportMap_windows.d.ts new file mode 100644 index 0000000..72a20bf --- /dev/null +++ b/lib/utils/localSharedImportMap_windows.d.ts @@ -0,0 +1,2 @@ +export declare function getLocalSharedImportMapPath_windows(): string; +export declare function writeLocalSharedImportMap_windows(content: string): void; diff --git a/lib/utils/normalizeModuleFederationOptions.d.ts b/lib/utils/normalizeModuleFederationOptions.d.ts new file mode 100644 index 0000000..b0adf39 --- /dev/null +++ b/lib/utils/normalizeModuleFederationOptions.d.ts @@ -0,0 +1,90 @@ +import { SharedConfig } from '@module-federation/runtime/types'; +export type RemoteEntryType = 'var' | 'module' | 'assign' | 'assign-properties' | 'this' | 'window' | 'self' | 'global' | 'commonjs' | 'commonjs2' | 'commonjs-module' | 'commonjs-static' | 'amd' | 'amd-require' | 'umd' | 'umd2' | 'jsonp' | 'system' | string; +interface ExposesItem { + import: string; +} +export interface NormalizedShared { + [key: string]: ShareItem; +} +export declare function normalizeRemotes(remotes: Record | undefined): Record; +export interface ShareItem { + name: string; + version: string | undefined; + scope: string; + from: string; + shareConfig: SharedConfig; +} +interface ManifestOptions { + filePath?: string; + disableAssetsAnalyze?: boolean; + fileName?: string; +} +export type ModuleFederationOptions = { + exposes?: Record | undefined; + filename?: string; + library?: any; + name: string; + remotes?: Record | undefined; + runtime?: any; + shareScope?: string; + shared?: string[] | Record | undefined; + runtimePlugins?: string[]; + getPublicPath?: any; + implementation?: any; + manifest?: ManifestOptions | boolean; + dev?: any; + dts?: any; +}; +export interface NormalizedModuleFederationOptions { + exposes: Record; + filename: string; + library: any; + name: string; + remotes: Record; + runtime: any; + shareScope: string; + shared: NormalizedShared; + runtimePlugins: string[]; + getPublicPath: any; + implementation: any; + manifest: ManifestOptions | boolean; + dev: any; + dts: any; +} +export declare function getNormalizeModuleFederationOptions(): NormalizedModuleFederationOptions; +export declare function getNormalizeShareItem(key: string): ShareItem; +export declare function normalizeModuleFederationOptions(options: ModuleFederationOptions): NormalizedModuleFederationOptions; +export {}; diff --git a/lib/utils/normalizeOptimizeDeps.d.ts b/lib/utils/normalizeOptimizeDeps.d.ts new file mode 100644 index 0000000..329dcfa --- /dev/null +++ b/lib/utils/normalizeOptimizeDeps.d.ts @@ -0,0 +1,9 @@ +import { UserConfig } from 'vite'; +export interface Command { + command: string; +} +declare const _default: { + name: string; + config: (config: UserConfig, { command }: Command) => void; +}; +export default _default; diff --git a/lib/utils/packageNameUtils.d.ts b/lib/utils/packageNameUtils.d.ts new file mode 100644 index 0000000..7f99323 --- /dev/null +++ b/lib/utils/packageNameUtils.d.ts @@ -0,0 +1,22 @@ +/** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ +/** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ +export declare function packageNameEncode(name: string): string; +/** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ +export declare function packageNameDecode(encoded: string): string; +export declare function removePathFromNpmPackage(packageString: string): string; +export declare function getExtFromNpmPackage(packageString: string): string | undefined; diff --git a/lib/utils/wrapManualChunks.d.ts b/lib/utils/wrapManualChunks.d.ts new file mode 100644 index 0000000..50d0415 --- /dev/null +++ b/lib/utils/wrapManualChunks.d.ts @@ -0,0 +1 @@ +export declare function wrapManualChunks(output: any, manualChunksCb: Function): void; diff --git a/lib/virtualModules/index.d.ts b/lib/virtualModules/index.d.ts new file mode 100644 index 0000000..3b3f9a3 --- /dev/null +++ b/lib/virtualModules/index.d.ts @@ -0,0 +1,5 @@ +export { addUsedShares, generateLocalSharedImportMap, generateRemoteEntry, getHostAutoInitImportId, getHostAutoInitPath, getLocalSharedImportMapPath, getUsedShares, REMOTE_ENTRY_ID, writeLocalSharedImportMap } from "./virtualRemoteEntry"; +export { addUsedRemote, generateRemotes, getRemoteVirtualModule, getUsedRemotesMap } from "./virtualRemotes"; +export { getLoadShareModulePath, getPreBuildLibImportId, LOAD_SHARE_TAG, PREBUILD_TAG, writeLoadShareModule, writePreBuildLibPath } from "./virtualShared_preBuild"; +export { virtualRuntimeInitStatus } from "./virtualRuntimeInitStatus"; +export declare function initVirtualModules(): void; diff --git a/lib/virtualModules/virtualRemoteEntry.d.ts b/lib/virtualModules/virtualRemoteEntry.d.ts new file mode 100644 index 0000000..fd14b1a --- /dev/null +++ b/lib/virtualModules/virtualRemoteEntry.d.ts @@ -0,0 +1,11 @@ +import { NormalizedModuleFederationOptions } from '../utils/normalizeModuleFederationOptions'; +export declare function getUsedShares(): Set; +export declare function addUsedShares(pkg: string): void; +export declare function getLocalSharedImportMapPath(): string; +export declare function writeLocalSharedImportMap(): void; +export declare function generateLocalSharedImportMap(): string; +export declare const REMOTE_ENTRY_ID = "virtual:mf-REMOTE_ENTRY_ID"; +export declare function generateRemoteEntry(options: NormalizedModuleFederationOptions): string; +export declare function writeHostAutoInit(): void; +export declare function getHostAutoInitImportId(): string; +export declare function getHostAutoInitPath(): string; diff --git a/lib/virtualModules/virtualRemotes.d.ts b/lib/virtualModules/virtualRemotes.d.ts new file mode 100644 index 0000000..fdcfa5e --- /dev/null +++ b/lib/virtualModules/virtualRemotes.d.ts @@ -0,0 +1,6 @@ +import VirtualModule from '../utils/VirtualModule'; +export declare const LOAD_REMOTE_TAG = "__loadRemote__"; +export declare function getRemoteVirtualModule(remote: string, command: string): VirtualModule; +export declare function addUsedRemote(remoteKey: string, remoteModule: string): void; +export declare function getUsedRemotesMap(): Record>; +export declare function generateRemotes(id: string, command: string): string; diff --git a/lib/virtualModules/virtualRuntimeInitStatus.d.ts b/lib/virtualModules/virtualRuntimeInitStatus.d.ts new file mode 100644 index 0000000..d1568eb --- /dev/null +++ b/lib/virtualModules/virtualRuntimeInitStatus.d.ts @@ -0,0 +1,3 @@ +import VirtualModule from "../utils/VirtualModule"; +export declare const virtualRuntimeInitStatus: VirtualModule; +export declare function writeRuntimeInitStatus(): void; diff --git a/lib/virtualModules/virtualShared_preBuild.d.ts b/lib/virtualModules/virtualShared_preBuild.d.ts new file mode 100644 index 0000000..c30c777 --- /dev/null +++ b/lib/virtualModules/virtualShared_preBuild.d.ts @@ -0,0 +1,17 @@ +/** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ +/** +* shared will be proxied: +* 1. __prebuild__: export shareModule (pre-built source code of modules such as vue, react, etc.) +* 2. __loadShare__: load shareModule (mfRuntime.loadShare('vue')) +*/ +import { ShareItem } from "../utils/normalizeModuleFederationOptions"; +export declare const PREBUILD_TAG = "__prebuild__"; +export declare function writePreBuildLibPath(pkg: string): void; +export declare function getPreBuildLibImportId(pkg: string): string; +export declare const LOAD_SHARE_TAG = "__loadShare__"; +export declare function getLoadShareModulePath(pkg: string): string; +export declare function writeLoadShareModule(pkg: string, shareItem: ShareItem, command: string): void; diff --git a/package.json b/package.json index d1a2e65..91ee030 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@module-federation/vite", - "version": "0.2.8", - "description": "Vite/Rollup plugin for Module Federation", + "version": "1.0.0-alpha-c13dc95", + "description": "Vite plugin for Module Federation", "type": "module", "source": "src/index.ts", "main": "./lib/index.cjs", @@ -12,8 +12,12 @@ "scripts": { "prepare": "husky install", "format": "pretty-quick", - "dev": "microbundle watch", - "build": "rimraf lib && microbundle --no-sourcemap --compress=false" + "dev": "microbundle watch --no-sourcemap --compress=false", + "build": "rimraf lib && microbundle --no-sourcemap --compress=false", + "dev-rv": "pnpm -filter 'examples-rust-vite*' run dev", + "dev-vv": "pnpm -filter 'examples-vite-vite*' run dev", + "dev-nv": "pnpm -filter 'examples-nuxt-vite-host' -filter 'examples-vite-vite-remote' run dev", + "preview-vv": "pnpm -filter 'examples-vite-vite*' run preview" }, "repository": { "type": "git", @@ -34,15 +38,21 @@ "url": "https://github.com/module-federation/vite/issues" }, "homepage": "https://github.com/module-federation/vite#readme", - "peerDependencies": { - "@softarc/native-federation": "^2.0.2" + "packageManager": "pnpm@9.1.3", + "dependencies": { + "@module-federation/runtime": "^0.6.0", + "@rollup/pluginutils": "^5.1.0", + "estree-walker": "^2", + "magic-string": "^0.30.11", + "pathe": "^1.1.2", + "defu": "^6.1.4" }, "devDependencies": { "husky": "^8.0.3", "microbundle": "^0.15.1", "mime-types": "^2.1.35", - "pretty-quick": "^3.1.3", - "rimraf": "^5.0.1", - "vite": "^4.4.9" + "pretty-quick": "^4.0.0", + "rimraf": "^6.0.1", + "vite": "^5.4.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4de561b..cd55a62 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,5168 +5,9151 @@ settings: excludeLinksFromLockfile: false importers: + .: dependencies: - '@softarc/native-federation': - specifier: ^2.0.2 - version: 2.0.9 + '@module-federation/runtime': + specifier: ^0.6.0 + version: 0.6.0 + '@rollup/pluginutils': + specifier: ^5.1.0 + version: 5.1.0(rollup@2.79.1) + defu: + specifier: ^6.1.4 + version: 6.1.4 + estree-walker: + specifier: ^2 + version: 2.0.2 + magic-string: + specifier: ^0.30.11 + version: 0.30.11 + pathe: + specifier: ^1.1.2 + version: 1.1.2 devDependencies: husky: specifier: ^8.0.3 version: 8.0.3 microbundle: specifier: ^0.15.1 - version: 0.15.1 + version: 0.15.1(@types/babel__core@7.20.5) mime-types: specifier: ^2.1.35 version: 2.1.35 pretty-quick: - specifier: ^3.1.3 - version: 3.3.1(prettier@2.8.8) + specifier: ^4.0.0 + version: 4.0.0(prettier@3.3.3) rimraf: - specifier: ^5.0.1 - version: 5.0.10 + specifier: ^6.0.1 + version: 6.0.1 + vite: + specifier: ^5.4.3 + version: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + + examples/nuxt-vite/nuxt-host: + dependencies: + '@module-federation/vite': + specifier: workspace:* + version: link:../../.. + nuxt: + specifier: ^3.13.0 + version: 3.13.0(@parcel/watcher@2.4.1)(@types/node@22.5.0)(ioredis@5.4.1)(magicast@0.3.5)(rollup@4.21.0)(sass-embedded@1.77.8)(terser@5.31.6)(typescript@5.5.3)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vue: + specifier: latest + version: 3.5.3(typescript@5.5.3) + devDependencies: + vite-plugin-top-level-await: + specifier: ^1.4.4 + version: 1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + + examples/nuxt-vite/nuxt-remote: + dependencies: + '@module-federation/vite': + specifier: workspace:* + version: link:../../.. + nuxt: + specifier: ^3.13.0 + version: 3.13.0(@parcel/watcher@2.4.1)(@types/node@22.5.0)(ioredis@5.4.1)(magicast@0.3.5)(rollup@4.21.0)(sass-embedded@1.77.8)(terser@5.31.6)(typescript@5.5.3)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vue: + specifier: latest + version: 3.5.3(typescript@5.5.3) + devDependencies: + vite-plugin-top-level-await: + specifier: ^1.4.4 + version: 1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + + examples/rust-vite/rust-host: + dependencies: + '@module-federation/enhanced': + specifier: 0.2.5 + version: 0.2.5(typescript@5.5.3) + antd: + specifier: ^5.16.2 + version: 5.20.2(luxon@3.5.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + react-router-dom: + specifier: ^6.22.3 + version: 6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + vue: + specifier: ^3.4.29 + version: 3.4.38(typescript@5.5.3) + devDependencies: + '@rsbuild/core': + specifier: 0.7.10 + version: 0.7.10 + '@rsbuild/plugin-react': + specifier: 0.7.10 + version: 0.7.10(@rsbuild/core@0.7.10)(@swc/helpers@0.5.3) + '@types/react': + specifier: 18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: 18.3.0 + version: 18.3.0 + typescript: + specifier: 5.5.3 + version: 5.5.3 + + examples/rust-vite/vite-remote: + dependencies: + '@module-federation/vite': + specifier: workspace:* + version: link:../../.. + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + vue: + specifier: ^3.4.35 + version: 3.4.38(typescript@5.5.3) + vue-router: + specifier: ^4.4.0 + version: 4.4.3(vue@3.4.38(typescript@5.5.3)) + devDependencies: + '@swc/core': + specifier: ~1.6.0 + version: 1.6.13(@swc/helpers@0.5.3) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vite: + specifier: ^5.3.1 + version: 5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-plugin-top-level-await: + specifier: ^1.4.1 + version: 1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + + examples/vite-vite/vite-host: + dependencies: + '@emotion/react': + specifier: ^11.13.0 + version: 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': + specifier: ^11.13.0 + version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@module-federation/vite': + specifier: workspace:* + version: link:../../.. + '@mui/material': + specifier: ^5.13.4 + version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ag-grid-community: + specifier: ^30.2.0 + version: 30.2.1 + ag-grid-react: + specifier: ^30.2.0 + version: 30.2.1(ag-grid-community@30.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + styled-components: + specifier: 5.3.3 + version: 5.3.3(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + vue: + specifier: ^3.4.37 + version: 3.4.38(typescript@5.5.3) + vue-router: + specifier: ^4.4.3 + version: 4.4.3(vue@3.4.38(typescript@5.5.3)) + devDependencies: + '@swc/core': + specifier: ~1.7.10 + version: 1.7.14(@swc/helpers@0.5.3) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) vite: - specifier: ^4.4.9 - version: 4.5.3(@types/node@22.1.0)(terser@5.31.3) + specifier: ^5.4.0 + version: 5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-plugin-top-level-await: + specifier: ^1.4.4 + version: 1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + + examples/vite-vite/vite-remote: + dependencies: + '@emotion/react': + specifier: ^11.13.0 + version: 11.13.3(@types/react@18.3.3)(react@18.2.0) + '@emotion/styled': + specifier: ^11.13.0 + version: 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0) + '@module-federation/vite': + specifier: workspace:* + version: link:../../.. + '@mui/material': + specifier: ^5.13.4 + version: 5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + ag-grid-community: + specifier: ^30.2.0 + version: 30.2.1 + ag-grid-react: + specifier: ^30.2.0 + version: 30.2.1(ag-grid-community@30.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + sass-embedded: + specifier: ^1.77.8 + version: 1.77.8 + styled-components: + specifier: 5.3.3 + version: 5.3.3(@babel/core@7.25.2)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0) + vue: + specifier: ^3.4.37 + version: 3.4.38(typescript@5.5.3) + vue-router: + specifier: ^4.4.3 + version: 4.4.3(vue@3.4.38(typescript@5.5.3)) + devDependencies: + '@swc/core': + specifier: ~1.7.10 + version: 1.7.14(@swc/helpers@0.5.3) + '@vitejs/plugin-react': + specifier: ^4.3.1 + version: 4.3.1(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vite: + specifier: ^5.4.0 + version: 5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-plugin-top-level-await: + specifier: ^1.4.4 + version: 1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) packages: + '@ampproject/remapping@2.3.0': - resolution: - { - integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@ant-design/colors@7.1.0': + resolution: {integrity: sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==} + + '@ant-design/cssinjs-utils@1.0.3': + resolution: {integrity: sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + '@ant-design/cssinjs@1.21.1': + resolution: {integrity: sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@ant-design/fast-color@2.0.6': + resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} + engines: {node: '>=8.x'} + + '@ant-design/icons-svg@4.4.2': + resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} + + '@ant-design/icons@5.4.0': + resolution: {integrity: sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + '@ant-design/react-slick@1.1.2': + resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} + peerDependencies: + react: '>=16.9.0' + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} '@babel/code-frame@7.24.7': - resolution: - { - integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==, - } - engines: { node: '>=6.9.0' } - - '@babel/compat-data@7.25.2': - resolution: - { - integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.4': + resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + engines: {node: '>=6.9.0'} '@babel/core@7.25.2': - resolution: - { - integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==, - } - engines: { node: '>=6.9.0' } - - '@babel/generator@7.25.0': - resolution: - { - integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.4': + resolution: {integrity: sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==} + engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': - resolution: - { - integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - resolution: - { - integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} + engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.25.2': - resolution: - { - integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==, - } - engines: { node: '>=6.9.0' } - - '@babel/helper-create-class-features-plugin@7.25.0': - resolution: - { - integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.4': + resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-create-regexp-features-plugin@7.25.2': - resolution: - { - integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-define-polyfill-provider@0.6.2': - resolution: - { - integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==, - } + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-member-expression-to-functions@7.24.8': - resolution: - { - integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.22.15': + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.24.7': - resolution: - { - integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.25.2': - resolution: - { - integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.24.7': - resolution: - { - integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.24.8': - resolution: - { - integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.25.0': - resolution: - { - integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-replace-supers@7.25.0': - resolution: - { - integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-simple-access@7.24.7': - resolution: - { - integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + engines: {node: '>=6.9.0'} '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: - { - integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} + engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.24.8': - resolution: - { - integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.7': - resolution: - { - integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.24.8': - resolution: - { - integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.25.0': - resolution: - { - integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} + engines: {node: '>=6.9.0'} '@babel/helpers@7.25.0': - resolution: - { - integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} + engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': - resolution: - { - integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==, - } - engines: { node: '>=6.9.0' } - - '@babel/parser@7.25.3': - resolution: - { - integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.4': + resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} + engines: {node: '>=6.0.0'} hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': - resolution: - { - integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': - resolution: - { - integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': - resolution: - { - integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': - resolution: - { - integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': - resolution: - { - integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-proposal-class-properties@7.12.1': - resolution: - { - integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==, - } + resolution: {integrity: sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-decorators@7.24.7': + resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: - { - integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-async-generators@7.8.4': - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: - { - integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-decorators@7.24.7': + resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: - { - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, - } + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: - { - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, - } + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-flow@7.24.7': - resolution: - { - integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: - { - integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.24.7': - resolution: - { - integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: - { - integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, - } + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.24.7': - resolution: - { - integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: - { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, - } + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: - { - integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.4': + resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: - { - integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: - { - integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.0': - resolution: - { - integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==, - } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-async-generator-functions@7.25.4': + resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-to-generator@7.24.7': - resolution: - { - integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: - { - integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoping@7.25.0': - resolution: - { - integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.7': - resolution: - { - integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==, - } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-class-properties@7.25.4': + resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-static-block@7.24.7': - resolution: - { - integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.0': - resolution: - { - integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==, - } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-classes@7.25.4': + resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-computed-properties@7.24.7': - resolution: - { - integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-destructuring@7.24.8': - resolution: - { - integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dotall-regex@7.24.7': - resolution: - { - integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-keys@7.24.7': - resolution: - { - integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': - resolution: - { - integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-dynamic-import@7.24.7': - resolution: - { - integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-exponentiation-operator@7.24.7': - resolution: - { - integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-export-namespace-from@7.24.7': - resolution: - { - integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-flow-strip-types@7.25.2': - resolution: - { - integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-for-of@7.24.7': - resolution: - { - integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-function-name@7.25.1': - resolution: - { - integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-json-strings@7.24.7': - resolution: - { - integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-literals@7.25.2': - resolution: - { - integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-logical-assignment-operators@7.24.7': - resolution: - { - integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: - { - integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-amd@7.24.7': - resolution: - { - integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: - { - integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-systemjs@7.25.0': - resolution: - { - integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-umd@7.24.7': - resolution: - { - integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': - resolution: - { - integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-new-target@7.24.7': - resolution: - { - integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': - resolution: - { - integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-numeric-separator@7.24.7': - resolution: - { - integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-rest-spread@7.24.7': - resolution: - { - integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-super@7.24.7': - resolution: - { - integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-catch-binding@7.24.7': - resolution: - { - integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: - { - integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-parameters@7.24.7': - resolution: - { - integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.24.7': - resolution: - { - integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==, - } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-private-methods@7.25.4': + resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-property-in-object@7.24.7': - resolution: - { - integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-property-literals@7.24.7': - resolution: - { - integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-display-name@7.24.7': - resolution: - { - integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-development@7.24.7': - resolution: - { - integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.24.7': + resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.24.7': + resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx@7.25.2': - resolution: - { - integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-pure-annotations@7.24.7': - resolution: - { - integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-regenerator@7.24.7': - resolution: - { - integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-reserved-words@7.24.7': - resolution: - { - integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: - { - integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-spread@7.24.7': - resolution: - { - integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-sticky-regex@7.24.7': - resolution: - { - integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-template-literals@7.24.7': - resolution: - { - integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typeof-symbol@7.24.8': - resolution: - { - integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.25.2': + resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-escapes@7.24.7': - resolution: - { - integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-property-regex@7.24.7': - resolution: - { - integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-regex@7.24.7': - resolution: - { - integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.24.7': - resolution: - { - integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==, - } - engines: { node: '>=6.9.0' } + '@babel/plugin-transform-unicode-sets-regex@7.25.4': + resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.25.3': - resolution: - { - integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==, - } - engines: { node: '>=6.9.0' } + '@babel/preset-env@7.25.4': + resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-flow@7.24.7': - resolution: - { - integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: - { - integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, - } + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 '@babel/preset-react@7.24.7': - resolution: - { - integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/regjsgen@0.8.0': - resolution: - { - integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, - } - - '@babel/runtime@7.25.0': - resolution: - { - integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + + '@babel/runtime@7.25.4': + resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} + engines: {node: '>=6.9.0'} + + '@babel/standalone@7.25.6': + resolution: {integrity: sha512-Kf2ZcZVqsKbtYhlA7sP0z5A3q5hmCVYMKMWRWNK/5OVwHIve3JY1djVRmIVAx8FMueLIfZGKQDIILK2w8zO4mg==} + engines: {node: '>=6.9.0'} '@babel/template@7.25.0': - resolution: - { - integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==, - } - engines: { node: '>=6.9.0' } - - '@babel/traverse@7.25.3': - resolution: - { - integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==, - } - engines: { node: '>=6.9.0' } - - '@babel/types@7.25.2': - resolution: - { - integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==, - } - engines: { node: '>=6.9.0' } - - '@esbuild/android-arm64@0.18.20': - resolution: - { - integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.4': + resolution: {integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.4': + resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} + engines: {node: '>=6.9.0'} + + '@bufbuild/protobuf@1.10.0': + resolution: {integrity: sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==} + + '@cloudflare/kv-asset-handler@0.3.4': + resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} + engines: {node: '>=16.13'} + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@emotion/babel-plugin@11.12.0': + resolution: {integrity: sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==} + + '@emotion/cache@11.13.1': + resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} + + '@emotion/hash@0.8.0': + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@0.8.8': + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + + '@emotion/is-prop-valid@1.3.0': + resolution: {integrity: sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==} + + '@emotion/memoize@0.7.4': + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.13.3': + resolution: {integrity: sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.1': + resolution: {integrity: sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.0': + resolution: {integrity: sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/stylis@0.8.5': + resolution: {integrity: sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==} + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/unitless@0.7.5': + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.0': + resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: - { - integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, - } - engines: { node: '>=12' } + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: - { - integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, - } - engines: { node: '>=12' } + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: - { - integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, - } - engines: { node: '>=12' } + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: - { - integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, - } - engines: { node: '>=12' } + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: - { - integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, - } - engines: { node: '>=12' } + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: - { - integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, - } - engines: { node: '>=12' } + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: - { - integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, - } - engines: { node: '>=12' } + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: - { - integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, - } - engines: { node: '>=12' } + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: - { - integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, - } - engines: { node: '>=12' } + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: - { - integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, - } - engines: { node: '>=12' } + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: - { - integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, - } - engines: { node: '>=12' } + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: - { - integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, - } - engines: { node: '>=12' } + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: - { - integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, - } - engines: { node: '>=12' } + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: - { - integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, - } - engines: { node: '>=12' } + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: - { - integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, - } - engines: { node: '>=12' } + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.18.20': - resolution: - { - integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, - } - engines: { node: '>=12' } + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: - { - integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, - } - engines: { node: '>=12' } + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.18.20': - resolution: - { - integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, - } - engines: { node: '>=12' } + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: - { - integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, - } - engines: { node: '>=12' } + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: - { - integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, - } - engines: { node: '>=12' } + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: - { - integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, - } - engines: { node: '>=12' } + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@ioredis/commands@1.2.0': + resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + '@isaacs/cliui@8.0.2': - resolution: - { - integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} '@jridgewell/gen-mapping@0.3.5': - resolution: - { - integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} '@jridgewell/set-array@1.2.1': - resolution: - { - integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} '@jridgewell/source-map@0.3.6': - resolution: - { - integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==, - } + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} '@jridgewell/sourcemap-codec@1.5.0': - resolution: - { - integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, - } + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': - resolution: - { - integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, - } + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - '@pkgjs/parseargs@0.11.0': - resolution: - { - integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, - } - engines: { node: '>=14' } + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - '@rollup/plugin-alias@3.1.9': - resolution: - { - integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==, - } - engines: { node: '>=8.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0 + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - '@rollup/plugin-babel@5.3.1': - resolution: - { - integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==, - } - engines: { node: '>= 10.0.0' } + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@module-federation/bridge-react-webpack-plugin@0.2.5': + resolution: {integrity: sha512-m+v2LQMtN2ieYCbOLXCVEQE8CCWFSFRK/88Y/E4z8HbkKaGJr+w/8iOkhmjqq2TeyT67jhWWPCwszqqqUJpV2A==} + + '@module-federation/dts-plugin@0.2.5': + resolution: {integrity: sha512-LdlxCQq4CNwTgshbH8me7r+rRJ2lvqObPBIgS0N2xm2Ulx7puTMdv1GbfcDZUiqzL89uO9coy2AyNeE2GbU/Kg==} peerDependencies: - '@babel/core': ^7.0.0 - '@types/babel__core': ^7.1.9 - rollup: ^1.20.0||^2.0.0 + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ^1.0.24 peerDependenciesMeta: - '@types/babel__core': + vue-tsc: optional: true - '@rollup/plugin-commonjs@17.1.0': - resolution: - { - integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==, - } - engines: { node: '>= 8.0.0' } + '@module-federation/enhanced@0.2.5': + resolution: {integrity: sha512-Hfzpvqj0zwDv1z7KmTdQdOwDZ+jiAscxnLHhbMS5UMMue85jJvsSGD3YcP8p6Zy2O9aMrdWKZldLPo00gk5P/A==} peerDependencies: - rollup: ^2.30.0 + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ^1.0.24 + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true - '@rollup/plugin-json@4.1.0': - resolution: - { - integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==, - } - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + '@module-federation/managers@0.2.5': + resolution: {integrity: sha512-bGCJlWZUp4U0YTdFqJA4ePbjzJADgr9t+ZEoqeDuKVzYtJwnMfOJBMHEYhaH3SYE5czEzm2fXcvssLYWe0FWOg==} - '@rollup/plugin-node-resolve@11.2.1': - resolution: - { - integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, - } - engines: { node: '>= 10.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0 + '@module-federation/manifest@0.2.5': + resolution: {integrity: sha512-WCJs7tUqfj1NIa6XXD3wB8FdwQXTLyYWDKGgQtc6Z9wsFcpwADnrd2QHR4yZvjQyRAMQnaugLpK01lefP+0l+g==} - '@rollup/pluginutils@3.1.0': - resolution: - { - integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, - } - engines: { node: '>= 8.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0 + '@module-federation/rspack@0.2.5': + resolution: {integrity: sha512-Rvk4KTPn9KqM84ub3N8Ze1uC7oSJejlC4SG9JxUrr1yvkJh1Ej3SGWpeHyS7trBVWeJItCFqXAlAD2RnFIcjXQ==} - '@rollup/pluginutils@4.2.1': - resolution: - { - integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, - } - engines: { node: '>= 8.0.0' } - - '@softarc/native-federation-runtime@2.0.9': - resolution: - { - integrity: sha512-HuT8b86Cm9bXprMXIr+YPFJD21gji7BJlQvlicd+tJ75ZEq3F/Fk/BB28qaROAzFqNiMnrfCEn4pZ1D+P945QA==, - } - - '@softarc/native-federation@2.0.9': - resolution: - { - integrity: sha512-8YSS2L5VKPKuNh45g48+pD2sv1CcpINRTEvR/vhL1D1uLcEcxnOsTX2lT0DyzKAVXv6SDDnTgw9xZcYR7+m9GA==, - } + '@module-federation/runtime-tools@0.1.6': + resolution: {integrity: sha512-7ILVnzMIa0Dlc0Blck5tVZG1tnk1MmLnuZpLOMpbdW+zl+N6wdMjjHMjEZFCUAJh2E5XJ3BREwfX8Ets0nIkLg==} - '@surma/rollup-plugin-off-main-thread@2.2.3': - resolution: - { - integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==, - } + '@module-federation/runtime-tools@0.2.5': + resolution: {integrity: sha512-ok+aaw3tB7QfHeZU4FjtdeLsfFmS0EVkcOdNXPU7ecfIVO6piz8+zFjrxJyp1DSqTDpTEOi+wm/TF2xeWI3gwA==} - '@trysound/sax@0.2.0': - resolution: - { - integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, - } - engines: { node: '>=10.13.0' } + '@module-federation/runtime@0.1.6': + resolution: {integrity: sha512-nj6a+yJ+QxmcE89qmrTl4lphBIoAds0PFPVGnqLRWflwAP88jrCcrrTqRhARegkFDL+wE9AE04+h6jzlbIfMKg==} - '@types/estree@0.0.39': - resolution: - { - integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, - } + '@module-federation/runtime@0.2.5': + resolution: {integrity: sha512-LGpGQTRDzYtfkw2eDeYN8TUsjdFbk5Xj7HLCnwTboKbPv3KR4+fP5FF5bXh/jGqxXfewk4bBZbn0QeD/fu8GPw==} - '@types/estree@1.0.5': - resolution: - { - integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, - } + '@module-federation/runtime@0.6.0': + resolution: {integrity: sha512-48GqtmJd3xvbrJwvf3Gl8wE1KTxGLflH7VSs73nNiAMUcK24qTrQAwvbZWzmD3sGuTV8wM0Nd5w+mKoQ/bi6Ng==} - '@types/node@22.1.0': - resolution: - { - integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==, - } + '@module-federation/sdk@0.1.6': + resolution: {integrity: sha512-qifXpyYLM7abUeEOIfv0oTkguZgRZuwh89YOAYIZJlkP6QbRG7DJMQvtM8X2yHXm9PTk0IYNnOJH0vNQCo6auQ==} - '@types/parse-json@4.0.2': - resolution: - { - integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, - } + '@module-federation/sdk@0.2.5': + resolution: {integrity: sha512-2EtsNi+RUFaN/ipDaIxnOG/fo+XHCGqsAC7oT4vgnw0VzvupQRdIIwJWNwdQVvRWvyVdoknxs0gpfHMwwPKxTw==} - '@types/resolve@1.17.1': - resolution: - { - integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, - } + '@module-federation/sdk@0.6.0': + resolution: {integrity: sha512-yaT3dAnAdoNu+bBJnatFSVhTFSARRPuYor8Gd5Q2FIJhsQwyECC7gtNrgEcvt3sU9L44EdfnWeHwCT/tuKQADw==} - acorn@8.12.1: - resolution: - { - integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==, - } - engines: { node: '>=0.4.0' } - hasBin: true - - ansi-regex@2.1.1: - resolution: - { - integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, - } - engines: { node: '>=0.10.0' } - - ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: '>=8' } - - ansi-regex@6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: { node: '>=12' } - - ansi-styles@2.2.1: - resolution: - { - integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, - } - engines: { node: '>=0.10.0' } - - ansi-styles@3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: { node: '>=4' } - - ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: '>=8' } - - ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: '>=12' } + '@module-federation/third-party-dts-extractor@0.2.5': + resolution: {integrity: sha512-DsbdGttJaidkmBCSfnRSDXy1EbUnnLKl9JnLJiPfCMoaUrsfLKMrBuzkxXlYNLuOzZDvRP/kzDSKmduKfqA4Ew==} - aproba@2.0.0: - resolution: - { - integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==, - } - - are-we-there-yet@3.0.1: - resolution: - { - integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } - deprecated: This package is no longer supported. - - array-buffer-byte-length@1.0.1: - resolution: - { - integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, - } - engines: { node: '>= 0.4' } + '@module-federation/webpack-bundler-runtime@0.1.6': + resolution: {integrity: sha512-K5WhKZ4RVNaMEtfHsd/9CNCgGKB0ipbm/tgweNNeC11mEuBTNxJ09Y630vg3WPkKv9vfMCuXg2p2Dk+Q/KWTSA==} - arraybuffer.prototype.slice@1.0.3: - resolution: - { - integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==, - } - engines: { node: '>= 0.4' } - - async@3.2.5: - resolution: - { - integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==, - } + '@module-federation/webpack-bundler-runtime@0.2.5': + resolution: {integrity: sha512-Bg3T5ckd6IU2Qduaq7L3ECDZqmfZv0K1tg8wdysNeL8m7VXGXqCn703cbCWjPCwZYhOnUnvGjTbnaPmzQ9b/Tg==} - asyncro@3.0.0: - resolution: - { - integrity: sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==, - } + '@mui/core-downloads-tracker@5.16.7': + resolution: {integrity: sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==} - autoprefixer@10.4.20: - resolution: - { - integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, - } - engines: { node: ^10 || ^12 || >=14 } - hasBin: true + '@mui/material@5.16.7': + resolution: {integrity: sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==} + engines: {node: '>=12.0.0'} peerDependencies: - postcss: ^8.1.0 + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true - available-typed-arrays@1.0.7: - resolution: - { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, - } - engines: { node: '>= 0.4' } + '@mui/private-theming@5.16.6': + resolution: {integrity: sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - babel-plugin-macros@3.1.0: - resolution: - { - integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, - } - engines: { node: '>=10', npm: '>=6' } + '@mui/styled-engine@5.16.6': + resolution: {integrity: sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true - babel-plugin-polyfill-corejs2@0.4.11: - resolution: - { - integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==, - } + '@mui/system@5.16.7': + resolution: {integrity: sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==} + engines: {node: '>=12.0.0'} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true - babel-plugin-polyfill-corejs3@0.10.4: - resolution: - { - integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==, - } + '@mui/types@7.2.15': + resolution: {integrity: sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - babel-plugin-polyfill-regenerator@0.6.2: - resolution: - { - integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==, - } + '@mui/utils@5.16.6': + resolution: {integrity: sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==} + engines: {node: '>=12.0.0'} peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@types/react': ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - babel-plugin-transform-async-to-promises@0.8.18: - resolution: - { - integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==, - } + '@netlify/functions@2.8.1': + resolution: {integrity: sha512-+6wtYdoz0yE06dSa9XkP47tw5zm6g13QMeCwM3MmHx1vn8hzwFa51JtmfraprdkL7amvb7gaNM+OOhQU1h6T8A==} + engines: {node: '>=14.0.0'} - babel-plugin-transform-replace-expressions@0.2.0: - resolution: - { - integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==, - } - peerDependencies: - '@babel/core': ^7.0.0-0 + '@netlify/node-cookies@0.1.0': + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} - balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } + '@netlify/serverless-functions-api@1.19.1': + resolution: {integrity: sha512-2KYkyluThg1AKfd0JWI7FzpS4A/fzVVGYIf6AM4ydWyNj8eI/86GQVLeRgDoH7CNOxt243R5tutWlmHpVq0/Ew==} + engines: {node: '>=18.0.0'} - boolbase@1.0.0: - resolution: - { - integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, - } + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} - brace-expansion@1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - brace-expansion@2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} - brotli-size@4.0.0: - resolution: - { - integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==, - } - engines: { node: '>= 10.16.0' } + '@nuxt/devalue@2.0.2': + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - browserslist@4.23.3: - resolution: - { - integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==, - } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + '@nuxt/devtools-kit@1.4.1': + resolution: {integrity: sha512-6h7T9B0tSZVap13/hf7prEAgIzraj/kyux6/Iif455Trew96jHIFCCboBApUMastYEuCo3l17tgZKe0HW+jrtA==} + peerDependencies: + vite: '*' + + '@nuxt/devtools-wizard@1.4.1': + resolution: {integrity: sha512-X9uTh5rgt0pw3UjXcHyl8ZFYmCgw8ITRe9Nr2VLCtNROfKz9yol/ESEhYMwTFiFlqSyfJP6/qtogJBjUt6dzTw==} hasBin: true - buffer-from@1.1.2: - resolution: - { - integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, - } + '@nuxt/devtools@1.4.1': + resolution: {integrity: sha512-BtmGRAr/pjSE3dBrM7iceNT6OZAQ/MHxq1brkHJDs2VdyZPnqqGS4n3/98saASoRdj0dddsuIElsqC/zIABhgg==} + hasBin: true + peerDependencies: + vite: '*' - builtin-modules@3.3.0: - resolution: - { - integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, - } - engines: { node: '>=6' } + '@nuxt/kit@3.13.0': + resolution: {integrity: sha512-gbhSbDvYfkGQ0R2ztqTLQLHRMv+7g50kAKKuN6mbF4tL9jg7NPnQ8bAarn2I4Qx8xtmwO+qY1ABkmYMn5S1CpA==} + engines: {node: ^14.18.0 || >=16.10.0} - call-bind@1.0.7: - resolution: - { - integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==, - } - engines: { node: '>= 0.4' } + '@nuxt/schema@3.13.0': + resolution: {integrity: sha512-JBGSjF9Hd8guvTV2312eM1RulCMJc50yR3CeMZPLDsI02A8TXQnABS8EbgvGRvxD43q/ITjj21B2ffG1wEVrnQ==} + engines: {node: ^14.18.0 || >=16.10.0} - callsites@3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: { node: '>=6' } + '@nuxt/telemetry@2.5.4': + resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==} + hasBin: true - camelcase@6.3.0: - resolution: - { - integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, - } - engines: { node: '>=10' } + '@nuxt/vite-builder@3.13.0': + resolution: {integrity: sha512-FVIpT5wTxGcU3JDFxIyvT6isSZUujVKavQyPo3kgOQKWURDcBcvVY4HdJIVMsSIcaXafH13RZc5RKLlxfIGFdQ==} + engines: {node: ^14.18.0 || >=16.10.0} + peerDependencies: + vue: ^3.3.4 - caniuse-api@3.0.0: - resolution: - { - integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, - } + '@parcel/watcher-android-arm64@2.4.1': + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] - caniuse-lite@1.0.30001647: - resolution: - { - integrity: sha512-n83xdNiyeNcHpzWY+1aFbqCK7LuLfBricc4+alSQL2Xb6OR3XpnQAmlDG+pQcdTfiHRuLcQ96VOfrPSGiNJYSg==, - } + '@parcel/watcher-darwin-arm64@2.4.1': + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] - chalk@1.1.3: - resolution: - { - integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, - } - engines: { node: '>=0.10.0' } + '@parcel/watcher-darwin-x64@2.4.1': + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] - chalk@2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: { node: '>=4' } + '@parcel/watcher-freebsd-x64@2.4.1': + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] - chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: '>=10' } + '@parcel/watcher-linux-arm-glibc@2.4.1': + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] - cliui@8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, - } - engines: { node: '>=12' } + '@parcel/watcher-linux-arm64-glibc@2.4.1': + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] - color-convert@1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } + '@parcel/watcher-linux-arm64-musl@2.4.1': + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] - color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: '>=7.0.0' } + '@parcel/watcher-linux-x64-glibc@2.4.1': + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] - color-name@1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } + '@parcel/watcher-linux-x64-musl@2.4.1': + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] - color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } + '@parcel/watcher-wasm@2.4.1': + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm - color-support@1.1.3: - resolution: - { - integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==, - } - hasBin: true + '@parcel/watcher-win32-arm64@2.4.1': + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] - colord@2.9.3: - resolution: - { - integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, - } + '@parcel/watcher-win32-ia32@2.4.1': + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] - commander@2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } + '@parcel/watcher-win32-x64@2.4.1': + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] - commander@7.2.0: - resolution: - { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, - } - engines: { node: '>= 10' } + '@parcel/watcher@2.4.1': + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} - commondir@1.0.1: - resolution: - { - integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, - } + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} - concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - concat-with-sourcemaps@1.1.0: - resolution: - { - integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==, - } + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - console-control-strings@1.1.0: - resolution: - { - integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==, - } + '@rc-component/async-validator@5.0.4': + resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} + engines: {node: '>=14.x'} - convert-source-map@2.0.0: - resolution: - { - integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, - } + '@rc-component/color-picker@2.0.1': + resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - core-js-compat@3.38.0: - resolution: - { - integrity: sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==, - } + '@rc-component/context@1.4.0': + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - cosmiconfig@7.1.0: - resolution: - { - integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, - } - engines: { node: '>=10' } + '@rc-component/mini-decimal@1.1.0': + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} - cross-spawn@7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: '>= 8' } + '@rc-component/mutate-observer@1.1.0': + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - css-declaration-sorter@6.4.1: - resolution: - { - integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==, - } - engines: { node: ^10 || ^12 || >=14 } + '@rc-component/portal@1.1.2': + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} + engines: {node: '>=8.x'} peerDependencies: - postcss: ^8.0.9 + react: '>=16.9.0' + react-dom: '>=16.9.0' - css-select@4.3.0: - resolution: - { - integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, - } + '@rc-component/qrcode@1.0.0': + resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - css-tree@1.1.3: - resolution: - { - integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, - } - engines: { node: '>=8.0.0' } + '@rc-component/tour@1.15.0': + resolution: {integrity: sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - css-what@6.1.0: - resolution: - { - integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, - } - engines: { node: '>= 6' } + '@rc-component/trigger@2.2.1': + resolution: {integrity: sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - cssesc@3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, - } - engines: { node: '>=4' } - hasBin: true + '@remix-run/router@1.19.1': + resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==} + engines: {node: '>=14.0.0'} - cssnano-preset-default@5.2.14: - resolution: - { - integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==, - } - engines: { node: ^10 || ^12 || >=14.0 } + '@rollup/plugin-alias@3.1.9': + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} + engines: {node: '>=8.0.0'} peerDependencies: - postcss: ^8.2.15 + rollup: ^1.20.0||^2.0.0 - cssnano-utils@3.1.0: - resolution: - { - integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==, - } - engines: { node: ^10 || ^12 || >=14.0 } + '@rollup/plugin-alias@5.1.0': + resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} + engines: {node: '>=14.0.0'} peerDependencies: - postcss: ^8.2.15 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - cssnano@5.1.15: - resolution: - { - integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==, - } - engines: { node: ^10 || ^12 || >=14.0 } + '@rollup/plugin-babel@5.3.1': + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} peerDependencies: - postcss: ^8.2.15 + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true - csso@4.2.0: - resolution: - { - integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, - } - engines: { node: '>=8.0.0' } + '@rollup/plugin-commonjs@17.1.0': + resolution: {integrity: sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^2.30.0 - data-view-buffer@1.0.1: - resolution: - { - integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==, - } - engines: { node: '>= 0.4' } + '@rollup/plugin-commonjs@25.0.8': + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - data-view-byte-length@1.0.1: - resolution: - { - integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==, - } - engines: { node: '>= 0.4' } + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - data-view-byte-offset@1.0.0: - resolution: - { - integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==, - } - engines: { node: '>= 0.4' } + '@rollup/plugin-json@4.1.0': + resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 - debug@4.3.6: - resolution: - { - integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==, - } - engines: { node: '>=6.0' } + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} peerDependencies: - supports-color: '*' + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: - supports-color: + rollup: optional: true - deepmerge@4.3.1: - resolution: - { - integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, - } - engines: { node: '>=0.10.0' } + '@rollup/plugin-node-resolve@11.2.1': + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 - define-data-property@1.1.4: - resolution: - { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, - } - engines: { node: '>= 0.4' } + '@rollup/plugin-node-resolve@15.2.3': + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - define-lazy-prop@2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, - } - engines: { node: '>=8' } + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - define-properties@1.2.1: - resolution: - { - integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, - } - engines: { node: '>= 0.4' } + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - delegates@1.0.0: - resolution: - { - integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==, - } + '@rollup/plugin-virtual@3.0.2': + resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - dom-serializer@1.4.1: - resolution: - { - integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, - } + '@rollup/pluginutils@3.1.0': + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 - domelementtype@2.3.0: - resolution: - { - integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, - } + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} - domhandler@4.3.1: - resolution: - { - integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, - } - engines: { node: '>= 4' } + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - domutils@2.8.0: - resolution: - { - integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, - } + '@rollup/rollup-android-arm-eabi@4.21.0': + resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} + cpu: [arm] + os: [android] - duplexer@0.1.1: - resolution: - { - integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==, - } + '@rollup/rollup-android-arm64@4.21.0': + resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} + cpu: [arm64] + os: [android] - duplexer@0.1.2: - resolution: - { - integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, - } + '@rollup/rollup-darwin-arm64@4.21.0': + resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} + cpu: [arm64] + os: [darwin] - eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } + '@rollup/rollup-darwin-x64@4.21.0': + resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} + cpu: [x64] + os: [darwin] - ejs@3.1.10: - resolution: - { - integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==, - } - engines: { node: '>=0.10.0' } - hasBin: true + '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} + cpu: [arm] + os: [linux] - electron-to-chromium@1.5.4: - resolution: - { - integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==, - } + '@rollup/rollup-linux-arm-musleabihf@4.21.0': + resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} + cpu: [arm] + os: [linux] - emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } + '@rollup/rollup-linux-arm64-gnu@4.21.0': + resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} + cpu: [arm64] + os: [linux] - emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } + '@rollup/rollup-linux-arm64-musl@4.21.0': + resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} + cpu: [arm64] + os: [linux] - end-of-stream@1.4.4: - resolution: - { - integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, - } + '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} + cpu: [ppc64] + os: [linux] - entities@2.2.0: - resolution: - { - integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, - } + '@rollup/rollup-linux-riscv64-gnu@4.21.0': + resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} + cpu: [riscv64] + os: [linux] - error-ex@1.3.2: - resolution: - { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, - } + '@rollup/rollup-linux-s390x-gnu@4.21.0': + resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} + cpu: [s390x] + os: [linux] - es-abstract@1.23.3: - resolution: - { - integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==, - } - engines: { node: '>= 0.4' } + '@rollup/rollup-linux-x64-gnu@4.21.0': + resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} + cpu: [x64] + os: [linux] - es-define-property@1.0.0: - resolution: - { - integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==, - } - engines: { node: '>= 0.4' } + '@rollup/rollup-linux-x64-musl@4.21.0': + resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} + cpu: [x64] + os: [linux] - es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, - } - engines: { node: '>= 0.4' } + '@rollup/rollup-win32-arm64-msvc@4.21.0': + resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} + cpu: [arm64] + os: [win32] - es-object-atoms@1.0.0: - resolution: - { - integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, - } - engines: { node: '>= 0.4' } + '@rollup/rollup-win32-ia32-msvc@4.21.0': + resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} + cpu: [ia32] + os: [win32] - es-set-tostringtag@2.0.3: - resolution: - { - integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, - } - engines: { node: '>= 0.4' } + '@rollup/rollup-win32-x64-msvc@4.21.0': + resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} + cpu: [x64] + os: [win32] - es-to-primitive@1.2.1: - resolution: - { - integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, - } - engines: { node: '>= 0.4' } - - esbuild@0.18.20: - resolution: - { - integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, - } - engines: { node: '>=12' } + '@rsbuild/core@0.7.10': + resolution: {integrity: sha512-m+JbPpuMFuVsMRcsjMxvVk6yc//OW+h72kV2DAD4neoiM0YhkEAN4TXBz3RSOomXHODhhxqhpCqz9nIw6PtvBA==} + engines: {node: '>=16.0.0'} hasBin: true - escalade@3.1.2: - resolution: - { - integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==, - } - engines: { node: '>=6' } + '@rsbuild/plugin-react@0.7.10': + resolution: {integrity: sha512-OyfTrNVRt7Rj5e4PR4VQHnKKpw7YkcG7xvprJbDU/LDtG0aucwCARO1h+YtuZhcUpoG9k4zWLmoRkEXLVnKbdQ==} + peerDependencies: + '@rsbuild/core': ^0.7.10 - escape-string-regexp@1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: { node: '>=0.8.0' } - - escape-string-regexp@4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: { node: '>=10' } + '@rsbuild/shared@0.7.10': + resolution: {integrity: sha512-FwTm11DP7KxQKT2mWLvwe80O5KpikgMSlqnw9CQhBaIHSYEypdJU9ZotbNsXsHdML3xcqg+S9ae3bpovC7KlwQ==} - estree-walker@0.6.1: - resolution: - { - integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==, - } + '@rspack/binding-darwin-arm64@0.7.5': + resolution: {integrity: sha512-mNBIm36s1BA7v4SL/r4f3IXIsjyH5CZX4eXMRPE52lBc3ClVuUB7d/8zk8dkyjJCMAj8PsZSnAJ3cfXnn7TN4g==} + cpu: [arm64] + os: [darwin] - estree-walker@1.0.1: - resolution: - { - integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, - } + '@rspack/binding-darwin-x64@0.7.5': + resolution: {integrity: sha512-teLK0TB1x0CsvaaiCopsFx4EvJe+/Hljwii6R7C9qOZs5zSOfbT/LQ202eA0sAGodCncARCGaXVrsekbrRYqeA==} + cpu: [x64] + os: [darwin] - estree-walker@2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, - } + '@rspack/binding-linux-arm64-gnu@0.7.5': + resolution: {integrity: sha512-/24UytJXrK+7CsucDb30GCKYIJ8nG6ceqbJyOtsJv9zeArNLHkxrYGSyjHJIpQfwVN17BPP4RNOi+yIZ3ZgDyA==} + cpu: [arm64] + os: [linux] - esutils@2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: { node: '>=0.10.0' } + '@rspack/binding-linux-arm64-musl@0.7.5': + resolution: {integrity: sha512-6RcxG42mLM01Pa6UYycACu/Nu9qusghAPUJumb8b8x5TRIDEtklYC5Ck6Rmagm+8E0ucMude2E/D4rMdIFcS3A==} + cpu: [arm64] + os: [linux] - eventemitter3@4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, - } - - execa@4.1.0: - resolution: - { - integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==, - } - engines: { node: '>=10' } + '@rspack/binding-linux-x64-gnu@0.7.5': + resolution: {integrity: sha512-R0Lu4CJN2nWMW7WzPBuCIju80cQPpcaqwKJDj/quwQySpJJZ6c5qGwB8mntqjxIzZDrNH6u0OkpiUTbvWZj8ww==} + cpu: [x64] + os: [linux] - figures@1.7.0: - resolution: - { - integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==, - } - engines: { node: '>=0.10.0' } + '@rspack/binding-linux-x64-musl@0.7.5': + resolution: {integrity: sha512-dDgi/ThikMy1m4llxPeEXDCA2I8F8ezFS/eCPLZGU2/J1b4ALwDjuRsMmo+VXSlFCKgIt98V6h1woeg7nu96yg==} + cpu: [x64] + os: [linux] - filelist@1.0.4: - resolution: - { - integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, - } + '@rspack/binding-win32-arm64-msvc@0.7.5': + resolution: {integrity: sha512-nEF4cUdLfgEK6FrgJSJhUlr2/7LY1tmqBNQCFsCjtDtUkQbJIEo1b8edT94G9tJcQoFE4cD+Re30yBYbQO2Thg==} + cpu: [arm64] + os: [win32] - filesize@6.4.0: - resolution: - { - integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==, - } - engines: { node: '>= 0.4.0' } + '@rspack/binding-win32-ia32-msvc@0.7.5': + resolution: {integrity: sha512-hEcHRwJIzpZsePr+5x6V/7TGhrPXhSZYG4sIhsrem1za9W+qqCYYLZ7KzzbRODU07QaAH2RxjcA1bf8F2QDYAQ==} + cpu: [ia32] + os: [win32] - find-cache-dir@3.3.2: - resolution: - { - integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==, - } - engines: { node: '>=8' } + '@rspack/binding-win32-x64-msvc@0.7.5': + resolution: {integrity: sha512-PpVpP6J5/2b4T10hzSUwjLvmdpAOj3ozARl1Nrf/lsbYwhiXivoB8Gvoy/xe/Xpgr732Dk9VCeeW8rreWOOUVQ==} + cpu: [x64] + os: [win32] - find-up@4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: '>=8' } + '@rspack/binding@0.7.5': + resolution: {integrity: sha512-XcdOvaCz1mWWwr5vmEY9zncdInrjINEh60EWkYdqtCA67v7X7rB1fe6n4BeAI1+YLS2Eacj+lytlr+n7I+DYVg==} - for-each@0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, - } - - foreground-child@3.2.1: - resolution: - { - integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==, - } - engines: { node: '>=14' } + '@rspack/core@0.7.5': + resolution: {integrity: sha512-zVTe4WCyc3qsLPattosiDYZFeOzaJ32/BYukPP2I1VJtCVFa+PxGVRPVZhSoN6fXw5oy48yHg9W9v1T8CaEFhw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true - fraction.js@4.3.7: - resolution: - { - integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, - } + '@rspack/plugin-react-refresh@0.7.5': + resolution: {integrity: sha512-ROI9lrmfIH+Z9lbBaP3YMhbD2R3rlm9SSzi/9WzzkQU6KK911S1D+sL2ByeJ7ipZafbHvMPWTmC2aQEvjhwQig==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + peerDependenciesMeta: + react-refresh: + optional: true - fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, - } - engines: { node: '>=12' } + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} - fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } + '@surma/rollup-plugin-off-main-thread@2.2.3': + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + '@swc/core-darwin-arm64@1.6.13': + resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} + engines: {node: '>=10'} + cpu: [arm64] os: [darwin] - function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, - } + '@swc/core-darwin-arm64@1.7.14': + resolution: {integrity: sha512-V0OUXjOH+hdGxDYG8NkQzy25mKOpcNKFpqtZEzLe5V/CpLJPnpg1+pMz70m14s9ZFda9OxsjlvPbg1FLUwhgIQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] - function.prototype.name@1.1.6: - resolution: - { - integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, - } - engines: { node: '>= 0.4' } + '@swc/core-darwin-x64@1.6.13': + resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] - functions-have-names@1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } - - gauge@4.0.4: - resolution: - { - integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } - deprecated: This package is no longer supported. + '@swc/core-darwin-x64@1.7.14': + resolution: {integrity: sha512-9iFvUnxG6FC3An5ogp5jbBfQuUmTTwy8KMB+ZddUoPB3NR1eV+Y9vOh/tfWcenSJbgOKDLgYC5D/b1mHAprsrQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] - generic-names@4.0.0: - resolution: - { - integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==, - } + '@swc/core-linux-arm-gnueabihf@1.6.13': + resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] - gensync@1.0.0-beta.2: - resolution: - { - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, - } - engines: { node: '>=6.9.0' } + '@swc/core-linux-arm-gnueabihf@1.7.14': + resolution: {integrity: sha512-zGJsef9qPivKSH8Vv4F/HiBXBTHZ5Hs3ZjVGo/UIdWPJF8fTL9OVADiRrl34Q7zOZEtGXRwEKLUW1SCQcbDvZA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] - get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } - engines: { node: 6.* || 8.* || >= 10.* } + '@swc/core-linux-arm64-gnu@1.6.13': + resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - get-intrinsic@1.2.4: - resolution: - { - integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==, - } - engines: { node: '>= 0.4' } - - get-stream@5.2.0: - resolution: - { - integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, - } - engines: { node: '>=8' } + '@swc/core-linux-arm64-gnu@1.7.14': + resolution: {integrity: sha512-AxV3MPsoI7i4B8FXOew3dx3N8y00YoJYvIPfxelw07RegeCEH3aHp2U2DtgbP/NV1ugZMx0TL2Z2DEvocmA51g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - get-symbol-description@1.0.2: - resolution: - { - integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==, - } - engines: { node: '>= 0.4' } + '@swc/core-linux-arm64-musl@1.6.13': + resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - glob@10.4.5: - resolution: - { - integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, - } - hasBin: true + '@swc/core-linux-arm64-musl@1.7.14': + resolution: {integrity: sha512-JDLdNjUj3zPehd4+DrQD8Ltb3B5lD8D05IwePyDWw+uR/YPc7w/TX1FUVci5h3giJnlMCJRvi1IQYV7K1n7KtQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] - glob@7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - } - deprecated: Glob versions prior to v9 are no longer supported + '@swc/core-linux-x64-gnu@1.6.13': + resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - globals@11.12.0: - resolution: - { - integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, - } - engines: { node: '>=4' } + '@swc/core-linux-x64-gnu@1.7.14': + resolution: {integrity: sha512-Siy5OvPCLLWmMdx4msnEs8HvEVUEigSn0+3pbLjv78iwzXd0qSBNHUPZyC1xeurVaUbpNDxZTpPRIwpqNE2+Og==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - globalthis@1.0.4: - resolution: - { - integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, - } - engines: { node: '>= 0.4' } + '@swc/core-linux-x64-musl@1.6.13': + resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - globalyzer@0.1.0: - resolution: - { - integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==, - } + '@swc/core-linux-x64-musl@1.7.14': + resolution: {integrity: sha512-FtEGm9mwtRYQNK43WMtUIadxHs/ja2rnDurB99os0ZoFTGG2IHuht2zD97W0wB8JbqEabT1XwSG9Y5wmN+ciEQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] - globrex@0.1.2: - resolution: - { - integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, - } + '@swc/core-win32-arm64-msvc@1.6.13': + resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] - gopd@1.0.1: - resolution: - { - integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, - } + '@swc/core-win32-arm64-msvc@1.7.14': + resolution: {integrity: sha512-Jp8KDlfq7Ntt2/BXr0y344cYgB1zf0DaLzDZ1ZJR6rYlAzWYSccLYcxHa97VGnsYhhPspMpmCvHid97oe2hl4A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] - graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, - } + '@swc/core-win32-ia32-msvc@1.6.13': + resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] - gzip-size@3.0.0: - resolution: - { - integrity: sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==, - } - engines: { node: '>=0.12.0' } + '@swc/core-win32-ia32-msvc@1.7.14': + resolution: {integrity: sha512-I+cFsXF0OU0J9J4zdWiQKKLURO5dvCujH9Jr8N0cErdy54l9d4gfIxdctfTF+7FyXtWKLTCkp+oby9BQhkFGWA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] - gzip-size@6.0.0: - resolution: - { - integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==, - } - engines: { node: '>=10' } + '@swc/core-win32-x64-msvc@1.6.13': + resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] - has-ansi@2.0.0: - resolution: - { - integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, - } - engines: { node: '>=0.10.0' } + '@swc/core-win32-x64-msvc@1.7.14': + resolution: {integrity: sha512-NNrprQCK6d28mG436jVo2TD+vACHseUECacEBGZ9Ef0qfOIWS1XIt2MisQKG0Oea2VvLFl6tF/V4Lnx/H0Sn3Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] - has-bigints@1.0.2: - resolution: - { - integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, - } + '@swc/core@1.6.13': + resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true - has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: '>=4' } + '@swc/core@1.7.14': + resolution: {integrity: sha512-9aeXeifnyuvc2pcuuhPQgVUwdpGEzZ+9nJu0W8/hNl/aESFsJGR5i9uQJRGu0atoNr01gK092fvmqMmQAPcKow==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true - has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: '>=8' } + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - has-property-descriptors@1.0.2: - resolution: - { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, - } + '@swc/helpers@0.5.3': + resolution: {integrity: sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==} - has-proto@1.0.3: - resolution: - { - integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==, - } - engines: { node: '>= 0.4' } + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - has-symbols@1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, - } - engines: { node: '>= 0.4' } + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, - } - engines: { node: '>= 0.4' } + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - has-unicode@2.0.1: - resolution: - { - integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==, - } + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, - } - engines: { node: '>= 0.4' } - - human-signals@1.1.1: - resolution: - { - integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==, - } - engines: { node: '>=8.12.0' } + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - husky@8.0.3: - resolution: - { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, - } - engines: { node: '>=14' } - hasBin: true + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - icss-replace-symbols@1.1.0: - resolution: - { - integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==, - } + '@types/estree@0.0.39': + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - icss-utils@5.1.0: - resolution: - { - integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - ignore@5.3.1: - resolution: - { - integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==, - } - engines: { node: '>= 4' } + '@types/http-proxy@1.17.15': + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} - import-cwd@3.0.0: - resolution: - { - integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==, - } - engines: { node: '>=8' } + '@types/node@22.5.0': + resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==} - import-fresh@3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - } - engines: { node: '>=6' } + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - import-from@3.0.0: - resolution: - { - integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==, - } - engines: { node: '>=8' } + '@types/prop-types@15.7.12': + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } + '@types/react-transition-group@4.4.11': + resolution: {integrity: sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==} - internal-slot@1.0.7: - resolution: - { - integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==, - } - engines: { node: '>= 0.4' } + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - is-array-buffer@3.0.4: - resolution: - { - integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==, - } - engines: { node: '>= 0.4' } + '@types/resolve@1.17.1': + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - is-arrayish@0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, - } + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - is-bigint@1.0.4: - resolution: - { - integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, - } + '@unhead/dom@1.10.0': + resolution: {integrity: sha512-LdgtOlyMHOyuQNsUKM+1d8ViiiY4LxjCPJlgUU/5CwgqeRYf4LWFu8oRMQfSQVTusbPwwvr3MolM9iTUu2I4BQ==} - is-boolean-object@1.1.2: - resolution: - { - integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, - } - engines: { node: '>= 0.4' } + '@unhead/schema@1.10.0': + resolution: {integrity: sha512-hmgkFdLzm/VPLAXBF89Iry4Wz/6FpHMfMKCnAdihAt1Ublsi04RrA0hQuAiuGG2CZiKL4VCxtmV++UXj/kyakA==} - is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, - } - engines: { node: '>= 0.4' } - - is-core-module@2.15.0: - resolution: - { - integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==, - } - engines: { node: '>= 0.4' } + '@unhead/shared@1.10.0': + resolution: {integrity: sha512-Lv7pP0AoWJy+YaiWd4kGD+TK78ahPUwnIRx6YCC6FjPmE0KCqooeDS4HbInYaklLlEMQZislXyIwLczK2DTWiw==} - is-data-view@1.0.1: - resolution: - { - integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==, - } - engines: { node: '>= 0.4' } + '@unhead/ssr@1.10.0': + resolution: {integrity: sha512-L2XqGUQ05+a/zBAJk4mseLpsDoHMsuEsZNWp5f7E/Kx8P1oBAAs6J/963nvVFdec41HuClNHtJZ5swz77dmb1Q==} - is-date-object@1.0.5: - resolution: - { - integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, - } - engines: { node: '>= 0.4' } + '@unhead/vue@1.10.0': + resolution: {integrity: sha512-Cv9BViaOwCBdXy3bsTvJ10Rs808FSSq/ZfeBXzOjOxt08sbubf6Mr5opBdOlv/i1bzyFVIAqe5ABmrhC9mB80w==} + peerDependencies: + vue: '>=2.7 || >=3' - is-docker@2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, - } - engines: { node: '>=8' } + '@vercel/nft@0.26.5': + resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} + engines: {node: '>=16'} hasBin: true - is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: '>=8' } - - is-module@1.0.0: - resolution: - { - integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, - } - - is-negative-zero@2.0.3: - resolution: - { - integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, - } - engines: { node: '>= 0.4' } + '@vitejs/plugin-react@4.3.1': + resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 - is-number-object@1.0.7: - resolution: - { - integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, - } - engines: { node: '>= 0.4' } + '@vitejs/plugin-vue-jsx@4.0.1': + resolution: {integrity: sha512-7mg9HFGnFHMEwCdB6AY83cVK4A6sCqnrjFYF4WIlebYAQVVJ/sC/CiTruVdrRlhrFoeZ8rlMxY9wYpPTIRhhAg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.0.0 - is-reference@1.2.1: - resolution: - { - integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, - } + '@vitejs/plugin-vue@5.1.3': + resolution: {integrity: sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 - is-regex@1.1.4: - resolution: - { - integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, - } - engines: { node: '>= 0.4' } + '@vue-macros/common@1.12.2': + resolution: {integrity: sha512-+NGfhrPvPNOb3Wg9PNPEXPe0HTXmVe6XJawL1gi3cIjOSGIhpOdvmMT2cRuWb265IpA/PeL5Sqo0+DQnEDxLvw==} + engines: {node: '>=16.14.0'} + peerDependencies: + vue: ^2.7.0 || ^3.2.25 + peerDependenciesMeta: + vue: + optional: true - is-shared-array-buffer@1.0.3: - resolution: - { - integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==, - } - engines: { node: '>= 0.4' } + '@vue/babel-helper-vue-transform-on@1.2.2': + resolution: {integrity: sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==} - is-stream@2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: '>=8' } + '@vue/babel-plugin-jsx@1.2.2': + resolution: {integrity: sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true - is-string@1.0.7: - resolution: - { - integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, - } - engines: { node: '>= 0.4' } + '@vue/babel-plugin-resolve-type@1.2.2': + resolution: {integrity: sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==} + peerDependencies: + '@babel/core': ^7.0.0-0 - is-symbol@1.0.4: - resolution: - { - integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, - } - engines: { node: '>= 0.4' } + '@vue/compiler-core@3.4.38': + resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - is-typed-array@1.1.13: - resolution: - { - integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==, - } - engines: { node: '>= 0.4' } + '@vue/compiler-core@3.5.3': + resolution: {integrity: sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==} - is-weakref@1.0.2: - resolution: - { - integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, - } + '@vue/compiler-dom@3.4.38': + resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} - is-wsl@2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, - } - engines: { node: '>=8' } + '@vue/compiler-dom@3.5.3': + resolution: {integrity: sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==} - isarray@2.0.5: - resolution: - { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, - } + '@vue/compiler-sfc@3.4.38': + resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} - isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } + '@vue/compiler-sfc@3.5.3': + resolution: {integrity: sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==} - jackspeak@3.4.3: - resolution: - { - integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, - } + '@vue/compiler-ssr@3.4.38': + resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} - jake@10.9.2: - resolution: - { - integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==, - } - engines: { node: '>=10' } - hasBin: true + '@vue/compiler-ssr@3.5.3': + resolution: {integrity: sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==} - jest-worker@26.6.2: - resolution: - { - integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, - } - engines: { node: '>= 10.13.0' } + '@vue/devtools-api@6.6.3': + resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } + '@vue/devtools-core@7.3.3': + resolution: {integrity: sha512-i6Bwkx4OwfY0QVHjAdsivhlzZ2HMj7fbNRYJsWspQ+dkA1f3nTzycPqZmVUsm2TGkbQlhTMhCAdDoP97JKoc+g==} - jsesc@0.5.0: - resolution: - { - integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, - } - hasBin: true + '@vue/devtools-kit@7.3.3': + resolution: {integrity: sha512-m+dFI57BrzKYPKq73mt4CJ5GWld5OLBseLHPHGVP7CaILNY9o1gWVJWAJeF8XtQ9LTiMxZSaK6NcBsFuxAhD0g==} - jsesc@2.5.2: - resolution: - { - integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, - } - engines: { node: '>=4' } - hasBin: true + '@vue/devtools-shared@7.3.9': + resolution: {integrity: sha512-CdfMRZKXyI8vw+hqOcQIiLihB6Hbbi7WNZGp7LsuH1Qe4aYAFmTaKjSciRZ301oTnwmU/knC/s5OGuV6UNiNoA==} - json-parse-even-better-errors@2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, - } + '@vue/reactivity@3.4.38': + resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} - json5@2.2.3: - resolution: - { - integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, - } - engines: { node: '>=6' } - hasBin: true + '@vue/reactivity@3.5.3': + resolution: {integrity: sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==} - jsonfile@6.1.0: - resolution: - { - integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, - } + '@vue/runtime-core@3.4.38': + resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} - kleur@4.1.5: - resolution: - { - integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, - } - engines: { node: '>=6' } + '@vue/runtime-core@3.5.3': + resolution: {integrity: sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==} - lilconfig@2.1.0: - resolution: - { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, - } - engines: { node: '>=10' } + '@vue/runtime-dom@3.4.38': + resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} - lines-and-columns@1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, - } + '@vue/runtime-dom@3.5.3': + resolution: {integrity: sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==} - loader-utils@3.3.1: - resolution: - { - integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==, - } - engines: { node: '>= 12.13.0' } + '@vue/server-renderer@3.4.38': + resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + peerDependencies: + vue: 3.4.38 - locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: '>=8' } + '@vue/server-renderer@3.5.3': + resolution: {integrity: sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==} + peerDependencies: + vue: 3.5.3 - lodash.camelcase@4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, - } + '@vue/shared@3.4.38': + resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} - lodash.debounce@4.0.8: - resolution: - { - integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, - } + '@vue/shared@3.5.3': + resolution: {integrity: sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==} - lodash.memoize@4.1.2: - resolution: - { - integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, - } + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - lodash.merge@4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} - lodash.uniq@4.5.0: - resolution: - { - integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, - } + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} - lru-cache@10.4.3: - resolution: - { - integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, - } + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 - lru-cache@5.1.1: - resolution: - { - integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, - } + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true - magic-string@0.25.9: - resolution: - { - integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, - } + adm-zip@0.5.15: + resolution: {integrity: sha512-jYPWSeOA8EFoZnucrKCNihqBjoEGQSU4HKgHYQgKNEQ0pQF9a/DYuo/+fAxY76k4qe75LUlLWpAM1QWcBMTOKw==} + engines: {node: '>=12.0'} - make-dir@3.1.0: - resolution: - { - integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, - } - engines: { node: '>=8' } + ag-grid-community@30.2.1: + resolution: {integrity: sha512-1slonXskJbbI9ybhTx//4YKfJpZVAEnHL8dui1rQJRSXKByUi+/f7XtvkLsbgBkawoWbqvRAySjYtvz80+kBfA==} - maxmin@2.1.0: - resolution: - { - integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==, - } - engines: { node: '>=0.12' } + ag-grid-react@30.2.1: + resolution: {integrity: sha512-WYt5ZstSoPEGAcTqXBdaonihXtapZdjTHZ3dc3xTK1xIdbF0/Vw4zDWCQSsG5H4M5CeUKjvbeHx7kKM1Yiah3g==} + peerDependencies: + ag-grid-community: ~30.2.1 + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 - mdn-data@2.0.14: - resolution: - { - integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, - } + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} - merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} - microbundle@0.15.1: - resolution: - { - integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==, - } - hasBin: true + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} - mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, - } - engines: { node: '>= 0.6' } + ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} - mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, - } - engines: { node: '>= 0.6' } + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: '>=6' } + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} - minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } + ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} - minimatch@5.1.6: - resolution: - { - integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, - } - engines: { node: '>=10' } + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} - minimatch@9.0.5: - resolution: - { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, - } - engines: { node: '>=16 || 14 >=14.17' } + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} - minipass@7.1.2: - resolution: - { - integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, - } - engines: { node: '>=16 || 14 >=14.17' } + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - mri@1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, - } - engines: { node: '>=4' } + antd@5.20.2: + resolution: {integrity: sha512-9d6Bs5ZKIV+JhB0eD7KxYnIfnhUh86kNtTGIuNiIxHFUhbuyT1DXN2SuMksDmtSfuRYZ82/C4hq+OJjWNNbmHg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' - ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - nanoid@3.3.7: - resolution: - { - integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } - hasBin: true + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} - node-releases@2.0.18: - resolution: - { - integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, - } + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - normalize-range@0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, - } - engines: { node: '>=0.10.0' } + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} - normalize-url@6.1.0: - resolution: - { - integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==, - } - engines: { node: '>=10' } + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} - npm-run-path@4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: '>=8' } - - npmlog@6.0.2: - resolution: - { - integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} deprecated: This package is no longer supported. - nth-check@2.1.1: - resolution: - { - integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, - } + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - number-is-nan@1.0.1: - resolution: - { - integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==, - } - engines: { node: '>=0.10.0' } + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} - object-assign@4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: { node: '>=0.10.0' } + array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} - object-inspect@1.13.2: - resolution: - { - integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==, - } - engines: { node: '>= 0.4' } + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} - object-keys@1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: { node: '>= 0.4' } + ast-kit@1.1.0: + resolution: {integrity: sha512-RlNqd4u6c/rJ5R+tN/ZTtyNrH8X0NHCvyt6gD8RHa3JjzxxHWoyaU0Ujk3Zjbh7IZqrYl1Sxm6XzZifmVxXxHQ==} + engines: {node: '>=16.14.0'} - object.assign@4.1.5: - resolution: - { - integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, - } - engines: { node: '>= 0.4' } + ast-walker-scope@0.6.2: + resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} + engines: {node: '>=16.14.0'} - once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: '>=6' } + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - open@8.4.2: - resolution: - { - integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, - } - engines: { node: '>=12' } + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - p-finally@1.0.0: - resolution: - { - integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, - } - engines: { node: '>=4' } + asyncro@3.0.0: + resolution: {integrity: sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==} - p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: '>=6' } + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} - p-locate@4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: '>=8' } + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 - p-queue@6.6.2: - resolution: - { - integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==, - } - engines: { node: '>=8' } + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} - p-timeout@3.2.0: - resolution: - { - integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==, - } - engines: { node: '>=8' } + axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} - p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: '>=6' } + b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - package-json-from-dist@1.0.0: - resolution: - { - integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==, - } + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} - parent-module@1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: { node: '>=6' } + babel-plugin-polyfill-corejs2@0.4.11: + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - parse-json@5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, - } - engines: { node: '>=8' } + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: '>=8' } + babel-plugin-polyfill-regenerator@0.6.2: + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: '>=0.10.0' } + babel-plugin-styled-components@2.1.4: + resolution: {integrity: sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==} + peerDependencies: + styled-components: '>= 2' - path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: '>=8' } + babel-plugin-transform-async-to-promises@0.8.18: + resolution: {integrity: sha512-WpOrF76nUHijnNn10eBGOHZmXQC8JYRME9rOLxStOga7Av2VO53ehVFvVNImMksVtQuL2/7ZNxEgxnx7oo/3Hw==} - path-parse@1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } + babel-plugin-transform-replace-expressions@0.2.0: + resolution: {integrity: sha512-Eh1rRd9hWEYgkgoA3D0kGp7xJ/wgVshgsqmq60iC4HVWD+Lux+fNHSHBa2v1Hsv+dHflShC71qKhiH40OiPtDA==} + peerDependencies: + '@babel/core': ^7.0.0-0 - path-scurry@1.11.1: - resolution: - { - integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, - } - engines: { node: '>=16 || 14 >=14.18' } + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - path-type@4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: { node: '>=8' } + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - picocolors@1.0.1: - resolution: - { - integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, - } + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: '>=8.6' } + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - picomatch@3.0.1: - resolution: - { - integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==, - } - engines: { node: '>=10' } + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - pify@5.0.0: - resolution: - { - integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==, - } - engines: { node: '>=10' } + birpc@0.2.17: + resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - pkg-dir@4.2.0: - resolution: - { - integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, - } - engines: { node: '>=8' } + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - possible-typed-array-names@1.0.0: - resolution: - { - integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, - } - engines: { node: '>= 0.4' } + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - postcss-calc@8.2.4: - resolution: - { - integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==, - } - peerDependencies: - postcss: ^8.2.2 + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - postcss-colormin@5.3.1: - resolution: - { - integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} - postcss-convert-values@5.1.3: - resolution: - { - integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + brotli-size@4.0.0: + resolution: {integrity: sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==} + engines: {node: '>= 10.16.0'} - postcss-discard-comments@5.1.2: - resolution: - { - integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true - postcss-discard-duplicates@5.1.0: - resolution: - { - integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + btoa@1.2.1: + resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} + engines: {node: '>= 0.4.0'} + hasBin: true - postcss-discard-empty@5.1.1: - resolution: - { - integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + buffer-builder@0.2.0: + resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} - postcss-discard-overridden@5.1.0: - resolution: - { - integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} - postcss-load-config@3.1.4: - resolution: - { - integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==, - } - engines: { node: '>= 10' } + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + c12@1.11.1: + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==} peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + magicast: ^0.3.4 peerDependenciesMeta: - postcss: - optional: true - ts-node: + magicast: optional: true - postcss-merge-longhand@5.1.7: - resolution: - { - integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} - postcss-merge-rules@5.1.4: - resolution: - { - integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + cache-content-type@1.0.1: + resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + engines: {node: '>= 6.0.0'} - postcss-minify-font-values@5.1.0: - resolution: - { - integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} - postcss-minify-gradients@5.1.1: - resolution: - { - integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} - postcss-minify-params@5.1.4: - resolution: - { - integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} - postcss-minify-selectors@5.2.1: - resolution: - { - integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - postcss-modules-extract-imports@3.1.0: - resolution: - { - integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - postcss-modules-local-by-default@4.0.5: - resolution: - { - integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + caniuse-lite@1.0.30001651: + resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} - postcss-modules-scope@3.2.0: - resolution: - { - integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} - postcss-modules-values@4.0.0: - resolution: - { - integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, - } - engines: { node: ^10 || ^12 || >= 14 } - peerDependencies: - postcss: ^8.1.0 + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} - postcss-modules@4.3.1: - resolution: - { - integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==, - } - peerDependencies: - postcss: ^8.0.0 + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} - postcss-normalize-charset@5.1.0: - resolution: - { - integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} - postcss-normalize-display-values@5.1.0: - resolution: - { - integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - postcss-normalize-positions@5.1.1: - resolution: - { - integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} - postcss-normalize-repeat-style@5.1.1: - resolution: - { - integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} - postcss-normalize-string@5.1.0: - resolution: - { - integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} - postcss-normalize-timing-functions@5.1.0: - resolution: - { - integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - postcss-normalize-unicode@5.1.1: - resolution: - { - integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - postcss-normalize-url@5.1.0: - resolution: - { - integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + clear@0.1.0: + resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} - postcss-normalize-whitespace@5.1.1: - resolution: - { - integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} - postcss-ordered-values@5.1.3: - resolution: - { - integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} - postcss-reduce-initial@5.1.2: - resolution: - { - integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} - postcss-reduce-transforms@5.1.0: - resolution: - { - integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} - postcss-selector-parser@6.1.1: - resolution: - { - integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==, - } - engines: { node: '>=4' } + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - postcss-svgo@5.1.0: - resolution: - { - integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - postcss-unique-selectors@5.1.1: - resolution: - { - integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} - postcss-value-parser@4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, - } - - postcss@8.4.40: - resolution: - { - integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==, - } - engines: { node: ^10 || ^12 || >=14 } - - prettier@2.8.8: - resolution: - { - integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==, - } - engines: { node: '>=10.13.0' } - hasBin: true + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - pretty-bytes@3.0.1: - resolution: - { - integrity: sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==, - } - engines: { node: '>=0.10.0' } + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - pretty-bytes@5.6.0: - resolution: - { - integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, - } - engines: { node: '>=6' } - - pretty-quick@3.3.1: - resolution: - { - integrity: sha512-3b36UXfYQ+IXXqex6mCca89jC8u0mYLqFAN5eTQKoXO6oCQYcIVYZEB/5AlBHI7JPYygReM2Vv6Vom/Gln7fBg==, - } - engines: { node: '>=10.13' } + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - peerDependencies: - prettier: ^2.0.0 - - promise.series@0.2.0: - resolution: - { - integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==, - } - engines: { node: '>=0.12' } - - pump@3.0.0: - resolution: - { - integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==, - } - - randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } - readable-stream@3.6.2: - resolution: - { - integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, - } - engines: { node: '>= 6' } + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - regenerate-unicode-properties@10.1.1: - resolution: - { - integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, - } - engines: { node: '>=4' } + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} - regenerate@1.4.2: - resolution: - { - integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, - } + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - regenerator-runtime@0.14.1: - resolution: - { - integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, - } + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - regenerator-transform@0.15.2: - resolution: - { - integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, - } + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - regexp.prototype.flags@1.5.2: - resolution: - { - integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, - } - engines: { node: '>= 0.4' } + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - regexpu-core@5.3.2: - resolution: - { - integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==, - } - engines: { node: '>=4' } + compatx@0.1.8: + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} - regjsparser@0.9.1: - resolution: - { - integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, - } - hasBin: true + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} - require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: { node: '>=0.10.0' } + compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} - resolve-from@4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: { node: '>=4' } + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - resolve-from@5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, - } - engines: { node: '>=8' } + concat-with-sourcemaps@1.1.0: + resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} - resolve@1.22.8: - resolution: - { - integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, - } - hasBin: true + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - rimraf@5.0.10: - resolution: - { - integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==, - } - hasBin: true + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} - rollup-plugin-bundle-size@1.0.3: - resolution: - { - integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==, - } + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - rollup-plugin-postcss@4.0.2: - resolution: - { - integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==, - } - engines: { node: '>=10' } - peerDependencies: - postcss: 8.x + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} - rollup-plugin-terser@7.0.2: - resolution: - { - integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==, - } - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} - rollup-plugin-typescript2@0.32.1: - resolution: - { - integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==, - } - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - rollup-plugin-visualizer@5.12.0: - resolution: - { - integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==, - } - engines: { node: '>=14' } - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - rollup-pluginutils@2.8.2: - resolution: - { - integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==, - } + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - rollup@2.79.1: - resolution: - { - integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, - } - engines: { node: '>=10.0.0' } - hasBin: true + cookies@0.8.0: + resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} + engines: {node: '>= 0.8'} - rollup@3.29.4: - resolution: - { - integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, - } - engines: { node: '>=14.18.0', npm: '>=8.0.0' } - hasBin: true + copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} - sade@1.8.1: - resolution: - { - integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, - } - engines: { node: '>=6' } + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - safe-array-concat@1.1.2: - resolution: - { - integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==, - } - engines: { node: '>=0.4' } + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} - safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, - } + core-js@3.36.1: + resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} - safe-identifier@0.4.2: - resolution: - { - integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==, - } + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - safe-regex-test@1.0.3: - resolution: - { - integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, - } - engines: { node: '>= 0.4' } + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} - semver@6.3.1: - resolution: - { - integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, - } + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} hasBin: true - serialize-javascript@4.0.0: - resolution: - { - integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==, - } + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} - set-blocking@2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, - } + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - set-function-length@1.2.2: - resolution: - { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, - } - engines: { node: '>= 0.4' } + cron-parser@4.9.0: + resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} + engines: {node: '>=12.0.0'} - set-function-name@2.0.2: - resolution: - { - integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, - } - engines: { node: '>= 0.4' } + croner@8.1.1: + resolution: {integrity: sha512-1VdUuRnQP4drdFkS8NKvDR1NBgevm8TOuflcaZEKsxw42CxonjW/2vkj1AKlinJb4ZLwBcuWF9GiPr7FQc6AQA==} + engines: {node: '>=18.0'} - shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: '>=8' } + cronstrue@2.50.0: + resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} + hasBin: true - shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: '>=8' } + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} - side-channel@1.0.6: - resolution: - { - integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==, - } - engines: { node: '>= 0.4' } + crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true - signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} - signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, - } - engines: { node: '>=14' } + css-declaration-sorter@6.4.1: + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 - slash@3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: { node: '>=8' } + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 - source-map-js@1.2.0: - resolution: - { - integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, - } - engines: { node: '>=0.10.0' } + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - source-map-support@0.5.21: - resolution: - { - integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, - } + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - source-map@0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, - } - engines: { node: '>=0.10.0' } + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - source-map@0.7.4: - resolution: - { - integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, - } - engines: { node: '>= 8' } + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} - sourcemap-codec@1.4.8: - resolution: - { - integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, - } - deprecated: Please use @jridgewell/sourcemap-codec instead + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - stable@0.1.8: - resolution: - { - integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, - } - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - string-hash@1.1.3: - resolution: - { - integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==, - } + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} - string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: '>=8' } + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true - string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: '>=12' } + cssnano-preset-default@5.2.14: + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 - string.prototype.matchall@4.0.11: - resolution: - { - integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==, - } - engines: { node: '>= 0.4' } + cssnano-preset-default@7.0.5: + resolution: {integrity: sha512-Jbzja0xaKwc5JzxPQoc+fotKpYtWEu4wQLMQe29CM0FjjdRjA4omvbGHl2DTGgARKxSTpPssBsok+ixv8uTBqw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 - string.prototype.trim@1.2.9: - resolution: - { - integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==, - } - engines: { node: '>= 0.4' } + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 - string.prototype.trimend@1.0.8: - resolution: - { - integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==, - } + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 - string.prototype.trimstart@1.0.8: - resolution: - { - integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, - } - engines: { node: '>= 0.4' } + cssnano@5.1.15: + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 - string_decoder@1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, - } + cssnano@7.0.5: + resolution: {integrity: sha512-Aq0vqBLtpTT5Yxj+hLlLfNPFuRQCDIjx5JQAhhaedQKLNDvDGeVziF24PS+S1f0Z5KCxWvw0QVI3VNHNBITxVQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 - strip-ansi@3.0.1: - resolution: - { - integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, - } - engines: { node: '>=0.10.0' } + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} - strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: '>=8' } + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: '>=12' } + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - strip-final-newline@2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: '>=6' } + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} - style-inject@0.3.0: - resolution: - { - integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==, - } + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} - stylehacks@5.1.1: - resolution: - { - integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==, - } - engines: { node: ^10 || ^12 || >=14.0 } - peerDependencies: - postcss: ^8.2.15 + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} - supports-color@2.0.0: - resolution: - { - integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, - } - engines: { node: '>=0.8.0' } + date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} - supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: '>=4' } + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: '>=8' } + db0@0.1.4: + resolution: {integrity: sha512-Ft6eCwONYxlwLjBXSJxw0t0RYtA5gW9mq8JfBXn9TtC0nDPlqePAhpv9v4g9aONBi6JI1OXHTKKkUYGd+BOrCA==} + peerDependencies: + '@libsql/client': ^0.5.2 + better-sqlite3: ^9.4.3 + drizzle-orm: ^0.29.4 + peerDependenciesMeta: + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true - supports-preserve-symlinks-flag@1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: { node: '>= 0.4' } + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - svgo@2.8.0: - resolution: - { - integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, - } - engines: { node: '>=10.13.0' } - hasBin: true + debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - terser@5.31.3: - resolution: - { - integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==, - } - engines: { node: '>=10' } - hasBin: true + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true - tiny-glob@0.2.9: - resolution: - { - integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==, - } + deep-equal@1.0.1: + resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - to-fast-properties@2.0.0: - resolution: - { - integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, - } - engines: { node: '>=4' } + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - tslib@2.6.3: - resolution: - { - integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==, - } + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} - typed-array-buffer@1.0.2: - resolution: - { - integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==, - } - engines: { node: '>= 0.4' } + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} - typed-array-byte-length@1.0.1: - resolution: - { - integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==, - } - engines: { node: '>= 0.4' } + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: - { - integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==, - } - engines: { node: '>= 0.4' } + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} - typed-array-length@1.0.6: - resolution: - { - integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==, - } - engines: { node: '>= 0.4' } + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} - typescript@4.9.5: - resolution: - { - integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, - } - engines: { node: '>=4.2.0' } - hasBin: true + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} - unbox-primitive@1.0.2: - resolution: - { - integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, - } + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - undici-types@6.13.0: - resolution: - { - integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==, - } + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: - { - integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, - } - engines: { node: '>=4' } + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - unicode-match-property-ecmascript@2.0.0: - resolution: - { - integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, - } - engines: { node: '>=4' } + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} - unicode-match-property-value-ecmascript@2.1.0: - resolution: - { - integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, - } - engines: { node: '>=4' } + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} - unicode-property-aliases-ecmascript@2.1.0: - resolution: - { - integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, - } - engines: { node: '>=4' } + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - universalify@2.0.1: - resolution: - { - integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, - } - engines: { node: '>= 10.0.0' } + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - update-browserslist-db@1.1.0: - resolution: - { - integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==, - } - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - util-deprecate@1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, - } - - vite@4.5.3: - resolution: - { - integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - which-boxed-primitive@1.0.2: - resolution: - { - integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, - } + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} - which-typed-array@1.1.15: - resolution: - { - integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==, - } - engines: { node: '>= 0.4' } + devalue@5.0.0: + resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} - which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: '>= 8' } - hasBin: true + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} - wide-align@1.1.5: - resolution: - { - integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==, - } + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} - wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: '>=10' } + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: '>=12' } + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: '>=10' } + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} - yallist@3.1.1: - resolution: - { - integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, - } + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} - yaml@1.10.2: - resolution: - { - integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, - } - engines: { node: '>= 6' } + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - yargs-parser@21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, - } - engines: { node: '>=12' } + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - yargs@17.7.2: - resolution: - { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, - } - engines: { node: '>=12' } + dot-prop@8.0.2: + resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} + engines: {node: '>=16'} -snapshots: - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + duplexer@0.1.1: + resolution: {integrity: sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==} - '@babel/compat-data@7.25.2': {} + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - convert-source-map: 2.0.0 - debug: 4.3.6 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - '@babel/generator@7.25.0': - dependencies: - '@babel/types': 7.25.2 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.2 + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true - '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + electron-to-chromium@1.5.13: + resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.2 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - '@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.6 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.2 + error-inject@1.0.0: + resolution: {integrity: sha512-JM8N6PytDbmIYm1IhPWlo8vr3NtfjhDY/1MhD/a5b/aad/USE8a0+NsqE9d5n+GVGmuNkPQWm4bFQWv18d8tMg==} - '@babel/helper-plugin-utils@7.24.8': {} + error-stack-parser-es@0.1.5: + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} - '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + errx@0.1.0: + resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==} - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - '@babel/helper-string-parser@7.24.8': {} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} - '@babel/helper-validator-identifier@7.24.7': {} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} - '@babel/helper-validator-option@7.24.8': {} + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} - '@babel/helper-wrap-function@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true - '@babel/helpers@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + estree-walker@0.6.1: + resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} + + estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + + externality@1.0.2: + resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-npm-meta@0.2.2: + resolution: {integrity: sha512-E+fdxeaOQGo/CMWc9f4uHFfgUPJRAu7N3uB8GBvB3SDPAIWJK4GKyYhkAGFq+GYrcbKNfQIz5VVQyJnDuPPCrg==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fdir@6.3.0: + resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filesize@6.4.0: + resolution: {integrity: sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-file-up@2.0.1: + resolution: {integrity: sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==} + engines: {node: '>=8'} + + find-pkg@2.0.0: + resolution: {integrity: sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==} + engines: {node: '>=8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + + git-config-path@2.0.0: + resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} + engines: {node: '>=4'} + + git-up@7.0.0: + resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} + + git-url-parse@14.1.0: + resolution: {integrity: sha512-8xg65dTxGHST3+zGpycMMFZcoTzAdZ2dOtu4vmgIfkTFnVHBxHMzBC2L1k8To7EmrSiHesT8JgPLT91VKw1B5g==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + global-directory@4.0.1: + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} + + global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + + global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gzip-size@3.0.0: + resolution: {integrity: sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==} + engines: {node: '>=0.12.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.12.0: + resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} + + has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + + html-rspack-plugin@5.7.2: + resolution: {integrity: sha512-uVXGYq19bcsX7Q/53VqXQjCKXw0eUMHlFGDLTaqzgj/ckverfhZQvXyA6ecFBaF9XUH16jfCTCyALYi0lJcagg==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + peerDependenciesMeta: + '@rspack/core': + optional: true + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + http-assert@1.5.0: + resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + engines: {node: '>= 0.8'} + + http-errors@1.8.1: + resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + httpxy@0.1.5: + resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + + icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-meta@0.2.1: + resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-cwd@3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@4.1.1: + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + + ioredis@5.4.1: + resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} + engines: {node: '>=12.22.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@1.0.0: + resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} + engines: {node: '>=18'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + + is-ssh@1.4.0: + resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.1: + resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} + engines: {node: 20 || >=22} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keygrip@1.1.0: + resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + engines: {node: '>= 0.6'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.1.0: + resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + + koa-compose@3.2.1: + resolution: {integrity: sha512-8gen2cvKHIZ35eDEik5WOo8zbVp9t4cP8p4hW4uE55waxolLRexKKrqfCpwhGVppnB40jWeF8bZeTVg99eZgPw==} + + koa-compose@4.1.0: + resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + + koa-convert@1.2.0: + resolution: {integrity: sha512-K9XqjmEDStGX09v3oxR7t5uPRy0jqJdvodHa6wxWTHrTfDq0WUNnYTOOUZN6g8OM8oZQXprQASbiIXG2Ez8ehA==} + engines: {node: '>= 4'} + + koa@2.11.0: + resolution: {integrity: sha512-EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA==} + engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + launch-editor@2.8.1: + resolution: {integrity: sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listhen@1.7.2: + resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} + hasBin: true + + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.clonedeepwith@4.5.0: + resolution: {integrity: sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + + long-timeout@0.1.1: + resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.0: + resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + luxon@3.5.0: + resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + engines: {node: '>=12'} + + magic-string-ast@0.6.2: + resolution: {integrity: sha512-oN3Bcd7ZVt+0VGEs7402qR/tjgjbM7kPlH/z7ufJnzTLVBzXJITRHOJiwMmmYMgZfdoWQsfQcY+iKlxiBppnMA==} + engines: {node: '>=16.14.0'} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + maxmin@2.1.0: + resolution: {integrity: sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==} + engines: {node: '>=0.12'} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + microbundle@0.15.1: + resolution: {integrity: sha512-aAF+nwFbkSIJGfrJk+HyzmJOq3KFaimH6OIFBU6J2DPjQeg1jXIYlIyEv81Gyisb9moUkudn+wj7zLNYMOv75Q==} + hasBin: true + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.0.4: + resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@5.0.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + nitropack@2.9.7: + resolution: {integrity: sha512-aKXvtNrWkOCMsQbsk4A0qQdBjrJ1ZcvwlTQevI/LAgLWLYc5L7Q/YiYxGLal4ITyNSlzir1Cm1D2ZxnYhmpMEw==} + engines: {node: ^16.11.0 || >=17.0.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + node-schedule@2.1.1: + resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} + engines: {node: '>=6'} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + nuxi@3.13.1: + resolution: {integrity: sha512-rhUfFCtIH8IxhfibVd26uGrC0ojUijGoU3bAhPQHrkl7mFlK+g+XeIttdsI8YAC7s/wPishrTpE9z1UssHY6eA==} + engines: {node: ^16.10.0 || >=18.0.0} + hasBin: true + + nuxt@3.13.0: + resolution: {integrity: sha512-NZlPGlMav18KXWiOmTguQtH5lcrwooPniWXM3Ca4c9spsMRu3wyWLlN8wiI/cK+lEu3rQyKCGSA75nFVK4Ew3w==} + engines: {node: ^14.18.0 || >=16.10.0} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.1.0 + '@types/node': ^14.18.0 || >=16.10.0 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + '@types/node': + optional: true + + nypm@0.3.11: + resolution: {integrity: sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + + ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} + + ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + only@0.0.2: + resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + openapi-typescript@6.7.6: + resolution: {integrity: sha512-c/hfooPx+RBIOPM09GSxABOZhYPblDoyaGhqBkD/59vtpN21jEuWKDlM0KYTvqJVlSYjKs0tBcIdeXKChlSPtw==} + hasBin: true + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-git-config@3.0.0: + resolution: {integrity: sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==} + engines: {node: '>=8'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + parse-path@7.0.0: + resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + + parse-url@8.1.0: + resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-calc@10.0.2: + resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.1: + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@7.0.3: + resolution: {integrity: sha512-yJhocjCs2SQer0uZ9lXTMOwDowbxvhwFVrZeS6NPEij/XXthl73ggUmfwVvJM+Vaj5gtCKJV1jiUu4IhAUkX/Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@7.0.2: + resolution: {integrity: sha512-/Hje9Ls1IYcB9duELO/AyDUJI6aQVY3h5Rj1ziXgaLYCTi1iVBLnjg/TS0D6NszR/kDG6I86OwLmAYe+bvJjiQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@7.0.3: + resolution: {integrity: sha512-8waYomFxshdv6M9Em3QRM9MettRLDRcH2JQi2l0Z1KlYD/vhal3gbkeSES0NuACXOlZBB0V/B0AseHZaklzWOA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@5.1.4: + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@7.0.3: + resolution: {integrity: sha512-2eSas2p3voPxNfdI5sQrvIkMaeUHpVc3EezgVs18hz/wRTQAC9U99tp9j3W5Jx9/L3qHkEDvizEx/LdnmumIvQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@7.0.3: + resolution: {integrity: sha512-SxTgUQSgBk6wEqzQZKEv1xQYIp9UBju6no9q+npohzSdhuSICQdkqmD1UMKkZWItS3olJSJMDDEY9WOJ5oGJew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.5: + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.0: + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules@4.3.1: + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} + peerDependencies: + postcss: ^8.0.0 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@5.1.2: + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@7.0.2: + resolution: {integrity: sha512-CjSam+7Vf8cflJQsHrMS0P2hmy9u0+n/P001kb5eAszLmhjMqrt/i5AqQuNFihhViwDvEAezqTmXqaYXL2ugMw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.44: + resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} + engines: {node: ^10 || ^12 || >=14} + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + pretty-bytes@3.0.1: + resolution: {integrity: sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==} + engines: {node: '>=0.10.0'} + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + + pretty-quick@4.0.0: + resolution: {integrity: sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + promise.series@0.2.0: + resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} + engines: {node: '>=0.12'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + protocols@2.0.1: + resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + rambda@9.2.1: + resolution: {integrity: sha512-6Dp+QQVQuAuhwBlbIvL2FjJVHCKF29W+n9ca/BMTVDqpj+Q7KKqUh7UAINEna8aaB2/oRvPuL5hViCTQARa70Q==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + rc-cascader@3.27.0: + resolution: {integrity: sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-checkbox@3.3.0: + resolution: {integrity: sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-collapse@3.7.3: + resolution: {integrity: sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dialog@9.5.2: + resolution: {integrity: sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-drawer@7.2.0: + resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-dropdown@4.2.0: + resolution: {integrity: sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + + rc-field-form@2.4.0: + resolution: {integrity: sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-image@7.9.0: + resolution: {integrity: sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input-number@9.2.0: + resolution: {integrity: sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-input@1.6.3: + resolution: {integrity: sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-mentions@2.15.0: + resolution: {integrity: sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-menu@9.14.1: + resolution: {integrity: sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-motion@2.9.2: + resolution: {integrity: sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-notification@5.6.0: + resolution: {integrity: sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-overflow@1.3.2: + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-pagination@4.2.0: + resolution: {integrity: sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-picker@4.6.13: + resolution: {integrity: sha512-yi4JWPGjm420Q8rHjZ6YNy2c5IfV+9EAzx2pewVRPOjJqfg7uifO/Z0uqxdl/h6AhBocuvRvtlyz6ehrAvTq7A==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + + rc-progress@4.0.0: + resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-rate@2.13.0: + resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-resize-observer@1.4.0: + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-segmented@2.3.0: + resolution: {integrity: sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + + rc-select@14.15.1: + resolution: {integrity: sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-slider@11.1.5: + resolution: {integrity: sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-steps@6.0.1: + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-switch@4.1.0: + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-table@7.45.7: + resolution: {integrity: sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tabs@15.1.1: + resolution: {integrity: sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-textarea@1.8.1: + resolution: {integrity: sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tooltip@6.2.0: + resolution: {integrity: sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-tree-select@5.22.1: + resolution: {integrity: sha512-b8mAK52xEpRgS+b2PTapCt29GoIrO5cO8jB7AfHttFsIJfcnynY9FCtnYzURsKXJkGHbFY6UzSEB2I3TETtdWg==} + peerDependencies: + react: '*' + react-dom: '*' + + rc-tree@5.8.8: + resolution: {integrity: sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==} + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + + rc-upload@4.7.0: + resolution: {integrity: sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-util@5.43.0: + resolution: {integrity: sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-virtual-list@3.14.5: + resolution: {integrity: sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react-router-dom@6.26.1: + resolution: {integrity: sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.26.1: + resolution: {integrity: sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + + regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + + regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rollup-plugin-bundle-size@1.0.3: + resolution: {integrity: sha512-aWj0Pvzq90fqbI5vN1IvUrlf4utOqy+AERYxwWjegH1G8PzheMnrRIgQ5tkwKVtQMDP0bHZEACW/zLDF+XgfXQ==} + + rollup-plugin-postcss@4.0.2: + resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} + engines: {node: '>=10'} + peerDependencies: + postcss: 8.x + + rollup-plugin-terser@7.0.2: + resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + + rollup-plugin-typescript2@0.32.1: + resolution: {integrity: sha512-RanO8bp1WbeMv0bVlgcbsFNCn+Y3rX7wF97SQLDxf0fMLsg0B/QFF005t4AsGUcDgF3aKJHoqt4JF2xVaABeKw==} + peerDependencies: + rollup: '>=1.26.3' + typescript: '>=2.4.0' + + rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true + + rollup-pluginutils@2.8.2: + resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + + rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@4.21.0: + resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-identifier@0.4.2: + resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} + + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + + sass-embedded-android-arm64@1.77.8: + resolution: {integrity: sha512-EmWHLbEx0Zo/f/lTFzMeH2Du+/I4RmSRlEnERSUKQWVp3aBSO04QDvdxfFezgQ+2Yt/ub9WMqBpma9P/8MPsLg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + hasBin: true + + sass-embedded-android-arm@1.77.8: + resolution: {integrity: sha512-GpGL7xZ7V1XpFbnflib/NWbM0euRzineK0iwoo31/ntWKAXGj03iHhGzkSiOwWSFcXgsJJi3eRA5BTmBvK5Q+w==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + hasBin: true + + sass-embedded-android-ia32@1.77.8: + resolution: {integrity: sha512-+GjfJ3lDezPi4dUUyjQBxlNKXNa+XVWsExtGvVNkv1uKyaOxULJhubVo2G6QTJJU0esJdfeXf5Ca5/J0ph7+7w==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [android] + hasBin: true + + sass-embedded-android-x64@1.77.8: + resolution: {integrity: sha512-YZbFDzGe5NhaMCygShqkeCWtzjhkWxGVunc7ULR97wmxYPQLPeVyx7XFQZc84Aj0lKAJBJS4qRZeqphMqZEJsQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + hasBin: true + + sass-embedded-darwin-arm64@1.77.8: + resolution: {integrity: sha512-aifgeVRNE+i43toIkDFFJc/aPLMo0PJ5s5hKb52U+oNdiJE36n65n2L8F/8z3zZRvCa6eYtFY2b7f1QXR3B0LA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + hasBin: true + + sass-embedded-darwin-x64@1.77.8: + resolution: {integrity: sha512-/VWZQtcWIOek60Zj6Sxk6HebXA1Qyyt3sD8o5qwbTgZnKitB1iEBuNunyGoAgMNeUz2PRd6rVki6hvbas9hQ6w==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + hasBin: true + + sass-embedded-linux-arm64@1.77.8: + resolution: {integrity: sha512-6iIOIZtBFa2YfMsHqOb3qake3C9d/zlKxjooKKnTSo+6g6z+CLTzMXe1bOfayb7yxeenElmFoK1k54kWD/40+g==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + hasBin: true + + sass-embedded-linux-arm@1.77.8: + resolution: {integrity: sha512-2edZMB6jf0whx3T0zlgH+p131kOEmWp+I4wnKj7ZMUeokiY4Up05d10hSvb0Q63lOrSjFAWu6P5/pcYUUx8arQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + hasBin: true + + sass-embedded-linux-ia32@1.77.8: + resolution: {integrity: sha512-63GsFFHWN5yRLTWiSef32TM/XmjhCBx1DFhoqxmj+Yc6L9Z1h0lDHjjwdG6Sp5XTz5EmsaFKjpDgnQTP9hJX3Q==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + hasBin: true + + sass-embedded-linux-musl-arm64@1.77.8: + resolution: {integrity: sha512-j8cgQxNWecYK+aH8ESFsyam/Q6G+9gg8eJegiRVpA9x8yk3ykfHC7UdQWwUcF22ZcuY4zegrjJx8k+thsgsOVA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.77.8: + resolution: {integrity: sha512-nFkhSl3uu9btubm+JBW7uRglNVJ8W8dGfzVqh3fyQJKS1oyBC3vT3VOtfbT9YivXk28wXscSHpqXZwY7bUuopA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-ia32@1.77.8: + resolution: {integrity: sha512-oWveMe+8TFlP8WBWPna/+Ec5TV0CE+PxEutyi0ltSruBds2zxRq9dPVOqrpPcDN9QUx50vNZC0Afgch0aQEd0g==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + + sass-embedded-linux-musl-x64@1.77.8: + resolution: {integrity: sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-x64@1.77.8: + resolution: {integrity: sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + hasBin: true + + sass-embedded-win32-arm64@1.77.8: + resolution: {integrity: sha512-7L8zT6xzEvTYj86MvUWnbkWYCNQP+74HvruLILmiPPE+TCgOjgdi750709BtppVJGGZSs40ZuN6mi/YQyGtwXg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + hasBin: true + + sass-embedded-win32-ia32@1.77.8: + resolution: {integrity: sha512-7Buh+4bP0WyYn6XPbthkIa3M2vtcR8QIsFVg3JElVlr+8Ng19jqe0t0SwggDgbMX6AdQZC+Wj4F1BprZSok42A==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [win32] + hasBin: true + + sass-embedded-win32-x64@1.77.8: + resolution: {integrity: sha512-rZmLIx4/LLQm+4GW39sRJW0MIlDqmyV0fkRzTmhFP5i/wVC7cuj8TUubPHw18rv2rkHFfBZKZJTCkPjCS5Z+SA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + hasBin: true + + sass-embedded@1.77.8: + resolution: {integrity: sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==} + engines: {node: '>=16.0.0'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-git@3.26.0: + resolution: {integrity: sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + + sorted-array-functions@1.3.0: + resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + + streamx@2.20.0: + resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} + + string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} + + string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + + style-inject@0.3.0: + resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} + + styled-components@5.3.3: + resolution: {integrity: sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==} + engines: {node: '>=10'} + peerDependencies: + react: '>= 16.8.0' + react-dom: '>= 16.8.0' + react-is: '>= 16.8.0' + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + stylehacks@7.0.3: + resolution: {integrity: sha512-4DqtecvI/Nd+2BCvW9YEF6lhBN5UM50IJ1R3rnEAhBwbCKf4VehRf+uqvnVArnBayjYD/WtT3g0G/HSRxWfTRg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + stylis@4.3.3: + resolution: {integrity: sha512-VtF42zBHvdPi561i9mAcPlWOUonfbCtXa7qdGI+Ro4qMP8TEb+7GpbGWD1+v2TS4nohQ0m8g1FhTVmRdcIsxdQ==} + + superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + + supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + engines: {node: '>=10'} + hasBin: true + + text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + + throttle-debounce@5.0.2: + resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} + engines: {node: '>=12.22'} + + tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinyglobby@0.2.5: + resolution: {integrity: sha512-Dlqgt6h0QkoHttG53/WGADNh9QhcjCAIZMTERAVhdpmIBEejSuLI9ZmGKWzB7tweBjlk30+s/ofi4SLmBeTYhw==} + engines: {node: '>=12.0.0'} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsscmp@1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.3.1: + resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unhead@1.10.0: + resolution: {integrity: sha512-nv75Hvhu0asuD/rbP6b3tSRJUltxmThq/iZU5rLCGEkCqTkFk7ruQGNk+TRtx/RCYqL0R/IzIY9aqvhNOGe3mg==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unimport@3.11.1: + resolution: {integrity: sha512-DuB1Uoq01LrrXTScxnwOoMSlTXxyKcULguFxbLrMDFcE/CO0ZWHpEiyhovN0mycPt7K6luAHe8laqvwvuoeUPg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-vue-router@0.10.7: + resolution: {integrity: sha512-5KEh7Swc1L2Xh5WOD7yQLeB5bO3iTw+Hst7qMxwmwYcPm9qVrtrRTZUftn2Hj4is17oMKgqacyWadjQzwW5B/Q==} + peerDependencies: + vue-router: ^4.4.0 + peerDependenciesMeta: + vue-router: + optional: true + + unplugin@1.12.3: + resolution: {integrity: sha512-my8DH0/T/Kx33KO+6QXAqdeMYgyy0GktlOpdQjpagfHKw5DrD0ctPr7SHUyOT3g4ZVpzCQGt/qcpuoKJ/pniHA==} + engines: {node: '>=14.0.0'} + + unstorage@1.10.2: + resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} + peerDependencies: + '@azure/app-configuration': ^1.5.0 + '@azure/cosmos': ^4.0.0 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^4.0.1 + '@azure/keyvault-secrets': ^4.8.0 + '@azure/storage-blob': ^12.17.0 + '@capacitor/preferences': ^5.0.7 + '@netlify/blobs': ^6.5.0 || ^7.0.0 + '@planetscale/database': ^1.16.0 + '@upstash/redis': ^1.28.4 + '@vercel/kv': ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.3.2 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@1.4.2: + resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==} + hasBin: true + + unwasm@0.3.9: + resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} + + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite-hot-client@0.2.3: + resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} + peerDependencies: + vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 + + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-plugin-checker@0.7.2: + resolution: {integrity: sha512-xeYeJbG0gaCaT0QcUC4B2Zo4y5NR8ZhYenc5gPbttrZvraRFwkEADCYwq+BfEHl9zYz7yf85TxsiGoYwyyIjhw==} + engines: {node: '>=14.16'} + peerDependencies: + '@biomejs/biome': '>=1.7' + eslint: '>=7' + meow: ^9.0.0 + optionator: ^0.9.1 + stylelint: '>=13' + typescript: '*' + vite: '>=2.0.0' + vls: '*' + vti: '*' + vue-tsc: '>=2.0.0' + peerDependenciesMeta: + '@biomejs/biome': + optional: true + eslint: + optional: true + meow: + optional: true + optionator: + optional: true + stylelint: + optional: true + typescript: + optional: true + vls: + optional: true + vti: + optional: true + vue-tsc: + optional: true + + vite-plugin-inspect@0.8.7: + resolution: {integrity: sha512-/XXou3MVc13A5O9/2Nd6xczjrUwt7ZyI9h8pTnUMkr5SshLcb0PJUOVq2V+XVkdeU4njsqAtmK87THZuO2coGA==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + + vite-plugin-top-level-await@1.4.4: + resolution: {integrity: sha512-QyxQbvcMkgt+kDb12m2P8Ed35Sp6nXP+l8ptGrnHV9zgYDUpraO0CPdlqLSeBqvY2DToR52nutDG7mIHuysdiw==} + peerDependencies: + vite: '>=2.8' + + vite-plugin-vue-inspector@5.2.0: + resolution: {integrity: sha512-wWxyb9XAtaIvV/Lr7cqB1HIzmHZFVUJsTNm3yAxkS87dgh/Ky4qr2wDEWNxF23fdhVa3jQ8MZREpr4XyiuaRqA==} + peerDependencies: + vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 + + vite@5.4.2: + resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-languageclient@7.0.0: + resolution: {integrity: sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==} + engines: {vscode: ^1.52.0} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-bundle-renderer@2.1.0: + resolution: {integrity: sha512-uZ+5ZJdZ/b43gMblWtcpikY6spJd0nERaM/1RtgioXNfWFbjKlUwrS8HlrddN6T2xtptmOouWclxLUkpgcVX3Q==} + + vue-devtools-stub@0.1.0: + resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} + + vue-router@4.4.3: + resolution: {integrity: sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==} + peerDependencies: + vue: ^3.2.0 + + vue@3.4.38: + resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + vue@3.5.3: + resolution: {integrity: sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@3.0.1: + resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.5.0: + resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + engines: {node: '>= 4.0.0'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zhead@2.2.4: + resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@ant-design/colors@7.1.0': + dependencies: + '@ctrl/tinycolor': 3.6.1 + + '@ant-design/cssinjs-utils@1.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/cssinjs': 1.21.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.25.4 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@ant-design/cssinjs@1.21.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.5.1 + csstype: 3.1.3 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + stylis: 4.3.3 + + '@ant-design/fast-color@2.0.6': + dependencies: + '@babel/runtime': 7.25.4 + + '@ant-design/icons-svg@4.4.2': {} + + '@ant-design/icons@5.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/colors': 7.1.0 + '@ant-design/icons-svg': 4.4.2 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@ant-design/react-slick@1.1.2(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + json2mq: 0.2.0 + react: 18.3.1 + resize-observer-polyfill: 1.5.1 + throttle-debounce: 5.0.2 + + '@antfu/utils@0.7.10': {} + + '@babel/code-frame@7.24.7': + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.1 + + '@babel/compat-data@7.25.4': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.4 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.4 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + convert-source-map: 2.0.0 + debug: 4.3.6(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.4': + dependencies: + '@babel/types': 7.25.4 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': + dependencies: + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-compilation-targets@7.25.2': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.6(supports-color@5.5.0) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.24.8': + dependencies: + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-module-imports@7.24.7(supports-color@5.5.0)': + dependencies: + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.24.7': + dependencies: + '@babel/types': 7.25.4 + + '@babel/helper-plugin-utils@7.24.8': {} + + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-wrap-function': 7.25.0 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.24.7': + dependencies: + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.24.7': + dependencies: + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-option@7.24.8': {} + + '@babel/helper-wrap-function@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.25.0': + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.4 + + '@babel/highlight@7.24.7': + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.1 + + '@babel/parser@7.25.4': + dependencies: + '@babel/types': 7.25.4 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + '@babel/traverse': 7.25.4(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/template': 7.25.0 + + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-simple-access': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/types': 7.25.4 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/preset-env@7.25.4(@babel/core@7.25.2)': + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.38.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/highlight@7.24.7': + '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/parser@7.25.3': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: - '@babel/types': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.25.4 + esutils: 2.0.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': + '@babel/preset-react@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 + '@babel/helper-validator-option': 7.24.8 + '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': + '@babel/regjsgen@0.8.0': {} + + '@babel/runtime@7.25.4': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + regenerator-runtime: 0.14.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': + '@babel/standalone@7.25.6': {} + + '@babel/template@7.25.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/code-frame': 7.24.7 + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': + '@babel/traverse@7.25.4(supports-color@5.5.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.4 + '@babel/parser': 7.25.4 + '@babel/template': 7.25.0 + '@babel/types': 7.25.4 + debug: 4.3.6(supports-color@5.5.0) + globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': + '@babel/types@7.25.4': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@bufbuild/protobuf@1.10.0': {} + + '@cloudflare/kv-asset-handler@0.3.4': + dependencies: + mime: 3.0.0 + + '@ctrl/tinycolor@3.6.1': {} + + '@emotion/babel-plugin@11.12.0': + dependencies: + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/runtime': 7.25.4 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.12.1(@babel/core@7.25.2)': + '@emotion/cache@11.13.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.8.0': {} + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@0.8.8': + dependencies: + '@emotion/memoize': 0.7.4 + + '@emotion/is-prop-valid@1.3.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.7.4': {} + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.25.4 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.2.0) + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 + '@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + '@emotion/babel-plugin': 11.12.0 + '@emotion/cache': 11.13.1 + '@emotion/serialize': 1.3.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.0 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + '@emotion/serialize@1.3.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.0 + csstype: 3.1.3 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime': 7.25.4 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.0 + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.2.0) + '@emotion/serialize': 1.3.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.2.0) + '@emotion/utils': 1.4.0 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + '@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime': 7.25.4 + '@emotion/babel-plugin': 11.12.0 + '@emotion/is-prop-valid': 1.3.0 + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/serialize': 1.3.1 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.0 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + '@emotion/stylis@0.8.5': {} + + '@emotion/unitless@0.10.0': {} + + '@emotion/unitless@0.7.5': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + react: 18.2.0 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + react: 18.3.1 + + '@emotion/utils@1.4.0': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-arm64@0.23.1': + optional: true - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-ia32@0.20.2': + optional: true - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-ia32@0.21.5': + optional: true - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-ia32@0.23.1': + optional: true - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-x64@0.20.2': + optional: true - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-x64@0.21.5': + optional: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@esbuild/win32-x64@0.23.1': + optional: true - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@fastify/busboy@2.1.1': {} - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@ioredis/commands@1.2.0': {} - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + '@isaacs/cliui@8.0.2': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + '@jridgewell/gen-mapping@0.3.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/resolve-uri@3.1.2': {} - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/set-array@1.2.1': {} - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + '@jridgewell/source-map@0.3.6': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/sourcemap-codec@1.5.0': {} - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 - '@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.25.2)': + '@kwsites/file-exists@1.1.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 + debug: 4.3.6(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + '@kwsites/promise-deferred@1.1.1': {} + + '@mapbox/node-pre-gyp@1.0.11': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 transitivePeerDependencies: + - encoding - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/bridge-react-webpack-plugin@0.2.5': + dependencies: + '@module-federation/sdk': 0.2.5 + + '@module-federation/dts-plugin@0.2.5(typescript@5.5.3)': + dependencies: + '@module-federation/managers': 0.2.5 + '@module-federation/sdk': 0.2.5 + '@module-federation/third-party-dts-extractor': 0.2.5 + adm-zip: 0.5.15 + ansi-colors: 4.1.3 + axios: 1.7.4 + chalk: 3.0.0 + fs-extra: 9.1.0 + isomorphic-ws: 5.0.0(ws@8.17.1) + koa: 2.11.0 + lodash.clonedeepwith: 4.5.0 + log4js: 6.9.1 + node-schedule: 2.1.1 + rambda: 9.2.1 + typescript: 5.5.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@module-federation/enhanced@0.2.5(typescript@5.5.3)': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.2.5 + '@module-federation/dts-plugin': 0.2.5(typescript@5.5.3) + '@module-federation/managers': 0.2.5 + '@module-federation/manifest': 0.2.5(typescript@5.5.3) + '@module-federation/rspack': 0.2.5(typescript@5.5.3) + '@module-federation/runtime-tools': 0.2.5 + '@module-federation/sdk': 0.2.5 + btoa: 1.2.1 + upath: 2.0.1 + optionalDependencies: + typescript: 5.5.3 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': + '@module-federation/managers@0.2.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/sdk': 0.2.5 + find-pkg: 2.0.0 + fs-extra: 9.1.0 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2)': + '@module-federation/manifest@0.2.5(typescript@5.5.3)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/dts-plugin': 0.2.5(typescript@5.5.3) + '@module-federation/managers': 0.2.5 + '@module-federation/sdk': 0.2.5 + chalk: 3.0.0 + find-pkg: 2.0.0 transitivePeerDependencies: + - bufferutil + - debug - supports-color - - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + - typescript + - utf-8-validate + - vue-tsc + + '@module-federation/rspack@0.2.5(typescript@5.5.3)': + dependencies: + '@module-federation/bridge-react-webpack-plugin': 0.2.5 + '@module-federation/dts-plugin': 0.2.5(typescript@5.5.3) + '@module-federation/managers': 0.2.5 + '@module-federation/manifest': 0.2.5(typescript@5.5.3) + '@module-federation/runtime-tools': 0.2.5 + '@module-federation/sdk': 0.2.5 transitivePeerDependencies: + - bufferutil + - debug - supports-color + - typescript + - utf-8-validate + - vue-tsc - '@babel/plugin-transform-classes@7.25.0(@babel/core@7.25.2)': + '@module-federation/runtime-tools@0.1.6': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.3 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@module-federation/runtime': 0.1.6 + '@module-federation/webpack-bundler-runtime': 0.1.6 - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': + '@module-federation/runtime-tools@0.2.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@module-federation/runtime': 0.2.5 + '@module-federation/webpack-bundler-runtime': 0.2.5 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': + '@module-federation/runtime@0.1.6': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/sdk': 0.1.6 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': + '@module-federation/runtime@0.2.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/sdk': 0.2.5 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': + '@module-federation/runtime@0.6.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@module-federation/sdk': 0.6.0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': + '@module-federation/sdk@0.1.6': {} + + '@module-federation/sdk@0.2.5': {} + + '@module-federation/sdk@0.6.0': {} + + '@module-federation/third-party-dts-extractor@0.2.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + find-pkg: 2.0.0 + fs-extra: 9.1.0 + resolve: 1.22.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': + '@module-federation/webpack-bundler-runtime@0.1.6': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@module-federation/runtime': 0.1.6 + '@module-federation/sdk': 0.1.6 - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': + '@module-federation/webpack-bundler-runtime@0.2.5': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + '@module-federation/runtime': 0.2.5 + '@module-federation/sdk': 0.2.5 - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': + '@mui/core-downloads-tracker@5.16.7': {} + + '@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 + '@mui/core-downloads-tracker': 5.16.7 + '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.2.0) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.2.0) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0) + '@types/react': 18.3.3 + + '@mui/material@5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + '@mui/core-downloads-tracker': 5.16.7 + '@mui/system': 5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': + '@mui/private-theming@5.16.6(@types/react@18.3.3)(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.2.0) + prop-types: 15.8.1 + react: 18.2.0 + optionalDependencies: + '@types/react': 18.3.3 - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': + '@mui/private-theming@5.16.6(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': + '@mui/styled-engine@5.16.6(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.3 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + '@emotion/cache': 11.13.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.2.0) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0) - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': + '@mui/styled-engine@5.16.6(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 + '@emotion/cache': 11.13.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + + '@mui/system@5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0)': + dependencies: + '@babel/runtime': 7.25.4 + '@mui/private-theming': 5.16.6(@types/react@18.3.3)(react@18.2.0) + '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0))(react@18.2.0) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.2.0) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.2.0 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.2.0) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.2.0))(@types/react@18.3.3)(react@18.2.0) + '@types/react': 18.3.3 + + '@mui/system@5.16.7(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.4 + '@mui/private-theming': 5.16.6(@types/react@18.3.3)(react@18.3.1) + '@mui/styled-engine': 5.16.6(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.15(@types/react@18.3.3) + '@mui/utils': 5.16.6(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': + '@mui/types@7.2.15(@types/react@18.3.3)': + optionalDependencies: + '@types/react': 18.3.3 + + '@mui/utils@5.16.6(@types/react@18.3.3)(react@18.2.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime': 7.25.4 + '@mui/types': 7.2.15(@types/react@18.3.3) + '@types/prop-types': 15.7.12 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': + '@mui/utils@5.16.6(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 + '@mui/types': 7.2.15(@types/react@18.3.3) + '@types/prop-types': 15.7.12 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': + '@netlify/functions@2.8.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@netlify/serverless-functions-api': 1.19.1 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': + '@netlify/node-cookies@0.1.0': {} + + '@netlify/serverless-functions-api@1.19.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@nuxt/devalue@2.0.2': {} + + '@nuxt/devtools-kit@1.4.1(magicast@0.3.5)(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))': + dependencies: + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + '@nuxt/schema': 3.13.0(rollup@4.21.0) + execa: 7.2.0 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) transitivePeerDependencies: + - magicast + - rollup - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 + '@nuxt/devtools-wizard@1.4.1': + dependencies: + consola: 3.2.3 + diff: 5.2.0 + execa: 7.2.0 + global-directory: 4.0.1 + magicast: 0.3.5 + pathe: 1.1.2 + pkg-types: 1.2.0 + prompts: 2.4.2 + rc9: 2.1.2 + semver: 7.6.3 + + '@nuxt/devtools@1.4.1(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))': + dependencies: + '@antfu/utils': 0.7.10 + '@nuxt/devtools-kit': 1.4.1(magicast@0.3.5)(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + '@nuxt/devtools-wizard': 1.4.1 + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + '@vue/devtools-core': 7.3.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + '@vue/devtools-kit': 7.3.3 + birpc: 0.2.17 + consola: 3.2.3 + cronstrue: 2.50.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.5 + execa: 7.2.0 + fast-npm-meta: 0.2.2 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.1 + is-installed-globally: 1.0.0 + launch-editor: 2.8.1 + local-pkg: 0.5.0 + magicast: 0.3.5 + nypm: 0.3.11 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.6.3 + simple-git: 3.26.0 + sirv: 2.0.4 + tinyglobby: 0.2.5 + unimport: 3.11.1(rollup@4.21.0) + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-plugin-inspect: 0.8.7(@nuxt/kit@3.13.0(magicast@0.3.5)(rollup@4.21.0))(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vite-plugin-vue-inspector: 5.2.0(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + which: 3.0.1 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - rollup + - supports-color + - utf-8-validate + + '@nuxt/kit@3.13.0(magicast@0.3.5)(rollup@4.21.0)': + dependencies: + '@nuxt/schema': 3.13.0(rollup@4.21.0) + c12: 1.11.1(magicast@0.3.5) + consola: 3.2.3 + defu: 6.1.4 + destr: 2.0.3 + globby: 14.0.2 + hash-sum: 2.0.0 + ignore: 5.3.2 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + semver: 7.6.3 + ufo: 1.5.4 + unctx: 2.3.1 + unimport: 3.11.1(rollup@4.21.0) + untyped: 1.4.2 transitivePeerDependencies: + - magicast + - rollup - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@nuxt/schema@3.13.0(rollup@4.21.0)': + dependencies: + compatx: 0.1.8 + consola: 3.2.3 + defu: 6.1.4 + hookable: 5.5.3 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unimport: 3.11.1(rollup@4.21.0) + untyped: 1.4.2 transitivePeerDependencies: + - rollup - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@nuxt/telemetry@2.5.4(magicast@0.3.5)(rollup@4.21.0)': + dependencies: + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + ci-info: 4.0.0 + consola: 3.2.3 + create-require: 1.1.1 + defu: 6.1.4 + destr: 2.0.3 + dotenv: 16.4.5 + git-url-parse: 14.1.0 + is-docker: 3.0.0 + jiti: 1.21.6 + mri: 1.2.0 + nanoid: 5.0.7 + ofetch: 1.3.4 + parse-git-config: 3.0.0 + pathe: 1.1.2 + rc9: 2.1.2 + std-env: 3.7.0 + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/vite-builder@3.13.0(@types/node@22.5.0)(magicast@0.3.5)(rollup@4.21.0)(sass-embedded@1.77.8)(terser@5.31.6)(typescript@5.5.3)(vue@3.5.3(typescript@5.5.3))': + dependencies: + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + '@rollup/plugin-replace': 5.0.7(rollup@4.21.0) + '@vitejs/plugin-vue': 5.1.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))(vue@3.5.3(typescript@5.5.3)) + '@vitejs/plugin-vue-jsx': 4.0.1(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))(vue@3.5.3(typescript@5.5.3)) + autoprefixer: 10.4.20(postcss@8.4.41) + clear: 0.1.0 + consola: 3.2.3 + cssnano: 7.0.5(postcss@8.4.41) + defu: 6.1.4 + esbuild: 0.23.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + externality: 1.0.2 + get-port-please: 3.1.2 + h3: 1.12.0 + knitwork: 1.1.0 + magic-string: 0.30.11 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + postcss: 8.4.41 + rollup-plugin-visualizer: 5.12.0(rollup@4.21.0) + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.4 + unenv: 1.10.0 + unplugin: 1.12.3 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-node: 2.0.5(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vite-plugin-checker: 0.7.2(typescript@5.5.3)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + vue: 3.5.3(typescript@5.5.3) + vue-bundle-renderer: 2.1.0 transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss - supports-color + - terser + - typescript + - uWebSockets.js + - vls + - vti + - vue-tsc + + '@parcel/watcher-android-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.4.1': + optional: true + + '@parcel/watcher-darwin-x64@2.4.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.4.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.4.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.4.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.4.1': + optional: true - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@parcel/watcher-linux-x64-musl@2.4.1': + optional: true - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': + '@parcel/watcher-wasm@2.4.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + is-glob: 4.0.3 + micromatch: 4.0.8 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': + '@parcel/watcher-win32-arm64@2.4.1': + optional: true + + '@parcel/watcher-win32-ia32@2.4.1': + optional: true + + '@parcel/watcher-win32-x64@2.4.1': + optional: true + + '@parcel/watcher@2.4.1': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.25': {} + + '@popperjs/core@2.11.8': {} + + '@rc-component/async-validator@5.0.4': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': + '@rc-component/color-picker@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@ant-design/fast-color': 2.0.6 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': + '@rc-component/context@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': + '@rc-component/mini-decimal@1.1.0': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/runtime': 7.25.4 - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + '@rc-component/mutate-observer@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': + '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2)': + '@rc-component/qrcode@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': + '@rc-component/tour@1.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': + '@rc-component/trigger@2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2)': + '@remix-run/router@1.19.1': {} + + '@rollup/plugin-alias@3.1.9(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + rollup: 2.79.1 + slash: 3.0.0 - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-alias@5.1.0(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + slash: 4.0.0 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.1)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.2 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 + optionalDependencies: + '@types/babel__core': 7.20.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-commonjs@17.1.0(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - regenerator-transform: 0.15.2 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 7.2.3 + is-reference: 1.2.1 + magic-string: 0.25.9 + resolve: 1.22.8 + rollup: 2.79.1 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-commonjs@25.0.8(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-inject@5.0.5(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + estree-walker: 2.0.2 + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-json@4.1.0(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + rollup: 2.79.1 - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-json@6.1.0(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 2.79.1 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': + '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-replace@5.0.7(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + magic-string: 0.30.11 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': + '@rollup/plugin-terser@0.4.4(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.31.6 + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@rollup/plugin-virtual@3.0.2(rollup@4.21.0)': + optionalDependencies: + rollup: 4.21.0 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2)': + '@rollup/pluginutils@3.1.0(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 - '@babel/preset-env@7.25.3(@babel/core@7.25.2)': + '@rollup/pluginutils@4.2.1': dependencies: - '@babel/compat-data': 7.25.2 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.38.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + estree-walker: 2.0.2 + picomatch: 2.3.1 - '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': + '@rollup/pluginutils@5.1.0(rollup@2.79.1)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 2.79.1 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + '@rollup/pluginutils@5.1.0(rollup@4.21.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.25.2 - esutils: 2.0.3 + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.21.0 - '@babel/preset-react@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@rollup/rollup-android-arm-eabi@4.21.0': + optional: true - '@babel/regjsgen@0.8.0': {} + '@rollup/rollup-android-arm64@4.21.0': + optional: true - '@babel/runtime@7.25.0': - dependencies: - regenerator-runtime: 0.14.1 + '@rollup/rollup-darwin-arm64@4.21.0': + optional: true - '@babel/template@7.25.0': + '@rollup/rollup-darwin-x64@4.21.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.21.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.21.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.21.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.21.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.21.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.21.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.21.0': + optional: true + + '@rsbuild/core@0.7.10': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@rsbuild/shared': 0.7.10(@swc/helpers@0.5.3) + '@rspack/core': 0.7.5(@swc/helpers@0.5.3) + '@swc/helpers': 0.5.3 + core-js: 3.36.1 + html-webpack-plugin: html-rspack-plugin@5.7.2(@rspack/core@0.7.5(@swc/helpers@0.5.3)) + postcss: 8.4.41 - '@babel/traverse@7.25.3': + '@rsbuild/plugin-react@0.7.10(@rsbuild/core@0.7.10)(@swc/helpers@0.5.3)': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.6 - globals: 11.12.0 + '@rsbuild/core': 0.7.10 + '@rsbuild/shared': 0.7.10(@swc/helpers@0.5.3) + '@rspack/plugin-react-refresh': 0.7.5(react-refresh@0.14.2) + react-refresh: 0.14.2 transitivePeerDependencies: - - supports-color + - '@swc/helpers' - '@babel/types@7.25.2': + '@rsbuild/shared@0.7.10(@swc/helpers@0.5.3)': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@rspack/core': 0.7.5(@swc/helpers@0.5.3) + caniuse-lite: 1.0.30001651 + html-webpack-plugin: html-rspack-plugin@5.7.2(@rspack/core@0.7.5(@swc/helpers@0.5.3)) + postcss: 8.4.41 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - '@swc/helpers' + + '@rspack/binding-darwin-arm64@0.7.5': + optional: true + + '@rspack/binding-darwin-x64@0.7.5': + optional: true + + '@rspack/binding-linux-arm64-gnu@0.7.5': + optional: true + + '@rspack/binding-linux-arm64-musl@0.7.5': + optional: true - '@esbuild/android-arm64@0.18.20': + '@rspack/binding-linux-x64-gnu@0.7.5': optional: true - '@esbuild/android-arm@0.18.20': + '@rspack/binding-linux-x64-musl@0.7.5': optional: true - '@esbuild/android-x64@0.18.20': + '@rspack/binding-win32-arm64-msvc@0.7.5': optional: true - '@esbuild/darwin-arm64@0.18.20': + '@rspack/binding-win32-ia32-msvc@0.7.5': optional: true - '@esbuild/darwin-x64@0.18.20': + '@rspack/binding-win32-x64-msvc@0.7.5': optional: true - '@esbuild/freebsd-arm64@0.18.20': + '@rspack/binding@0.7.5': + optionalDependencies: + '@rspack/binding-darwin-arm64': 0.7.5 + '@rspack/binding-darwin-x64': 0.7.5 + '@rspack/binding-linux-arm64-gnu': 0.7.5 + '@rspack/binding-linux-arm64-musl': 0.7.5 + '@rspack/binding-linux-x64-gnu': 0.7.5 + '@rspack/binding-linux-x64-musl': 0.7.5 + '@rspack/binding-win32-arm64-msvc': 0.7.5 + '@rspack/binding-win32-ia32-msvc': 0.7.5 + '@rspack/binding-win32-x64-msvc': 0.7.5 + + '@rspack/core@0.7.5(@swc/helpers@0.5.3)': + dependencies: + '@module-federation/runtime-tools': 0.1.6 + '@rspack/binding': 0.7.5 + caniuse-lite: 1.0.30001651 + tapable: 2.2.1 + webpack-sources: 3.2.3 + optionalDependencies: + '@swc/helpers': 0.5.3 + + '@rspack/plugin-react-refresh@0.7.5(react-refresh@0.14.2)': + optionalDependencies: + react-refresh: 0.14.2 + + '@sindresorhus/merge-streams@2.3.0': {} + + '@surma/rollup-plugin-off-main-thread@2.2.3': + dependencies: + ejs: 3.1.10 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.11 + + '@swc/core-darwin-arm64@1.6.13': optional: true - '@esbuild/freebsd-x64@0.18.20': + '@swc/core-darwin-arm64@1.7.14': optional: true - '@esbuild/linux-arm64@0.18.20': + '@swc/core-darwin-x64@1.6.13': optional: true - '@esbuild/linux-arm@0.18.20': + '@swc/core-darwin-x64@1.7.14': optional: true - '@esbuild/linux-ia32@0.18.20': + '@swc/core-linux-arm-gnueabihf@1.6.13': optional: true - '@esbuild/linux-loong64@0.18.20': + '@swc/core-linux-arm-gnueabihf@1.7.14': optional: true - '@esbuild/linux-mips64el@0.18.20': + '@swc/core-linux-arm64-gnu@1.6.13': optional: true - '@esbuild/linux-ppc64@0.18.20': + '@swc/core-linux-arm64-gnu@1.7.14': optional: true - '@esbuild/linux-riscv64@0.18.20': + '@swc/core-linux-arm64-musl@1.6.13': optional: true - '@esbuild/linux-s390x@0.18.20': + '@swc/core-linux-arm64-musl@1.7.14': optional: true - '@esbuild/linux-x64@0.18.20': + '@swc/core-linux-x64-gnu@1.6.13': optional: true - '@esbuild/netbsd-x64@0.18.20': + '@swc/core-linux-x64-gnu@1.7.14': optional: true - '@esbuild/openbsd-x64@0.18.20': + '@swc/core-linux-x64-musl@1.6.13': optional: true - '@esbuild/sunos-x64@0.18.20': + '@swc/core-linux-x64-musl@1.7.14': optional: true - '@esbuild/win32-arm64@0.18.20': + '@swc/core-win32-arm64-msvc@1.6.13': optional: true - '@esbuild/win32-ia32@0.18.20': + '@swc/core-win32-arm64-msvc@1.7.14': optional: true - '@esbuild/win32-x64@0.18.20': + '@swc/core-win32-ia32-msvc@1.6.13': optional: true - '@isaacs/cliui@8.0.2': + '@swc/core-win32-ia32-msvc@1.7.14': + optional: true + + '@swc/core-win32-x64-msvc@1.6.13': + optional: true + + '@swc/core-win32-x64-msvc@1.7.14': + optional: true + + '@swc/core@1.6.13(@swc/helpers@0.5.3)': dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.6.13 + '@swc/core-darwin-x64': 1.6.13 + '@swc/core-linux-arm-gnueabihf': 1.6.13 + '@swc/core-linux-arm64-gnu': 1.6.13 + '@swc/core-linux-arm64-musl': 1.6.13 + '@swc/core-linux-x64-gnu': 1.6.13 + '@swc/core-linux-x64-musl': 1.6.13 + '@swc/core-win32-arm64-msvc': 1.6.13 + '@swc/core-win32-ia32-msvc': 1.6.13 + '@swc/core-win32-x64-msvc': 1.6.13 + '@swc/helpers': 0.5.3 + + '@swc/core@1.7.14(@swc/helpers@0.5.3)': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.14 + '@swc/core-darwin-x64': 1.7.14 + '@swc/core-linux-arm-gnueabihf': 1.7.14 + '@swc/core-linux-arm64-gnu': 1.7.14 + '@swc/core-linux-arm64-musl': 1.7.14 + '@swc/core-linux-x64-gnu': 1.7.14 + '@swc/core-linux-x64-musl': 1.7.14 + '@swc/core-win32-arm64-msvc': 1.7.14 + '@swc/core-win32-ia32-msvc': 1.7.14 + '@swc/core-win32-x64-msvc': 1.7.14 + '@swc/helpers': 0.5.3 + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.3': + dependencies: + tslib: 2.6.3 - '@jridgewell/gen-mapping@0.3.5': + '@swc/types@0.1.12': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@swc/counter': 0.1.3 - '@jridgewell/resolve-uri@3.1.2': {} + '@trysound/sax@0.2.0': {} - '@jridgewell/set-array@1.2.1': {} + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 - '@jridgewell/source-map@0.3.6': + '@types/babel__generator@7.6.8': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/types': 7.25.4 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 - '@jridgewell/trace-mapping@0.3.25': + '@types/babel__traverse@7.20.6': dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@babel/types': 7.25.4 - '@pkgjs/parseargs@0.11.0': - optional: true + '@types/estree@0.0.39': {} - '@rollup/plugin-alias@3.1.9(rollup@2.79.1)': + '@types/estree@1.0.5': {} + + '@types/http-proxy@1.17.15': dependencies: - rollup: 2.79.1 - slash: 3.0.0 + '@types/node': 22.5.0 + + '@types/node@22.5.0': + dependencies: + undici-types: 6.19.8 + + '@types/parse-json@4.0.2': {} + + '@types/prop-types@15.7.12': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.3 + + '@types/react-transition-group@4.4.11': + dependencies: + '@types/react': 18.3.3 + + '@types/react@18.3.3': + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + + '@types/resolve@1.17.1': + dependencies: + '@types/node': 22.5.0 + + '@types/resolve@1.20.2': {} + + '@unhead/dom@1.10.0': + dependencies: + '@unhead/schema': 1.10.0 + '@unhead/shared': 1.10.0 + + '@unhead/schema@1.10.0': + dependencies: + hookable: 5.5.3 + zhead: 2.2.4 + + '@unhead/shared@1.10.0': + dependencies: + '@unhead/schema': 1.10.0 + + '@unhead/ssr@1.10.0': + dependencies: + '@unhead/schema': 1.10.0 + '@unhead/shared': 1.10.0 + + '@unhead/vue@1.10.0(vue@3.5.3(typescript@5.5.3))': + dependencies: + '@unhead/schema': 1.10.0 + '@unhead/shared': 1.10.0 + hookable: 5.5.3 + unhead: 1.10.0 + vue: 3.5.3(typescript@5.5.3) - '@rollup/plugin-babel@5.3.1(@babel/core@7.25.2)(rollup@2.79.1)': + '@vercel/nft@0.26.5': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + node-gyp-build: 4.8.2 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@17.1.0(rollup@2.79.1)': + '@vitejs/plugin-vue-jsx@4.0.1(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))(vue@3.5.3(typescript@5.5.3))': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - commondir: 1.0.1 + '@babel/core': 7.25.2 + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vue: 3.5.3(typescript@5.5.3) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))(vue@3.5.3(typescript@5.5.3))': + dependencies: + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vue: 3.5.3(typescript@5.5.3) + + '@vue-macros/common@1.12.2(rollup@4.21.0)(vue@3.5.3(typescript@5.5.3))': + dependencies: + '@babel/types': 7.25.4 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@vue/compiler-sfc': 3.4.38 + ast-kit: 1.1.0 + local-pkg: 0.5.0 + magic-string-ast: 0.6.2 + optionalDependencies: + vue: 3.5.3(typescript@5.5.3) + transitivePeerDependencies: + - rollup + + '@vue/babel-helper-vue-transform-on@1.2.2': {} + + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@babel/types': 7.25.4 + '@vue/babel-helper-vue-transform-on': 1.2.2 + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.25.2) + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + optionalDependencies: + '@babel/core': 7.25.2 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.25.2)': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/parser': 7.25.4 + '@vue/compiler-sfc': 3.4.38 + + '@vue/compiler-core@3.4.38': + dependencies: + '@babel/parser': 7.25.4 + '@vue/shared': 3.4.38 + entities: 4.5.0 estree-walker: 2.0.2 - glob: 7.2.3 - is-reference: 1.2.1 - magic-string: 0.25.9 - resolve: 1.22.8 - rollup: 2.79.1 + source-map-js: 1.2.0 - '@rollup/plugin-json@4.1.0(rollup@2.79.1)': + '@vue/compiler-core@3.5.3': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 + '@babel/parser': 7.25.4 + '@vue/shared': 3.5.3 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': + '@vue/compiler-dom@3.4.38': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 2.79.1 + '@vue/compiler-core': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/compiler-dom@3.5.3': + dependencies: + '@vue/compiler-core': 3.5.3 + '@vue/shared': 3.5.3 + + '@vue/compiler-sfc@3.4.38': + dependencies: + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.4.38 + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.41 + source-map-js: 1.2.0 + + '@vue/compiler-sfc@3.5.3': + dependencies: + '@babel/parser': 7.25.4 + '@vue/compiler-core': 3.5.3 + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.4.44 + source-map-js: 1.2.0 + + '@vue/compiler-ssr@3.4.38': + dependencies: + '@vue/compiler-dom': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/compiler-ssr@3.5.3': + dependencies: + '@vue/compiler-dom': 3.5.3 + '@vue/shared': 3.5.3 + + '@vue/devtools-api@6.6.3': {} + + '@vue/devtools-core@7.3.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6))': + dependencies: + '@vue/devtools-kit': 7.3.3 + '@vue/devtools-shared': 7.3.9 + mitt: 3.0.1 + nanoid: 3.3.7 + pathe: 1.1.2 + vite-hot-client: 0.2.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + transitivePeerDependencies: + - vite + + '@vue/devtools-kit@7.3.3': + dependencies: + '@vue/devtools-shared': 7.3.9 + birpc: 0.2.17 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.1 + + '@vue/devtools-shared@7.3.9': + dependencies: + rfdc: 1.4.1 + + '@vue/reactivity@3.4.38': + dependencies: + '@vue/shared': 3.4.38 + + '@vue/reactivity@3.5.3': + dependencies: + '@vue/shared': 3.5.3 + + '@vue/runtime-core@3.4.38': + dependencies: + '@vue/reactivity': 3.4.38 + '@vue/shared': 3.4.38 + + '@vue/runtime-core@3.5.3': + dependencies: + '@vue/reactivity': 3.5.3 + '@vue/shared': 3.5.3 + + '@vue/runtime-dom@3.4.38': + dependencies: + '@vue/reactivity': 3.4.38 + '@vue/runtime-core': 3.4.38 + '@vue/shared': 3.4.38 + csstype: 3.1.3 + + '@vue/runtime-dom@3.5.3': + dependencies: + '@vue/reactivity': 3.5.3 + '@vue/runtime-core': 3.5.3 + '@vue/shared': 3.5.3 + csstype: 3.1.3 - '@rollup/pluginutils@3.1.0(rollup@2.79.1)': + '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.3))': dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.1 + '@vue/compiler-ssr': 3.4.38 + '@vue/shared': 3.4.38 + vue: 3.4.38(typescript@5.5.3) - '@rollup/pluginutils@4.2.1': + '@vue/server-renderer@3.5.3(vue@3.5.3(typescript@5.5.3))': dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 + vue: 3.5.3(typescript@5.5.3) - '@softarc/native-federation-runtime@2.0.9': + '@vue/shared@3.4.38': {} + + '@vue/shared@3.5.3': {} + + abbrev@1.1.1: {} + + abort-controller@3.0.0: dependencies: - tslib: 2.6.3 + event-target-shim: 5.0.1 - '@softarc/native-federation@2.0.9': + accepts@1.3.8: dependencies: - '@softarc/native-federation-runtime': 2.0.9 - json5: 2.2.3 - npmlog: 6.0.2 + mime-types: 2.1.35 + negotiator: 0.6.3 - '@surma/rollup-plugin-off-main-thread@2.2.3': + acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: - ejs: 3.1.10 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.11 + acorn: 8.12.1 - '@trysound/sax@0.2.0': {} + acorn@8.12.1: {} - '@types/estree@0.0.39': {} + adm-zip@0.5.15: {} - '@types/estree@1.0.5': {} + ag-grid-community@30.2.1: {} - '@types/node@22.1.0': + ag-grid-react@30.2.1(ag-grid-community@30.2.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - undici-types: 6.13.0 + ag-grid-community: 30.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@types/parse-json@4.0.2': {} + ag-grid-react@30.2.1(ag-grid-community@30.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + ag-grid-community: 30.2.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@types/resolve@1.17.1': + agent-base@6.0.2: dependencies: - '@types/node': 22.1.0 + debug: 4.3.6(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color - acorn@8.12.1: {} + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 ansi-regex@2.1.1: {} @@ -5186,18 +9169,107 @@ snapshots: ansi-styles@6.2.1: {} + antd@5.20.2(luxon@3.5.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@ant-design/colors': 7.1.0 + '@ant-design/cssinjs': 1.21.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/cssinjs-utils': 1.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/icons': 5.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@ant-design/react-slick': 1.1.2(react@18.3.1) + '@babel/runtime': 7.25.4 + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/qrcode': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/tour': 1.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.13 + rc-cascader: 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-checkbox: 3.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-collapse: 3.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-dialog: 9.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-drawer: 7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-dropdown: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-field-form: 2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-image: 7.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-input-number: 9.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-mentions: 2.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-notification: 5.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-pagination: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-picker: 4.6.13(dayjs@1.11.13)(luxon@3.5.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-progress: 4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-rate: 2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-segmented: 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-select: 14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-slider: 11.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-steps: 6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-switch: 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-table: 7.45.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tabs: 15.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-textarea: 1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tooltip: 6.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.8.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree-select: 5.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-upload: 4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.2 + transitivePeerDependencies: + - date-fns + - luxon + - moment + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + aproba@2.0.0: {} - are-we-there-yet@3.0.1: + archiver-utils@5.0.2: + dependencies: + glob: 10.4.5 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.5.2 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.5.2 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 + + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.2 + argparse@2.0.1: {} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 + array-tree-filter@2.1.0: {} + arraybuffer.prototype.slice@1.0.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -5209,44 +9281,70 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - async@3.2.5: {} + ast-kit@1.1.0: + dependencies: + '@babel/parser': 7.25.4 + pathe: 1.1.2 + + ast-walker-scope@0.6.2: + dependencies: + '@babel/parser': 7.25.4 + ast-kit: 1.1.0 + + async-sema@3.1.1: {} + + async@3.2.6: {} + + asynckit@0.4.0: {} asyncro@3.0.0: {} - autoprefixer@10.4.20(postcss@8.4.40): + at-least-node@1.0.0: {} + + autoprefixer@10.4.20(postcss@8.4.41): dependencies: browserslist: 4.23.3 - caniuse-lite: 1.0.30001647 + caniuse-lite: 1.0.30001651 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 + axios@1.7.4: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + b4a@1.6.6: {} + babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.4 cosmiconfig: 7.1.0 resolve: 1.22.8 babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.25.2 + '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.38.0 + core-js-compat: 3.38.1 transitivePeerDependencies: - supports-color @@ -5257,15 +9355,52 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-styled-components@2.1.4(@babel/core@7.25.2)(styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0))(supports-color@5.5.0): + dependencies: + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + lodash: 4.17.21 + picomatch: 2.3.1 + styled-components: 5.3.3(@babel/core@7.25.2)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + + babel-plugin-styled-components@2.1.4(@babel/core@7.25.2)(styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0): + dependencies: + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + lodash: 4.17.21 + picomatch: 2.3.1 + styled-components: 5.3.3(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - supports-color + babel-plugin-transform-async-to-promises@0.8.18: {} babel-plugin-transform-replace-expressions@0.2.0(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 + '@babel/parser': 7.25.4 balanced-match@1.0.2: {} + bare-events@2.4.2: + optional: true + + base64-js@1.5.1: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + birpc@0.2.17: {} + boolbase@1.0.0: {} brace-expansion@1.1.11: @@ -5277,21 +9412,64 @@ snapshots: dependencies: balanced-match: 1.0.2 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + brotli-size@4.0.0: dependencies: duplexer: 0.1.1 browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001647 - electron-to-chromium: 1.5.4 + caniuse-lite: 1.0.30001651 + electron-to-chromium: 1.5.13 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + btoa@1.2.1: {} + + buffer-builder@0.2.0: {} + + buffer-crc32@1.0.0: {} + buffer-from@1.1.2: {} + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + builtin-modules@3.3.0: {} + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + c12@1.11.1(magicast@0.3.5): + dependencies: + chokidar: 3.6.0 + confbox: 0.1.7 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.1 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 + + cac@6.7.14: {} + + cache-content-type@1.0.1: + dependencies: + mime-types: 2.1.35 + ylru: 1.4.0 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -5304,14 +9482,16 @@ snapshots: camelcase@6.3.0: {} + camelize@1.0.1: {} + caniuse-api@3.0.0: dependencies: browserslist: 4.23.3 - caniuse-lite: 1.0.30001647 + caniuse-lite: 1.0.30001651 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001647: {} + caniuse-lite@1.0.30001651: {} chalk@1.1.3: dependencies: @@ -5327,17 +9507,60 @@ snapshots: escape-string-regexp: 1.0.5 supports-color: 5.5.0 + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.3.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@2.0.0: {} + + ci-info@4.0.0: {} + + citty@0.1.6: + dependencies: + consola: 3.2.3 + + classnames@2.5.1: {} + + clear@0.1.0: {} + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clsx@2.1.1: {} + + cluster-key-slot@1.1.2: {} + + co@4.6.0: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -5354,26 +9577,75 @@ snapshots: colord@2.9.3: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + commander@2.20.3: {} commander@7.2.0: {} + commander@8.3.0: {} + commondir@1.0.1: {} + compatx@0.1.8: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.5.2 + + compute-scroll-into-view@3.1.0: {} + concat-map@0.0.1: {} concat-with-sourcemaps@1.1.0: dependencies: source-map: 0.6.1 + confbox@0.1.7: {} + + consola@3.2.3: {} + console-control-strings@1.1.0: {} + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} - core-js-compat@3.38.0: + cookie-es@1.2.2: {} + + cookies@0.8.0: + dependencies: + depd: 2.0.0 + keygrip: 1.1.0 + + copy-anything@3.0.5: + dependencies: + is-what: 4.1.16 + + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + + core-js-compat@3.38.1: dependencies: browserslist: 4.23.3 + core-js@3.36.1: {} + + core-util-is@1.0.3: {} + cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 @@ -5382,15 +9654,40 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.5.2 + + create-require@1.1.1: {} + + cron-parser@4.9.0: + dependencies: + luxon: 3.5.0 + + croner@8.1.1: {} + + cronstrue@2.50.0: {} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - css-declaration-sorter@6.4.1(postcss@8.4.40): + crossws@0.2.4: {} + + css-color-keywords@1.0.0: {} + + css-declaration-sorter@6.4.1(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 + + css-declaration-sorter@7.2.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 css-select@4.3.0: dependencies: @@ -5400,63 +9697,137 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + css-tree@1.1.3: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.0 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + css-what@6.1.0: {} cssesc@3.0.0: {} - cssnano-preset-default@5.2.14(postcss@8.4.40): - dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.40) - cssnano-utils: 3.1.0(postcss@8.4.40) - postcss: 8.4.40 - postcss-calc: 8.2.4(postcss@8.4.40) - postcss-colormin: 5.3.1(postcss@8.4.40) - postcss-convert-values: 5.1.3(postcss@8.4.40) - postcss-discard-comments: 5.1.2(postcss@8.4.40) - postcss-discard-duplicates: 5.1.0(postcss@8.4.40) - postcss-discard-empty: 5.1.1(postcss@8.4.40) - postcss-discard-overridden: 5.1.0(postcss@8.4.40) - postcss-merge-longhand: 5.1.7(postcss@8.4.40) - postcss-merge-rules: 5.1.4(postcss@8.4.40) - postcss-minify-font-values: 5.1.0(postcss@8.4.40) - postcss-minify-gradients: 5.1.1(postcss@8.4.40) - postcss-minify-params: 5.1.4(postcss@8.4.40) - postcss-minify-selectors: 5.2.1(postcss@8.4.40) - postcss-normalize-charset: 5.1.0(postcss@8.4.40) - postcss-normalize-display-values: 5.1.0(postcss@8.4.40) - postcss-normalize-positions: 5.1.1(postcss@8.4.40) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.40) - postcss-normalize-string: 5.1.0(postcss@8.4.40) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.40) - postcss-normalize-unicode: 5.1.1(postcss@8.4.40) - postcss-normalize-url: 5.1.0(postcss@8.4.40) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.40) - postcss-ordered-values: 5.1.3(postcss@8.4.40) - postcss-reduce-initial: 5.1.2(postcss@8.4.40) - postcss-reduce-transforms: 5.1.0(postcss@8.4.40) - postcss-svgo: 5.1.0(postcss@8.4.40) - postcss-unique-selectors: 5.1.1(postcss@8.4.40) - - cssnano-utils@3.1.0(postcss@8.4.40): - dependencies: - postcss: 8.4.40 - - cssnano@5.1.15(postcss@8.4.40): - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.40) + cssnano-preset-default@5.2.14(postcss@8.4.41): + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.41) + cssnano-utils: 3.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-calc: 8.2.4(postcss@8.4.41) + postcss-colormin: 5.3.1(postcss@8.4.41) + postcss-convert-values: 5.1.3(postcss@8.4.41) + postcss-discard-comments: 5.1.2(postcss@8.4.41) + postcss-discard-duplicates: 5.1.0(postcss@8.4.41) + postcss-discard-empty: 5.1.1(postcss@8.4.41) + postcss-discard-overridden: 5.1.0(postcss@8.4.41) + postcss-merge-longhand: 5.1.7(postcss@8.4.41) + postcss-merge-rules: 5.1.4(postcss@8.4.41) + postcss-minify-font-values: 5.1.0(postcss@8.4.41) + postcss-minify-gradients: 5.1.1(postcss@8.4.41) + postcss-minify-params: 5.1.4(postcss@8.4.41) + postcss-minify-selectors: 5.2.1(postcss@8.4.41) + postcss-normalize-charset: 5.1.0(postcss@8.4.41) + postcss-normalize-display-values: 5.1.0(postcss@8.4.41) + postcss-normalize-positions: 5.1.1(postcss@8.4.41) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.41) + postcss-normalize-string: 5.1.0(postcss@8.4.41) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.41) + postcss-normalize-unicode: 5.1.1(postcss@8.4.41) + postcss-normalize-url: 5.1.0(postcss@8.4.41) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.41) + postcss-ordered-values: 5.1.3(postcss@8.4.41) + postcss-reduce-initial: 5.1.2(postcss@8.4.41) + postcss-reduce-transforms: 5.1.0(postcss@8.4.41) + postcss-svgo: 5.1.0(postcss@8.4.41) + postcss-unique-selectors: 5.1.1(postcss@8.4.41) + + cssnano-preset-default@7.0.5(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + css-declaration-sorter: 7.2.0(postcss@8.4.41) + cssnano-utils: 5.0.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-calc: 10.0.2(postcss@8.4.41) + postcss-colormin: 7.0.2(postcss@8.4.41) + postcss-convert-values: 7.0.3(postcss@8.4.41) + postcss-discard-comments: 7.0.2(postcss@8.4.41) + postcss-discard-duplicates: 7.0.1(postcss@8.4.41) + postcss-discard-empty: 7.0.0(postcss@8.4.41) + postcss-discard-overridden: 7.0.0(postcss@8.4.41) + postcss-merge-longhand: 7.0.3(postcss@8.4.41) + postcss-merge-rules: 7.0.3(postcss@8.4.41) + postcss-minify-font-values: 7.0.0(postcss@8.4.41) + postcss-minify-gradients: 7.0.0(postcss@8.4.41) + postcss-minify-params: 7.0.2(postcss@8.4.41) + postcss-minify-selectors: 7.0.3(postcss@8.4.41) + postcss-normalize-charset: 7.0.0(postcss@8.4.41) + postcss-normalize-display-values: 7.0.0(postcss@8.4.41) + postcss-normalize-positions: 7.0.0(postcss@8.4.41) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.41) + postcss-normalize-string: 7.0.0(postcss@8.4.41) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.41) + postcss-normalize-unicode: 7.0.2(postcss@8.4.41) + postcss-normalize-url: 7.0.0(postcss@8.4.41) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.41) + postcss-ordered-values: 7.0.1(postcss@8.4.41) + postcss-reduce-initial: 7.0.2(postcss@8.4.41) + postcss-reduce-transforms: 7.0.0(postcss@8.4.41) + postcss-svgo: 7.0.1(postcss@8.4.41) + postcss-unique-selectors: 7.0.2(postcss@8.4.41) + + cssnano-utils@3.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + cssnano-utils@5.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + cssnano@5.1.15(postcss@8.4.41): + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.4.41) lilconfig: 2.1.0 - postcss: 8.4.40 + postcss: 8.4.41 yaml: 1.10.2 + cssnano@7.0.5(postcss@8.4.41): + dependencies: + cssnano-preset-default: 7.0.5(postcss@8.4.41) + lilconfig: 3.1.2 + postcss: 8.4.41 + csso@4.2.0: dependencies: css-tree: 1.1.3 + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + csstype@3.1.3: {} + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -5475,12 +9846,37 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - debug@4.3.6: + date-format@4.0.14: {} + + dayjs@1.11.13: {} + + db0@0.1.4: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.1.0: + dependencies: + ms: 2.0.0 + + debug@4.3.6(supports-color@5.5.0): dependencies: ms: 2.1.2 + optionalDependencies: + supports-color: 5.5.0 + + deep-equal@1.0.1: {} deepmerge@4.3.1: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -5489,58 +9885,122 @@ snapshots: define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + delegates@1.0.0: {} + denque@2.1.0: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + destroy@1.2.0: {} + + detect-libc@1.0.3: {} + + detect-libc@2.0.3: {} + + devalue@5.0.0: {} + + diff@5.2.0: {} + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.25.4 + csstype: 3.1.3 + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + domelementtype@2.3.0: {} domhandler@4.3.1: dependencies: domelementtype: 2.3.0 + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-prop@8.0.2: + dependencies: + type-fest: 3.13.1 + + dotenv@16.4.5: {} + duplexer@0.1.1: {} duplexer@0.1.2: {} eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + ejs@3.1.10: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.4: {} + electron-to-chromium@1.5.13: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - end-of-stream@1.4.4: + encodeurl@1.0.2: {} + + enhanced-resolve@5.17.1: dependencies: - once: 1.4.0 + graceful-fs: 4.2.11 + tapable: 2.2.1 entities@2.2.0: {} + entities@4.5.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 + error-inject@1.0.0: {} + + error-stack-parser-es@0.1.5: {} + + errx@0.1.0: {} + es-abstract@1.23.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -5612,52 +10072,120 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.18.20: + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + esbuild@0.21.5: optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escalade@3.1.2: {} + escape-html@1.0.3: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} + estree-walker@0.6.1: {} estree-walker@1.0.1: {} estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.5 + esutils@2.0.3: {} + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + eventemitter3@4.0.7: {} - execa@4.1.0: + events@3.3.0: {} + + execa@5.1.1: dependencies: cross-spawn: 7.0.3 - get-stream: 5.2.0 - human-signals: 1.1.1 + get-stream: 6.0.1 + human-signals: 2.1.0 is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 @@ -5665,45 +10193,156 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@7.2.0: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + expand-tilde@2.0.2: + dependencies: + homedir-polyfill: 1.0.3 + + externality@1.0.2: + dependencies: + enhanced-resolve: 5.17.1 + mlly: 1.7.1 + pathe: 1.1.2 + ufo: 1.5.4 + + fast-fifo@1.3.2: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-npm-meta@0.2.2: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fdir@6.3.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + figures@1.7.0: dependencies: escape-string-regexp: 1.0.5 object-assign: 4.1.1 + file-uri-to-path@1.0.0: {} + filelist@1.0.4: dependencies: minimatch: 5.1.6 filesize@6.4.0: {} + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 make-dir: 3.1.0 pkg-dir: 4.2.0 + find-file-up@2.0.1: + dependencies: + resolve-dir: 1.0.1 + + find-pkg@2.0.0: + dependencies: + find-file-up: 2.0.1 + + find-root@1.1.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flatted@3.3.1: {} + + follow-redirects@1.15.6: {} + for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + fraction.js@4.3.7: {} + fresh@0.5.2: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.2.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -5720,12 +10359,13 @@ snapshots: functions-have-names@1.2.3: {} - gauge@4.0.4: + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 console-control-strings: 1.1.0 has-unicode: 2.0.1 + object-assign: 4.1.1 signal-exit: 3.0.7 string-width: 4.2.3 strip-ansi: 6.0.1 @@ -5747,9 +10387,11 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-stream@5.2.0: - dependencies: - pump: 3.0.0 + get-port-please@3.1.2: {} + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} get-symbol-description@1.0.2: dependencies: @@ -5757,15 +10399,50 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + giget@1.2.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.11 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + + git-config-path@2.0.0: {} + + git-up@7.0.0: + dependencies: + is-ssh: 1.4.0 + parse-url: 8.1.0 + + git-url-parse@14.1.0: + dependencies: + git-up: 7.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + glob@10.4.5: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 path-scurry: 1.11.1 + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.1 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.0 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -5775,6 +10452,32 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + + global-directory@4.0.1: + dependencies: + ini: 4.1.1 + + global-modules@1.0.0: + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + + global-prefix@1.0.2: + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + globals@11.12.0: {} globalthis@1.0.4: @@ -5784,6 +10487,15 @@ snapshots: globalyzer@0.1.0: {} + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + globrex@0.1.2: {} gopd@1.0.1: @@ -5800,6 +10512,25 @@ snapshots: dependencies: duplexer: 0.1.2 + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + h3@1.12.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.2.4 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.3 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + transitivePeerDependencies: + - uWebSockets.js + has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 @@ -5824,21 +10555,81 @@ snapshots: has-unicode@2.0.1: {} + hash-sum@2.0.0: {} + hasown@2.0.2: dependencies: function-bind: 1.1.2 - human-signals@1.1.1: {} + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + homedir-polyfill@1.0.3: + dependencies: + parse-passwd: 1.0.0 + + hookable@5.5.3: {} + + html-rspack-plugin@5.7.2(@rspack/core@0.7.5(@swc/helpers@0.5.3)): + optionalDependencies: + '@rspack/core': 0.7.5(@swc/helpers@0.5.3) + + html-tags@3.3.1: {} + + http-assert@1.5.0: + dependencies: + deep-equal: 1.0.1 + http-errors: 1.8.1 + + http-errors@1.8.1: + dependencies: + depd: 1.1.2 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 1.5.0 + toidentifier: 1.0.1 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-shutdown@1.2.2: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.6(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + httpxy@0.1.5: {} + + human-signals@2.1.0: {} + + human-signals@4.3.1: {} + + human-signals@5.0.0: {} husky@8.0.3: {} icss-replace-symbols@1.1.0: {} - icss-utils@5.1.0(postcss@8.4.40): + icss-utils@5.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 - ignore@5.3.1: {} + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + image-meta@0.2.1: {} + + immutable@4.3.7: {} import-cwd@3.0.0: dependencies: @@ -5860,12 +10651,32 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + + ini@4.1.1: {} + internal-slot@1.0.7: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 + ioredis@5.4.1: + dependencies: + '@ioredis/commands': 1.2.0 + cluster-key-slot: 1.1.2 + debug: 4.3.6(supports-color@5.5.0) + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + iron-webcrypto@1.2.1: {} + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -5877,14 +10688,22 @@ snapshots: dependencies: has-bigints: 1.0.2 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + is-callable@1.2.7: {} - is-core-module@2.15.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -5898,8 +10717,29 @@ snapshots: is-docker@2.2.1: {} + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-installed-globally@1.0.0: + dependencies: + global-directory: 4.0.1 + is-path-inside: 4.0.0 + is-module@1.0.0: {} is-negative-zero@2.0.3: {} @@ -5908,6 +10748,10 @@ snapshots: dependencies: has-tostringtag: 1.0.2 + is-number@7.0.0: {} + + is-path-inside@4.0.0: {} + is-reference@1.2.1: dependencies: '@types/estree': 1.0.5 @@ -5921,8 +10765,14 @@ snapshots: dependencies: call-bind: 1.0.7 + is-ssh@1.4.0: + dependencies: + protocols: 2.0.1 + is-stream@2.0.1: {} + is-stream@3.0.0: {} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.2 @@ -5939,81 +10789,258 @@ snapshots: dependencies: call-bind: 1.0.7 + is-what@4.1.16: {} + + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isarray@1.0.0: {} + isarray@2.0.5: {} isexe@2.0.0: {} + isomorphic-ws@5.0.0(ws@8.17.1): + dependencies: + ws: 8.17.1 + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.0.1: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jake@10.9.2: dependencies: - async: 3.2.5 + async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 jest-worker@26.6.2: dependencies: - '@types/node': 22.1.0 + '@types/node': 22.5.0 merge-stream: 2.0.0 supports-color: 7.2.0 + jiti@1.21.6: {} + js-tokens@4.0.0: {} + js-tokens@9.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + jsesc@0.5.0: {} jsesc@2.5.2: {} json-parse-even-better-errors@2.3.1: {} + json2mq@0.2.0: + dependencies: + string-convert: 0.2.1 + json5@2.2.3: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + jsonfile@6.1.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 + keygrip@1.1.0: + dependencies: + tsscmp: 1.0.6 + + kleur@3.0.3: {} + kleur@4.1.5: {} + klona@2.0.6: {} + + knitwork@1.1.0: {} + + koa-compose@3.2.1: + dependencies: + any-promise: 1.3.0 + + koa-compose@4.1.0: {} + + koa-convert@1.2.0: + dependencies: + co: 4.6.0 + koa-compose: 3.2.1 + + koa@2.11.0: + dependencies: + accepts: 1.3.8 + cache-content-type: 1.0.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookies: 0.8.0 + debug: 3.1.0 + delegates: 1.0.0 + depd: 1.1.2 + destroy: 1.2.0 + encodeurl: 1.0.2 + error-inject: 1.0.0 + escape-html: 1.0.3 + fresh: 0.5.2 + http-assert: 1.5.0 + http-errors: 1.8.1 + is-generator-function: 1.0.10 + koa-compose: 4.1.0 + koa-convert: 1.2.0 + on-finished: 2.4.1 + only: 0.0.2 + parseurl: 1.3.3 + statuses: 1.5.0 + type-is: 1.6.18 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + kolorist@1.8.0: {} + + launch-editor@2.8.1: + dependencies: + picocolors: 1.0.1 + shell-quote: 1.8.1 + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + lilconfig@2.1.0: {} + lilconfig@3.1.2: {} + lines-and-columns@1.2.4: {} + listhen@1.7.2: + dependencies: + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.4.1 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.2.3 + crossws: 0.2.4 + defu: 6.1.4 + get-port-please: 3.1.2 + h3: 1.12.0 + http-shutdown: 1.2.2 + jiti: 1.21.6 + mlly: 1.7.1 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.7.0 + ufo: 1.5.4 + untun: 0.1.3 + uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js + loader-utils@3.3.1: {} + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.2.0 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + lodash.camelcase@4.3.0: {} + lodash.clonedeepwith@4.5.0: {} + lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.isarguments@3.1.0: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash.uniq@4.5.0: {} + lodash@4.17.21: {} + + log4js@6.9.1: + dependencies: + date-format: 4.0.14 + debug: 4.3.6(supports-color@5.5.0) + flatted: 3.3.1 + rfdc: 1.4.1 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + + long-timeout@0.1.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + lru-cache@10.4.3: {} + lru-cache@11.0.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 + luxon@3.5.0: {} + + magic-string-ast@0.6.2: + dependencies: + magic-string: 0.30.11 + magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.25.4 + '@babel/types': 7.25.4 + source-map-js: 1.2.0 + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -6027,9 +11054,17 @@ snapshots: mdn-data@2.0.14: {} + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + media-typer@0.3.0: {} + merge-stream@2.0.0: {} - microbundle@0.15.1: + merge2@1.4.1: {} + + microbundle@0.15.1(@types/babel__core@7.20.5): dependencies: '@babel/core': 7.25.2 '@babel/plugin-proposal-class-properties': 7.12.1(@babel/core@7.25.2) @@ -6038,17 +11073,17 @@ snapshots: '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/preset-env': 7.25.3(@babel/core@7.25.2) + '@babel/preset-env': 7.25.4(@babel/core@7.25.2) '@babel/preset-flow': 7.24.7(@babel/core@7.25.2) '@babel/preset-react': 7.24.7(@babel/core@7.25.2) '@rollup/plugin-alias': 3.1.9(rollup@2.79.1) - '@rollup/plugin-babel': 5.3.1(@babel/core@7.25.2)(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.25.2)(@types/babel__core@7.20.5)(rollup@2.79.1) '@rollup/plugin-commonjs': 17.1.0(rollup@2.79.1) '@rollup/plugin-json': 4.1.0(rollup@2.79.1) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 asyncro: 3.0.0 - autoprefixer: 10.4.20(postcss@8.4.40) + autoprefixer: 10.4.20(postcss@8.4.41) babel-plugin-macros: 3.1.0 babel-plugin-transform-async-to-promises: 0.8.18 babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.25.2) @@ -6060,16 +11095,16 @@ snapshots: gzip-size: 6.0.0 kleur: 4.1.5 lodash.merge: 4.6.2 - postcss: 8.4.40 + postcss: 8.4.41 pretty-bytes: 5.6.0 rollup: 2.79.1 rollup-plugin-bundle-size: 1.0.3 - rollup-plugin-postcss: 4.0.2(postcss@8.4.40) + rollup-plugin-postcss: 4.0.2(postcss@8.4.41) rollup-plugin-terser: 7.0.2(rollup@2.79.1) rollup-plugin-typescript2: 0.32.1(rollup@2.79.1)(typescript@4.9.5) rollup-plugin-visualizer: 5.12.0(rollup@2.79.1) sade: 1.8.1 - terser: 5.31.3 + terser: 5.31.6 tiny-glob: 0.2.9 tslib: 2.6.3 typescript: 4.9.5 @@ -6078,14 +11113,31 @@ snapshots: - supports-color - ts-node + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime@1.6.0: {} + + mime@3.0.0: {} + + mime@4.0.4: {} + mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -6098,16 +11150,161 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mitt@3.0.1: {} + + mkdirp@1.0.4: {} + + mlly@1.7.1: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.4 + mri@1.2.0: {} + mrmime@2.0.0: {} + + ms@2.0.0: {} + ms@2.1.2: {} + ms@2.1.3: {} + nanoid@3.3.7: {} + nanoid@5.0.7: {} + + negotiator@0.6.3: {} + + nitropack@2.9.7(magicast@0.3.5): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@netlify/functions': 2.8.1 + '@rollup/plugin-alias': 5.1.0(rollup@4.21.0) + '@rollup/plugin-commonjs': 25.0.8(rollup@4.21.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.21.0) + '@rollup/plugin-json': 6.1.0(rollup@4.21.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.21.0) + '@rollup/plugin-replace': 5.0.7(rollup@4.21.0) + '@rollup/plugin-terser': 0.4.4(rollup@4.21.0) + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@types/http-proxy': 1.17.15 + '@vercel/nft': 0.26.5 + archiver: 7.0.1 + c12: 1.11.1(magicast@0.3.5) + chalk: 5.3.0 + chokidar: 3.6.0 + citty: 0.1.6 + consola: 3.2.3 + cookie-es: 1.2.2 + croner: 8.1.1 + crossws: 0.2.4 + db0: 0.1.4 + defu: 6.1.4 + destr: 2.0.3 + dot-prop: 8.0.2 + esbuild: 0.20.2 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + fs-extra: 11.2.0 + globby: 14.0.2 + gzip-size: 7.0.0 + h3: 1.12.0 + hookable: 5.5.3 + httpxy: 0.1.5 + ioredis: 5.4.1 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + listhen: 1.7.2 + magic-string: 0.30.11 + mime: 4.0.4 + mlly: 1.7.1 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ohash: 1.1.3 + openapi-typescript: 6.7.6 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + pretty-bytes: 6.1.1 + radix3: 1.1.2 + rollup: 4.21.0 + rollup-plugin-visualizer: 5.12.0(rollup@4.21.0) + scule: 1.3.0 + semver: 7.6.3 + serve-placeholder: 2.0.2 + serve-static: 1.15.0 + std-env: 3.7.0 + ufo: 1.5.4 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.10.0 + unimport: 3.11.1(rollup@4.21.0) + unstorage: 1.10.2(ioredis@5.4.1) + unwasm: 0.3.9 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - magicast + - supports-color + - uWebSockets.js + + node-addon-api@7.1.1: {} + + node-fetch-native@1.6.4: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-forge@1.3.1: {} + + node-gyp-build@4.8.2: {} + node-releases@2.0.18: {} + node-schedule@2.1.1: + dependencies: + cron-parser: 4.9.0 + long-timeout: 0.1.1 + sorted-array-functions: 1.3.0 + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + + normalize-path@3.0.0: {} + normalize-range@0.1.2: {} normalize-url@6.1.0: {} @@ -6116,11 +11313,15 @@ snapshots: dependencies: path-key: 3.1.1 - npmlog@6.0.2: + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npmlog@5.0.1: dependencies: - are-we-there-yet: 3.0.1 + are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 - gauge: 4.0.4 + gauge: 3.0.2 set-blocking: 2.0.0 nth-check@2.1.1: @@ -6129,6 +11330,126 @@ snapshots: number-is-nan@1.0.1: {} + nuxi@3.13.1: + optionalDependencies: + fsevents: 2.3.3 + + nuxt@3.13.0(@parcel/watcher@2.4.1)(@types/node@22.5.0)(ioredis@5.4.1)(magicast@0.3.5)(rollup@4.21.0)(sass-embedded@1.77.8)(terser@5.31.6)(typescript@5.5.3)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.4.1(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)) + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + '@nuxt/schema': 3.13.0(rollup@4.21.0) + '@nuxt/telemetry': 2.5.4(magicast@0.3.5)(rollup@4.21.0) + '@nuxt/vite-builder': 3.13.0(@types/node@22.5.0)(magicast@0.3.5)(rollup@4.21.0)(sass-embedded@1.77.8)(terser@5.31.6)(typescript@5.5.3)(vue@3.5.3(typescript@5.5.3)) + '@unhead/dom': 1.10.0 + '@unhead/ssr': 1.10.0 + '@unhead/vue': 1.10.0(vue@3.5.3(typescript@5.5.3)) + '@vue/shared': 3.4.38 + acorn: 8.12.1 + c12: 1.11.1(magicast@0.3.5) + chokidar: 3.6.0 + compatx: 0.1.8 + consola: 3.2.3 + cookie-es: 1.2.2 + defu: 6.1.4 + destr: 2.0.3 + devalue: 5.0.0 + errx: 0.1.0 + esbuild: 0.23.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + globby: 14.0.2 + h3: 1.12.0 + hookable: 5.5.3 + ignore: 5.3.2 + jiti: 1.21.6 + klona: 2.0.6 + knitwork: 1.1.0 + magic-string: 0.30.11 + mlly: 1.7.1 + nitropack: 2.9.7(magicast@0.3.5) + nuxi: 3.13.1 + nypm: 0.3.11 + ofetch: 1.3.4 + ohash: 1.1.3 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.0 + radix3: 1.1.2 + scule: 1.3.0 + semver: 7.6.3 + std-env: 3.7.0 + strip-literal: 2.1.0 + ufo: 1.5.4 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.3.1 + unenv: 1.10.0 + unimport: 3.11.1(rollup@4.21.0) + unplugin: 1.12.3 + unplugin-vue-router: 0.10.7(rollup@4.21.0)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.3)))(vue@3.5.3(typescript@5.5.3)) + unstorage: 1.10.2(ioredis@5.4.1) + untyped: 1.4.2 + vue: 3.5.3(typescript@5.5.3) + vue-bundle-renderer: 2.1.0 + vue-devtools-stub: 0.1.0 + vue-router: 4.4.3(vue@3.5.3(typescript@5.5.3)) + optionalDependencies: + '@parcel/watcher': 2.4.1 + '@types/node': 22.5.0 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/kv' + - better-sqlite3 + - bufferutil + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - optionator + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - typescript + - uWebSockets.js + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + + nypm@0.3.11: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + ufo: 1.5.4 + object-assign@4.1.1: {} object-inspect@1.13.2: {} @@ -6142,13 +11463,38 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 + ofetch@1.3.4: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + ohash@1.1.3: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + once@1.4.0: dependencies: - wrappy: 1.0.2 + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 - onetime@5.1.2: + only@0.0.2: {} + + open@10.1.0: dependencies: - mimic-fn: 2.1.0 + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 open@8.4.2: dependencies: @@ -6156,16 +11502,33 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-typescript@6.7.6: + dependencies: + ansi-colors: 4.1.3 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + supports-color: 9.4.0 + undici: 5.28.4 + yargs-parser: 21.1.1 + p-finally@1.0.0: {} p-limit@2.3.0: dependencies: p-try: 2.2.0 + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + p-queue@6.6.2: dependencies: eventemitter3: 4.0.7 @@ -6183,6 +11546,11 @@ snapshots: dependencies: callsites: 3.1.0 + parse-git-config@3.0.0: + dependencies: + git-config-path: 2.0.0 + ini: 1.3.8 + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.24.7 @@ -6190,12 +11558,26 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-passwd@1.0.0: {} + + parse-path@7.0.0: + dependencies: + protocols: 2.0.1 + + parse-url@8.1.0: + dependencies: + parse-path: 7.0.0 + + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} path-scurry@1.11.1: @@ -6203,224 +11585,398 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.0 + minipass: 7.1.2 + path-type@4.0.0: {} + path-type@5.0.0: {} + + pathe@1.1.2: {} + + perfect-debounce@1.0.0: {} + picocolors@1.0.1: {} picomatch@2.3.1: {} picomatch@3.0.1: {} + picomatch@4.0.2: {} + pify@5.0.0: {} pkg-dir@4.2.0: dependencies: find-up: 4.1.0 + pkg-types@1.2.0: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + possible-typed-array-names@1.0.0: {} - postcss-calc@8.2.4(postcss@8.4.40): + postcss-calc@10.0.2(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-calc@8.2.4(postcss@8.4.41): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.4.40): + postcss-colormin@5.3.1(postcss@8.4.41): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.4.40): + postcss-colormin@7.0.2(postcss@8.4.41): dependencies: browserslist: 4.23.3 - postcss: 8.4.40 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-convert-values@5.1.3(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.3(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-discard-comments@5.1.2(postcss@8.4.40): + postcss-discard-comments@5.1.2(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-discard-comments@7.0.2(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + postcss-discard-duplicates@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-discard-duplicates@7.0.1(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 - postcss-discard-duplicates@5.1.0(postcss@8.4.40): + postcss-discard-empty@5.1.1(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 - postcss-discard-empty@5.1.1(postcss@8.4.40): + postcss-discard-empty@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 - postcss-discard-overridden@5.1.0(postcss@8.4.40): + postcss-discard-overridden@5.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 - postcss-load-config@3.1.4(postcss@8.4.40): + postcss-discard-overridden@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-load-config@3.1.4(postcss@8.4.41): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.40 + postcss: 8.4.41 + + postcss-merge-longhand@5.1.7(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.4.41) - postcss-merge-longhand@5.1.7(postcss@8.4.40): + postcss-merge-longhand@7.0.3(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.40) + stylehacks: 7.0.3(postcss@8.4.41) + + postcss-merge-rules@5.1.4(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 - postcss-merge-rules@5.1.4(postcss@8.4.40): + postcss-merge-rules@7.0.3(postcss@8.4.41): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.40) - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + cssnano-utils: 5.0.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 - postcss-minify-font-values@5.1.0(postcss@8.4.40): + postcss-minify-font-values@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@5.1.1(postcss@8.4.41): + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.4.41) + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.4.40): + postcss-minify-gradients@7.0.0(postcss@8.4.41): dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.40) - postcss: 8.4.40 + cssnano-utils: 5.0.0(postcss@8.4.41) + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.4.40): + postcss-minify-params@5.1.4(postcss@8.4.41): dependencies: browserslist: 4.23.3 - cssnano-utils: 3.1.0(postcss@8.4.40) - postcss: 8.4.40 + cssnano-utils: 3.1.0(postcss@8.4.41) + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.4.40): + postcss-minify-params@7.0.2(postcss@8.4.41): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + browserslist: 4.23.3 + cssnano-utils: 5.0.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@5.2.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.4.40): + postcss-minify-selectors@7.0.3(postcss@8.4.41): dependencies: - postcss: 8.4.40 + cssesc: 3.0.0 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + postcss-modules-extract-imports@3.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 - postcss-modules-local-by-default@4.0.5(postcss@8.4.40): + postcss-modules-local-by-default@4.0.5(postcss@8.4.41): dependencies: - icss-utils: 5.1.0(postcss@8.4.40) - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.40): + postcss-modules-scope@3.2.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 - postcss-modules-values@4.0.0(postcss@8.4.40): + postcss-modules-values@4.0.0(postcss@8.4.41): dependencies: - icss-utils: 5.1.0(postcss@8.4.40) - postcss: 8.4.40 + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 - postcss-modules@4.3.1(postcss@8.4.40): + postcss-modules@4.3.1(postcss@8.4.41): dependencies: generic-names: 4.0.0 icss-replace-symbols: 1.1.0 lodash.camelcase: 4.3.0 - postcss: 8.4.40 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.40) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.40) - postcss-modules-scope: 3.2.0(postcss@8.4.40) - postcss-modules-values: 4.0.0(postcss@8.4.40) + postcss: 8.4.41 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.41) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.41) + postcss-modules-scope: 3.2.0(postcss@8.4.41) + postcss-modules-values: 4.0.0(postcss@8.4.41) string-hash: 1.1.3 - postcss-normalize-charset@5.1.0(postcss@8.4.40): + postcss-normalize-charset@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-normalize-charset@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-normalize-display-values@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-display-values@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@5.1.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@5.1.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 - postcss-normalize-display-values@5.1.0(postcss@8.4.40): + postcss-normalize-string@5.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.4.40): + postcss-normalize-string@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.4.40): + postcss-normalize-timing-functions@5.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.4.40): + postcss-normalize-timing-functions@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.4.40): + postcss-normalize-unicode@5.1.1(postcss@8.4.41): dependencies: - postcss: 8.4.40 + browserslist: 4.23.3 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.4.40): + postcss-normalize-unicode@7.0.2(postcss@8.4.41): dependencies: browserslist: 4.23.3 - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.4.40): + postcss-normalize-url@5.1.0(postcss@8.4.41): dependencies: normalize-url: 6.1.0 - postcss: 8.4.40 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@5.1.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.4.40): + postcss-ordered-values@5.1.3(postcss@8.4.41): dependencies: - postcss: 8.4.40 + cssnano-utils: 3.1.0(postcss@8.4.41) + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-ordered-values@5.1.3(postcss@8.4.40): + postcss-ordered-values@7.0.1(postcss@8.4.41): dependencies: - cssnano-utils: 3.1.0(postcss@8.4.40) - postcss: 8.4.40 + cssnano-utils: 5.0.0(postcss@8.4.41) + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-reduce-initial@5.1.2(postcss@8.4.40): + postcss-reduce-initial@5.1.2(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + postcss: 8.4.41 + + postcss-reduce-initial@7.0.2(postcss@8.4.41): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 - postcss: 8.4.40 + postcss: 8.4.41 + + postcss-reduce-transforms@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 - postcss-reduce-transforms@5.1.0(postcss@8.4.40): + postcss-reduce-transforms@7.0.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@5.1.0(postcss@8.4.40): + postcss-svgo@5.1.0(postcss@8.4.41): dependencies: - postcss: 8.4.40 + postcss: 8.4.41 postcss-value-parser: 4.2.0 svgo: 2.8.0 - postcss-unique-selectors@5.1.1(postcss@8.4.40): + postcss-svgo@7.0.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@5.1.1(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + postcss-unique-selectors@7.0.2(postcss@8.4.41): dependencies: - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss@8.4.40: + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.1 + source-map-js: 1.2.0 + + postcss@8.4.44: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 - prettier@2.8.8: {} + prettier@3.3.3: {} pretty-bytes@3.0.1: dependencies: @@ -6428,34 +11984,473 @@ snapshots: pretty-bytes@5.6.0: {} - pretty-quick@3.3.1(prettier@2.8.8): + pretty-bytes@6.1.1: {} + + pretty-quick@4.0.0(prettier@3.3.3): dependencies: - execa: 4.1.0 - find-up: 4.1.0 - ignore: 5.3.1 + execa: 5.1.1 + find-up: 5.0.0 + ignore: 5.3.2 mri: 1.2.0 picocolors: 1.0.1 picomatch: 3.0.1 - prettier: 2.8.8 + prettier: 3.3.3 tslib: 2.6.3 + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + promise.series@0.2.0: {} - pump@3.0.0: + prompts@2.4.2: dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 + kleur: 3.0.3 + sisteransi: 1.0.5 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + protocols@2.0.1: {} + + proxy-from-env@1.1.0: {} + + queue-microtask@1.2.3: {} + + queue-tick@1.0.1: {} + + radix3@1.1.2: {} + + rambda@9.2.1: {} randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 + range-parser@1.2.1: {} + + rc-cascader@3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + array-tree-filter: 2.1.0 + classnames: 2.5.1 + rc-select: 14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.8.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-checkbox@3.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-collapse@3.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-dialog@9.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-drawer@7.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-dropdown@4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-field-form@2.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/async-validator': 5.0.4 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-image@7.9.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-dialog: 9.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input-number@9.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/mini-decimal': 1.1.0 + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-input@1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-mentions@2.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-textarea: 1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-menu@9.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-motion@2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-notification@5.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-overflow@1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-pagination@4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-picker@4.6.13(dayjs@1.11.13)(luxon@3.5.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + dayjs: 1.11.13 + luxon: 3.5.0 + + rc-progress@4.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-rate@2.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-resize-observer@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + resize-observer-polyfill: 1.5.1 + + rc-segmented@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-select@14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-overflow: 1.3.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-slider@11.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-steps@6.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-switch@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-table@7.45.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/context': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tabs@15.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-dropdown: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-menu: 9.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-textarea@1.8.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-input: 1.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tooltip@6.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + '@rc-component/trigger': 2.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tree-select@5.22.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-select: 14.15.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-tree: 5.8.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-tree@5.8.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-motion: 2.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-virtual-list: 3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-upload@4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-util@5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + + rc-virtual-list@3.14.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + classnames: 2.5.1 + rc-resize-observer: 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + + react-dom@18.2.0(react@18.2.0): + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.2 + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react-is@18.3.1: {} + + react-refresh@0.14.2: {} + + react-router-dom@6.26.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.19.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.26.1(react@18.3.1) + + react-router@6.26.1(react@18.3.1): + dependencies: + '@remix-run/router': 1.19.1 + react: 18.3.1 + + react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + dependencies: + '@babel/runtime': 7.25.4 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.4 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.2.0: + dependencies: + loose-envify: 1.4.0 + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.5.2: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + regenerate-unicode-properties@10.1.1: dependencies: regenerate: 1.4.2 @@ -6466,7 +12461,7 @@ snapshots: regenerator-transform@0.15.2: dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.4 regexp.prototype.flags@1.5.2: dependencies: @@ -6490,36 +12485,52 @@ snapshots: require-directory@2.1.1: {} + resize-observer-polyfill@1.5.1: {} + + resolve-dir@1.0.1: + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - rimraf@5.0.10: + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: dependencies: - glob: 10.4.5 + glob: 7.2.3 + + rimraf@6.0.1: + dependencies: + glob: 11.0.0 + package-json-from-dist: 1.0.0 rollup-plugin-bundle-size@1.0.3: dependencies: chalk: 1.1.3 maxmin: 2.1.0 - rollup-plugin-postcss@4.0.2(postcss@8.4.40): + rollup-plugin-postcss@4.0.2(postcss@8.4.41): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15(postcss@8.4.40) + cssnano: 5.1.15(postcss@8.4.41) import-cwd: 3.0.0 p-queue: 6.6.2 pify: 5.0.0 - postcss: 8.4.40 - postcss-load-config: 3.1.4(postcss@8.4.40) - postcss-modules: 4.3.1(postcss@8.4.40) + postcss: 8.4.41 + postcss-load-config: 3.1.4(postcss@8.4.41) + postcss-modules: 4.3.1(postcss@8.4.41) promise.series: 0.2.0 resolve: 1.22.8 rollup-pluginutils: 2.8.2 @@ -6534,7 +12545,7 @@ snapshots: jest-worker: 26.6.2 rollup: 2.79.1 serialize-javascript: 4.0.0 - terser: 5.31.3 + terser: 5.31.6 rollup-plugin-typescript2@0.32.1(rollup@2.79.1)(typescript@4.9.5): dependencies: @@ -6555,45 +12566,209 @@ snapshots: optionalDependencies: rollup: 2.79.1 - rollup-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 + rollup-plugin-visualizer@5.12.0(rollup@4.21.0): + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.21.0 + + rollup-pluginutils@2.8.2: + dependencies: + estree-walker: 0.6.1 + + rollup@2.79.1: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.21.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.21.0 + '@rollup/rollup-android-arm64': 4.21.0 + '@rollup/rollup-darwin-arm64': 4.21.0 + '@rollup/rollup-darwin-x64': 4.21.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 + '@rollup/rollup-linux-arm-musleabihf': 4.21.0 + '@rollup/rollup-linux-arm64-gnu': 4.21.0 + '@rollup/rollup-linux-arm64-musl': 4.21.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 + '@rollup/rollup-linux-riscv64-gnu': 4.21.0 + '@rollup/rollup-linux-s390x-gnu': 4.21.0 + '@rollup/rollup-linux-x64-gnu': 4.21.0 + '@rollup/rollup-linux-x64-musl': 4.21.0 + '@rollup/rollup-win32-arm64-msvc': 4.21.0 + '@rollup/rollup-win32-ia32-msvc': 4.21.0 + '@rollup/rollup-win32-x64-msvc': 4.21.0 + fsevents: 2.3.3 + + run-applescript@7.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.6.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-identifier@0.4.2: {} + + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + + sass-embedded-android-arm64@1.77.8: + optional: true + + sass-embedded-android-arm@1.77.8: + optional: true + + sass-embedded-android-ia32@1.77.8: + optional: true + + sass-embedded-android-x64@1.77.8: + optional: true + + sass-embedded-darwin-arm64@1.77.8: + optional: true + + sass-embedded-darwin-x64@1.77.8: + optional: true + + sass-embedded-linux-arm64@1.77.8: + optional: true + + sass-embedded-linux-arm@1.77.8: + optional: true + + sass-embedded-linux-ia32@1.77.8: + optional: true - rollup@2.79.1: - optionalDependencies: - fsevents: 2.3.3 + sass-embedded-linux-musl-arm64@1.77.8: + optional: true - rollup@3.29.4: - optionalDependencies: - fsevents: 2.3.3 + sass-embedded-linux-musl-arm@1.77.8: + optional: true - sade@1.8.1: - dependencies: - mri: 1.2.0 + sass-embedded-linux-musl-ia32@1.77.8: + optional: true - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 + sass-embedded-linux-musl-x64@1.77.8: + optional: true - safe-buffer@5.2.1: {} + sass-embedded-linux-x64@1.77.8: + optional: true - safe-identifier@0.4.2: {} + sass-embedded-win32-arm64@1.77.8: + optional: true - safe-regex-test@1.0.3: + sass-embedded-win32-ia32@1.77.8: + optional: true + + sass-embedded-win32-x64@1.77.8: + optional: true + + sass-embedded@1.77.8: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 + '@bufbuild/protobuf': 1.10.0 + buffer-builder: 0.2.0 + immutable: 4.3.7 + rxjs: 7.8.1 + supports-color: 8.1.1 + varint: 6.0.0 + optionalDependencies: + sass-embedded-android-arm: 1.77.8 + sass-embedded-android-arm64: 1.77.8 + sass-embedded-android-ia32: 1.77.8 + sass-embedded-android-x64: 1.77.8 + sass-embedded-darwin-arm64: 1.77.8 + sass-embedded-darwin-x64: 1.77.8 + sass-embedded-linux-arm: 1.77.8 + sass-embedded-linux-arm64: 1.77.8 + sass-embedded-linux-ia32: 1.77.8 + sass-embedded-linux-musl-arm: 1.77.8 + sass-embedded-linux-musl-arm64: 1.77.8 + sass-embedded-linux-musl-ia32: 1.77.8 + sass-embedded-linux-musl-x64: 1.77.8 + sass-embedded-linux-x64: 1.77.8 + sass-embedded-win32-arm64: 1.77.8 + sass-embedded-win32-ia32: 1.77.8 + sass-embedded-win32-x64: 1.77.8 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.0 + + scule@1.3.0: {} semver@6.3.1: {} + semver@7.6.3: {} + + send@0.18.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + serialize-javascript@4.0.0: dependencies: randombytes: 2.1.0 + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.4 + + serve-static@1.15.0: + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -6612,12 +12787,18 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + setprototypeof@1.2.0: {} + + shallowequal@1.1.0: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} + shell-quote@1.8.1: {} + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -6629,8 +12810,32 @@ snapshots: signal-exit@4.1.0: {} + simple-git@3.26.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.3.6(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + slash@3.0.0: {} + slash@4.0.0: {} + + slash@5.1.0: {} + + smob@1.5.0: {} + + sorted-array-functions@1.3.0: {} + source-map-js@1.2.0: {} source-map-support@0.5.21: @@ -6638,14 +12843,44 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map@0.5.7: {} + source-map@0.6.1: {} source-map@0.7.4: {} sourcemap-codec@1.4.8: {} + speakingurl@14.0.1: {} + stable@0.1.8: {} + standard-as-callback@2.1.0: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + std-env@3.7.0: {} + + streamroller@3.1.5: + dependencies: + date-format: 4.0.14 + debug: 4.3.6(supports-color@5.5.0) + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + + streamx@2.20.0: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 + + string-convert@0.2.1: {} + string-hash@1.1.3: {} string-width@4.2.3: @@ -6694,6 +12929,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -6712,13 +12951,69 @@ snapshots: strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + + strip-literal@2.1.0: + dependencies: + js-tokens: 9.0.0 + style-inject@0.3.0: {} - stylehacks@5.1.1(postcss@8.4.40): + styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0): + dependencies: + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@emotion/is-prop-valid': 0.8.8 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.1.4(@babel/core@7.25.2)(styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.2.0(react@18.2.0))(react-is@18.3.1)(react@18.2.0))(supports-color@5.5.0) + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.3.1 + shallowequal: 1.1.0 + supports-color: 5.5.0 + transitivePeerDependencies: + - '@babel/core' + + styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1): + dependencies: + '@babel/helper-module-imports': 7.24.7(supports-color@5.5.0) + '@babel/traverse': 7.25.4(supports-color@5.5.0) + '@emotion/is-prop-valid': 0.8.8 + '@emotion/stylis': 0.8.5 + '@emotion/unitless': 0.7.5 + babel-plugin-styled-components: 2.1.4(@babel/core@7.25.2)(styled-components@5.3.3(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1))(supports-color@5.5.0) + css-to-react-native: 3.2.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + shallowequal: 1.1.0 + supports-color: 5.5.0 + transitivePeerDependencies: + - '@babel/core' + + stylehacks@5.1.1(postcss@8.4.41): + dependencies: + browserslist: 4.23.3 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + stylehacks@7.0.3(postcss@8.4.41): dependencies: browserslist: 4.23.3 - postcss: 8.4.40 - postcss-selector-parser: 6.1.1 + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + stylis@4.2.0: {} + + stylis@4.3.3: {} + + superjson@2.2.1: + dependencies: + copy-anything: 3.0.5 supports-color@2.0.0: {} @@ -6730,8 +13025,16 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-color@9.4.0: {} + supports-preserve-symlinks-flag@1.0.0: {} + svg-tags@1.0.0: {} + svgo@2.8.0: dependencies: '@trysound/sax': 0.2.0 @@ -6742,22 +13045,89 @@ snapshots: picocolors: 1.0.1 stable: 0.1.8 - terser@5.31.3: + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.1 + + system-architecture@0.1.0: {} + + tapable@2.2.1: {} + + tar-stream@3.1.7: + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.20.0 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 + text-decoder@1.1.1: + dependencies: + b4a: 1.6.6 + + throttle-debounce@5.0.2: {} + tiny-glob@0.2.9: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 + tiny-invariant@1.3.3: {} + + tinyglobby@0.2.5: + dependencies: + fdir: 6.3.0(picomatch@4.0.2) + picomatch: 4.0.2 + + tinyrainbow@1.2.0: {} + to-fast-properties@2.0.0: {} + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toggle-selection@1.0.6: {} + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + tr46@0.0.3: {} + tslib@2.6.3: {} + tsscmp@1.0.6: {} + + type-fest@0.21.3: {} + + type-fest@3.13.1: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -6792,6 +13162,12 @@ snapshots: typescript@4.9.5: {} + typescript@5.5.3: {} + + ufo@1.5.4: {} + + ultrahtml@1.5.3: {} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.7 @@ -6799,7 +13175,35 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - undici-types@6.13.0: {} + uncrypto@0.1.3: {} + + unctx@2.3.1: + dependencies: + acorn: 8.12.1 + estree-walker: 3.0.3 + magic-string: 0.30.11 + unplugin: 1.12.3 + + undici-types@6.19.8: {} + + undici@5.28.4: + dependencies: + '@fastify/busboy': 2.1.1 + + unenv@1.10.0: + dependencies: + consola: 3.2.3 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.4 + pathe: 1.1.2 + + unhead@1.10.0: + dependencies: + '@unhead/dom': 1.10.0 + '@unhead/schema': 1.10.0 + '@unhead/shared': 1.10.0 + hookable: 5.5.3 unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -6812,25 +13216,308 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.1.0: {} + + unimport@3.11.1(rollup@4.21.0): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + acorn: 8.12.1 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + scule: 1.3.0 + strip-literal: 2.1.0 + unplugin: 1.12.3 + transitivePeerDependencies: + - rollup + + universalify@0.1.2: {} + universalify@2.0.1: {} + unplugin-vue-router@0.10.7(rollup@4.21.0)(vue-router@4.4.3(vue@3.5.3(typescript@5.5.3)))(vue@3.5.3(typescript@5.5.3)): + dependencies: + '@babel/types': 7.25.4 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@vue-macros/common': 1.12.2(rollup@4.21.0)(vue@3.5.3(typescript@5.5.3)) + ast-walker-scope: 0.6.2 + chokidar: 3.6.0 + fast-glob: 3.3.2 + json5: 2.2.3 + local-pkg: 0.5.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.12.3 + yaml: 2.5.0 + optionalDependencies: + vue-router: 4.4.3(vue@3.5.3(typescript@5.5.3)) + transitivePeerDependencies: + - rollup + - vue + + unplugin@1.12.3: + dependencies: + acorn: 8.12.1 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + + unstorage@1.10.2(ioredis@5.4.1): + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.12.0 + listhen: 1.7.2 + lru-cache: 10.4.3 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ufo: 1.5.4 + optionalDependencies: + ioredis: 5.4.1 + transitivePeerDependencies: + - uWebSockets.js + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + pathe: 1.1.2 + + untyped@1.4.2: + dependencies: + '@babel/core': 7.25.2 + '@babel/standalone': 7.25.6 + '@babel/types': 7.25.4 + defu: 6.1.4 + jiti: 1.21.6 + mri: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + + unwasm@0.3.9: + dependencies: + knitwork: 1.1.0 + magic-string: 0.30.11 + mlly: 1.7.1 + pathe: 1.1.2 + pkg-types: 1.2.0 + unplugin: 1.12.3 + + upath@2.0.1: {} + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 escalade: 3.1.2 picocolors: 1.0.1 + uqr@0.1.2: {} + + urlpattern-polyfill@8.0.2: {} + util-deprecate@1.0.2: {} - vite@4.5.3(@types/node@22.1.0)(terser@5.31.3): + uuid@10.0.0: {} + + varint@6.0.0: {} + + vary@1.1.2: {} + + vite-hot-client@0.2.3(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + + vite-node@2.0.5(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6): + dependencies: + cac: 6.7.14 + debug: 4.3.6(supports-color@5.5.0) + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-plugin-checker@0.7.2(typescript@5.5.3)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@babel/code-frame': 7.24.7 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.6.0 + commander: 8.3.0 + fast-glob: 3.3.2 + fs-extra: 11.2.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.3 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + typescript: 5.5.3 + + vite-plugin-inspect@0.8.7(@nuxt/kit@3.13.0(magicast@0.3.5)(rollup@4.21.0))(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + debug: 4.3.6(supports-color@5.5.0) + error-stack-parser-es: 0.1.5 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.1 + sirv: 2.0.4 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + optionalDependencies: + '@nuxt/kit': 3.13.0(magicast@0.3.5)(rollup@4.21.0) + transitivePeerDependencies: + - rollup + - supports-color + + vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@rollup/plugin-virtual': 3.0.2(rollup@4.21.0) + '@swc/core': 1.7.14(@swc/helpers@0.5.3) + uuid: 10.0.0 + vite: 5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + transitivePeerDependencies: + - '@swc/helpers' + - rollup + + vite-plugin-top-level-await@1.4.4(@swc/helpers@0.5.3)(rollup@4.21.0)(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@rollup/plugin-virtual': 3.0.2(rollup@4.21.0) + '@swc/core': 1.7.14(@swc/helpers@0.5.3) + uuid: 10.0.0 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + transitivePeerDependencies: + - '@swc/helpers' + - rollup + + vite-plugin-vue-inspector@5.2.0(vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6)): + dependencies: + '@babel/core': 7.25.2 + '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2) + '@vue/compiler-dom': 3.4.38 + kolorist: 1.8.0 + magic-string: 0.30.11 + vite: 5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6) + transitivePeerDependencies: + - supports-color + + vite@5.4.2(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6): dependencies: - esbuild: 0.18.20 - postcss: 8.4.40 - rollup: 3.29.4 + esbuild: 0.21.5 + postcss: 8.4.41 + rollup: 4.21.0 optionalDependencies: - '@types/node': 22.1.0 + '@types/node': 22.5.0 fsevents: 2.3.3 - terser: 5.31.3 + sass-embedded: 1.77.8 + terser: 5.31.6 + + vite@5.4.3(@types/node@22.5.0)(sass-embedded@1.77.8)(terser@5.31.6): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.44 + rollup: 4.21.0 + optionalDependencies: + '@types/node': 22.5.0 + fsevents: 2.3.3 + sass-embedded: 1.77.8 + terser: 5.31.6 + + vscode-jsonrpc@6.0.0: {} + + vscode-languageclient@7.0.0: + dependencies: + minimatch: 3.1.2 + semver: 7.6.3 + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-uri@3.0.8: {} + + vue-bundle-renderer@2.1.0: + dependencies: + ufo: 1.5.4 + + vue-devtools-stub@0.1.0: {} + + vue-router@4.4.3(vue@3.4.38(typescript@5.5.3)): + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.4.38(typescript@5.5.3) + + vue-router@4.4.3(vue@3.5.3(typescript@5.5.3)): + dependencies: + '@vue/devtools-api': 6.6.3 + vue: 3.5.3(typescript@5.5.3) + + vue@3.4.38(typescript@5.5.3): + dependencies: + '@vue/compiler-dom': 3.4.38 + '@vue/compiler-sfc': 3.4.38 + '@vue/runtime-dom': 3.4.38 + '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.3)) + '@vue/shared': 3.4.38 + optionalDependencies: + typescript: 5.5.3 + + vue@3.5.3(typescript@5.5.3): + dependencies: + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-sfc': 3.5.3 + '@vue/runtime-dom': 3.5.3 + '@vue/server-renderer': 3.5.3(vue@3.5.3(typescript@5.5.3)) + '@vue/shared': 3.5.3 + optionalDependencies: + typescript: 5.5.3 + + webidl-conversions@3.0.1: {} + + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.6.2: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 which-boxed-primitive@1.0.2: dependencies: @@ -6848,10 +13535,18 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 + which@3.0.1: + dependencies: + isexe: 2.0.0 + wide-align@1.1.5: dependencies: string-width: 4.2.3 @@ -6870,12 +13565,20 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + + ws@8.18.0: {} + y18n@5.0.8: {} yallist@3.1.1: {} + yallist@4.0.0: {} + yaml@1.10.2: {} + yaml@2.5.0: {} + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -6887,3 +13590,15 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + + ylru@1.4.0: {} + + yocto-queue@0.1.0: {} + + zhead@2.2.4: {} + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.5.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..1d40951 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - 'examples/*/*' + - '.' diff --git a/src/dev-externals-mixin.ts b/src/dev-externals-mixin.ts deleted file mode 100644 index b6ab026..0000000 --- a/src/dev-externals-mixin.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { federationBuilder } from '@softarc/native-federation/build.js'; -import { filterExternals } from './externals-skip-list'; - -// see: https://github.com/vitejs/vite/issues/6393#issuecomment-1006819717 - -export const devExternalsMixin = { - enforce: 'pre', - config(config) { - config.optimizeDeps = { - ...(config.optimizeDeps ?? {}), - exclude: [ - ...(config.optimizeDeps?.exclude ?? []), - ...filterExternals(federationBuilder.externals), - ], - }; - }, - configResolved(resolvedConfig) { - const VALID_ID_PREFIX = `/@id/`; - const reg = new RegExp( - `(?["\'])[^\'"]*?${VALID_ID_PREFIX}(${federationBuilder.externals.join( - '|' - )})\\k`, - 'g' - ); - resolvedConfig.plugins.push({ - name: 'vite-plugin-ignore-static-import-replace-idprefix', - transform: (code) => - reg.test(code) ? code.replace(reg, (_m, quote, libName) => quote + libName + quote) : code, - }); - }, - resolveId: (id) => { - if (filterExternals(federationBuilder.externals).includes(id)) { - return { id, external: true }; - } - }, -} as any; diff --git a/src/externals-skip-list.ts b/src/externals-skip-list.ts deleted file mode 100644 index 881afdd..0000000 --- a/src/externals-skip-list.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const externalsSkipList = new Set(['tslib']); - -export function filterExternals(deps: string[]): string[] { - return deps.filter((d) => !externalsSkipList.has(d)); -} diff --git a/src/index.ts b/src/index.ts index 0a2e160..14377a1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,88 +1,61 @@ -import { BuildHelperParams, federationBuilder } from '@softarc/native-federation/build.js'; -import * as fs from 'fs'; -import * as path from 'path'; - -import mime from 'mime-types'; -import { Connect, ViteDevServer } from 'vite'; -import { devExternalsMixin } from './dev-externals-mixin'; -import { filterExternals } from './externals-skip-list'; - -export const federation = (params: BuildHelperParams) => { - return { - ...devExternalsMixin, - name: '@module-federation/vite', // required, will show up in warnings and errors - async config(...args) { - await federationBuilder.init(params); - devExternalsMixin.config(...args); - }, - options(o: unknown) { - o!['external'] = filterExternals(federationBuilder.externals); - }, - async closeBundle() { - await federationBuilder.build(); +import { Plugin } from 'vite'; +import addEntry from './plugins/pluginAddEntry'; +import { PluginDevProxyModuleTopLevelAwait } from "./plugins/pluginDevProxyModuleTopLevelAwait"; +import pluginManifest from "./plugins/pluginMFManifest"; +import pluginModuleParseEnd from './plugins/pluginModuleParseEnd'; +import pluginProxyRemoteEntry from './plugins/pluginProxyRemoteEntry'; +import pluginProxyRemotes from './plugins/pluginProxyRemotes'; +import { proxySharedModule } from './plugins/pluginProxySharedModule_preBuild'; +import aliasToArrayPlugin from './utils/aliasToArrayPlugin'; +import { + ModuleFederationOptions, + normalizeModuleFederationOptions +} from './utils/normalizeModuleFederationOptions'; +import normalizeOptimizeDepsPlugin from './utils/normalizeOptimizeDeps'; +import { getHostAutoInitImportId, getHostAutoInitPath, getLocalSharedImportMapPath, initVirtualModules, REMOTE_ENTRY_ID } from './virtualModules'; + +function federation(mfUserOptions: ModuleFederationOptions): Plugin[] { + const options = normalizeModuleFederationOptions(mfUserOptions); + initVirtualModules() + const { name, remotes, shared, filename } = options; + if (!name) throw new Error("name is required") + + return [ + aliasToArrayPlugin, + normalizeOptimizeDepsPlugin, + ...addEntry({ + entryName: 'remoteEntry', + entryPath: REMOTE_ENTRY_ID, + fileName: filename, + }), + ...addEntry({ + entryName: 'hostInit', + entryPath: getHostAutoInitPath(), + }), + pluginProxyRemoteEntry(), + pluginProxyRemotes(options), + ...pluginModuleParseEnd(((id: string) => { + return id.includes(getHostAutoInitImportId()) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath()) + })), + ...proxySharedModule({ + shared, + }), + PluginDevProxyModuleTopLevelAwait(), + { + name: 'module-federation-vite', + enforce: 'post', + config(config, { command: _command }: { command: string }) { + // TODO: singleton + ; (config.resolve as any).alias.push({ + find: '@module-federation/runtime', + replacement: require.resolve('@module-federation/runtime'), + },) + + config.optimizeDeps?.include?.push('@module-federation/runtime'); + }, }, - async configureServer(server: ViteDevServer) { - await configureDevServer(server, params); - }, - transformIndexHtml(html: string) { - return html.replace(/type="module"/g, 'type="module-shim"'); - }, - }; -}; - -const configureDevServer = async (server: ViteDevServer, params: BuildHelperParams) => { - await federationBuilder.build({ skipMappingsAndExposed: true }); - - const op = params.options; - const dist = path.join(op.workspaceRoot, op.outputPath); - server.middlewares.use(serveFromDist(dist, server.config.base)); -}; - -const serveFromDist = (dist: string, baseUrl: string): Connect.NextHandleFunction => { - return (req, res, next) => { - if (!req.url || req.url.endsWith('/index.html')) { - next(); - return; - } - - const file = path.join(dist, req.url.replace(baseUrl, '')); - if (fs.existsSync(file) && fs.lstatSync(file).isFile()) { - res.setHeader('Access-Control-Allow-Origin', '*'); - res.setHeader('Content-Type', mime.lookup(req.url)); - - const content = fs.readFileSync(file, 'utf-8'); - const modified = enhanceFile(file, content); - - res.write(modified); - res.end(); - return; - } - - next(); - }; -}; - -const enhanceFile = (fileName: string, src: string): string => { - if (fileName.endsWith('remoteEntry.json')) { - let remoteEntry = JSON.parse(fs.readFileSync(fileName, 'utf-8')); - remoteEntry = { - ...remoteEntry, - shared: (remoteEntry.shared || []).map((el) => ({ - ...el, - outFileName: el.dev?.entryPoint.includes('/node_modules/') - ? el.outFileName - : normalize(path.join('@fs', el.dev?.entryPoint || '')), - })), - exposes: (remoteEntry.exposes || []).map((el) => ({ - ...el, - outFileName: normalize(path.join('@fs', el.dev?.entryPoint || '')), - })), - }; - return JSON.stringify(remoteEntry, null, 2); - } - return src; -}; + ...pluginManifest(), + ]; +} -const normalize = (path: string): string => { - return path.replace(/\\/g, '/'); -}; +export { federation }; diff --git a/src/plugins/pluginAddEntry.ts b/src/plugins/pluginAddEntry.ts new file mode 100644 index 0000000..1592ea3 --- /dev/null +++ b/src/plugins/pluginAddEntry.ts @@ -0,0 +1,100 @@ +import * as fs from 'fs'; +import * as path from 'pathe'; +import { Plugin } from 'vite'; + +interface AddEntryOptions { + entryName: string; + entryPath: string; + fileName?: string; +} + +const addEntry = ({ entryName, entryPath, fileName }: AddEntryOptions): Plugin[] => { + const devEntryPath = entryPath.startsWith("virtual:mf") ? "/@id/" + entryPath : entryPath + let entryFiles: string[] = []; + let htmlFilePath: string; + let _command: string + + return [ + { + name: 'add-entry', + apply: "serve", + config(config, { command }) { + _command = command + }, + configureServer(server) { + server.httpServer?.once?.('listening', () => { + const { port } = server.config.server; + fetch(path.join(`http://localhost:${port}`, `${devEntryPath}`)).catch(e => { }) + }); + server.middlewares.use((req, res, next) => { + if (!fileName) { + next() + return + } + if (req.url && req.url.startsWith(fileName.replace(/^\/?/, '/'))) { + req.url = devEntryPath; + } + next(); + }); + }, + transformIndexHtml(c) { + return c.replace( + '', + `` + ); + }, + }, + { + name: "add-entry", + enforce: "post", + configResolved(config) { + const inputOptions = config.build.rollupOptions.input; + + if (!inputOptions) { + htmlFilePath = path.resolve(config.root, 'index.html'); + } else if (typeof inputOptions === 'string') { + entryFiles = [inputOptions]; + htmlFilePath = path.resolve(config.root, inputOptions); + } else if (Array.isArray(inputOptions)) { + entryFiles = inputOptions; + htmlFilePath = path.resolve(config.root, inputOptions[0]); + } else if (typeof inputOptions === 'object') { + entryFiles = Object.values(inputOptions); + htmlFilePath = path.resolve(config.root, Object.values(inputOptions)[0]); + } + }, + buildStart() { + if (_command === "serve") return + const hasHash = fileName?.includes?.("[hash") + this.emitFile({ + name: entryName, + [hasHash ? "name" : "fileName"]: fileName, + type: 'chunk', + id: entryPath, + preserveSignature: 'strict', + }); + if (htmlFilePath) { + const htmlContent = fs.readFileSync(htmlFilePath, 'utf-8'); + const scriptRegex = /]*src=["']([^"']+)["'][^>]*>/gi; + let match: RegExpExecArray | null; + + while ((match = scriptRegex.exec(htmlContent)) !== null) { + entryFiles.push(match[1]); + } + } + }, + transform(code, id) { + if (entryFiles.some(file => id.endsWith(file))) { + const injection = ` + import ${JSON.stringify(entryPath)}; + `; + return injection + code + } + } + } + ] +}; + +export default addEntry; diff --git a/src/plugins/pluginDevProxyModuleTopLevelAwait.ts b/src/plugins/pluginDevProxyModuleTopLevelAwait.ts new file mode 100644 index 0000000..4ebc7b3 --- /dev/null +++ b/src/plugins/pluginDevProxyModuleTopLevelAwait.ts @@ -0,0 +1,88 @@ +/** + * Solve the problem that dev mode dependency prebunding does not support top-level await syntax + */ +import { createFilter } from "@rollup/pluginutils"; +import { walk } from 'estree-walker'; +import MagicString from "magic-string"; +import { Plugin } from "vite"; + +export function PluginDevProxyModuleTopLevelAwait(): Plugin { + const filterFunction = createFilter(); + return { + name: "dev-proxy-module-top-level-await", + apply: "serve", + transform(code: string, id: string): { code: string; map: any } | null { + if (!(code.includes("/*mf top-level-await placeholder replacement mf*/"))) { + return null + } + if (!filterFunction(id)) return null; + let ast: any; + try { + ast = (this as any).parse(code, { + allowReturnOutsideFunction: true, + }); + } catch (e) { + throw new Error(`${id}: ${e}`); + } + + const magicString = new MagicString(code); + + walk(ast, { + enter(node: any) { + if (node.type === 'ExportNamedDeclaration' && node.specifiers) { + const exportSpecifiers = node.specifiers.map((specifier: any) => specifier.exported.name); + const proxyStatements = exportSpecifiers.map((name: string) => ` + const __mfproxy__await${name} = await ${name}(); + const __mfproxy__${name} = () => __mfproxy__await${name}; + `).join('\n'); + const exportStatements = exportSpecifiers.map((name: string) => `__mfproxy__${name} as ${name}`).join(', '); + + const start = node.start; + const end = node.end; + const replacement = `${proxyStatements}\nexport { ${exportStatements} };`; + + magicString.overwrite(start, end, replacement); + } + + if (node.type === 'ExportDefaultDeclaration') { + const declaration = node.declaration; + const start = node.start; + const end = node.end; + + let proxyStatement; + let exportStatement = 'default'; + + if (declaration.type === 'Identifier') { + // example: export default foo; + proxyStatement = ` + const __mfproxy__awaitdefault = await ${declaration.name}(); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } else if (declaration.type === 'CallExpression' || declaration.type === 'FunctionDeclaration') { + // example: export default someFunction(); + const declarationCode = code.slice(declaration.start, declaration.end); + proxyStatement = ` + const __mfproxy__awaitdefault = await (${declarationCode}); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } else { + // other + proxyStatement = ` + const __mfproxy__awaitdefault = await (${code.slice(declaration.start, declaration.end)}); + const __mfproxy__default = __mfproxy__awaitdefault; + `; + } + + const replacement = `${proxyStatement}\nexport { __mfproxy__default as ${exportStatement} };`; + + magicString.overwrite(start, end, replacement); + } + } + }); + return { + code: magicString.toString(), + map: magicString.generateMap({ hires: true }), + }; + }, + } +} \ No newline at end of file diff --git a/src/plugins/pluginMFManifest.ts b/src/plugins/pluginMFManifest.ts new file mode 100644 index 0000000..29f222d --- /dev/null +++ b/src/plugins/pluginMFManifest.ts @@ -0,0 +1,357 @@ +import { join, relative } from 'pathe'; +import { Manifest, Plugin } from 'vite'; +import { + getNormalizeModuleFederationOptions, + getNormalizeShareItem +} from '../utils/normalizeModuleFederationOptions'; +import { getPreBuildLibImportId, getUsedRemotesMap, getUsedShares } from '../virtualModules'; + +const Manifest = (): Plugin[] => { + const mfOptions = getNormalizeModuleFederationOptions() + const { name, filename, manifest: manifestOptions } = mfOptions + let mfManifestName: string = "" + if (manifestOptions === true) { + mfManifestName = "mf-manifest.json" + } + if (typeof manifestOptions !== "boolean") { + mfManifestName = join(manifestOptions?.filePath || "", manifestOptions?.fileName || "") + } + let extensions: string[] + let root: string + type PreloadMap = Record; // 保存模块和文件的映射关系 + let remoteEntryFile: string + return [ + { + name: 'moddule-federation-manifest', + apply: 'serve', + configureServer(server) { + server.middlewares.use((req, res, next) => { + if (!mfManifestName) { + next() + return + } + if (req.url === mfManifestName.replace(/^\/?/, "/")) { + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Access-Control-Allow-Origin', '*'); + res.end( + JSON.stringify({ + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { buildVersion: '1.0.0', buildName: name }, + remoteEntry: { + name: filename, + path: '', + type: 'module', + }, + ssrRemoteEntry: { + name: filename, + path: '', + type: 'module', + }, + types: { path: '', name: '' }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto', + }, + shared: Array.from(getUsedShares()).map(shareKey => { + const shareItem = getNormalizeShareItem(shareKey); + + return { + id: `${name}:${shareKey}`, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: [], + sync: [], + }, + css: { + async: [], + sync: [], + }, + }, + }; + }), + remotes: (function () { + const remotes = [] as any + const usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach((remoteKey) => { + const usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach((moduleKey) => { + remotes.push({ + federationContainerName: mfOptions.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*', + }); + }); + }); + return remotes + })(), + exposes: Object.keys(mfOptions.exposes).map(key => { + const formatKey = key.replace('./', ''); + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: [], + sync: [], + }, + css: { + sync: [], + async: [], + }, + }, + path: key, + }; + }) + }) + ); + } else { + next(); + } + }); + }, + }, + { + name: 'moddule-federation-manifest', + enforce: 'post', + config(config) { + if (!config.build) config.build = {} + if (!config.build.manifest) config.build.manifest = config.build.manifest || !!manifestOptions + }, + configResolved(config) { + root = config.root + extensions = config.resolve.extensions || ['.mjs', '.js', '.mts', '.ts', '.jsx', '.tsx', '.json'] + }, + async generateBundle(options, bundle) { + if (!mfManifestName) return + + const exposesModules = Object.keys(mfOptions.exposes).map(item => mfOptions.exposes[item].import); // 获取你提供的 moduleIds + const filesContainingModules: PreloadMap = {} + // 帮助函数:检查模块路径是否匹配 + const isModuleMatched = (relativeModulePath: string, preloadModule: string) => { + // 先尝试直接匹配 + if (relativeModulePath === preloadModule) return true; + // 如果 preloadModule 没有后缀,尝试添加可能的后缀进行匹配 + for (const ext of extensions) { + if (relativeModulePath === `${preloadModule}${ext}`) { + return true; + } + } + return false; + }; + + // 遍历打包生成的每个文件 + for (const [fileName, fileData] of Object.entries(bundle)) { + if (mfOptions.filename.replace(/[\[\]]/g, "_") === fileData.name) { + remoteEntryFile = fileData.fileName + } + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (const modulePath of Object.keys(fileData.modules)) { + + // 将绝对路径转换为相对于 Vite root 的相对路径 + const relativeModulePath = relative(root, modulePath); + + // 检查模块是否在 preloadModules 列表中 + for (const preloadModule of exposesModules) { + const formatPreloadModule = preloadModule.replace("./", "") + if (isModuleMatched(relativeModulePath, formatPreloadModule)) { + if (!filesContainingModules[preloadModule]) { + filesContainingModules[preloadModule] = { + sync: [], + async: [] + }; + } + console.log(Object.keys(fileData.modules)) + filesContainingModules[preloadModule].sync.push(fileName); + filesContainingModules[preloadModule].async.push(...fileData.dynamicImports || []); + findSynchronousImports(fileName, filesContainingModules[preloadModule].sync) + break; // 如果找到匹配,跳出循环 + } + } + } + } + } + // 递归查找模块的同步导入文件 + function findSynchronousImports(fileName: string, array: string[]) { + const fileData = bundle[fileName]; + if (fileData && fileData.type === 'chunk') { + array.push(fileName); // 将当前文件加入预加载列表 + + // 遍历该文件的同步导入文件 + fileData.imports.forEach((importedFile) => { + if (array.indexOf(importedFile) === -1) { + findSynchronousImports(importedFile, array); // 递归查找同步导入的文件 + } + }); + } + }; + const fileToShareKey: Record = {} + await Promise.all(Array.from(getUsedShares()).map(async shareKey => { + const file = ((await (this as any).resolve(getPreBuildLibImportId(shareKey))).id).split("?")[0] + fileToShareKey[file] = shareKey + })) + + // 遍历打包生成的每个文件 + for (const [fileName, fileData] of Object.entries(bundle)) { + if (fileData.type === 'chunk') { + // 遍历该文件的所有模块 + for (const modulePath of Object.keys(fileData.modules)) { + const sharedKey = fileToShareKey[modulePath] + if (sharedKey) { + if (!filesContainingModules[sharedKey]) { + filesContainingModules[sharedKey] = { + sync: [], + async: [] + }; + } + filesContainingModules[sharedKey].sync.push(fileName); + filesContainingModules[sharedKey].async.push(...fileData.dynamicImports || []); + findSynchronousImports(fileName, filesContainingModules[sharedKey].sync) + break; // 如果找到匹配,跳出循环 + } + } + } + } + Object.keys(filesContainingModules).forEach(key => { + filesContainingModules[key].sync = Array.from(new Set(filesContainingModules[key].sync)) + filesContainingModules[key].async = Array.from(new Set(filesContainingModules[key].async)) + }) + this.emitFile({ + type: 'asset', + fileName: mfManifestName, + source: generateMFManifest(filesContainingModules), + }); + } + }, + ]; + function generateMFManifest(preloadMap: PreloadMap) { + const options = getNormalizeModuleFederationOptions(); + const { name } = options; + const remoteEntry = { + name: remoteEntryFile, + path: '', + type: 'module', + }; + const remotes: { + federationContainerName: string; + moduleName: string; + alias: string; + entry: string; + }[] = []; + const usedRemotesMap = getUsedRemotesMap(); + Object.keys(usedRemotesMap).forEach((remoteKey) => { + const usedModules = Array.from(usedRemotesMap[remoteKey]); + usedModules.forEach((moduleKey) => { + remotes.push({ + federationContainerName: options.remotes[remoteKey].entry, + moduleName: moduleKey.replace(remoteKey, '').replace('/', ''), + alias: remoteKey, + entry: '*', + }); + }); + }); + type ManifestItem = { + id: string; + name: string; + version: string; + requiredVersion: string; + assets: { + js: { + async: string[]; + sync: string[]; + }; + css: { + async: string[]; + sync: string[]; + }; + }; + }; + // @ts-ignore + const shared: ManifestItem[] = Array.from(getUsedShares()).map((shareKey) => { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + if (!preloadMap[shareKey]) return + const shareItem = getNormalizeShareItem(shareKey); + + return { + id: `${name}:${shareKey}`, + name: shareKey, + version: shareItem.version, + requiredVersion: shareItem.shareConfig.requiredVersion, + assets: { + js: { + async: preloadMap[shareKey].async, + sync: preloadMap[shareKey].sync, + }, + css: { + async: [], + sync: [], + }, + }, + }; + }).filter(item => item) + const exposes = Object.keys(options.exposes).map((key) => { + // assets(.css, .jpg, .svg等)其他资源, 不重要, 暂未处理 + const formatKey = key.replace('./', ''); + const sourceFile = options.exposes[key].import + if (!preloadMap[sourceFile]) return + return { + id: name + ':' + formatKey, + name: formatKey, + assets: { + js: { + async: preloadMap[sourceFile].async, + sync: preloadMap[sourceFile].sync, + }, + css: { + sync: [], + async: [], + }, + }, + path: key, + }; + }) + .filter((item) => item); // Filter out any null values + + const result = { + id: name, + name: name, + metaData: { + name: name, + type: 'app', + buildInfo: { + buildVersion: '1.0.0', + buildName: name, + }, + remoteEntry, + ssrRemoteEntry: remoteEntry, + types: { + path: '', + name: '', + // "zip": "@mf-types.zip", + // "api": "@mf-types.d.ts" + }, + globalName: name, + pluginVersion: '0.2.5', + publicPath: 'auto', + }, + shared, + remotes, + exposes, + }; + return JSON.stringify(result); + } + +}; + +export default Manifest; diff --git a/src/plugins/pluginModuleParseEnd.ts b/src/plugins/pluginModuleParseEnd.ts new file mode 100644 index 0000000..5d9b6f9 --- /dev/null +++ b/src/plugins/pluginModuleParseEnd.ts @@ -0,0 +1,56 @@ +/** + * Dynamic shared modules, such as "react/" and "react-dom/", can only be parsed during the build process; + * This plugin allows me to wait until all modules are built, and then expose them together. + */ +import { Plugin } from "vite"; + +let _resolve: any, _reject: any, promise = new Promise((resolve, reject) => { + _resolve = resolve + _reject = reject +}) +let parsePromise = promise + +const parseStartSet = new Set() +const parseEndSet = new Set() +export default function (excludeFn: Function): Plugin[] { + return [ + { + name: "_", + apply: "serve", + config() { + // No waiting in development mode + _resolve(1) + } + }, + { + enforce: "pre", + name: "parseStart", + apply: "build", + load(id) { + if (excludeFn(id)) { + return + } + parseStartSet.add(id) + } + }, + { + enforce: "post", + name: "parseEnd", + apply: "build", + moduleParsed(module) { + const id = module.id + if (excludeFn(id)) { + return + } + parseEndSet.add(id) + if (parseStartSet.size === parseEndSet.size) { + _resolve(1) + } + } + }, + ] +} +export { + parsePromise +}; + diff --git a/src/plugins/pluginProxyRemoteEntry.ts b/src/plugins/pluginProxyRemoteEntry.ts new file mode 100644 index 0000000..6cb3308 --- /dev/null +++ b/src/plugins/pluginProxyRemoteEntry.ts @@ -0,0 +1,31 @@ +import { createFilter } from '@rollup/pluginutils'; +import { Plugin } from 'vite'; +import { getNormalizeModuleFederationOptions } from '../utils/normalizeModuleFederationOptions'; +import { generateRemoteEntry, REMOTE_ENTRY_ID } from '../virtualModules'; +import { parsePromise } from './pluginModuleParseEnd'; + +const filter: (id: string) => boolean = createFilter(); + +export default function (): Plugin { + return { + name: 'proxyRemoteEntry', + enforce: 'post', + resolveId(id: string) { + if (id === REMOTE_ENTRY_ID) { + return REMOTE_ENTRY_ID; + } + }, + load(id: string) { + if (id === REMOTE_ENTRY_ID) { + return parsePromise.then(_ => generateRemoteEntry(getNormalizeModuleFederationOptions())) + } + }, + async transform(code: string, id: string) { + if (!filter(id)) return; + if (id.includes(REMOTE_ENTRY_ID)) { + return parsePromise.then(_ => generateRemoteEntry(getNormalizeModuleFederationOptions())) + } + }, + } + +} \ No newline at end of file diff --git a/src/plugins/pluginProxyRemotes.ts b/src/plugins/pluginProxyRemotes.ts new file mode 100644 index 0000000..3711022 --- /dev/null +++ b/src/plugins/pluginProxyRemotes.ts @@ -0,0 +1,28 @@ +import { createFilter } from "@rollup/pluginutils"; +import { Plugin } from "vite"; +import { NormalizedModuleFederationOptions } from "../utils/normalizeModuleFederationOptions"; +import { addUsedRemote, getRemoteVirtualModule } from "../virtualModules"; +const filter: (id: string) => boolean = createFilter(); + +export default function (options: NormalizedModuleFederationOptions): Plugin { + let command: string + const { remotes } = options + return { + name: "proxyRemotes", + config(config, { command: _command }) { + command = _command + Object.keys(remotes).forEach((key) => { + const remote = remotes[key]; + ; (config.resolve as any).alias.push({ + find: new RegExp(`^(${remote.name}(\/.*|$))`), + replacement: "$1", + customResolver(source: string) { + const remoteModule = getRemoteVirtualModule(source, _command) + addUsedRemote(remote.name, source) + return remoteModule.getPath() + }, + }); + }); + }, + } +} \ No newline at end of file diff --git a/src/plugins/pluginProxySharedModule_preBuild.ts b/src/plugins/pluginProxySharedModule_preBuild.ts new file mode 100644 index 0000000..bf56c92 --- /dev/null +++ b/src/plugins/pluginProxySharedModule_preBuild.ts @@ -0,0 +1,92 @@ +import { defu } from 'defu'; +import { Plugin, UserConfig, WatchOptions } from 'vite'; +import { NormalizedShared } from '../utils/normalizeModuleFederationOptions'; +import { PromiseStore } from "../utils/PromiseStore"; +import VirtualModule from '../utils/VirtualModule'; +import { addUsedShares, generateLocalSharedImportMap, getLoadShareModulePath, getLocalSharedImportMapPath, LOAD_SHARE_TAG, PREBUILD_TAG, writeLoadShareModule, writeLocalSharedImportMap, writePreBuildLibPath } from '../virtualModules'; +import { parsePromise } from './pluginModuleParseEnd'; +export function proxySharedModule( + options: { shared?: NormalizedShared; include?: string | string[]; exclude?: string | string[] } +): Plugin[] { + let { shared = {}, include, exclude } = options; + return [ + { + name: "generateLocalSharedImportMap", + enforce: "post", + load(id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(_ => generateLocalSharedImportMap()) + } + }, + transform(code, id) { + if (id.includes(getLocalSharedImportMapPath())) { + return parsePromise.then(_ => generateLocalSharedImportMap()) + } + }, + }, + { + name: 'proxyPreBuildShared', + enforce: 'post', + config(config: UserConfig, { command }) { + ; (config.resolve as any).alias.push( + ...Object.keys(shared).map((key) => { + const pattern = key.endsWith("/") ? `(^${key.replace(/\/$/, "")}(\/.+)?$)` : `(^${key}$)` + return { + // Intercept all shared requests and proxy them to loadShare + find: new RegExp(pattern), replacement: "$1", customResolver(source: string, importer: string) { + const loadSharePath = getLoadShareModulePath(source) + writeLoadShareModule(source, shared[key], command) + writePreBuildLibPath(source) + addUsedShares(source) + writeLocalSharedImportMap() + return (this as any).resolve(loadSharePath) + } + } + }) + ); + const savePrebuild = new PromiseStore() + + ; (config.resolve as any).alias.push( + ...Object.keys(shared).map((key) => { + return command === "build" ? + { + find: new RegExp(`(.*${PREBUILD_TAG}.*)`), replacement: function ($1: string) { + const pkgName = (VirtualModule.findModule(PREBUILD_TAG, $1) as VirtualModule).name + return pkgName + }, + } : + { + find: new RegExp(`(.*${PREBUILD_TAG}.*)`), replacement: "$1", async customResolver(source: string, importer: string) { + const pkgName = (VirtualModule.findModule(PREBUILD_TAG, source) as VirtualModule).name + if (importer.includes(LOAD_SHARE_TAG)) { + // save pre-bunding module id + savePrebuild.set(pkgName, (this as any).resolve(pkgName).then((item: any) => item.id)) + } + // Fix localSharedImportMap import id + return await (this as any).resolve(await savePrebuild.get(pkgName)) + } + } + }) + ); + }, + }, + { + name: "watchLocalSharedImportMap", + apply: "serve", + config(config) { + config.optimizeDeps = defu(config.optimizeDeps, { + exclude: [getLocalSharedImportMapPath()] + }); + config.server = defu(config.server, { + watch: { + ignored: [], + } + }); + const watch = config.server.watch as WatchOptions + watch.ignored = [].concat(watch.ignored as any); + watch.ignored.push(`!**${getLocalSharedImportMapPath()}**`); + }, + }, + + ] +} diff --git a/src/utils/PromiseStore.ts b/src/utils/PromiseStore.ts new file mode 100644 index 0000000..a4140f5 --- /dev/null +++ b/src/utils/PromiseStore.ts @@ -0,0 +1,34 @@ +/** + * example: + * const store = new PromiseStore(); + * store.get("example").then((result) => { + * console.log("Result from example:", result); // 42 + * }); + * setTimeout(() => { + * store.set("example", Promise.resolve(42)); + * }, 2000); + */ + +export class PromiseStore { + private promiseMap: Map> = new Map(); + private resolveMap: Map void> = new Map(); + + set(id: string, promise: Promise): void { + if (this.resolveMap.has(id)) { + promise.then(this.resolveMap.get(id)!); + this.resolveMap.delete(id); + } + this.promiseMap.set(id, promise); + } + get(id: string): Promise { + if (this.promiseMap.has(id)) { + return this.promiseMap.get(id)!; + } + const pendingPromise = new Promise((resolve) => { + this.resolveMap.set(id, resolve); + }); + + this.promiseMap.set(id, pendingPromise); + return pendingPromise; + } +} \ No newline at end of file diff --git a/src/utils/VirtualModule.ts b/src/utils/VirtualModule.ts new file mode 100644 index 0000000..ca1b5ad --- /dev/null +++ b/src/utils/VirtualModule.ts @@ -0,0 +1,78 @@ +import { existsSync, mkdirSync, writeFile, writeFileSync } from "fs"; +import { dirname, join, parse, resolve } from "pathe"; +import { packageNameDecode, packageNameEncode } from "../utils/packageNameUtils"; +import { getNormalizeModuleFederationOptions } from "./normalizeModuleFederationOptions"; + +const nodeModulesDir = function findNodeModulesDir(startDir = process.cwd()) { + let currentDir = startDir; + + while (currentDir !== parse(currentDir).root) { + const nodeModulesPath = join(currentDir, 'node_modules'); + if (existsSync(nodeModulesPath)) { + return nodeModulesPath; + } + currentDir = dirname(currentDir); + } + + return ""; +}() +export const virtualPackageName = "__mf__virtual" +if (!existsSync(resolve(nodeModulesDir, virtualPackageName))) { + mkdirSync(resolve(nodeModulesDir, virtualPackageName)) +} +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "empty.js"), "") +writeFileSync(resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.stringify({ + name: virtualPackageName, + main: "empty.js" +})) + +const patternMap: { + [tag: string]: RegExp +} = {} + +const cacheMap: { + [tag: string]: { + [name: string]: VirtualModule + } +} = {} +/** + * Physically generate files as virtual modules under node_modules/__mf__virtual/* + */ +export default class VirtualModule { + name: string + tag: string + suffix: string + inited: boolean = false + static findModule(tag: string, str: string = ""): VirtualModule | undefined { + if (!patternMap[tag]) patternMap[tag] = new RegExp(`(.*${packageNameEncode(tag)}(.+?)${packageNameEncode(tag)}.*)`) + const moduleName = (str.match(patternMap[tag]) || [])[2] + if (moduleName) return cacheMap[tag][packageNameDecode(moduleName)] as VirtualModule | undefined + return undefined + } + constructor(name: string, tag: string = '__mf_v__', suffix = "") { + this.name = name + this.tag = tag + this.suffix = suffix || name.split(".").slice(1).pop()?.replace(/(.)/, ".$1") || ".js" + if (!cacheMap[this.tag]) cacheMap[this.tag] = {} + cacheMap[this.tag][this.name] = this + } + getPath() { + return resolve(nodeModulesDir, this.getImportId()) + } + getImportId() { + const { name: mfName } = getNormalizeModuleFederationOptions() + + return `${virtualPackageName}/${packageNameEncode(`${mfName}${this.tag}${this.name}${this.tag}`)}${this.suffix}` + } + writeSync(code: string, force?: boolean) { + if (!force && this.inited) return + if (!this.inited) { + this.inited = true + } + writeFileSync(this.getPath(), code) + } + write(code: string) { + writeFile(this.getPath(), code, function () { }) + } + +} \ No newline at end of file diff --git a/src/utils/aliasToArrayPlugin.ts b/src/utils/aliasToArrayPlugin.ts new file mode 100644 index 0000000..1b0f311 --- /dev/null +++ b/src/utils/aliasToArrayPlugin.ts @@ -0,0 +1,20 @@ +import { UserConfig } from 'vite'; + +export interface Command { + // define command properties here +} + +export default { + name: 'alias-transform-plugin', + config: (config: UserConfig, { command }: { command: Command }) => { + if (!config.resolve) config.resolve = {}; + if (!config.resolve.alias) config.resolve.alias = []; + const { alias } = config.resolve; + if (typeof alias === 'object' && !Array.isArray(alias)) { + config.resolve.alias = Object.entries(alias).map(([find, replacement]) => ({ + find, + replacement, + })); + } + }, +}; diff --git a/src/utils/localSharedImportMap_windows.ts b/src/utils/localSharedImportMap_windows.ts new file mode 100644 index 0000000..ffdf04b --- /dev/null +++ b/src/utils/localSharedImportMap_windows.ts @@ -0,0 +1,24 @@ +/** + * https://github.com/module-federation/vite/issues/68 + */ +import { mkdirSync, writeFileSync } from 'fs'; +import path from 'pathe'; +import { getNormalizeModuleFederationOptions } from './normalizeModuleFederationOptions'; +import { packageNameEncode } from './packageNameUtils'; + + +export function getLocalSharedImportMapPath_windows() { + const { name } = getNormalizeModuleFederationOptions() + return path.resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap") +} +export function writeLocalSharedImportMap_windows(content: string) { + const localSharedImportMapId = getLocalSharedImportMapPath_windows() + createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content) +} +function createFile(filePath: string, content: string) { + const dir = path.dirname(filePath); + + mkdirSync(dir, { recursive: true }); + + writeFileSync(filePath, content); +} diff --git a/src/utils/normalizeModuleFederationOptions.ts b/src/utils/normalizeModuleFederationOptions.ts new file mode 100644 index 0000000..77fb85b --- /dev/null +++ b/src/utils/normalizeModuleFederationOptions.ts @@ -0,0 +1,318 @@ +import { SharedConfig } from '@module-federation/runtime/types'; + +export type RemoteEntryType = + | 'var' + | 'module' + | 'assign' + | 'assign-properties' + | 'this' + | 'window' + | 'self' + | 'global' + | 'commonjs' + | 'commonjs2' + | 'commonjs-module' + | 'commonjs-static' + | 'amd' + | 'amd-require' + | 'umd' + | 'umd2' + | 'jsonp' + | 'system' + | string; + +import * as path from 'pathe'; + +interface ExposesItem { + import: string; +} +export interface NormalizedShared { + [key: string]: ShareItem; +} + +function normalizeExposesItem(key: string, item: string | { import: string }): ExposesItem { + let importPath: string = ''; + if (typeof item === 'string') { + importPath = item; + } + if (typeof item === 'object') { + importPath = item.import; + } + return { + import: importPath, + }; +} + +function normalizeExposes( + exposes: Record | undefined +): Record { + if (!exposes) return {}; + const res: Record = {}; + Object.keys(exposes).forEach((key) => { + res[key] = normalizeExposesItem(key, exposes[key]); + }); + return res; +} + +export function normalizeRemotes( + remotes: + | Record< + string, + | string + | { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } + > + | undefined +): Record< + string, + { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } +> { + if (!remotes) return {}; + const result: Record< + string, + { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } + > = {}; + if (typeof remotes === 'object') { + Object.keys(remotes).forEach((key) => { + result[key] = normalizeRemoteItem(key, remotes[key]); + }); + } + return result; +} + +function normalizeRemoteItem( + key: string, + remote: + | string + | { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } +): { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } { + if (typeof remote === 'string') { + const [entryGlobalName] = remote.split('@'); + const entry = remote.replace(entryGlobalName + '@', ''); + return { + type: 'var', + name: key, + entry, + entryGlobalName, + shareScope: 'default', + }; + } + return Object.assign( + { + type: 'var', + name: key, + shareScope: 'default', + entryGlobalName: key, + }, + remote + ); +} + +export interface ShareItem { + name: string; + version: string | undefined; + scope: string; + from: string; + shareConfig: SharedConfig; +} + +function removePathFromNpmPackage(packageString: string): string { + // 匹配npm包名的正则表达式,忽略路径部分 + const regex = /^(?:@[^/]+\/)?[^/]+/; + + // 使用正则表达式匹配并提取包名 + const match = packageString.match(regex); + + // 返回匹配到的包名,如果没有匹配到则返回原字符串 + return match ? match[0] : packageString; +} + +function normalizeShareItem( + key: string, + shareItem: + | string + | { + name: string; + version?: string; + shareScope?: string; + singleton?: boolean; + requiredVersion?: string; + strictVersion?: boolean; + } +): ShareItem { + let version: string | undefined; + try { + version = require(path.join(removePathFromNpmPackage(key), 'package.json')).version; + } catch (e) { + console.log(e); + } + if (typeof shareItem === 'string') { + return { + name: shareItem, + version, + scope: 'default', + from: '', + shareConfig: { + singleton: false, + requiredVersion: `^${version}` || '*', + }, + }; + } + return { + name: key, + from: '', + version: shareItem.version || version, + scope: shareItem.shareScope || 'default', + shareConfig: { + singleton: shareItem.singleton || false, + requiredVersion: shareItem.requiredVersion || `^${version}` || '*', + strictVersion: !!shareItem.strictVersion, + }, + }; +} + +function normalizeShared( + shared: + | string[] + | Record< + string, + | string + | { + name?: string; + version?: string; + shareScope?: string; + singleton?: boolean; + requiredVersion?: string; + strictVersion?: boolean; + } + > + | undefined +): NormalizedShared { + if (!shared) return {}; + const result: NormalizedShared = {}; + if (Array.isArray(shared)) { + shared.forEach((key) => { + result[key] = normalizeShareItem(key, key); + }); + return result; + } + if (typeof shared === 'object') { + Object.keys(shared).forEach((key) => { + result[key] = normalizeShareItem(key, shared[key] as any); + }); + } + + return result; +} + +function normalizeLibrary(library: any): any { + if (!library) return undefined; + return library; +} + +interface ManifestOptions { + filePath?: string; + disableAssetsAnalyze?: boolean; + fileName?: string; +} +function normalizeManifest(manifest: ModuleFederationOptions['manifest'] = false) { + if (typeof manifest === "boolean") { + return manifest + } + return Object.assign({ + filePath: "", + disableAssetsAnalyze: false, + fileName: "mf-manifest.json" + }, manifest) +} + +export type ModuleFederationOptions = { + exposes?: Record | undefined; + filename?: string; + library?: any; + name: string; + // remoteType?: string; + remotes?: + | Record< + string, + | string + | { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } + > + | undefined; + runtime?: any; + shareScope?: string; + shared?: + | string[] + | Record< + string, + | string + | { + name?: string; + version?: string; + shareScope?: string; + singleton?: boolean; + requiredVersion?: string; + strictVersion?: boolean; + } + > + | undefined; + runtimePlugins?: string[]; + getPublicPath?: any; + implementation?: any; + manifest?: ManifestOptions | boolean; + dev?: any; + dts?: any; +}; + +export interface NormalizedModuleFederationOptions { + exposes: Record; + filename: string; + library: any; + name: string; + // remoteType: string; + remotes: Record< + string, + { type: string; name: string; entry: string; entryGlobalName: string; shareScope: string } + >; + runtime: any; + shareScope: string; + shared: NormalizedShared; + runtimePlugins: string[]; + getPublicPath: any; + implementation: any; + manifest: ManifestOptions | boolean; + dev: any; + dts: any; +} + +let config: NormalizedModuleFederationOptions +export function getNormalizeModuleFederationOptions() { + return config +} + +export function getNormalizeShareItem(key: string) { + const options = getNormalizeModuleFederationOptions() + const shareItem = options.shared[removePathFromNpmPackage(key)] || options.shared[removePathFromNpmPackage(key) + "/"] + return shareItem +} + +export function normalizeModuleFederationOptions( + options: ModuleFederationOptions +): NormalizedModuleFederationOptions { + return config = { + exposes: normalizeExposes(options.exposes), + filename: options.filename || 'remoteEntry-[hash]', + library: normalizeLibrary(options.library), + name: options.name, + // remoteType: options.remoteType, + remotes: normalizeRemotes(options.remotes), + runtime: options.runtime, + shareScope: options.shareScope || 'default', + shared: normalizeShared(options.shared), + runtimePlugins: options.runtimePlugins || [], + getPublicPath: options.getPublicPath, + implementation: options.implementation, + manifest: normalizeManifest(options.manifest), + dev: options.dev, + dts: options.dts, + }; +} diff --git a/src/utils/normalizeOptimizeDeps.ts b/src/utils/normalizeOptimizeDeps.ts new file mode 100644 index 0000000..d6f7b7a --- /dev/null +++ b/src/utils/normalizeOptimizeDeps.ts @@ -0,0 +1,20 @@ +import { UserConfig } from 'vite'; + +export interface Command { + command: string; +} + +export default { + name: 'normalizeOptimizeDeps', + config: (config: UserConfig, { command }: Command) => { + let { optimizeDeps } = config; + if (!optimizeDeps) { + config.optimizeDeps = {}; + optimizeDeps = config.optimizeDeps; + } + // todo: fix this workaround + optimizeDeps.force = true; + if (!optimizeDeps.include) optimizeDeps.include = []; + if (!optimizeDeps.needsInterop) optimizeDeps.needsInterop = []; + }, +}; diff --git a/src/utils/packageNameUtils.ts b/src/utils/packageNameUtils.ts new file mode 100644 index 0000000..906e9f3 --- /dev/null +++ b/src/utils/packageNameUtils.ts @@ -0,0 +1,55 @@ +/** + * Escaping rules: + * Convert using the format __${mapping}__, where _ and $ are not allowed in npm package names but can be used in variable names. + * @ => 1 + * / => 2 + * - => 3 + * . => 4 + */ + +/** + * Encodes a package name into a valid file name. + * @param {string} name - The package name, e.g., "@scope/xx-xx.xx". + * @returns {string} - The encoded file name. + */ +export function packageNameEncode(name: string) { + if (typeof name !== "string") throw new Error("A string package name is required"); + return name + .replace(/@/g, "_mf_0_") + .replace(/\//g, "_mf_1_") + .replace(/-/g, "_mf_2_") + .replace(/\./g, "_mf_3_"); +} + +/** + * Decodes an encoded file name back to the original package name. + * @param {string} encoded - The encoded file name, e.g., "_mf_0_scope_mf_1_xx_mf_2_xx_mf_3_xx". + * @returns {string} - The decoded package name. + */ +export function packageNameDecode(encoded: string) { + if (typeof encoded !== "string") throw new Error("A string encoded file name is required"); + return encoded + .replace(/_mf_0_/g, "@") + .replace(/_mf_1_/g, "/") + .replace(/_mf_2_/g, "-") + .replace(/_mf_3_/g, "."); +} + +export function removePathFromNpmPackage(packageString: string): string { + // Regular expression to match npm package name, ignoring path parts + const regex = /^(?:@[^/]+\/)?[^/]+/; + + // Use regular expression to match and extract the package name + const match = packageString.match(regex); + + // Return the matched package name or the original string if no match is found + return match ? match[0] : packageString; +} + +export function getExtFromNpmPackage(packageString: string) { + const pkgName = removePathFromNpmPackage(packageString) + const subpath = packageString.replace(pkgName, "") + const parts = subpath.split('.'); + const ext = parts.length > 1 ? "." + parts.pop() : undefined; + return ext +} \ No newline at end of file diff --git a/src/utils/wrapManualChunks.ts b/src/utils/wrapManualChunks.ts new file mode 100644 index 0000000..ea5c656 --- /dev/null +++ b/src/utils/wrapManualChunks.ts @@ -0,0 +1,16 @@ +export function wrapManualChunks(output: any, manualChunksCb: Function): void { + if (!output.manualChunks) output.manualChunks = {}; + const wrapManualChunks = + (original: any) => + (id: string, ...args: any[]) => { + const customRes = manualChunksCb?.(id, ...args) + if (customRes) return customRes + if (typeof original === 'function') { + return original(id, ...args); + } + if (typeof original === 'object' && original) { + return original[id]; + } + }; + output.manualChunks = wrapManualChunks(output.manualChunks); +} \ No newline at end of file diff --git a/src/virtualModules/index.ts b/src/virtualModules/index.ts new file mode 100644 index 0000000..4231dbd --- /dev/null +++ b/src/virtualModules/index.ts @@ -0,0 +1,22 @@ +import { writeHostAutoInit, writeLocalSharedImportMap } from "./virtualRemoteEntry"; +import { writeRuntimeInitStatus } from "./virtualRuntimeInitStatus"; + +export { + addUsedShares, generateLocalSharedImportMap, generateRemoteEntry, getHostAutoInitImportId, + getHostAutoInitPath, getLocalSharedImportMapPath, getUsedShares, + REMOTE_ENTRY_ID, writeLocalSharedImportMap +} from "./virtualRemoteEntry"; + +export { + addUsedRemote, generateRemotes, getRemoteVirtualModule, getUsedRemotesMap +} from "./virtualRemotes"; + +export { getLoadShareModulePath, getPreBuildLibImportId, LOAD_SHARE_TAG, PREBUILD_TAG, writeLoadShareModule, writePreBuildLibPath } from "./virtualShared_preBuild"; + +export { virtualRuntimeInitStatus } from "./virtualRuntimeInitStatus"; + +export function initVirtualModules() { + writeLocalSharedImportMap() + writeHostAutoInit() + writeRuntimeInitStatus() +} \ No newline at end of file diff --git a/src/virtualModules/virtualRemoteEntry.ts b/src/virtualModules/virtualRemoteEntry.ts new file mode 100644 index 0000000..20bd4fd --- /dev/null +++ b/src/virtualModules/virtualRemoteEntry.ts @@ -0,0 +1,173 @@ +import { getLocalSharedImportMapPath_windows, writeLocalSharedImportMap_windows } from '../utils/localSharedImportMap_windows'; +import { getNormalizeModuleFederationOptions, getNormalizeShareItem, NormalizedModuleFederationOptions } from '../utils/normalizeModuleFederationOptions'; +import VirtualModule from '../utils/VirtualModule'; +import { getUsedRemotesMap } from './virtualRemotes'; +import { virtualRuntimeInitStatus } from './virtualRuntimeInitStatus'; +import { getPreBuildLibImportId } from './virtualShared_preBuild'; + +let usedShares: Set = new Set() +export function getUsedShares() { + return usedShares +} +export function addUsedShares(pkg: string) { + usedShares.add(pkg) +} +// *** Expose locally provided shared modules here +const localSharedImportMapModule = new VirtualModule("localSharedImportMap") +export function getLocalSharedImportMapPath() { + if (process.platform === "win32") { + return getLocalSharedImportMapPath_windows() + } + return localSharedImportMapModule.getPath() +} +let prevSharedCount: number | undefined +export function writeLocalSharedImportMap() { + const sharedCount = getUsedShares().size + if (prevSharedCount !== sharedCount) { + prevSharedCount = sharedCount + if (process.platform === "win32") { + writeLocalSharedImportMap_windows(generateLocalSharedImportMap()) + } else { + localSharedImportMapModule.writeSync(generateLocalSharedImportMap(), true) + } + } +} +export function generateLocalSharedImportMap() { + const options = getNormalizeModuleFederationOptions() + return ` + const importMap = { + ${Array.from(getUsedShares()).map(pkg => ` + ${JSON.stringify(pkg)}: async () => { + let pkg = await import("${getPreBuildLibImportId(pkg)}") + return pkg + } + `).join(",")} + } + const usedShared = { + ${Array.from(getUsedShares()) + .map((key) => { + const shareItem = getNormalizeShareItem(key); + return ` + ${JSON.stringify(key)}: { + name: ${JSON.stringify(key)}, + version: ${JSON.stringify(shareItem.version)}, + scope: [${JSON.stringify(shareItem.scope)}], + loaded: false, + from: ${JSON.stringify(options.name)}, + async get () { + usedShared[${JSON.stringify(key)}].loaded = true + const {${JSON.stringify(key)}: pkgDynamicImport} = importMap + const res = await pkgDynamicImport() + const exportModule = {...res} + // All npm packages pre-built by vite will be converted to esm + Object.defineProperty(exportModule, "__esModule", { + value: true, + enumerable: false + }) + return function () { + return exportModule + } + }, + shareConfig: { + singleton: ${shareItem.shareConfig.singleton}, + requiredVersion: ${JSON.stringify(shareItem.shareConfig.requiredVersion)} + } + } + `; + }) + .join(',')} + } + const usedRemotes = [${Object.keys(getUsedRemotesMap()) + .map((key) => { + const remote = options.remotes[key]; + return ` + { + entryGlobalName: ${JSON.stringify(remote.entryGlobalName)}, + name: ${JSON.stringify(remote.name)}, + type: ${JSON.stringify(remote.type)}, + entry: ${JSON.stringify(remote.entry)}, + } + `; + }) + .join(',')} + ] + export { + usedShared, + usedRemotes + } + ` +} + +export const REMOTE_ENTRY_ID = 'virtual:mf-REMOTE_ENTRY_ID'; +export function generateRemoteEntry(options: NormalizedModuleFederationOptions): string { + const pluginImportNames = options.runtimePlugins.map((p, i) => [ + `$runtimePlugin_${i}`, + `import $runtimePlugin_${i} from "${p}";`, + ]); + + return ` + import {init as runtimeInit, loadRemote} from "@module-federation/runtime"; + ${pluginImportNames.map((item) => item[1]).join('\n')} + + const exposesMap = { + ${Object.keys(options.exposes) + .map((key) => { + return ` + ${JSON.stringify(key)}: async () => { + const importModule = await import(${JSON.stringify(options.exposes[key].import)}) + const exportModule = {} + Object.assign(exportModule, importModule) + Object.defineProperty(exportModule, "__esModule", { + value: true, + enumerable: false + }) + return exportModule + } + `; + }) + .join(',')} + } + import {usedShared, usedRemotes} from "${getLocalSharedImportMapPath()}" + import { + initResolve + } from "${virtualRuntimeInitStatus.getImportId()}" + async function init(shared = {}) { + const initRes = runtimeInit({ + name: ${JSON.stringify(options.name)}, + remotes: usedRemotes, + shared: usedShared, + plugins: [${pluginImportNames.map((item) => `${item[0]}()`).join(', ')}] + }); + initRes.initShareScopeMap('${options.shareScope}', shared); + initResolve(initRes) + return initRes + } + + function getExposes(moduleName) { + if (!(moduleName in exposesMap)) throw new Error(\`Module \${moduleName} does not exist in container.\`) + return (exposesMap[moduleName])().then(res => () => res) + } + export { + init, + getExposes as get + } + `; +} + +/** + * Inject entry file, automatically init when used as host, + * and will not inject remoteEntry + */ +const hostAutoInitModule = new VirtualModule("hostAutoInit") +export function writeHostAutoInit() { + hostAutoInitModule.writeSync(` + import {init} from "${REMOTE_ENTRY_ID}" + init() + `) +} +export function getHostAutoInitImportId() { + return hostAutoInitModule.getImportId(); +} +export function getHostAutoInitPath() { + return hostAutoInitModule.getPath(); +} \ No newline at end of file diff --git a/src/virtualModules/virtualRemotes.ts b/src/virtualModules/virtualRemotes.ts new file mode 100644 index 0000000..bb9664e --- /dev/null +++ b/src/virtualModules/virtualRemotes.ts @@ -0,0 +1,37 @@ +import VirtualModule from '../utils/VirtualModule'; +import { virtualRuntimeInitStatus } from './virtualRuntimeInitStatus'; + +const cacheRemoteMap: { + [remote: string]: VirtualModule +} = {} +export const LOAD_REMOTE_TAG = '__loadRemote__'; +export function getRemoteVirtualModule(remote: string, command: string) { + if (!cacheRemoteMap[remote]) { + cacheRemoteMap[remote] = new VirtualModule(remote, LOAD_REMOTE_TAG, ".js") + cacheRemoteMap[remote].writeSync(generateRemotes(remote, command)); + } + const virtual = cacheRemoteMap[remote] + return virtual; +} +const usedRemotesMap: Record> = { + // remote1: {remote1/App, remote1, remote1/Button} +}; +export function addUsedRemote(remoteKey: string, remoteModule: string) { + if (!usedRemotesMap[remoteKey]) usedRemotesMap[remoteKey] = new Set(); + usedRemotesMap[remoteKey].add(remoteModule); +} +export function getUsedRemotesMap() { + return usedRemotesMap; +} +export function generateRemotes( + id: string, + command: string +) { + return ` + const {loadRemote} = require("@module-federation/runtime") + const {initPromise} = require("${virtualRuntimeInitStatus.getImportId()}") + const res = initPromise.then(_ => loadRemote(${JSON.stringify(id)})) + const exportModule = ${command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await "}initPromise.then(_ => res) + module.exports = exportModule + ` +} diff --git a/src/virtualModules/virtualRuntimeInitStatus.ts b/src/virtualModules/virtualRuntimeInitStatus.ts new file mode 100644 index 0000000..ba59033 --- /dev/null +++ b/src/virtualModules/virtualRuntimeInitStatus.ts @@ -0,0 +1,16 @@ +import VirtualModule from "../utils/VirtualModule" +export const virtualRuntimeInitStatus = new VirtualModule("runtimeInit") +export function writeRuntimeInitStatus() { + virtualRuntimeInitStatus.writeSync(` + let initResolve, initReject + const initPromise = new Promise((re, rj) => { + initResolve = re + initReject = rj + }) + export { + initPromise, + initResolve, + initReject + } + `) +} \ No newline at end of file diff --git a/src/virtualModules/virtualShared_preBuild.ts b/src/virtualModules/virtualShared_preBuild.ts new file mode 100644 index 0000000..95b2c84 --- /dev/null +++ b/src/virtualModules/virtualShared_preBuild.ts @@ -0,0 +1,55 @@ +/** + * Even the resolveId hook cannot interfere with vite pre-build, + * and adding query parameter virtual modules will also fail. + * You can only proxy to the real file through alias + */ +/** +* shared will be proxied: +* 1. __prebuild__: export shareModule (pre-built source code of modules such as vue, react, etc.) +* 2. __loadShare__: load shareModule (mfRuntime.loadShare('vue')) +*/ + +import { ShareItem } from "../utils/normalizeModuleFederationOptions"; +import VirtualModule from "../utils/VirtualModule"; +import { virtualRuntimeInitStatus } from "./virtualRuntimeInitStatus"; + +// *** __prebuild__ +const preBuildCacheMap: Record = {} +export const PREBUILD_TAG = "__prebuild__" +export function writePreBuildLibPath(pkg: string) { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG) + preBuildCacheMap[pkg].writeSync("") +} +export function getPreBuildLibImportId(pkg: string): string { + if (!preBuildCacheMap[pkg]) preBuildCacheMap[pkg] = new VirtualModule(pkg, PREBUILD_TAG) + const importId = preBuildCacheMap[pkg].getImportId() + return importId +} + +// *** __loadShare__ +export const LOAD_SHARE_TAG = "__loadShare__" + +const loadShareCacheMap: Record = {} +export function getLoadShareModulePath(pkg: string): string { + if (!loadShareCacheMap[pkg]) loadShareCacheMap[pkg] = new VirtualModule(pkg, LOAD_SHARE_TAG, ".js") + const filepath = loadShareCacheMap[pkg].getPath() + return filepath +} +export function writeLoadShareModule(pkg: string, shareItem: ShareItem, command: string) { + loadShareCacheMap[pkg].writeSync(` + + ;() => import(${JSON.stringify(getPreBuildLibImportId(pkg))}).catch(() => {}); + // dev uses dynamic import to separate chunks + ${command !== "build" ? `;() => import(${JSON.stringify(pkg)}).catch(() => {});` : ''} + const {loadShare} = require("@module-federation/runtime") + const {initPromise} = require("${virtualRuntimeInitStatus.getImportId()}") + const res = initPromise.then(_ => loadShare(${JSON.stringify(pkg)}, { + customShareInfo: {shareConfig:{ + singleton: ${shareItem.shareConfig.singleton}, + strictVersion: ${shareItem.shareConfig.strictVersion}, + requiredVersion: ${JSON.stringify(shareItem.shareConfig.requiredVersion)} + }}})) + const exportModule = ${command !== "build" ? "/*mf top-level-await placeholder replacement mf*/" : "await "}res.then(factory => factory()) + module.exports = exportModule + `) +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..731e1c1 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "outDir": "./dist", + "module": "commonjs", + "target": "es6", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "declaration": true + }, + "include": ["src"] +}