diff --git a/README.md b/README.md
index 5bbc68c..d6f9097 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ Plugin build: `tsdown` (`packages/astro/tsdown.config.ts`).
Module Federation plugin: `@module-federation/vite`.
Astro bridge package in this repo: `@module-federation/astro`.
Published package source: `packages/astro`.
-Example apps: `apps/example` (see `apps/example/README.md`).
+Example apps: `apps/example` (see `apps/example/README.md`) and `apps/react`.
## Package usage
@@ -36,6 +36,7 @@ export default defineConfig({
- SSR remote imports in Astro frontmatter are handled by an SSR transform path in `@module-federation/astro`.
- That SSR path supports remote Astro components as well as plain server functions, including `await import('remote/Component')` followed by ``.
- Dev target defaults to runtime inference (`ENV_TARGET = undefined`) so client/server contexts can coexist.
+- A host consuming React remotes should configure `@astrojs/react`, `react`, and `react-dom` explicitly on the host.
## Build checks
diff --git a/apps/react/README.md b/apps/react/README.md
new file mode 100644
index 0000000..7970e9d
--- /dev/null
+++ b/apps/react/README.md
@@ -0,0 +1,18 @@
+# React federation example
+
+Scenario:
+
+- host Astro app consumes a federated React component
+- host owns React setup explicitly with `@astrojs/react`
+- federation handles the remote module loading only
+
+Apps:
+
+- host: `apps/react/host` -> `http://localhost:4331`
+- remote: `apps/react/remote` -> `http://localhost:4332`
+
+Run both:
+
+```sh
+pnpm dev:react
+```
diff --git a/apps/react/host/astro.config.mjs b/apps/react/host/astro.config.mjs
new file mode 100644
index 0000000..caff247
--- /dev/null
+++ b/apps/react/host/astro.config.mjs
@@ -0,0 +1,34 @@
+// @ts-check
+import { defineConfig } from 'astro/config';
+import node from '@astrojs/node';
+import react from '@astrojs/react';
+import { moduleFederation } from '@module-federation/astro';
+
+export default defineConfig({
+ output: 'server',
+ server: {
+ port: 4331,
+ strictPort: true,
+ },
+ preview: {
+ port: 4331,
+ strictPort: true,
+ },
+ adapter: node({
+ mode: 'standalone',
+ }),
+ integrations: [
+ react(),
+ moduleFederation({
+ name: 'react_host',
+ remotes: {
+ react_remote: 'react_remote@http://localhost:4332/mf-manifest.json',
+ },
+ ssr: {
+ localRemotes: {
+ react_remote: '../remote',
+ },
+ },
+ }),
+ ],
+});
diff --git a/apps/react/host/package.json b/apps/react/host/package.json
new file mode 100644
index 0000000..0e075c9
--- /dev/null
+++ b/apps/react/host/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "react-host",
+ "private": true,
+ "type": "module",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "astro dev --host localhost --port 4331",
+ "build": "astro build",
+ "preview": "astro preview",
+ "astro": "astro"
+ },
+ "dependencies": {
+ "@astrojs/node": "^10.0.4",
+ "@astrojs/react": "^5.0.2",
+ "@module-federation/astro": "workspace:*",
+ "astro": "^6.1.1",
+ "react": "^19.2.4",
+ "react-dom": "^19.2.4"
+ },
+ "devDependencies": {
+ "vite": "^6.4.1"
+ }
+}
diff --git a/apps/react/host/src/pages/index.astro b/apps/react/host/src/pages/index.astro
new file mode 100644
index 0000000..2c65dfb
--- /dev/null
+++ b/apps/react/host/src/pages/index.astro
@@ -0,0 +1,78 @@
+---
+import CounterCard from 'react_remote/components/CounterCard';
+
+const ssrCount = 0;
+const ssrTitle = 'Server-rendered federated React card';
+---
+
+
+
+
+
+
+ React host
+
+
+
+
+
host app
+
Astro host; React explicit, remote federated.
+
+ The host owns its React setup through @astrojs/react, react, and react-dom.
+ Federation only loads the remote module boundary.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/react/host/tsconfig.json b/apps/react/host/tsconfig.json
new file mode 100644
index 0000000..8bf91d3
--- /dev/null
+++ b/apps/react/host/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "extends": "astro/tsconfigs/strict",
+ "include": [".astro/types.d.ts", "**/*"],
+ "exclude": ["dist"]
+}
diff --git a/apps/react/remote/astro.config.mjs b/apps/react/remote/astro.config.mjs
new file mode 100644
index 0000000..2c90118
--- /dev/null
+++ b/apps/react/remote/astro.config.mjs
@@ -0,0 +1,44 @@
+// @ts-check
+import { defineConfig } from 'astro/config';
+import node from '@astrojs/node';
+import react from '@astrojs/react';
+import { moduleFederation } from '@module-federation/astro';
+
+export default defineConfig({
+ output: 'server',
+ server: {
+ port: 4332,
+ strictPort: true,
+ headers: {
+ 'Access-Control-Allow-Origin': '*',
+ 'Access-Control-Allow-Methods': 'GET, HEAD, OPTIONS',
+ },
+ },
+ preview: {
+ port: 4332,
+ strictPort: true,
+ },
+ vite: {
+ server: {
+ cors: true,
+ origin: 'http://localhost:4332',
+ },
+ },
+ adapter: node({
+ mode: 'standalone',
+ }),
+ integrations: [
+ react(),
+ moduleFederation({
+ name: 'react_remote',
+ filename: 'remoteEntry.js',
+ publicPath: 'http://localhost:4332/',
+ varFilename: 'remoteEntry.global.js',
+ manifest: true,
+ dts: false,
+ exposes: {
+ './components/CounterCard': './src/components/CounterCard.tsx',
+ },
+ }),
+ ],
+});
diff --git a/apps/react/remote/package.json b/apps/react/remote/package.json
new file mode 100644
index 0000000..79b20e6
--- /dev/null
+++ b/apps/react/remote/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "react-remote",
+ "private": true,
+ "type": "module",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "pnpm run build && astro preview --host localhost --port 4332",
+ "build": "astro build",
+ "preview": "astro preview",
+ "astro": "astro"
+ },
+ "dependencies": {
+ "@astrojs/node": "^10.0.4",
+ "@astrojs/react": "^5.0.2",
+ "@module-federation/astro": "workspace:*",
+ "astro": "^6.1.1",
+ "react": "^19.2.4",
+ "react-dom": "^19.2.4"
+ },
+ "devDependencies": {
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
+ "vite": "^6.4.1"
+ }
+}
diff --git a/apps/react/remote/src/components/CounterCard.tsx b/apps/react/remote/src/components/CounterCard.tsx
new file mode 100644
index 0000000..042546c
--- /dev/null
+++ b/apps/react/remote/src/components/CounterCard.tsx
@@ -0,0 +1,100 @@
+import React from 'react';
+
+type CounterCardProps = {
+ title: string;
+ count: number;
+ onIncrement?: () => void;
+ tone?: 'sun' | 'ink';
+};
+
+const THEMES = {
+ sun: {
+ background: 'linear-gradient(135deg, rgba(107,57,18,0.96), rgba(55,29,8,0.96))',
+ border: '#c97a1d',
+ label: '#ffbf47',
+ buttonBackground: '#ffbf47',
+ buttonText: '#18181b',
+ },
+ ink: {
+ background: 'linear-gradient(135deg, rgba(9,24,41,0.98), rgba(24,71,99,0.96))',
+ border: '#38bdf8',
+ label: '#7dd3fc',
+ buttonBackground: '#38bdf8',
+ buttonText: '#082f49',
+ },
+} as const;
+
+export default function CounterCard({
+ title,
+ count,
+ onIncrement,
+ tone = 'sun',
+}: CounterCardProps) {
+ const theme = THEMES[tone];
+
+ return (
+
+
+
+ remote: react
+
+
{title}
+
+
+
+
+ );
+}
diff --git a/apps/react/remote/src/pages/index.astro b/apps/react/remote/src/pages/index.astro
new file mode 100644
index 0000000..a4bb1fc
--- /dev/null
+++ b/apps/react/remote/src/pages/index.astro
@@ -0,0 +1,10 @@
+
+ React remote
+
+ This app exposes react_remote/components/CounterCard through Module Federation.
+ Use the host on http://localhost:4331 to verify SSR plus client rendering.
+
+
+ Manifest: /mf-manifest.json
+
+
diff --git a/apps/react/remote/tsconfig.json b/apps/react/remote/tsconfig.json
new file mode 100644
index 0000000..8bf91d3
--- /dev/null
+++ b/apps/react/remote/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "extends": "astro/tsconfigs/strict",
+ "include": [".astro/types.d.ts", "**/*"],
+ "exclude": ["dist"]
+}
diff --git a/docs/astro-source-integration-points.md b/docs/astro-source-integration-points.md
index 80afd6e..be42aa7 100644
--- a/docs/astro-source-integration-points.md
+++ b/docs/astro-source-integration-points.md
@@ -70,5 +70,6 @@ Implemented in this PoC package:
## Remaining Constraints
- SSR path depends on SSR-safe remote modules (no DOM usage).
+- React remotes are not zero-dependency on the host. Astro still needs a local renderer package plus `react`/`react-dom` available to resolve `clientEntrypoint` and `serverEntrypoint`; host config should own that setup explicitly.
- For non-Astro providers, server manifests need `ssrRemoteEntry`; MF runtime will prefer that entry in Node/server execution.
- `mf-vite` still emits serve-time warnings around `plugin:add-entry` (`emitFile()` in serve mode).
diff --git a/package.json b/package.json
index 746a09b..941c0d4 100644
--- a/package.json
+++ b/package.json
@@ -8,10 +8,15 @@
"dev": "pnpm --filter @module-federation/astro build && turbo run dev --filter=example-remote --filter=example-host",
"dev:host": "pnpm --filter @module-federation/astro build && turbo run dev --filter=example-host",
"dev:remote": "pnpm --filter @module-federation/astro build && turbo run dev --filter=example-remote",
+ "dev:react": "node ./scripts/dev-react.mjs && pnpm --filter @module-federation/astro build && turbo run dev --filter=react-remote --filter=react-host",
+ "dev:react:host": "pnpm --filter @module-federation/astro build && turbo run dev --filter=react-host",
+ "dev:react:remote": "pnpm --filter @module-federation/astro build && turbo run dev --filter=react-remote",
"build:package": "pnpm --filter @module-federation/astro build",
"build": "turbo run build --filter=@module-federation/astro",
"build:host": "turbo run build --filter=example-host",
"build:remote": "turbo run build --filter=example-remote",
+ "build:react:host": "turbo run build --filter=react-host",
+ "build:react:remote": "turbo run build --filter=react-remote",
"lint": "turbo run lint --filter=@module-federation/astro",
"fmt": "turbo run fmt --filter=@module-federation/astro",
"fmt.check": "turbo run fmt.check --filter=@module-federation/astro",
diff --git a/packages/astro/README.md b/packages/astro/README.md
index 3793db0..17de103 100644
--- a/packages/astro/README.md
+++ b/packages/astro/README.md
@@ -29,6 +29,7 @@ Notes:
- In `astro dev`, `ENV_TARGET` defaults to `undefined` so runtime infers browser vs node context.
- `mode: 'client' | 'server'` maps to MF target `'web' | 'node'` if you want to force one side.
- SSR `.astro` remote imports are transformed through an Astro SSR runtime path.
+- React remotes still need explicit host setup for `@astrojs/react`, `react`, and `react-dom`.
## `.astro` usage
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 557664d..0f4b5fd 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -46,7 +46,7 @@
"dependencies": {
"@module-federation/runtime": "2.2.3",
"@module-federation/sdk": "2.2.3",
- "@module-federation/vite": "^1.13.5"
+ "@module-federation/vite": "^1.13.6"
},
"peerDependencies": {
"astro": "^5.0.0"
diff --git a/packages/astro/src/index.ts b/packages/astro/src/index.ts
index 8069efc..95baea0 100644
--- a/packages/astro/src/index.ts
+++ b/packages/astro/src/index.ts
@@ -361,10 +361,14 @@ function resolveSsrLocalModuleFile(
const baseDir = path.join(localRemoteRoot, "src");
const candidates = [
path.join(baseDir, `${normalizedSubpath}.astro`),
+ path.join(baseDir, `${normalizedSubpath}.tsx`),
+ path.join(baseDir, `${normalizedSubpath}.jsx`),
path.join(baseDir, `${normalizedSubpath}.ts`),
path.join(baseDir, `${normalizedSubpath}.js`),
path.join(baseDir, `${normalizedSubpath}.mjs`),
path.join(baseDir, normalizedSubpath, "index.astro"),
+ path.join(baseDir, normalizedSubpath, "index.tsx"),
+ path.join(baseDir, normalizedSubpath, "index.jsx"),
path.join(baseDir, normalizedSubpath, "index.ts"),
path.join(baseDir, normalizedSubpath, "index.js"),
path.join(baseDir, normalizedSubpath, "index.mjs"),
@@ -487,7 +491,9 @@ export function moduleFederationAstro(options: AstroModuleFederationOptions): As
return {
name: "@module-federation/astro",
hooks: {
- "astro:config:setup": ({ command, injectScript, updateConfig }) => {
+ "astro:config:setup": async (setupArgs) => {
+ const { command, injectScript, updateConfig } = setupArgs;
+ const applyConfigUpdate = updateConfig as (config: unknown) => void;
const federationOptions = normalizeOptions(options);
const ssrLocalRemotes = resolveSsrLocalRemotes(options.ssr, process.cwd());
const hasRemotes = hasConfiguredRemotes(federationOptions.remotes);
@@ -504,11 +510,11 @@ export function moduleFederationAstro(options: AstroModuleFederationOptions): As
injectScript("page", injectedImport);
}
- updateConfig({
+ applyConfigUpdate({
vite: {
plugins: [
ssrLoadRemoteRuntimePlugin(federationOptions, ssrLocalRemotes, command),
- ...federation(federationOptions),
+ ...(federation(federationOptions) as unknown[]),
],
build: {
target: "esnext",
@@ -552,5 +558,5 @@ export function moduleFederationAstro(options: AstroModuleFederationOptions): As
export const moduleFederation = moduleFederationAstro;
export { buildHostAutoInitImportId };
export { normalizeAstroExposesForFederation };
-export { normalizeRemotes };
+export { normalizeRemotes, toSsrRuntimeRemotes };
export default moduleFederationAstro;
diff --git a/packages/astro/test/normalize-remotes.test.ts b/packages/astro/test/normalize-remotes.test.ts
index c49533d..d80ce93 100644
--- a/packages/astro/test/normalize-remotes.test.ts
+++ b/packages/astro/test/normalize-remotes.test.ts
@@ -116,7 +116,7 @@ test("auto-wraps .astro exposes into generated TS wrappers", () => {
}
});
-test("injects host auto-init and web target define for remotes in dev", () => {
+test("injects host auto-init and web target define for remotes in dev", async () => {
const injectedScripts = [];
const updatedConfigs = [];
const integration = moduleFederationAstro({
@@ -138,7 +138,7 @@ test("injects host auto-init and web target define for remotes in dev", () => {
},
} as unknown as Parameters<(typeof integration.hooks)["astro:config:setup"]>[0];
- integration.hooks["astro:config:setup"](setupArgs);
+ await integration.hooks["astro:config:setup"](setupArgs);
expect(injectedScripts).toHaveLength(1);
expect(injectedScripts[0].stage).toBe("page");
@@ -152,7 +152,7 @@ test("injects host auto-init and web target define for remotes in dev", () => {
expect(updatedConfigs[0].vite.optimizeDeps.exclude[0]).toMatch(/hostAutoInit/);
});
-test("does not inject host auto-init when no remotes are configured", () => {
+test("does not inject host auto-init when no remotes are configured", async () => {
const injectedScripts = [];
const updatedConfigs = [];
const integration = moduleFederationAstro({
@@ -170,7 +170,7 @@ test("does not inject host auto-init when no remotes are configured", () => {
},
} as unknown as Parameters<(typeof integration.hooks)["astro:config:setup"]>[0];
- integration.hooks["astro:config:setup"](setupArgs);
+ await integration.hooks["astro:config:setup"](setupArgs);
expect(injectedScripts).toHaveLength(0);
expect(updatedConfigs).toHaveLength(1);
@@ -189,7 +189,7 @@ test("ssr runtime plugin resolves configured local remotes to local source files
fs.mkdirSync(path.join(remoteRoot, "src"), { recursive: true });
fs.mkdirSync(hostRoot, { recursive: true });
fs.writeFileSync(
- path.join(remoteRoot, "src", "server.ts"),
+ path.join(remoteRoot, "src", "server.tsx"),
'export const getMessage = () => "remote";\n',
"utf8",
);
@@ -218,7 +218,7 @@ test("ssr runtime plugin resolves configured local remotes to local source files
},
} as unknown as Parameters<(typeof integration.hooks)["astro:config:setup"]>[0];
- integration.hooks["astro:config:setup"](setupArgs);
+ await integration.hooks["astro:config:setup"](setupArgs);
const runtimePlugin = updatedConfigs[0].vite.plugins.find(
(plugin) => plugin?.name === "@module-federation/astro:ssr-load-remote-runtime",
@@ -235,7 +235,7 @@ test("ssr runtime plugin resolves configured local remotes to local source files
expect(transformed).toBeTruthy();
expect(transformed.code).toMatch(/import \* as __mf_local_module__/);
expect(transformed.code).toMatch(/file:\/\//);
- expect(transformed.code).toMatch(/remote\/src\/server\.ts/);
+ expect(transformed.code).toMatch(/remote\/src\/server\.tsx/);
expect(transformed.code).toMatch(/export \* from/);
} finally {
process.chdir(previousCwd);
@@ -244,7 +244,7 @@ test("ssr runtime plugin resolves configured local remotes to local source files
});
test("ssr runtime plugin only injects source fallback in dev", async () => {
- const createPlugin = (command: "dev" | "build") => {
+ const createPlugin = async (command: "dev" | "build") => {
const updatedConfigs = [];
const integration = moduleFederationAstro({
name: "astro_host",
@@ -262,15 +262,15 @@ test("ssr runtime plugin only injects source fallback in dev", async () => {
},
} as unknown as Parameters<(typeof integration.hooks)["astro:config:setup"]>[0];
- integration.hooks["astro:config:setup"](setupArgs);
+ await integration.hooks["astro:config:setup"](setupArgs);
return updatedConfigs[0].vite.plugins.find(
(plugin) => plugin?.name === "@module-federation/astro:ssr-load-remote-runtime",
);
};
- const devPlugin = createPlugin("dev");
- const buildPlugin = createPlugin("build");
+ const devPlugin = await createPlugin("dev");
+ const buildPlugin = await createPlugin("build");
expect(devPlugin).toBeTruthy();
expect(buildPlugin).toBeTruthy();
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2d7736b..0ff36ba 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -50,6 +50,62 @@ importers:
specifier: ^6.4.1
version: 6.4.1(@types/node@24.12.0)
+ apps/react/host:
+ dependencies:
+ '@astrojs/node':
+ specifier: ^10.0.4
+ version: 10.0.4(astro@6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3))
+ '@astrojs/react':
+ specifier: ^5.0.2
+ version: 5.0.2(@types/node@24.12.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@module-federation/astro':
+ specifier: workspace:*
+ version: link:../../../packages/astro
+ astro:
+ specifier: ^6.1.1
+ version: 6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3)
+ react:
+ specifier: ^19.2.4
+ version: 19.2.4
+ react-dom:
+ specifier: ^19.2.4
+ version: 19.2.4(react@19.2.4)
+ devDependencies:
+ vite:
+ specifier: ^6.4.1
+ version: 6.4.1(@types/node@24.12.0)
+
+ apps/react/remote:
+ dependencies:
+ '@astrojs/node':
+ specifier: ^10.0.4
+ version: 10.0.4(astro@6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3))
+ '@astrojs/react':
+ specifier: ^5.0.2
+ version: 5.0.2(@types/node@24.12.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@module-federation/astro':
+ specifier: workspace:*
+ version: link:../../../packages/astro
+ astro:
+ specifier: ^6.1.1
+ version: 6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3)
+ react:
+ specifier: ^19.2.4
+ version: 19.2.4
+ react-dom:
+ specifier: ^19.2.4
+ version: 19.2.4(react@19.2.4)
+ devDependencies:
+ '@types/react':
+ specifier: ^19.2.14
+ version: 19.2.14
+ '@types/react-dom':
+ specifier: ^19.2.3
+ version: 19.2.3(@types/react@19.2.14)
+ vite:
+ specifier: ^6.4.1
+ version: 6.4.1(@types/node@24.12.0)
+
packages/astro:
dependencies:
'@module-federation/runtime':
@@ -59,8 +115,8 @@ importers:
specifier: 2.2.3
version: 2.2.3
'@module-federation/vite':
- specifier: ^1.13.5
- version: 1.13.5(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@24.12.0))
+ specifier: ^1.13.6
+ version: 1.13.6(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.0))
astro:
specifier: ^5.0.0
version: 5.18.0(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3)
@@ -76,19 +132,33 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.1.2
- version: 4.1.2(@types/node@24.12.0)(vite@6.4.1(@types/node@24.12.0))
+ version: 4.1.2(@types/node@24.12.0)(vite@7.3.1(@types/node@24.12.0))
packages:
'@astrojs/compiler@2.13.1':
resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==}
+ '@astrojs/compiler@3.0.1':
+ resolution: {integrity: sha512-z97oYbdebO5aoWzuJ/8q5hLK232+17KcLZ7cJ8BCWk6+qNzVxn/gftC0KzMBUTD8WAaBkPpNSQK6PXLnNrZ0CA==}
+
'@astrojs/internal-helpers@0.7.5':
resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==}
+ '@astrojs/internal-helpers@0.8.0':
+ resolution: {integrity: sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w==}
+
'@astrojs/markdown-remark@6.3.10':
resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==}
+ '@astrojs/markdown-remark@7.1.0':
+ resolution: {integrity: sha512-P+HnCsu2js3BoTc8kFmu+E9gOcFeMdPris75g+Zl4sY8+bBRbSQV6xzcBDbZ27eE7yBGEGQoqjpChx+KJYIPYQ==}
+
+ '@astrojs/node@10.0.4':
+ resolution: {integrity: sha512-7pVgiVSscQHRC2WqjlXcnbbcKMYp2GXrYpmuvdGg5zgA8J1lFm2vmwVhHZFuZK3Ik5PzoxiDROaEgoDGLbfhLw==}
+ peerDependencies:
+ astro: ^6.0.0
+
'@astrojs/node@9.5.4':
resolution: {integrity: sha512-AbPSZsMGu8hXPR2XxV79RaKy8h6wijhtoqZGeUf4OXg2w1mxXlx4VnIc1D+QvtsgauSz7P5PLhmvf6w/J41GJg==}
peerDependencies:
@@ -98,14 +168,65 @@ packages:
resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ '@astrojs/prism@4.0.1':
+ resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==}
+ engines: {node: '>=22.12.0'}
+
+ '@astrojs/react@5.0.2':
+ resolution: {integrity: sha512-BDpPrapV3Wgp9sD7aTMvP+ORH0jFEue9OmkBu98KcBbTlsQCnvisDW3m7PQrMptXwEDlX5HGfP/CHmkEVY2tZA==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0
+ '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0
+ react: ^17.0.2 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0
+
'@astrojs/telemetry@3.3.0':
resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/compat-data@7.29.0':
+ resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/core@7.29.0':
+ resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/generator@7.29.1':
+ resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/generator@8.0.0-rc.3':
resolution: {integrity: sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==}
engines: {node: ^20.19.0 || >=22.12.0}
+ '@babel/helper-compilation-targets@7.28.6':
+ resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-globals@7.28.0':
+ resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-imports@7.28.6':
+ resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-module-transforms@7.28.6':
+ resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-plugin-utils@7.28.6':
+ resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
@@ -122,6 +243,14 @@ packages:
resolution: {integrity: sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==}
engines: {node: ^20.19.0 || >=22.12.0}
+ '@babel/helper-validator-option@7.27.1':
+ resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helpers@7.29.2':
+ resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/parser@7.29.0':
resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==}
engines: {node: '>=6.0.0'}
@@ -132,10 +261,30 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
+ '@babel/plugin-transform-react-jsx-self@7.27.1':
+ resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-react-jsx-source@7.27.1':
+ resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
'@babel/runtime@7.29.2':
resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'}
+ '@babel/template@7.28.6':
+ resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.29.0':
+ resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.29.0':
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
engines: {node: '>=6.9.0'}
@@ -203,6 +352,12 @@ packages:
'@changesets/write@0.4.0':
resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
+ '@clack/core@1.1.0':
+ resolution: {integrity: sha512-SVcm4Dqm2ukn64/8Gub2wnlA5nS2iWJyCkdNHcvNHPIeBTGojpdJ+9cZKwLfmqy7irD4N5qLteSilJlE0WLAtA==}
+
+ '@clack/prompts@1.1.0':
+ resolution: {integrity: sha512-pkqbPGtohJAvm4Dphs2M8xE29ggupihHdy1x84HNojZuMtFsHiUlRvqD24tM2+XmI+61LlfNceM3Wr7U5QES5g==}
+
'@emnapi/core@1.9.1':
resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==}
@@ -689,6 +844,9 @@ packages:
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -705,8 +863,8 @@ packages:
'@manypkg/get-packages@1.1.3':
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
- '@module-federation/dts-plugin@2.2.3':
- resolution: {integrity: sha512-a7Rv2nPJGLufeeOFiLmgRNxw97peAB+SjyBZdpPa3g5ojOEdhZYxdpB15RYiyOtPUc7PhZsSvfYKgj4cEU8f1w==}
+ '@module-federation/dts-plugin@2.3.0':
+ resolution: {integrity: sha512-2Y11IjQNuMuIXhsOeW7Vd/Ui/RzRPhR+6XFzQaJKuxy6xNk6j/s9iIZVg66gxvSQlUtPzvlpeXEAc6NLPlg3Ew==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
vue-tsc: '>=1.0.24'
@@ -717,15 +875,24 @@ packages:
'@module-federation/error-codes@2.2.3':
resolution: {integrity: sha512-3+qOylnuljh1XulzXd3iNhALXuVXPVGFUupz9qnUL1paWX48F89Wex3egu6psZhxi3F7y7TA7ykjfWpP0vlrjQ==}
- '@module-federation/managers@2.2.3':
- resolution: {integrity: sha512-xBv2hg88K4QIPVYKNAYm+LnH5hRuTPGeFya2obSxalagnMb6lEw7Gko5QqXAZDgCK44dkuqslu8/YtMEXc3v7w==}
+ '@module-federation/error-codes@2.3.0':
+ resolution: {integrity: sha512-O8jXi0Wv/dFc7BkJkFC0SlW8dT0OjOWvBHakVaOAKVlAKNuQBXfZzLe48bIYAvMhPe0lFppyWoN/SyuIfVBvkg==}
+
+ '@module-federation/managers@2.3.0':
+ resolution: {integrity: sha512-LDPzSJV4RvGDABkhwwNYUVWakbfHDySHDoEJIlc6KhvdwUlivtn90Ay7uNIdz9FhhGeb338io87IctfxquSqWQ==}
'@module-federation/runtime-core@2.2.3':
resolution: {integrity: sha512-muGMkv1AQIkCQy8mIa6lmgHu3qTasl/se+bZHERulD3gddK6ninM/Hc7mHyUVNO9rVhb+5Fv7QiCYahH4pRrIg==}
+ '@module-federation/runtime-core@2.3.0':
+ resolution: {integrity: sha512-OvBNIAGM7Xj0dUOBG5jx7zuZaRLDHb5Wcb7pstwqJo5WYqj7gzA9X+QmI+jsQ9jY74Nlfx9vrvW6LlHukIRH/A==}
+
'@module-federation/runtime@2.2.3':
resolution: {integrity: sha512-5xAIPhzNPLXL7J61ZJxNiM+kpKfKw2IKf4oAT1KFVxntZnnWZiZFAkzTeRiNlfIjwbgasKqBoARTLbu1GEaydA==}
+ '@module-federation/runtime@2.3.0':
+ resolution: {integrity: sha512-9vv0Ah8Tg3E5mBlj29n1boN0bPKbqhw7QBWZCDm2Mou0uXb8x/ycgFR1EPq937LCScBUl0LiFp53KSjeyT75aQ==}
+
'@module-federation/sdk@2.2.3':
resolution: {integrity: sha512-DUXqwxQRqxlBz7XWW5mEsdTvYEZPWVAgwfh9JtLW1fkxfdG+Czzzs1sXGz8MPF76H3PGzbRdzeCEfiANlANWiw==}
peerDependencies:
@@ -734,11 +901,19 @@ packages:
node-fetch:
optional: true
- '@module-federation/third-party-dts-extractor@2.2.3':
- resolution: {integrity: sha512-PweNCC79K+fV/BxBjnkJnK1xrrSq9rWmqZat2CfmxStwPhO9yy5Q7XikZnwwUF7mb4p7WoniQRsz//h1aYUdqw==}
+ '@module-federation/sdk@2.3.0':
+ resolution: {integrity: sha512-xj90q4eILkFA1J30wVQYEIWAEh39tfLbCIw1dz3QXUL2TtD/h19H1rZlRkrtAyUxV6xKjp17EMkyGSHzstf1OA==}
+ peerDependencies:
+ node-fetch: ^3.3.2
+ peerDependenciesMeta:
+ node-fetch:
+ optional: true
+
+ '@module-federation/third-party-dts-extractor@2.3.0':
+ resolution: {integrity: sha512-UMGujleD7+rsKqMz/If/8N2Pws219PuJmwz8E/frFUpUW7zo/4Txekhh6Jfz1HnbHdxr0vWqQMx1rqnpPlzeuQ==}
- '@module-federation/vite@1.13.5':
- resolution: {integrity: sha512-CZ/uJUxPgL3PoW+bOFQyWsgp2pIr1rLearKONHHo7SkMoZxPHB+6Hr6mgalucr2fxS4fCV8D0FTlayu9qwJTUQ==}
+ '@module-federation/vite@1.13.6':
+ resolution: {integrity: sha512-7w8xGdWDaZ4jo0gHb74vI/D6ivHlF1HjGTlWB+YVGX5rgootYpI8FHZliF9z8o4ptZuUnnQSKIWW857WHph/CA==}
peerDependencies:
vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -1111,6 +1286,9 @@ packages:
'@rolldown/pluginutils@1.0.0-rc.12':
resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==}
+ '@rolldown/pluginutils@1.0.0-rc.3':
+ resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==}
+
'@rollup/pluginutils@5.3.0':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
engines: {node: '>=14.0.0'}
@@ -1261,21 +1439,49 @@ packages:
'@shikijs/core@3.23.0':
resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
+ '@shikijs/core@4.0.2':
+ resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==}
+ engines: {node: '>=20'}
+
'@shikijs/engine-javascript@3.23.0':
resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
+ '@shikijs/engine-javascript@4.0.2':
+ resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==}
+ engines: {node: '>=20'}
+
'@shikijs/engine-oniguruma@3.23.0':
resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
+ '@shikijs/engine-oniguruma@4.0.2':
+ resolution: {integrity: sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==}
+ engines: {node: '>=20'}
+
'@shikijs/langs@3.23.0':
resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
+ '@shikijs/langs@4.0.2':
+ resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==}
+ engines: {node: '>=20'}
+
+ '@shikijs/primitive@4.0.2':
+ resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==}
+ engines: {node: '>=20'}
+
'@shikijs/themes@3.23.0':
resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
+ '@shikijs/themes@4.0.2':
+ resolution: {integrity: sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==}
+ engines: {node: '>=20'}
+
'@shikijs/types@3.23.0':
resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
+ '@shikijs/types@4.0.2':
+ resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==}
+ engines: {node: '>=20'}
+
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -1315,6 +1521,18 @@ packages:
'@tybys/wasm-util@0.10.1':
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
+
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
@@ -1348,12 +1566,26 @@ packages:
'@types/node@24.12.0':
resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==}
+ '@types/react-dom@19.2.3':
+ resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
+ peerDependencies:
+ '@types/react': ^19.2.0
+
+ '@types/react@19.2.14':
+ resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==}
+
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ '@vitejs/plugin-react@5.2.0':
+ resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ peerDependencies:
+ vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
+
'@vitest/expect@4.1.2':
resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==}
@@ -1453,6 +1685,11 @@ packages:
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
+ astro@6.1.2:
+ resolution: {integrity: sha512-r3iIvmB6JvQxsdJLvapybKKq7Bojd1iQK6CCx5P55eRnXJIyUpHx/1UB/GdMm+em/lwaCUasxHCmIO0lCLV2uA==}
+ engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
+ hasBin: true
+
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
@@ -1460,8 +1697,8 @@ packages:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
- axios@1.13.6:
- resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==}
+ axios@1.14.0:
+ resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==}
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
@@ -1473,6 +1710,11 @@ packages:
base-64@1.0.0:
resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==}
+ baseline-browser-mapping@2.10.12:
+ resolution: {integrity: sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
better-path-resolve@1.0.0:
resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
engines: {node: '>=4'}
@@ -1491,6 +1733,11 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
cac@7.0.0:
resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==}
engines: {node: '>=20.19.0'}
@@ -1503,6 +1750,9 @@ packages:
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
+ caniuse-lite@1.0.30001782:
+ resolution: {integrity: sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw==}
+
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -1567,6 +1817,10 @@ packages:
common-ancestor-path@1.0.1:
resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
+ common-ancestor-path@2.0.0:
+ resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==}
+ engines: {node: '>= 18'}
+
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -1612,9 +1866,8 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
- date-format@4.0.14:
- resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
- engines: {node: '>=4.0'}
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
@@ -1661,6 +1914,9 @@ packages:
devalue@5.6.3:
resolution: {integrity: sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==}
+ devalue@5.6.4:
+ resolution: {integrity: sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==}
+
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
@@ -1708,6 +1964,9 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ electron-to-chromium@1.5.329:
+ resolution: {integrity: sha512-/4t+AS1l4S3ZC0Ja7PHFIWeBIxGA3QGqV8/yKsP36v7NcyUCl+bIcmw6s5zVuMIECWwBrAK/6QLzTmbJChBboQ==}
+
emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -1766,6 +2025,10 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
@@ -1837,9 +2100,6 @@ packages:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
- flatted@3.3.4:
- resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==}
-
flattie@1.1.1:
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
engines: {node: '>=8'}
@@ -1888,6 +2148,10 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ gensync@1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+
get-east-asian-width@1.5.0:
resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==}
engines: {node: '>=18'}
@@ -2080,6 +2344,9 @@ packages:
peerDependencies:
ws: '*'
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
js-yaml@3.14.2:
resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
hasBin: true
@@ -2093,6 +2360,11 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
@@ -2113,10 +2385,6 @@ packages:
lodash.startcase@4.4.0:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
- log4js@6.9.1:
- resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==}
- engines: {node: '>=8.0'}
-
long-timeout@0.1.1:
resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==}
@@ -2127,6 +2395,9 @@ packages:
resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==}
engines: {node: 20 || >=22}
+ lru-cache@5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
luxon@3.7.2:
resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==}
engines: {node: '>=12'}
@@ -2326,6 +2597,9 @@ packages:
node-mock-http@1.0.4:
resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==}
+ node-releases@2.0.36:
+ resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==}
+
node-schedule@2.1.1:
resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==}
engines: {node: '>=6'}
@@ -2386,6 +2660,10 @@ packages:
resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
engines: {node: '>=18'}
+ p-limit@7.3.0:
+ resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==}
+ engines: {node: '>=20'}
+
p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
@@ -2398,10 +2676,18 @@ packages:
resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==}
engines: {node: '>=18'}
+ p-queue@9.1.0:
+ resolution: {integrity: sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==}
+ engines: {node: '>=20'}
+
p-timeout@6.1.4:
resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==}
engines: {node: '>=14.16'}
+ p-timeout@7.0.1:
+ resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==}
+ engines: {node: '>=20'}
+
p-try@2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
@@ -2482,8 +2768,9 @@ packages:
property-information@7.1.0:
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
- proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ proxy-from-env@2.1.0:
+ resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
+ engines: {node: '>=10'}
quansync@0.2.11:
resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
@@ -2504,6 +2791,19 @@ packages:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
+ react-dom@19.2.4:
+ resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==}
+ peerDependencies:
+ react: ^19.2.4
+
+ react-refresh@0.18.0:
+ resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==}
+ engines: {node: '>=0.10.0'}
+
+ react@19.2.4:
+ resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
+ engines: {node: '>=0.10.0'}
+
read-yaml-file@1.1.0:
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
engines: {node: '>=6'}
@@ -2580,9 +2880,6 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rfdc@1.4.1:
- resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
-
rolldown-plugin-dts@0.23.2:
resolution: {integrity: sha512-PbSqLawLgZBGcOGT3yqWBGn4cX+wh2nt5FuBGdcMHyOhoukmjbhYAl8NT9sE4U38Cm9tqLOIQeOrvzeayM0DLQ==}
engines: {node: '>=20.19.0'}
@@ -2622,6 +2919,13 @@ packages:
resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==}
engines: {node: '>=11.0.0'}
+ scheduler@0.27.0:
+ resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
semver@7.7.4:
resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
engines: {node: '>=10'}
@@ -2652,6 +2956,10 @@ packages:
shiki@3.23.0:
resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
+ shiki@4.0.2:
+ resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==}
+ engines: {node: '>=20'}
+
siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -2696,10 +3004,6 @@ packages:
std-env@4.0.0:
resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==}
- streamroller@3.1.5:
- resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==}
- engines: {node: '>=8.0'}
-
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -2746,6 +3050,10 @@ packages:
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+ tinyclip@0.1.12:
+ resolution: {integrity: sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==}
+ engines: {node: ^16.14.0 || >= 17.3.0}
+
tinyexec@1.0.2:
resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
engines: {node: '>=18'}
@@ -2966,6 +3274,12 @@ packages:
uploadthing:
optional: true
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -3015,6 +3329,46 @@ packages:
yaml:
optional: true
+ vite@7.3.1:
+ resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^20.19.0 || >=22.12.0
+ jiti: '>=1.21.0'
+ less: ^4.0.0
+ lightningcss: ^1.21.0
+ sass: ^1.70.0
+ sass-embedded: ^1.70.0
+ stylus: '>=0.54.8'
+ sugarss: ^5.0.0
+ terser: ^5.16.0
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ jiti:
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
vitefu@1.1.2:
resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==}
peerDependencies:
@@ -3102,10 +3456,17 @@ packages:
xxhash-wasm@1.1.0:
resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
+ yallist@3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
+ yargs-parser@22.0.0:
+ resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+
yocto-queue@1.2.2:
resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
engines: {node: '>=12.20'}
@@ -3132,6 +3493,9 @@ packages:
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+ zod@4.3.6:
+ resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==}
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -3139,8 +3503,14 @@ snapshots:
'@astrojs/compiler@2.13.1': {}
+ '@astrojs/compiler@3.0.1': {}
+
'@astrojs/internal-helpers@0.7.5': {}
+ '@astrojs/internal-helpers@0.8.0':
+ dependencies:
+ picomatch: 4.0.4
+
'@astrojs/markdown-remark@6.3.10':
dependencies:
'@astrojs/internal-helpers': 0.7.5
@@ -3167,6 +3537,41 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/markdown-remark@7.1.0':
+ dependencies:
+ '@astrojs/internal-helpers': 0.8.0
+ '@astrojs/prism': 4.0.1
+ github-slugger: 2.0.0
+ hast-util-from-html: 2.0.3
+ hast-util-to-text: 4.0.2
+ js-yaml: 4.1.1
+ mdast-util-definitions: 6.0.0
+ rehype-raw: 7.0.0
+ rehype-stringify: 10.0.1
+ remark-gfm: 4.0.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ remark-smartypants: 3.0.2
+ retext-smartypants: 6.2.0
+ shiki: 4.0.2
+ smol-toml: 1.6.0
+ unified: 11.0.5
+ unist-util-remove-position: 5.0.0
+ unist-util-visit: 5.1.0
+ unist-util-visit-parents: 6.0.2
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@astrojs/node@10.0.4(astro@6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3))':
+ dependencies:
+ '@astrojs/internal-helpers': 0.8.0
+ astro: 6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3)
+ send: 1.2.1
+ server-destroy: 1.0.1
+ transitivePeerDependencies:
+ - supports-color
+
'@astrojs/node@9.5.4(astro@5.18.0(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3))':
dependencies:
'@astrojs/internal-helpers': 0.7.5
@@ -3180,6 +3585,35 @@ snapshots:
dependencies:
prismjs: 1.30.0
+ '@astrojs/prism@4.0.1':
+ dependencies:
+ prismjs: 1.30.0
+
+ '@astrojs/react@5.0.2(@types/node@24.12.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ dependencies:
+ '@astrojs/internal-helpers': 0.8.0
+ '@types/react': 19.2.14
+ '@types/react-dom': 19.2.3(@types/react@19.2.14)
+ '@vitejs/plugin-react': 5.2.0(vite@7.3.1(@types/node@24.12.0))
+ devalue: 5.6.4
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+ ultrahtml: 1.6.0
+ vite: 7.3.1(@types/node@24.12.0)
+ transitivePeerDependencies:
+ - '@types/node'
+ - jiti
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - yaml
+
'@astrojs/telemetry@3.3.0':
dependencies:
ci-info: 4.4.0
@@ -3192,6 +3626,42 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/code-frame@7.29.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/compat-data@7.29.0': {}
+
+ '@babel/core@7.29.0':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-compilation-targets': 7.28.6
+ '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0)
+ '@babel/helpers': 7.29.2
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.28.6
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/generator@7.29.1':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ jsesc: 3.1.0
+
'@babel/generator@8.0.0-rc.3':
dependencies:
'@babel/parser': 8.0.0-rc.3
@@ -3201,6 +3671,34 @@ snapshots:
'@types/jsesc': 2.5.1
jsesc: 3.1.0
+ '@babel/helper-compilation-targets@7.28.6':
+ dependencies:
+ '@babel/compat-data': 7.29.0
+ '@babel/helper-validator-option': 7.27.1
+ browserslist: 4.28.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ '@babel/helper-globals@7.28.0': {}
+
+ '@babel/helper-module-imports@7.28.6':
+ dependencies:
+ '@babel/traverse': 7.29.0
+ '@babel/types': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-module-imports': 7.28.6
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.29.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-plugin-utils@7.28.6': {}
+
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-string-parser@8.0.0-rc.3': {}
@@ -3209,6 +3707,13 @@ snapshots:
'@babel/helper-validator-identifier@8.0.0-rc.3': {}
+ '@babel/helper-validator-option@7.27.1': {}
+
+ '@babel/helpers@7.29.2':
+ dependencies:
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+
'@babel/parser@7.29.0':
dependencies:
'@babel/types': 7.29.0
@@ -3217,8 +3722,36 @@ snapshots:
dependencies:
'@babel/types': 8.0.0-rc.3
+ '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+
+ '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/helper-plugin-utils': 7.28.6
+
'@babel/runtime@7.29.2': {}
+ '@babel/template@7.28.6':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+
+ '@babel/traverse@7.29.0':
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ '@babel/generator': 7.29.1
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.29.0
+ '@babel/template': 7.28.6
+ '@babel/types': 7.29.0
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.29.0':
dependencies:
'@babel/helper-string-parser': 7.27.1
@@ -3376,6 +3909,15 @@ snapshots:
human-id: 4.1.3
prettier: 2.8.8
+ '@clack/core@1.1.0':
+ dependencies:
+ sisteransi: 1.0.5
+
+ '@clack/prompts@1.1.0':
+ dependencies:
+ '@clack/core': 1.1.0
+ sisteransi: 1.0.5
+
'@emnapi/core@1.9.1':
dependencies:
'@emnapi/wasi-threads': 1.2.0
@@ -3657,6 +4199,11 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.31
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/sourcemap-codec@1.5.5': {}
@@ -3682,20 +4229,19 @@ snapshots:
globby: 11.1.0
read-yaml-file: 1.1.0
- '@module-federation/dts-plugin@2.2.3(typescript@5.9.3)':
+ '@module-federation/dts-plugin@2.3.0(typescript@5.9.3)':
dependencies:
- '@module-federation/error-codes': 2.2.3
- '@module-federation/managers': 2.2.3
- '@module-federation/sdk': 2.2.3
- '@module-federation/third-party-dts-extractor': 2.2.3
+ '@module-federation/error-codes': 2.3.0
+ '@module-federation/managers': 2.3.0
+ '@module-federation/sdk': 2.3.0
+ '@module-federation/third-party-dts-extractor': 2.3.0
adm-zip: 0.5.16
ansi-colors: 4.1.3
- axios: 1.13.6
+ axios: 1.14.0
chalk: 3.0.0
fs-extra: 9.1.0
isomorphic-ws: 5.0.0(ws@8.18.0)
lodash.clonedeepwith: 4.5.0
- log4js: 6.9.1
node-schedule: 2.1.1
rambda: 9.4.2
typescript: 5.9.3
@@ -3704,14 +4250,15 @@ snapshots:
- bufferutil
- debug
- node-fetch
- - supports-color
- utf-8-validate
'@module-federation/error-codes@2.2.3': {}
- '@module-federation/managers@2.2.3':
+ '@module-federation/error-codes@2.3.0': {}
+
+ '@module-federation/managers@2.3.0':
dependencies:
- '@module-federation/sdk': 2.2.3
+ '@module-federation/sdk': 2.3.0
find-pkg: 2.0.0
fs-extra: 9.1.0
transitivePeerDependencies:
@@ -3724,6 +4271,13 @@ snapshots:
transitivePeerDependencies:
- node-fetch
+ '@module-federation/runtime-core@2.3.0':
+ dependencies:
+ '@module-federation/error-codes': 2.3.0
+ '@module-federation/sdk': 2.3.0
+ transitivePeerDependencies:
+ - node-fetch
+
'@module-federation/runtime@2.2.3':
dependencies:
'@module-federation/error-codes': 2.2.3
@@ -3732,32 +4286,41 @@ snapshots:
transitivePeerDependencies:
- node-fetch
+ '@module-federation/runtime@2.3.0':
+ dependencies:
+ '@module-federation/error-codes': 2.3.0
+ '@module-federation/runtime-core': 2.3.0
+ '@module-federation/sdk': 2.3.0
+ transitivePeerDependencies:
+ - node-fetch
+
'@module-federation/sdk@2.2.3': {}
- '@module-federation/third-party-dts-extractor@2.2.3':
+ '@module-federation/sdk@2.3.0': {}
+
+ '@module-federation/third-party-dts-extractor@2.3.0':
dependencies:
find-pkg: 2.0.0
fs-extra: 9.1.0
resolve: 1.22.8
- '@module-federation/vite@1.13.5(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@24.12.0))':
+ '@module-federation/vite@1.13.6(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.12.0))':
dependencies:
- '@module-federation/dts-plugin': 2.2.3(typescript@5.9.3)
- '@module-federation/runtime': 2.2.3
- '@module-federation/sdk': 2.2.3
+ '@module-federation/dts-plugin': 2.3.0(typescript@5.9.3)
+ '@module-federation/runtime': 2.3.0
+ '@module-federation/sdk': 2.3.0
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
defu: 6.1.4
es-module-lexer: 2.0.0
estree-walker: 3.0.3
magic-string: 0.30.21
pathe: 2.0.3
- vite: 6.4.1(@types/node@24.12.0)
+ vite: 7.3.1(@types/node@24.12.0)
transitivePeerDependencies:
- bufferutil
- debug
- node-fetch
- rollup
- - supports-color
- typescript
- utf-8-validate
- vue-tsc
@@ -3955,6 +4518,8 @@ snapshots:
'@rolldown/pluginutils@1.0.0-rc.12': {}
+ '@rolldown/pluginutils@1.0.0-rc.3': {}
+
'@rollup/pluginutils@5.3.0(rollup@4.59.0)':
dependencies:
'@types/estree': 1.0.8
@@ -4045,30 +4610,68 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
+ '@shikijs/core@4.0.2':
+ dependencies:
+ '@shikijs/primitive': 4.0.2
+ '@shikijs/types': 4.0.2
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+ hast-util-to-html: 9.0.5
+
'@shikijs/engine-javascript@3.23.0':
dependencies:
'@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.4
+ '@shikijs/engine-javascript@4.0.2':
+ dependencies:
+ '@shikijs/types': 4.0.2
+ '@shikijs/vscode-textmate': 10.0.2
+ oniguruma-to-es: 4.3.4
+
'@shikijs/engine-oniguruma@3.23.0':
dependencies:
'@shikijs/types': 3.23.0
'@shikijs/vscode-textmate': 10.0.2
+ '@shikijs/engine-oniguruma@4.0.2':
+ dependencies:
+ '@shikijs/types': 4.0.2
+ '@shikijs/vscode-textmate': 10.0.2
+
'@shikijs/langs@3.23.0':
dependencies:
'@shikijs/types': 3.23.0
+ '@shikijs/langs@4.0.2':
+ dependencies:
+ '@shikijs/types': 4.0.2
+
+ '@shikijs/primitive@4.0.2':
+ dependencies:
+ '@shikijs/types': 4.0.2
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
'@shikijs/themes@3.23.0':
dependencies:
'@shikijs/types': 3.23.0
+ '@shikijs/themes@4.0.2':
+ dependencies:
+ '@shikijs/types': 4.0.2
+
'@shikijs/types@3.23.0':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
+ '@shikijs/types@4.0.2':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
'@shikijs/vscode-textmate@10.0.2': {}
'@standard-schema/spec@1.1.0': {}
@@ -4096,6 +4699,27 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@types/babel__core@7.20.5':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+ '@types/babel__generator': 7.27.0
+ '@types/babel__template': 7.4.4
+ '@types/babel__traverse': 7.28.0
+
+ '@types/babel__generator@7.27.0':
+ dependencies:
+ '@babel/types': 7.29.0
+
+ '@types/babel__template@7.4.4':
+ dependencies:
+ '@babel/parser': 7.29.0
+ '@babel/types': 7.29.0
+
+ '@types/babel__traverse@7.28.0':
+ dependencies:
+ '@babel/types': 7.29.0
+
'@types/chai@5.2.3':
dependencies:
'@types/deep-eql': 4.0.2
@@ -4131,10 +4755,30 @@ snapshots:
dependencies:
undici-types: 7.16.0
+ '@types/react-dom@19.2.3(@types/react@19.2.14)':
+ dependencies:
+ '@types/react': 19.2.14
+
+ '@types/react@19.2.14':
+ dependencies:
+ csstype: 3.2.3
+
'@types/unist@3.0.3': {}
'@ungap/structured-clone@1.3.0': {}
+ '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@24.12.0))':
+ dependencies:
+ '@babel/core': 7.29.0
+ '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
+ '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0)
+ '@rolldown/pluginutils': 1.0.0-rc.3
+ '@types/babel__core': 7.20.5
+ react-refresh: 0.18.0
+ vite: 7.3.1(@types/node@24.12.0)
+ transitivePeerDependencies:
+ - supports-color
+
'@vitest/expect@4.1.2':
dependencies:
'@standard-schema/spec': 1.1.0
@@ -4144,13 +4788,13 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.2(vite@6.4.1(@types/node@24.12.0))':
+ '@vitest/mocker@4.1.2(vite@7.3.1(@types/node@24.12.0))':
dependencies:
'@vitest/spy': 4.1.2
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 6.4.1(@types/node@24.12.0)
+ vite: 7.3.1(@types/node@24.12.0)
'@vitest/pretty-format@4.1.2':
dependencies:
@@ -4325,15 +4969,109 @@ snapshots:
- uploadthing
- yaml
+ astro@6.1.2(@types/node@24.12.0)(rollup@4.59.0)(typescript@5.9.3):
+ dependencies:
+ '@astrojs/compiler': 3.0.1
+ '@astrojs/internal-helpers': 0.8.0
+ '@astrojs/markdown-remark': 7.1.0
+ '@astrojs/telemetry': 3.3.0
+ '@capsizecss/unpack': 4.0.0
+ '@clack/prompts': 1.1.0
+ '@oslojs/encoding': 1.1.0
+ '@rollup/pluginutils': 5.3.0(rollup@4.59.0)
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ ci-info: 4.4.0
+ clsx: 2.1.1
+ common-ancestor-path: 2.0.0
+ cookie: 1.1.1
+ devalue: 5.6.3
+ diff: 8.0.3
+ dlv: 1.1.3
+ dset: 3.1.4
+ es-module-lexer: 2.0.0
+ esbuild: 0.27.3
+ flattie: 1.1.1
+ fontace: 0.4.1
+ github-slugger: 2.0.0
+ html-escaper: 3.0.3
+ http-cache-semantics: 4.2.0
+ js-yaml: 4.1.1
+ magic-string: 0.30.21
+ magicast: 0.5.2
+ mrmime: 2.0.1
+ neotraverse: 0.6.18
+ obug: 2.1.1
+ p-limit: 7.3.0
+ p-queue: 9.1.0
+ package-manager-detector: 1.6.0
+ piccolore: 0.1.3
+ picomatch: 4.0.4
+ rehype: 13.0.2
+ semver: 7.7.4
+ shiki: 4.0.2
+ smol-toml: 1.6.0
+ svgo: 4.0.1
+ tinyclip: 0.1.12
+ tinyexec: 1.0.4
+ tinyglobby: 0.2.15
+ tsconfck: 3.1.6(typescript@5.9.3)
+ ultrahtml: 1.6.0
+ unifont: 0.7.4
+ unist-util-visit: 5.1.0
+ unstorage: 1.17.4
+ vfile: 6.0.3
+ vite: 7.3.1(@types/node@24.12.0)
+ vitefu: 1.1.2(vite@7.3.1(@types/node@24.12.0))
+ xxhash-wasm: 1.1.0
+ yargs-parser: 22.0.0
+ zod: 4.3.6
+ optionalDependencies:
+ sharp: 0.34.5
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@deno/kv'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@types/node'
+ - '@upstash/redis'
+ - '@vercel/blob'
+ - '@vercel/functions'
+ - '@vercel/kv'
+ - aws4fetch
+ - db0
+ - idb-keyval
+ - ioredis
+ - jiti
+ - less
+ - lightningcss
+ - rollup
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - tsx
+ - typescript
+ - uploadthing
+ - yaml
+
asynckit@0.4.0: {}
at-least-node@1.0.0: {}
- axios@1.13.6:
+ axios@1.14.0:
dependencies:
follow-redirects: 1.15.11
form-data: 4.0.5
- proxy-from-env: 1.1.0
+ proxy-from-env: 2.1.0
transitivePeerDependencies:
- debug
@@ -4343,6 +5081,8 @@ snapshots:
base-64@1.0.0: {}
+ baseline-browser-mapping@2.10.12: {}
+
better-path-resolve@1.0.0:
dependencies:
is-windows: 1.0.2
@@ -4366,6 +5106,14 @@ snapshots:
dependencies:
fill-range: 7.1.1
+ browserslist@4.28.2:
+ dependencies:
+ baseline-browser-mapping: 2.10.12
+ caniuse-lite: 1.0.30001782
+ electron-to-chromium: 1.5.329
+ node-releases: 2.0.36
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
+
cac@7.0.0: {}
call-bind-apply-helpers@1.0.2:
@@ -4375,6 +5123,8 @@ snapshots:
camelcase@8.0.0: {}
+ caniuse-lite@1.0.30001782: {}
+
ccount@2.0.1: {}
chai@6.2.2: {}
@@ -4420,6 +5170,8 @@ snapshots:
common-ancestor-path@1.0.1: {}
+ common-ancestor-path@2.0.0: {}
+
convert-source-map@2.0.0: {}
cookie-es@1.2.2: {}
@@ -4466,7 +5218,7 @@ snapshots:
dependencies:
css-tree: 2.2.1
- date-format@4.0.14: {}
+ csstype@3.2.3: {}
debug@4.4.3:
dependencies:
@@ -4497,6 +5249,8 @@ snapshots:
devalue@5.6.3: {}
+ devalue@5.6.4: {}
+
devlop@1.1.0:
dependencies:
dequal: 2.0.3
@@ -4539,6 +5293,8 @@ snapshots:
ee-first@1.1.1: {}
+ electron-to-chromium@1.5.329: {}
+
emoji-regex@10.6.0: {}
emoji-regex@8.0.0: {}
@@ -4633,6 +5389,8 @@ snapshots:
'@esbuild/win32-ia32': 0.27.3
'@esbuild/win32-x64': 0.27.3
+ escalade@3.2.0: {}
+
escape-html@1.0.3: {}
escape-string-regexp@5.0.0: {}
@@ -4696,8 +5454,6 @@ snapshots:
locate-path: 5.0.0
path-exists: 4.0.0
- flatted@3.3.4: {}
-
flattie@1.1.1: {}
follow-redirects@1.15.11: {}
@@ -4744,6 +5500,8 @@ snapshots:
function-bind@1.1.2: {}
+ gensync@1.0.0-beta.2: {}
+
get-east-asian-width@1.5.0: {}
get-intrinsic@1.3.0:
@@ -4988,6 +5746,8 @@ snapshots:
dependencies:
ws: 8.18.0
+ js-tokens@4.0.0: {}
+
js-yaml@3.14.2:
dependencies:
argparse: 1.0.10
@@ -4999,6 +5759,8 @@ snapshots:
jsesc@3.1.0: {}
+ json5@2.2.3: {}
+
jsonfile@4.0.0:
optionalDependencies:
graceful-fs: 4.2.11
@@ -5019,22 +5781,16 @@ snapshots:
lodash.startcase@4.4.0: {}
- log4js@6.9.1:
- dependencies:
- date-format: 4.0.14
- debug: 4.4.3
- flatted: 3.3.4
- rfdc: 1.4.1
- streamroller: 3.1.5
- transitivePeerDependencies:
- - supports-color
-
long-timeout@0.1.1: {}
longest-streak@3.1.0: {}
lru-cache@11.2.6: {}
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
luxon@3.7.2: {}
magic-string@0.30.21:
@@ -5403,6 +6159,8 @@ snapshots:
node-mock-http@1.0.4: {}
+ node-releases@2.0.36: {}
+
node-schedule@2.1.1:
dependencies:
cron-parser: 4.9.0
@@ -5497,6 +6255,10 @@ snapshots:
dependencies:
yocto-queue: 1.2.2
+ p-limit@7.3.0:
+ dependencies:
+ yocto-queue: 1.2.2
+
p-locate@4.1.0:
dependencies:
p-limit: 2.3.0
@@ -5508,8 +6270,15 @@ snapshots:
eventemitter3: 5.0.4
p-timeout: 6.1.4
+ p-queue@9.1.0:
+ dependencies:
+ eventemitter3: 5.0.4
+ p-timeout: 7.0.1
+
p-timeout@6.1.4: {}
+ p-timeout@7.0.1: {}
+
p-try@2.2.0: {}
package-manager-detector@0.2.11:
@@ -5572,7 +6341,7 @@ snapshots:
property-information@7.1.0: {}
- proxy-from-env@1.1.0: {}
+ proxy-from-env@2.1.0: {}
quansync@0.2.11: {}
@@ -5586,6 +6355,15 @@ snapshots:
range-parser@1.2.1: {}
+ react-dom@19.2.4(react@19.2.4):
+ dependencies:
+ react: 19.2.4
+ scheduler: 0.27.0
+
+ react-refresh@0.18.0: {}
+
+ react@19.2.4: {}
+
read-yaml-file@1.1.0:
dependencies:
graceful-fs: 4.2.11
@@ -5713,8 +6491,6 @@ snapshots:
reusify@1.1.0: {}
- rfdc@1.4.1: {}
-
rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.8.1))(typescript@5.9.3):
dependencies:
'@babel/generator': 8.0.0-rc.3
@@ -5796,6 +6572,10 @@ snapshots:
sax@1.5.0: {}
+ scheduler@0.27.0: {}
+
+ semver@6.3.1: {}
+
semver@7.7.4: {}
send@1.2.1:
@@ -5867,6 +6647,17 @@ snapshots:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
+ shiki@4.0.2:
+ dependencies:
+ '@shikijs/core': 4.0.2
+ '@shikijs/engine-javascript': 4.0.2
+ '@shikijs/engine-oniguruma': 4.0.2
+ '@shikijs/langs': 4.0.2
+ '@shikijs/themes': 4.0.2
+ '@shikijs/types': 4.0.2
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
siginfo@2.0.0: {}
signal-exit@4.1.0: {}
@@ -5896,14 +6687,6 @@ snapshots:
std-env@4.0.0: {}
- streamroller@3.1.5:
- dependencies:
- date-format: 4.0.14
- debug: 4.4.3
- fs-extra: 8.1.0
- transitivePeerDependencies:
- - supports-color
-
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -5953,6 +6736,8 @@ snapshots:
tinybench@2.9.0: {}
+ tinyclip@0.1.12: {}
+
tinyexec@1.0.2: {}
tinyexec@1.0.4: {}
@@ -6120,6 +6905,12 @@ snapshots:
ofetch: 1.5.1
ufo: 1.6.3
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
+ dependencies:
+ browserslist: 4.28.2
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -6147,14 +6938,30 @@ snapshots:
'@types/node': 24.12.0
fsevents: 2.3.3
+ vite@7.3.1(@types/node@24.12.0):
+ dependencies:
+ esbuild: 0.27.3
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+ postcss: 8.5.8
+ rollup: 4.59.0
+ tinyglobby: 0.2.15
+ optionalDependencies:
+ '@types/node': 24.12.0
+ fsevents: 2.3.3
+
vitefu@1.1.2(vite@6.4.1(@types/node@24.12.0)):
optionalDependencies:
vite: 6.4.1(@types/node@24.12.0)
- vitest@4.1.2(@types/node@24.12.0)(vite@6.4.1(@types/node@24.12.0)):
+ vitefu@1.1.2(vite@7.3.1(@types/node@24.12.0)):
+ optionalDependencies:
+ vite: 7.3.1(@types/node@24.12.0)
+
+ vitest@4.1.2(@types/node@24.12.0)(vite@7.3.1(@types/node@24.12.0)):
dependencies:
'@vitest/expect': 4.1.2
- '@vitest/mocker': 4.1.2(vite@6.4.1(@types/node@24.12.0))
+ '@vitest/mocker': 4.1.2(vite@7.3.1(@types/node@24.12.0))
'@vitest/pretty-format': 4.1.2
'@vitest/runner': 4.1.2
'@vitest/snapshot': 4.1.2
@@ -6171,7 +6978,7 @@ snapshots:
tinyexec: 1.0.4
tinyglobby: 0.2.15
tinyrainbow: 3.1.0
- vite: 6.4.1(@types/node@24.12.0)
+ vite: 7.3.1(@types/node@24.12.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 24.12.0
@@ -6209,8 +7016,12 @@ snapshots:
xxhash-wasm@1.1.0: {}
+ yallist@3.1.1: {}
+
yargs-parser@21.1.1: {}
+ yargs-parser@22.0.0: {}
+
yocto-queue@1.2.2: {}
yocto-spinner@0.2.3:
@@ -6230,4 +7041,6 @@ snapshots:
zod@3.25.76: {}
+ zod@4.3.6: {}
+
zwitch@2.0.4: {}
diff --git a/scripts/dev-react.mjs b/scripts/dev-react.mjs
new file mode 100644
index 0000000..643828d
--- /dev/null
+++ b/scripts/dev-react.mjs
@@ -0,0 +1,23 @@
+import { execSync } from "node:child_process";
+
+const ports = [4331, 4332];
+
+for (const port of ports) {
+ let pids = [];
+
+ try {
+ const stdout = execSync(`lsof -tiTCP:${port} -sTCP:LISTEN`, {
+ encoding: "utf8",
+ stdio: ["ignore", "pipe", "ignore"],
+ }).trim();
+ pids = stdout ? stdout.split("\n").filter(Boolean) : [];
+ } catch {
+ pids = [];
+ }
+
+ for (const pid of pids) {
+ try {
+ process.kill(Number(pid), "SIGTERM");
+ } catch {}
+ }
+}