diff --git a/apps/lynx-host/.gitignore b/apps/lynx-host/.gitignore
new file mode 100644
index 00000000000..2381db762fb
--- /dev/null
+++ b/apps/lynx-host/.gitignore
@@ -0,0 +1,16 @@
+# Local
+.DS_Store
+*.local
+*.log*
+
+# Dist
+node_modules
+dist/
+
+# IDE
+.vscode/*
+!.vscode/extensions.json
+.idea
+
+# TypeScript
+*.tsbuildinfo
diff --git a/apps/lynx-host/README.md b/apps/lynx-host/README.md
new file mode 100644
index 00000000000..412d3e2d006
--- /dev/null
+++ b/apps/lynx-host/README.md
@@ -0,0 +1,95 @@
+## Lynx Module Federation Demo
+
+This is a ReactLynx project with Module Federation support, demonstrating the `@module-federation/rspeedy-core-plugin`.
+
+## Features
+
+- ✅ **Lynx/Rspeedy Integration**: Built with `@lynx-js/rspeedy`
+- ✅ **Module Federation**: Uses `@module-federation/rsbuild-plugin` for build-time setup
+- ✅ **Runtime Plugin**: Implements `@module-federation/rspeedy-core-plugin` for native script loading
+- ✅ **Error Handling**: Comprehensive error handling and fallback components
+- ✅ **TypeScript**: Full TypeScript support with proper typing
+
+## Architecture
+
+### Build-time Configuration
+- **`lynx.config.ts`**: Configures Module Federation with `pluginModuleFederation`
+- **Shared Dependencies**: React, react-dom, and @lynx-js/react are shared between remotes
+- **Remote Loading**: Configured to load remote applications via manifest files
+
+### Runtime Configuration
+- **`src/module-federation-setup.ts`**: Initializes Module Federation runtime
+- **`RspeedyCorePlugin`**: Bridges MF runtime with Lynx's `nativeApp.loadScript()`
+- **Remote Loader**: Custom component for loading and displaying remote modules
+
+## Getting Started
+
+First, install the dependencies:
+
+```bash
+pnpm install
+```
+
+Then, run the development server:
+
+```bash
+pnpm run dev
+```
+
+Scan the QRCode in the terminal with your LynxExplorer App to see the result.
+
+## Module Federation Demo
+
+The app includes an interactive demo that showcases:
+
+1. **Plugin Status**: Shows that the rspeedy-core-plugin is active
+2. **Remote Loading**: Demonstrates loading remote modules (with error handling)
+3. **Fallback Behavior**: Shows how the system handles failed remote loads
+4. **Native Bridge**: Explains how the plugin bridges to Lynx's native script loading
+
+## Key Files
+
+- **`src/module-federation-setup.ts`**: MF runtime initialization with rspeedy plugin
+- **`src/components/ModuleFederationDemo.tsx`**: Interactive demo component
+- **`src/components/RemoteLoader.tsx`**: Generic remote module loader
+- **`lynx.config.ts`**: Build configuration with Module Federation
+
+## Adding Remote Applications
+
+To add actual remote applications:
+
+1. **Update `lynx.config.ts`**:
+```typescript
+pluginModuleFederation({
+ name: 'lynx-host',
+ remotes: {
+ 'my-remote': 'my-remote@http://localhost:3001/mf-manifest.json',
+ },
+ // ...
+})
+```
+
+2. **Update `src/module-federation-setup.ts`**:
+```typescript
+const mfInstance = createInstance({
+ name: 'lynx-host',
+ remotes: [{
+ name: 'my-remote',
+ entry: 'http://localhost:3001/mf-manifest.json',
+ }],
+ plugins: [RspeedyCorePlugin()],
+});
+```
+
+3. **Use in components**:
+```tsx
+
+```
+
+## Development
+
+You can start editing the page by modifying `src/App.tsx`. The page auto-updates as you edit the file.
diff --git a/apps/lynx-host/docs.md b/apps/lynx-host/docs.md
new file mode 100644
index 00000000000..d6d44cfbabb
--- /dev/null
+++ b/apps/lynx-host/docs.md
@@ -0,0 +1,58 @@
+• I dug into the dev artifacts to see what changes when we flip the Rspeedy MF plugin on.
+
+1. Run pnpm --filter lynx-host exec rspeedy build --mode development once with the plugin enabled and once with it commented out. That writes the dev
+ bundles to apps/lynx-host/dist/.rspeedy/main.
+2. Compare background.js between the two runs:
+
+ - Plugin enabled (apps/lynx-host/dist/.rspeedy/main/background.js, ~lines 25 530–25 610): the MF runtime injects the standard webpack JSONP loader:
+
+ **webpack_require**.hmrM = () => {
+ if (typeof fetch === "undefined")
+ throw new Error("No browser support: need fetch API");
+ return fetch(**webpack_require**.p + **webpack_require**.hmrF()).then(...)
+ };
+ var chunkLoadingGlobal = self["chunk_lynx_host"] = self["chunk_lynx_host"] || [];
+ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
+ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
+ self["webpackHotUpdatelynx_host"] = (chunkId, moreModules, runtime) => { ... };
+ That’s exactly what shows up in the Lynx runtime logs: self["webpackHotUpdatelynx_host"] ... and the fetch-based manifest loader. Lynx’s JS VM
+ doesn’t expose self or the browser fetch API inside the background thread, so processData, renderPage, and the hot-update globals all explode as
+ soon as the dev bundle executes.
+ soon as the dev bundle executes.
+
+ - Plugin disabled (apps/lynx-host/dist/.rspeedy/main/background.js, ~lines 20 820–20 980): the original chunk loader is still intact and uses
+ Lynx’s native APIs:
+
+ **webpack_require**.hmrM = function () {
+ return new Promise((resolve, reject) =>
+ lynx.requireModuleAsync(**webpack_require**.p + **webpack_require**.hmrF(), (err, ret) => {
+ if (err) return reject(err);
+ resolve(ret);
+ })
+ )['catch']((err) => { if (err.code !== 'MODULE_NOT_FOUND') throw err; });
+ };
+ **webpack_require**.hmrI.require = function(...) { ... }
+ **webpack_require**.hmrC.require = function(chunkIds, ...) { ... }
+
+ No JSONP callback, no self["chunk_lynx_host"], and HMR updates flow through lynx.requireModuleAsync, which is why dev mode works when the plugin
+ is off.
+
+So the regression isn’t the shared modules themselves—it’s that the stock ModuleFederationPlugin swaps in the browser chunk/HMR runtime (JSONP + self +
+fetch) even though Rspeedy’s target has chunkLoading: 'lynx'. We need the Rspeedy-specific plugin to preserve the Lynx chunk loader and manifest loader
+instead of letting the MF runtime fall back to JSONP.
+
+Next steps to unblock dev:
+
+1. Adjust the new @module-federation/rspeedy-plugin so that, after it calls pluginModuleFederation, it forces the Rspack config back to the Lynx chunk
+ loader. The simplest fix is to hook api.modifyRsbuildConfig and, for each environment, set:
+
+ bundlerConfig.output.chunkLoading = 'lynx';
+ bundlerConfig.output.hotUpdateGlobal = undefined;
+ bundlerConfig.plugins = bundlerConfig.plugins?.filter(p => p.name !== 'JsonpTemplatePlugin');
+ and re-inject the Lynx HMR runtime if necessary (the code that emits lynx.requireModuleAsync lives in the original Rspeedy template).
+ and re-inject the Lynx HMR runtime if necessary (the code that emits lynx.requireModuleAsync lives in the original Rspeedy template).
+
+2. Alternatively, tap into api.modifyBundlerChain and override the target to lynx-main/lynx-background before Federation runs so it can’t stomp the
+ loader.
+
+Once we keep the custom chunk loader in place, the dev bundle will go back to using lynx.requireModuleAsync and the self/fetch errors disappear.
diff --git a/apps/lynx-host/lynx.config.ts b/apps/lynx-host/lynx.config.ts
new file mode 100644
index 00000000000..c612d420ee5
--- /dev/null
+++ b/apps/lynx-host/lynx.config.ts
@@ -0,0 +1,45 @@
+import { defineConfig } from '@lynx-js/rspeedy';
+
+import { pluginQRCode } from '@lynx-js/qrcode-rsbuild-plugin';
+import { pluginReactLynx } from '@lynx-js/react-rsbuild-plugin';
+import { pluginTypeCheck } from '@rsbuild/plugin-type-check';
+import { pluginModuleFederationRspeedy } from '@module-federation/rspeedy-plugin';
+
+export default defineConfig({
+ server: {
+ host: '10.210.20.64',
+ },
+ dev: {
+ // Lynx main thread doesn't have `self`; disable HMR runtime to avoid `webpackHotUpdate` injections.
+ hmr: false,
+ },
+ plugins: [
+ pluginQRCode({
+ schema(url) {
+ // We use `?fullscreen=true` to open the page in LynxExplorer in full screen mode
+ return `${url}?fullscreen=true`;
+ },
+ }),
+ pluginReactLynx(),
+ // Test with remotes and shared config
+ pluginModuleFederationRspeedy({
+ name: 'lynx_host',
+ remotes: {
+ lynx_remote: 'lynx_remote@http://localhost:3001/mf-manifest.json',
+ },
+ // shared: {
+ // '@lynx-js/react': {
+ // singleton: true,
+ // eager: false,
+ // },
+ // },
+ dts: false,
+ dev: {
+ disableDynamicRemoteTypeHints: true,
+ disableLiveReload: true,
+ disableHotTypesReload: true,
+ },
+ }),
+ // pluginTypeCheck(), // Temporarily disabled for MF testing
+ ],
+});
diff --git a/apps/lynx-host/package.json b/apps/lynx-host/package.json
new file mode 100644
index 00000000000..0489fadc239
--- /dev/null
+++ b/apps/lynx-host/package.json
@@ -0,0 +1,34 @@
+{
+ "name": "lynx-host",
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "build": "rspeedy build",
+ "dev": "rspeedy dev",
+ "preview": "rspeedy preview",
+ "test": "vitest run"
+ },
+ "dependencies": {
+ "@lynx-js/react": "^0.112.6",
+ "@module-federation/enhanced": "workspace:*",
+ "@module-federation/rspeedy-core-plugin": "workspace:*",
+ "@module-federation/rspeedy-plugin": "workspace:*"
+ },
+ "devDependencies": {
+ "@lynx-js/preact-devtools": "^5.0.1-6664329",
+ "@lynx-js/qrcode-rsbuild-plugin": "^0.4.1",
+ "@lynx-js/react-rsbuild-plugin": "^0.10.13",
+ "@lynx-js/rspeedy": "^0.11.1",
+ "@lynx-js/types": "3.4.11",
+ "@module-federation/rsbuild-plugin": "workspace:*",
+ "@rsbuild/plugin-type-check": "1.2.4",
+ "@testing-library/jest-dom": "^6.8.0",
+ "@types/react": "^18.3.23",
+ "jsdom": "^26.1.0",
+ "typescript": "~5.9.2",
+ "vitest": "^3.2.4"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+}
diff --git a/apps/lynx-host/src/App.css b/apps/lynx-host/src/App.css
new file mode 100644
index 00000000000..650e423282b
--- /dev/null
+++ b/apps/lynx-host/src/App.css
@@ -0,0 +1,119 @@
+:root {
+ background-color: #000;
+ --color-text: #fff;
+}
+
+.Background {
+ position: fixed;
+ background: radial-gradient(
+ 71.43% 62.3% at 46.43% 36.43%,
+ rgba(18, 229, 229, 0) 15%,
+ rgba(239, 155, 255, 0.3) 56.35%,
+ #ff6448 100%
+ );
+ box-shadow: 0px 12.93px 28.74px 0px #ffd28db2 inset;
+ border-radius: 50%;
+ width: 200vw;
+ height: 200vw;
+ top: -60vw;
+ left: -14.27vw;
+ transform: rotate(15.25deg);
+}
+
+.App {
+ position: relative;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+text {
+ color: var(--color-text);
+}
+
+.Banner {
+ flex: 5;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ z-index: 100;
+}
+
+.Logo {
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 8px;
+}
+
+.Logo--react {
+ width: 100px;
+ height: 100px;
+ animation: Logo--spin infinite 20s linear;
+}
+
+.Logo--lynx {
+ width: 100px;
+ height: 100px;
+ animation: Logo--shake infinite 0.5s ease;
+}
+
+@keyframes Logo--spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes Logo--shake {
+ 0% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(0.9);
+ }
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.Content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.Arrow {
+ width: 24px;
+ height: 24px;
+}
+
+.Title {
+ font-size: 36px;
+ font-weight: 700;
+}
+
+.Subtitle {
+ font-style: italic;
+ font-size: 22px;
+ font-weight: 600;
+ margin-bottom: 8px;
+}
+
+.Description {
+ font-size: 20px;
+ color: rgba(255, 255, 255, 0.85);
+ margin: 15rpx;
+}
+
+.Hint {
+ font-size: 12px;
+ margin: 5px;
+ color: rgba(255, 255, 255, 0.65);
+}
diff --git a/apps/lynx-host/src/App.tsx b/apps/lynx-host/src/App.tsx
new file mode 100644
index 00000000000..5043e380222
--- /dev/null
+++ b/apps/lynx-host/src/App.tsx
@@ -0,0 +1,60 @@
+import { useCallback, useEffect, useState } from '@lynx-js/react';
+
+import './App.css';
+import arrow from './assets/arrow.png';
+import lynxLogo from './assets/lynx-logo.png';
+import reactLynxLogo from './assets/react-logo.png';
+import { SimpleMFDemo } from './components/SimpleMFDemo';
+
+export function App(props: { onRender?: () => void }) {
+ const [alterLogo, setAlterLogo] = useState(false);
+
+ useEffect(() => {
+ console.info('Hello, ReactLynx');
+ }, []);
+ props.onRender?.();
+
+ const onTap = useCallback(() => {
+ 'background only';
+ setAlterLogo((prevAlterLogo) => !prevAlterLogo);
+ }, []);
+
+ return (
+
+
+
+
+
+ {alterLogo ? (
+
+ ) : (
+
+ )}
+
+ React
+ on Lynx
+
+
+
+ Tap the logo and have fun!
+
+ Edit
+
+ {' src/App.tsx '}
+
+ to see updates!
+
+
+
+
+ {/* Module Federation Demo */}
+
+
+
+ );
+}
diff --git a/apps/lynx-host/src/__tests__/index.test.tsx b/apps/lynx-host/src/__tests__/index.test.tsx
new file mode 100644
index 00000000000..45cdc1b90e5
--- /dev/null
+++ b/apps/lynx-host/src/__tests__/index.test.tsx
@@ -0,0 +1,100 @@
+// Copyright 2024 The Lynx Authors. All rights reserved.
+// Licensed under the Apache License Version 2.0 that can be found in the
+// LICENSE file in the root directory of this source tree.
+import '@testing-library/jest-dom';
+import { expect, test, vi } from 'vitest';
+import { render, getQueriesForElement } from '@lynx-js/react/testing-library';
+
+import { App } from '../App.jsx';
+
+test('App', async () => {
+ const cb = vi.fn();
+
+ render(
+ {
+ cb(`__MAIN_THREAD__: ${__MAIN_THREAD__}`);
+ }}
+ />,
+ );
+ expect(cb).toBeCalledTimes(1);
+ expect(cb.mock.calls).toMatchInlineSnapshot(`
+ [
+ [
+ "__MAIN_THREAD__: false",
+ ],
+ ]
+ `);
+ expect(elementTree.root).toMatchInlineSnapshot(`
+
+
+
+
+
+
+
+
+
+ React
+
+
+ on Lynx
+
+
+
+
+
+ Tap the logo and have fun!
+
+
+ Edit
+
+ src/App.tsx
+
+ to see updates!
+
+
+
+
+
+
+ `);
+ const { findByText } = getQueriesForElement(elementTree.root!);
+ const element = await findByText('Tap the logo and have fun!');
+ expect(element).toBeInTheDocument();
+ expect(element).toMatchInlineSnapshot(`
+
+ Tap the logo and have fun!
+
+ `);
+});
diff --git a/apps/lynx-host/src/assets/arrow.png b/apps/lynx-host/src/assets/arrow.png
new file mode 100644
index 00000000000..435c8ad4d1e
Binary files /dev/null and b/apps/lynx-host/src/assets/arrow.png differ
diff --git a/apps/lynx-host/src/assets/lynx-logo.png b/apps/lynx-host/src/assets/lynx-logo.png
new file mode 100644
index 00000000000..fe44bf0e3c2
Binary files /dev/null and b/apps/lynx-host/src/assets/lynx-logo.png differ
diff --git a/apps/lynx-host/src/assets/react-logo.png b/apps/lynx-host/src/assets/react-logo.png
new file mode 100644
index 00000000000..4ad12a6b55c
Binary files /dev/null and b/apps/lynx-host/src/assets/react-logo.png differ
diff --git a/apps/lynx-host/src/components/SimpleMFDemo.tsx b/apps/lynx-host/src/components/SimpleMFDemo.tsx
new file mode 100644
index 00000000000..3bf18aabbad
--- /dev/null
+++ b/apps/lynx-host/src/components/SimpleMFDemo.tsx
@@ -0,0 +1,52 @@
+/**
+ * Module Federation demo - testing host configuration first
+ */
+import { useState } from '@lynx-js/react';
+import {
+ createInstance,
+ loadRemote,
+} from '@module-federation/enhanced/runtime';
+import RspeedyCorePlugin from '@module-federation/rspeedy-core-plugin';
+
+export function SimpleMFDemo() {
+ const [status] = useState('Host App Ready');
+ // Initialize Module Federation with the rspeedy runtime plugin
+ createInstance({
+ name: 'lynx_host',
+ remotes: [
+ // Add your remote applications here
+ {
+ name: 'remote-app',
+ entry: 'http://localhost:3001/mf-manifest.json',
+ },
+ ],
+ plugins: [
+ // Use the rspeedy core plugin to bridge with Lynx's native script loading
+ RspeedyCorePlugin(),
+ ],
+ });
+ const component = loadRemote('remote-app/SimpleMFDemo');
+ return (
+
+
+ 🏠 Module Federation Host + Rspeedy
+
+
+
+ Status: {status}
+
+
+
+
+ Host app is configured for Module Federation
+
+
+
+
+
+ Ready to load remote components from lynx_remote
+
+
+
+ );
+}
diff --git a/apps/lynx-host/src/index.tsx b/apps/lynx-host/src/index.tsx
new file mode 100644
index 00000000000..b7f8e882abe
--- /dev/null
+++ b/apps/lynx-host/src/index.tsx
@@ -0,0 +1,14 @@
+import '@lynx-js/preact-devtools';
+import '@lynx-js/react/debug';
+import { root } from '@lynx-js/react';
+/**
+ * Module Federation setup for Lynx/rspeedy
+ */
+
+import { App } from './App.jsx';
+
+root.render();
+
+if (import.meta.webpackHot) {
+ import.meta.webpackHot.accept();
+}
diff --git a/apps/lynx-host/src/rspeedy-env.d.ts b/apps/lynx-host/src/rspeedy-env.d.ts
new file mode 100644
index 00000000000..1c813a68b03
--- /dev/null
+++ b/apps/lynx-host/src/rspeedy-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/lynx-host/src/tsconfig.json b/apps/lynx-host/src/tsconfig.json
new file mode 100644
index 00000000000..ae332024420
--- /dev/null
+++ b/apps/lynx-host/src/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "rootDir": ".",
+
+ "jsx": "react-jsx",
+ "jsxImportSource": "@lynx-js/react",
+
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+
+ "noEmit": true
+ },
+ "include": ["./**/*.ts", "./**/*.tsx"]
+}
diff --git a/apps/lynx-host/tsconfig.json b/apps/lynx-host/tsconfig.json
new file mode 100644
index 00000000000..e22fb453d70
--- /dev/null
+++ b/apps/lynx-host/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "isolatedModules": true,
+ "verbatimModuleSyntax": true,
+
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+
+ "noEmit": true,
+ "rootDir": "./"
+ },
+ "references": [{ "path": "./tsconfig.node.json" }, { "path": "./src" }],
+ "files": []
+}
diff --git a/apps/lynx-host/tsconfig.node.json b/apps/lynx-host/tsconfig.node.json
new file mode 100644
index 00000000000..211c07de221
--- /dev/null
+++ b/apps/lynx-host/tsconfig.node.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+
+ // Rspeedy uses Node.js's module resolution
+ "module": "node16",
+ "moduleResolution": "node16",
+ "erasableSyntaxOnly": true,
+
+ // Node.js 18+
+ "lib": ["es2023"],
+ "target": "es2022",
+
+ "noEmit": true
+ },
+ "include": ["./lynx.config.ts", "./vitest.config.ts"]
+}
diff --git a/apps/lynx-host/vitest.config.ts b/apps/lynx-host/vitest.config.ts
new file mode 100644
index 00000000000..2bd6a9e4385
--- /dev/null
+++ b/apps/lynx-host/vitest.config.ts
@@ -0,0 +1,9 @@
+import { defineConfig, mergeConfig } from 'vitest/config';
+import { createVitestConfig } from '@lynx-js/react/testing-library/vitest-config';
+
+const defaultConfig = await createVitestConfig();
+const config = defineConfig({
+ test: {},
+});
+
+export default mergeConfig(defaultConfig, config);
diff --git a/apps/lynx-remote/.gitignore b/apps/lynx-remote/.gitignore
new file mode 100644
index 00000000000..2381db762fb
--- /dev/null
+++ b/apps/lynx-remote/.gitignore
@@ -0,0 +1,16 @@
+# Local
+.DS_Store
+*.local
+*.log*
+
+# Dist
+node_modules
+dist/
+
+# IDE
+.vscode/*
+!.vscode/extensions.json
+.idea
+
+# TypeScript
+*.tsbuildinfo
diff --git a/apps/lynx-remote/README.md b/apps/lynx-remote/README.md
new file mode 100644
index 00000000000..412d3e2d006
--- /dev/null
+++ b/apps/lynx-remote/README.md
@@ -0,0 +1,95 @@
+## Lynx Module Federation Demo
+
+This is a ReactLynx project with Module Federation support, demonstrating the `@module-federation/rspeedy-core-plugin`.
+
+## Features
+
+- ✅ **Lynx/Rspeedy Integration**: Built with `@lynx-js/rspeedy`
+- ✅ **Module Federation**: Uses `@module-federation/rsbuild-plugin` for build-time setup
+- ✅ **Runtime Plugin**: Implements `@module-federation/rspeedy-core-plugin` for native script loading
+- ✅ **Error Handling**: Comprehensive error handling and fallback components
+- ✅ **TypeScript**: Full TypeScript support with proper typing
+
+## Architecture
+
+### Build-time Configuration
+- **`lynx.config.ts`**: Configures Module Federation with `pluginModuleFederation`
+- **Shared Dependencies**: React, react-dom, and @lynx-js/react are shared between remotes
+- **Remote Loading**: Configured to load remote applications via manifest files
+
+### Runtime Configuration
+- **`src/module-federation-setup.ts`**: Initializes Module Federation runtime
+- **`RspeedyCorePlugin`**: Bridges MF runtime with Lynx's `nativeApp.loadScript()`
+- **Remote Loader**: Custom component for loading and displaying remote modules
+
+## Getting Started
+
+First, install the dependencies:
+
+```bash
+pnpm install
+```
+
+Then, run the development server:
+
+```bash
+pnpm run dev
+```
+
+Scan the QRCode in the terminal with your LynxExplorer App to see the result.
+
+## Module Federation Demo
+
+The app includes an interactive demo that showcases:
+
+1. **Plugin Status**: Shows that the rspeedy-core-plugin is active
+2. **Remote Loading**: Demonstrates loading remote modules (with error handling)
+3. **Fallback Behavior**: Shows how the system handles failed remote loads
+4. **Native Bridge**: Explains how the plugin bridges to Lynx's native script loading
+
+## Key Files
+
+- **`src/module-federation-setup.ts`**: MF runtime initialization with rspeedy plugin
+- **`src/components/ModuleFederationDemo.tsx`**: Interactive demo component
+- **`src/components/RemoteLoader.tsx`**: Generic remote module loader
+- **`lynx.config.ts`**: Build configuration with Module Federation
+
+## Adding Remote Applications
+
+To add actual remote applications:
+
+1. **Update `lynx.config.ts`**:
+```typescript
+pluginModuleFederation({
+ name: 'lynx-host',
+ remotes: {
+ 'my-remote': 'my-remote@http://localhost:3001/mf-manifest.json',
+ },
+ // ...
+})
+```
+
+2. **Update `src/module-federation-setup.ts`**:
+```typescript
+const mfInstance = createInstance({
+ name: 'lynx-host',
+ remotes: [{
+ name: 'my-remote',
+ entry: 'http://localhost:3001/mf-manifest.json',
+ }],
+ plugins: [RspeedyCorePlugin()],
+});
+```
+
+3. **Use in components**:
+```tsx
+
+```
+
+## Development
+
+You can start editing the page by modifying `src/App.tsx`. The page auto-updates as you edit the file.
diff --git a/apps/lynx-remote/lynx.config.ts b/apps/lynx-remote/lynx.config.ts
new file mode 100644
index 00000000000..ae2d7232428
--- /dev/null
+++ b/apps/lynx-remote/lynx.config.ts
@@ -0,0 +1,45 @@
+import { defineConfig } from '@lynx-js/rspeedy';
+
+import { pluginQRCode } from '@lynx-js/qrcode-rsbuild-plugin';
+import { pluginReactLynx } from '@lynx-js/react-rsbuild-plugin';
+import { pluginTypeCheck } from '@rsbuild/plugin-type-check';
+import { pluginModuleFederationRspeedy } from '@module-federation/rspeedy-plugin';
+
+export default defineConfig({
+ server: {
+ port: 3001,
+ host: '10.210.20.64',
+ },
+ dev: {
+ hmr: false,
+ },
+ plugins: [
+ pluginQRCode({
+ schema(url) {
+ // We use `?fullscreen=true` to open the page in LynxExplorer in full screen mode
+ return `${url}?fullscreen=true`;
+ },
+ }),
+ pluginReactLynx(),
+ pluginModuleFederationRspeedy({
+ name: 'lynx_remote',
+ filename: 'lynx_remote.container.bundle',
+ exposes: {
+ './SimpleMFDemo': './src/components/SimpleMFDemoCompiled.tsx',
+ },
+ // shared: {
+ // '@lynx-js/react': {
+ // singleton: true,
+ // eager: false,
+ // },
+ // },
+ dts: false,
+ dev: {
+ disableDynamicRemoteTypeHints: true,
+ disableLiveReload: true,
+ disableHotTypesReload: true,
+ },
+ }),
+ pluginTypeCheck(),
+ ],
+});
diff --git a/apps/lynx-remote/package.json b/apps/lynx-remote/package.json
new file mode 100644
index 00000000000..42d608fe030
--- /dev/null
+++ b/apps/lynx-remote/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "lynx_remote",
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "build": "rspeedy build",
+ "dev": "rspeedy dev",
+ "preview": "rspeedy preview",
+ "test": "vitest run"
+ },
+ "dependencies": {
+ "@lynx-js/react": "^0.112.6",
+ "@module-federation/enhanced": "workspace:*",
+ "@module-federation/rspeedy-core-plugin": "workspace:*",
+ "react": "^19.1.1"
+ },
+ "devDependencies": {
+ "@lynx-js/preact-devtools": "^5.0.1-6664329",
+ "@lynx-js/qrcode-rsbuild-plugin": "^0.4.1",
+ "@lynx-js/react-rsbuild-plugin": "^0.10.13",
+ "@lynx-js/rspeedy": "^0.11.1",
+ "@lynx-js/types": "3.4.11",
+ "@module-federation/rsbuild-plugin": "workspace:*",
+ "@module-federation/rspeedy-plugin": "workspace:*",
+ "@rsbuild/plugin-type-check": "1.2.4",
+ "@testing-library/jest-dom": "^6.8.0",
+ "@types/react": "^18.3.23",
+ "jsdom": "^26.1.0",
+ "typescript": "~5.9.2",
+ "vitest": "^3.2.4"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+}
diff --git a/apps/lynx-remote/src/App.css b/apps/lynx-remote/src/App.css
new file mode 100644
index 00000000000..650e423282b
--- /dev/null
+++ b/apps/lynx-remote/src/App.css
@@ -0,0 +1,119 @@
+:root {
+ background-color: #000;
+ --color-text: #fff;
+}
+
+.Background {
+ position: fixed;
+ background: radial-gradient(
+ 71.43% 62.3% at 46.43% 36.43%,
+ rgba(18, 229, 229, 0) 15%,
+ rgba(239, 155, 255, 0.3) 56.35%,
+ #ff6448 100%
+ );
+ box-shadow: 0px 12.93px 28.74px 0px #ffd28db2 inset;
+ border-radius: 50%;
+ width: 200vw;
+ height: 200vw;
+ top: -60vw;
+ left: -14.27vw;
+ transform: rotate(15.25deg);
+}
+
+.App {
+ position: relative;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+text {
+ color: var(--color-text);
+}
+
+.Banner {
+ flex: 5;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ z-index: 100;
+}
+
+.Logo {
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 8px;
+}
+
+.Logo--react {
+ width: 100px;
+ height: 100px;
+ animation: Logo--spin infinite 20s linear;
+}
+
+.Logo--lynx {
+ width: 100px;
+ height: 100px;
+ animation: Logo--shake infinite 0.5s ease;
+}
+
+@keyframes Logo--spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes Logo--shake {
+ 0% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(0.9);
+ }
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.Content {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+}
+
+.Arrow {
+ width: 24px;
+ height: 24px;
+}
+
+.Title {
+ font-size: 36px;
+ font-weight: 700;
+}
+
+.Subtitle {
+ font-style: italic;
+ font-size: 22px;
+ font-weight: 600;
+ margin-bottom: 8px;
+}
+
+.Description {
+ font-size: 20px;
+ color: rgba(255, 255, 255, 0.85);
+ margin: 15rpx;
+}
+
+.Hint {
+ font-size: 12px;
+ margin: 5px;
+ color: rgba(255, 255, 255, 0.65);
+}
diff --git a/apps/lynx-remote/src/App.tsx b/apps/lynx-remote/src/App.tsx
new file mode 100644
index 00000000000..5043e380222
--- /dev/null
+++ b/apps/lynx-remote/src/App.tsx
@@ -0,0 +1,60 @@
+import { useCallback, useEffect, useState } from '@lynx-js/react';
+
+import './App.css';
+import arrow from './assets/arrow.png';
+import lynxLogo from './assets/lynx-logo.png';
+import reactLynxLogo from './assets/react-logo.png';
+import { SimpleMFDemo } from './components/SimpleMFDemo';
+
+export function App(props: { onRender?: () => void }) {
+ const [alterLogo, setAlterLogo] = useState(false);
+
+ useEffect(() => {
+ console.info('Hello, ReactLynx');
+ }, []);
+ props.onRender?.();
+
+ const onTap = useCallback(() => {
+ 'background only';
+ setAlterLogo((prevAlterLogo) => !prevAlterLogo);
+ }, []);
+
+ return (
+
+
+
+
+
+ {alterLogo ? (
+
+ ) : (
+
+ )}
+
+ React
+ on Lynx
+
+
+
+ Tap the logo and have fun!
+
+ Edit
+
+ {' src/App.tsx '}
+
+ to see updates!
+
+
+
+
+ {/* Module Federation Demo */}
+
+
+
+ );
+}
diff --git a/apps/lynx-remote/src/__tests__/index.test.tsx b/apps/lynx-remote/src/__tests__/index.test.tsx
new file mode 100644
index 00000000000..45cdc1b90e5
--- /dev/null
+++ b/apps/lynx-remote/src/__tests__/index.test.tsx
@@ -0,0 +1,100 @@
+// Copyright 2024 The Lynx Authors. All rights reserved.
+// Licensed under the Apache License Version 2.0 that can be found in the
+// LICENSE file in the root directory of this source tree.
+import '@testing-library/jest-dom';
+import { expect, test, vi } from 'vitest';
+import { render, getQueriesForElement } from '@lynx-js/react/testing-library';
+
+import { App } from '../App.jsx';
+
+test('App', async () => {
+ const cb = vi.fn();
+
+ render(
+ {
+ cb(`__MAIN_THREAD__: ${__MAIN_THREAD__}`);
+ }}
+ />,
+ );
+ expect(cb).toBeCalledTimes(1);
+ expect(cb.mock.calls).toMatchInlineSnapshot(`
+ [
+ [
+ "__MAIN_THREAD__: false",
+ ],
+ ]
+ `);
+ expect(elementTree.root).toMatchInlineSnapshot(`
+
+
+
+
+
+
+
+
+
+ React
+
+
+ on Lynx
+
+
+
+
+
+ Tap the logo and have fun!
+
+
+ Edit
+
+ src/App.tsx
+
+ to see updates!
+
+
+
+
+
+
+ `);
+ const { findByText } = getQueriesForElement(elementTree.root!);
+ const element = await findByText('Tap the logo and have fun!');
+ expect(element).toBeInTheDocument();
+ expect(element).toMatchInlineSnapshot(`
+
+ Tap the logo and have fun!
+
+ `);
+});
diff --git a/apps/lynx-remote/src/assets/arrow.png b/apps/lynx-remote/src/assets/arrow.png
new file mode 100644
index 00000000000..435c8ad4d1e
Binary files /dev/null and b/apps/lynx-remote/src/assets/arrow.png differ
diff --git a/apps/lynx-remote/src/assets/lynx-logo.png b/apps/lynx-remote/src/assets/lynx-logo.png
new file mode 100644
index 00000000000..fe44bf0e3c2
Binary files /dev/null and b/apps/lynx-remote/src/assets/lynx-logo.png differ
diff --git a/apps/lynx-remote/src/assets/react-logo.png b/apps/lynx-remote/src/assets/react-logo.png
new file mode 100644
index 00000000000..4ad12a6b55c
Binary files /dev/null and b/apps/lynx-remote/src/assets/react-logo.png differ
diff --git a/apps/lynx-remote/src/components/SimpleMFDemo.tsx b/apps/lynx-remote/src/components/SimpleMFDemo.tsx
new file mode 100644
index 00000000000..0946b9bf436
--- /dev/null
+++ b/apps/lynx-remote/src/components/SimpleMFDemo.tsx
@@ -0,0 +1,37 @@
+/**
+ * Simple Module Federation demo for Lynx
+ * Uses Lynx components that should be transformed by pluginReactLynx
+ */
+import { useState } from '@lynx-js/react';
+
+const SimpleMFDemo = () => {
+ const [status] = useState('Plugin Active');
+
+ return (
+
+
+ 🚀 Module Federation + Rspeedy
+
+
+
+ Status: {status}
+
+
+
+
+ This app is configured with @module-federation/rspeedy-core-plugin
+
+
+
+
+
+ The plugin bridges Module Federation with Lynx's
+ nativeApp.loadScript()
+
+
+
+ );
+};
+
+export default SimpleMFDemo;
+export { SimpleMFDemo };
diff --git a/apps/lynx-remote/src/components/SimpleMFDemoCompiled.tsx b/apps/lynx-remote/src/components/SimpleMFDemoCompiled.tsx
new file mode 100644
index 00000000000..8079255040f
--- /dev/null
+++ b/apps/lynx-remote/src/components/SimpleMFDemoCompiled.tsx
@@ -0,0 +1,74 @@
+/**
+ * Pre-compiled version of SimpleMFDemo for Module Federation
+ * Uses React.createElement to avoid Lynx JSX transformation issues
+ */
+import { useState } from '@lynx-js/react';
+import * as React from 'react';
+
+export function SimpleMFDemo() {
+ const [status] = useState('Plugin Active');
+
+ return React.createElement(
+ 'view',
+ {
+ style: { padding: '20px' },
+ },
+ [
+ React.createElement(
+ 'text',
+ {
+ key: 'title',
+ style: { fontSize: '18px', fontWeight: 'bold', color: '#00b894' },
+ },
+ '🚀 Module Federation + Rspeedy',
+ ),
+
+ React.createElement(
+ 'view',
+ {
+ key: 'status',
+ style: { marginTop: '10px' },
+ },
+ React.createElement(
+ 'text',
+ {
+ style: { fontSize: '14px' },
+ },
+ `Status: ${status}`,
+ ),
+ ),
+
+ React.createElement(
+ 'view',
+ {
+ key: 'info1',
+ style: { marginTop: '10px' },
+ },
+ React.createElement(
+ 'text',
+ {
+ style: { fontSize: '12px', color: '#666' },
+ },
+ 'This app is configured with @module-federation/rspeedy-core-plugin',
+ ),
+ ),
+
+ React.createElement(
+ 'view',
+ {
+ key: 'info2',
+ style: { marginTop: '15px' },
+ },
+ React.createElement(
+ 'text',
+ {
+ style: { fontSize: '12px', color: '#666' },
+ },
+ "The plugin bridges Module Federation with Lynx's nativeApp.loadScript()",
+ ),
+ ),
+ ],
+ );
+}
+
+export default SimpleMFDemo;
diff --git a/apps/lynx-remote/src/components/SimpleMFDemoWrapper.js b/apps/lynx-remote/src/components/SimpleMFDemoWrapper.js
new file mode 100644
index 00000000000..2c5314d059e
--- /dev/null
+++ b/apps/lynx-remote/src/components/SimpleMFDemoWrapper.js
@@ -0,0 +1,9 @@
+/**
+ * Plain JS wrapper for the Lynx SimpleMFDemo component
+ * This avoids JSX transformation issues in Module Federation container
+ */
+import { SimpleMFDemo } from './SimpleMFDemo';
+
+// Export the component without JSX syntax
+export default SimpleMFDemo;
+export { SimpleMFDemo };
diff --git a/apps/lynx-remote/src/federation-exports.ts b/apps/lynx-remote/src/federation-exports.ts
new file mode 100644
index 00000000000..efa6e49e860
--- /dev/null
+++ b/apps/lynx-remote/src/federation-exports.ts
@@ -0,0 +1,21 @@
+/**
+ * Federation exports for lynx-remote
+ * This file makes components available globally after the bundle is loaded
+ * Similar to how Re.Pack handles component registration
+ */
+import { SimpleMFDemo } from './components/SimpleMFDemo';
+
+// Register components in global namespace for Module Federation access
+declare const globalThis: any;
+
+// Create a registry object
+if (!globalThis.lynx_remote_registry) {
+ globalThis.lynx_remote_registry = {};
+}
+
+// Register our components
+globalThis.lynx_remote_registry.SimpleMFDemo = SimpleMFDemo;
+
+// Also export for ES module access
+export { SimpleMFDemo };
+export default { SimpleMFDemo };
diff --git a/apps/lynx-remote/src/index.tsx b/apps/lynx-remote/src/index.tsx
new file mode 100644
index 00000000000..b4e459e6bfe
--- /dev/null
+++ b/apps/lynx-remote/src/index.tsx
@@ -0,0 +1,14 @@
+import '@lynx-js/preact-devtools';
+import '@lynx-js/react/debug';
+import { root } from '@lynx-js/react';
+
+// Import federation exports to register components globally
+import './federation-exports';
+
+import { App } from './App.jsx';
+
+root.render();
+
+if (import.meta.webpackHot) {
+ import.meta.webpackHot.accept();
+}
diff --git a/apps/lynx-remote/src/rspeedy-env.d.ts b/apps/lynx-remote/src/rspeedy-env.d.ts
new file mode 100644
index 00000000000..1c813a68b03
--- /dev/null
+++ b/apps/lynx-remote/src/rspeedy-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/lynx-remote/src/tsconfig.json b/apps/lynx-remote/src/tsconfig.json
new file mode 100644
index 00000000000..ae332024420
--- /dev/null
+++ b/apps/lynx-remote/src/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+ "rootDir": ".",
+
+ "jsx": "react-jsx",
+ "jsxImportSource": "@lynx-js/react",
+
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+
+ "noEmit": true
+ },
+ "include": ["./**/*.ts", "./**/*.tsx"]
+}
diff --git a/apps/lynx-remote/tsconfig.json b/apps/lynx-remote/tsconfig.json
new file mode 100644
index 00000000000..e22fb453d70
--- /dev/null
+++ b/apps/lynx-remote/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "isolatedModules": true,
+ "verbatimModuleSyntax": true,
+
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+
+ "noEmit": true,
+ "rootDir": "./"
+ },
+ "references": [{ "path": "./tsconfig.node.json" }, { "path": "./src" }],
+ "files": []
+}
diff --git a/apps/lynx-remote/tsconfig.node.json b/apps/lynx-remote/tsconfig.node.json
new file mode 100644
index 00000000000..211c07de221
--- /dev/null
+++ b/apps/lynx-remote/tsconfig.node.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./tsconfig.json",
+ "compilerOptions": {
+ "composite": true,
+
+ // Rspeedy uses Node.js's module resolution
+ "module": "node16",
+ "moduleResolution": "node16",
+ "erasableSyntaxOnly": true,
+
+ // Node.js 18+
+ "lib": ["es2023"],
+ "target": "es2022",
+
+ "noEmit": true
+ },
+ "include": ["./lynx.config.ts", "./vitest.config.ts"]
+}
diff --git a/apps/lynx-remote/vitest.config.ts b/apps/lynx-remote/vitest.config.ts
new file mode 100644
index 00000000000..2bd6a9e4385
--- /dev/null
+++ b/apps/lynx-remote/vitest.config.ts
@@ -0,0 +1,9 @@
+import { defineConfig, mergeConfig } from 'vitest/config';
+import { createVitestConfig } from '@lynx-js/react/testing-library/vitest-config';
+
+const defaultConfig = await createVitestConfig();
+const config = defineConfig({
+ test: {},
+});
+
+export default mergeConfig(defaultConfig, config);
diff --git a/packages/rspeedy-core-plugin/package.json b/packages/rspeedy-core-plugin/package.json
new file mode 100644
index 00000000000..93bd6ba2927
--- /dev/null
+++ b/packages/rspeedy-core-plugin/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@module-federation/rspeedy-core-plugin",
+ "version": "0.0.0",
+ "type": "module",
+ "license": "MIT",
+ "sideEffects": false,
+ "main": "./src/index.js",
+ "types": "./src/index.d.ts",
+ "files": [
+ "src"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/module-federation/core",
+ "directory": "packages/rspeedy-core-plugin"
+ },
+ "peerDependencies": {
+ "@module-federation/runtime": "workspace:*",
+ "@module-federation/runtime-core": "workspace:*"
+ }
+}
diff --git a/packages/rspeedy-core-plugin/src/index.d.ts b/packages/rspeedy-core-plugin/src/index.d.ts
new file mode 100644
index 00000000000..fe18ba75cd5
--- /dev/null
+++ b/packages/rspeedy-core-plugin/src/index.d.ts
@@ -0,0 +1,7 @@
+import type { ModuleFederationRuntimePlugin } from '@module-federation/runtime';
+
+/**
+ * Runtime plugin that makes Module Federation use Lynx's native chunk loader
+ * (`lynx.requireModuleAsync`) instead of DOM-based JSONP/script tags.
+ */
+export default function RspeedyCorePlugin(): ModuleFederationRuntimePlugin;
diff --git a/packages/rspeedy-core-plugin/src/index.js b/packages/rspeedy-core-plugin/src/index.js
new file mode 100644
index 00000000000..492a09cfd34
--- /dev/null
+++ b/packages/rspeedy-core-plugin/src/index.js
@@ -0,0 +1,48 @@
+const pluginName = '@module-federation/rspeedy-core-plugin';
+
+/**
+ * Runtime plugin that loads remote entries via Lynx native loaders instead of DOM script tags.
+ * It avoids the JSONP/script-path entirely and delegates to `lynx.requireModuleAsync`, which
+ * is the same primitive used by rspeedy's chunk loader for background and main-thread bundles.
+ */
+export default function RspeedyCorePlugin() {
+ return {
+ name: pluginName,
+ /*
+ * Intercept remote entry loading and use lynx.requireModuleAsync.
+ * If lynx is not available we fall back to the default runtime behaviour.
+ */
+ async loadEntry({ remoteInfo }) {
+ const lynx = globalThis?.lynx;
+ if (!lynx || typeof lynx.requireModuleAsync !== 'function') {
+ return;
+ }
+
+ const entryUrl = remoteInfo.entry;
+ const entryGlobalName =
+ remoteInfo.entryGlobalName || remoteInfo.name || 'remote';
+
+ const exportsFromRequire = await new Promise((resolve, reject) => {
+ try {
+ lynx.requireModuleAsync(entryUrl, (err, mod) => {
+ if (err) {
+ reject(err);
+ return;
+ }
+ resolve(mod);
+ });
+ } catch (err) {
+ reject(err);
+ }
+ });
+
+ // Prefer the module returned by requireModuleAsync, but also
+ // check the global init hook that MF containers normally register.
+ return (
+ exportsFromRequire ||
+ globalThis[entryGlobalName] ||
+ globalThis[remoteInfo.name]
+ );
+ },
+ };
+}
diff --git a/packages/rspeedy-plugin/package.json b/packages/rspeedy-plugin/package.json
new file mode 100644
index 00000000000..8d037a0b85d
--- /dev/null
+++ b/packages/rspeedy-plugin/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "@module-federation/rspeedy-plugin",
+ "version": "0.0.0",
+ "type": "module",
+ "license": "MIT",
+ "sideEffects": false,
+ "main": "./src/index.js",
+ "types": "./src/index.d.ts",
+ "files": [
+ "src"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/module-federation/core",
+ "directory": "packages/rspeedy-plugin"
+ },
+ "peerDependencies": {
+ "@module-federation/rsbuild-plugin": "workspace:*",
+ "@module-federation/rspeedy-core-plugin": "workspace:*"
+ }
+}
diff --git a/packages/rspeedy-plugin/src/index.d.ts b/packages/rspeedy-plugin/src/index.d.ts
new file mode 100644
index 00000000000..b4aa4359b5c
--- /dev/null
+++ b/packages/rspeedy-plugin/src/index.d.ts
@@ -0,0 +1,13 @@
+import type {
+ ModuleFederationOptions,
+ RsbuildPlugin,
+} from '@module-federation/rsbuild-plugin';
+
+export declare function pluginModuleFederationRspeedy(
+ options?: ModuleFederationOptions & {
+ runtimePlugins?: Array | string;
+ environment?: string;
+ },
+): RsbuildPlugin;
+
+export default pluginModuleFederationRspeedy;
diff --git a/packages/rspeedy-plugin/src/index.js b/packages/rspeedy-plugin/src/index.js
new file mode 100644
index 00000000000..3696cda3af2
--- /dev/null
+++ b/packages/rspeedy-plugin/src/index.js
@@ -0,0 +1,107 @@
+import { createRequire } from 'node:module';
+import { fileURLToPath } from 'node:url';
+import { pluginModuleFederation } from '@module-federation/rsbuild-plugin';
+import { normalizeRuntimePlugins } from './utils.js';
+
+const require = createRequire(import.meta.url);
+const MF_RUNTIME_PACKAGES = [
+ '@module-federation/runtime',
+ '@module-federation/runtime-core',
+ '@module-federation/sdk',
+ '@module-federation/webpack-bundler-runtime',
+];
+
+/**
+ * Rspeedy-friendly wrapper around the standard Rsbuild Module Federation plugin.
+ *
+ * - Forces the Lynx runtime plugin so remotes load through `lynx.requireModuleAsync`
+ * instead of DOM JSONP.
+ * - Leaves user-provided MF options untouched.
+ */
+export function pluginModuleFederationRspeedy(options = {}) {
+ const { runtimePlugins, ...rest } = options;
+
+ const mfPlugin = pluginModuleFederation(
+ {
+ ...rest,
+ runtimePlugins: normalizeRuntimePlugins(runtimePlugins),
+ },
+ {
+ // Rspeedy uses a single environment; keeping the default environment name
+ // ensures manifests line up with the runtime.
+ environment: rest.environment || 'mf',
+ },
+ );
+
+ // Wrap the original plugin so we can add Lynx-specific transpilation hints.
+ return {
+ name: 'rspeedy:module-federation',
+ setup(api) {
+ api.modifyBundlerChain((chain) => {
+ const mfRuntimeRule = chain.module.rule('rspeedy:mf-runtime-transpile');
+ mfRuntimeRule
+ .test(
+ /([\\/]@module-federation[\\/](runtime|runtime-core|sdk|webpack-bundler-runtime)[\\/]|[\\/]webpack-bundler-runtime[\\/]).*\\.(js|cjs|mjs)$/,
+ )
+ .use('swc')
+ .loader('builtin:swc-loader')
+ .options({
+ jsc: {
+ parser: { syntax: 'ecmascript' },
+ target: 'es2019',
+ },
+ });
+ });
+
+ // Ensure the MF runtime libraries are transpiled for the main-thread bundle
+ // so operators like `??=` are down-leveled for Lepus.
+ api.modifyRsbuildConfig((config, { mergeRsbuildConfig }) => {
+ const mfRuntimeDirs =
+ MF_RUNTIME_PACKAGES.map(pathDirOf).filter(Boolean);
+
+ const include = Array.isArray(config.source?.include)
+ ? config.source.include.slice()
+ : config.source?.include
+ ? [config.source.include]
+ : [];
+
+ mfRuntimeDirs.forEach((dir) => {
+ if (!include.includes(dir)) {
+ include.push(dir);
+ }
+ });
+
+ return mergeRsbuildConfig(config, {
+ source: {
+ include,
+ },
+ });
+ });
+
+ mfPlugin.setup(api);
+ },
+ };
+}
+
+export default pluginModuleFederationRspeedy;
+
+function pathDirOf(pkgName) {
+ try {
+ const pkgPath = require.resolve(`${pkgName}/package.json`);
+ return pkgPath && pkgPath.replace(/\/package\.json$/, '');
+ } catch {
+ if (pkgName === '@module-federation/webpack-bundler-runtime') {
+ // Workspace fallback when the bundler runtime is linked but not published.
+ try {
+ const pkgUrl = new URL(
+ '../../webpack-bundler-runtime',
+ import.meta.url,
+ );
+ return fileURLToPath(pkgUrl);
+ } catch {
+ // ignore
+ }
+ }
+ return undefined;
+ }
+}
diff --git a/packages/rspeedy-plugin/src/utils.js b/packages/rspeedy-plugin/src/utils.js
new file mode 100644
index 00000000000..0d099b8e08a
--- /dev/null
+++ b/packages/rspeedy-plugin/src/utils.js
@@ -0,0 +1,19 @@
+import { createRequire } from 'node:module';
+
+const require = createRequire(import.meta.url);
+const RSPEEDY_RUNTIME_PLUGIN = require.resolve(
+ '@module-federation/rspeedy-core-plugin',
+);
+
+export function normalizeRuntimePlugins(runtimePlugins = []) {
+ const normalized = Array.isArray(runtimePlugins)
+ ? runtimePlugins.filter(Boolean)
+ : [runtimePlugins];
+
+ // Ensure the rspeedy runtime plugin is always first so it can short-circuit DOM script creation.
+ if (!normalized.includes(RSPEEDY_RUNTIME_PLUGIN)) {
+ normalized.unshift(RSPEEDY_RUNTIME_PLUGIN);
+ }
+
+ return normalized;
+}
diff --git a/packages/webpack-bundler-runtime/src/updateOptions.ts b/packages/webpack-bundler-runtime/src/updateOptions.ts
index 2d0fa498a85..f337f2c7798 100644
--- a/packages/webpack-bundler-runtime/src/updateOptions.ts
+++ b/packages/webpack-bundler-runtime/src/updateOptions.ts
@@ -160,7 +160,9 @@ export function updateRemoteOptions(options: RemotesOptions) {
}
if (!idToRemoteMap[moduleId] && remoteInfos[data.remoteName]) {
const items = remoteInfos[data.remoteName];
- idToRemoteMap[moduleId] ||= [];
+ if (!idToRemoteMap[moduleId]) {
+ idToRemoteMap[moduleId] = [];
+ }
items.forEach((item) => {
if (!idToRemoteMap[moduleId].includes(item)) {
idToRemoteMap[moduleId].push(item);
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 12d1f391818..9567b844a24 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -196,7 +196,7 @@ importers:
version: 11.0.3(semantic-release@25.0.1)
'@storybook/addon-docs':
specifier: 9.0.17
- version: 9.0.17(@types/react@18.3.11)(storybook@9.0.9)
+ version: 9.0.17(@types/react@18.3.27)(storybook@9.0.9)
'@storybook/nextjs':
specifier: 9.0.9
version: 9.0.9(@rspack/core@1.3.9)(@swc/core@1.7.26)(esbuild@0.25.0)(next@14.2.16)(react-dom@18.3.1)(react@18.3.1)(storybook@9.0.9)(typescript@5.8.3)(webpack-cli@5.1.4)(webpack@5.98.0)
@@ -223,7 +223,7 @@ importers:
version: 0.5.9(tailwindcss@3.4.13)
'@testing-library/react':
specifier: 16.1.0
- version: 16.1.0(@testing-library/dom@10.4.1)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)
+ version: 16.1.0(@testing-library/dom@10.4.1)(@types/react@18.3.27)(react-dom@18.3.1)(react@18.3.1)
'@types/adm-zip':
specifier: 0.5.5
version: 0.5.5
@@ -689,6 +689,113 @@ importers:
specifier: ^4.8.2
version: 4.9.5
+ apps/lynx-host:
+ dependencies:
+ '@lynx-js/react':
+ specifier: ^0.112.6
+ version: 0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27)
+ '@module-federation/enhanced':
+ specifier: workspace:*
+ version: link:../../packages/enhanced
+ '@module-federation/rspeedy-core-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rspeedy-core-plugin
+ '@module-federation/rspeedy-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rspeedy-plugin
+ devDependencies:
+ '@lynx-js/preact-devtools':
+ specifier: ^5.0.1-6664329
+ version: 5.0.1-cf9aef5
+ '@lynx-js/qrcode-rsbuild-plugin':
+ specifier: ^0.4.1
+ version: 0.4.3
+ '@lynx-js/react-rsbuild-plugin':
+ specifier: ^0.10.13
+ version: 0.10.14(@lynx-js/react@0.112.6)(webpack@5.98.0)
+ '@lynx-js/rspeedy':
+ specifier: ^0.11.1
+ version: 0.11.9(@rspack/core@1.3.9)(esbuild@0.25.0)(typescript@5.9.3)(webpack@5.98.0)
+ '@lynx-js/types':
+ specifier: 3.4.11
+ version: 3.4.11
+ '@module-federation/rsbuild-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rsbuild-plugin
+ '@rsbuild/plugin-type-check':
+ specifier: 1.2.4
+ version: 1.2.4(@rsbuild/core@1.4.12)(@rspack/core@1.3.9)(typescript@5.9.3)
+ '@testing-library/jest-dom':
+ specifier: ^6.8.0
+ version: 6.9.1
+ '@types/react':
+ specifier: ^18.3.23
+ version: 18.3.27
+ jsdom:
+ specifier: ^26.1.0
+ version: 26.1.0
+ typescript:
+ specifier: ~5.9.2
+ version: 5.9.3
+ vitest:
+ specifier: ^3.2.4
+ version: 3.2.4(@types/node@18.16.9)(@vitest/ui@1.6.0)(jsdom@26.1.0)(less@4.4.2)(msw@1.3.4)(stylus@0.64.0)
+
+ apps/lynx-remote:
+ dependencies:
+ '@lynx-js/react':
+ specifier: ^0.112.6
+ version: 0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27)
+ '@module-federation/enhanced':
+ specifier: workspace:*
+ version: link:../../packages/enhanced
+ '@module-federation/rspeedy-core-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rspeedy-core-plugin
+ react:
+ specifier: ^19.1.1
+ version: 19.1.1
+ devDependencies:
+ '@lynx-js/preact-devtools':
+ specifier: ^5.0.1-6664329
+ version: 5.0.1-cf9aef5
+ '@lynx-js/qrcode-rsbuild-plugin':
+ specifier: ^0.4.1
+ version: 0.4.3
+ '@lynx-js/react-rsbuild-plugin':
+ specifier: ^0.10.13
+ version: 0.10.14(@lynx-js/react@0.112.6)(webpack@5.98.0)
+ '@lynx-js/rspeedy':
+ specifier: ^0.11.1
+ version: 0.11.9(@rspack/core@1.3.9)(esbuild@0.25.0)(typescript@5.9.3)(webpack@5.98.0)
+ '@lynx-js/types':
+ specifier: 3.4.11
+ version: 3.4.11
+ '@module-federation/rsbuild-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rsbuild-plugin
+ '@module-federation/rspeedy-plugin':
+ specifier: workspace:*
+ version: link:../../packages/rspeedy-plugin
+ '@rsbuild/plugin-type-check':
+ specifier: 1.2.4
+ version: 1.2.4(@rsbuild/core@1.4.12)(@rspack/core@1.3.9)(typescript@5.9.3)
+ '@testing-library/jest-dom':
+ specifier: ^6.8.0
+ version: 6.9.1
+ '@types/react':
+ specifier: ^18.3.23
+ version: 18.3.27
+ jsdom:
+ specifier: ^26.1.0
+ version: 26.1.0
+ typescript:
+ specifier: ~5.9.2
+ version: 5.9.3
+ vitest:
+ specifier: ^3.2.4
+ version: 3.2.4(@types/node@18.16.9)(@vitest/ui@1.6.0)(jsdom@26.1.0)(less@4.4.2)(msw@1.3.4)(stylus@0.64.0)
+
apps/manifest-demo/3009-webpack-provider:
dependencies:
antd:
@@ -2472,7 +2579,7 @@ importers:
version: 1.0.6(@rsbuild/core@1.3.21)
'@rslib/core':
specifier: ^0.9.0
- version: 0.9.0(typescript@5.8.3)
+ version: 0.9.0(typescript@5.9.3)
'@types/react':
specifier: ^18.3.11
version: 18.3.11
@@ -2490,10 +2597,10 @@ importers:
version: 8.4.2(prettier@3.3.3)
storybook-addon-rslib:
specifier: ^1.0.1
- version: 1.0.1(@rsbuild/core@1.3.21)(@rslib/core@0.9.0)(storybook-builder-rsbuild@2.1.2)(typescript@5.8.3)
+ version: 1.0.1(@rsbuild/core@1.3.21)(@rslib/core@0.9.0)(storybook-builder-rsbuild@2.1.2)(typescript@5.9.3)
storybook-react-rsbuild:
specifier: ^1.0.1
- version: 1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.40.0)(storybook@8.4.2)(typescript@5.8.3)(webpack@5.98.0)
+ version: 1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.40.0)(storybook@8.4.2)(typescript@5.9.3)(webpack@5.98.0)
apps/runtime-demo/3005-runtime-host:
dependencies:
@@ -3064,7 +3171,7 @@ importers:
version: 18.3.1(react@18.3.1)
ts-jest:
specifier: 29.0.1
- version: 29.0.1(@babel/core@7.28.5)(babel-jest@29.7.0)(esbuild@0.25.0)(jest@29.7.0)(typescript@5.8.3)
+ version: 29.0.1(@babel/core@7.28.5)(babel-jest@29.7.0)(esbuild@0.25.0)(jest@29.7.0)(typescript@5.9.3)
webpack:
specifier: 5.75.0
version: 5.75.0(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
@@ -3658,6 +3765,24 @@ importers:
specifier: ^1.0.2
version: 1.0.8(@swc/helpers@0.5.13)
+ packages/rspeedy-core-plugin:
+ dependencies:
+ '@module-federation/runtime':
+ specifier: workspace:*
+ version: link:../runtime
+ '@module-federation/runtime-core':
+ specifier: workspace:*
+ version: link:../runtime-core
+
+ packages/rspeedy-plugin:
+ dependencies:
+ '@module-federation/rsbuild-plugin':
+ specifier: workspace:*
+ version: link:../rsbuild-plugin
+ '@module-federation/rspeedy-core-plugin':
+ specifier: workspace:*
+ version: link:../rspeedy-core-plugin
+
packages/rspress-plugin:
dependencies:
'@module-federation/enhanced':
@@ -3749,10 +3874,10 @@ importers:
version: link:../sdk
'@nx/react':
specifier: '>= 16.0.0'
- version: 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(eslint@8.57.1)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack@5.94.0)
+ version: 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(eslint@8.57.1)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack@5.94.0)
'@nx/webpack':
specifier: '>= 16.0.0'
- version: 20.1.1(@rspack/core@1.3.9)(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(esbuild@0.24.0)(html-webpack-plugin@5.6.2)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack-cli@5.1.4)
+ version: 20.1.1(@rspack/core@1.3.9)(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(esbuild@0.24.0)(html-webpack-plugin@5.6.2)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack-cli@5.1.4)
devDependencies:
'@module-federation/utilities':
specifier: workspace:*
@@ -4064,6 +4189,16 @@ packages:
- '@types/react'
dev: false
+ /@asamuzakjp/css-color@3.2.0:
+ resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
+ dependencies:
+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+ lru-cache: 10.4.3
+ dev: true
+
/@ast-grep/napi-darwin-arm64@0.35.0:
resolution: {integrity: sha512-T+MN4Oinc+sXjXCIHzfxDDWY7r2pKgPxM6zVeVlkMTrJV2mJtyKYBIS+CABhRM6kflps2T2I6l4DGaKV/8Ym9w==}
engines: {node: '>= 10'}
@@ -4270,6 +4405,15 @@ packages:
'@babel/highlight': 7.25.7
picocolors: 1.1.1
+ /@babel/code-frame@7.26.2:
+ resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+ dev: true
+
/@babel/code-frame@7.27.1:
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
@@ -7929,6 +8073,35 @@ packages:
'@csstools/css-tokenizer': 2.4.1
dev: true
+ /@csstools/color-helpers@5.1.0:
+ resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.5
+ '@csstools/css-tokenizer': ^3.0.4
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+ dev: true
+
+ /@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.5
+ '@csstools/css-tokenizer': ^3.0.4
+ dependencies:
+ '@csstools/color-helpers': 5.1.0
+ '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5)(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-tokenizer': 3.0.4
+ dev: true
+
/@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1):
resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==}
engines: {node: ^14 || ^16 || >=18}
@@ -7938,11 +8111,25 @@ packages:
'@csstools/css-tokenizer': 2.4.1
dev: true
+ /@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4):
+ resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^3.0.4
+ dependencies:
+ '@csstools/css-tokenizer': 3.0.4
+ dev: true
+
/@csstools/css-tokenizer@2.4.1:
resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==}
engines: {node: ^14 || ^16 || >=18}
dev: true
+ /@csstools/css-tokenizer@3.0.4:
+ resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
+ engines: {node: '>=18'}
+ dev: true
+
/@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.2):
resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==}
engines: {node: ^14 || ^16 || >=18}
@@ -9885,6 +10072,9 @@ packages:
react: 19.0.0-rc-cd22717c-20241013
dev: false
+ /@hongzhiyuan/preact@10.24.0-00213bad:
+ resolution: {integrity: sha512-bHWp4ZDK5ZimcY+bTWw3S3xGiB8eROpZj0RK3FClNIaTOajb0b11CsT3K+pdeakgPgq1jWN3T2e2rfrPm40JsQ==}
+
/@humanwhocodes/config-array@0.12.3:
resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==}
engines: {node: '>=10.10.0'}
@@ -10581,6 +10771,208 @@ packages:
lodash: 4.17.21
react: 18.3.1
+ /@lynx-js/cache-events-webpack-plugin@0.0.2:
+ resolution: {integrity: sha512-N/SjplWsDznC+Kqg0iZGJLi08l5/ezWxHGj3X+GdXhmh3EGI37b6r3wPtjkXpalb9KmZcA3j1vUJDTcVI5Weqw==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@lynx-js/webpack-runtime-globals': 0.0.6
+ dev: true
+
+ /@lynx-js/chunk-loading-webpack-plugin@0.3.3:
+ resolution: {integrity: sha512-RS399O/03gpBFbztnsRlwarkMoS2bSVWL8YUnEwy/w9rKewO7CqhX0IUFUZXrzRv0JR17eZJ+YN+14ga+g5FyA==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@lynx-js/webpack-runtime-globals': 0.0.6
+ dev: true
+
+ /@lynx-js/css-extract-webpack-plugin@0.6.2(@lynx-js/template-webpack-plugin@0.8.6)(webpack@5.98.0):
+ resolution: {integrity: sha512-bxnC+snXCl1L29QcZFLBcVTzgSw2BGkMDD4xzJQPJgoGvHmQDEvEpFatQC8ykcMA3284q9HEfVQhICtOBQ7FWQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@lynx-js/template-webpack-plugin': ^0.8.0
+ dependencies:
+ '@lynx-js/template-webpack-plugin': 0.8.6
+ mini-css-extract-plugin: 2.9.4(webpack@5.98.0)
+ transitivePeerDependencies:
+ - webpack
+ dev: true
+
+ /@lynx-js/css-serializer@0.1.3:
+ resolution: {integrity: sha512-AngMqNr8qvGeejv68MjbVNiuYAjzMm3S/t6lrCbtRn8jwa8gVU0Std2mVCMDeIoWzfjjliyRQMd6AzGydOh8dg==}
+ dependencies:
+ css-tree: 3.1.0
+ dev: true
+
+ /@lynx-js/preact-devtools@5.0.1-cf9aef5:
+ resolution: {integrity: sha512-e2OwROwoarzjVl8NxkjBlc6Jt0Ba7dIi9jX1y/mVsGp9y5jI3+5YpgYJYy7pTQYCscu/6omuACKNDk5N86ldkQ==}
+ dependencies:
+ errorstacks: 2.4.1
+ htm: 3.1.1
+ dev: true
+
+ /@lynx-js/qrcode-rsbuild-plugin@0.4.3:
+ resolution: {integrity: sha512-3WAW4kwNk33UujJjO691TnQyGLL8WrtUVK+p2zzWZOSAUlfhoKZkV6+Seh80II8WJfMlZBAIuT62edQteuew8A==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@lynx-js/react-alias-rsbuild-plugin@0.10.14:
+ resolution: {integrity: sha512-6gLVMEVN87A3B55gV6qA/K4i6nVstxuWtPxINHlgixF3i+NRZAH5jt1WVV6llws8NPLrAKzM+XvugSC+1yLCCg==}
+ engines: {node: '>=18'}
+ dependencies:
+ unrs-resolver: 1.11.1
+ dev: true
+
+ /@lynx-js/react-refresh-webpack-plugin@0.3.4(@lynx-js/react-webpack-plugin@0.7.0):
+ resolution: {integrity: sha512-R5hpuih6TAzxtKngrrg7i6MQUBeMMQWZWR31UMF9ld98wH1WnRrMeq0ZjkmYZhDhQQA2ViQDaHkOvOrtU4yjhg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@lynx-js/react-webpack-plugin': ^0.3.0 || ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0
+ dependencies:
+ '@lynx-js/react-webpack-plugin': 0.7.0(@lynx-js/react@0.112.6)(@lynx-js/template-webpack-plugin@0.8.6)
+ dev: true
+
+ /@lynx-js/react-rsbuild-plugin@0.10.14(@lynx-js/react@0.112.6)(webpack@5.98.0):
+ resolution: {integrity: sha512-kq8tRypwcBNwmz/DkJpErfzd+zVbYyD8mYioQV0GGQwfXAuQJ/lxrzXRmdC9He5rHz0kyESuMLa+ZES20lOPIg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@lynx-js/react': ^0.103.0 || ^0.104.0 || ^0.105.0 || ^0.106.0 || ^0.107.0 || ^0.108.0 || ^0.109.0 || ^0.110.0 || ^0.111.0 || ^0.112.0 || ^0.113.0
+ peerDependenciesMeta:
+ '@lynx-js/react':
+ optional: true
+ dependencies:
+ '@lynx-js/css-extract-webpack-plugin': 0.6.2(@lynx-js/template-webpack-plugin@0.8.6)(webpack@5.98.0)
+ '@lynx-js/react': 0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27)
+ '@lynx-js/react-alias-rsbuild-plugin': 0.10.14
+ '@lynx-js/react-refresh-webpack-plugin': 0.3.4(@lynx-js/react-webpack-plugin@0.7.0)
+ '@lynx-js/react-webpack-plugin': 0.7.0(@lynx-js/react@0.112.6)(@lynx-js/template-webpack-plugin@0.8.6)
+ '@lynx-js/runtime-wrapper-webpack-plugin': 0.1.3
+ '@lynx-js/template-webpack-plugin': 0.8.6
+ '@lynx-js/use-sync-external-store': 1.5.0(@lynx-js/react@0.112.6)
+ background-only: 0.0.1
+ transitivePeerDependencies:
+ - webpack
+ dev: true
+
+ /@lynx-js/react-webpack-plugin@0.7.0(@lynx-js/react@0.112.6)(@lynx-js/template-webpack-plugin@0.8.6):
+ resolution: {integrity: sha512-E0++Cqw8INgAGPlil5rM4LWtqY6nNBfOOAcFwGAyzXJc1rTodAb7LU4l908qIdk+lcHQzTUpBM+CyL0MNh9GsA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@lynx-js/react': '*'
+ '@lynx-js/template-webpack-plugin': ^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0 || ^0.8.0
+ peerDependenciesMeta:
+ '@lynx-js/react':
+ optional: true
+ dependencies:
+ '@lynx-js/react': 0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27)
+ '@lynx-js/template-webpack-plugin': 0.8.6
+ '@lynx-js/webpack-runtime-globals': 0.0.6
+ tiny-invariant: 1.3.3
+ dev: true
+
+ /@lynx-js/react@0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27):
+ resolution: {integrity: sha512-HBzWidMk8/1EdMi6Ej5f1onT5xt2tG8CL1+scsZ0ArURemcqiWKSSktb4zrvIl2u/Ele0Np3m7fy8Cm9YWXAjA==}
+ peerDependencies:
+ '@lynx-js/types': '*'
+ '@types/react': ^18
+ peerDependenciesMeta:
+ '@lynx-js/types':
+ optional: true
+ dependencies:
+ '@lynx-js/types': 3.4.11
+ '@types/react': 18.3.27
+ preact: /@hongzhiyuan/preact@10.24.0-00213bad
+
+ /@lynx-js/rspeedy@0.11.9(@rspack/core@1.3.9)(esbuild@0.25.0)(typescript@5.9.3)(webpack@5.98.0):
+ resolution: {integrity: sha512-4BQWsw9xJPpr6NdqcplpKcvHnSEp4s4mHBC8T7zHue9IKD6XgVc7HQW+3DhH5tU0fOHAKk1ljSkY53s8z1f8Xg==}
+ engines: {node: '>=18'}
+ hasBin: true
+ peerDependencies:
+ typescript: 5.1.6 - 5.9.x
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@lynx-js/cache-events-webpack-plugin': 0.0.2
+ '@lynx-js/chunk-loading-webpack-plugin': 0.3.3
+ '@lynx-js/web-rsbuild-server-middleware': 0.18.3
+ '@lynx-js/webpack-dev-transport': 0.2.0
+ '@lynx-js/websocket': 0.0.4
+ '@rsbuild/core': 1.5.17
+ '@rsbuild/plugin-css-minimizer': 1.0.3(@rsbuild/core@1.5.17)(esbuild@0.25.0)(webpack@5.98.0)
+ '@rsdoctor/rspack-plugin': 1.2.3(@rsbuild/core@1.5.17)(@rspack/core@1.3.9)(webpack@5.98.0)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - '@parcel/css'
+ - '@rspack/core'
+ - '@swc/css'
+ - bufferutil
+ - clean-css
+ - csso
+ - debug
+ - esbuild
+ - lightningcss
+ - supports-color
+ - utf-8-validate
+ - webpack
+ dev: true
+
+ /@lynx-js/runtime-wrapper-webpack-plugin@0.1.3:
+ resolution: {integrity: sha512-F/spRqXWE5XS4h36mN89ulGGXjvs7DEiBFUO/Xf6barstKXbhLM485CwMzXz/Zh07ZIFvnHFtRZprOT0jNrrag==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@lynx-js/webpack-runtime-globals': 0.0.6
+ dev: true
+
+ /@lynx-js/tasm@0.0.18:
+ resolution: {integrity: sha512-6Kl1eUxooceWcSLYnCtys38r9KPIouTam/fU81pzOrH/xIal60+WY47nj+MzDXq94i9jbUusM+IQSZAkeRistw==}
+ dev: true
+
+ /@lynx-js/template-webpack-plugin@0.8.6:
+ resolution: {integrity: sha512-VNW24YdZw45/PvaIBB0M9YJjYGK7wG5S0sZY6hZZtdyX9+T8VTdVXOf5ZV91mElz9a6cbfTkQs0CjNKrA0XsTg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@lynx-js/css-serializer': 0.1.3
+ '@lynx-js/tasm': 0.0.18
+ '@lynx-js/webpack-runtime-globals': 0.0.6
+ '@rspack/lite-tapable': 1.0.1
+ css-tree: 3.1.0
+ object.groupby: 1.0.3
+ dev: true
+
+ /@lynx-js/types@3.4.11:
+ resolution: {integrity: sha512-k4mu4d2xmMqMIP1e7WGPdzO/k9x9W35b/OE/awalQUbcLlruFatagEOEM6TANK/VuRvEl0eLXQjhBnSwGkgt5w==}
+ dependencies:
+ csstype: 3.1.3
+
+ /@lynx-js/use-sync-external-store@1.5.0(@lynx-js/react@0.112.6):
+ resolution: {integrity: sha512-iXwLiGUBgfWLozCIh3ICe07x534p9CVlFS3/iGEiFOce58MLX6/PbAvWcE8qEhYaOKiQNe9hqUnS2RbyCqoqGg==}
+ peerDependencies:
+ '@lynx-js/react': '*'
+ dependencies:
+ '@lynx-js/react': 0.112.6(@lynx-js/types@3.4.11)(@types/react@18.3.27)
+ dev: true
+
+ /@lynx-js/web-rsbuild-server-middleware@0.18.3:
+ resolution: {integrity: sha512-LEZg2HnofoSVXiVLwZVL4vAH74RYKL+AIJEeKjL4KfGp6i6chhqmGIIBqJeM6i3vduDp9br9EWP0CCw1yQJsEg==}
+ dev: true
+
+ /@lynx-js/webpack-dev-transport@0.2.0:
+ resolution: {integrity: sha512-RSy02FSoMsavEn2wna4khSJwT2uGW4XeLduKH8UDT3aCsBNM/rXndUyG6PbwMcywXCeyb8UofkhaQDtJvNJklA==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@lynx-js/webpack-runtime-globals@0.0.6:
+ resolution: {integrity: sha512-VzpJc/w7v38/SHaZ+f3WBVBrsgXOG13YX9mRRxRrCgJQa+wZ6waRz7OIjntuTYJk2p7rQ0wKRGzsMgMfRBs/3g==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@lynx-js/websocket@0.0.4:
+ resolution: {integrity: sha512-yXuMiTALLNvkDz8hG+0KdkBodnyJDvyfr8bdIq6zMP9X8JAoBC/czc1HIhUgYEJ3Zee5F/vGKjNxcoSx2t1E6w==}
+ engines: {node: '>=18'}
+ dependencies:
+ eventemitter3: 5.0.1
+ dev: true
+
/@manypkg/find-root@1.1.0:
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
dependencies:
@@ -10736,7 +11128,7 @@ packages:
react: '>=16'
dependencies:
'@types/mdx': 2.0.13
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
react: 19.1.1
dev: false
@@ -10751,6 +11143,17 @@ packages:
react: 18.3.1
dev: true
+ /@mdx-js/react@3.1.0(@types/react@18.3.27)(react@18.3.1):
+ resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==}
+ peerDependencies:
+ '@types/react': '>=16'
+ react: '>=16'
+ dependencies:
+ '@types/mdx': 2.0.13
+ '@types/react': 18.3.27
+ react: 18.3.1
+ dev: true
+
/@mdx-js/react@3.1.0(@types/react@19.1.8)(react@19.1.1):
resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==}
peerDependencies:
@@ -12664,7 +13067,7 @@ packages:
'@module-federation/third-party-dts-extractor': 0.21.2
adm-zip: 0.5.16
ansi-colors: 4.1.3
- axios: 1.12.2
+ axios: 1.13.1
chalk: 3.0.0
fs-extra: 9.1.0
isomorphic-ws: 5.0.0(ws@8.18.0)
@@ -12683,7 +13086,7 @@ packages:
- utf-8-validate
dev: true
- /@module-federation/dts-plugin@0.6.9(typescript@5.8.3)(vue-tsc@2.2.10):
+ /@module-federation/dts-plugin@0.6.9(typescript@5.9.3)(vue-tsc@2.2.10):
resolution: {integrity: sha512-uiMjjEFcMlOvRtNu8/tt7sJ5y7WTosTVym0V7lMQjgoeX0QesvZqRhgzw5gQcPcFvbk54RwTUI2rS8OEGScCFw==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
@@ -12706,7 +13109,7 @@ packages:
log4js: 6.9.1
node-schedule: 2.1.1
rambda: 9.3.0
- typescript: 5.8.3
+ typescript: 5.9.3
vue-tsc: 2.2.10(typescript@5.8.3)
ws: 8.17.1
transitivePeerDependencies:
@@ -12800,7 +13203,7 @@ packages:
- utf-8-validate
dev: true
- /@module-federation/enhanced@0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(vue-tsc@2.2.10)(webpack@5.94.0):
+ /@module-federation/enhanced@0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue-tsc@2.2.10)(webpack@5.94.0):
resolution: {integrity: sha512-4bEGQSE6zJ2FMdBTOrRiVjNNzWhUqzWEJGWbsr0bpLNAl4BVx2ah5MyKTrSYqaW//BRA2qc8rmrIreaIawr3kQ==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
@@ -12816,14 +13219,14 @@ packages:
dependencies:
'@module-federation/bridge-react-webpack-plugin': 0.6.9
'@module-federation/data-prefetch': 0.6.9(react-dom@18.3.1)(react@18.3.1)
- '@module-federation/dts-plugin': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/dts-plugin': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/managers': 0.6.9
- '@module-federation/manifest': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
- '@module-federation/rspack': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/manifest': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
+ '@module-federation/rspack': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/runtime-tools': 0.6.9
'@module-federation/sdk': 0.6.9
btoa: 1.2.1
- typescript: 5.8.3
+ typescript: 5.9.3
upath: 2.0.1
vue-tsc: 2.2.10(typescript@5.8.3)
webpack: 5.94.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
@@ -12836,7 +13239,7 @@ packages:
- utf-8-validate
dev: false
- /@module-federation/enhanced@0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(vue-tsc@2.2.10)(webpack@5.98.0):
+ /@module-federation/enhanced@0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue-tsc@2.2.10)(webpack@5.98.0):
resolution: {integrity: sha512-4bEGQSE6zJ2FMdBTOrRiVjNNzWhUqzWEJGWbsr0bpLNAl4BVx2ah5MyKTrSYqaW//BRA2qc8rmrIreaIawr3kQ==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
@@ -12852,14 +13255,14 @@ packages:
dependencies:
'@module-federation/bridge-react-webpack-plugin': 0.6.9
'@module-federation/data-prefetch': 0.6.9(react-dom@18.3.1)(react@18.3.1)
- '@module-federation/dts-plugin': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/dts-plugin': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/managers': 0.6.9
- '@module-federation/manifest': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
- '@module-federation/rspack': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/manifest': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
+ '@module-federation/rspack': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/runtime-tools': 0.6.9
'@module-federation/sdk': 0.6.9
btoa: 1.2.1
- typescript: 5.8.3
+ typescript: 5.9.3
upath: 2.0.1
vue-tsc: 2.2.10(typescript@5.8.3)
webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
@@ -12974,10 +13377,10 @@ packages:
- vue-tsc
dev: true
- /@module-federation/manifest@0.6.9(typescript@5.8.3)(vue-tsc@2.2.10):
+ /@module-federation/manifest@0.6.9(typescript@5.9.3)(vue-tsc@2.2.10):
resolution: {integrity: sha512-JMSPDpHODXOmTyJes8GJ950mbN7tqjQzqgFVUubDOVFOmlC0/MYaRzRPmkApz6d8nUfMbLZYzxNSaBHx8GP0/Q==}
dependencies:
- '@module-federation/dts-plugin': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/dts-plugin': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/managers': 0.6.9
'@module-federation/sdk': 0.6.9
chalk: 3.0.0
@@ -13086,7 +13489,7 @@ packages:
- utf-8-validate
dev: true
- /@module-federation/rspack@0.6.9(typescript@5.8.3)(vue-tsc@2.2.10):
+ /@module-federation/rspack@0.6.9(typescript@5.9.3)(vue-tsc@2.2.10):
resolution: {integrity: sha512-N5yBqN8ijSRZKd0kbIvpZNil0y8rFa8cREKI1QsW1+EYUKwOUBFwF55tFdTmNCKmpZqSEBtcNjRGZXknsYPQxg==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
@@ -13098,12 +13501,12 @@ packages:
optional: true
dependencies:
'@module-federation/bridge-react-webpack-plugin': 0.6.9
- '@module-federation/dts-plugin': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/dts-plugin': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/managers': 0.6.9
- '@module-federation/manifest': 0.6.9(typescript@5.8.3)(vue-tsc@2.2.10)
+ '@module-federation/manifest': 0.6.9(typescript@5.9.3)(vue-tsc@2.2.10)
'@module-federation/runtime-tools': 0.6.9
'@module-federation/sdk': 0.6.9
- typescript: 5.8.3
+ typescript: 5.9.3
vue-tsc: 2.2.10(typescript@5.8.3)
transitivePeerDependencies:
- bufferutil
@@ -14350,7 +14753,7 @@ packages:
- typescript
dev: false
- /@nx/js@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2):
+ /@nx/js@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2):
resolution: {integrity: sha512-hx9BzdEzJhhv3eK4i/0V0ovfZNtRFjbcMaYLoP5Vpd80jnGvOXAAJKc1LAXUsS8LGOMFE1BgbbKTMQDMoCSCbg==}
peerDependencies:
verdaccio: ^5.0.4
@@ -14385,7 +14788,7 @@ packages:
ora: 5.3.0
semver: 7.6.3
source-map-support: 0.5.19
- ts-node: 10.9.1(@swc/core@1.7.26)(@types/node@20.12.14)(typescript@5.8.3)
+ ts-node: 10.9.1(@swc/core@1.7.26)(@types/node@20.12.14)(typescript@5.9.3)
tsconfig-paths: 4.2.0
tslib: 2.8.1
verdaccio: 6.1.2(encoding@0.1.13)(typanion@3.14.0)
@@ -14725,16 +15128,16 @@ packages:
requiresBuild: true
optional: true
- /@nx/react@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(eslint@8.57.1)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack@5.94.0):
+ /@nx/react@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(eslint@8.57.1)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack@5.94.0):
resolution: {integrity: sha512-1oXMAgedERHn8LV5FQ4IE3PxmqZLq0fkJXiDjUmL6Lv0alJVDtUWPa+Fr/KIfx9OOw1oGu3ZPPWYGipcSwGeIQ==}
dependencies:
- '@module-federation/enhanced': 0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(vue-tsc@2.2.10)(webpack@5.94.0)
+ '@module-federation/enhanced': 0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue-tsc@2.2.10)(webpack@5.94.0)
'@nx/devkit': 20.1.1(nx@21.2.3)
'@nx/eslint': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(eslint@8.57.1)(nx@21.2.3)(verdaccio@6.1.2)
- '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2)
- '@nx/web': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2)
- '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3)
- '@svgr/webpack': 8.1.0(typescript@5.8.3)
+ '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2)
+ '@nx/web': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2)
+ '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.3)
+ '@svgr/webpack': 8.1.0(typescript@5.9.3)
express: 4.21.1
file-loader: 6.2.0(webpack@5.94.0)
http-proxy-middleware: 3.0.3
@@ -14957,11 +15360,11 @@ packages:
- verdaccio
dev: true
- /@nx/web@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2):
+ /@nx/web@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2):
resolution: {integrity: sha512-E/vWj9gR10SOc7VL1+RnlE4krBWa9mTMo0jkXM3XCcASsFmz2Guv+OSuCTKYiKsD/xAKlMSC8+04IvUEmXbcdg==}
dependencies:
'@nx/devkit': 20.1.1(nx@21.2.3)
- '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2)
+ '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2)
detect-port: 1.6.1
http-server: 14.1.1
picocolors: 1.1.1
@@ -14998,15 +15401,15 @@ packages:
- verdaccio
dev: true
- /@nx/webpack@20.1.1(@rspack/core@1.3.9)(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(esbuild@0.24.0)(html-webpack-plugin@5.6.2)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack-cli@5.1.4):
+ /@nx/webpack@20.1.1(@rspack/core@1.3.9)(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(esbuild@0.24.0)(html-webpack-plugin@5.6.2)(nx@21.2.3)(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(verdaccio@6.1.2)(vue-tsc@2.2.10)(webpack-cli@5.1.4):
resolution: {integrity: sha512-ucxJn9q/KboQ4ywtODmOYD9ac9FczdLd/1WDAPctxERuq71bfkwGmZGUzH3fDqolinek0kAIhn6ci3ww2/Qs1A==}
dependencies:
'@babel/core': 7.28.0
- '@module-federation/enhanced': 0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.8.3)(vue-tsc@2.2.10)(webpack@5.98.0)
+ '@module-federation/enhanced': 0.6.9(react-dom@18.3.1)(react@18.3.1)(typescript@5.9.3)(vue-tsc@2.2.10)(webpack@5.98.0)
'@module-federation/sdk': 0.6.11
'@nx/devkit': 20.1.1(nx@21.2.3)
- '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.8.3)(verdaccio@6.1.2)
- '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3)
+ '@nx/js': 20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26)(@types/node@20.12.14)(nx@21.2.3)(typescript@5.9.3)(verdaccio@6.1.2)
+ '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.3)
ajv: 8.17.1
autoprefixer: 10.4.20(postcss@8.4.47)
babel-loader: 9.2.1(@babel/core@7.28.0)(webpack@5.98.0)
@@ -15015,7 +15418,7 @@ packages:
css-loader: 6.11.0(@rspack/core@1.3.9)(webpack@5.98.0)
css-minimizer-webpack-plugin: 5.0.1(esbuild@0.24.0)(webpack@5.98.0)
express: 4.21.1
- fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.8.3)(webpack@5.98.0)
+ fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.9.3)(webpack@5.98.0)
http-proxy-middleware: 3.0.3
less: 4.1.3
less-loader: 11.1.0(less@4.1.3)(webpack@5.98.0)
@@ -15035,7 +15438,7 @@ packages:
stylus: 0.64.0
stylus-loader: 7.1.3(stylus@0.64.0)(webpack@5.98.0)
terser-webpack-plugin: 5.3.10(@swc/core@1.7.26)(esbuild@0.24.0)(webpack@5.98.0)
- ts-loader: 9.5.1(typescript@5.8.3)(webpack@5.98.0)
+ ts-loader: 9.5.1(typescript@5.9.3)(webpack@5.98.0)
tsconfig-paths-webpack-plugin: 4.0.0
tslib: 2.8.1
webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
@@ -15617,6 +16020,16 @@ packages:
dependencies:
esquery: 1.6.0
typescript: 5.8.3
+ dev: true
+
+ /@phenomnomnominal/tsquery@5.0.1(typescript@5.9.3):
+ resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==}
+ peerDependencies:
+ typescript: ^3 || ^4 || ^5
+ dependencies:
+ esquery: 1.6.0
+ typescript: 5.9.3
+ dev: false
/@pkgjs/parseargs@0.11.0:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
@@ -18322,7 +18735,6 @@ packages:
'@swc/helpers': 0.5.17
core-js: 3.46.0
jiti: 2.6.1
- dev: false
/@rsbuild/core@1.6.0-beta.1:
resolution: {integrity: sha512-UjQnvXDW9m/hS4DP66ubGIMVjK2PzYx8tzgiinrO0kjNCr9i8KWuJSJGUWyczFMpSsXxp20LnuTxtx7kiGiYdA==}
@@ -18388,7 +18800,7 @@ packages:
'@rsbuild/core': 1.4.3
'@types/babel__core': 7.20.5
deepmerge: 4.3.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
upath: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -18406,7 +18818,7 @@ packages:
'@rsbuild/core': 1.4.4
'@types/babel__core': 7.20.5
deepmerge: 4.3.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
upath: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -18444,6 +18856,22 @@ packages:
source-map: 0.7.6
dev: true
+ /@rsbuild/plugin-check-syntax@1.3.0(@rsbuild/core@1.5.17):
+ resolution: {integrity: sha512-lHrd6hToPFVOGWr0U/Ox7pudHWdhPSFsr2riWpjNRlUuwiXdU2SYMROaVUCrLJvYFzJyEMsFOi1w59rBQCG2HQ==}
+ peerDependencies:
+ '@rsbuild/core': 1.x
+ peerDependenciesMeta:
+ '@rsbuild/core':
+ optional: true
+ dependencies:
+ '@rsbuild/core': 1.5.17
+ acorn: 8.15.0
+ browserslist-to-es-version: 1.0.0
+ htmlparser2: 10.0.0
+ picocolors: 1.1.1
+ source-map: 0.7.6
+ dev: true
+
/@rsbuild/plugin-css-minimizer@1.0.2(@rsbuild/core@1.4.3)(esbuild@0.25.5)(webpack@5.99.9):
resolution: {integrity: sha512-x695i5PHWI9uV9VA1Dun66G0DeJMgxbt3wEk4eHZMz9pi6n8Dah6BHG2WcloYAEi7yVoUcPIGXDdag27s2B+4A==}
peerDependencies:
@@ -18454,7 +18882,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.3
css-minimizer-webpack-plugin: 5.0.1(esbuild@0.25.5)(webpack@5.99.9)
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
transitivePeerDependencies:
- '@parcel/css'
- '@swc/css'
@@ -18475,7 +18903,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.4
css-minimizer-webpack-plugin: 5.0.1(esbuild@0.18.20)(webpack@5.99.9)
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
transitivePeerDependencies:
- '@parcel/css'
- '@swc/css'
@@ -18496,7 +18924,28 @@ packages:
dependencies:
'@rsbuild/core': 1.4.4
css-minimizer-webpack-plugin: 5.0.1(esbuild@0.25.5)(webpack@5.99.9)
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
+ transitivePeerDependencies:
+ - '@parcel/css'
+ - '@swc/css'
+ - clean-css
+ - csso
+ - esbuild
+ - lightningcss
+ - webpack
+ dev: true
+
+ /@rsbuild/plugin-css-minimizer@1.0.3(@rsbuild/core@1.5.17)(esbuild@0.25.0)(webpack@5.98.0):
+ resolution: {integrity: sha512-z0UYQGQ42KAODA9cY3iGzd2E5ra0qNEGIaqWxwgQDmeuWsaQr21xOPubndZMUsuystOEmQCyN5eT9b47Gyf4lA==}
+ peerDependencies:
+ '@rsbuild/core': 1.x
+ peerDependenciesMeta:
+ '@rsbuild/core':
+ optional: true
+ dependencies:
+ '@rsbuild/core': 1.5.17
+ css-minimizer-webpack-plugin: 5.0.1(esbuild@0.25.0)(webpack@5.98.0)
+ reduce-configs: 1.1.1
transitivePeerDependencies:
- '@parcel/css'
- '@swc/css'
@@ -18514,7 +18963,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.3
deepmerge: 4.3.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-less@1.2.5(@rsbuild/core@1.4.4):
@@ -18524,7 +18973,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.4
deepmerge: 4.3.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-node-polyfill@1.3.0(@rsbuild/core@1.4.3):
@@ -18607,7 +19056,7 @@ packages:
'@types/pug': 2.0.10
lodash: 4.17.21
pug: 3.0.3
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-pug@1.3.1(@rsbuild/core@1.4.4):
@@ -18622,7 +19071,7 @@ packages:
'@types/pug': 2.0.10
lodash: 4.17.21
pug: 3.0.3
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-react@1.0.6(@rsbuild/core@1.3.21):
@@ -18789,7 +19238,7 @@ packages:
deepmerge: 4.3.1
loader-utils: 2.0.4
postcss: 8.5.4
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
sass-embedded: 1.89.0
dev: true
@@ -18802,7 +19251,7 @@ packages:
deepmerge: 4.3.1
loader-utils: 2.0.4
postcss: 8.5.6
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
sass-embedded: 1.89.2
dev: true
@@ -18844,7 +19293,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.3
'@swc/plugin-styled-components': 8.0.2
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-styled-components@1.4.0(@rsbuild/core@1.4.4):
@@ -18857,7 +19306,7 @@ packages:
dependencies:
'@rsbuild/core': 1.4.4
'@swc/plugin-styled-components': 8.0.2
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
dev: true
/@rsbuild/plugin-svgr@1.2.0(@rsbuild/core@1.4.3)(typescript@5.0.4):
@@ -18938,25 +19387,25 @@ packages:
toml: 3.0.0
dev: true
- /@rsbuild/plugin-type-check@1.2.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.8.3):
- resolution: {integrity: sha512-7hRPT9Vi5uXLkvjy9gGHttpCvK7afGXS7bukyf0XCYAWj6XMPJvUQpXBatVVdNdNfeYt0ffHo5GqiPz/eeCorQ==}
+ /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.3)(@rspack/core@1.3.9)(typescript@5.0.4):
+ resolution: {integrity: sha512-1yILSPgQFQCtY82f7CSbicIS/BqquoHgnDdAgPeYF3/k/RIwSAnclh0R2wXn+2EBormpFK82wz/TXuXl+k+evw==}
peerDependencies:
'@rsbuild/core': 1.x
peerDependenciesMeta:
'@rsbuild/core':
optional: true
dependencies:
- '@rsbuild/core': 1.3.21
+ '@rsbuild/core': 1.4.3
deepmerge: 4.3.1
json5: 2.2.3
- reduce-configs: 1.1.0
- ts-checker-rspack-plugin: 1.1.3(@rspack/core@1.3.9)(typescript@5.8.3)
+ reduce-configs: 1.1.1
+ ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.0.4)
transitivePeerDependencies:
- '@rspack/core'
- typescript
dev: true
- /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.3)(@rspack/core@1.3.9)(typescript@5.0.4):
+ /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.4)(@rspack/core@1.3.9)(typescript@5.0.4):
resolution: {integrity: sha512-1yILSPgQFQCtY82f7CSbicIS/BqquoHgnDdAgPeYF3/k/RIwSAnclh0R2wXn+2EBormpFK82wz/TXuXl+k+evw==}
peerDependencies:
'@rsbuild/core': 1.x
@@ -18964,17 +19413,17 @@ packages:
'@rsbuild/core':
optional: true
dependencies:
- '@rsbuild/core': 1.4.3
+ '@rsbuild/core': 1.4.4
deepmerge: 4.3.1
json5: 2.2.3
- reduce-configs: 1.1.0
- ts-checker-rspack-plugin: 1.1.4(@rspack/core@1.3.9)(typescript@5.0.4)
+ reduce-configs: 1.1.1
+ ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.0.4)
transitivePeerDependencies:
- '@rspack/core'
- typescript
dev: true
- /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.4)(@rspack/core@1.3.9)(typescript@5.0.4):
+ /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.4)(@rspack/core@1.3.9)(typescript@5.5.2):
resolution: {integrity: sha512-1yILSPgQFQCtY82f7CSbicIS/BqquoHgnDdAgPeYF3/k/RIwSAnclh0R2wXn+2EBormpFK82wz/TXuXl+k+evw==}
peerDependencies:
'@rsbuild/core': 1.x
@@ -18985,32 +19434,32 @@ packages:
'@rsbuild/core': 1.4.4
deepmerge: 4.3.1
json5: 2.2.3
- reduce-configs: 1.1.0
- ts-checker-rspack-plugin: 1.1.4(@rspack/core@1.3.9)(typescript@5.0.4)
+ reduce-configs: 1.1.1
+ ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.5.2)
transitivePeerDependencies:
- '@rspack/core'
- typescript
dev: true
- /@rsbuild/plugin-type-check@1.2.3(@rsbuild/core@1.4.4)(@rspack/core@1.3.9)(typescript@5.5.2):
- resolution: {integrity: sha512-1yILSPgQFQCtY82f7CSbicIS/BqquoHgnDdAgPeYF3/k/RIwSAnclh0R2wXn+2EBormpFK82wz/TXuXl+k+evw==}
+ /@rsbuild/plugin-type-check@1.2.4(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.9.3):
+ resolution: {integrity: sha512-0m4TRp9mTgkQ61UWnqE6cOLj/tBltXBWqLYHh8DDz+mk9qabJQ6ilTl8vQbSrg/jYH/3AksQZjlpZMEplUrE2Q==}
peerDependencies:
'@rsbuild/core': 1.x
peerDependenciesMeta:
'@rsbuild/core':
optional: true
dependencies:
- '@rsbuild/core': 1.4.4
+ '@rsbuild/core': 1.3.21
deepmerge: 4.3.1
json5: 2.2.3
- reduce-configs: 1.1.0
- ts-checker-rspack-plugin: 1.1.4(@rspack/core@1.3.9)(typescript@5.5.2)
+ reduce-configs: 1.1.1
+ ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.9.3)
transitivePeerDependencies:
- '@rspack/core'
- typescript
dev: true
- /@rsbuild/plugin-type-check@1.2.4(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.8.3):
+ /@rsbuild/plugin-type-check@1.2.4(@rsbuild/core@1.4.12)(@rspack/core@1.3.9)(typescript@5.9.3):
resolution: {integrity: sha512-0m4TRp9mTgkQ61UWnqE6cOLj/tBltXBWqLYHh8DDz+mk9qabJQ6ilTl8vQbSrg/jYH/3AksQZjlpZMEplUrE2Q==}
peerDependencies:
'@rsbuild/core': 1.x
@@ -19018,11 +19467,11 @@ packages:
'@rsbuild/core':
optional: true
dependencies:
- '@rsbuild/core': 1.3.21
+ '@rsbuild/core': 1.4.12
deepmerge: 4.3.1
json5: 2.2.3
reduce-configs: 1.1.1
- ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.8.3)
+ ts-checker-rspack-plugin: 1.1.6(@rspack/core@1.3.9)(typescript@5.9.3)
transitivePeerDependencies:
- '@rspack/core'
- typescript
@@ -19112,7 +19561,7 @@ packages:
html-webpack-plugin: 5.6.3(@rspack/core@1.3.9)(webpack@5.99.9)
mini-css-extract-plugin: 2.9.2(webpack@5.99.9)
picocolors: 1.1.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
tsconfig-paths-webpack-plugin: 4.2.0
webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.25.5)(webpack-cli@5.1.4)
transitivePeerDependencies:
@@ -19133,7 +19582,7 @@ packages:
html-webpack-plugin: 5.6.3(@rspack/core@1.3.9)(webpack@5.99.9)
mini-css-extract-plugin: 2.9.2(webpack@5.99.9)
picocolors: 1.1.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
tsconfig-paths-webpack-plugin: 4.2.0
webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.18.20)(webpack-cli@5.1.4)
transitivePeerDependencies:
@@ -19154,7 +19603,7 @@ packages:
html-webpack-plugin: 5.6.3(@rspack/core@1.3.9)(webpack@5.99.9)
mini-css-extract-plugin: 2.9.2(webpack@5.99.9)
picocolors: 1.1.1
- reduce-configs: 1.1.0
+ reduce-configs: 1.1.1
tsconfig-paths-webpack-plugin: 4.2.0
webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.25.5)(webpack-cli@5.1.4)
transitivePeerDependencies:
@@ -19165,6 +19614,145 @@ packages:
- webpack-cli
dev: true
+ /@rsdoctor/client@1.2.3:
+ resolution: {integrity: sha512-KzfRONtUFMOhgyd9Kur9C/eqh+qPE0UDQEwp/uCMIQHwmompGgChuGniVENd2mGgkZX4MDHubFSvjoeI7j4UBg==}
+ dev: true
+
+ /@rsdoctor/core@1.2.3(@rsbuild/core@1.5.17)(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-7o+SoN0JVwvxi0LSToA9G5PvSDag9ri0pQ/krlsJdkg2aVCRSR1xVjS8pzaKR9F+Q5Mnj6RixYOhIkWqWoMWFw==}
+ dependencies:
+ '@rsbuild/plugin-check-syntax': 1.3.0(@rsbuild/core@1.5.17)
+ '@rsdoctor/graph': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/sdk': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/types': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/utils': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ axios: 1.13.1
+ browserslist-load-config: 1.0.1
+ enhanced-resolve: 5.12.0
+ filesize: 10.1.6
+ fs-extra: 11.3.0
+ lodash: 4.17.21
+ path-browserify: 1.0.1
+ semver: 7.7.3
+ source-map: 0.7.6
+ transitivePeerDependencies:
+ - '@rsbuild/core'
+ - '@rspack/core'
+ - bufferutil
+ - debug
+ - supports-color
+ - utf-8-validate
+ - webpack
+ dev: true
+
+ /@rsdoctor/graph@1.2.3(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-HYnUGnpWfkvrwex0VvfP4G5BTe/18bc03GHTM4iBwRuVkgi2PN1OkU/iGFSS3AbctnHLNQMC2NFuV8+U1wzynw==}
+ dependencies:
+ '@rsdoctor/types': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/utils': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ lodash.unionby: 4.8.0
+ source-map: 0.7.6
+ transitivePeerDependencies:
+ - '@rspack/core'
+ - supports-color
+ - webpack
+ dev: true
+
+ /@rsdoctor/rspack-plugin@1.2.3(@rsbuild/core@1.5.17)(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-IW0dyCmEC9Sxz7pHpUPDIjUTpFdxPocIGrcw04J5CgD5hYbyDrJ6ubDRAY4W6jm4CGvr0524s4xfW2pfsKY1Ew==}
+ peerDependencies:
+ '@rspack/core': '*'
+ peerDependenciesMeta:
+ '@rspack/core':
+ optional: true
+ dependencies:
+ '@rsdoctor/core': 1.2.3(@rsbuild/core@1.5.17)(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/graph': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/sdk': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/types': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/utils': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rspack/core': 1.3.9(@swc/helpers@0.5.13)
+ lodash: 4.17.21
+ transitivePeerDependencies:
+ - '@rsbuild/core'
+ - bufferutil
+ - debug
+ - supports-color
+ - utf-8-validate
+ - webpack
+ dev: true
+
+ /@rsdoctor/sdk@1.2.3(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-kd6JQKNihmfwKrem2LhGih5MV6zb/RBNqnkuu/BDTuOClaKzq9JEbQlfYstGDv1yF3ECR/OEOCKNGNbnCbNtmg==}
+ dependencies:
+ '@rsdoctor/client': 1.2.3
+ '@rsdoctor/graph': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/types': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@rsdoctor/utils': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@types/fs-extra': 11.0.4
+ body-parser: 1.20.3
+ cors: 2.8.5
+ dayjs: 1.11.13
+ fs-extra: 11.3.0
+ json-cycle: 1.5.0
+ open: 8.4.2
+ sirv: 2.0.4
+ socket.io: 4.8.1
+ source-map: 0.7.6
+ tapable: 2.2.2
+ transitivePeerDependencies:
+ - '@rspack/core'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ - webpack
+ dev: true
+
+ /@rsdoctor/types@1.2.3(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-UMh4zdyKs3K4Jh7YQvHiaXKY9c7gFwCUcRaPtpB4XjlzE3lML21d0SBAXkGduwz9AmhuTRQCqaLKA2NNuDUivQ==}
+ peerDependencies:
+ '@rspack/core': '*'
+ webpack: 5.x
+ peerDependenciesMeta:
+ '@rspack/core':
+ optional: true
+ webpack:
+ optional: true
+ dependencies:
+ '@rspack/core': 1.3.9(@swc/helpers@0.5.13)
+ '@types/connect': 3.4.38
+ '@types/estree': 1.0.5
+ '@types/tapable': 2.2.7
+ source-map: 0.7.6
+ webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
+ dev: true
+
+ /@rsdoctor/utils@1.2.3(@rspack/core@1.3.9)(webpack@5.98.0):
+ resolution: {integrity: sha512-HawWrcqXeqdhj4dKhdjJg4BXvstcQauYSRx0cnYH78f7z9PW60Smr6vYpByXC87rK3JKpa6CNiZi+qhI5yTAog==}
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@rsdoctor/types': 1.2.3(@rspack/core@1.3.9)(webpack@5.98.0)
+ '@types/estree': 1.0.5
+ acorn: 8.15.0
+ acorn-import-attributes: 1.9.5(acorn@8.15.0)
+ acorn-walk: 8.3.4
+ connect: 3.7.0
+ deep-eql: 4.1.4
+ envinfo: 7.14.0
+ filesize: 10.1.6
+ fs-extra: 11.3.0
+ get-port: 5.1.1
+ json-stream-stringify: 3.0.1
+ lines-and-columns: 2.0.4
+ picocolors: 1.1.1
+ rslog: 1.3.0
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - '@rspack/core'
+ - supports-color
+ - webpack
+ dev: true
+
/@rslib/core@0.10.6(typescript@5.8.3):
resolution: {integrity: sha512-7OLdmmQbY116gNAAsY9baCid9REr+z11qfAzwVVFw+Q8avCE6YqpcBLfrBXlfmpBikfshDmHH8EpRrQwz8gZJQ==}
engines: {node: '>=16.7.0'}
@@ -19222,6 +19810,25 @@ packages:
typescript: 5.8.3
dev: true
+ /@rslib/core@0.9.0(typescript@5.9.3):
+ resolution: {integrity: sha512-nWpST4+oPPTi/P4EfYqtmPLAu7AJxDevt8/+D3aULHwYkjZCVn5l3v1/tcvUJImEWsKnquknu3QIjUBNDwLzwg==}
+ engines: {node: '>=16.7.0'}
+ hasBin: true
+ peerDependencies:
+ '@microsoft/api-extractor': ^7
+ typescript: ^5
+ peerDependenciesMeta:
+ '@microsoft/api-extractor':
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@rsbuild/core': 1.3.21
+ rsbuild-plugin-dts: 0.9.0(@rsbuild/core@1.3.21)(typescript@5.9.3)
+ tinyglobby: 0.2.14
+ typescript: 5.9.3
+ dev: true
+
/@rslib/core@0.9.2(typescript@5.8.3):
resolution: {integrity: sha512-C5mZroofHKJiHl7V/b2hIp9WnFXRrKFnfOP/Aw+7DcxgH/ur593MypG3Zg5mVcaJv6OG36oNbvUtJ6+Wk5yqog==}
engines: {node: '>=16.7.0'}
@@ -21281,6 +21888,10 @@ packages:
dependencies:
'@sinonjs/commons': 3.0.1
+ /@socket.io/component-emitter@3.1.2:
+ resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
+ dev: true
+
/@storybook/addon-docs@8.6.14(@types/react@18.3.11)(storybook@8.4.2):
resolution: {integrity: sha512-Obpd0OhAF99JyU5pp5ci17YmpcQtMNgqW2pTXV8jAiiipWpwO++hNDeQmLmlSXB399XjtRDOcDVkoc7rc6JzdQ==}
peerDependencies:
@@ -21298,12 +21909,12 @@ packages:
- '@types/react'
dev: true
- /@storybook/addon-docs@9.0.17(@types/react@18.3.11)(storybook@9.0.9):
+ /@storybook/addon-docs@9.0.17(@types/react@18.3.27)(storybook@9.0.9):
resolution: {integrity: sha512-LOX/kKgQGnyulrqZHsvf77+ZoH/nSUaplGr5hvZglW/U6ak6fO9seJyXAzVKEnC6p+F8n02kFBZbi3s+znQhSg==}
peerDependencies:
storybook: ^9.0.17
dependencies:
- '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1)
+ '@mdx-js/react': 3.1.0(@types/react@18.3.27)(react@18.3.1)
'@storybook/csf-plugin': 9.0.17(storybook@9.0.9)
'@storybook/icons': 1.4.0(react-dom@18.3.1)(react@18.3.1)
'@storybook/react-dom-shim': 9.0.17(react-dom@18.3.1)(react@18.3.1)(storybook@9.0.9)
@@ -21979,7 +22590,7 @@ packages:
resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==}
dev: true
- /@storybook/react-docgen-typescript-plugin@1.0.1(typescript@5.8.3)(webpack@5.98.0):
+ /@storybook/react-docgen-typescript-plugin@1.0.1(typescript@5.9.3)(webpack@5.98.0):
resolution: {integrity: sha512-dqbHa+5gaxaklFCuV1WTvljVPTo3QIJgpW4Ln+QeME7osPZUnUhjN2/djvo+sxrWUrTTuqX5jkn291aDngu9Tw==}
peerDependencies:
typescript: '>= 3.x'
@@ -21990,9 +22601,9 @@ packages:
find-cache-dir: 3.3.2
flat-cache: 3.2.0
micromatch: 4.0.8
- react-docgen-typescript: 2.2.2(typescript@5.8.3)
+ react-docgen-typescript: 2.2.2(typescript@5.9.3)
tslib: 2.8.1
- typescript: 5.8.3
+ typescript: 5.9.3
webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
transitivePeerDependencies:
- supports-color
@@ -22146,7 +22757,7 @@ packages:
- supports-color
dev: true
- /@storybook/react@8.6.12(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.8.3):
+ /@storybook/react@8.6.12(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.9.3):
resolution: {integrity: sha512-NzxlHLA5DkDgZM/dMwTYinuzRs6rsUPmlqP+NIv6YaciQ4NGnTYyOC7R/SqI6HHFm8ZZ5eMYvpfiFmhZ9rU+rQ==}
engines: {node: '>=18.0.0'}
peerDependencies:
@@ -22170,7 +22781,7 @@ packages:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
storybook: 8.4.2(prettier@3.3.3)
- typescript: 5.8.3
+ typescript: 5.9.3
dev: true
/@storybook/react@9.0.9(react-dom@18.3.1)(react@18.3.1)(storybook@9.0.9)(typescript@5.8.3):
@@ -22368,6 +22979,20 @@ packages:
transitivePeerDependencies:
- supports-color
- typescript
+ dev: true
+
+ /@svgr/core@8.1.0(typescript@5.9.3):
+ resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/core': 7.28.0
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.28.0)
+ camelcase: 6.3.0
+ cosmiconfig: 8.3.6(typescript@5.9.3)
+ snake-case: 3.0.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
/@svgr/hast-util-to-babel-ast@8.0.0:
resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
@@ -22384,7 +23009,7 @@ packages:
dependencies:
'@babel/core': 7.28.0
'@svgr/babel-preset': 8.1.0(@babel/core@7.28.0)
- '@svgr/core': 8.1.0(typescript@5.8.3)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
'@svgr/hast-util-to-babel-ast': 8.0.0
svg-parser: 2.0.4
transitivePeerDependencies:
@@ -22430,6 +23055,21 @@ packages:
svgo: 3.3.2
transitivePeerDependencies:
- typescript
+ dev: true
+
+ /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.9.3):
+ resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@svgr/core': '*'
+ dependencies:
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ cosmiconfig: 8.3.6(typescript@5.9.3)
+ deepmerge: 4.3.1
+ svgo: 3.3.2
+ transitivePeerDependencies:
+ - typescript
+ dev: false
/@svgr/webpack@8.1.0(typescript@5.8.3):
resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
@@ -22446,6 +23086,24 @@ packages:
transitivePeerDependencies:
- supports-color
- typescript
+ dev: true
+
+ /@svgr/webpack@8.1.0(typescript@5.9.3):
+ resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/core': 7.28.0
+ '@babel/plugin-transform-react-constant-elements': 7.25.1(@babel/core@7.28.0)
+ '@babel/preset-env': 7.28.0(@babel/core@7.28.0)
+ '@babel/preset-react': 7.27.1(@babel/core@7.28.0)
+ '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0)
+ '@svgr/core': 8.1.0(typescript@5.9.3)
+ '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0)
+ '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.9.3)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: false
/@swc-node/core@1.13.3(@swc/core@1.7.26)(@swc/types@0.1.25):
resolution: {integrity: sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==}
@@ -22868,6 +23526,18 @@ packages:
dom-accessibility-api: 0.6.3
lodash: 4.17.21
redent: 3.0.0
+ dev: true
+
+ /@testing-library/jest-dom@6.9.1:
+ resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==}
+ engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
+ dependencies:
+ '@adobe/css-tools': 4.4.0
+ aria-query: 5.3.2
+ css.escape: 1.5.1
+ dom-accessibility-api: 0.6.3
+ picocolors: 1.1.1
+ redent: 3.0.0
/@testing-library/react-hooks@8.0.1(@types/react@18.0.38)(react-dom@18.3.1)(react-test-renderer@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==}
@@ -22912,7 +23582,7 @@ packages:
react-dom: 18.3.1(react@18.3.1)
dev: true
- /@testing-library/react@16.1.0(@testing-library/dom@10.4.1)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1):
+ /@testing-library/react@16.1.0(@testing-library/dom@10.4.1)(@types/react@18.3.27)(react-dom@18.3.1)(react@18.3.1):
resolution: {integrity: sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==}
engines: {node: '>=18'}
peerDependencies:
@@ -22929,7 +23599,7 @@ packages:
dependencies:
'@babel/runtime': 7.28.2
'@testing-library/dom': 10.4.1
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
dev: true
@@ -23117,6 +23787,12 @@ packages:
'@types/node': 18.16.9
dev: true
+ /@types/cors@2.8.19:
+ resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
+ dependencies:
+ '@types/node': 20.12.14
+ dev: true
+
/@types/cross-spawn@6.0.6:
resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==}
dependencies:
@@ -23379,6 +24055,10 @@ packages:
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
dev: true
+ /@types/estree@1.0.5:
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ dev: true
+
/@types/estree@1.0.6:
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
@@ -23426,6 +24106,13 @@ packages:
resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==}
dev: true
+ /@types/fs-extra@11.0.4:
+ resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
+ dependencies:
+ '@types/jsonfile': 6.1.4
+ '@types/node': 20.12.14
+ dev: true
+
/@types/fs-extra@8.1.5:
resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==}
dependencies:
@@ -23489,7 +24176,7 @@ packages:
/@types/hoist-non-react-statics@3.3.5:
resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==}
dependencies:
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
hoist-non-react-statics: 3.3.2
/@types/html-minifier-terser@6.1.0:
@@ -23565,6 +24252,12 @@ packages:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true
+ /@types/jsonfile@6.1.4:
+ resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==}
+ dependencies:
+ '@types/node': 20.12.14
+ dev: true
+
/@types/keygrip@1.0.6:
resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==}
dev: true
@@ -23591,7 +24284,7 @@ packages:
/@types/loadable__component@5.13.9:
resolution: {integrity: sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==}
dependencies:
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
/@types/lodash-es@4.17.12:
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
@@ -23758,25 +24451,25 @@ packages:
/@types/react-helmet@6.1.11:
resolution: {integrity: sha512-0QcdGLddTERotCXo3VFlUSWO3ztraw8nZ6e3zJSgG7apwV5xt+pJUS8ewPBqT4NYB1optGLprNQzFleIY84u/g==}
dependencies:
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
/@types/react-router-dom@5.3.3:
resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
'@types/react-router': 5.1.20
/@types/react-router@5.1.20:
resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
/@types/react-test-renderer@19.1.0:
resolution: {integrity: sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ==}
dependencies:
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
dev: true
/@types/react@18.0.38:
@@ -23799,6 +24492,12 @@ packages:
'@types/prop-types': 15.7.13
csstype: 3.1.3
+ /@types/react@18.3.27:
+ resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==}
+ dependencies:
+ '@types/prop-types': 15.7.13
+ csstype: 3.2.3
+
/@types/react@19.1.8:
resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==}
dependencies:
@@ -23880,12 +24579,18 @@ packages:
resolution: {integrity: sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==}
dependencies:
'@types/hoist-non-react-statics': 3.3.5
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
csstype: 3.1.3
/@types/stylis@4.2.0:
resolution: {integrity: sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==}
+ /@types/tapable@2.2.7:
+ resolution: {integrity: sha512-D6QzACV9vNX3r8HQQNTOnpG+Bv1rko+yEA82wKs3O9CQ5+XW7HI7TED17/UE7+5dIxyxZIWTxKbsBeF6uKFCwA==}
+ dependencies:
+ tapable: 2.2.1
+ dev: true
+
/@types/tough-cookie@4.0.5:
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
dev: true
@@ -24032,7 +24737,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3):
+ /@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3):
resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -24044,11 +24749,11 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0
- '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3)
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 6.21.0
debug: 4.4.3(supports-color@8.1.1)
eslint: 8.57.1
- typescript: 5.8.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -24303,7 +25008,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3):
+ /@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3):
resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
@@ -24319,8 +25024,8 @@ packages:
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.7.3
- ts-api-utils: 1.3.0(typescript@5.8.3)
- typescript: 5.8.3
+ ts-api-utils: 1.3.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -24558,6 +25263,160 @@ packages:
unhead: 2.0.19
dev: false
+ /@unrs/resolver-binding-android-arm-eabi@1.11.1:
+ resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-android-arm64@1.11.1:
+ resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-darwin-arm64@1.11.1:
+ resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-darwin-x64@1.11.1:
+ resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-freebsd-x64@1.11.1:
+ resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1:
+ resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-arm-musleabihf@1.11.1:
+ resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-arm64-gnu@1.11.1:
+ resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-arm64-musl@1.11.1:
+ resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-ppc64-gnu@1.11.1:
+ resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-riscv64-gnu@1.11.1:
+ resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-riscv64-musl@1.11.1:
+ resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-s390x-gnu@1.11.1:
+ resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-x64-gnu@1.11.1:
+ resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-linux-x64-musl@1.11.1:
+ resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-wasm32-wasi@1.11.1:
+ resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
+ engines: {node: '>=14.0.0'}
+ cpu: [wasm32]
+ requiresBuild: true
+ dependencies:
+ '@napi-rs/wasm-runtime': 0.2.12
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-win32-arm64-msvc@1.11.1:
+ resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-win32-ia32-msvc@1.11.1:
+ resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@unrs/resolver-binding-win32-x64-msvc@1.11.1:
+ resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@vercel/build-utils@7.11.0:
resolution: {integrity: sha512-UFrx1hNIjNJJkd0NZrYfaOrmcWhQmrVsbKe9o3L9jX9J1iufG685wIZ9tFCKKC0Fa2HWbNDNzNxrE5SCAS2lyA==}
dev: false
@@ -25088,11 +25947,45 @@ packages:
chai: 5.2.1
tinyrainbow: 2.0.0
+ /@vitest/expect@3.2.4:
+ resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
+ dependencies:
+ '@types/chai': 5.2.3
+ '@vitest/spy': 3.2.4
+ '@vitest/utils': 3.2.4
+ chai: 5.2.1
+ tinyrainbow: 2.0.0
+ dev: true
+
+ /@vitest/mocker@3.2.4(msw@1.3.4)(vite@5.4.21):
+ resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+ dependencies:
+ '@vitest/spy': 3.2.4
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ msw: 1.3.4(encoding@0.1.13)(typescript@5.8.3)
+ vite: 5.4.21(@types/node@18.16.9)(less@4.4.2)(stylus@0.64.0)
+ dev: true
+
/@vitest/pretty-format@3.0.9:
resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==}
dependencies:
tinyrainbow: 2.0.0
+ /@vitest/pretty-format@3.2.4:
+ resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
+ dependencies:
+ tinyrainbow: 2.0.0
+ dev: true
+
/@vitest/runner@1.2.2:
resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==}
dependencies:
@@ -25109,6 +26002,14 @@ packages:
pathe: 1.1.2
dev: true
+ /@vitest/runner@3.2.4:
+ resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==}
+ dependencies:
+ '@vitest/utils': 3.2.4
+ pathe: 2.0.3
+ strip-literal: 3.1.0
+ dev: true
+
/@vitest/snapshot@1.2.2:
resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==}
dependencies:
@@ -25125,6 +26026,14 @@ packages:
pretty-format: 29.7.0
dev: true
+ /@vitest/snapshot@3.2.4:
+ resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==}
+ dependencies:
+ '@vitest/pretty-format': 3.2.4
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ dev: true
+
/@vitest/spy@1.2.2:
resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==}
dependencies:
@@ -25142,6 +26051,12 @@ packages:
dependencies:
tinyspy: 3.0.2
+ /@vitest/spy@3.2.4:
+ resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
+ dependencies:
+ tinyspy: 4.0.4
+ dev: true
+
/@vitest/ui@1.6.0(vitest@1.6.0):
resolution: {integrity: sha512-k3Lyo+ONLOgylctiGovRKy7V4+dIN2yxstX3eY5cWFXH6WP+ooVX79YSyi0GagdTQzLmT43BF27T0s6dOIPBXA==}
peerDependencies:
@@ -25182,6 +26097,14 @@ packages:
loupe: 3.1.4
tinyrainbow: 2.0.0
+ /@vitest/utils@3.2.4:
+ resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
+ dependencies:
+ '@vitest/pretty-format': 3.2.4
+ loupe: 3.1.4
+ tinyrainbow: 2.0.0
+ dev: true
+
/@volar/language-core@1.11.1:
resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==}
dependencies:
@@ -27664,6 +28587,10 @@ packages:
'@babel/types': 7.28.5
dev: true
+ /background-only@0.0.1:
+ resolution: {integrity: sha512-YXR2zshAf3qs3jnpApQaDUG0x4L6YWpSZfLDhdeiCFxfp/n8YwfoAQ1hAigEF3VpXOMOJeZYFWtBbiFv/v2Qfg==}
+ dev: true
+
/bail@1.0.5:
resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==}
dev: true
@@ -27687,6 +28614,11 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ /base64id@2.0.0:
+ resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
+ engines: {node: ^4.5.0 || >= 5.9}
+ dev: true
+
/base@0.11.2:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: '>=0.10.0'}
@@ -27964,6 +28896,10 @@ packages:
pako: 1.0.11
dev: true
+ /browserslist-load-config@1.0.1:
+ resolution: {integrity: sha512-orLR5HAoQugQNVUXUwNd+GAAwl3H64KLIwoMFBNW0AbMSqX2Lxs4ZV2/5UoNrVQlQqF9ygychiu7Svr/99bLtg==}
+ dev: true
+
/browserslist-to-es-version@1.0.0:
resolution: {integrity: sha512-i6dR03ClGy9ti97FSa4s0dpv01zW/t5VbvGjFfTLsrRQFsPgSeyGkCrlU7BTJuI5XDHVY5S2JgDnDsvQXifJ8w==}
dependencies:
@@ -28306,7 +29242,7 @@ packages:
assertion-error: 2.0.1
check-error: 2.1.1
deep-eql: 5.0.2
- loupe: 3.1.1
+ loupe: 3.1.4
pathval: 2.0.0
/chalk-template@0.4.0:
@@ -29528,6 +30464,22 @@ packages:
parse-json: 5.2.0
path-type: 4.0.0
typescript: 5.8.3
+ dev: true
+
+ /cosmiconfig@8.3.6(typescript@5.9.3):
+ resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ typescript: 5.9.3
/cosmiconfig@9.0.0(typescript@5.0.4):
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
@@ -29836,6 +30788,41 @@ packages:
webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
dev: false
+ /css-minimizer-webpack-plugin@5.0.1(esbuild@0.25.0)(webpack@5.98.0):
+ resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
+ engines: {node: '>= 14.15.0'}
+ peerDependencies:
+ '@parcel/css': '*'
+ '@swc/css': '*'
+ clean-css: '*'
+ csso: '*'
+ esbuild: '*'
+ lightningcss: '*'
+ webpack: ^5.0.0
+ peerDependenciesMeta:
+ '@parcel/css':
+ optional: true
+ '@swc/css':
+ optional: true
+ clean-css:
+ optional: true
+ csso:
+ optional: true
+ esbuild:
+ optional: true
+ lightningcss:
+ optional: true
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.31
+ cssnano: 6.1.2(postcss@8.4.38)
+ esbuild: 0.25.0
+ jest-worker: 29.7.0
+ postcss: 8.4.38
+ schema-utils: 4.3.2
+ serialize-javascript: 6.0.2
+ webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
+ dev: true
+
/css-minimizer-webpack-plugin@5.0.1(esbuild@0.25.0)(webpack@5.99.9):
resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==}
engines: {node: '>= 14.15.0'}
@@ -29953,6 +30940,14 @@ packages:
mdn-data: 2.0.30
source-map-js: 1.2.1
+ /css-tree@3.1.0:
+ resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+ dependencies:
+ mdn-data: 2.12.2
+ source-map-js: 1.2.1
+ dev: true
+
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
engines: {node: '>= 6'}
@@ -30167,12 +31162,23 @@ packages:
cssom: 0.3.8
dev: true
+ /cssstyle@4.6.0:
+ resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@asamuzakjp/css-color': 3.2.0
+ rrweb-cssom: 0.8.0
+ dev: true
+
/csstype@3.1.2:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
/csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ /csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
/cuint@0.2.2:
resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==}
dev: true
@@ -30364,6 +31370,14 @@ packages:
whatwg-url: 11.0.0
dev: true
+ /data-urls@5.0.0:
+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
+ engines: {node: '>=18'}
+ dependencies:
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ dev: true
+
/data-view-buffer@1.0.1:
resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
engines: {node: '>= 0.4'}
@@ -30552,6 +31566,10 @@ packages:
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
dev: true
+ /decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+ dev: true
+
/decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
dependencies:
@@ -31125,6 +32143,38 @@ packages:
objectorarray: 1.0.5
dev: true
+ /engine.io-parser@5.2.3:
+ resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
+ engines: {node: '>=10.0.0'}
+ dev: true
+
+ /engine.io@6.6.4:
+ resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
+ engines: {node: '>=10.2.0'}
+ dependencies:
+ '@types/cors': 2.8.19
+ '@types/node': 20.12.14
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cookie: 0.7.2
+ cors: 2.8.5
+ debug: 4.3.7
+ engine.io-parser: 5.2.3
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /enhanced-resolve@5.12.0:
+ resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+ dev: true
+
/enhanced-resolve@5.17.1:
resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
engines: {node: '>=10.13.0'}
@@ -31212,6 +32262,10 @@ packages:
accepts: 1.3.8
escape-html: 1.0.3
+ /errorstacks@2.4.1:
+ resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==}
+ dev: true
+
/es-abstract@1.23.3:
resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
engines: {node: '>= 0.4'}
@@ -32953,6 +34007,11 @@ packages:
dependencies:
homedir-polyfill: 1.0.3
+ /expect-type@1.2.2:
+ resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==}
+ engines: {node: '>=12.0.0'}
+ dev: true
+
/expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -33671,7 +34730,7 @@ packages:
/forever-agent@0.6.1:
resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==}
- /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.8.3)(webpack@5.98.0):
+ /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.8.3)(webpack@5.99.9):
resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==}
engines: {node: '>=12.13.0', yarn: '>=1.0.0'}
peerDependencies:
@@ -33695,10 +34754,10 @@ packages:
semver: 7.6.3
tapable: 2.2.1
typescript: 5.8.3
- webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
- dev: false
+ webpack: 5.99.9(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
+ dev: true
- /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.8.3)(webpack@5.99.9):
+ /fork-ts-checker-webpack-plugin@7.2.13(typescript@5.9.3)(webpack@5.98.0):
resolution: {integrity: sha512-fR3WRkOb4bQdWB/y7ssDUlVdrclvwtyCUIHCfivAoYxq9dF7XfrDKbMdZIfwJ7hxIAqkYSGeU7lLJE6xrxIBdg==}
engines: {node: '>=12.13.0', yarn: '>=1.0.0'}
peerDependencies:
@@ -33721,9 +34780,9 @@ packages:
schema-utils: 3.3.0
semver: 7.6.3
tapable: 2.2.1
- typescript: 5.8.3
- webpack: 5.99.9(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
- dev: true
+ typescript: 5.9.3
+ webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
+ dev: false
/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.98.0):
resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==}
@@ -34062,6 +35121,7 @@ packages:
/get-func-name@2.0.2:
resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
+ dev: true
/get-intrinsic@1.3.0:
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
@@ -35028,12 +36088,23 @@ packages:
readable-stream: 2.3.8
wbuf: 1.7.3
+ /htm@3.1.1:
+ resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
+ dev: true
+
/html-encoding-sniffer@3.0.0:
resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
engines: {node: '>=12'}
dependencies:
whatwg-encoding: 2.0.0
+ /html-encoding-sniffer@4.0.0:
+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ whatwg-encoding: 3.1.1
+ dev: true
+
/html-entities@2.5.2:
resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==}
dev: true
@@ -37122,6 +38193,10 @@ packages:
resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
dev: true
+ /js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+ dev: true
+
/js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -37213,7 +38288,7 @@ packages:
whatwg-encoding: 2.0.0
whatwg-mimetype: 3.0.0
whatwg-url: 11.0.0
- ws: 8.18.3
+ ws: 8.18.0
xml-name-validator: 4.0.0
transitivePeerDependencies:
- bufferutil
@@ -37221,6 +38296,41 @@ packages:
- utf-8-validate
dev: true
+ /jsdom@26.1.0:
+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+ dependencies:
+ cssstyle: 4.6.0
+ data-urls: 5.0.0
+ decimal.js: 10.6.0
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.22
+ parse5: 7.3.0
+ rrweb-cssom: 0.8.0
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.1.2
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.2.0
+ ws: 8.18.0
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/jsesc@3.0.2:
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
engines: {node: '>=6'}
@@ -37234,6 +38344,11 @@ packages:
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+ /json-cycle@1.5.0:
+ resolution: {integrity: sha512-GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w==}
+ engines: {node: '>= 4'}
+ dev: true
+
/json-parse-better-errors@1.0.2:
resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
@@ -37259,6 +38374,10 @@ packages:
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ /json-stream-stringify@3.0.1:
+ resolution: {integrity: sha512-vuxs3G1ocFDiAQ/SX0okcZbtqXwgj1g71qE9+vrjJ2EkjKQlEFDAcUNRxRU8O+GekV4v5cM2qXP0Wyt/EMDBiQ==}
+ dev: true
+
/json-stringify-safe@5.0.1:
resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
@@ -37689,6 +38808,11 @@ packages:
resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ /lines-and-columns@2.0.4:
+ resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
/lint-staged@13.1.4:
resolution: {integrity: sha512-pJRmnRA4I4Rcc1k9GZIh9LQJlolCVDHqtJpIgPY7t99XY3uXXmUeDfhRLELYLgUFJPmEsWevTqarex9acSfx2A==}
engines: {node: ^14.13.1 || >=16.0.0}
@@ -37973,6 +39097,10 @@ packages:
/lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+ /lodash.unionby@4.8.0:
+ resolution: {integrity: sha512-e60kn4GJIunNkw6v9MxRnUuLYI/Tyuanch7ozoCtk/1irJTYBj+qNTxr5B3qVflmJhwStJBv387Cb+9VOfABMg==}
+ dev: true
+
/lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
@@ -38075,11 +39203,6 @@ packages:
get-func-name: 2.0.2
dev: true
- /loupe@3.1.1:
- resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
- dependencies:
- get-func-name: 2.0.2
-
/loupe@3.1.4:
resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==}
@@ -38534,6 +39657,10 @@ packages:
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+ /mdn-data@2.12.2:
+ resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
+ dev: true
+
/mdurl@1.0.1:
resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
dev: true
@@ -39545,6 +40672,17 @@ packages:
webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.25.5)(webpack-cli@5.1.4)
dev: true
+ /mini-css-extract-plugin@2.9.4(webpack@5.98.0):
+ resolution: {integrity: sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==}
+ engines: {node: '>= 12.13.0'}
+ peerDependencies:
+ webpack: ^5.0.0
+ dependencies:
+ schema-utils: 4.3.3
+ tapable: 2.2.1
+ webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
+ dev: true
+
/mini-svg-data-uri@1.4.4:
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
hasBin: true
@@ -39863,6 +41001,12 @@ packages:
- supports-color
dev: true
+ /napi-postinstall@0.3.4:
+ resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ hasBin: true
+ dev: true
+
/natural-compare-lite@1.4.0:
resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
dev: true
@@ -40572,6 +41716,10 @@ packages:
resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==}
dev: true
+ /nwsapi@2.2.22:
+ resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
+ dev: true
+
/nx@20.1.1(@swc-node/register@1.10.10)(@swc/core@1.7.26):
resolution: {integrity: sha512-bLDEDBUuAvFC5b74QUnmJxUHTRa0mkc2wRPmb2rN3d1VlTFjzKTT9ClJTR1emp/DDO620zyAmVCDVKmnSZNFoQ==}
hasBin: true
@@ -41347,6 +42495,12 @@ packages:
dependencies:
entities: 4.5.0
+ /parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ dependencies:
+ entities: 6.0.0
+ dev: true
+
/parseley@0.12.1:
resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==}
dependencies:
@@ -43058,7 +44212,7 @@ packages:
svelte-eslint-parser:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3)
+ '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3)
common-tags: 1.8.2
dlv: 1.1.3
eslint: 8.57.1
@@ -43068,7 +44222,7 @@ packages:
prettier: 3.3.3
pretty-format: 29.7.0
require-relative: 0.8.7
- typescript: 5.8.3
+ typescript: 5.9.3
vue-eslint-parser: 9.4.3(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
@@ -45117,6 +46271,14 @@ packages:
typescript: 5.8.3
dev: true
+ /react-docgen-typescript@2.2.2(typescript@5.9.3):
+ resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==}
+ peerDependencies:
+ typescript: '>= 4.3.x'
+ dependencies:
+ typescript: 5.9.3
+ dev: true
+
/react-docgen@6.0.0-alpha.3:
resolution: {integrity: sha512-DDLvB5EV9As1/zoUsct6Iz2Cupw9FObEGD3DMcIs3EDFIoSKyz8FZtoWj3Wj+oodrU4/NfidN0BL5yrapIcTSA==}
engines: {node: '>=12.0.0'}
@@ -46678,6 +47840,10 @@ packages:
fsevents: 2.3.3
dev: true
+ /rrweb-cssom@0.8.0:
+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
+ dev: true
+
/rsbuild-plugin-dts@0.10.6(@rsbuild/core@1.4.12)(typescript@5.8.3):
resolution: {integrity: sha512-rVP82fFMDHW0GirhYx+w2bER1HhkOKJ8e/bAAF2OkMUP2k2fviMpl/gsnbO8KI9vcSqsQE2QXHkj781m6W84Ow==}
engines: {node: '>=16.7.0'}
@@ -46744,6 +47910,28 @@ packages:
typescript: 5.8.3
dev: true
+ /rsbuild-plugin-dts@0.9.0(@rsbuild/core@1.3.21)(typescript@5.9.3):
+ resolution: {integrity: sha512-cWlBxFWo2t2wVUFIa0nnGUkqaHsSEQuGr4/vh1W9aPtFxjuu3UYnDK8b6CYmbLpUbiRB1R4gkjARoaBx74gyTQ==}
+ engines: {node: '>=16.7.0'}
+ peerDependencies:
+ '@microsoft/api-extractor': ^7
+ '@rsbuild/core': 1.x
+ typescript: ^5
+ peerDependenciesMeta:
+ '@microsoft/api-extractor':
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@ast-grep/napi': 0.37.0
+ '@rsbuild/core': 1.3.21
+ magic-string: 0.30.17
+ picocolors: 1.1.1
+ tinyglobby: 0.2.14
+ tsconfig-paths: 4.2.0
+ typescript: 5.9.3
+ dev: true
+
/rsbuild-plugin-dts@0.9.2(@rsbuild/core@1.4.0-beta.2)(typescript@5.8.3):
resolution: {integrity: sha512-mVpf4J/auMSBy5iBNDaxTB8yYipENRTMUq8bQQJQdvzFuH2arQXrQ874ukEJ67XUZXhmxvc7ooEAR3UWKNiPtQ==}
engines: {node: '>=16.7.0'}
@@ -46813,6 +48001,10 @@ packages:
resolution: {integrity: sha512-antALPJaKBRPBU1X2q9t085K4htWDOOv/K1qhTUk7h0l1ePU/KbDqKJn19eKP0dk7PqMioeA0+fu3gyPXCsXxQ==}
engines: {node: '>=14.17.6'}
+ /rslog@1.3.0:
+ resolution: {integrity: sha512-93DpwwaiRrLz7fJ5z6Uwb171hHBws1VVsWjU6IruLFX63BicLA44QNu0sfn3guKHnBHZMFSKO8akfx5QhjuegQ==}
+ dev: true
+
/rspack-manifest-plugin@5.0.3(@rspack/core@1.3.9):
resolution: {integrity: sha512-DCLSu5KE/ReIOhK2JTCQSI0JIgJ40E2i+2noqINtfhu12+UsK29dgMITEHIpYNR0JggcmmgZIDxPxm9dOV/2vQ==}
engines: {node: '>=14'}
@@ -48132,6 +49324,44 @@ packages:
- supports-color
dev: true
+ /socket.io-adapter@2.5.5:
+ resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
+ dependencies:
+ debug: 4.3.7
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /socket.io-parser@4.2.4:
+ resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@socket.io/component-emitter': 3.1.2
+ debug: 4.3.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /socket.io@4.8.1:
+ resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
+ engines: {node: '>=10.2.0'}
+ dependencies:
+ accepts: 1.3.8
+ base64id: 2.0.0
+ cors: 2.8.5
+ debug: 4.3.7
+ engine.io: 6.6.4
+ socket.io-adapter: 2.5.5
+ socket.io-parser: 4.2.4
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/sockjs@0.3.24:
resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==}
dependencies:
@@ -48421,6 +49651,10 @@ packages:
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
+ /std-env@3.10.0:
+ resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
+ dev: true
+
/std-env@3.7.0:
resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
dev: true
@@ -48430,7 +49664,7 @@ packages:
dependencies:
graceful-fs: 4.2.11
- /storybook-addon-rslib@1.0.1(@rsbuild/core@1.3.21)(@rslib/core@0.9.0)(storybook-builder-rsbuild@2.1.2)(typescript@5.8.3):
+ /storybook-addon-rslib@1.0.1(@rsbuild/core@1.3.21)(@rslib/core@0.9.0)(storybook-builder-rsbuild@2.1.2)(typescript@5.9.3):
resolution: {integrity: sha512-8V2rH61GCi9QGLoV+RwdWZ1IY4mdWMsLDp5bflbs5MyAaYd+jA+Bz3GAngv05lBjb+KnJHhZ6jWvunxUTUkiCQ==}
peerDependencies:
'@rsbuild/core': ^1.0.1
@@ -48442,12 +49676,12 @@ packages:
optional: true
dependencies:
'@rsbuild/core': 1.3.21
- '@rslib/core': 0.9.0(typescript@5.8.3)
- storybook-builder-rsbuild: 2.1.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.8.3)
- typescript: 5.8.3
+ '@rslib/core': 0.9.0(typescript@5.9.3)
+ storybook-builder-rsbuild: 2.1.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.9.3)
+ typescript: 5.9.3
dev: true
- /storybook-builder-rsbuild@1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.8.3):
+ /storybook-builder-rsbuild@1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.9.3):
resolution: {integrity: sha512-sfr0qg3r76A9qlQRXE3ekAiJQM8v31skfuC+qc3m1GPoUeerfiBAWUOFBMdpNqUimt0eGSM5HUiY/vs3VRd3LQ==}
peerDependencies:
'@rsbuild/core': ^1.0.1
@@ -48458,7 +49692,7 @@ packages:
optional: true
dependencies:
'@rsbuild/core': 1.3.21
- '@rsbuild/plugin-type-check': 1.2.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.8.3)
+ '@rsbuild/plugin-type-check': 1.2.4(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.9.3)
'@storybook/addon-docs': 8.6.14(@types/react@18.3.11)(storybook@8.4.2)
'@storybook/core-webpack': 8.6.12(storybook@8.4.2)
browser-assert: 1.2.1
@@ -48475,7 +49709,7 @@ packages:
sirv: 2.0.4
storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- typescript: 5.8.3
+ typescript: 5.9.3
url: 0.11.4
util: 0.12.5
util-deprecate: 1.0.2
@@ -48484,7 +49718,7 @@ packages:
- '@types/react'
dev: true
- /storybook-builder-rsbuild@2.1.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.8.3):
+ /storybook-builder-rsbuild@2.1.2(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.9.3):
resolution: {integrity: sha512-UW1e0qyizVAR8RfVoU9A1a02cyCtKVImJoGcORyGbCqFRdrvT2n82jK6S/a/NSE0r8MAWWqZNK1SKaOS7B31lQ==}
peerDependencies:
'@rsbuild/core': ^1.5.0
@@ -48501,7 +49735,7 @@ packages:
optional: true
dependencies:
'@rsbuild/core': 1.3.21
- '@rsbuild/plugin-type-check': 1.2.4(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.8.3)
+ '@rsbuild/plugin-type-check': 1.2.4(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(typescript@5.9.3)
'@storybook/addon-docs': 9.1.16(@types/react@18.3.11)(storybook@8.4.2)
'@storybook/core-webpack': 9.1.16(storybook@8.4.2)
browser-assert: 1.2.1
@@ -48519,7 +49753,7 @@ packages:
sirv: 2.0.4
storybook: 8.4.2(prettier@3.3.3)
ts-dedent: 2.2.0
- typescript: 5.8.3
+ typescript: 5.9.3
url: 0.11.4
util: 0.12.5
util-deprecate: 1.0.2
@@ -48528,7 +49762,7 @@ packages:
- '@types/react'
dev: true
- /storybook-react-rsbuild@1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.40.0)(storybook@8.4.2)(typescript@5.8.3)(webpack@5.98.0):
+ /storybook-react-rsbuild@1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(react-dom@18.3.1)(react@18.3.1)(rollup@4.40.0)(storybook@8.4.2)(typescript@5.9.3)(webpack@5.98.0):
resolution: {integrity: sha512-OCTWHrOCNatiadKND7/uE211KytgS/rLmJc/cR9ovMZ9Y5jD+n8NlHUjw0fUdCWNpPUx3p/Ey0Z2usG6YO+CeQ==}
engines: {node: '>=18.0.0'}
peerDependencies:
@@ -48543,20 +49777,20 @@ packages:
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.40.0)
'@rsbuild/core': 1.3.21
- '@storybook/react': 8.6.12(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.8.3)
- '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.8.3)(webpack@5.98.0)
+ '@storybook/react': 8.6.12(react-dom@18.3.1)(react@18.3.1)(storybook@8.4.2)(typescript@5.9.3)
+ '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.9.3)(webpack@5.98.0)
'@types/node': 18.16.9
find-up: 5.0.0
magic-string: 0.30.17
react: 18.3.1
react-docgen: 7.1.1
- react-docgen-typescript: 2.2.2(typescript@5.8.3)
+ react-docgen-typescript: 2.2.2(typescript@5.9.3)
react-dom: 18.3.1(react@18.3.1)
resolve: 1.22.10
storybook: 8.4.2(prettier@3.3.3)
- storybook-builder-rsbuild: 1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.8.3)
+ storybook-builder-rsbuild: 1.0.1(@rsbuild/core@1.3.21)(@rspack/core@1.3.9)(@types/react@18.3.11)(storybook@8.4.2)(typescript@5.9.3)
tsconfig-paths: 4.2.0
- typescript: 5.8.3
+ typescript: 5.9.3
transitivePeerDependencies:
- '@rspack/core'
- '@storybook/test'
@@ -48605,7 +49839,7 @@ packages:
optional: true
dependencies:
'@storybook/global': 5.0.0
- '@testing-library/jest-dom': 6.6.3
+ '@testing-library/jest-dom': 6.9.1
'@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
'@vitest/expect': 3.0.9
'@vitest/spy': 3.0.9
@@ -48928,6 +50162,12 @@ packages:
js-tokens: 9.0.0
dev: true
+ /strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
+ dependencies:
+ js-tokens: 9.0.1
+ dev: true
+
/strnum@1.1.2:
resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
@@ -49394,6 +50634,11 @@ packages:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
+ /tapable@2.2.2:
+ resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
+ engines: {node: '>=6'}
+ dev: true
+
/tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
dependencies:
@@ -49978,7 +51223,6 @@ packages:
/tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- dev: false
/tinyglobby@0.2.10:
resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
@@ -50024,6 +51268,11 @@ packages:
resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
engines: {node: '>=14.0.0'}
+ /tinyspy@4.0.4:
+ resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==}
+ engines: {node: '>=14.0.0'}
+ dev: true
+
/tldts-core@6.1.86:
resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
@@ -50147,6 +51396,13 @@ packages:
punycode: 2.3.1
dev: true
+ /tr46@5.1.1:
+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
+ engines: {node: '>=18'}
+ dependencies:
+ punycode: 2.3.1
+ dev: true
+
/traverse@0.6.8:
resolution: {integrity: sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==}
engines: {node: '>= 0.4'}
@@ -50210,28 +51466,16 @@ packages:
typescript: 5.8.3
dev: true
- /ts-checker-rspack-plugin@1.1.3(@rspack/core@1.3.9)(typescript@5.8.3):
- resolution: {integrity: sha512-VpB+L+F330T484qGp5KqyoU00PRlUlz4kO1ifBpQ5CkKXEFXye8nmeXlZ5rvZAXjFAMRFiG+sI9OewO6Bd9UvA==}
- engines: {node: '>=16.0.0'}
+ /ts-api-utils@1.3.0(typescript@5.9.3):
+ resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
+ engines: {node: '>=16'}
peerDependencies:
- '@rspack/core': ^1.0.0
- typescript: '>=3.8.0'
- peerDependenciesMeta:
- '@rspack/core':
- optional: true
+ typescript: '>=4.2.0'
dependencies:
- '@babel/code-frame': 7.27.1
- '@rspack/core': 1.3.9(@swc/helpers@0.5.13)
- '@rspack/lite-tapable': 1.0.1
- chokidar: 3.6.0
- is-glob: 4.0.3
- memfs: 4.46.0
- minimatch: 9.0.5
- picocolors: 1.1.1
- typescript: 5.8.3
+ typescript: 5.9.3
dev: true
- /ts-checker-rspack-plugin@1.1.4(@rspack/core@1.3.9)(typescript@5.0.4):
+ /ts-checker-rspack-plugin@1.1.4(@rspack/core@1.3.9)(typescript@5.8.3):
resolution: {integrity: sha512-lDpKuAubxUlsonUE1LpZS5fw7tfjutNb0lwjAo0k8OcxpWv/q18ytaD6eZXdjrFdTEFNIHtKp9dNkUKGky8SgA==}
engines: {node: '>=16.0.0'}
peerDependencies:
@@ -50249,12 +51493,11 @@ packages:
memfs: 4.46.0
minimatch: 9.0.5
picocolors: 1.1.1
- typescript: 5.0.4
+ typescript: 5.8.3
dev: true
- /ts-checker-rspack-plugin@1.1.4(@rspack/core@1.3.9)(typescript@5.5.2):
- resolution: {integrity: sha512-lDpKuAubxUlsonUE1LpZS5fw7tfjutNb0lwjAo0k8OcxpWv/q18ytaD6eZXdjrFdTEFNIHtKp9dNkUKGky8SgA==}
- engines: {node: '>=16.0.0'}
+ /ts-checker-rspack-plugin@1.1.6(@rspack/core@1.3.9)(typescript@5.0.4):
+ resolution: {integrity: sha512-DjSnkHzPMQegh8FHOKXFx3u5yCO8U9Mt0EubJBcEFd95rcgo9Xs1FWREeFX3iFMCF8hFyAFVitvkruR4iwH31g==}
peerDependencies:
'@rspack/core': ^1.0.0
typescript: '>=3.8.0'
@@ -50267,15 +51510,14 @@ packages:
'@rspack/lite-tapable': 1.0.1
chokidar: 3.6.0
is-glob: 4.0.3
- memfs: 4.46.0
+ memfs: 4.50.0
minimatch: 9.0.5
picocolors: 1.1.1
- typescript: 5.5.2
+ typescript: 5.0.4
dev: true
- /ts-checker-rspack-plugin@1.1.4(@rspack/core@1.3.9)(typescript@5.8.3):
- resolution: {integrity: sha512-lDpKuAubxUlsonUE1LpZS5fw7tfjutNb0lwjAo0k8OcxpWv/q18ytaD6eZXdjrFdTEFNIHtKp9dNkUKGky8SgA==}
- engines: {node: '>=16.0.0'}
+ /ts-checker-rspack-plugin@1.1.6(@rspack/core@1.3.9)(typescript@5.5.2):
+ resolution: {integrity: sha512-DjSnkHzPMQegh8FHOKXFx3u5yCO8U9Mt0EubJBcEFd95rcgo9Xs1FWREeFX3iFMCF8hFyAFVitvkruR4iwH31g==}
peerDependencies:
'@rspack/core': ^1.0.0
typescript: '>=3.8.0'
@@ -50288,13 +51530,13 @@ packages:
'@rspack/lite-tapable': 1.0.1
chokidar: 3.6.0
is-glob: 4.0.3
- memfs: 4.46.0
+ memfs: 4.50.0
minimatch: 9.0.5
picocolors: 1.1.1
- typescript: 5.8.3
+ typescript: 5.5.2
dev: true
- /ts-checker-rspack-plugin@1.1.6(@rspack/core@1.3.9)(typescript@5.8.3):
+ /ts-checker-rspack-plugin@1.1.6(@rspack/core@1.3.9)(typescript@5.9.3):
resolution: {integrity: sha512-DjSnkHzPMQegh8FHOKXFx3u5yCO8U9Mt0EubJBcEFd95rcgo9Xs1FWREeFX3iFMCF8hFyAFVitvkruR4iwH31g==}
peerDependencies:
'@rspack/core': ^1.0.0
@@ -50311,7 +51553,7 @@ packages:
memfs: 4.50.0
minimatch: 9.0.5
picocolors: 1.1.1
- typescript: 5.8.3
+ typescript: 5.9.3
dev: true
/ts-dedent@2.2.0:
@@ -50327,7 +51569,7 @@ packages:
/ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- /ts-jest@29.0.1(@babel/core@7.28.5)(babel-jest@29.7.0)(esbuild@0.25.0)(jest@29.7.0)(typescript@5.8.3):
+ /ts-jest@29.0.1(@babel/core@7.28.5)(babel-jest@29.7.0)(esbuild@0.25.0)(jest@29.7.0)(typescript@5.9.3):
resolution: {integrity: sha512-htQOHshgvhn93QLxrmxpiQPk69+M1g7govO1g6kf6GsjCv4uvRV0znVmDrrvjUrVCnTYeY4FBxTYYYD4airyJA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -50359,7 +51601,7 @@ packages:
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.6.3
- typescript: 5.8.3
+ typescript: 5.9.3
yargs-parser: 21.1.1
dev: true
@@ -50432,7 +51674,7 @@ packages:
webpack: 5.99.9(@swc/core@1.11.31)(esbuild@0.25.5)(webpack-cli@5.1.4)
dev: true
- /ts-loader@9.5.1(typescript@5.8.3)(webpack@5.98.0):
+ /ts-loader@9.5.1(typescript@5.8.3)(webpack@5.99.9):
resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -50445,10 +51687,10 @@ packages:
semver: 7.6.3
source-map: 0.7.4
typescript: 5.8.3
- webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
- dev: false
+ webpack: 5.99.9(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
+ dev: true
- /ts-loader@9.5.1(typescript@5.8.3)(webpack@5.99.9):
+ /ts-loader@9.5.1(typescript@5.9.3)(webpack@5.98.0):
resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -50460,9 +51702,9 @@ packages:
micromatch: 4.0.8
semver: 7.6.3
source-map: 0.7.4
- typescript: 5.8.3
- webpack: 5.99.9(@swc/core@1.7.26)(esbuild@0.25.0)(webpack-cli@5.1.4)
- dev: true
+ typescript: 5.9.3
+ webpack: 5.98.0(@swc/core@1.7.26)(esbuild@0.24.0)(webpack-cli@5.1.4)
+ dev: false
/ts-morph@12.0.0:
resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==}
@@ -50566,7 +51808,7 @@ packages:
yn: 3.1.1
dev: false
- /ts-node@10.9.1(@swc/core@1.7.26)(@types/node@20.12.14)(typescript@5.8.3):
+ /ts-node@10.9.1(@swc/core@1.7.26)(@types/node@20.12.14)(typescript@5.9.3):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
@@ -50593,7 +51835,7 @@ packages:
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.8.3
+ typescript: 5.9.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: false
@@ -50986,7 +52228,7 @@ packages:
/types-react-dom@19.0.0-rc.1:
resolution: {integrity: sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==}
dependencies:
- '@types/react': 18.3.11
+ '@types/react': 18.3.27
dev: true
/types-react@19.0.0-rc.1:
@@ -51037,6 +52279,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ /typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
/typical@4.0.0:
resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==}
engines: {node: '>=8'}
@@ -51402,6 +52649,33 @@ packages:
webpack-virtual-modules: 0.6.2
dev: false
+ /unrs-resolver@1.11.1:
+ resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
+ requiresBuild: true
+ dependencies:
+ napi-postinstall: 0.3.4
+ optionalDependencies:
+ '@unrs/resolver-binding-android-arm-eabi': 1.11.1
+ '@unrs/resolver-binding-android-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-arm64': 1.11.1
+ '@unrs/resolver-binding-darwin-x64': 1.11.1
+ '@unrs/resolver-binding-freebsd-x64': 1.11.1
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
+ '@unrs/resolver-binding-linux-x64-musl': 1.11.1
+ '@unrs/resolver-binding-wasm32-wasi': 1.11.1
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
+ '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
+ dev: true
+
/unset-value@1.0.0:
resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
engines: {node: '>=0.10.0'}
@@ -51860,6 +53134,28 @@ packages:
- terser
dev: true
+ /vite-node@3.2.4(@types/node@18.16.9)(less@4.4.2)(stylus@0.64.0):
+ resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.3(supports-color@8.1.1)
+ es-module-lexer: 1.7.0
+ pathe: 2.0.3
+ vite: 5.4.21(@types/node@18.16.9)(less@4.4.2)(stylus@0.64.0)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
/vite-plugin-dts@4.3.0(@types/node@16.11.68)(rollup@4.40.0)(typescript@5.5.2)(vite@5.4.21):
resolution: {integrity: sha512-LkBJh9IbLwL6/rxh0C1/bOurDrIEmRE7joC+jFdOEEciAFPbpEKOLSAr5nNh5R7CJ45cMbksTrFfy52szzC5eA==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -52209,6 +53505,72 @@ packages:
- terser
dev: true
+ /vitest@3.2.4(@types/node@18.16.9)(@vitest/ui@1.6.0)(jsdom@26.1.0)(less@4.4.2)(msw@1.3.4)(stylus@0.64.0):
+ resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==}
+ engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/debug': ^4.1.12
+ '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
+ '@vitest/browser': 3.2.4
+ '@vitest/ui': 3.2.4
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/debug':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+ dependencies:
+ '@types/chai': 5.2.3
+ '@types/node': 18.16.9
+ '@vitest/expect': 3.2.4
+ '@vitest/mocker': 3.2.4(msw@1.3.4)(vite@5.4.21)
+ '@vitest/pretty-format': 3.2.4
+ '@vitest/runner': 3.2.4
+ '@vitest/snapshot': 3.2.4
+ '@vitest/spy': 3.2.4
+ '@vitest/ui': 1.6.0(vitest@1.6.0)
+ '@vitest/utils': 3.2.4
+ chai: 5.2.1
+ debug: 4.4.3(supports-color@8.1.1)
+ expect-type: 1.2.2
+ jsdom: 26.1.0
+ magic-string: 0.30.21
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ std-env: 3.10.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.2
+ tinyglobby: 0.2.15
+ tinypool: 1.1.1
+ tinyrainbow: 2.0.0
+ vite: 5.4.21(@types/node@18.16.9)(less@4.4.2)(stylus@0.64.0)
+ vite-node: 3.2.4(@types/node@18.16.9)(less@4.4.2)(stylus@0.64.0)
+ why-is-node-running: 2.3.0
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ dev: true
+
/vlq@1.0.1:
resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
@@ -52382,6 +53744,13 @@ packages:
xml-name-validator: 4.0.0
dev: true
+ /w3c-xmlserializer@5.0.0:
+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
+ engines: {node: '>=18'}
+ dependencies:
+ xml-name-validator: 5.0.0
+ dev: true
+
/wait-on@7.2.0:
resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==}
engines: {node: '>=12.0.0'}
@@ -53224,6 +54593,13 @@ packages:
dependencies:
iconv-lite: 0.6.3
+ /whatwg-encoding@3.1.1:
+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ iconv-lite: 0.6.3
+ dev: true
+
/whatwg-fetch@3.6.20:
resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
@@ -53232,6 +54608,11 @@ packages:
engines: {node: '>=12'}
dev: true
+ /whatwg-mimetype@4.0.0:
+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
+ engines: {node: '>=18'}
+ dev: true
+
/whatwg-url@11.0.0:
resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
engines: {node: '>=12'}
@@ -53240,6 +54621,14 @@ packages:
webidl-conversions: 7.0.0
dev: true
+ /whatwg-url@14.2.0:
+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
+ engines: {node: '>=18'}
+ dependencies:
+ tr46: 5.1.1
+ webidl-conversions: 7.0.0
+ dev: true
+
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
@@ -53463,7 +54852,6 @@ packages:
optional: true
utf-8-validate:
optional: true
- dev: false
/ws@8.18.0:
resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
@@ -53531,6 +54919,11 @@ packages:
engines: {node: '>=12'}
dev: true
+ /xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
+ dev: true
+
/xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
dev: true