diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..3550a30
--- /dev/null
+++ b/.envrc
@@ -0,0 +1 @@
+use flake
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f23b8e4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+node_modules/
+dist/
+.vite/
+.direnv/
+result
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..e1f6b54
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,4 @@
+apps/web/dist/
+apps/web/src/routeTree.gen.ts
+node_modules/
+result
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e952c84
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,15 @@
+Copyright (c) 2025 Methanium
+
+All rights reserved.
+
+No part of this software, source code, documentation, or
+associated materials may be copied, reproduced, modified,
+distributed, published, sublicensed, sold, or used to create
+derivative works without prior written permission from the
+copyright holder.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY
+OF ANY KIND, EXPRESS OR IMPLIED. TO THE MAXIMUM
+EXTENT PERMITTED BY LAW, THE COPYRIGHT HOLDER SHALL
+NOT BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER
+LIABILITY ARISING FROM THE SOFTWARE OR ITS USE.
diff --git a/README.md b/README.md
index 5b42e54..516cc5b 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,51 @@
-# template
+# Methanium Template
+A pnpm React template with Vite, Tailwind CSS, Methanium UI, MTP, TanStack Router, and a base nix flake.
+
+## Development
+
+```sh
+nix develop
+pnpm install
+pnpm dev
+```
+
+## Configure MTP
+
+1. Define the host's communication and data types in `apps/web/type-maps.yaml`.
+2. Set the connection options in `apps/web/src/mtp-options.ts`.
+
+The reusable provider and `useMTP` hook are in `packages/mtp/`.
+
+## Nix
+
+Build the static frontend:
+
+```sh
+nix build
+```
+
+To serve it with nginx on NixOS, import the included module:
+
+```nix
+{
+ inputs.methanium-template.url =
+ "git+https://git.methanium.net/methanium/template";
+
+ outputs = {nixpkgs, methanium-template, ...}: {
+ nixosConfigurations.host = nixpkgs.lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ methanium-template.nixosModules.default
+ {
+ services.methanium-template = {
+ enable = true;
+ hostName = "app.example.com";
+ openFirewall = true;
+ };
+ }
+ ];
+ };
+ };
+}
+```
diff --git a/apps/web/index.html b/apps/web/index.html
new file mode 100644
index 0000000..2db8895
--- /dev/null
+++ b/apps/web/index.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ Methanium Vite Template
+
+
+
+
+
+
+
+
diff --git a/apps/web/package.json b/apps/web/package.json
new file mode 100644
index 0000000..eb897b4
--- /dev/null
+++ b/apps/web/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "@methanium/template-web",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@methanium/template-mtp": "workspace:*",
+ "@methanium/ui": "*",
+ "@tanstack/react-router": "^1.131.35",
+ "lucide-react": "^1.21.0",
+ "mtp": "*",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0"
+ },
+ "devDependencies": {
+ "@tailwindcss/vite": "^4.3.1",
+ "@tanstack/router-plugin": "^1.131.35",
+ "@types/react": "^19.2.0",
+ "@types/react-dom": "^19.2.0",
+ "@vitejs/plugin-react": "^5.0.4",
+ "tailwindcss": "^4.3.1",
+ "vite": "^7.1.12"
+ }
+}
diff --git a/apps/web/public/methanium.svg b/apps/web/public/methanium.svg
new file mode 100644
index 0000000..f30f77c
--- /dev/null
+++ b/apps/web/public/methanium.svg
@@ -0,0 +1,27 @@
+
diff --git a/apps/web/src/components/layout/Header.tsx b/apps/web/src/components/layout/Header.tsx
new file mode 100644
index 0000000..c8a1e6e
--- /dev/null
+++ b/apps/web/src/components/layout/Header.tsx
@@ -0,0 +1,57 @@
+import { Moon, Sun } from "lucide-react";
+
+import { Button, useTheme } from "@methanium/ui";
+
+const homepageUrl = "https://methanium.net";
+
+export function Header() {
+ const { resolvedPolarity, setTheme } = useTheme();
+ const isDark = resolvedPolarity === "dark";
+
+ return (
+
+ );
+}
diff --git a/apps/web/src/main.tsx b/apps/web/src/main.tsx
new file mode 100644
index 0000000..aca6910
--- /dev/null
+++ b/apps/web/src/main.tsx
@@ -0,0 +1,32 @@
+import "./styles.css";
+
+import { BUILT_IN_THEMES, ThemeProvider } from "@methanium/ui";
+import { Provider as MTPProvider } from "@methanium/template-mtp";
+import { createRouter, RouterProvider } from "@tanstack/react-router";
+import { StrictMode } from "react";
+import { createRoot } from "react-dom/client";
+
+import { routeTree } from "./routeTree.gen";
+import { mtpOptions } from "./mtp-options.ts";
+
+const router = createRouter({ routeTree });
+
+declare module "@tanstack/react-router" {
+ interface Register {
+ router: typeof router;
+ }
+}
+
+createRoot(document.getElementById("root")!).render(
+
+
+
+
+
+
+ ,
+);
diff --git a/apps/web/src/mtp-options.ts b/apps/web/src/mtp-options.ts
new file mode 100644
index 0000000..b354b99
--- /dev/null
+++ b/apps/web/src/mtp-options.ts
@@ -0,0 +1,13 @@
+import type { MTPClientOptions } from "mtp";
+
+// Replace null with your application's stable MTP connection configuration.
+export const mtpOptions: MTPClientOptions | null = null;
+
+// Example:
+// export const mtpOptions: MTPClientOptions = {
+// url: "https://mtp.example.com:4433",
+// credentials: { clientId: 1, keyring: new Uint8Array([...]) },
+// hostPublicKey: "...",
+// descriptor: "web",
+// pings: true,
+// };
diff --git a/apps/web/src/routeTree.gen.ts b/apps/web/src/routeTree.gen.ts
new file mode 100644
index 0000000..d204c26
--- /dev/null
+++ b/apps/web/src/routeTree.gen.ts
@@ -0,0 +1,59 @@
+/* eslint-disable */
+
+// @ts-nocheck
+
+// noinspection JSUnusedGlobalSymbols
+
+// This file was automatically generated by TanStack Router.
+// You should NOT make any changes in this file as it will be overwritten.
+// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
+
+import { Route as rootRouteImport } from './routes/__root'
+import { Route as IndexRouteImport } from './routes/index'
+
+const IndexRoute = IndexRouteImport.update({
+ id: '/',
+ path: '/',
+ getParentRoute: () => rootRouteImport,
+} as any)
+
+export interface FileRoutesByFullPath {
+ '/': typeof IndexRoute
+}
+export interface FileRoutesByTo {
+ '/': typeof IndexRoute
+}
+export interface FileRoutesById {
+ __root__: typeof rootRouteImport
+ '/': typeof IndexRoute
+}
+export interface FileRouteTypes {
+ fileRoutesByFullPath: FileRoutesByFullPath
+ fullPaths: '/'
+ fileRoutesByTo: FileRoutesByTo
+ to: '/'
+ id: '__root__' | '/'
+ fileRoutesById: FileRoutesById
+}
+export interface RootRouteChildren {
+ IndexRoute: typeof IndexRoute
+}
+
+declare module '@tanstack/react-router' {
+ interface FileRoutesByPath {
+ '/': {
+ id: '/'
+ path: '/'
+ fullPath: '/'
+ preLoaderRoute: typeof IndexRouteImport
+ parentRoute: typeof rootRouteImport
+ }
+ }
+}
+
+const rootRouteChildren: RootRouteChildren = {
+ IndexRoute: IndexRoute,
+}
+export const routeTree = rootRouteImport
+ ._addFileChildren(rootRouteChildren)
+ ._addFileTypes()
diff --git a/apps/web/src/routes/__root.tsx b/apps/web/src/routes/__root.tsx
new file mode 100644
index 0000000..a899baf
--- /dev/null
+++ b/apps/web/src/routes/__root.tsx
@@ -0,0 +1,17 @@
+import { createRootRoute, Outlet } from "@tanstack/react-router";
+
+import { Header } from "../components/layout/Header";
+
+const EmptyPage = () => (
+
+);
+
+export const Route = createRootRoute({
+ component: () => (
+
+
+
+
+ ),
+ notFoundComponent: EmptyPage,
+});
diff --git a/apps/web/src/routes/index.tsx b/apps/web/src/routes/index.tsx
new file mode 100644
index 0000000..c3766c9
--- /dev/null
+++ b/apps/web/src/routes/index.tsx
@@ -0,0 +1,7 @@
+import { createFileRoute } from "@tanstack/react-router";
+
+export const Route = createFileRoute("/")({ component: Home });
+
+function Home() {
+ return ;
+}
diff --git a/apps/web/src/styles.css b/apps/web/src/styles.css
new file mode 100644
index 0000000..3a76e8b
--- /dev/null
+++ b/apps/web/src/styles.css
@@ -0,0 +1,2 @@
+@import "tailwindcss";
+@import "@methanium/ui/index.css";
diff --git a/apps/web/type-maps.yaml b/apps/web/type-maps.yaml
new file mode 100644
index 0000000..9c203e0
--- /dev/null
+++ b/apps/web/type-maps.yaml
@@ -0,0 +1,10 @@
+protocol_version: "1.0"
+
+type_maps:
+ "1.0":
+ CommunicationTypes:
+ ExampleRequest: 32
+ ExampleResponse: 33
+ DataTypes:
+ Message: 32
+ ReceivedAt: 33
diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts
new file mode 100644
index 0000000..1b5cc8a
--- /dev/null
+++ b/apps/web/vite.config.ts
@@ -0,0 +1,28 @@
+import { methaniumUi } from "@methanium/ui/vite";
+import { tanstackRouter } from "@tanstack/router-plugin/vite";
+import tailwindcss from "@tailwindcss/vite";
+import react from "@vitejs/plugin-react";
+import { mtp } from "mtp/vite";
+import path from "node:path";
+import { fileURLToPath } from "node:url";
+import { defineConfig, type Plugin } from "vite";
+
+const root = path.dirname(fileURLToPath(import.meta.url));
+
+export default defineConfig({
+ plugins: [
+ tanstackRouter({ target: "react", autoCodeSplitting: true }),
+ tailwindcss(),
+ react(),
+ methaniumUi({ defaultThemeId: "methanium" }),
+ mtp({ typeMaps: "./type-maps.yaml" }) as Plugin,
+ ],
+ resolve: {
+ alias: {
+ "@methanium/template-mtp": path.resolve(
+ root,
+ "../../packages/mtp/index.ts",
+ ),
+ },
+ },
+});
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..60768f1
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,62 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1785090369,
+ "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "624af665418d3c65d544145b4d34ad696439570e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1744536153,
+ "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs",
+ "rust-overlay": "rust-overlay"
+ }
+ },
+ "rust-overlay": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1785302874,
+ "narHash": "sha256-fpKEww3TJoo1ANHO2q918ei+ayOrp0YEQAO1DuBLOB4=",
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "rev": "b99d48435bc3e34309d2c7ae6f7d45e77a156c38",
+ "type": "github"
+ },
+ "original": {
+ "owner": "oxalica",
+ "repo": "rust-overlay",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..d23a0e7
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,211 @@
+{
+ description = "Methanium Template";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ rust-overlay.url = "github:oxalica/rust-overlay";
+ };
+
+ outputs =
+ inputs@{
+ self,
+ nixpkgs,
+ rust-overlay,
+ ...
+ }:
+ let
+ systems = [
+ "aarch64-darwin"
+ "aarch64-linux"
+ "x86_64-darwin"
+ "x86_64-linux"
+ ];
+ forAllSystems = nixpkgs.lib.genAttrs systems;
+ pkgsFor =
+ system:
+ import nixpkgs {
+ inherit system;
+ overlays = [ rust-overlay.overlays.default ];
+ };
+ in
+ {
+ packages = forAllSystems (
+ system:
+ let
+ pkgs = pkgsFor system;
+ root = toString ./.;
+ rustToolchain = pkgs.rust-bin.stable.latest.default.override {
+ targets = [ "wasm32-unknown-unknown" ];
+ };
+ source = pkgs.lib.cleanSourceWith {
+ src = ./.;
+ filter =
+ path: _type:
+ let
+ relative = pkgs.lib.removePrefix "${root}/" (toString path);
+ in
+ !(pkgs.lib.hasPrefix "node_modules/" relative)
+ && !(pkgs.lib.hasPrefix "apps/web/node_modules/" relative)
+ && !(pkgs.lib.hasPrefix "apps/web/dist/" relative)
+ && relative != "node_modules"
+ && relative != "apps/web/node_modules"
+ && relative != "apps/web/dist"
+ && relative != "result";
+ };
+ nativeBuildInputs = [
+ pkgs.cacert
+ pkgs.git
+ pkgs.nodejs
+ pkgs.pnpm
+ pkgs.wasm-pack
+ rustToolchain
+ ];
+ webDeps = pkgs.stdenvNoCC.mkDerivation {
+ pname = "methanium-template-web-deps";
+ version = "0.1.0";
+ src = source;
+ nativeBuildInputs = [
+ pkgs.cacert
+ pkgs.git
+ pkgs.nodejs
+ pkgs.pnpm
+ pkgs.wasm-pack
+ rustToolchain
+ ];
+
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = "sha256-ihavd0hJDptdyEtjWjVgghwAl/rn6aUdQ9CT3B4if3E=";
+ dontFixup = true;
+ __structuredAttrs = true;
+ unsafeDiscardReferences.out = true;
+
+ buildPhase = ''
+ runHook preBuild
+ export HOME="$TMPDIR/home"
+ export CARGO_HOME="$TMPDIR/cargo"
+ mkdir -p "$HOME"
+ pnpm install --frozen-lockfile
+ patchShebangs node_modules
+ pnpm build
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p "$out/apps/web"
+ cp -a node_modules "$out/node_modules"
+ cp -a apps/web/node_modules "$out/apps/web/node_modules"
+ cp -a "$CARGO_HOME" "$out/cargo"
+ cp -a "$HOME/.cache/.wasm-pack" "$out/wasm-pack"
+ runHook postInstall
+ '';
+ };
+ web = pkgs.stdenvNoCC.mkDerivation {
+ pname = "methanium-template-web";
+ version = "0.1.0";
+ src = source;
+ inherit nativeBuildInputs;
+
+ buildPhase = ''
+ runHook preBuild
+ cp -a ${webDeps}/node_modules .
+ cp -a ${webDeps}/apps/web/node_modules apps/web/node_modules
+ cp -a ${webDeps}/cargo "$TMPDIR/cargo"
+ chmod -R u+w node_modules apps/web/node_modules "$TMPDIR/cargo"
+ export HOME="$TMPDIR/home"
+ export CARGO_HOME="$TMPDIR/cargo"
+ export CARGO_NET_OFFLINE=true
+ mkdir -p "$HOME/.cache"
+ cp -a ${webDeps}/wasm-pack "$HOME/.cache/.wasm-pack"
+ chmod -R u+w "$HOME/.cache/.wasm-pack"
+ pnpm build
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ cp -r apps/web/dist "$out"
+ runHook postInstall
+ '';
+ };
+ in
+ {
+ default = web;
+ web = web;
+ }
+ );
+
+ devShells = forAllSystems (
+ system:
+ let
+ pkgs = pkgsFor system;
+ rustToolchain = pkgs.rust-bin.stable.latest.default.override {
+ extensions = [ "rust-src" ];
+ targets = [ "wasm32-unknown-unknown" ];
+ };
+ in
+ {
+ default = pkgs.mkShell {
+ packages = [
+ pkgs.nodejs
+ pkgs.pnpm
+ pkgs.wasm-pack
+ rustToolchain
+ ];
+ };
+ }
+ );
+
+ checks = forAllSystems (system: {
+ inherit (self.packages.${system}) web;
+ });
+
+ nixosModules.default =
+ {
+ config,
+ lib,
+ pkgs,
+ ...
+ }:
+ let
+ cfg = config.services.methanium-template;
+ in
+ {
+ options.services.methanium-template = {
+ enable = lib.mkEnableOption "the Methanium frontend";
+
+ package = lib.mkOption {
+ type = lib.types.package;
+ default = self.packages.${pkgs.stdenv.hostPlatform.system}.default;
+ defaultText = lib.literalExpression "self.packages.${pkgs.stdenv.hostPlatform.system}.default";
+ description = "Static frontend package to serve.";
+ };
+
+ hostName = lib.mkOption {
+ type = lib.types.str;
+ default = "localhost";
+ description = "nginx virtual host name.";
+ };
+
+ openFirewall = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ description = "Whether to open TCP port 80 in the firewall.";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ services.nginx = {
+ enable = true;
+ virtualHosts.${cfg.hostName} = {
+ root = cfg.package;
+ locations."/".tryFiles = "$uri $uri/ /index.html";
+ };
+ };
+
+ networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ 80 ];
+ };
+ };
+ };
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..3f37de5
--- /dev/null
+++ b/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "methanium-template",
+ "private": true,
+ "type": "module",
+ "packageManager": "pnpm@11.17.0",
+ "scripts": {
+ "dev": "pnpm --filter @methanium/template-web dev",
+ "build": "pnpm --filter @methanium/template-web build",
+ "check": "tsc -p tsconfig.json",
+ "lint": "oxlint apps/web/src packages/mtp",
+ "fmt": "prettier --write .",
+ "fmt:check": "prettier --check ."
+ },
+ "devDependencies": {
+ "oxlint": "^1.28.0",
+ "prettier": "^3.6.2",
+ "typescript": "^5.9.3",
+ "@types/node": "^24.0.0"
+ }
+}
diff --git a/packages/mtp/context.tsx b/packages/mtp/context.tsx
new file mode 100644
index 0000000..8f013d5
--- /dev/null
+++ b/packages/mtp/context.tsx
@@ -0,0 +1,357 @@
+import { toast } from "@methanium/ui";
+import {
+ ConnectionState,
+ MTPClient,
+ type MTPClientOptions,
+ type MTPRequestOptions,
+} from "mtp";
+import {
+ createContext,
+ type JSX,
+ type ReactNode,
+ useCallback,
+ useContext,
+ useEffect,
+ useMemo,
+ useRef,
+ useState,
+} from "react";
+
+import { RECONNECT_RESET, RECONNECT_TRIES, RETRY_INTERVAL } from "./values.ts";
+
+export type ProtocolMessage = {
+ id?: number;
+ type: string;
+ data: unknown;
+ sender?: bigint;
+ receiver?: bigint;
+};
+
+export type BoundSendFn = (
+ type: string,
+ data?: Record,
+ options?: MTPRequestOptions,
+) => Promise;
+
+export type PushHandler = (message: ProtocolMessage) => void;
+
+export type MTPExchange = {
+ type: string;
+ data: Record;
+ response: ProtocolMessage;
+};
+
+export type MTPInterceptor = (exchange: MTPExchange) => void | Promise;
+
+type Subscription = {
+ type: string;
+ handler: PushHandler;
+ unsubscribe?: () => void;
+};
+
+type ClientWaiter = {
+ resolve: (client: MTPClient) => void;
+ reject: (error: Error) => void;
+};
+
+type ContextType = {
+ send: BoundSendFn;
+ subscribe: (type: string, handler: PushHandler) => () => void;
+ addInterceptor: (interceptor: MTPInterceptor) => () => void;
+ reconnect: () => void;
+ readyState: number;
+ connected: boolean;
+ authenticated: boolean;
+ contextReady: boolean;
+ loadingDescription: string;
+ error: Error | null;
+};
+
+const MTPContext = createContext(undefined);
+
+export type MTPProviderProps = {
+ children: ReactNode;
+ options: MTPClientOptions | null;
+ authenticate?: boolean;
+ blockConnection?: boolean;
+};
+
+export function Provider({
+ children,
+ options,
+ authenticate = true,
+ blockConnection = false,
+}: MTPProviderProps): JSX.Element {
+ const [readyState, setReadyState] = useState(
+ ConnectionState.Disconnected,
+ );
+ const [authenticated, setAuthenticated] = useState(false);
+ const [error, setError] = useState(null);
+ const [reconnectGeneration, setReconnectGeneration] = useState(0);
+ const clientRef = useRef(null);
+ const readyRef = useRef(false);
+ const waitersRef = useRef(new Set());
+ const subscriptionsRef = useRef(new Set());
+ const interceptorsRef = useRef(new Set());
+
+ const unbindSubscriptions = useCallback(() => {
+ for (const subscription of subscriptionsRef.current) {
+ subscription.unsubscribe?.();
+ subscription.unsubscribe = undefined;
+ }
+ }, []);
+
+ const bindSubscriptions = useCallback((client: MTPClient) => {
+ for (const subscription of subscriptionsRef.current) {
+ subscription.unsubscribe?.();
+ subscription.unsubscribe = client.subscribe(
+ subscription.type,
+ (message) => subscription.handler(message as ProtocolMessage),
+ );
+ }
+ }, []);
+
+ useEffect(() => {
+ if (!options || blockConnection) {
+ readyRef.current = false;
+ setReadyState(ConnectionState.Disconnected);
+ setAuthenticated(false);
+ return;
+ }
+ const connectionOptions = options;
+
+ let disposed = false;
+ let reconnectTimer: ReturnType | null = null;
+ let reconnectResetTimer: ReturnType | null = null;
+ let attempts = 0;
+ let connectionGeneration = 0;
+
+ const disconnectClient = () => {
+ readyRef.current = false;
+ unbindSubscriptions();
+ const activeClient = clientRef.current;
+ clientRef.current = null;
+ activeClient?.disconnect();
+ setReadyState(ConnectionState.Disconnected);
+ setAuthenticated(false);
+ };
+
+ const scheduleReconnect = (connectionError: Error) => {
+ if (disposed || reconnectTimer) return;
+ setError(connectionError);
+
+ if (attempts >= RECONNECT_TRIES) {
+ toast.error("MTP connection failed", {
+ id: "mtp-connection",
+ description: connectionError.message,
+ duration: Infinity,
+ closeButton: true,
+ });
+ return;
+ }
+
+ attempts += 1;
+ toast.loading(`Reconnecting to MTP (${attempts}/${RECONNECT_TRIES})`, {
+ id: "mtp-connection",
+ });
+ reconnectTimer = setTimeout(() => {
+ reconnectTimer = null;
+ void connect();
+ }, RETRY_INTERVAL);
+ };
+
+ async function connect() {
+ if (disposed) return;
+
+ const generation = ++connectionGeneration;
+ let client: MTPClient | null = null;
+ try {
+ disconnectClient();
+ setError(null);
+ setReadyState(ConnectionState.Connecting);
+
+ await MTPClient.init(connectionOptions.wasm);
+ client = await MTPClient.create({
+ ...connectionOptions,
+ logger: (event) => {
+ connectionOptions.logger?.(event);
+ if (disposed || generation !== connectionGeneration) return;
+ if ((event as { type: string }).type !== "state") return;
+
+ const nextState = client?.state ?? ConnectionState.Disconnected;
+ setReadyState(nextState);
+ if (
+ client !== null &&
+ nextState === ConnectionState.Disconnected &&
+ clientRef.current === client
+ ) {
+ disconnectClient();
+ scheduleReconnect(new Error("MTP connection lost"));
+ }
+ },
+ });
+
+ if (disposed || generation !== connectionGeneration) {
+ client.disconnect();
+ return;
+ }
+
+ clientRef.current = client;
+ setReadyState(client.state);
+
+ if (authenticate) {
+ if (!client.credentials || client.credentials.clientId === null) {
+ throw new Error("MTP credentials are required for authentication");
+ }
+ await client.auth();
+ } else {
+ await client.connect();
+ }
+
+ if (disposed || clientRef.current !== client) return;
+
+ readyRef.current = true;
+ setReadyState(client.state);
+ setAuthenticated(true);
+ setError(null);
+ bindSubscriptions(client);
+ for (const waiter of waitersRef.current) waiter.resolve(client);
+ waitersRef.current.clear();
+ toast.dismiss("mtp-connection");
+
+ if (reconnectResetTimer) clearTimeout(reconnectResetTimer);
+ reconnectResetTimer = setTimeout(() => {
+ attempts = 0;
+ reconnectResetTimer = null;
+ }, RECONNECT_RESET * 1_000);
+ } catch (cause) {
+ if (disposed || generation !== connectionGeneration) {
+ client?.disconnect();
+ return;
+ }
+
+ disconnectClient();
+ scheduleReconnect(
+ cause instanceof Error ? cause : new Error(String(cause)),
+ );
+ }
+ }
+
+ void connect();
+
+ return () => {
+ disposed = true;
+ connectionGeneration += 1;
+ if (reconnectTimer) clearTimeout(reconnectTimer);
+ if (reconnectResetTimer) clearTimeout(reconnectResetTimer);
+ disconnectClient();
+ toast.dismiss("mtp-connection");
+
+ const cancellation = new Error("MTP provider was disconnected");
+ for (const waiter of waitersRef.current) waiter.reject(cancellation);
+ waitersRef.current.clear();
+ };
+ }, [
+ authenticate,
+ bindSubscriptions,
+ blockConnection,
+ options,
+ reconnectGeneration,
+ unbindSubscriptions,
+ ]);
+
+ const getClient = useCallback(() => {
+ if (readyRef.current && clientRef.current) {
+ return Promise.resolve(clientRef.current);
+ }
+
+ if (!options || blockConnection) {
+ return Promise.reject(new Error("MTP connection is not configured"));
+ }
+
+ return new Promise((resolve, reject) => {
+ waitersRef.current.add({ resolve, reject });
+ });
+ }, [blockConnection, options]);
+
+ const send = useCallback(
+ async (type, data = {}, requestOptions) => {
+ const client = await getClient();
+ const response = await client.request(type, data, requestOptions);
+ const message = response as ProtocolMessage;
+
+ for (const interceptor of interceptorsRef.current) {
+ void Promise.resolve(
+ interceptor({ type, data, response: message }),
+ ).catch((interceptorError) => {
+ console.error("MTP interceptor failed", interceptorError);
+ });
+ }
+
+ return message;
+ },
+ [getClient],
+ );
+
+ const subscribe = useCallback((type: string, handler: PushHandler) => {
+ const subscription: Subscription = { type, handler };
+ subscriptionsRef.current.add(subscription);
+
+ if (readyRef.current && clientRef.current) {
+ subscription.unsubscribe = clientRef.current.subscribe(type, (message) =>
+ handler(message as ProtocolMessage),
+ );
+ }
+
+ return () => {
+ subscription.unsubscribe?.();
+ subscriptionsRef.current.delete(subscription);
+ };
+ }, []);
+
+ const addInterceptor = useCallback((interceptor: MTPInterceptor) => {
+ interceptorsRef.current.add(interceptor);
+ return () => interceptorsRef.current.delete(interceptor);
+ }, []);
+
+ const reconnect = useCallback(() => {
+ setReconnectGeneration((generation) => generation + 1);
+ }, []);
+
+ const connected = readyState === ConnectionState.Connected;
+ const contextReady = connected && authenticated;
+ const loadingDescription = useMemo(() => {
+ if (!options) return "Waiting for connection configuration";
+ if (error) return error.message;
+ if (readyState === ConnectionState.Connecting || !connected) {
+ return "Establishing transport channel";
+ }
+ if (!authenticated) return "Waiting for authenticated session";
+ return "Connected";
+ }, [authenticated, connected, error, options, readyState]);
+
+ return (
+
+ {children}
+
+ );
+}
+
+export function useMTP(): ContextType {
+ const context = useContext(MTPContext);
+ if (!context) throw new Error("useMTP must be used within an MTP Provider");
+ return context;
+}
diff --git a/packages/mtp/index.ts b/packages/mtp/index.ts
new file mode 100644
index 0000000..a8c8a17
--- /dev/null
+++ b/packages/mtp/index.ts
@@ -0,0 +1,10 @@
+export { Provider, useMTP } from "./context.tsx";
+export type {
+ BoundSendFn,
+ MTPExchange,
+ MTPInterceptor,
+ MTPProviderProps,
+ ProtocolMessage,
+ PushHandler,
+} from "./context.tsx";
+export { RECONNECT_RESET, RECONNECT_TRIES, RETRY_INTERVAL } from "./values.ts";
diff --git a/packages/mtp/package.json b/packages/mtp/package.json
new file mode 100644
index 0000000..a8f7ab2
--- /dev/null
+++ b/packages/mtp/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "@methanium/template-mtp",
+ "private": true,
+ "type": "module",
+ "exports": {
+ ".": "./index.ts"
+ },
+ "peerDependencies": {
+ "@methanium/ui": "*",
+ "mtp": "*",
+ "react": "^19.0.0"
+ },
+ "devDependencies": {
+ "@methanium/ui": "*",
+ "mtp": "*",
+ "react": "^19.2.0"
+ }
+}
diff --git a/packages/mtp/values.ts b/packages/mtp/values.ts
new file mode 100644
index 0000000..d9f6cd4
--- /dev/null
+++ b/packages/mtp/values.ts
@@ -0,0 +1,3 @@
+export const RETRY_INTERVAL = 3_000;
+export const RECONNECT_TRIES = 3;
+export const RECONNECT_RESET = 6;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..8976001
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,6759 @@
+lockfileVersion: "9.0"
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+overrides:
+ "@methanium/ui": https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz
+ mtp: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz
+
+importers:
+ .:
+ devDependencies:
+ "@types/node":
+ specifier: ^24.0.0
+ version: 24.13.3
+ oxlint:
+ specifier: ^1.28.0
+ version: 1.76.0
+ prettier:
+ specifier: ^3.6.2
+ version: 3.9.6
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
+ apps/web:
+ dependencies:
+ "@methanium/template-mtp":
+ specifier: workspace:*
+ version: link:../../packages/mtp
+ "@methanium/ui":
+ specifier: https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz
+ version: https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@19.2.8)(react@19.2.8)(redux@5.0.1)(typescript@5.9.3)
+ "@tanstack/react-router":
+ specifier: ^1.131.35
+ version: 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ lucide-react:
+ specifier: ^1.21.0
+ version: 1.27.0(react@19.2.8)
+ mtp:
+ specifier: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz
+ version: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz
+ react:
+ specifier: ^19.2.0
+ version: 19.2.8
+ react-dom:
+ specifier: ^19.2.0
+ version: 19.2.8(react@19.2.8)
+ devDependencies:
+ "@tailwindcss/vite":
+ specifier: ^4.3.1
+ version: 4.3.3(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))
+ "@tanstack/router-plugin":
+ specifier: ^1.131.35
+ version: 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))
+ "@types/react":
+ specifier: ^19.2.0
+ version: 19.2.17
+ "@types/react-dom":
+ specifier: ^19.2.0
+ version: 19.2.3(@types/react@19.2.17)
+ "@vitejs/plugin-react":
+ specifier: ^5.0.4
+ version: 5.2.0(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))
+ tailwindcss:
+ specifier: ^4.3.1
+ version: 4.3.3
+ vite:
+ specifier: ^7.1.12
+ version: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)
+
+ packages/mtp:
+ dependencies:
+ "@methanium/ui":
+ specifier: https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz
+ version: https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@19.2.8)(react@19.2.8)(redux@5.0.1)(typescript@5.9.3)
+ mtp:
+ specifier: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz
+ version: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz
+ devDependencies:
+ react:
+ specifier: ^19.2.0
+ version: 19.2.8
+
+packages:
+ "@babel/code-frame@7.29.7":
+ resolution:
+ {
+ integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/compat-data@7.29.7":
+ resolution:
+ {
+ integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/core@7.29.7":
+ resolution:
+ {
+ integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/generator@7.29.7":
+ resolution:
+ {
+ integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-annotate-as-pure@7.29.7":
+ resolution:
+ {
+ integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-compilation-targets@7.29.7":
+ resolution:
+ {
+ integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-create-class-features-plugin@7.29.7":
+ resolution:
+ {
+ integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0
+
+ "@babel/helper-globals@7.29.7":
+ resolution:
+ {
+ integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-member-expression-to-functions@7.29.7":
+ resolution:
+ {
+ integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-imports@7.29.7":
+ resolution:
+ {
+ integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-module-transforms@7.29.7":
+ resolution:
+ {
+ integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0
+
+ "@babel/helper-optimise-call-expression@7.29.7":
+ resolution:
+ {
+ integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-plugin-utils@7.29.7":
+ resolution:
+ {
+ integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-replace-supers@7.29.7":
+ resolution:
+ {
+ integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0
+
+ "@babel/helper-skip-transparent-expression-wrappers@7.29.7":
+ resolution:
+ {
+ integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-string-parser@7.29.7":
+ resolution:
+ {
+ integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-identifier@7.29.7":
+ resolution:
+ {
+ integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helper-validator-option@7.29.7":
+ resolution:
+ {
+ integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/helpers@7.29.7":
+ resolution:
+ {
+ integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/parser@7.29.7":
+ resolution:
+ {
+ integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==,
+ }
+ engines: { node: ">=6.0.0" }
+ hasBin: true
+
+ "@babel/plugin-syntax-jsx@7.29.7":
+ resolution:
+ {
+ integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-syntax-typescript@7.29.7":
+ resolution:
+ {
+ integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-transform-modules-commonjs@7.29.7":
+ resolution:
+ {
+ integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-transform-react-jsx-self@7.29.7":
+ resolution:
+ {
+ integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-transform-react-jsx-source@7.29.7":
+ resolution:
+ {
+ integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/plugin-transform-typescript@7.29.7":
+ resolution:
+ {
+ integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/preset-typescript@7.29.7":
+ resolution:
+ {
+ integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==,
+ }
+ engines: { node: ">=6.9.0" }
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+
+ "@babel/runtime@7.29.7":
+ resolution:
+ {
+ integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/template@7.29.7":
+ resolution:
+ {
+ integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/traverse@7.29.7":
+ resolution:
+ {
+ integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@babel/types@7.29.7":
+ resolution:
+ {
+ integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ "@base-ui/react@1.6.0":
+ resolution:
+ {
+ integrity: sha512-/jzjTWJYXhRFO45Bev9lc3cHbmjzCMpUqbMZ2AgKy/z25mY9B6shGSNcXcjQar9n5doM0KYW1W8fcFv2jZBuMw==,
+ }
+ engines: { node: ">=14.0.0" }
+ peerDependencies:
+ "@date-fns/tz": ^1.2.0
+ "@types/react": ^17 || ^18 || ^19
+ date-fns: ^4.0.0
+ react: ^17 || ^18 || ^19
+ react-dom: ^17 || ^18 || ^19
+ peerDependenciesMeta:
+ "@date-fns/tz":
+ optional: true
+ "@types/react":
+ optional: true
+ date-fns:
+ optional: true
+
+ "@base-ui/utils@0.3.1":
+ resolution:
+ {
+ integrity: sha512-gFFiltORVmW/N6IILTGxizP3PBpVpysqML1ALY5Vk0mH+7faVkCknOU31goYHN5Aoek2dkjxva1XOD2Ce9WuIg==,
+ }
+ peerDependencies:
+ "@types/react": ^17 || ^18 || ^19
+ react: ^17 || ^18 || ^19
+ react-dom: ^17 || ^18 || ^19
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@dotenvx/dotenvx@1.75.1":
+ resolution:
+ {
+ integrity: sha512-/BITOC9dmS/edY2zQwZNicQ059O6RKabtQfyEafV0nGtfYRNHYy1DIPiYVcov40+tob9hfmBnbR963dS+EQ1DQ==,
+ }
+ hasBin: true
+
+ "@dotenvx/primitives@0.8.0":
+ resolution:
+ {
+ integrity: sha512-VYJy0uhFm9zTJ1TxBaW/pA8bjbOM/OttaNMwZ1RHG4JKyRG7DhSdiqD1ipQoAyoD22olUtxbP78W9xY3Wd11bg==,
+ }
+
+ "@esbuild/aix-ppc64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [aix]
+
+ "@esbuild/android-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [android]
+
+ "@esbuild/android-arm@0.28.1":
+ resolution:
+ {
+ integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [android]
+
+ "@esbuild/android-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [android]
+
+ "@esbuild/darwin-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@esbuild/darwin-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@esbuild/freebsd-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@esbuild/freebsd-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@esbuild/linux-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [linux]
+
+ "@esbuild/linux-arm@0.28.1":
+ resolution:
+ {
+ integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm]
+ os: [linux]
+
+ "@esbuild/linux-ia32@0.28.1":
+ resolution:
+ {
+ integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [linux]
+
+ "@esbuild/linux-loong64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [loong64]
+ os: [linux]
+
+ "@esbuild/linux-mips64el@0.28.1":
+ resolution:
+ {
+ integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [mips64el]
+ os: [linux]
+
+ "@esbuild/linux-ppc64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ppc64]
+ os: [linux]
+
+ "@esbuild/linux-riscv64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [riscv64]
+ os: [linux]
+
+ "@esbuild/linux-s390x@0.28.1":
+ resolution:
+ {
+ integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==,
+ }
+ engines: { node: ">=18" }
+ cpu: [s390x]
+ os: [linux]
+
+ "@esbuild/linux-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [linux]
+
+ "@esbuild/netbsd-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [netbsd]
+
+ "@esbuild/netbsd-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [netbsd]
+
+ "@esbuild/openbsd-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [openbsd]
+
+ "@esbuild/openbsd-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@esbuild/openharmony-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [openharmony]
+
+ "@esbuild/sunos-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [sunos]
+
+ "@esbuild/win32-arm64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==,
+ }
+ engines: { node: ">=18" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@esbuild/win32-ia32@0.28.1":
+ resolution:
+ {
+ integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==,
+ }
+ engines: { node: ">=18" }
+ cpu: [ia32]
+ os: [win32]
+
+ "@esbuild/win32-x64@0.28.1":
+ resolution:
+ {
+ integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==,
+ }
+ engines: { node: ">=18" }
+ cpu: [x64]
+ os: [win32]
+
+ "@floating-ui/core@1.8.0":
+ resolution:
+ {
+ integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==,
+ }
+
+ "@floating-ui/dom@1.8.0":
+ resolution:
+ {
+ integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==,
+ }
+
+ "@floating-ui/react-dom@2.1.9":
+ resolution:
+ {
+ integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==,
+ }
+ peerDependencies:
+ react: ">=16.8.0"
+ react-dom: ">=16.8.0"
+
+ "@floating-ui/utils@0.2.12":
+ resolution:
+ {
+ integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==,
+ }
+
+ "@fontsource-variable/public-sans@5.3.0":
+ resolution:
+ {
+ integrity: sha512-AVfkmAt50BMXWpOO21FAntiJFKGX6xTc2dSL8dxtDteONe9IuRXJWGbs0EbG955vAMCq23ENeuopuW87cGWDSQ==,
+ }
+
+ "@hono/node-server@2.0.12":
+ resolution:
+ {
+ integrity: sha512-eWpQYr67tqJLeaSUl0Q+TquuYfUdTibpOJlUMV2FfUP7+KqCC5TufnwnlXL6mobZBJbGAYRd7ZvEBDCbLInjhg==,
+ }
+ engines: { node: ">=20" }
+ peerDependencies:
+ hono: ^4
+
+ "@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" }
+
+ "@jridgewell/sourcemap-codec@1.5.5":
+ resolution:
+ {
+ integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==,
+ }
+
+ "@jridgewell/trace-mapping@0.3.31":
+ resolution:
+ {
+ integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==,
+ }
+
+ "@methanium/ui@https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz":
+ resolution:
+ {
+ integrity: sha512-Wq+cOj7+6bMeeBUgLOzZDogr5gerqkPEPrwLlivHIIHucnD4CDPsD6eIp4NACRgvf2WKVH89cBNIKAE8aoRuNQ==,
+ tarball: https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz,
+ }
+ version: 0.0.12
+ peerDependencies:
+ react: ^19.2.7
+ react-dom: ^19.2.7
+
+ "@modelcontextprotocol/sdk@1.30.0":
+ resolution:
+ {
+ integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==,
+ }
+ engines: { node: ">=18" }
+ peerDependencies:
+ "@cfworker/json-schema": ^4.1.1
+ zod: ^3.25 || ^4.0
+ peerDependenciesMeta:
+ "@cfworker/json-schema":
+ optional: true
+
+ "@nodelib/fs.scandir@2.1.5":
+ resolution:
+ {
+ integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==,
+ }
+ engines: { node: ">= 8" }
+
+ "@nodelib/fs.stat@2.0.5":
+ resolution:
+ {
+ integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==,
+ }
+ engines: { node: ">= 8" }
+
+ "@nodelib/fs.walk@1.2.8":
+ resolution:
+ {
+ integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==,
+ }
+ engines: { node: ">= 8" }
+
+ "@oxlint/binding-android-arm-eabi@1.76.0":
+ resolution:
+ {
+ integrity: sha512-ZHIE5Zt9AsPDcY4nOlofXt0YfneEeo+QrKMPcPzLf2Z6Q8VtV2W73d7SFJ920WUwyik783u/doKCs3KXdwG+7w==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm]
+ os: [android]
+
+ "@oxlint/binding-android-arm64@1.76.0":
+ resolution:
+ {
+ integrity: sha512-shm/ngQilHK6bs+ElJWa4oHfNj5vL1Gl/iVEJldTQjpr0/67oSgr0KUpbmcnLig5Fo0v/l6j2567A7TOL89ONA==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [android]
+
+ "@oxlint/binding-darwin-arm64@1.76.0":
+ resolution:
+ {
+ integrity: sha512-rvJmrAPKSQ9aWJ6wIS6CK2tJjwzfW0ApQH9qokq6sfDvmHwoyIHxHFMq7z7i7GiV6fdE6s8qvBqWKPTu8RmT6Q==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@oxlint/binding-darwin-x64@1.76.0":
+ resolution:
+ {
+ integrity: sha512-U/zYdb7VYKGY6pA9Vd2rYl9O/HlCylcOlb5PGPvVLtg+oLGsk6H3XGKEMHKyqD3nmmtmlmwb/8SwU2vfSAtvMw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [darwin]
+
+ "@oxlint/binding-freebsd-x64@1.76.0":
+ resolution:
+ {
+ integrity: sha512-WvKG9CAriuo0XNiFzpXjDngUZcRGFNpaK2kLyMUsnJlShxkT96u+BpJQ3KqdQwGOrvI14L6V8bAwXwAYNNY6Jg==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@oxlint/binding-linux-arm-gnueabihf@1.76.0":
+ resolution:
+ {
+ integrity: sha512-qJ5+RH99TqFRq3UCDxkW0zJJu9c+OAHFY72vGlxZLEpuO+MpKo3POgqb8sYipL9KYm8XY6ofb0HsOuvY6hQNqQ==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm]
+ os: [linux]
+
+ "@oxlint/binding-linux-arm-musleabihf@1.76.0":
+ resolution:
+ {
+ integrity: sha512-PvPCVptkgVARsucgIqFQQcSmJ6xc6GtnVB5bRBekRahTc9eObMtjHfMjy5M+C2tHt5UCMttWM9RuSk/H9NqYeg==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm]
+ os: [linux]
+
+ "@oxlint/binding-linux-arm64-gnu@1.76.0":
+ resolution:
+ {
+ integrity: sha512-3KeFDx8Bu4HPAXbuHZOr/oHvN+QT+JQhMw/NYPz7Z071xLSsG27Jfh9PIQVEY7hk1I+jr43ExqRIeJ6VKk2yLw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ "@oxlint/binding-linux-arm64-musl@1.76.0":
+ resolution:
+ {
+ integrity: sha512-oPFkkKTgl0K/EIg9fQ8oA3IGcI05/Mq1en04iFa41mmNPT+6KEiByVazTOZZJiHMBBrbsns1YJ2e1Scqwzesjw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ "@oxlint/binding-linux-ppc64-gnu@1.76.0":
+ resolution:
+ {
+ integrity: sha512-gN7yZ0eqflA5Fhf1wvHxGUltIV3FsvmB1zhNMDEK9vSHhc7E6qg9CuPeBgPZab66Tjzq6w6kHAtNEvnTHf4cyw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ "@oxlint/binding-linux-riscv64-gnu@1.76.0":
+ resolution:
+ {
+ integrity: sha512-S/HqMbn22mQrjtErUxEoS/a55u8kIeXvreIxiJu5G7Le3UecEd6SQZxrDIpuhtgaFnsY/nVra3ytP+pRljDilA==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ "@oxlint/binding-linux-riscv64-musl@1.76.0":
+ resolution:
+ {
+ integrity: sha512-ZIga3097VJZolGZk6SrIAUokIGfRkxRlhiHDUznZptGBfwrhD7pNfD1rzEzsCwvk/1DX0A1bLz+liuNh5QKIVQ==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ "@oxlint/binding-linux-s390x-gnu@1.76.0":
+ resolution:
+ {
+ integrity: sha512-ZGiiA7pFzMJSyMWYZTVlPgbTsx+Vl8ihLGMIujPwaslUF7kIPPWAbVmAlTc+9lWDV+DCiB8Ikixu+lSHeOIIWQ==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ "@oxlint/binding-linux-x64-gnu@1.76.0":
+ resolution:
+ {
+ integrity: sha512-JLiy5WuvEBFTT6ErIFV35SLzi0R7Iri6MKU6dZbTxfIx8pndbbPs3Mj780nMipBFcPkti+okAPOJ9POKkHFEgg==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ "@oxlint/binding-linux-x64-musl@1.76.0":
+ resolution:
+ {
+ integrity: sha512-z7lgKQtbo/I1NIe8G5NHLesxJDv0tRSUWTpXKb9Pm3E9nKFKfO4IOSDtFroKgXtOYb0jQbcdH+0wzTyMXVes+A==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ "@oxlint/binding-openharmony-arm64@1.76.0":
+ resolution:
+ {
+ integrity: sha512-JOjKymIpb9QcYfEhZsN6h4V9Ivd474W38cNIBRv6bg2TbIvogbMTH0Mg6YWW9TiRDqfcX+/Hyfsbo5vcSE5guQ==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [openharmony]
+
+ "@oxlint/binding-win32-arm64-msvc@1.76.0":
+ resolution:
+ {
+ integrity: sha512-pqDWZiwcmByWUEm1NFUBNiT6aentCcaoMWJv0HbXEmuYermJ4sg8ppVrshubYP2MZ6SHccJJcpr6x469PuDFIw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [arm64]
+ os: [win32]
+
+ "@oxlint/binding-win32-ia32-msvc@1.76.0":
+ resolution:
+ {
+ integrity: sha512-Ba0O659kgMv6pwO3z9PdO+K3aMxQRaw9HnG+e6AtOfgwcKFvYilciQYBoUBmxfQvOCKZe1SwjMkuB542NkuDMQ==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [ia32]
+ os: [win32]
+
+ "@oxlint/binding-win32-x64-msvc@1.76.0":
+ resolution:
+ {
+ integrity: sha512-5qcirPHO8nKfkoowEVWtpAoVTcYDy6g0UT0NGic450Qv8J2NrOqg4uQ8QppRP4MDTC7Xx47lbZnmadTH03CGGA==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ cpu: [x64]
+ os: [win32]
+
+ "@radix-ui/primitive@1.1.7":
+ resolution:
+ {
+ integrity: sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==,
+ }
+
+ "@radix-ui/react-compose-refs@1.1.5":
+ resolution:
+ {
+ integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-context@1.2.2":
+ resolution:
+ {
+ integrity: sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-dialog@1.1.23":
+ resolution:
+ {
+ integrity: sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-dismissable-layer@1.1.19":
+ resolution:
+ {
+ integrity: sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-focus-guards@1.1.6":
+ resolution:
+ {
+ integrity: sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-focus-scope@1.1.16":
+ resolution:
+ {
+ integrity: sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-id@1.1.4":
+ resolution:
+ {
+ integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-portal@1.1.17":
+ resolution:
+ {
+ integrity: sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-presence@1.1.10":
+ resolution:
+ {
+ integrity: sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-primitive@2.1.10":
+ resolution:
+ {
+ integrity: sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ "@types/react-dom": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ "@types/react-dom":
+ optional: true
+
+ "@radix-ui/react-slot@1.3.3":
+ resolution:
+ {
+ integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-use-callback-ref@1.1.4":
+ resolution:
+ {
+ integrity: sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-use-controllable-state@1.2.6":
+ resolution:
+ {
+ integrity: sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-use-effect-event@0.0.5":
+ resolution:
+ {
+ integrity: sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@radix-ui/react-use-layout-effect@1.1.4":
+ resolution:
+ {
+ integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==,
+ }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ "@reduxjs/toolkit@2.12.0":
+ resolution:
+ {
+ integrity: sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==,
+ }
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18 || ^19
+ react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-redux:
+ optional: true
+
+ "@rolldown/pluginutils@1.0.0-rc.3":
+ resolution:
+ {
+ integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==,
+ }
+
+ "@rollup/rollup-android-arm-eabi@4.62.3":
+ resolution:
+ {
+ integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==,
+ }
+ cpu: [arm]
+ os: [android]
+
+ "@rollup/rollup-android-arm64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==,
+ }
+ cpu: [arm64]
+ os: [android]
+
+ "@rollup/rollup-darwin-arm64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==,
+ }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@rollup/rollup-darwin-x64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==,
+ }
+ cpu: [x64]
+ os: [darwin]
+
+ "@rollup/rollup-freebsd-arm64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==,
+ }
+ cpu: [arm64]
+ os: [freebsd]
+
+ "@rollup/rollup-freebsd-x64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==,
+ }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@rollup/rollup-linux-arm-gnueabihf@4.62.3":
+ resolution:
+ {
+ integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==,
+ }
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-arm-musleabihf@4.62.3":
+ resolution:
+ {
+ integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==,
+ }
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-linux-arm64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==,
+ }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-arm64-musl@4.62.3":
+ resolution:
+ {
+ integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==,
+ }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-linux-loong64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==,
+ }
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-loong64-musl@4.62.3":
+ resolution:
+ {
+ integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==,
+ }
+ cpu: [loong64]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-linux-ppc64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==,
+ }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-ppc64-musl@4.62.3":
+ resolution:
+ {
+ integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==,
+ }
+ cpu: [ppc64]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-linux-riscv64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==,
+ }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-riscv64-musl@4.62.3":
+ resolution:
+ {
+ integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==,
+ }
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-linux-s390x-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==,
+ }
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-x64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==,
+ }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ "@rollup/rollup-linux-x64-musl@4.62.3":
+ resolution:
+ {
+ integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==,
+ }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ "@rollup/rollup-openbsd-x64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==,
+ }
+ cpu: [x64]
+ os: [openbsd]
+
+ "@rollup/rollup-openharmony-arm64@4.62.3":
+ resolution:
+ {
+ integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==,
+ }
+ cpu: [arm64]
+ os: [openharmony]
+
+ "@rollup/rollup-win32-arm64-msvc@4.62.3":
+ resolution:
+ {
+ integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==,
+ }
+ cpu: [arm64]
+ os: [win32]
+
+ "@rollup/rollup-win32-ia32-msvc@4.62.3":
+ resolution:
+ {
+ integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==,
+ }
+ cpu: [ia32]
+ os: [win32]
+
+ "@rollup/rollup-win32-x64-gnu@4.62.3":
+ resolution:
+ {
+ integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==,
+ }
+ cpu: [x64]
+ os: [win32]
+
+ "@rollup/rollup-win32-x64-msvc@4.62.3":
+ resolution:
+ {
+ integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==,
+ }
+ cpu: [x64]
+ os: [win32]
+
+ "@sec-ant/readable-stream@0.4.1":
+ resolution:
+ {
+ integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==,
+ }
+
+ "@sindresorhus/merge-streams@4.0.0":
+ resolution:
+ {
+ integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==,
+ }
+ engines: { node: ">=18" }
+
+ "@standard-schema/spec@1.1.0":
+ resolution:
+ {
+ integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==,
+ }
+
+ "@standard-schema/utils@0.3.0":
+ resolution:
+ {
+ integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==,
+ }
+
+ "@tailwindcss/node@4.3.3":
+ resolution:
+ {
+ integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==,
+ }
+
+ "@tailwindcss/oxide-android-arm64@4.3.3":
+ resolution:
+ {
+ integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [android]
+
+ "@tailwindcss/oxide-darwin-arm64@4.3.3":
+ resolution:
+ {
+ integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [darwin]
+
+ "@tailwindcss/oxide-darwin-x64@4.3.3":
+ resolution:
+ {
+ integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [darwin]
+
+ "@tailwindcss/oxide-freebsd-x64@4.3.3":
+ resolution:
+ {
+ integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [freebsd]
+
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3":
+ resolution:
+ {
+ integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm]
+ os: [linux]
+
+ "@tailwindcss/oxide-linux-arm64-gnu@4.3.3":
+ resolution:
+ {
+ integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ "@tailwindcss/oxide-linux-arm64-musl@4.3.3":
+ resolution:
+ {
+ integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ "@tailwindcss/oxide-linux-x64-gnu@4.3.3":
+ resolution:
+ {
+ integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ "@tailwindcss/oxide-linux-x64-musl@4.3.3":
+ resolution:
+ {
+ integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ "@tailwindcss/oxide-wasm32-wasi@4.3.3":
+ resolution:
+ {
+ integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==,
+ }
+ engines: { node: ">=14.0.0" }
+ cpu: [wasm32]
+ bundledDependencies:
+ - "@napi-rs/wasm-runtime"
+ - "@emnapi/core"
+ - "@emnapi/runtime"
+ - "@tybys/wasm-util"
+ - "@emnapi/wasi-threads"
+ - tslib
+
+ "@tailwindcss/oxide-win32-arm64-msvc@4.3.3":
+ resolution:
+ {
+ integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [arm64]
+ os: [win32]
+
+ "@tailwindcss/oxide-win32-x64-msvc@4.3.3":
+ resolution:
+ {
+ integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==,
+ }
+ engines: { node: ">= 20" }
+ cpu: [x64]
+ os: [win32]
+
+ "@tailwindcss/oxide@4.3.3":
+ resolution:
+ {
+ integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==,
+ }
+ engines: { node: ">= 20" }
+
+ "@tailwindcss/vite@4.3.3":
+ resolution:
+ {
+ integrity: sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==,
+ }
+ peerDependencies:
+ vite: ^5.2.0 || ^6 || ^7 || ^8
+
+ "@tanstack/history@1.162.0":
+ resolution:
+ {
+ integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==,
+ }
+ engines: { node: ">=20.19" }
+
+ "@tanstack/react-router@1.170.18":
+ resolution:
+ {
+ integrity: sha512-wpbGYZEp/fmz1q4bn7BD8VZ+/VZ7GBqSJv5V969pU+chP8y7dquWDmKTFMohvUegb9lg12m1uPVvD6kB2wORvQ==,
+ }
+ engines: { node: ">=20.19" }
+ peerDependencies:
+ react: ">=18.0.0 || >=19.0.0"
+ react-dom: ">=18.0.0 || >=19.0.0"
+
+ "@tanstack/react-store@0.9.3":
+ resolution:
+ {
+ integrity: sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg==,
+ }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ "@tanstack/router-core@1.171.15":
+ resolution:
+ {
+ integrity: sha512-IILCDcLaItMZQ2jEmCABHY1Nhjjn5XUvwpQp3e4Nmu+vfg0BgYFuu/QASz2SwE2ZNbVMrvt8X/wxa+Gg5aErxA==,
+ }
+ engines: { node: ">=20.19" }
+
+ "@tanstack/router-generator@1.167.21":
+ resolution:
+ {
+ integrity: sha512-m3oXZyienj8owialdyoZ0txHQrnEx/Ra+D9kWtar5fC2cWZr5Pvxl86VY2mX5RRLC5QLKLeRGT1x4HV95wHVDQ==,
+ }
+ engines: { node: ">=20.19" }
+
+ "@tanstack/router-plugin@1.168.23":
+ resolution:
+ {
+ integrity: sha512-0+PIcvnaAimFwjoEIeV3h7LKjzC8zNnp7pH2UamdKwQ9QlY99WU9V0Xl0zbM0i9hrUa/mKgWPDAzELmPUu5fMA==,
+ }
+ engines: { node: ">=20.19" }
+ peerDependencies:
+ "@rsbuild/core": ">=1.0.2 || ^2.0.0"
+ "@tanstack/react-router": ^1.170.18
+ vite: ">=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0"
+ vite-plugin-solid: ^2.11.10 || ^3.0.0-0
+ webpack: ">=5.92.0"
+ peerDependenciesMeta:
+ "@rsbuild/core":
+ optional: true
+ "@tanstack/react-router":
+ optional: true
+ vite:
+ optional: true
+ vite-plugin-solid:
+ optional: true
+ webpack:
+ optional: true
+
+ "@tanstack/router-utils@1.162.2":
+ resolution:
+ {
+ integrity: sha512-hTWqJtqIFFdvuCl8WXNyrodp2L9zo2G37xKRrcVmVRWpAB2h+U1LuRAfS4tsFTiWOIoE/B+WDVFB8JpoEdw6jQ==,
+ }
+ engines: { node: ">=20.19" }
+
+ "@tanstack/store@0.9.3":
+ resolution:
+ {
+ integrity: sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw==,
+ }
+
+ "@tanstack/virtual-file-routes@1.162.0":
+ resolution:
+ {
+ integrity: sha512-uhOeFyxLcU41HzvrxsGpiWdcMbScY1EDgbZ5K7DVRMYInbLYWAC0EA/kx9wXAoSM8q82bUG2hRl8+EAjE6XAbA==,
+ }
+ engines: { node: ">=20.19" }
+
+ "@tauri-apps/api@2.11.1":
+ resolution:
+ {
+ integrity: sha512-M2FPuYND2m+wh5hfW9ZpSdxMPdEJovPBWwoHJmwUpysTYNHaOkVFN419m/K0LIgjb/7KU2vBgsUepJWugQCvAA==,
+ }
+
+ "@ts-morph/common@0.27.0":
+ resolution:
+ {
+ integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==,
+ }
+
+ "@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/d3-array@3.2.2":
+ resolution:
+ {
+ integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==,
+ }
+
+ "@types/d3-color@3.1.3":
+ resolution:
+ {
+ integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==,
+ }
+
+ "@types/d3-ease@3.0.2":
+ resolution:
+ {
+ integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==,
+ }
+
+ "@types/d3-interpolate@3.0.4":
+ resolution:
+ {
+ integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==,
+ }
+
+ "@types/d3-path@3.1.1":
+ resolution:
+ {
+ integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==,
+ }
+
+ "@types/d3-scale@4.0.9":
+ resolution:
+ {
+ integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==,
+ }
+
+ "@types/d3-shape@3.1.8":
+ resolution:
+ {
+ integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==,
+ }
+
+ "@types/d3-time@3.0.4":
+ resolution:
+ {
+ integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==,
+ }
+
+ "@types/d3-timer@3.0.2":
+ resolution:
+ {
+ integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==,
+ }
+
+ "@types/estree@1.0.9":
+ resolution:
+ {
+ integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==,
+ }
+
+ "@types/node@24.13.3":
+ resolution:
+ {
+ integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==,
+ }
+
+ "@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.17":
+ resolution:
+ {
+ integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==,
+ }
+
+ "@types/use-sync-external-store@0.0.6":
+ resolution:
+ {
+ integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==,
+ }
+
+ "@types/validate-npm-package-name@4.0.2":
+ resolution:
+ {
+ integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==,
+ }
+
+ "@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
+
+ accepts@2.0.0:
+ resolution:
+ {
+ integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==,
+ }
+ engines: { node: ">= 0.6" }
+
+ ajv-formats@2.1.1:
+ resolution:
+ {
+ integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==,
+ }
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-formats@3.0.1:
+ resolution:
+ {
+ integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==,
+ }
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv@8.20.0:
+ resolution:
+ {
+ integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==,
+ }
+
+ ansi-colors@4.1.3:
+ resolution:
+ {
+ integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==,
+ }
+ engines: { node: ">=6" }
+
+ ansi-regex@5.0.1:
+ resolution:
+ {
+ integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==,
+ }
+ engines: { node: ">=8" }
+
+ ansi-regex@6.2.2:
+ resolution:
+ {
+ integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==,
+ }
+ engines: { node: ">=12" }
+
+ ansis@4.3.1:
+ resolution:
+ {
+ integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==,
+ }
+ engines: { node: ">=14" }
+
+ argparse@2.0.1:
+ resolution:
+ {
+ integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
+ }
+
+ aria-hidden@1.2.6:
+ resolution:
+ {
+ integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==,
+ }
+ engines: { node: ">=10" }
+
+ ast-types@0.16.1:
+ resolution:
+ {
+ integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==,
+ }
+ engines: { node: ">=4" }
+
+ atomically@1.7.0:
+ resolution:
+ {
+ integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==,
+ }
+ engines: { node: ">=10.12.0" }
+
+ babel-dead-code-elimination@1.0.12:
+ resolution:
+ {
+ integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==,
+ }
+
+ balanced-match@4.0.4:
+ resolution:
+ {
+ integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==,
+ }
+ engines: { node: 18 || 20 || >=22 }
+
+ baseline-browser-mapping@2.11.5:
+ resolution:
+ {
+ integrity: sha512-xJo6a6YZnwZfnyGmQKWMbVOcii7XRibjOskRh+WJ9UHQoX16xrQrcIgAMQOzfvs8XiLMx6ih/fsLPF73iY2D1A==,
+ }
+ engines: { node: ">=6.0.0" }
+ hasBin: true
+
+ body-parser@2.3.0:
+ resolution:
+ {
+ integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==,
+ }
+ engines: { node: ">=18" }
+
+ brace-expansion@5.0.8:
+ resolution:
+ {
+ integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==,
+ }
+ engines: { node: 20 || >=22 }
+
+ braces@3.0.3:
+ resolution:
+ {
+ integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==,
+ }
+ engines: { node: ">=8" }
+
+ browserslist@4.28.7:
+ resolution:
+ {
+ integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==,
+ }
+ engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
+ hasBin: true
+
+ bundle-name@4.1.0:
+ resolution:
+ {
+ integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==,
+ }
+ engines: { node: ">=18" }
+
+ bytes@3.1.2:
+ resolution:
+ {
+ integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ call-bind-apply-helpers@1.0.2:
+ resolution:
+ {
+ integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ call-bound@1.0.4:
+ resolution:
+ {
+ integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==,
+ }
+ engines: { node: ">= 0.4" }
+
+ callsites@3.1.0:
+ resolution:
+ {
+ integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==,
+ }
+ engines: { node: ">=6" }
+
+ caniuse-lite@1.0.30001806:
+ resolution:
+ {
+ integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==,
+ }
+
+ chalk@5.6.2:
+ resolution:
+ {
+ integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==,
+ }
+ engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 }
+
+ chokidar@5.0.0:
+ resolution:
+ {
+ integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==,
+ }
+ engines: { node: ">= 20.19.0" }
+
+ class-variance-authority@0.7.1:
+ resolution:
+ {
+ integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==,
+ }
+
+ cli-cursor@5.0.0:
+ resolution:
+ {
+ integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==,
+ }
+ engines: { node: ">=18" }
+
+ cli-spinners@2.9.2:
+ resolution:
+ {
+ integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==,
+ }
+ engines: { node: ">=6" }
+
+ clsx@2.1.1:
+ resolution:
+ {
+ integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==,
+ }
+ engines: { node: ">=6" }
+
+ cmdk@1.1.1:
+ resolution:
+ {
+ integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==,
+ }
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ react-dom: ^18 || ^19 || ^19.0.0-rc
+
+ code-block-writer@13.0.3:
+ resolution:
+ {
+ integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==,
+ }
+
+ commander@11.1.0:
+ resolution:
+ {
+ integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==,
+ }
+ engines: { node: ">=16" }
+
+ commander@14.0.3:
+ resolution:
+ {
+ integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==,
+ }
+ engines: { node: ">=20" }
+
+ conf@10.2.0:
+ resolution:
+ {
+ integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==,
+ }
+ engines: { node: ">=12" }
+
+ content-disposition@1.1.0:
+ resolution:
+ {
+ integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==,
+ }
+ engines: { node: ">=18" }
+
+ content-type@1.0.5:
+ resolution:
+ {
+ integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==,
+ }
+ engines: { node: ">= 0.6" }
+
+ content-type@2.0.0:
+ resolution:
+ {
+ integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==,
+ }
+ engines: { node: ">=18" }
+
+ convert-source-map@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==,
+ }
+
+ cookie-es@3.1.1:
+ resolution:
+ {
+ integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==,
+ }
+
+ cookie-signature@1.2.2:
+ resolution:
+ {
+ integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==,
+ }
+ engines: { node: ">=6.6.0" }
+
+ cookie@0.7.2:
+ resolution:
+ {
+ integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==,
+ }
+ engines: { node: ">= 0.6" }
+
+ cors@2.8.6:
+ resolution:
+ {
+ integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==,
+ }
+ engines: { node: ">= 0.10" }
+
+ cosmiconfig@9.0.2:
+ resolution:
+ {
+ integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==,
+ }
+ engines: { node: ">=14" }
+ peerDependencies:
+ typescript: ">=4.9.5"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ cross-spawn@7.0.6:
+ resolution:
+ {
+ integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==,
+ }
+ engines: { node: ">= 8" }
+
+ cssesc@3.0.0:
+ resolution:
+ {
+ integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==,
+ }
+ engines: { node: ">=4" }
+ hasBin: true
+
+ csstype@3.2.3:
+ resolution:
+ {
+ integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==,
+ }
+
+ d3-array@3.2.4:
+ resolution:
+ {
+ integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==,
+ }
+ engines: { node: ">=12" }
+
+ d3-color@3.1.0:
+ resolution:
+ {
+ integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==,
+ }
+ engines: { node: ">=12" }
+
+ d3-ease@3.0.1:
+ resolution:
+ {
+ integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==,
+ }
+ engines: { node: ">=12" }
+
+ d3-format@3.1.2:
+ resolution:
+ {
+ integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==,
+ }
+ engines: { node: ">=12" }
+
+ d3-interpolate@3.0.1:
+ resolution:
+ {
+ integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==,
+ }
+ engines: { node: ">=12" }
+
+ d3-path@3.1.0:
+ resolution:
+ {
+ integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==,
+ }
+ engines: { node: ">=12" }
+
+ d3-scale@4.0.2:
+ resolution:
+ {
+ integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==,
+ }
+ engines: { node: ">=12" }
+
+ d3-shape@3.2.0:
+ resolution:
+ {
+ integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==,
+ }
+ engines: { node: ">=12" }
+
+ d3-time-format@4.1.0:
+ resolution:
+ {
+ integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==,
+ }
+ engines: { node: ">=12" }
+
+ d3-time@3.1.0:
+ resolution:
+ {
+ integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==,
+ }
+ engines: { node: ">=12" }
+
+ d3-timer@3.0.1:
+ resolution:
+ {
+ integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==,
+ }
+ engines: { node: ">=12" }
+
+ debounce-fn@4.0.0:
+ resolution:
+ {
+ integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==,
+ }
+ engines: { node: ">=10" }
+
+ debug@4.4.3:
+ resolution:
+ {
+ integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==,
+ }
+ engines: { node: ">=6.0" }
+ peerDependencies:
+ supports-color: "*"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decimal.js-light@2.5.1:
+ resolution:
+ {
+ integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==,
+ }
+
+ dedent@1.7.2:
+ resolution:
+ {
+ integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==,
+ }
+ peerDependencies:
+ babel-plugin-macros: ^3.1.0
+ peerDependenciesMeta:
+ babel-plugin-macros:
+ optional: true
+
+ deepmerge@4.3.1:
+ resolution:
+ {
+ integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ default-browser-id@5.0.1:
+ resolution:
+ {
+ integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==,
+ }
+ engines: { node: ">=18" }
+
+ default-browser@5.5.0:
+ resolution:
+ {
+ integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==,
+ }
+ engines: { node: ">=18" }
+
+ define-lazy-prop@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==,
+ }
+ engines: { node: ">=8" }
+
+ define-lazy-prop@3.0.0:
+ resolution:
+ {
+ integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==,
+ }
+ engines: { node: ">=12" }
+
+ depd@2.0.0:
+ resolution:
+ {
+ integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==,
+ }
+ engines: { node: ">= 0.8" }
+
+ detect-libc@2.1.2:
+ resolution:
+ {
+ integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==,
+ }
+ engines: { node: ">=8" }
+
+ detect-node-es@1.1.0:
+ resolution:
+ {
+ integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==,
+ }
+
+ diff@8.0.4:
+ resolution:
+ {
+ integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==,
+ }
+ engines: { node: ">=0.3.1" }
+
+ dot-prop@6.0.1:
+ resolution:
+ {
+ integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==,
+ }
+ engines: { node: ">=10" }
+
+ dotenv@17.4.2:
+ resolution:
+ {
+ integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==,
+ }
+ engines: { node: ">=12" }
+
+ dunder-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==,
+ }
+ engines: { node: ">= 0.4" }
+
+ ee-first@1.1.1:
+ resolution:
+ {
+ integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==,
+ }
+
+ electron-to-chromium@1.5.397:
+ resolution:
+ {
+ integrity: sha512-khGTy9U9x02KEtsKM8vx5A62BsRmcOsIgDpWr1ImE32Ax8GxHGPHZf+Eu9H8zOOyHJnB0jTbseyTHbq2XCT8yw==,
+ }
+
+ embla-carousel-react@8.6.0:
+ resolution:
+ {
+ integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==,
+ }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ embla-carousel-reactive-utils@8.6.0:
+ resolution:
+ {
+ integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==,
+ }
+ peerDependencies:
+ embla-carousel: 8.6.0
+
+ embla-carousel@8.6.0:
+ resolution:
+ {
+ integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==,
+ }
+
+ emoji-regex@10.6.0:
+ resolution:
+ {
+ integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==,
+ }
+
+ encodeurl@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ enhanced-resolve@5.24.3:
+ resolution:
+ {
+ integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==,
+ }
+ engines: { node: ">=10.13.0" }
+
+ enquirer@2.4.1:
+ resolution:
+ {
+ integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==,
+ }
+ engines: { node: ">=8.6" }
+
+ env-paths@2.2.1:
+ resolution:
+ {
+ integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==,
+ }
+ engines: { node: ">=6" }
+
+ error-ex@1.3.4:
+ resolution:
+ {
+ integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==,
+ }
+
+ es-define-property@1.0.1:
+ resolution:
+ {
+ integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ es-errors@1.3.0:
+ resolution:
+ {
+ integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==,
+ }
+ engines: { node: ">= 0.4" }
+
+ es-object-atoms@1.1.2:
+ resolution:
+ {
+ integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==,
+ }
+ engines: { node: ">= 0.4" }
+
+ es-toolkit@1.50.0:
+ resolution:
+ {
+ integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==,
+ }
+
+ esbuild@0.28.1:
+ resolution:
+ {
+ integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==,
+ }
+ 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==,
+ }
+
+ esprima@4.0.1:
+ resolution:
+ {
+ integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==,
+ }
+ engines: { node: ">=4" }
+ hasBin: true
+
+ etag@1.8.1:
+ resolution:
+ {
+ integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ eventemitter3@5.0.4:
+ resolution:
+ {
+ integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==,
+ }
+
+ eventsource-parser@3.1.0:
+ resolution:
+ {
+ integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==,
+ }
+ engines: { node: ">=18.0.0" }
+
+ eventsource@3.0.7:
+ resolution:
+ {
+ integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==,
+ }
+ engines: { node: ">=18.0.0" }
+
+ execa@5.1.1:
+ resolution:
+ {
+ integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==,
+ }
+ engines: { node: ">=10" }
+
+ execa@9.6.1:
+ resolution:
+ {
+ integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==,
+ }
+ engines: { node: ^18.19.0 || >=20.5.0 }
+
+ express-rate-limit@8.6.1:
+ resolution:
+ {
+ integrity: sha512-0D493aP61w0TJ2A0wy27riRsO7FMQ7FK+KUHOKCSfPvYo0R55aiC6emCVgFUeShH0fq0ICPVzNcgoS+BsbXQCA==,
+ }
+ engines: { node: ">= 16" }
+ peerDependencies:
+ express: ">= 4.11"
+
+ express@5.2.1:
+ resolution:
+ {
+ integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==,
+ }
+ engines: { node: ">= 18" }
+
+ fast-deep-equal@3.1.3:
+ resolution:
+ {
+ integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==,
+ }
+
+ fast-glob@3.3.3:
+ resolution:
+ {
+ integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==,
+ }
+ engines: { node: ">=8.6.0" }
+
+ fast-uri@3.1.4:
+ resolution:
+ {
+ integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==,
+ }
+
+ fastq@1.20.1:
+ resolution:
+ {
+ integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==,
+ }
+
+ fdir@6.5.0:
+ resolution:
+ {
+ integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==,
+ }
+ engines: { node: ">=12.0.0" }
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ figures@6.1.0:
+ resolution:
+ {
+ integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==,
+ }
+ engines: { node: ">=18" }
+
+ fill-range@7.1.1:
+ resolution:
+ {
+ integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==,
+ }
+ engines: { node: ">=8" }
+
+ finalhandler@2.1.1:
+ resolution:
+ {
+ integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==,
+ }
+ engines: { node: ">= 18.0.0" }
+
+ find-up@3.0.0:
+ resolution:
+ {
+ integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==,
+ }
+ engines: { node: ">=6" }
+
+ forwarded@0.2.0:
+ resolution:
+ {
+ integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==,
+ }
+ engines: { node: ">= 0.6" }
+
+ fresh@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==,
+ }
+ engines: { node: ">= 0.8" }
+
+ fs-extra@11.4.0:
+ resolution:
+ {
+ integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==,
+ }
+ engines: { node: ">=14.14" }
+
+ fsevents@2.3.3:
+ resolution:
+ {
+ integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
+ }
+ engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution:
+ {
+ integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==,
+ }
+
+ fuzzysort@3.1.0:
+ resolution:
+ {
+ integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==,
+ }
+
+ gensync@1.0.0-beta.2:
+ resolution:
+ {
+ integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==,
+ }
+ engines: { node: ">=6.9.0" }
+
+ get-east-asian-width@1.6.0:
+ resolution:
+ {
+ integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==,
+ }
+ engines: { node: ">=18" }
+
+ get-intrinsic@1.3.0:
+ resolution:
+ {
+ integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ get-nonce@1.0.1:
+ resolution:
+ {
+ integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==,
+ }
+ engines: { node: ">=6" }
+
+ get-own-enumerable-keys@1.0.0:
+ resolution:
+ {
+ integrity: sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==,
+ }
+ engines: { node: ">=14.16" }
+
+ get-proto@1.0.1:
+ resolution:
+ {
+ integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ get-stream@6.0.1:
+ resolution:
+ {
+ integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==,
+ }
+ engines: { node: ">=10" }
+
+ get-stream@9.0.1:
+ resolution:
+ {
+ integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==,
+ }
+ engines: { node: ">=18" }
+
+ glob-parent@5.1.2:
+ resolution:
+ {
+ integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==,
+ }
+ engines: { node: ">= 6" }
+
+ gopd@1.2.0:
+ resolution:
+ {
+ integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==,
+ }
+ engines: { node: ">= 0.4" }
+
+ graceful-fs@4.2.11:
+ resolution:
+ {
+ integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==,
+ }
+
+ has-symbols@1.1.0:
+ resolution:
+ {
+ integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ hasown@2.0.4:
+ resolution:
+ {
+ integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==,
+ }
+ engines: { node: ">= 0.4" }
+
+ hono@4.12.32:
+ resolution:
+ {
+ integrity: sha512-XcuyW9qE2kJn07PkecMOBd5Vq/hMy7mmGw+idz1yblbg9N17ijJODrvPkn7/dwL3Kulj8LcRJ69DLOWf91dRUg==,
+ }
+ engines: { node: ">=16.9.0" }
+
+ http-errors@2.0.1:
+ resolution:
+ {
+ integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ human-signals@2.1.0:
+ resolution:
+ {
+ integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==,
+ }
+ engines: { node: ">=10.17.0" }
+
+ human-signals@8.0.1:
+ resolution:
+ {
+ integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==,
+ }
+ engines: { node: ">=18.18.0" }
+
+ iconv-lite@0.7.3:
+ resolution:
+ {
+ integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ ignore@5.3.2:
+ resolution:
+ {
+ integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==,
+ }
+ engines: { node: ">= 4" }
+
+ immer@10.2.0:
+ resolution:
+ {
+ integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==,
+ }
+
+ immer@11.1.15:
+ resolution:
+ {
+ integrity: sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==,
+ }
+
+ import-fresh@3.3.1:
+ resolution:
+ {
+ integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==,
+ }
+ engines: { node: ">=6" }
+
+ inherits@2.0.4:
+ resolution:
+ {
+ integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==,
+ }
+
+ input-otp@1.4.2:
+ resolution:
+ {
+ integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==,
+ }
+ peerDependencies:
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
+
+ internmap@2.0.3:
+ resolution:
+ {
+ integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==,
+ }
+ engines: { node: ">=12" }
+
+ ip-address@10.3.1:
+ resolution:
+ {
+ integrity: sha512-1e9d3kb97NHJTIJDZW9rKqW2h6+dFa50Dy0fpPSMQp2ADje5gvKsXmdiK6dwY5t76TaTt5+P5N1Y/LoToIxP6g==,
+ }
+ engines: { node: ">= 12" }
+
+ ipaddr.js@1.9.1:
+ resolution:
+ {
+ integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==,
+ }
+ engines: { node: ">= 0.10" }
+
+ is-arrayish@0.2.1:
+ resolution:
+ {
+ integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==,
+ }
+
+ is-docker@2.2.1:
+ resolution:
+ {
+ integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==,
+ }
+ engines: { node: ">=8" }
+ hasBin: true
+
+ is-docker@3.0.0:
+ resolution:
+ {
+ integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==,
+ }
+ engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
+ hasBin: true
+
+ is-extglob@2.1.1:
+ resolution:
+ {
+ integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ is-glob@4.0.3:
+ resolution:
+ {
+ integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ is-in-ssh@1.0.0:
+ resolution:
+ {
+ integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==,
+ }
+ engines: { node: ">=20" }
+
+ is-inside-container@1.0.0:
+ resolution:
+ {
+ integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==,
+ }
+ engines: { node: ">=14.16" }
+ hasBin: true
+
+ is-interactive@2.0.0:
+ resolution:
+ {
+ integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==,
+ }
+ engines: { node: ">=12" }
+
+ is-number@7.0.0:
+ resolution:
+ {
+ integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==,
+ }
+ engines: { node: ">=0.12.0" }
+
+ is-obj@2.0.0:
+ resolution:
+ {
+ integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==,
+ }
+ engines: { node: ">=8" }
+
+ is-obj@3.0.0:
+ resolution:
+ {
+ integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==,
+ }
+ engines: { node: ">=12" }
+
+ is-plain-obj@4.1.0:
+ resolution:
+ {
+ integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==,
+ }
+ engines: { node: ">=12" }
+
+ is-promise@4.0.0:
+ resolution:
+ {
+ integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==,
+ }
+
+ is-regexp@3.1.0:
+ resolution:
+ {
+ integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==,
+ }
+ engines: { node: ">=12" }
+
+ is-stream@2.0.1:
+ resolution:
+ {
+ integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==,
+ }
+ engines: { node: ">=8" }
+
+ is-stream@4.0.1:
+ resolution:
+ {
+ integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==,
+ }
+ engines: { node: ">=18" }
+
+ is-unicode-supported@1.3.0:
+ resolution:
+ {
+ integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==,
+ }
+ engines: { node: ">=12" }
+
+ is-unicode-supported@2.1.0:
+ resolution:
+ {
+ integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==,
+ }
+ engines: { node: ">=18" }
+
+ is-wsl@2.2.0:
+ resolution:
+ {
+ integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==,
+ }
+ engines: { node: ">=8" }
+
+ is-wsl@3.1.1:
+ resolution:
+ {
+ integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==,
+ }
+ engines: { node: ">=16" }
+
+ isbot@5.2.1:
+ resolution:
+ {
+ integrity: sha512-dJ+LpKyClQZ7NG+j3OensC/mAZkGpukE9YUrgPYvAZj2doVL0edfDgywTUh5CXa0o+nW9a1V9e5+CJTX8+SxRw==,
+ }
+ engines: { node: ">=18" }
+
+ isexe@2.0.0:
+ resolution:
+ {
+ integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==,
+ }
+
+ isexe@3.1.5:
+ resolution:
+ {
+ integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==,
+ }
+ engines: { node: ">=18" }
+
+ jiti@2.7.0:
+ resolution:
+ {
+ integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==,
+ }
+ hasBin: true
+
+ jose@6.2.4:
+ resolution:
+ {
+ integrity: sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==,
+ }
+
+ js-tokens@4.0.0:
+ resolution:
+ {
+ integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==,
+ }
+
+ js-yaml@4.3.0:
+ resolution:
+ {
+ integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==,
+ }
+ hasBin: true
+
+ jsesc@3.1.0:
+ resolution:
+ {
+ integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==,
+ }
+ engines: { node: ">=6" }
+ hasBin: true
+
+ json-parse-even-better-errors@2.3.1:
+ resolution:
+ {
+ integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==,
+ }
+
+ json-schema-traverse@1.0.0:
+ resolution:
+ {
+ integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==,
+ }
+
+ json-schema-typed@7.0.3:
+ resolution:
+ {
+ integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==,
+ }
+
+ json-schema-typed@8.0.2:
+ resolution:
+ {
+ integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==,
+ }
+
+ json5@2.2.3:
+ resolution:
+ {
+ integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==,
+ }
+ engines: { node: ">=6" }
+ hasBin: true
+
+ jsonfile@6.2.1:
+ resolution:
+ {
+ integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==,
+ }
+
+ kleur@3.0.3:
+ resolution:
+ {
+ integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==,
+ }
+ engines: { node: ">=6" }
+
+ kleur@4.1.5:
+ resolution:
+ {
+ integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==,
+ }
+ engines: { node: ">=6" }
+
+ lightningcss-android-arm64@1.32.0:
+ resolution:
+ {
+ integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.32.0:
+ resolution:
+ {
+ integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.32.0:
+ resolution:
+ {
+ integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.32.0:
+ resolution:
+ {
+ integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution:
+ {
+ integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution:
+ {
+ integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution:
+ {
+ integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution:
+ {
+ integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution:
+ {
+ integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution:
+ {
+ integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution:
+ {
+ integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==,
+ }
+ engines: { node: ">= 12.0.0" }
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.32.0:
+ resolution:
+ {
+ integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==,
+ }
+ engines: { node: ">= 12.0.0" }
+
+ lines-and-columns@1.2.4:
+ resolution:
+ {
+ integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==,
+ }
+
+ locate-path@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==,
+ }
+ engines: { node: ">=6" }
+
+ log-symbols@6.0.0:
+ resolution:
+ {
+ integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==,
+ }
+ engines: { node: ">=18" }
+
+ lru-cache@5.1.1:
+ resolution:
+ {
+ integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==,
+ }
+
+ lucide-react@1.27.0:
+ resolution:
+ {
+ integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==,
+ }
+ peerDependencies:
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ magic-string@0.30.21:
+ resolution:
+ {
+ integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==,
+ }
+
+ math-intrinsics@1.1.0:
+ resolution:
+ {
+ integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==,
+ }
+ engines: { node: ">= 0.4" }
+
+ media-typer@1.1.1:
+ resolution:
+ {
+ integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ merge-descriptors@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==,
+ }
+ engines: { node: ">=18" }
+
+ merge-stream@2.0.0:
+ resolution:
+ {
+ integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==,
+ }
+
+ merge2@1.4.1:
+ resolution:
+ {
+ integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==,
+ }
+ engines: { node: ">= 8" }
+
+ micromatch@4.0.8:
+ resolution:
+ {
+ integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==,
+ }
+ engines: { node: ">=8.6" }
+
+ mime-db@1.54.0:
+ resolution:
+ {
+ integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==,
+ }
+ engines: { node: ">= 0.6" }
+
+ mime-types@3.0.2:
+ resolution:
+ {
+ integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==,
+ }
+ engines: { node: ">=18" }
+
+ mimic-fn@2.1.0:
+ resolution:
+ {
+ integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==,
+ }
+ engines: { node: ">=6" }
+
+ mimic-fn@3.1.0:
+ resolution:
+ {
+ integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==,
+ }
+ engines: { node: ">=8" }
+
+ mimic-function@5.0.1:
+ resolution:
+ {
+ integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==,
+ }
+ engines: { node: ">=18" }
+
+ minimatch@10.2.6:
+ resolution:
+ {
+ integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==,
+ }
+ engines: { node: 18 || 20 || >=22 }
+
+ minimist@1.2.8:
+ resolution:
+ {
+ integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==,
+ }
+
+ ms@2.1.3:
+ resolution:
+ {
+ integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==,
+ }
+
+ mtp@https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz:
+ resolution:
+ {
+ integrity: sha512-WcXHd53aDM0zQfO8eaUnK5tpnRP73GlWjwAMMcstcVAIWrvyFGuINkCRNEkb2RsNk9h57UMhxElCZeBkFrVmCg==,
+ tarball: https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz,
+ }
+ version: 0.2.0
+
+ nanoid@3.3.16:
+ resolution:
+ {
+ integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==,
+ }
+ engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
+ hasBin: true
+
+ negotiator@1.0.0:
+ resolution:
+ {
+ integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==,
+ }
+ engines: { node: ">= 0.6" }
+
+ next-themes@0.4.6:
+ resolution:
+ {
+ integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==,
+ }
+ peerDependencies:
+ react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+
+ node-releases@2.0.51:
+ resolution:
+ {
+ integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==,
+ }
+ engines: { node: ">=18" }
+
+ npm-run-path@4.0.1:
+ resolution:
+ {
+ integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==,
+ }
+ engines: { node: ">=8" }
+
+ npm-run-path@6.0.0:
+ resolution:
+ {
+ integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==,
+ }
+ engines: { node: ">=18" }
+
+ object-assign@4.1.1:
+ resolution:
+ {
+ integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ object-inspect@1.13.4:
+ resolution:
+ {
+ integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==,
+ }
+ engines: { node: ">= 0.4" }
+
+ object-treeify@1.1.33:
+ resolution:
+ {
+ integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==,
+ }
+ engines: { node: ">= 10" }
+
+ on-finished@2.4.1:
+ resolution:
+ {
+ integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ once@1.4.0:
+ resolution:
+ {
+ integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==,
+ }
+
+ onetime@5.1.2:
+ resolution:
+ {
+ integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==,
+ }
+ engines: { node: ">=6" }
+
+ onetime@7.0.0:
+ resolution:
+ {
+ integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==,
+ }
+ engines: { node: ">=18" }
+
+ open@11.0.0:
+ resolution:
+ {
+ integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==,
+ }
+ engines: { node: ">=20" }
+
+ open@8.4.2:
+ resolution:
+ {
+ integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==,
+ }
+ engines: { node: ">=12" }
+
+ ora@8.2.0:
+ resolution:
+ {
+ integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==,
+ }
+ engines: { node: ">=18" }
+
+ oxlint@1.76.0:
+ resolution:
+ {
+ integrity: sha512-6QoFioEU4fNdiUx/2Eo6TRd6NG7H7njnRCz8rhB66cZmMHDTqcm1Rjvl8Wry+ZTQMBAmyb4Mlf62Mk5X+eHSOw==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ hasBin: true
+ peerDependencies:
+ oxlint-tsgolint: ">=7.0.2001"
+ vite-plus: "*"
+ peerDependenciesMeta:
+ oxlint-tsgolint:
+ optional: true
+ vite-plus:
+ optional: true
+
+ p-limit@2.3.0:
+ resolution:
+ {
+ integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==,
+ }
+ engines: { node: ">=6" }
+
+ p-locate@3.0.0:
+ resolution:
+ {
+ integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==,
+ }
+ engines: { node: ">=6" }
+
+ p-try@2.2.0:
+ resolution:
+ {
+ integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==,
+ }
+ engines: { node: ">=6" }
+
+ parent-module@1.0.1:
+ resolution:
+ {
+ integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==,
+ }
+ engines: { node: ">=6" }
+
+ parse-json@5.2.0:
+ resolution:
+ {
+ integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==,
+ }
+ engines: { node: ">=8" }
+
+ parse-ms@4.0.0:
+ resolution:
+ {
+ integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==,
+ }
+ engines: { node: ">=18" }
+
+ parseurl@1.3.3:
+ resolution:
+ {
+ integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ path-browserify@1.0.1:
+ resolution:
+ {
+ integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==,
+ }
+
+ path-exists@3.0.0:
+ resolution:
+ {
+ integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==,
+ }
+ engines: { node: ">=4" }
+
+ path-key@3.1.1:
+ resolution:
+ {
+ integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==,
+ }
+ engines: { node: ">=8" }
+
+ path-key@4.0.0:
+ resolution:
+ {
+ integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==,
+ }
+ engines: { node: ">=12" }
+
+ path-to-regexp@8.4.2:
+ resolution:
+ {
+ integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==,
+ }
+
+ pathe@2.0.3:
+ resolution:
+ {
+ integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==,
+ }
+
+ picocolors@1.1.1:
+ resolution:
+ {
+ integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==,
+ }
+
+ picomatch@2.3.2:
+ resolution:
+ {
+ integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==,
+ }
+ engines: { node: ">=8.6" }
+
+ picomatch@4.0.5:
+ resolution:
+ {
+ integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==,
+ }
+ engines: { node: ">=12" }
+
+ pkce-challenge@5.0.1:
+ resolution:
+ {
+ integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==,
+ }
+ engines: { node: ">=16.20.0" }
+
+ pkg-up@3.1.0:
+ resolution:
+ {
+ integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==,
+ }
+ engines: { node: ">=8" }
+
+ postcss-selector-parser@7.1.4:
+ resolution:
+ {
+ integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==,
+ }
+ engines: { node: ">=4" }
+
+ postcss@8.5.24:
+ resolution:
+ {
+ integrity: sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==,
+ }
+ engines: { node: ^10 || ^12 || >=14 }
+
+ powershell-utils@0.1.0:
+ resolution:
+ {
+ integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==,
+ }
+ engines: { node: ">=20" }
+
+ prettier@3.9.6:
+ resolution:
+ {
+ integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==,
+ }
+ engines: { node: ">=14" }
+ hasBin: true
+
+ pretty-ms@9.3.0:
+ resolution:
+ {
+ integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==,
+ }
+ engines: { node: ">=18" }
+
+ prompts@2.4.2:
+ resolution:
+ {
+ integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==,
+ }
+ engines: { node: ">= 6" }
+
+ proxy-addr@2.0.7:
+ resolution:
+ {
+ integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==,
+ }
+ engines: { node: ">= 0.10" }
+
+ qs@6.15.3:
+ resolution:
+ {
+ integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==,
+ }
+ engines: { node: ">=0.6" }
+
+ queue-microtask@1.2.3:
+ resolution:
+ {
+ integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==,
+ }
+
+ range-parser@1.3.0:
+ resolution:
+ {
+ integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==,
+ }
+ engines: { node: ">= 0.6" }
+
+ raw-body@3.0.2:
+ resolution:
+ {
+ integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==,
+ }
+ engines: { node: ">= 0.10" }
+
+ react-dom@19.2.8:
+ resolution:
+ {
+ integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==,
+ }
+ peerDependencies:
+ react: ^19.2.8
+
+ react-is@19.2.8:
+ resolution:
+ {
+ integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==,
+ }
+
+ react-redux@9.3.0:
+ resolution:
+ {
+ integrity: sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==,
+ }
+ peerDependencies:
+ "@types/react": ^18.2.25 || ^19
+ react: ^18.0 || ^19
+ redux: ^5.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ redux:
+ optional: true
+
+ react-refresh@0.18.0:
+ resolution:
+ {
+ integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ react-remove-scroll-bar@2.3.8:
+ resolution:
+ {
+ integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ react-remove-scroll@2.7.2:
+ resolution:
+ {
+ integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ react-resizable-panels@4.12.2:
+ resolution:
+ {
+ integrity: sha512-NwY5LCo4WrxVvDh0xoMML6EMLPONP/8ckKcIdpnojxexoatZdjLiRqLJQjQK5CPkd4SYiB/2M5BVrjZBQtOO7Q==,
+ }
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+
+ react-style-singleton@2.2.3:
+ resolution:
+ {
+ integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ react@19.2.8:
+ resolution:
+ {
+ integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ readdirp@5.0.0:
+ resolution:
+ {
+ integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==,
+ }
+ engines: { node: ">= 20.19.0" }
+
+ recast@0.23.12:
+ resolution:
+ {
+ integrity: sha512-dEWRjcINDu/F4l2dYx57ugBtD7HV9KXESyxhzw/MqWLeglJrsjJKqACPyUPg+6AF8mIgm+Zi0dZ3ACoIg+QtpA==,
+ }
+ engines: { node: ">= 4" }
+
+ recharts@3.8.1:
+ resolution:
+ {
+ integrity: sha512-mwzmO1s9sFL0TduUpwndxCUNoXsBw3u3E/0+A+cLcrSfQitSG62L32N69GhqUrrT5qKcAE3pCGVINC6pqkBBQg==,
+ }
+ engines: { node: ">=18" }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ redux-thunk@3.1.0:
+ resolution:
+ {
+ integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==,
+ }
+ peerDependencies:
+ redux: ^5.0.0
+
+ redux@5.0.1:
+ resolution:
+ {
+ integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==,
+ }
+
+ require-from-string@2.0.2:
+ resolution:
+ {
+ integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ reselect@5.1.1:
+ resolution:
+ {
+ integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==,
+ }
+
+ reselect@5.2.0:
+ resolution:
+ {
+ integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==,
+ }
+
+ resolve-from@4.0.0:
+ resolution:
+ {
+ integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==,
+ }
+ engines: { node: ">=4" }
+
+ restore-cursor@5.1.0:
+ resolution:
+ {
+ integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==,
+ }
+ engines: { node: ">=18" }
+
+ reusify@1.1.0:
+ resolution:
+ {
+ integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==,
+ }
+ engines: { iojs: ">=1.0.0", node: ">=0.10.0" }
+
+ rollup@4.62.3:
+ resolution:
+ {
+ integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==,
+ }
+ engines: { node: ">=18.0.0", npm: ">=8.0.0" }
+ hasBin: true
+
+ router@2.2.0:
+ resolution:
+ {
+ integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==,
+ }
+ engines: { node: ">= 18" }
+
+ run-applescript@7.1.0:
+ resolution:
+ {
+ integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==,
+ }
+ engines: { node: ">=18" }
+
+ run-parallel@1.2.0:
+ resolution:
+ {
+ integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==,
+ }
+
+ safer-buffer@2.1.2:
+ resolution:
+ {
+ integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==,
+ }
+
+ 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.8.5:
+ resolution:
+ {
+ integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==,
+ }
+ engines: { node: ">=10" }
+ hasBin: true
+
+ send@1.2.1:
+ resolution:
+ {
+ integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==,
+ }
+ engines: { node: ">= 18" }
+
+ seroval-plugins@1.5.6:
+ resolution:
+ {
+ integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ seroval: ^1.0
+
+ seroval@1.5.6:
+ resolution:
+ {
+ integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==,
+ }
+ engines: { node: ">=10" }
+
+ serve-static@2.2.1:
+ resolution:
+ {
+ integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==,
+ }
+ engines: { node: ">= 18" }
+
+ setprototypeof@1.2.0:
+ resolution:
+ {
+ integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==,
+ }
+
+ shadcn@4.16.0:
+ resolution:
+ {
+ integrity: sha512-kPr4RrQmbbZeAjwBYeBSpFvAHV8rkTlNPUluIxkRriq5TpevfFelVO5xvcF6oguHPVn0R6wPuVer4HudfcLy/A==,
+ }
+ engines: { node: ">=20.18.1" }
+ hasBin: true
+
+ shebang-command@2.0.0:
+ resolution:
+ {
+ integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==,
+ }
+ engines: { node: ">=8" }
+
+ shebang-regex@3.0.0:
+ resolution:
+ {
+ integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==,
+ }
+ engines: { node: ">=8" }
+
+ side-channel-list@1.0.1:
+ resolution:
+ {
+ integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-map@1.0.1:
+ resolution:
+ {
+ integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel-weakmap@1.0.2:
+ resolution:
+ {
+ integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==,
+ }
+ engines: { node: ">= 0.4" }
+
+ side-channel@1.1.1:
+ resolution:
+ {
+ integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==,
+ }
+ engines: { node: ">= 0.4" }
+
+ signal-exit@3.0.7:
+ resolution:
+ {
+ integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==,
+ }
+
+ signal-exit@4.1.0:
+ resolution:
+ {
+ integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==,
+ }
+ engines: { node: ">=14" }
+
+ sisteransi@1.0.5:
+ resolution:
+ {
+ integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==,
+ }
+
+ sonner@2.0.7:
+ resolution:
+ {
+ integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==,
+ }
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ source-map-js@1.2.1:
+ resolution:
+ {
+ integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ source-map@0.6.1:
+ resolution:
+ {
+ integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==,
+ }
+ engines: { node: ">=0.10.0" }
+
+ statuses@2.0.2:
+ resolution:
+ {
+ integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==,
+ }
+ engines: { node: ">= 0.8" }
+
+ stdin-discarder@0.2.2:
+ resolution:
+ {
+ integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==,
+ }
+ engines: { node: ">=18" }
+
+ string-width@7.2.0:
+ resolution:
+ {
+ integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==,
+ }
+ engines: { node: ">=18" }
+
+ stringify-object@5.0.0:
+ resolution:
+ {
+ integrity: sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==,
+ }
+ engines: { node: ">=14.16" }
+
+ strip-ansi@6.0.1:
+ resolution:
+ {
+ integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==,
+ }
+ engines: { node: ">=8" }
+
+ strip-ansi@7.2.0:
+ resolution:
+ {
+ integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==,
+ }
+ engines: { node: ">=12" }
+
+ strip-bom@3.0.0:
+ resolution:
+ {
+ integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==,
+ }
+ engines: { node: ">=4" }
+
+ strip-final-newline@2.0.0:
+ resolution:
+ {
+ integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==,
+ }
+ engines: { node: ">=6" }
+
+ strip-final-newline@4.0.0:
+ resolution:
+ {
+ integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==,
+ }
+ engines: { node: ">=18" }
+
+ systeminformation@5.33.1:
+ resolution:
+ {
+ integrity: sha512-DEN6ICHk3Tk0Uf/hrAHh7xlt7iL5CJFBtPZinA0H62DrGG/KPKqq/Nzj6lCXPS4Ay/sf/14zNnk9LpqKzBIc+w==,
+ }
+ engines: { node: ">=10.0.0" }
+ os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android]
+ hasBin: true
+
+ tailwind-merge@3.6.0:
+ resolution:
+ {
+ integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==,
+ }
+
+ tailwindcss@4.3.3:
+ resolution:
+ {
+ integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==,
+ }
+
+ tapable@2.3.3:
+ resolution:
+ {
+ integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==,
+ }
+ engines: { node: ">=6" }
+
+ tiny-invariant@1.3.3:
+ resolution:
+ {
+ integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==,
+ }
+
+ tinyglobby@0.2.17:
+ resolution:
+ {
+ integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==,
+ }
+ engines: { node: ">=12.0.0" }
+
+ to-regex-range@5.0.1:
+ resolution:
+ {
+ integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==,
+ }
+ engines: { node: ">=8.0" }
+
+ toidentifier@1.0.1:
+ resolution:
+ {
+ integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==,
+ }
+ engines: { node: ">=0.6" }
+
+ ts-morph@26.0.0:
+ resolution:
+ {
+ integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==,
+ }
+
+ tsconfig-paths@4.2.0:
+ resolution:
+ {
+ integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==,
+ }
+ engines: { node: ">=6" }
+
+ tslib@2.8.1:
+ resolution:
+ {
+ integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==,
+ }
+
+ tw-animate-css@1.4.0:
+ resolution:
+ {
+ integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==,
+ }
+
+ type-is@2.1.0:
+ resolution:
+ {
+ integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==,
+ }
+ engines: { node: ">= 18" }
+
+ typescript@5.9.3:
+ resolution:
+ {
+ integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==,
+ }
+ engines: { node: ">=14.17" }
+ hasBin: true
+
+ undici-types@7.18.2:
+ resolution:
+ {
+ integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==,
+ }
+
+ undici@7.29.0:
+ resolution:
+ {
+ integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==,
+ }
+ engines: { node: ">=20.18.1" }
+
+ unicorn-magic@0.3.0:
+ resolution:
+ {
+ integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==,
+ }
+ engines: { node: ">=18" }
+
+ universalify@2.0.1:
+ resolution:
+ {
+ integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==,
+ }
+ engines: { node: ">= 10.0.0" }
+
+ unpipe@1.0.0:
+ resolution:
+ {
+ integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==,
+ }
+ engines: { node: ">= 0.8" }
+
+ unplugin@3.3.0:
+ resolution:
+ {
+ integrity: sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==,
+ }
+ engines: { node: ^20.19.0 || >=22.12.0 }
+ peerDependencies:
+ "@farmfe/core": "*"
+ "@rspack/core": "*"
+ bun-types-no-globals: "*"
+ esbuild: "*"
+ rolldown: "*"
+ rollup: "*"
+ unloader: "*"
+ vite: "*"
+ webpack: "*"
+ peerDependenciesMeta:
+ "@farmfe/core":
+ optional: true
+ "@rspack/core":
+ optional: true
+ bun-types-no-globals:
+ optional: true
+ esbuild:
+ optional: true
+ rolldown:
+ optional: true
+ rollup:
+ optional: true
+ unloader:
+ optional: true
+ vite:
+ optional: true
+ webpack:
+ optional: true
+
+ update-browserslist-db@1.2.3:
+ resolution:
+ {
+ integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==,
+ }
+ hasBin: true
+ peerDependencies:
+ browserslist: ">= 4.21.0"
+
+ use-callback-ref@1.3.3:
+ resolution:
+ {
+ integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ use-sidecar@1.1.3:
+ resolution:
+ {
+ integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==,
+ }
+ engines: { node: ">=10" }
+ peerDependencies:
+ "@types/react": "*"
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+
+ use-sync-external-store@1.6.0:
+ resolution:
+ {
+ integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==,
+ }
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ util-deprecate@1.0.2:
+ resolution:
+ {
+ integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==,
+ }
+
+ validate-npm-package-name@7.0.2:
+ resolution:
+ {
+ integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==,
+ }
+ engines: { node: ^20.17.0 || >=22.9.0 }
+
+ vary@1.1.2:
+ resolution:
+ {
+ integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==,
+ }
+ engines: { node: ">= 0.8" }
+
+ vaul@1.1.2:
+ resolution:
+ {
+ integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==,
+ }
+ peerDependencies:
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
+
+ victory-vendor@37.3.6:
+ resolution:
+ {
+ integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==,
+ }
+
+ vite@7.3.6:
+ resolution:
+ {
+ integrity: sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==,
+ }
+ 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
+
+ webpack-virtual-modules@0.6.2:
+ resolution:
+ {
+ integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==,
+ }
+
+ which@2.0.2:
+ resolution:
+ {
+ integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==,
+ }
+ engines: { node: ">= 8" }
+ hasBin: true
+
+ which@4.0.0:
+ resolution:
+ {
+ integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==,
+ }
+ engines: { node: ^16.13.0 || >=18.0.0 }
+ hasBin: true
+
+ wrappy@1.0.2:
+ resolution:
+ {
+ integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==,
+ }
+
+ wsl-utils@0.3.1:
+ resolution:
+ {
+ integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==,
+ }
+ engines: { node: ">=20" }
+
+ yallist@3.1.1:
+ resolution:
+ {
+ integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==,
+ }
+
+ yaml@2.9.0:
+ resolution:
+ {
+ integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==,
+ }
+ engines: { node: ">= 14.6" }
+ hasBin: true
+
+ yocto-spinner@1.2.2:
+ resolution:
+ {
+ integrity: sha512-DODGl1wJjA/s5pnJFKau9lIYHT81lnhob1i3e1TjxZRxEhWRKl74nTbWE6H5KlkViQQTo/Z29YFdxzTZAMY3ng==,
+ }
+ engines: { node: ">=18.19" }
+
+ yoctocolors@2.2.0:
+ resolution:
+ {
+ integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==,
+ }
+ engines: { node: ">=18" }
+
+ zod-to-json-schema@3.25.2:
+ resolution:
+ {
+ integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==,
+ }
+ peerDependencies:
+ zod: ^3.25.28 || ^4
+
+ zod@3.25.76:
+ resolution:
+ {
+ integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==,
+ }
+
+ zod@4.4.3:
+ resolution:
+ {
+ integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==,
+ }
+
+snapshots:
+ "@babel/code-frame@7.29.7":
+ dependencies:
+ "@babel/helper-validator-identifier": 7.29.7
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ "@babel/compat-data@7.29.7": {}
+
+ "@babel/core@7.29.7":
+ dependencies:
+ "@babel/code-frame": 7.29.7
+ "@babel/generator": 7.29.7
+ "@babel/helper-compilation-targets": 7.29.7
+ "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7)
+ "@babel/helpers": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/template": 7.29.7
+ "@babel/traverse": 7.29.7
+ "@babel/types": 7.29.7
+ "@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.7":
+ dependencies:
+ "@babel/parser": 7.29.7
+ "@babel/types": 7.29.7
+ "@jridgewell/gen-mapping": 0.3.13
+ "@jridgewell/trace-mapping": 0.3.31
+ jsesc: 3.1.0
+
+ "@babel/helper-annotate-as-pure@7.29.7":
+ dependencies:
+ "@babel/types": 7.29.7
+
+ "@babel/helper-compilation-targets@7.29.7":
+ dependencies:
+ "@babel/compat-data": 7.29.7
+ "@babel/helper-validator-option": 7.29.7
+ browserslist: 4.28.7
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
+ "@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-annotate-as-pure": 7.29.7
+ "@babel/helper-member-expression-to-functions": 7.29.7
+ "@babel/helper-optimise-call-expression": 7.29.7
+ "@babel/helper-replace-supers": 7.29.7(@babel/core@7.29.7)
+ "@babel/helper-skip-transparent-expression-wrappers": 7.29.7
+ "@babel/traverse": 7.29.7
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-globals@7.29.7": {}
+
+ "@babel/helper-member-expression-to-functions@7.29.7":
+ dependencies:
+ "@babel/traverse": 7.29.7
+ "@babel/types": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-module-imports@7.29.7":
+ dependencies:
+ "@babel/traverse": 7.29.7
+ "@babel/types": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-module-imports": 7.29.7
+ "@babel/helper-validator-identifier": 7.29.7
+ "@babel/traverse": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-optimise-call-expression@7.29.7":
+ dependencies:
+ "@babel/types": 7.29.7
+
+ "@babel/helper-plugin-utils@7.29.7": {}
+
+ "@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-member-expression-to-functions": 7.29.7
+ "@babel/helper-optimise-call-expression": 7.29.7
+ "@babel/traverse": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-skip-transparent-expression-wrappers@7.29.7":
+ dependencies:
+ "@babel/traverse": 7.29.7
+ "@babel/types": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/helper-string-parser@7.29.7": {}
+
+ "@babel/helper-validator-identifier@7.29.7": {}
+
+ "@babel/helper-validator-option@7.29.7": {}
+
+ "@babel/helpers@7.29.7":
+ dependencies:
+ "@babel/template": 7.29.7
+ "@babel/types": 7.29.7
+
+ "@babel/parser@7.29.7":
+ dependencies:
+ "@babel/types": 7.29.7
+
+ "@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-plugin-utils": 7.29.7
+
+ "@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-plugin-utils": 7.29.7
+
+ "@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-module-transforms": 7.29.7(@babel/core@7.29.7)
+ "@babel/helper-plugin-utils": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-plugin-utils": 7.29.7
+
+ "@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-plugin-utils": 7.29.7
+
+ "@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-annotate-as-pure": 7.29.7
+ "@babel/helper-create-class-features-plugin": 7.29.7(@babel/core@7.29.7)
+ "@babel/helper-plugin-utils": 7.29.7
+ "@babel/helper-skip-transparent-expression-wrappers": 7.29.7
+ "@babel/plugin-syntax-typescript": 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/preset-typescript@7.29.7(@babel/core@7.29.7)":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/helper-plugin-utils": 7.29.7
+ "@babel/helper-validator-option": 7.29.7
+ "@babel/plugin-syntax-jsx": 7.29.7(@babel/core@7.29.7)
+ "@babel/plugin-transform-modules-commonjs": 7.29.7(@babel/core@7.29.7)
+ "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.7)
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/runtime@7.29.7": {}
+
+ "@babel/template@7.29.7":
+ dependencies:
+ "@babel/code-frame": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/types": 7.29.7
+
+ "@babel/traverse@7.29.7":
+ dependencies:
+ "@babel/code-frame": 7.29.7
+ "@babel/generator": 7.29.7
+ "@babel/helper-globals": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/template": 7.29.7
+ "@babel/types": 7.29.7
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@babel/types@7.29.7":
+ dependencies:
+ "@babel/helper-string-parser": 7.29.7
+ "@babel/helper-validator-identifier": 7.29.7
+
+ "@base-ui/react@1.6.0(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@babel/runtime": 7.29.7
+ "@base-ui/utils": 0.3.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@floating-ui/react-dom": 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@floating-ui/utils": 0.2.12
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ use-sync-external-store: 1.6.0(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@base-ui/utils@0.3.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@babel/runtime": 7.29.7
+ "@floating-ui/utils": 0.2.12
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ reselect: 5.2.0
+ use-sync-external-store: 1.6.0(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@dotenvx/dotenvx@1.75.1":
+ dependencies:
+ "@dotenvx/primitives": 0.8.0
+ commander: 11.1.0
+ conf: 10.2.0
+ dotenv: 17.4.2
+ enquirer: 2.4.1
+ env-paths: 2.2.1
+ execa: 5.1.1
+ fdir: 6.5.0(picomatch@4.0.5)
+ ignore: 5.3.2
+ object-treeify: 1.1.33
+ open: 8.4.2
+ picomatch: 4.0.5
+ systeminformation: 5.33.1
+ undici: 7.29.0
+ which: 4.0.0
+ yocto-spinner: 1.2.2
+
+ "@dotenvx/primitives@0.8.0": {}
+
+ "@esbuild/aix-ppc64@0.28.1":
+ optional: true
+
+ "@esbuild/android-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/android-arm@0.28.1":
+ optional: true
+
+ "@esbuild/android-x64@0.28.1":
+ optional: true
+
+ "@esbuild/darwin-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/darwin-x64@0.28.1":
+ optional: true
+
+ "@esbuild/freebsd-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/freebsd-x64@0.28.1":
+ optional: true
+
+ "@esbuild/linux-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/linux-arm@0.28.1":
+ optional: true
+
+ "@esbuild/linux-ia32@0.28.1":
+ optional: true
+
+ "@esbuild/linux-loong64@0.28.1":
+ optional: true
+
+ "@esbuild/linux-mips64el@0.28.1":
+ optional: true
+
+ "@esbuild/linux-ppc64@0.28.1":
+ optional: true
+
+ "@esbuild/linux-riscv64@0.28.1":
+ optional: true
+
+ "@esbuild/linux-s390x@0.28.1":
+ optional: true
+
+ "@esbuild/linux-x64@0.28.1":
+ optional: true
+
+ "@esbuild/netbsd-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/netbsd-x64@0.28.1":
+ optional: true
+
+ "@esbuild/openbsd-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/openbsd-x64@0.28.1":
+ optional: true
+
+ "@esbuild/openharmony-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/sunos-x64@0.28.1":
+ optional: true
+
+ "@esbuild/win32-arm64@0.28.1":
+ optional: true
+
+ "@esbuild/win32-ia32@0.28.1":
+ optional: true
+
+ "@esbuild/win32-x64@0.28.1":
+ optional: true
+
+ "@floating-ui/core@1.8.0":
+ dependencies:
+ "@floating-ui/utils": 0.2.12
+
+ "@floating-ui/dom@1.8.0":
+ dependencies:
+ "@floating-ui/core": 1.8.0
+ "@floating-ui/utils": 0.2.12
+
+ "@floating-ui/react-dom@2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@floating-ui/dom": 1.8.0
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ "@floating-ui/utils@0.2.12": {}
+
+ "@fontsource-variable/public-sans@5.3.0": {}
+
+ "@hono/node-server@2.0.12(hono@4.12.32)":
+ dependencies:
+ hono: 4.12.32
+
+ "@jridgewell/gen-mapping@0.3.13":
+ dependencies:
+ "@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": {}
+
+ "@jridgewell/trace-mapping@0.3.31":
+ dependencies:
+ "@jridgewell/resolve-uri": 3.1.2
+ "@jridgewell/sourcemap-codec": 1.5.5
+
+ "@methanium/ui@https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@19.2.8)(react@19.2.8)(redux@5.0.1)(typescript@5.9.3)":
+ dependencies:
+ "@base-ui/react": 1.6.0(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@fontsource-variable/public-sans": 5.3.0
+ "@tauri-apps/api": 2.11.1
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ cmdk: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ embla-carousel-react: 8.6.0(react@19.2.8)
+ input-otp: 1.4.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ lucide-react: 1.27.0(react@19.2.8)
+ next-themes: 0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-resizable-panels: 4.12.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ recharts: 3.8.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@19.2.8)(react@19.2.8)(redux@5.0.1)
+ shadcn: 4.16.0(typescript@5.9.3)
+ sonner: 2.0.7(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ tailwind-merge: 3.6.0
+ tw-animate-css: 1.4.0
+ vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ transitivePeerDependencies:
+ - "@cfworker/json-schema"
+ - "@date-fns/tz"
+ - "@types/react"
+ - "@types/react-dom"
+ - babel-plugin-macros
+ - date-fns
+ - react-is
+ - redux
+ - supports-color
+ - typescript
+
+ "@modelcontextprotocol/sdk@1.30.0(zod@3.25.76)":
+ dependencies:
+ "@hono/node-server": 2.0.12(hono@4.12.32)
+ ajv: 8.20.0
+ ajv-formats: 3.0.1(ajv@8.20.0)
+ content-type: 1.0.5
+ cors: 2.8.6
+ cross-spawn: 7.0.6
+ eventsource: 3.0.7
+ eventsource-parser: 3.1.0
+ express: 5.2.1
+ express-rate-limit: 8.6.1(express@5.2.1)
+ hono: 4.12.32
+ jose: 6.2.4
+ json-schema-typed: 8.0.2
+ pkce-challenge: 5.0.1
+ raw-body: 3.0.2
+ zod: 3.25.76
+ zod-to-json-schema: 3.25.2(zod@3.25.76)
+ transitivePeerDependencies:
+ - supports-color
+
+ "@nodelib/fs.scandir@2.1.5":
+ dependencies:
+ "@nodelib/fs.stat": 2.0.5
+ run-parallel: 1.2.0
+
+ "@nodelib/fs.stat@2.0.5": {}
+
+ "@nodelib/fs.walk@1.2.8":
+ dependencies:
+ "@nodelib/fs.scandir": 2.1.5
+ fastq: 1.20.1
+
+ "@oxlint/binding-android-arm-eabi@1.76.0":
+ optional: true
+
+ "@oxlint/binding-android-arm64@1.76.0":
+ optional: true
+
+ "@oxlint/binding-darwin-arm64@1.76.0":
+ optional: true
+
+ "@oxlint/binding-darwin-x64@1.76.0":
+ optional: true
+
+ "@oxlint/binding-freebsd-x64@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-arm-gnueabihf@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-arm-musleabihf@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-arm64-gnu@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-arm64-musl@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-ppc64-gnu@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-riscv64-gnu@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-riscv64-musl@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-s390x-gnu@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-x64-gnu@1.76.0":
+ optional: true
+
+ "@oxlint/binding-linux-x64-musl@1.76.0":
+ optional: true
+
+ "@oxlint/binding-openharmony-arm64@1.76.0":
+ optional: true
+
+ "@oxlint/binding-win32-arm64-msvc@1.76.0":
+ optional: true
+
+ "@oxlint/binding-win32-ia32-msvc@1.76.0":
+ optional: true
+
+ "@oxlint/binding-win32-x64-msvc@1.76.0":
+ optional: true
+
+ "@radix-ui/primitive@1.1.7": {}
+
+ "@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-context@1.2.2(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-dialog@1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/primitive": 1.1.7
+ "@radix-ui/react-compose-refs": 1.1.5(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-context": 1.2.2(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-dismissable-layer": 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-focus-guards": 1.1.6(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-focus-scope": 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-id": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-portal": 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-presence": 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-primitive": 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-slot": 1.3.3(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-use-controllable-state": 1.2.6(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ aria-hidden: 1.2.6
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/primitive": 1.1.7
+ "@radix-ui/react-compose-refs": 1.1.5(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-primitive": 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-use-callback-ref": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-use-effect-event": 0.0.5(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-compose-refs": 1.1.5(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-primitive": 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-use-callback-ref": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-id@1.1.4(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-primitive": 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-slot": 1.3.3(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ "@types/react-dom": 19.2.3(@types/react@19.2.17)
+
+ "@radix-ui/react-slot@1.3.3(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-compose-refs": 1.1.5(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ "@radix-ui/primitive": 1.1.7
+ "@radix-ui/react-use-effect-event": 0.0.5(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ "@radix-ui/react-use-layout-effect": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.17)(react@19.2.8)":
+ dependencies:
+ react: 19.2.8
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ "@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.8)(redux@5.0.1))(react@19.2.8)":
+ dependencies:
+ "@standard-schema/spec": 1.1.0
+ "@standard-schema/utils": 0.3.0
+ immer: 11.1.15
+ redux: 5.0.1
+ redux-thunk: 3.1.0(redux@5.0.1)
+ reselect: 5.2.0
+ optionalDependencies:
+ react: 19.2.8
+ react-redux: 9.3.0(@types/react@19.2.17)(react@19.2.8)(redux@5.0.1)
+
+ "@rolldown/pluginutils@1.0.0-rc.3": {}
+
+ "@rollup/rollup-android-arm-eabi@4.62.3":
+ optional: true
+
+ "@rollup/rollup-android-arm64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-darwin-arm64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-darwin-x64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-freebsd-arm64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-freebsd-x64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-arm-gnueabihf@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-arm-musleabihf@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-arm64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-arm64-musl@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-loong64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-loong64-musl@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-ppc64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-ppc64-musl@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-riscv64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-riscv64-musl@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-s390x-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-x64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-linux-x64-musl@4.62.3":
+ optional: true
+
+ "@rollup/rollup-openbsd-x64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-openharmony-arm64@4.62.3":
+ optional: true
+
+ "@rollup/rollup-win32-arm64-msvc@4.62.3":
+ optional: true
+
+ "@rollup/rollup-win32-ia32-msvc@4.62.3":
+ optional: true
+
+ "@rollup/rollup-win32-x64-gnu@4.62.3":
+ optional: true
+
+ "@rollup/rollup-win32-x64-msvc@4.62.3":
+ optional: true
+
+ "@sec-ant/readable-stream@0.4.1": {}
+
+ "@sindresorhus/merge-streams@4.0.0": {}
+
+ "@standard-schema/spec@1.1.0": {}
+
+ "@standard-schema/utils@0.3.0": {}
+
+ "@tailwindcss/node@4.3.3":
+ dependencies:
+ "@jridgewell/remapping": 2.3.5
+ enhanced-resolve: 5.24.3
+ jiti: 2.7.0
+ lightningcss: 1.32.0
+ magic-string: 0.30.21
+ source-map-js: 1.2.1
+ tailwindcss: 4.3.3
+
+ "@tailwindcss/oxide-android-arm64@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-darwin-arm64@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-darwin-x64@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-freebsd-x64@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm64-gnu@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-linux-arm64-musl@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-linux-x64-gnu@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-linux-x64-musl@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-wasm32-wasi@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-win32-arm64-msvc@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide-win32-x64-msvc@4.3.3":
+ optional: true
+
+ "@tailwindcss/oxide@4.3.3":
+ optionalDependencies:
+ "@tailwindcss/oxide-android-arm64": 4.3.3
+ "@tailwindcss/oxide-darwin-arm64": 4.3.3
+ "@tailwindcss/oxide-darwin-x64": 4.3.3
+ "@tailwindcss/oxide-freebsd-x64": 4.3.3
+ "@tailwindcss/oxide-linux-arm-gnueabihf": 4.3.3
+ "@tailwindcss/oxide-linux-arm64-gnu": 4.3.3
+ "@tailwindcss/oxide-linux-arm64-musl": 4.3.3
+ "@tailwindcss/oxide-linux-x64-gnu": 4.3.3
+ "@tailwindcss/oxide-linux-x64-musl": 4.3.3
+ "@tailwindcss/oxide-wasm32-wasi": 4.3.3
+ "@tailwindcss/oxide-win32-arm64-msvc": 4.3.3
+ "@tailwindcss/oxide-win32-x64-msvc": 4.3.3
+
+ "@tailwindcss/vite@4.3.3(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))":
+ dependencies:
+ "@tailwindcss/node": 4.3.3
+ "@tailwindcss/oxide": 4.3.3
+ tailwindcss: 4.3.3
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)
+
+ "@tanstack/history@1.162.0": {}
+
+ "@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@tanstack/history": 1.162.0
+ "@tanstack/react-store": 0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@tanstack/router-core": 1.171.15
+ isbot: 5.2.1
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ "@tanstack/react-store@0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8)":
+ dependencies:
+ "@tanstack/store": 0.9.3
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ use-sync-external-store: 1.6.0(react@19.2.8)
+
+ "@tanstack/router-core@1.171.15":
+ dependencies:
+ "@tanstack/history": 1.162.0
+ cookie-es: 3.1.1
+ seroval: 1.5.6
+ seroval-plugins: 1.5.6(seroval@1.5.6)
+
+ "@tanstack/router-generator@1.167.21":
+ dependencies:
+ "@babel/types": 7.29.7
+ "@tanstack/router-core": 1.171.15
+ "@tanstack/router-utils": 1.162.2
+ "@tanstack/virtual-file-routes": 1.162.0
+ jiti: 2.7.0
+ magic-string: 0.30.21
+ prettier: 3.9.6
+ zod: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
+ "@tanstack/router-plugin@1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/template": 7.29.7
+ "@babel/types": 7.29.7
+ "@tanstack/router-core": 1.171.15
+ "@tanstack/router-generator": 1.167.21
+ "@tanstack/router-utils": 1.162.2
+ chokidar: 5.0.0
+ unplugin: 3.3.0(esbuild@0.28.1)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))
+ zod: 4.4.3
+ optionalDependencies:
+ "@tanstack/react-router": 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)
+ transitivePeerDependencies:
+ - "@farmfe/core"
+ - "@rspack/core"
+ - bun-types-no-globals
+ - esbuild
+ - rolldown
+ - rollup
+ - supports-color
+ - unloader
+
+ "@tanstack/router-utils@1.162.2":
+ dependencies:
+ "@babel/generator": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/types": 7.29.7
+ ansis: 4.3.1
+ babel-dead-code-elimination: 1.0.12
+ diff: 8.0.4
+ pathe: 2.0.3
+ tinyglobby: 0.2.17
+ transitivePeerDependencies:
+ - supports-color
+
+ "@tanstack/store@0.9.3": {}
+
+ "@tanstack/virtual-file-routes@1.162.0": {}
+
+ "@tauri-apps/api@2.11.1": {}
+
+ "@ts-morph/common@0.27.0":
+ dependencies:
+ fast-glob: 3.3.3
+ minimatch: 10.2.6
+ path-browserify: 1.0.1
+
+ "@types/babel__core@7.20.5":
+ dependencies:
+ "@babel/parser": 7.29.7
+ "@babel/types": 7.29.7
+ "@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.7
+
+ "@types/babel__template@7.4.4":
+ dependencies:
+ "@babel/parser": 7.29.7
+ "@babel/types": 7.29.7
+
+ "@types/babel__traverse@7.28.0":
+ dependencies:
+ "@babel/types": 7.29.7
+
+ "@types/d3-array@3.2.2": {}
+
+ "@types/d3-color@3.1.3": {}
+
+ "@types/d3-ease@3.0.2": {}
+
+ "@types/d3-interpolate@3.0.4":
+ dependencies:
+ "@types/d3-color": 3.1.3
+
+ "@types/d3-path@3.1.1": {}
+
+ "@types/d3-scale@4.0.9":
+ dependencies:
+ "@types/d3-time": 3.0.4
+
+ "@types/d3-shape@3.1.8":
+ dependencies:
+ "@types/d3-path": 3.1.1
+
+ "@types/d3-time@3.0.4": {}
+
+ "@types/d3-timer@3.0.2": {}
+
+ "@types/estree@1.0.9": {}
+
+ "@types/node@24.13.3":
+ dependencies:
+ undici-types: 7.18.2
+
+ "@types/react-dom@19.2.3(@types/react@19.2.17)":
+ dependencies:
+ "@types/react": 19.2.17
+
+ "@types/react@19.2.17":
+ dependencies:
+ csstype: 3.2.3
+
+ "@types/use-sync-external-store@0.0.6": {}
+
+ "@types/validate-npm-package-name@4.0.2": {}
+
+ "@vitejs/plugin-react@5.2.0(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0))":
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/plugin-transform-react-jsx-self": 7.29.7(@babel/core@7.29.7)
+ "@babel/plugin-transform-react-jsx-source": 7.29.7(@babel/core@7.29.7)
+ "@rolldown/pluginutils": 1.0.0-rc.3
+ "@types/babel__core": 7.20.5
+ react-refresh: 0.18.0
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ accepts@2.0.0:
+ dependencies:
+ mime-types: 3.0.2
+ negotiator: 1.0.0
+
+ ajv-formats@2.1.1(ajv@8.20.0):
+ optionalDependencies:
+ ajv: 8.20.0
+
+ ajv-formats@3.0.1(ajv@8.20.0):
+ optionalDependencies:
+ ajv: 8.20.0
+
+ ajv@8.20.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.1.4
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
+ ansi-colors@4.1.3: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.2.2: {}
+
+ ansis@4.3.1: {}
+
+ argparse@2.0.1: {}
+
+ aria-hidden@1.2.6:
+ dependencies:
+ tslib: 2.8.1
+
+ ast-types@0.16.1:
+ dependencies:
+ tslib: 2.8.1
+
+ atomically@1.7.0: {}
+
+ babel-dead-code-elimination@1.0.12:
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/traverse": 7.29.7
+ "@babel/types": 7.29.7
+ transitivePeerDependencies:
+ - supports-color
+
+ balanced-match@4.0.4: {}
+
+ baseline-browser-mapping@2.11.5: {}
+
+ body-parser@2.3.0:
+ dependencies:
+ bytes: 3.1.2
+ content-type: 2.0.0
+ debug: 4.4.3
+ http-errors: 2.0.1
+ iconv-lite: 0.7.3
+ on-finished: 2.4.1
+ qs: 6.15.3
+ raw-body: 3.0.2
+ type-is: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ brace-expansion@5.0.8:
+ dependencies:
+ balanced-match: 4.0.4
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.28.7:
+ dependencies:
+ baseline-browser-mapping: 2.11.5
+ caniuse-lite: 1.0.30001806
+ electron-to-chromium: 1.5.397
+ node-releases: 2.0.51
+ update-browserslist-db: 1.2.3(browserslist@4.28.7)
+
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.1.0
+
+ bytes@3.1.2: {}
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ caniuse-lite@1.0.30001806: {}
+
+ chalk@5.6.2: {}
+
+ chokidar@5.0.0:
+ dependencies:
+ readdirp: 5.0.0
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-spinners@2.9.2: {}
+
+ clsx@2.1.1: {}
+
+ cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ "@radix-ui/react-compose-refs": 1.1.5(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-dialog": 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ "@radix-ui/react-id": 1.1.4(@types/react@19.2.17)(react@19.2.8)
+ "@radix-ui/react-primitive": 2.1.10(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ transitivePeerDependencies:
+ - "@types/react"
+ - "@types/react-dom"
+
+ code-block-writer@13.0.3: {}
+
+ commander@11.1.0: {}
+
+ commander@14.0.3: {}
+
+ conf@10.2.0:
+ dependencies:
+ ajv: 8.20.0
+ ajv-formats: 2.1.1(ajv@8.20.0)
+ atomically: 1.7.0
+ debounce-fn: 4.0.0
+ dot-prop: 6.0.1
+ env-paths: 2.2.1
+ json-schema-typed: 7.0.3
+ onetime: 5.1.2
+ pkg-up: 3.1.0
+ semver: 7.8.5
+
+ content-disposition@1.1.0: {}
+
+ content-type@1.0.5: {}
+
+ content-type@2.0.0: {}
+
+ convert-source-map@2.0.0: {}
+
+ cookie-es@3.1.1: {}
+
+ cookie-signature@1.2.2: {}
+
+ cookie@0.7.2: {}
+
+ cors@2.8.6:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ cosmiconfig@9.0.2(typescript@5.9.3):
+ dependencies:
+ env-paths: 2.2.1
+ import-fresh: 3.3.1
+ js-yaml: 4.3.0
+ parse-json: 5.2.0
+ optionalDependencies:
+ typescript: 5.9.3
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ cssesc@3.0.0: {}
+
+ csstype@3.2.3: {}
+
+ d3-array@3.2.4:
+ dependencies:
+ internmap: 2.0.3
+
+ d3-color@3.1.0: {}
+
+ d3-ease@3.0.1: {}
+
+ d3-format@3.1.2: {}
+
+ d3-interpolate@3.0.1:
+ dependencies:
+ d3-color: 3.1.0
+
+ d3-path@3.1.0: {}
+
+ d3-scale@4.0.2:
+ dependencies:
+ d3-array: 3.2.4
+ d3-format: 3.1.2
+ d3-interpolate: 3.0.1
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+
+ d3-shape@3.2.0:
+ dependencies:
+ d3-path: 3.1.0
+
+ d3-time-format@4.1.0:
+ dependencies:
+ d3-time: 3.1.0
+
+ d3-time@3.1.0:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-timer@3.0.1: {}
+
+ debounce-fn@4.0.0:
+ dependencies:
+ mimic-fn: 3.1.0
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decimal.js-light@2.5.1: {}
+
+ dedent@1.7.2: {}
+
+ deepmerge@4.3.1: {}
+
+ default-browser-id@5.0.1: {}
+
+ default-browser@5.5.0:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.1
+
+ define-lazy-prop@2.0.0: {}
+
+ define-lazy-prop@3.0.0: {}
+
+ depd@2.0.0: {}
+
+ detect-libc@2.1.2: {}
+
+ detect-node-es@1.1.0: {}
+
+ diff@8.0.4: {}
+
+ dot-prop@6.0.1:
+ dependencies:
+ is-obj: 2.0.0
+
+ dotenv@17.4.2: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ ee-first@1.1.1: {}
+
+ electron-to-chromium@1.5.397: {}
+
+ embla-carousel-react@8.6.0(react@19.2.8):
+ dependencies:
+ embla-carousel: 8.6.0
+ embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
+ react: 19.2.8
+
+ embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0):
+ dependencies:
+ embla-carousel: 8.6.0
+
+ embla-carousel@8.6.0: {}
+
+ emoji-regex@10.6.0: {}
+
+ encodeurl@2.0.0: {}
+
+ enhanced-resolve@5.24.3:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.3.3
+
+ enquirer@2.4.1:
+ dependencies:
+ ansi-colors: 4.1.3
+ strip-ansi: 6.0.1
+
+ env-paths@2.2.1: {}
+
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.2:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-toolkit@1.50.0: {}
+
+ esbuild@0.28.1:
+ optionalDependencies:
+ "@esbuild/aix-ppc64": 0.28.1
+ "@esbuild/android-arm": 0.28.1
+ "@esbuild/android-arm64": 0.28.1
+ "@esbuild/android-x64": 0.28.1
+ "@esbuild/darwin-arm64": 0.28.1
+ "@esbuild/darwin-x64": 0.28.1
+ "@esbuild/freebsd-arm64": 0.28.1
+ "@esbuild/freebsd-x64": 0.28.1
+ "@esbuild/linux-arm": 0.28.1
+ "@esbuild/linux-arm64": 0.28.1
+ "@esbuild/linux-ia32": 0.28.1
+ "@esbuild/linux-loong64": 0.28.1
+ "@esbuild/linux-mips64el": 0.28.1
+ "@esbuild/linux-ppc64": 0.28.1
+ "@esbuild/linux-riscv64": 0.28.1
+ "@esbuild/linux-s390x": 0.28.1
+ "@esbuild/linux-x64": 0.28.1
+ "@esbuild/netbsd-arm64": 0.28.1
+ "@esbuild/netbsd-x64": 0.28.1
+ "@esbuild/openbsd-arm64": 0.28.1
+ "@esbuild/openbsd-x64": 0.28.1
+ "@esbuild/openharmony-arm64": 0.28.1
+ "@esbuild/sunos-x64": 0.28.1
+ "@esbuild/win32-arm64": 0.28.1
+ "@esbuild/win32-ia32": 0.28.1
+ "@esbuild/win32-x64": 0.28.1
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3: {}
+
+ esprima@4.0.1: {}
+
+ etag@1.8.1: {}
+
+ eventemitter3@5.0.4: {}
+
+ eventsource-parser@3.1.0: {}
+
+ eventsource@3.0.7:
+ dependencies:
+ eventsource-parser: 3.1.0
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ execa@9.6.1:
+ dependencies:
+ "@sindresorhus/merge-streams": 4.0.0
+ cross-spawn: 7.0.6
+ figures: 6.1.0
+ get-stream: 9.0.1
+ human-signals: 8.0.1
+ is-plain-obj: 4.1.0
+ is-stream: 4.0.1
+ npm-run-path: 6.0.0
+ pretty-ms: 9.3.0
+ signal-exit: 4.1.0
+ strip-final-newline: 4.0.0
+ yoctocolors: 2.2.0
+
+ express-rate-limit@8.6.1(express@5.2.1):
+ dependencies:
+ debug: 4.4.3
+ express: 5.2.1
+ ip-address: 10.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ express@5.2.1:
+ dependencies:
+ accepts: 2.0.0
+ body-parser: 2.3.0
+ content-disposition: 1.1.0
+ content-type: 1.0.5
+ cookie: 0.7.2
+ cookie-signature: 1.2.2
+ debug: 4.4.3
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 2.1.1
+ fresh: 2.0.0
+ http-errors: 2.0.1
+ merge-descriptors: 2.0.0
+ mime-types: 3.0.2
+ on-finished: 2.4.1
+ once: 1.4.0
+ parseurl: 1.3.3
+ proxy-addr: 2.0.7
+ qs: 6.15.3
+ range-parser: 1.3.0
+ router: 2.2.0
+ send: 1.2.1
+ serve-static: 2.2.1
+ statuses: 2.0.2
+ type-is: 2.1.0
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ "@nodelib/fs.stat": 2.0.5
+ "@nodelib/fs.walk": 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-uri@3.1.4: {}
+
+ fastq@1.20.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fdir@6.5.0(picomatch@4.0.5):
+ optionalDependencies:
+ picomatch: 4.0.5
+
+ figures@6.1.0:
+ dependencies:
+ is-unicode-supported: 2.1.0
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ finalhandler@2.1.1:
+ dependencies:
+ debug: 4.4.3
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ find-up@3.0.0:
+ dependencies:
+ locate-path: 3.0.0
+
+ forwarded@0.2.0: {}
+
+ fresh@2.0.0: {}
+
+ fs-extra@11.4.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.1
+ universalify: 2.0.1
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ fuzzysort@3.1.0: {}
+
+ gensync@1.0.0-beta.2: {}
+
+ get-east-asian-width@1.6.0: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.4
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
+ get-own-enumerable-keys@1.0.0: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.2
+
+ get-stream@6.0.1: {}
+
+ get-stream@9.0.1:
+ dependencies:
+ "@sec-ant/readable-stream": 0.4.1
+ is-stream: 4.0.1
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ has-symbols@1.1.0: {}
+
+ hasown@2.0.4:
+ dependencies:
+ function-bind: 1.1.2
+
+ hono@4.12.32: {}
+
+ http-errors@2.0.1:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.2
+ toidentifier: 1.0.1
+
+ human-signals@2.1.0: {}
+
+ human-signals@8.0.1: {}
+
+ iconv-lite@0.7.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ignore@5.3.2: {}
+
+ immer@10.2.0: {}
+
+ immer@11.1.15: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ inherits@2.0.4: {}
+
+ input-otp@1.4.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ internmap@2.0.3: {}
+
+ ip-address@10.3.1: {}
+
+ ipaddr.js@1.9.1: {}
+
+ is-arrayish@0.2.1: {}
+
+ is-docker@2.2.1: {}
+
+ is-docker@3.0.0: {}
+
+ is-extglob@2.1.1: {}
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-in-ssh@1.0.0: {}
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
+ is-interactive@2.0.0: {}
+
+ is-number@7.0.0: {}
+
+ is-obj@2.0.0: {}
+
+ is-obj@3.0.0: {}
+
+ is-plain-obj@4.1.0: {}
+
+ is-promise@4.0.0: {}
+
+ is-regexp@3.1.0: {}
+
+ is-stream@2.0.1: {}
+
+ is-stream@4.0.1: {}
+
+ is-unicode-supported@1.3.0: {}
+
+ is-unicode-supported@2.1.0: {}
+
+ is-wsl@2.2.0:
+ dependencies:
+ is-docker: 2.2.1
+
+ is-wsl@3.1.1:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ isbot@5.2.1: {}
+
+ isexe@2.0.0: {}
+
+ isexe@3.1.5: {}
+
+ jiti@2.7.0: {}
+
+ jose@6.2.4: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.3.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsesc@3.1.0: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
+ json-schema-typed@7.0.3: {}
+
+ json-schema-typed@8.0.2: {}
+
+ json5@2.2.3: {}
+
+ jsonfile@6.2.1:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ kleur@3.0.3: {}
+
+ kleur@4.1.5: {}
+
+ lightningcss-android-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-arm64@1.32.0:
+ optional: true
+
+ lightningcss-darwin-x64@1.32.0:
+ optional: true
+
+ lightningcss-freebsd-x64@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.32.0:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.32.0:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.32.0:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.32.0:
+ optional: true
+
+ lightningcss@1.32.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
+
+ lines-and-columns@1.2.4: {}
+
+ locate-path@3.0.0:
+ dependencies:
+ p-locate: 3.0.0
+ path-exists: 3.0.0
+
+ log-symbols@6.0.0:
+ dependencies:
+ chalk: 5.6.2
+ is-unicode-supported: 1.3.0
+
+ lru-cache@5.1.1:
+ dependencies:
+ yallist: 3.1.1
+
+ lucide-react@1.27.0(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+
+ magic-string@0.30.21:
+ dependencies:
+ "@jridgewell/sourcemap-codec": 1.5.5
+
+ math-intrinsics@1.1.0: {}
+
+ media-typer@1.1.1: {}
+
+ merge-descriptors@2.0.0: {}
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.2
+
+ mime-db@1.54.0: {}
+
+ mime-types@3.0.2:
+ dependencies:
+ mime-db: 1.54.0
+
+ mimic-fn@2.1.0: {}
+
+ mimic-fn@3.1.0: {}
+
+ mimic-function@5.0.1: {}
+
+ minimatch@10.2.6:
+ dependencies:
+ brace-expansion: 5.0.8
+
+ minimist@1.2.8: {}
+
+ ms@2.1.3: {}
+
+ mtp@https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz:
+ dependencies:
+ yaml: 2.9.0
+
+ nanoid@3.3.16: {}
+
+ negotiator@1.0.0: {}
+
+ next-themes@0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ node-releases@2.0.51: {}
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ npm-run-path@6.0.0:
+ dependencies:
+ path-key: 4.0.0
+ unicorn-magic: 0.3.0
+
+ object-assign@4.1.1: {}
+
+ object-inspect@1.13.4: {}
+
+ object-treeify@1.1.33: {}
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ open@11.0.0:
+ dependencies:
+ default-browser: 5.5.0
+ define-lazy-prop: 3.0.0
+ is-in-ssh: 1.0.0
+ is-inside-container: 1.0.0
+ powershell-utils: 0.1.0
+ wsl-utils: 0.3.1
+
+ open@8.4.2:
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+
+ ora@8.2.0:
+ dependencies:
+ chalk: 5.6.2
+ cli-cursor: 5.0.0
+ cli-spinners: 2.9.2
+ is-interactive: 2.0.0
+ is-unicode-supported: 2.1.0
+ log-symbols: 6.0.0
+ stdin-discarder: 0.2.2
+ string-width: 7.2.0
+ strip-ansi: 7.2.0
+
+ oxlint@1.76.0:
+ optionalDependencies:
+ "@oxlint/binding-android-arm-eabi": 1.76.0
+ "@oxlint/binding-android-arm64": 1.76.0
+ "@oxlint/binding-darwin-arm64": 1.76.0
+ "@oxlint/binding-darwin-x64": 1.76.0
+ "@oxlint/binding-freebsd-x64": 1.76.0
+ "@oxlint/binding-linux-arm-gnueabihf": 1.76.0
+ "@oxlint/binding-linux-arm-musleabihf": 1.76.0
+ "@oxlint/binding-linux-arm64-gnu": 1.76.0
+ "@oxlint/binding-linux-arm64-musl": 1.76.0
+ "@oxlint/binding-linux-ppc64-gnu": 1.76.0
+ "@oxlint/binding-linux-riscv64-gnu": 1.76.0
+ "@oxlint/binding-linux-riscv64-musl": 1.76.0
+ "@oxlint/binding-linux-s390x-gnu": 1.76.0
+ "@oxlint/binding-linux-x64-gnu": 1.76.0
+ "@oxlint/binding-linux-x64-musl": 1.76.0
+ "@oxlint/binding-openharmony-arm64": 1.76.0
+ "@oxlint/binding-win32-arm64-msvc": 1.76.0
+ "@oxlint/binding-win32-ia32-msvc": 1.76.0
+ "@oxlint/binding-win32-x64-msvc": 1.76.0
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-locate@3.0.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-try@2.2.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-json@5.2.0:
+ dependencies:
+ "@babel/code-frame": 7.29.7
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parse-ms@4.0.0: {}
+
+ parseurl@1.3.3: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@3.0.0: {}
+
+ path-key@3.1.1: {}
+
+ path-key@4.0.0: {}
+
+ path-to-regexp@8.4.2: {}
+
+ pathe@2.0.3: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.2: {}
+
+ picomatch@4.0.5: {}
+
+ pkce-challenge@5.0.1: {}
+
+ pkg-up@3.1.0:
+ dependencies:
+ find-up: 3.0.0
+
+ postcss-selector-parser@7.1.4:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss@8.5.24:
+ dependencies:
+ nanoid: 3.3.16
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ powershell-utils@0.1.0: {}
+
+ prettier@3.9.6: {}
+
+ pretty-ms@9.3.0:
+ dependencies:
+ parse-ms: 4.0.0
+
+ prompts@2.4.2:
+ dependencies:
+ kleur: 3.0.3
+ sisteransi: 1.0.5
+
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
+ qs@6.15.3:
+ dependencies:
+ es-define-property: 1.0.1
+ side-channel: 1.1.1
+
+ queue-microtask@1.2.3: {}
+
+ range-parser@1.3.0: {}
+
+ raw-body@3.0.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.1
+ iconv-lite: 0.7.3
+ unpipe: 1.0.0
+
+ react-dom@19.2.8(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ scheduler: 0.27.0
+
+ react-is@19.2.8: {}
+
+ react-redux@9.3.0(@types/react@19.2.17)(react@19.2.8)(redux@5.0.1):
+ dependencies:
+ "@types/use-sync-external-store": 0.0.6
+ react: 19.2.8
+ use-sync-external-store: 1.6.0(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+ redux: 5.0.1
+
+ react-refresh@0.18.0: {}
+
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.8)
+ tslib: 2.8.1
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ react-remove-scroll@2.7.2(@types/react@19.2.17)(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@19.2.8)
+ react-style-singleton: 2.2.3(@types/react@19.2.17)(react@19.2.8)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@19.2.17)(react@19.2.8)
+ use-sidecar: 1.1.3(@types/react@19.2.17)(react@19.2.8)
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ react-resizable-panels@4.12.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ react-style-singleton@2.2.3(@types/react@19.2.17)(react@19.2.8):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 19.2.8
+ tslib: 2.8.1
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ react@19.2.8: {}
+
+ readdirp@5.0.0: {}
+
+ recast@0.23.12:
+ dependencies:
+ ast-types: 0.16.1
+ esprima: 4.0.1
+ source-map: 0.6.1
+ tiny-invariant: 1.3.3
+ tslib: 2.8.1
+
+ recharts@3.8.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react-is@19.2.8)(react@19.2.8)(redux@5.0.1):
+ dependencies:
+ "@reduxjs/toolkit": 2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.8)(redux@5.0.1))(react@19.2.8)
+ clsx: 2.1.1
+ decimal.js-light: 2.5.1
+ es-toolkit: 1.50.0
+ eventemitter3: 5.0.4
+ immer: 10.2.0
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ react-is: 19.2.8
+ react-redux: 9.3.0(@types/react@19.2.17)(react@19.2.8)(redux@5.0.1)
+ reselect: 5.1.1
+ tiny-invariant: 1.3.3
+ use-sync-external-store: 1.6.0(react@19.2.8)
+ victory-vendor: 37.3.6
+ transitivePeerDependencies:
+ - "@types/react"
+ - redux
+
+ redux-thunk@3.1.0(redux@5.0.1):
+ dependencies:
+ redux: 5.0.1
+
+ redux@5.0.1: {}
+
+ require-from-string@2.0.2: {}
+
+ reselect@5.1.1: {}
+
+ reselect@5.2.0: {}
+
+ resolve-from@4.0.0: {}
+
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ reusify@1.1.0: {}
+
+ rollup@4.62.3:
+ dependencies:
+ "@types/estree": 1.0.9
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi": 4.62.3
+ "@rollup/rollup-android-arm64": 4.62.3
+ "@rollup/rollup-darwin-arm64": 4.62.3
+ "@rollup/rollup-darwin-x64": 4.62.3
+ "@rollup/rollup-freebsd-arm64": 4.62.3
+ "@rollup/rollup-freebsd-x64": 4.62.3
+ "@rollup/rollup-linux-arm-gnueabihf": 4.62.3
+ "@rollup/rollup-linux-arm-musleabihf": 4.62.3
+ "@rollup/rollup-linux-arm64-gnu": 4.62.3
+ "@rollup/rollup-linux-arm64-musl": 4.62.3
+ "@rollup/rollup-linux-loong64-gnu": 4.62.3
+ "@rollup/rollup-linux-loong64-musl": 4.62.3
+ "@rollup/rollup-linux-ppc64-gnu": 4.62.3
+ "@rollup/rollup-linux-ppc64-musl": 4.62.3
+ "@rollup/rollup-linux-riscv64-gnu": 4.62.3
+ "@rollup/rollup-linux-riscv64-musl": 4.62.3
+ "@rollup/rollup-linux-s390x-gnu": 4.62.3
+ "@rollup/rollup-linux-x64-gnu": 4.62.3
+ "@rollup/rollup-linux-x64-musl": 4.62.3
+ "@rollup/rollup-openbsd-x64": 4.62.3
+ "@rollup/rollup-openharmony-arm64": 4.62.3
+ "@rollup/rollup-win32-arm64-msvc": 4.62.3
+ "@rollup/rollup-win32-ia32-msvc": 4.62.3
+ "@rollup/rollup-win32-x64-gnu": 4.62.3
+ "@rollup/rollup-win32-x64-msvc": 4.62.3
+ fsevents: 2.3.3
+
+ router@2.2.0:
+ dependencies:
+ debug: 4.4.3
+ depd: 2.0.0
+ is-promise: 4.0.0
+ parseurl: 1.3.3
+ path-to-regexp: 8.4.2
+ transitivePeerDependencies:
+ - supports-color
+
+ run-applescript@7.1.0: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safer-buffer@2.1.2: {}
+
+ scheduler@0.27.0: {}
+
+ semver@6.3.1: {}
+
+ semver@7.8.5: {}
+
+ send@1.2.1:
+ dependencies:
+ debug: 4.4.3
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 2.0.0
+ http-errors: 2.0.1
+ mime-types: 3.0.2
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.3.0
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ seroval-plugins@1.5.6(seroval@1.5.6):
+ dependencies:
+ seroval: 1.5.6
+
+ seroval@1.5.6: {}
+
+ serve-static@2.2.1:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 1.2.1
+ transitivePeerDependencies:
+ - supports-color
+
+ setprototypeof@1.2.0: {}
+
+ shadcn@4.16.0(typescript@5.9.3):
+ dependencies:
+ "@babel/core": 7.29.7
+ "@babel/parser": 7.29.7
+ "@babel/plugin-transform-typescript": 7.29.7(@babel/core@7.29.7)
+ "@babel/preset-typescript": 7.29.7(@babel/core@7.29.7)
+ "@dotenvx/dotenvx": 1.75.1
+ "@modelcontextprotocol/sdk": 1.30.0(zod@3.25.76)
+ "@types/validate-npm-package-name": 4.0.2
+ browserslist: 4.28.7
+ commander: 14.0.3
+ cosmiconfig: 9.0.2(typescript@5.9.3)
+ dedent: 1.7.2
+ deepmerge: 4.3.1
+ diff: 8.0.4
+ execa: 9.6.1
+ fast-glob: 3.3.3
+ fs-extra: 11.4.0
+ fuzzysort: 3.1.0
+ kleur: 4.1.5
+ open: 11.0.0
+ ora: 8.2.0
+ postcss: 8.5.24
+ postcss-selector-parser: 7.1.4
+ prompts: 2.4.2
+ recast: 0.23.12
+ stringify-object: 5.0.0
+ tailwind-merge: 3.6.0
+ ts-morph: 26.0.0
+ tsconfig-paths: 4.2.0
+ undici: 7.29.0
+ validate-npm-package-name: 7.0.2
+ zod: 3.25.76
+ zod-to-json-schema: 3.25.2(zod@3.25.76)
+ transitivePeerDependencies:
+ - "@cfworker/json-schema"
+ - babel-plugin-macros
+ - supports-color
+ - typescript
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ side-channel-list@1.0.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.1
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ signal-exit@4.1.0: {}
+
+ sisteransi@1.0.5: {}
+
+ sonner@2.0.7(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+
+ source-map-js@1.2.1: {}
+
+ source-map@0.6.1: {}
+
+ statuses@2.0.2: {}
+
+ stdin-discarder@0.2.2: {}
+
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.6.0
+ get-east-asian-width: 1.6.0
+ strip-ansi: 7.2.0
+
+ stringify-object@5.0.0:
+ dependencies:
+ get-own-enumerable-keys: 1.0.0
+ is-obj: 3.0.0
+ is-regexp: 3.1.0
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.2.0:
+ dependencies:
+ ansi-regex: 6.2.2
+
+ strip-bom@3.0.0: {}
+
+ strip-final-newline@2.0.0: {}
+
+ strip-final-newline@4.0.0: {}
+
+ systeminformation@5.33.1: {}
+
+ tailwind-merge@3.6.0: {}
+
+ tailwindcss@4.3.3: {}
+
+ tapable@2.3.3: {}
+
+ tiny-invariant@1.3.3: {}
+
+ tinyglobby@0.2.17:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.5)
+ picomatch: 4.0.5
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toidentifier@1.0.1: {}
+
+ ts-morph@26.0.0:
+ dependencies:
+ "@ts-morph/common": 0.27.0
+ code-block-writer: 13.0.3
+
+ tsconfig-paths@4.2.0:
+ dependencies:
+ json5: 2.2.3
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tslib@2.8.1: {}
+
+ tw-animate-css@1.4.0: {}
+
+ type-is@2.1.0:
+ dependencies:
+ content-type: 2.0.0
+ media-typer: 1.1.1
+ mime-types: 3.0.2
+
+ typescript@5.9.3: {}
+
+ undici-types@7.18.2: {}
+
+ undici@7.29.0: {}
+
+ unicorn-magic@0.3.0: {}
+
+ universalify@2.0.1: {}
+
+ unpipe@1.0.0: {}
+
+ unplugin@3.3.0(esbuild@0.28.1)(rollup@4.62.3)(vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)):
+ dependencies:
+ "@jridgewell/remapping": 2.3.5
+ picomatch: 4.0.5
+ webpack-virtual-modules: 0.6.2
+ optionalDependencies:
+ esbuild: 0.28.1
+ rollup: 4.62.3
+ vite: 7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0)
+
+ update-browserslist-db@1.2.3(browserslist@4.28.7):
+ dependencies:
+ browserslist: 4.28.7
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ use-callback-ref@1.3.3(@types/react@19.2.17)(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+ tslib: 2.8.1
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ use-sidecar@1.1.3(@types/react@19.2.17)(react@19.2.8):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 19.2.8
+ tslib: 2.8.1
+ optionalDependencies:
+ "@types/react": 19.2.17
+
+ use-sync-external-store@1.6.0(react@19.2.8):
+ dependencies:
+ react: 19.2.8
+
+ util-deprecate@1.0.2: {}
+
+ validate-npm-package-name@7.0.2: {}
+
+ vary@1.1.2: {}
+
+ vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ dependencies:
+ "@radix-ui/react-dialog": 1.1.23(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ react: 19.2.8
+ react-dom: 19.2.8(react@19.2.8)
+ transitivePeerDependencies:
+ - "@types/react"
+ - "@types/react-dom"
+
+ victory-vendor@37.3.6:
+ dependencies:
+ "@types/d3-array": 3.2.2
+ "@types/d3-ease": 3.0.2
+ "@types/d3-interpolate": 3.0.4
+ "@types/d3-scale": 4.0.9
+ "@types/d3-shape": 3.1.8
+ "@types/d3-time": 3.0.4
+ "@types/d3-timer": 3.0.2
+ d3-array: 3.2.4
+ d3-ease: 3.0.1
+ d3-interpolate: 3.0.1
+ d3-scale: 4.0.2
+ d3-shape: 3.2.0
+ d3-time: 3.1.0
+ d3-timer: 3.0.1
+
+ vite@7.3.6(@types/node@24.13.3)(jiti@2.7.0)(lightningcss@1.32.0)(yaml@2.9.0):
+ dependencies:
+ esbuild: 0.28.1
+ fdir: 6.5.0(picomatch@4.0.5)
+ picomatch: 4.0.5
+ postcss: 8.5.24
+ rollup: 4.62.3
+ tinyglobby: 0.2.17
+ optionalDependencies:
+ "@types/node": 24.13.3
+ fsevents: 2.3.3
+ jiti: 2.7.0
+ lightningcss: 1.32.0
+ yaml: 2.9.0
+
+ webpack-virtual-modules@0.6.2: {}
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ which@4.0.0:
+ dependencies:
+ isexe: 3.1.5
+
+ wrappy@1.0.2: {}
+
+ wsl-utils@0.3.1:
+ dependencies:
+ is-wsl: 3.1.1
+ powershell-utils: 0.1.0
+
+ yallist@3.1.1: {}
+
+ yaml@2.9.0: {}
+
+ yocto-spinner@1.2.2:
+ dependencies:
+ yoctocolors: 2.2.0
+
+ yoctocolors@2.2.0: {}
+
+ zod-to-json-schema@3.25.2(zod@3.25.76):
+ dependencies:
+ zod: 3.25.76
+
+ zod@3.25.76: {}
+
+ zod@4.4.3: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
new file mode 100644
index 0000000..a436e15
--- /dev/null
+++ b/pnpm-workspace.yaml
@@ -0,0 +1,12 @@
+packages:
+ - apps/*
+ - packages/*
+
+nodeLinker: hoisted
+
+overrides:
+ "@methanium/ui": "https://git.methanium.net/methanium/ui/releases/download/0.0.12/methanium-ui.tgz"
+ mtp: "https://git.methanium.net/methanium/mtp/releases/download/0.2.0-dev-a692bed/mtp-0.2.0.tgz"
+
+allowBuilds:
+ esbuild: true
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..ba6e321
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "allowImportingTsExtensions": true,
+ "jsx": "react-jsx",
+ "lib": ["DOM", "DOM.Iterable", "ES2023"],
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "noEmit": true,
+ "paths": {
+ "@methanium/template-mtp": ["./packages/mtp/index.ts"],
+ "mtp/raw": ["./apps/web/node_modules/.vite/mtp/mtp_wasm.d.ts"],
+ "mtp/type-map": ["./apps/web/node_modules/.vite/mtp/mtp_type_map.d.ts"]
+ },
+ "skipLibCheck": true,
+ "strict": true,
+ "target": "ES2023",
+ "types": ["node"],
+ "useDefineForClassFields": true
+ },
+ "include": ["apps/web/src", "apps/web/vite.config.ts", "packages/mtp"]
+}