From 1b486a770b5b233789ac50f77e8e0d4fb3e3d5b9 Mon Sep 17 00:00:00 2001 From: Michael Freeman Date: Wed, 26 Feb 2025 13:04:12 -0600 Subject: [PATCH] SSR WIP - not getting data back from checkers for api calls --- pkg/cloud/api/server.go | 23 - pkg/cloud/api/static_serve_container.go | 34 - pkg/cloud/api/static_serve_non_container.go | 10 - scripts/setup-deb-cloud.sh | 38 +- .../favicons/android-chrome-192x192.png | Bin .../favicons/android-chrome-512x512.png | Bin .../public}/favicons/apple-touch-icon.png | Bin .../public}/favicons/favicon-16x16.png | Bin .../public}/favicons/favicon-32x32.png | Bin .../public}/favicons/favicon.ico | Bin .../public}/favicons/site.webmanifest | 0 .../public}/serviceRadar.svg | 0 serviceradar-next/src/app/nodes/page.js | 34 + serviceradar-next/src/app/providers.js | 53 + .../service/[nodeid]/[servicename]/page.js | 72 + web/dist/index.html | 21 - web/index.html | 20 - web/package-lock.json | 3541 +---------------- web/package.json | 31 - web/postcss.config.js | 6 - .../favicons/android-chrome-192x192.png | Bin 33612 -> 0 bytes .../favicons/android-chrome-512x512.png | Bin 166723 -> 0 bytes web/public/favicons/apple-touch-icon.png | Bin 30598 -> 0 bytes web/public/favicons/favicon-16x16.png | Bin 573 -> 0 bytes web/public/favicons/favicon-32x32.png | Bin 1498 -> 0 bytes web/public/favicons/favicon.ico | Bin 15406 -> 0 bytes web/public/favicons/site.webmanifest | 1 - web/public/serviceRadar.svg | 28 - web/src/App.jsx | 41 - web/src/components/Dashboard.jsx | 60 - web/src/components/DuskDashboard.jsx | 171 - web/src/components/ExportButton.jsx | 137 - web/src/components/Navbar.jsx | 62 - web/src/components/NetworkStatus.jsx | 146 - web/src/components/NetworkSweepView.jsx | 348 -- web/src/components/NodeList.jsx | 399 -- web/src/components/NodeTimeline.jsx | 102 - web/src/components/SNMPDashboard.jsx | 286 -- web/src/components/ServiceDashboard.jsx | 283 -- web/src/components/ServiceSparkline.jsx | 125 - web/src/index.css | 4 - web/src/main.jsx | 10 - web/tailwind.config.js | 19 - web/vite.config.js | 11 - 44 files changed, 180 insertions(+), 5936 deletions(-) delete mode 100644 pkg/cloud/api/static_serve_container.go delete mode 100644 pkg/cloud/api/static_serve_non_container.go rename {web/dist => serviceradar-next/public}/favicons/android-chrome-192x192.png (100%) rename {web/dist => serviceradar-next/public}/favicons/android-chrome-512x512.png (100%) rename {web/dist => serviceradar-next/public}/favicons/apple-touch-icon.png (100%) rename {web/dist => serviceradar-next/public}/favicons/favicon-16x16.png (100%) rename {web/dist => serviceradar-next/public}/favicons/favicon-32x32.png (100%) rename {web/dist => serviceradar-next/public}/favicons/favicon.ico (100%) rename {web/dist => serviceradar-next/public}/favicons/site.webmanifest (100%) rename {web/dist => serviceradar-next/public}/serviceRadar.svg (100%) create mode 100644 serviceradar-next/src/app/nodes/page.js create mode 100644 serviceradar-next/src/app/providers.js create mode 100644 serviceradar-next/src/app/service/[nodeid]/[servicename]/page.js delete mode 100644 web/dist/index.html delete mode 100644 web/index.html delete mode 100644 web/package.json delete mode 100644 web/postcss.config.js delete mode 100644 web/public/favicons/android-chrome-192x192.png delete mode 100644 web/public/favicons/android-chrome-512x512.png delete mode 100644 web/public/favicons/apple-touch-icon.png delete mode 100644 web/public/favicons/favicon-16x16.png delete mode 100644 web/public/favicons/favicon-32x32.png delete mode 100644 web/public/favicons/favicon.ico delete mode 100644 web/public/favicons/site.webmanifest delete mode 100644 web/public/serviceRadar.svg delete mode 100644 web/src/App.jsx delete mode 100644 web/src/components/Dashboard.jsx delete mode 100644 web/src/components/DuskDashboard.jsx delete mode 100644 web/src/components/ExportButton.jsx delete mode 100644 web/src/components/Navbar.jsx delete mode 100644 web/src/components/NetworkStatus.jsx delete mode 100644 web/src/components/NetworkSweepView.jsx delete mode 100644 web/src/components/NodeList.jsx delete mode 100644 web/src/components/NodeTimeline.jsx delete mode 100644 web/src/components/SNMPDashboard.jsx delete mode 100644 web/src/components/ServiceDashboard.jsx delete mode 100644 web/src/components/ServiceSparkline.jsx delete mode 100644 web/src/index.css delete mode 100644 web/src/main.jsx delete mode 100644 web/tailwind.config.js delete mode 100644 web/vite.config.js diff --git a/pkg/cloud/api/server.go b/pkg/cloud/api/server.go index 63de1ca..2dadfa5 100644 --- a/pkg/cloud/api/server.go +++ b/pkg/cloud/api/server.go @@ -3,9 +3,7 @@ package api import ( - "embed" "encoding/json" - "io/fs" "log" "net/http" "sync" @@ -98,23 +96,6 @@ func WithDB(db db.Service) func(server *APIServer) { server.db = db } } - -//go:embed web/dist/* -var webContent embed.FS - -// setupStaticFileServing configures static file serving for the embedded web files. -func (s *APIServer) setupStaticFileServing() { - // Setting up static file serving using the embedded FS - // This is used for non-containerized builds - fsys, err := fs.Sub(webContent, "web/dist") - if err != nil { - log.Printf("Error setting up static file serving: %v", err) - return - } - - s.router.PathPrefix("/").Handler(http.FileServer(http.FS(fsys))) -} - func (s *APIServer) setupRoutes() { // Create a middleware chain middlewareChain := func(next http.Handler) http.Handler { @@ -142,10 +123,6 @@ func (s *APIServer) setupRoutes() { // SNMP endpoints s.router.HandleFunc("/api/nodes/{id}/snmp", s.getSNMPData).Methods("GET") - - // Configure static file serving based on build tags - // This is managed via build tags in a separate file - s.configureStaticServing() } // getSNMPData retrieves SNMP data for a specific node. diff --git a/pkg/cloud/api/static_serve_container.go b/pkg/cloud/api/static_serve_container.go deleted file mode 100644 index 74bf034..0000000 --- a/pkg/cloud/api/static_serve_container.go +++ /dev/null @@ -1,34 +0,0 @@ -//go:build containers -// +build containers - -package api - -import ( - "net/http" - "os" - "path/filepath" - "strings" - - "github.com/carverauto/serviceradar/pkg/cloud/api/web" -) - -// configureStaticServing sets up static file serving for container mode -func (s *APIServer) configureStaticServing() { - staticFilesPath := web.GetStaticFilesPath() - fileServer := http.FileServer(http.Dir(staticFilesPath)) - - s.router.PathPrefix("/").HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - // Check if file exists - path := filepath.Join(staticFilesPath, r.URL.Path) - _, err := os.Stat(path) - - // If file doesn't exist or is a directory (and not root), serve index.html - if os.IsNotExist(err) || (r.URL.Path != "/" && strings.HasSuffix(r.URL.Path, "/")) { - http.ServeFile(w, r, filepath.Join(staticFilesPath, "index.html")) - return - } - - // Otherwise serve the requested file - fileServer.ServeHTTP(w, r) - }) -} diff --git a/pkg/cloud/api/static_serve_non_container.go b/pkg/cloud/api/static_serve_non_container.go deleted file mode 100644 index 44e9b1a..0000000 --- a/pkg/cloud/api/static_serve_non_container.go +++ /dev/null @@ -1,10 +0,0 @@ -//go:build !containers -// +build !containers - -package api - -// configureStaticServing sets up static file serving for non-container mode. -func (s *APIServer) configureStaticServing() { - // Use embedded FS for regular builds - s.setupStaticFileServing() -} diff --git a/scripts/setup-deb-cloud.sh b/scripts/setup-deb-cloud.sh index e80f6b7..bfcbfa5 100755 --- a/scripts/setup-deb-cloud.sh +++ b/scripts/setup-deb-cloud.sh @@ -4,7 +4,7 @@ set -e # Exit on any error echo "Setting up package structure..." -VERSION=${VERSION:-1.0.19} +VERSION=${VERSION:-1.0.20} BUILD_TAGS=${BUILD_TAGS:-""} # Create package directory structure @@ -13,28 +13,28 @@ mkdir -p "${PKG_ROOT}/DEBIAN" mkdir -p "${PKG_ROOT}/usr/local/bin" mkdir -p "${PKG_ROOT}/etc/serviceradar" mkdir -p "${PKG_ROOT}/lib/systemd/system" -mkdir -p "${PKG_ROOT}/usr/local/share/serviceradar-cloud/web" +#mkdir -p "${PKG_ROOT}/usr/local/share/serviceradar-cloud/web" -echo "Building web interface..." +#echo "Building web interface..." # Build web interface if not already built -if [ ! -d "web/dist" ]; then - cd ./web - npm install - npm run build - cd .. -fi +#if [ ! -d "web/dist" ]; then +# cd ./web +# npm install +# npm run build +# cd .. +#fi # Create a directory for the embedded content -mkdir -p pkg/cloud/api/web -cp -r web/dist pkg/cloud/api/web/ +#mkdir -p pkg/cloud/api/web +#cp -r web/dist pkg/cloud/api/web/ # Only copy web assets to package directory for container builds # For non-container builds, they're embedded in the binary -if [[ "$BUILD_TAGS" == *"containers"* ]]; then - cp -r web/dist "${PKG_ROOT}/usr/local/share/serviceradar-cloud/web/" - echo "Copied web assets for container build" -fi +#if [[ "$BUILD_TAGS" == *"containers"* ]]; then +# cp -r web/dist "${PKG_ROOT}/usr/local/share/serviceradar-cloud/web/" +# echo "Copied web assets for container build" +#fi echo "Building Go binary..." @@ -153,10 +153,10 @@ chown -R serviceradar:serviceradar /var/lib/serviceradar chmod 755 /var/lib/serviceradar # Set permissions for web assets -if [ -d "/usr/local/share/serviceradar-cloud/web" ]; then - chown -R serviceradar:serviceradar /usr/local/share/serviceradar-cloud - chmod -R 755 /usr/local/share/serviceradar-cloud -fi +#if [ -d "/usr/local/share/serviceradar-cloud/web" ]; then +# chown -R serviceradar:serviceradar /usr/local/share/serviceradar-cloud +# chmod -R 755 /usr/local/share/serviceradar-cloud +#fi # Enable and start service systemctl daemon-reload diff --git a/web/dist/favicons/android-chrome-192x192.png b/serviceradar-next/public/favicons/android-chrome-192x192.png similarity index 100% rename from web/dist/favicons/android-chrome-192x192.png rename to serviceradar-next/public/favicons/android-chrome-192x192.png diff --git a/web/dist/favicons/android-chrome-512x512.png b/serviceradar-next/public/favicons/android-chrome-512x512.png similarity index 100% rename from web/dist/favicons/android-chrome-512x512.png rename to serviceradar-next/public/favicons/android-chrome-512x512.png diff --git a/web/dist/favicons/apple-touch-icon.png b/serviceradar-next/public/favicons/apple-touch-icon.png similarity index 100% rename from web/dist/favicons/apple-touch-icon.png rename to serviceradar-next/public/favicons/apple-touch-icon.png diff --git a/web/dist/favicons/favicon-16x16.png b/serviceradar-next/public/favicons/favicon-16x16.png similarity index 100% rename from web/dist/favicons/favicon-16x16.png rename to serviceradar-next/public/favicons/favicon-16x16.png diff --git a/web/dist/favicons/favicon-32x32.png b/serviceradar-next/public/favicons/favicon-32x32.png similarity index 100% rename from web/dist/favicons/favicon-32x32.png rename to serviceradar-next/public/favicons/favicon-32x32.png diff --git a/web/dist/favicons/favicon.ico b/serviceradar-next/public/favicons/favicon.ico similarity index 100% rename from web/dist/favicons/favicon.ico rename to serviceradar-next/public/favicons/favicon.ico diff --git a/web/dist/favicons/site.webmanifest b/serviceradar-next/public/favicons/site.webmanifest similarity index 100% rename from web/dist/favicons/site.webmanifest rename to serviceradar-next/public/favicons/site.webmanifest diff --git a/web/dist/serviceRadar.svg b/serviceradar-next/public/serviceRadar.svg similarity index 100% rename from web/dist/serviceRadar.svg rename to serviceradar-next/public/serviceRadar.svg diff --git a/serviceradar-next/src/app/nodes/page.js b/serviceradar-next/src/app/nodes/page.js new file mode 100644 index 0000000..7333869 --- /dev/null +++ b/serviceradar-next/src/app/nodes/page.js @@ -0,0 +1,34 @@ +import { Suspense } from 'react'; +import NodeList from '../../components/NodeList'; + +export const revalidate = 10; // Revalidate this page every 10 seconds + +// Async function to fetch data on the server +async function fetchNodes() { + try { + // When running on the server, use the full backend URL + const backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL || 'http://localhost:8090'; + const response = await fetch(`${backendUrl}/api/nodes`); + + if (!response.ok) { + throw new Error(`Nodes API request failed: ${response.status}`); + } + + return await response.json(); + } catch (error) { + console.error('Error fetching nodes:', error); + return []; + } +} + +export default async function NodesPage() { + const initialNodes = await fetchNodes(); + + return ( +
+ Loading nodes...
}> + + + + ); +} \ No newline at end of file diff --git a/serviceradar-next/src/app/providers.js b/serviceradar-next/src/app/providers.js new file mode 100644 index 0000000..20497a9 --- /dev/null +++ b/serviceradar-next/src/app/providers.js @@ -0,0 +1,53 @@ +'use client'; + +import { createContext, useState, useEffect, useContext } from 'react'; +import Navbar from '../components/Navbar'; + +// Create context for theme management +export const ThemeContext = createContext({ + darkMode: false, + setDarkMode: () => {}, +}); + +export function Providers({ children }) { + const [darkMode, setDarkMode] = useState(false); + const [mounted, setMounted] = useState(false); + + // Effect for initial load of dark mode preference + useEffect(() => { + const savedMode = localStorage.getItem('darkMode'); + setDarkMode(savedMode === 'true'); + setMounted(true); + }, []); + + // Effect to save dark mode preference when it changes + useEffect(() => { + if (mounted) { + localStorage.setItem('darkMode', darkMode); + document.documentElement.classList.toggle('dark', darkMode); + } + }, [darkMode, mounted]); + + // Prevent flash of incorrect theme + if (!mounted) { + return null; + } + + return ( + +
+
+ +
+ {children} +
+
+
+
+ ); +} + +// Custom hook to use the theme context +export function useTheme() { + return useContext(ThemeContext); +} \ No newline at end of file diff --git a/serviceradar-next/src/app/service/[nodeid]/[servicename]/page.js b/serviceradar-next/src/app/service/[nodeid]/[servicename]/page.js new file mode 100644 index 0000000..af91967 --- /dev/null +++ b/serviceradar-next/src/app/service/[nodeid]/[servicename]/page.js @@ -0,0 +1,72 @@ +import { Suspense } from 'react'; +import ServiceDashboard from '../../../../components/ServiceDashboard'; + +export const revalidate = 10; // Revalidate this page every 10 seconds + +// Async function to fetch data on the server +async function fetchServiceData(nodeId, serviceName) { + try { + // When running on the server, use the full backend URL + const backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL || 'http://localhost:8090'; + + // Fetch nodes list + const nodesResponse = await fetch(`${backendUrl}/api/nodes`); + if (!nodesResponse.ok) { + throw new Error(`Nodes API request failed: ${nodesResponse.status}`); + } + const nodes = await nodesResponse.json(); + + // Find the specific node + const node = nodes.find((n) => n.node_id === nodeId); + if (!node) { + return { error: 'Node not found' }; + } + + // Find the specific service + const service = node.services?.find((s) => s.name === serviceName); + if (!service) { + return { error: 'Service not found' }; + } + + // Fetch metrics data + try { + const metricsResponse = await fetch(`${backendUrl}/api/nodes/${nodeId}/metrics`); + if (!metricsResponse.ok) { + throw new Error(`Metrics API request failed: ${metricsResponse.status}`); + } + + const metrics = await metricsResponse.json(); + const serviceMetrics = metrics.filter( + (m) => m.service_name === serviceName + ); + + return { service, metrics: serviceMetrics }; + } catch (metricsError) { + console.error('Error fetching metrics data:', metricsError); + // Don't fail the whole request if metrics fail + return { service, metrics: [] }; + } + } catch (err) { + console.error('Error fetching data:', err); + return { error: err.message }; + } +} + +export default async function ServicePage({ params }) { + const { nodeId, serviceName } = params; + const initialData = await fetchServiceData(nodeId, serviceName); + + return ( +
+ Loading service data...
}> + + + + ); +} \ No newline at end of file diff --git a/web/dist/index.html b/web/dist/index.html deleted file mode 100644 index 0c9ab4e..0000000 --- a/web/dist/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - ServiceRadar - - - - - - - - - - - -
- - \ No newline at end of file diff --git a/web/index.html b/web/index.html deleted file mode 100644 index 9747c9c..0000000 --- a/web/index.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - ServiceRadar - - - - - - - - - -
- - - \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json index 7a2a540..29993b6 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,3543 +1,6 @@ { - "name": "serviceradar-web", - "version": "1.0.19", + "name": "web", "lockfileVersion": 3, "requires": true, - "packages": { - "": { - "name": "serviceradar-web", - "version": "1.0.19", - "dependencies": { - "@radix-ui/react-navigation-menu": "^1.1.4", - "@radix-ui/react-slot": "^1.0.2", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", - "lucide-react": "^0.263.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.21.1", - "recharts": "^2.10.3", - "tailwindcss": "^3.4.1", - "tailwindcss-animate": "^1.0.7", - "xlsx": "^0.18.5" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.3.4", - "autoprefixer": "^10.4.20", - "postcss": "^8.5.1", - "vite": "^6.0.11" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.8.tgz", - "integrity": "sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.8", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.7", - "@babel/parser": "^7.26.8", - "@babel/template": "^7.26.8", - "@babel/traverse": "^7.26.8", - "@babel/types": "^7.26.8", - "@types/gensync": "^1.0.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.8.tgz", - "integrity": "sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.26.8", - "@babel/types": "^7.26.8", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", - "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz", - "integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.26.8" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.8.tgz", - "integrity": "sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.8", - "@babel/types": "^7.26.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.8.tgz", - "integrity": "sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.8", - "@babel/parser": "^7.26.8", - "@babel/template": "^7.26.8", - "@babel/types": "^7.26.8", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz", - "integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", - "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==" - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz", - "integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", - "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz", - "integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.5.tgz", - "integrity": "sha512-myMHHQUZ3ZLTi8W381/Vu43Ia0NqakkQZ2vzynMmTUtQQ9kNkjzhOwkZC9TAM5R07OZUVIQyHC06f/9JZJpvvA==", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-use-layout-effect": "1.1.0", - "@radix-ui/react-use-previous": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.2" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", - "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz", - "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==", - "dependencies": { - "@radix-ui/react-slot": "1.1.2" - }, - "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 - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz", - "integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", - "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz", - "integrity": "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.2" - }, - "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 - } - } - }, - "node_modules/@remix-run/router": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.22.0.tgz", - "integrity": "sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz", - "integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz", - "integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz", - "integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz", - "integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz", - "integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz", - "integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz", - "integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz", - "integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz", - "integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz", - "integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz", - "integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz", - "integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz", - "integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz", - "integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz", - "integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz", - "integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz", - "integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz", - "integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz", - "integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@types/gensync": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.4.tgz", - "integrity": "sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==", - "dev": true - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", - "dev": true, - "dependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/adler-32": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", - "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001699", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz", - "integrity": "sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cfb": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", - "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", - "dependencies": { - "adler-32": "~1.3.0", - "crc-32": "~1.2.0" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/codepage": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", - "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.99", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.99.tgz", - "integrity": "sha512-77c/+fCyL2U+aOyqfIFi89wYLBeSTCs55xCZL0oFH0KjqsvSvyh6AdQ+UIl1vgpnQQE6g+/KK8hOIupH6VwPtg==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/fast-equals": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz", - "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/frac": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", - "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.263.1", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.263.1.tgz", - "integrity": "sha512-keqxAx97PlaEN89PXZ6ki1N8nRjGWtDa4021GFYLNj0RgruM5odbpl8GHTExj0hhPq3sF6Up0gnxt6TSHu+ovw==", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.29.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.29.0.tgz", - "integrity": "sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==", - "dependencies": { - "@remix-run/router": "1.22.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.29.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.29.0.tgz", - "integrity": "sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==", - "dependencies": { - "@remix-run/router": "1.22.0", - "react-router": "6.29.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-smooth": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", - "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "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" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recharts": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.1.tgz", - "integrity": "sha512-v8PUTUlyiDe56qUj82w/EDVuzEFXwEHp9/xOowGAZwfLjB9uAy3GllQVIYMWF6nU+qibx85WF75zD7AjqoT54Q==", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.4", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.34.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz", - "integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.6", - "@rollup/rollup-android-arm64": "4.34.6", - "@rollup/rollup-darwin-arm64": "4.34.6", - "@rollup/rollup-darwin-x64": "4.34.6", - "@rollup/rollup-freebsd-arm64": "4.34.6", - "@rollup/rollup-freebsd-x64": "4.34.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.6", - "@rollup/rollup-linux-arm-musleabihf": "4.34.6", - "@rollup/rollup-linux-arm64-gnu": "4.34.6", - "@rollup/rollup-linux-arm64-musl": "4.34.6", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.6", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.6", - "@rollup/rollup-linux-riscv64-gnu": "4.34.6", - "@rollup/rollup-linux-s390x-gnu": "4.34.6", - "@rollup/rollup-linux-x64-gnu": "4.34.6", - "@rollup/rollup-linux-x64-musl": "4.34.6", - "@rollup/rollup-win32-arm64-msvc": "4.34.6", - "@rollup/rollup-win32-ia32-msvc": "4.34.6", - "@rollup/rollup-win32-x64-msvc": "4.34.6", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssf": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", - "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", - "dependencies": { - "frac": "~1.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.17", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", - "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.6", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/vite": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.0.tgz", - "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.1", - "rollup": "^4.30.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "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 - } - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wmf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", - "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/word": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", - "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/xlsx": { - "version": "0.18.5", - "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", - "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", - "dependencies": { - "adler-32": "~1.3.0", - "cfb": "~1.2.1", - "codepage": "~1.15.0", - "crc-32": "~1.2.1", - "ssf": "~0.11.2", - "wmf": "~1.0.1", - "word": "~0.3.0" - }, - "bin": { - "xlsx": "bin/xlsx.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - } - } + "packages": {} } diff --git a/web/package.json b/web/package.json deleted file mode 100644 index fe5a09f..0000000 --- a/web/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "serviceradar-web", - "version": "1.0.19", - "private": true, - "type": "module", - "dependencies": { - "@radix-ui/react-navigation-menu": "^1.1.4", - "@radix-ui/react-slot": "^1.0.2", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", - "lucide-react": "^0.263.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.21.1", - "recharts": "^2.10.3", - "tailwindcss": "^3.4.1", - "tailwindcss-animate": "^1.0.7", - "xlsx": "^0.18.5" - }, - "scripts": { - "dev": "vite", - "build": "vite build", - "serve": "vite preview" - }, - "devDependencies": { - "@vitejs/plugin-react": "^4.3.4", - "autoprefixer": "^10.4.20", - "postcss": "^8.5.1", - "vite": "^6.0.11" - } -} diff --git a/web/postcss.config.js b/web/postcss.config.js deleted file mode 100644 index 52012d2..0000000 --- a/web/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - } -} \ No newline at end of file diff --git a/web/public/favicons/android-chrome-192x192.png b/web/public/favicons/android-chrome-192x192.png deleted file mode 100644 index 0c47a63a4611e03656a451dd327ceebb70db2a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33612 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 WN6lZ?g;fiH`{`&JXjH4&MgD(`bti=Y diff --git a/web/public/favicons/apple-touch-icon.png b/web/public/favicons/apple-touch-icon.png deleted file mode 100644 index 94b071f18abcb5fdb1fb0d578452da7eca2f848c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30598 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 A!T>oyh(&qY(C_Emd&bK!EW5J1ENM46 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 RC*1clM;OQdoBu~<;J=DbYNY@G diff --git a/web/public/favicons/site.webmanifest b/web/public/favicons/site.webmanifest deleted file mode 100644 index 0d92a25..0000000 --- a/web/public/favicons/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"ServiceRadar","short_name":"SR","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/web/public/serviceRadar.svg b/web/public/serviceRadar.svg deleted file mode 100644 index 36d8e8a..0000000 --- a/web/public/serviceRadar.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/web/src/App.jsx b/web/src/App.jsx deleted file mode 100644 index 478e755..0000000 --- a/web/src/App.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import React, {useEffect, useState} from 'react'; -import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; -import Navbar from './components/Navbar'; -import Dashboard from './components/Dashboard'; -import NodeList from './components/NodeList'; -import ServiceDashboard from './components/ServiceDashboard'; - -function App() { - const [darkMode, setDarkMode] = useState(false); - - // remember user preference in localStorage - useEffect(() => { - const savedMode = localStorage.getItem('darkMode'); - if (savedMode) { - setDarkMode(savedMode === 'true'); - } - }, []) - - useEffect(() => { - localStorage.setItem('darkMode', darkMode); - }, [darkMode]) - - return ( -
- -
- -
- - } /> - } /> - } /> - -
-
-
-
- ); - } - -export default App; \ No newline at end of file diff --git a/web/src/components/Dashboard.jsx b/web/src/components/Dashboard.jsx deleted file mode 100644 index 512cbac..0000000 --- a/web/src/components/Dashboard.jsx +++ /dev/null @@ -1,60 +0,0 @@ -// src/components/Dashboard.jsx -import React, { useState, useEffect } from 'react'; - -function Dashboard() { - const [systemStatus, setSystemStatus] = useState(null); - - useEffect(() => { - const fetchStatus = async () => { - try { - const response = await fetch('/api/status'); - const data = await response.json(); - setSystemStatus(data); - } catch (error) { - console.error('Error fetching status:', error); - } - }; - - fetchStatus(); - const interval = setInterval(fetchStatus, 10000); - return () => clearInterval(interval); - }, []); - - return ( -
- {/* Card 1 */} -
-

- Total Nodes -

-

- {systemStatus?.total_nodes || 0} -

-
- - {/* Card 2 */} -
-

- Healthy Nodes -

-

- {systemStatus?.healthy_nodes || 0} -

-
- - {/* Card 3 */} -
-

- Last Update -

-

- {systemStatus?.last_update - ? new Date(systemStatus.last_update).toLocaleTimeString() - : 'N/A'} -

-
-
- ); -} - -export default Dashboard; diff --git a/web/src/components/DuskDashboard.jsx b/web/src/components/DuskDashboard.jsx deleted file mode 100644 index 140c0ed..0000000 --- a/web/src/components/DuskDashboard.jsx +++ /dev/null @@ -1,171 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { - LineChart, - Line, - XAxis, - YAxis, - CartesianGrid, - Tooltip, - Legend, - ResponsiveContainer, -} from 'recharts'; - -const DuskDashboard = () => { - const [nodeStatus, setNodeStatus] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - const [blockHistory, setBlockHistory] = useState([]); - - useEffect(() => { - const fetchData = async () => { - try { - // Fetch nodes list - const nodesResponse = await fetch('/api/nodes'); - if (!nodesResponse.ok) throw new Error('Failed to fetch nodes'); - const nodes = await nodesResponse.json(); - - console.log('Fetched nodes:', nodes); - - // Find the Dusk node - const duskNode = nodes.find((node) => - node.services?.some((service) => service.name === 'dusk') - ); - - if (!duskNode) { - throw new Error('No Dusk node found'); - } - - console.log('Found Dusk node:', duskNode); - - // Get the Dusk service - const duskService = duskNode.services.find((s) => s.name === 'dusk'); - console.log('Dusk service:', duskService); - - setNodeStatus(duskService); - - // Try to parse block history from details - if (duskService?.details?.history) { - setBlockHistory(duskService.details.history); - } - - setLoading(false); - } catch (err) { - console.error('Error fetching data:', err); - setError(err.message); - setLoading(false); - } - }; - - fetchData(); - const interval = setInterval(fetchData, 10000); - return () => clearInterval(interval); - }, []); - - if (loading) { - return ( -
-
- Loading... -
-
- ); - } - - if (error) { - return ( -
-
- {error} -
-
- ); - } - - const details = nodeStatus?.details || {}; - console.log('Node details:', details); - - return ( -
-
- {/* Card 1: Node Status */} -
-

- Node Status -

-
- {nodeStatus?.available ? 'Online' : 'Offline'} -
-
- - {/* Card 2: Current Height */} -
-

- Current Height -

-
- {details.height || 'N/A'} -
-
- - {/* Card 3: Latest Hash */} -
-

- Latest Hash -

-
- {details.hash || 'N/A'} -
-
-
- - {/* Block History Chart */} - {blockHistory.length > 0 && ( -
-

- Block Height History -

-
- - - - new Date(ts).toLocaleTimeString()} - // For dark mode, consider override. Recharts doesn't read tailwind classes directly. - /> - - new Date(ts).toLocaleString()} - formatter={(value, name) => [ - value, - name === 'height' ? 'Block Height' : name, - ]} - /> - - - - -
-
- )} -
- ); -}; - -export default DuskDashboard; diff --git a/web/src/components/ExportButton.jsx b/web/src/components/ExportButton.jsx deleted file mode 100644 index 6391d1c..0000000 --- a/web/src/components/ExportButton.jsx +++ /dev/null @@ -1,137 +0,0 @@ -import React from 'react'; -import * as XLSX from 'xlsx'; -import { Download } from 'lucide-react'; - -const ExportButton = ({ sweepDetails }) => { - const handleExport = () => { - // Create workbook - const wb = XLSX.utils.book_new(); - - // Create summary sheet - const summaryData = [ - { - Network: sweepDetails.network, - 'Total Hosts': sweepDetails.total_hosts, - 'Available Hosts': sweepDetails.available_hosts, - 'Last Sweep': new Date(sweepDetails.last_sweep * 1000).toLocaleString(), - 'Available %': - ( - (sweepDetails.available_hosts / sweepDetails.total_hosts) * - 100 - ).toFixed(2) + '%', - }, - ]; - const summarySheet = XLSX.utils.json_to_sheet(summaryData); - XLSX.utils.book_append_sheet(wb, summarySheet, 'Summary'); - - // Create ports sheet - if (sweepDetails.ports && sweepDetails.ports.length > 0) { - const portsData = sweepDetails.ports.map((port) => ({ - Port: port.port, - 'Hosts Available': port.available, - 'Response Rate': - ((port.available / sweepDetails.total_hosts) * 100).toFixed(2) + '%', - })); - const portsSheet = XLSX.utils.json_to_sheet(portsData); - XLSX.utils.book_append_sheet(wb, portsSheet, 'Ports'); - } - - // Create hosts sheet with sorted data - if (sweepDetails.hosts && sweepDetails.hosts.length > 0) { - const hostsData = sweepDetails.hosts.map((host) => { - const openPorts = - host.port_results - ?.filter((port) => port.available) - .map((port) => port.port) - .join(', ') || ''; - - let icmpStatus = 'N/A'; - let responseTime = 'N/A'; - - // Handle ICMP status and response time - if (host.icmp_status) { - // Format ICMP status - icmpStatus = - host.icmp_status.packet_loss === 0 - ? 'Responding' - : `${host.icmp_status.packet_loss}% Packet Loss`; - - // Format response time if available - if (typeof host.icmp_status.round_trip === 'number') { - responseTime = - (host.icmp_status.round_trip / 1000000).toFixed(2) + 'ms'; - } - } - - return { - Host: host.host, - Status: host.available ? 'Online' : 'Offline', - 'Open Ports': openPorts, - 'ICMP Status': icmpStatus, - 'Response Time': responseTime, - 'First Seen': new Date(host.first_seen).toLocaleString(), - 'Last Seen': new Date(host.last_seen).toLocaleString(), - }; - }); - - // Sort hosts by IP address - hostsData.sort((a, b) => { - const aMatch = a.Host.match(/(\d+)$/); - const bMatch = b.Host.match(/(\d+)$/); - if (aMatch && bMatch) { - return parseInt(aMatch[1]) - parseInt(bMatch[1]); - } - return a.Host.localeCompare(b.Host); - }); - - const hostsSheet = XLSX.utils.json_to_sheet(hostsData); - XLSX.utils.book_append_sheet(wb, hostsSheet, 'Hosts'); - } - - // Auto-size columns for all sheets - const sheets = ['Summary', 'Ports', 'Hosts']; - sheets.forEach((sheet) => { - if (wb.Sheets[sheet]) { - const worksheet = wb.Sheets[sheet]; - const range = XLSX.utils.decode_range(worksheet['!ref']); - - for (let C = range.s.c; C <= range.e.c; ++C) { - let max_width = 0; - - for (let R = range.s.r; R <= range.e.r; ++R) { - const cell_address = { c: C, r: R }; - const cell_ref = XLSX.utils.encode_cell(cell_address); - - if (worksheet[cell_ref]) { - const value = worksheet[cell_ref].v.toString(); - max_width = Math.max(max_width, value.length); - } - } - - worksheet['!cols'] = worksheet['!cols'] || []; - worksheet['!cols'][C] = { wch: max_width + 2 }; - } - } - }); - - // Generate timestamp for filename - const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5); - - // Save the file - XLSX.writeFile(wb, `network-sweep-${timestamp}.xlsx`); - }; - - return ( - - ); -}; - -export default ExportButton; diff --git a/web/src/components/Navbar.jsx b/web/src/components/Navbar.jsx deleted file mode 100644 index 05953db..0000000 --- a/web/src/components/Navbar.jsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; -import { Link } from 'react-router-dom'; -import logo from '../../public/serviceRadar.svg'; -// Import the Sun/Moon icons from lucide-react -import { Sun, Moon } from 'lucide-react'; - -function Navbar({ darkMode, setDarkMode }) { - const handleToggleDarkMode = () => { - setDarkMode(!darkMode); - }; - - return ( - - ); -} - -export default Navbar; diff --git a/web/src/components/NetworkStatus.jsx b/web/src/components/NetworkStatus.jsx deleted file mode 100644 index a5c4bb9..0000000 --- a/web/src/components/NetworkStatus.jsx +++ /dev/null @@ -1,146 +0,0 @@ -import React from 'react'; - -// Helper functions for formatting -const formatResponseTime = (time) => { - if (!time && time !== 0) return 'N/A'; - return `${(time / 1000000).toFixed(2)}ms`; -}; - -const formatPacketLoss = (loss) => { - if (typeof loss !== 'number') return 'N/A'; - return `${loss.toFixed(1)}%`; -}; - -// Individual ping status component -const PingStatus = ({ details }) => { - const getPingDetails = () => { - try { - return typeof details === 'string' ? JSON.parse(details) : details; - } catch (e) { - console.error('Error parsing ping details:', e); - return null; - } - }; - - const pingData = getPingDetails(); - - if (!pingData) { - return ( -
- No ping data available -
- ); - } - - return ( -
-
Response Time:
-
- {formatResponseTime(pingData.response_time)} -
- -
Packet Loss:
-
- {formatPacketLoss(pingData.packet_loss)} -
- -
Status:
-
- {pingData.available ? 'Available' : 'Unavailable'} -
-
- ); -}; - -// Summary component for multiple hosts -const ICMPSummary = ({ hosts }) => { - if (!Array.isArray(hosts) || hosts.length === 0) { - return ( -
- No ICMP data available -
- ); - } - - const respondingHosts = hosts.filter((h) => h.available).length; - const totalResponseTime = hosts.reduce((sum, host) => { - if (host.available && host.response_time) { - return sum + host.response_time; - } - return sum; - }, 0); - const avgResponseTime = respondingHosts > 0 ? totalResponseTime / respondingHosts : 0; - - return ( -
-
-
ICMP Responding:
-
{respondingHosts} hosts
- -
- Average Response Time: -
-
- {formatResponseTime(avgResponseTime)} -
-
-
- ); -}; - -// Network sweep ICMP summary -const NetworkSweepICMP = ({ sweepData }) => { - if (!sweepData || !sweepData.hosts) { - return ( -
- No sweep data available -
- ); - } - - const hosts = sweepData.hosts.filter((host) => host.icmp_status); - const respondingHosts = hosts.filter((host) => host.icmp_status.available).length; - - let avgResponseTime = 0; - const respondingHostsWithTime = hosts.filter((host) => { - return host.icmp_status.available && host.icmp_status.round_trip; - }); - - if (respondingHostsWithTime.length > 0) { - const totalTime = respondingHostsWithTime.reduce((sum, host) => { - return sum + (host.icmp_status.round_trip || 0); - }, 0); - avgResponseTime = totalTime / respondingHostsWithTime.length; - } - - return ( -
-

- ICMP Status Summary -

-
-
-
- ICMP Responding: -
-
{respondingHosts} hosts
- -
- Average Response Time: -
-
- {formatResponseTime(avgResponseTime)} -
-
-
-
- ); -}; - -export { PingStatus, ICMPSummary, NetworkSweepICMP }; diff --git a/web/src/components/NetworkSweepView.jsx b/web/src/components/NetworkSweepView.jsx deleted file mode 100644 index e1a96fe..0000000 --- a/web/src/components/NetworkSweepView.jsx +++ /dev/null @@ -1,348 +0,0 @@ -import React, { useState } from 'react'; -import ExportButton from './ExportButton'; - -const compareIPAddresses = (ip1, ip2) => { - // Split IPs into their octets and convert to numbers - const ip1Parts = ip1.split('.').map(Number); - const ip2Parts = ip2.split('.').map(Number); - - // Compare each octet - for (let i = 0; i < 4; i++) { - if (ip1Parts[i] !== ip2Parts[i]) { - return ip1Parts[i] - ip2Parts[i]; - } - } - return 0; -}; - -// Host details subcomponent with ICMP and port results -const HostDetailsView = ({ host }) => { - const formatResponseTime = (ns) => { - if (!ns || ns === 0) return 'N/A'; - const ms = ns / 1000000; // Convert nanoseconds to milliseconds - return `${ms.toFixed(2)}ms`; - }; - - return ( -
-
-

- {host.host} -

- - {host.available ? 'Online' : 'Offline'} - -
- - {/* ICMP Status Section */} - {host.icmp_status && ( -
-
- ICMP Status -
-
-
- - Response Time: - - - {formatResponseTime(host.icmp_status.round_trip)} - -
-
- - Packet Loss: - - - {host.icmp_status.packet_loss}% - -
-
-
- )} - - {/* Port Results */} - {host.port_results?.length > 0 && ( -
-
- Open Ports -
-
- {host.port_results - .filter((port) => port.available) - .map((port) => ( -
- - Port {port.port} - - {port.service && ( - - ({port.service}) - - )} -
- ))} -
-
- )} - -
-
First seen: {new Date(host.first_seen).toLocaleString()}
-
Last seen: {new Date(host.last_seen).toLocaleString()}
-
-
- ); -}; - -const NetworkSweepView = ({ nodeId, service, standalone = false }) => { - const [viewMode, setViewMode] = useState('summary'); - const [searchTerm, setSearchTerm] = useState(''); - - // Parse sweep details from service - const sweepDetails = - typeof service.details === 'string' - ? JSON.parse(service.details) - : service.details; - - // Sort and filter hosts - const sortAndFilterHosts = (hosts) => { - if (!hosts) return []; - return [...hosts] - .filter((host) => - host.host.toLowerCase().includes(searchTerm.toLowerCase()) - ) - .sort((a, b) => compareIPAddresses(a.host, b.host)); - }; - - // Get responding hosts only - const getRespondingHosts = (hosts) => { - if (!hosts) return []; - - return hosts.filter((host) => { - const hasOpenPorts = host.port_results?.some((port) => port.available); - - const hasICMPResponse = - host.icmp_status?.available && - host.icmp_status?.packet_loss === 0 && - host.icmp_status?.round_trip > 0 && - host.icmp_status?.round_trip < 10000000; - - if (hasICMPResponse) { - console.log(`Host ${host.host} has valid ICMP response:`, host.icmp_status); - } else if (host.icmp_status) { - console.log(`Host ${host.host} has invalid ICMP response:`, host.icmp_status); - } - - return hasOpenPorts || hasICMPResponse; - }); - }; - - const respondingHosts = getRespondingHosts(sweepDetails.hosts); - - // Filter and sort hosts for display - const filteredHosts = sweepDetails.hosts - ? sortAndFilterHosts(respondingHosts).filter((host) => - host.host.toLowerCase().includes(searchTerm.toLowerCase()) - ) - : []; - - return ( -
- {/* Header */} -
-
-
-

- Network Sweep: {sweepDetails.network} -

-

- {respondingHosts.length} of {sweepDetails.total_hosts} hosts - responding -

-
-
-
- - -
- -
-
- - {viewMode === 'hosts' && ( -
- setSearchTerm(e.target.value)} - /> -
- )} - -
- Last sweep: {new Date(sweepDetails.last_sweep * 1000).toLocaleString()} -
-
- - {/* ICMP Stats Summary */} - {respondingHosts.length > 0 && ( -
-

- ICMP Status Summary -

-
- {/* ICMP Responding */} -
-
- ICMP Responding -
-
- { - respondingHosts.filter( - (h) => - h.icmp_status?.available && h.icmp_status?.packet_loss === 0 - ).length - } - - hosts - -
-
- - {/* Average Response Time */} -
-
- Average Response Time -
-
- {(() => { - const respondingToICMP = respondingHosts.filter( - (h) => - h.icmp_status?.available && - h.icmp_status?.packet_loss === 0 && - h.icmp_status?.round_trip > 0 - ); - if (respondingToICMP.length === 0) return 'N/A'; - const avg = - respondingToICMP.reduce( - (acc, h) => acc + h.icmp_status.round_trip, - 0 - ) / - respondingToICMP.length / - 1000000; - return `${avg.toFixed(2)}ms`; - })()} -
-
- - {/* TCP Services */} -
-
- Open Services -
-
- {respondingHosts.reduce( - (acc, host) => - acc + - (host.port_results?.filter((port) => port.available) - ?.length || 0), - 0 - )} - - ports - -
-
-
-
- )} - - {/* Views */} - {viewMode === 'summary' ? ( -
-
- {sweepDetails.ports - ?.sort((a, b) => b.available - a.available) - .map((port) => ( -
-
- Port {port.port} -
-
- {port.available} hosts responding -
-
-
-
-
- ))} -
-
- ) : ( -
- {filteredHosts.map((host) => ( - - ))} -
- )} -
- ); -}; - -export default NetworkSweepView; diff --git a/web/src/components/NodeList.jsx b/web/src/components/NodeList.jsx deleted file mode 100644 index 563fa8c..0000000 --- a/web/src/components/NodeList.jsx +++ /dev/null @@ -1,399 +0,0 @@ -import React, { useState, useEffect, useMemo, useCallback } from 'react'; -import { LineChart, Line } from 'recharts'; -import NodeTimeline from './NodeTimeline'; -import _ from 'lodash'; -import ServiceSparkline from "./ServiceSparkline.jsx"; -import { useNavigate } from 'react-router-dom'; - -function NodeList() { - const [nodes, setNodes] = useState([]); - const [searchTerm, setSearchTerm] = useState(''); - const [currentPage, setCurrentPage] = useState(1); - const [nodesPerPage] = useState(10); - const [sortBy, setSortBy] = useState('name'); - const [sortOrder, setSortOrder] = useState('asc'); - const [expandedNode, setExpandedNode] = useState(null); - const [viewMode, setViewMode] = useState('grid'); - const [nodeHistory, setNodeHistory] = useState({}); - const navigate = useNavigate(); - - const sortNodesByName = useCallback((a, b) => { - const aMatch = a.node_id.match(/(\d+)$/); - const bMatch = b.node_id.match(/(\d+)$/); - if (aMatch && bMatch) { - return parseInt(aMatch[1]) - parseInt(bMatch[1]); - } - return a.node_id.localeCompare(b.node_id); - }, []); - - const sortNodeServices = useCallback((services) => { - return services?.sort((a, b) => a.name.localeCompare(b.name)) || []; - }, []); - - const sortedNodes = useMemo(() => { - let results = nodes.map((node) => ({ - ...node, - services: sortNodeServices(node.services), - })); - - if (searchTerm) { - results = results.filter( - (node) => - node.node_id.toLowerCase().includes(searchTerm.toLowerCase()) || - node.services?.some((service) => - service.name.toLowerCase().includes(searchTerm.toLowerCase()) - ) - ); - } - - let sortedResults = [...results]; - switch (sortBy) { - case 'status': - sortedResults.sort((a, b) => - b.is_healthy === a.is_healthy - ? sortNodesByName(a, b) - : b.is_healthy - ? 1 - : -1 - ); - break; - case 'name': - sortedResults.sort(sortNodesByName); - break; - case 'lastUpdate': - sortedResults.sort((a, b) => { - const timeCompare = new Date(b.last_update) - new Date(a.last_update); - return timeCompare === 0 ? sortNodesByName(a, b) : timeCompare; - }); - break; - } - - if (sortOrder === 'desc') { - sortedResults.reverse(); - } - - return sortedResults; - }, [nodes, searchTerm, sortBy, sortOrder, sortNodesByName, sortNodeServices]); - - const currentNodes = useMemo(() => { - const indexOfLastNode = currentPage * nodesPerPage; - const indexOfFirstNode = indexOfLastNode - nodesPerPage; - return sortedNodes.slice(indexOfFirstNode, indexOfLastNode); - }, [currentPage, nodesPerPage, sortedNodes]); - - const pageCount = useMemo( - () => Math.ceil(sortedNodes.length / nodesPerPage), - [sortedNodes, nodesPerPage] - ); - - const handleServiceClick = (nodeId, serviceName) => { - navigate(`/service/${nodeId}/${serviceName}`); - }; - - useEffect(() => { - const fetchNodes = async () => { - try { - const response = await fetch('/api/nodes'); - const newData = await response.json(); - const sortedData = newData.sort(sortNodesByName); - - setNodes((prevNodes) => { - if (!_.isEqual(prevNodes, sortedData)) { - return sortedData; - } - return prevNodes; - }); - } catch (error) { - console.error('Error fetching nodes:', error); - } - }; - - fetchNodes(); - const interval = setInterval(fetchNodes, 10000); - return () => clearInterval(interval); - }, [sortNodesByName]); - - const toggleSortOrder = useCallback(() => { - setSortOrder((prev) => (prev === 'asc' ? 'desc' : 'asc')); - }, []); - - const getSparklineData = useCallback( - (nodeId) => { - const history = nodeHistory[nodeId] || []; - return history.map((point) => ({ - value: point.is_healthy ? 1 : 0, - timestamp: new Date(point.timestamp).getTime(), - })); - }, - [nodeHistory] - ); - - const ServiceStatus = ({ service, nodeId, onServiceClick }) => ( -
onServiceClick(nodeId, service.name)} - > -
- - - {service.name || 'unknown'} - - - ({service.type}) - -
- m.service_name === service.name) || - [] - } - /> -
- ); - - const renderGridView = () => ( -
- {currentNodes.map((node) => ( -
-
-
-
-

- {node.node_id} -

-
- - {new Date(node.last_update).toLocaleString()} - -
- -
- {node.services?.map((service, idx) => ( - - ))} -
- - {expandedNode === node.node_id && ( -
- -
- )} -
- ))} -
- ); - - const renderTableView = () => ( -
- - - - - - - - - - - - {currentNodes.map((node) => ( - - - - - - - - ))} - -
- Status - - Node - - Services - - ICMP Response Time - - Last Update -
-
-
- {node.node_id} - -
- {node.services?.map((service, idx) => ( -
- handleServiceClick(node.node_id, service.name) - } - > - - - {service.name} - -
- ))} -
-
- {node.services - ?.filter((service) => service.type === 'icmp') - .map((service, idx) => ( -
- - m.service_name === service.name && - m.response_time > 0 && - new Date(m.timestamp).getTime() > 0 - ) || [] - } - /> -
- ))} -
- {new Date(node.last_update).toLocaleString()} -
-
- ); - - return ( -
- {/* Header row */} -
-

Nodes ({sortedNodes.length})

-
- setSearchTerm(e.target.value)} - /> - - -
- - -
-
-
- - {/* Main content */} - {viewMode === 'grid' && renderGridView()} - {viewMode === 'table' && renderTableView()} - - {/* Pagination */} - {pageCount > 1 && ( -
- {[...Array(pageCount)].map((_, i) => ( - - ))} -
- )} -
- ); -} - -export default NodeList; diff --git a/web/src/components/NodeTimeline.jsx b/web/src/components/NodeTimeline.jsx deleted file mode 100644 index 85db452..0000000 --- a/web/src/components/NodeTimeline.jsx +++ /dev/null @@ -1,102 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { - LineChart, - Line, - XAxis, - YAxis, - CartesianGrid, - Tooltip, - ResponsiveContainer, -} from 'recharts'; - -const NodeTimeline = ({ nodeId }) => { - const [availabilityData, setAvailabilityData] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - const fetchData = async () => { - try { - const response = await fetch(`/api/nodes/${nodeId}/history`); - if (!response.ok) throw new Error('Failed to fetch node history'); - const data = await response.json(); - - // Transform the history data for the chart - const timelineData = data.map((point) => ({ - timestamp: new Date(point.timestamp).getTime(), - status: point.is_healthy ? 1 : 0, - tooltipTime: new Date(point.timestamp).toLocaleString(), - })); - - setAvailabilityData(timelineData); - setLoading(false); - } catch (err) { - console.error('Error fetching history:', err); - setError(err.message); - setLoading(false); - } - }; - - fetchData(); - const interval = setInterval(fetchData, 10000); - return () => clearInterval(interval); - }, [nodeId]); - - const CustomTooltip = ({ active, payload }) => { - if (!active || !payload || !payload.length) return null; - - const data = payload[0].payload; - return ( -
-

{data.tooltipTime}

-

- Status: {data.status === 1 ? 'Online' : 'Offline'} -

-
- ); - }; - - if (loading && availabilityData.length === 0) { - return
Loading timeline...
; - } - - if (error && availabilityData.length === 0) { - return
{error}
; - } - - return ( -
-

- Node Availability Timeline -

-
- - - - new Date(ts).toLocaleTimeString()} - /> - (value === 1 ? 'Online' : 'Offline')} - /> - } /> - - - -
-
- ); -}; - -export default NodeTimeline; diff --git a/web/src/components/SNMPDashboard.jsx b/web/src/components/SNMPDashboard.jsx deleted file mode 100644 index d66e8ff..0000000 --- a/web/src/components/SNMPDashboard.jsx +++ /dev/null @@ -1,286 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { - LineChart, Line, XAxis, YAxis, CartesianGrid, - Tooltip, Legend, ResponsiveContainer -} from 'recharts'; - -const SNMPDashboard = ({ nodeId, serviceName }) => { - const [snmpData, setSNMPData] = useState([]); - const [processedData, setProcessedData] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - const [timeRange, setTimeRange] = useState('1h'); - const [selectedMetric, setSelectedMetric] = useState(null); - const [availableMetrics, setAvailableMetrics] = useState([]); - - // Calculate rate between two counter values - const calculateRate = (current, previous, timeDiff) => { - if (!previous || !current || timeDiff <= 0) return 0; - const valueDiff = current - previous; - // Convert to per-second rate - return valueDiff / timeDiff; - }; - - // Process SNMP counter data to show rates instead of raw values - const processCounterData = (data) => { - if (!data || data.length < 2) return data; - - // Process the data points to calculate rates - const processedData = data.map((point, index) => { - if (index === 0) return { ...point, rate: 0 }; - - const prevPoint = data[index - 1]; - const timeDiff = (new Date(point.timestamp) - new Date(prevPoint.timestamp)) / 1000; - const currentValue = parseFloat(point.value); - const prevValue = parseFloat(prevPoint.value); - - // Handle counter wrapping - let rate = 0; - if (currentValue >= prevValue) { - rate = (currentValue - prevValue) / timeDiff; - } else { - // Counter wrapped, assume 32-bit counter - rate = ((4294967295 - prevValue) + currentValue) / timeDiff; - } - - // Convert to bytes/sec if dealing with network interfaces - if (point.oid_name.toLowerCase().includes('octets')) { - rate = rate; // Already in bytes/sec - } - - return { - ...point, - rate: rate - }; - }); - - // Filter out anomalous spikes - const rates = processedData.map(d => d.rate).filter(r => !isNaN(r) && isFinite(r)); - const mean = rates.reduce((a, b) => a + b, 0) / rates.length; - const stdDev = Math.sqrt(rates.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / rates.length); - const threshold = mean + (3 * stdDev); // 3 standard deviations - - return processedData.map(point => ({ - ...point, - rate: point.rate > threshold ? mean : point.rate - })); - }; - - useEffect(() => { - const fetchSNMPData = async () => { - try { - const end = new Date(); - const start = new Date(); - switch (timeRange) { - case '1h': - start.setHours(end.getHours() - 1); - break; - case '6h': - start.setHours(end.getHours() - 6); - break; - case '24h': - start.setHours(end.getHours() - 24); - break; - default: - start.setHours(end.getHours() - 1); - } - - const response = await fetch( - `/api/nodes/${nodeId}/snmp?start=${start.toISOString()}&end=${end.toISOString()}` - ); - - if (!response.ok) { - throw new Error('Failed to fetch SNMP data'); - } - - const data = await response.json(); - console.log('Fetched SNMP data:', data); - - // Extract unique OID names - const metrics = [...new Set(data.map(item => item.oid_name))]; - setAvailableMetrics(metrics); - - if (!selectedMetric && metrics.length > 0) { - setSelectedMetric(metrics[0]); - } - - setSNMPData(data); - - // Process the data for the selected metric - const metricData = data.filter(item => item.oid_name === selectedMetric); - const processed = processCounterData(metricData); - setProcessedData(processed); - - setLoading(false); - } catch (err) { - console.error('Error fetching SNMP data:', err); - setError(err.message); - setLoading(false); - } - }; - - fetchSNMPData(); - const interval = setInterval(fetchSNMPData, 10000); - return () => clearInterval(interval); - }, [nodeId, timeRange, serviceName, selectedMetric]); - - useEffect(() => { - if (snmpData.length > 0 && selectedMetric) { - const metricData = snmpData.filter(item => item.oid_name === selectedMetric); - const processed = processCounterData(metricData); - setProcessedData(processed); - } - }, [selectedMetric, snmpData]); - - const formatRate = (rate) => { - const absRate = Math.abs(rate); - if (absRate >= 1000000000) { - return `${(rate / 1000000000).toFixed(2)} GB/s`; - } else if (absRate >= 1000000) { - return `${(rate / 1000000).toFixed(2)} MB/s`; - } else if (absRate >= 1000) { - return `${(rate / 1000).toFixed(2)} KB/s`; - } else { - return `${rate.toFixed(2)} B/s`; - } - }; - - // Rest of your component code remains the same until the chart rendering - if (loading) { - return ( -
-
- Loading SNMP data... -
-
- ); - } - - if (error) { - return ( -
-
- Error: {error} -
-
- ); - } - - return ( -
- {/* Controls */} -
-
- -
- {['1h', '6h', '24h'].map((range) => ( - - ))} -
-
-
- - {/* Chart */} - {processedData.length > 0 && ( -
-
- - - - new Date(ts).toLocaleTimeString()} - /> - formatRate(value)} - domain={['auto', 'auto']} - scale="linear" - /> - new Date(ts).toLocaleString()} - formatter={(value, name) => [ - formatRate(value), - name === 'rate' ? 'Transfer Rate' : name - ]} - /> - - - - -
-
- )} - - {/* Latest Values Table */} -
- - - - - - - - - - {availableMetrics.map(metric => { - const metricData = processCounterData( - snmpData.filter(item => item.oid_name === metric) - ); - const latestDataPoint = metricData[metricData.length - 1]; - - return latestDataPoint ? ( - - - - - - ) : null; - })} - -
- Metric Name - - Current Rate - - Last Update -
- {metric} - - {formatRate(latestDataPoint.rate)} - - {new Date(latestDataPoint.timestamp).toLocaleString()} -
-
-
- ); -}; - -export default SNMPDashboard; \ No newline at end of file diff --git a/web/src/components/ServiceDashboard.jsx b/web/src/components/ServiceDashboard.jsx deleted file mode 100644 index 2d00ba1..0000000 --- a/web/src/components/ServiceDashboard.jsx +++ /dev/null @@ -1,283 +0,0 @@ -import React, { useState, useEffect } from 'react'; -import { useParams, useNavigate } from 'react-router-dom'; -import { - LineChart, - Line, - XAxis, - YAxis, - CartesianGrid, - Tooltip, - Legend, - ResponsiveContainer, -} from 'recharts'; -import NetworkSweepView from './NetworkSweepView'; -import { PingStatus } from './NetworkStatus'; -import SNMPDashboard from "./SNMPDashboard.jsx"; - -const ServiceDashboard = () => { - const { nodeId, serviceName } = useParams(); - const navigate = useNavigate(); - const [serviceData, setServiceData] = useState(null); - const [metricsData, setMetricsData] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - const [selectedTimeRange, setSelectedTimeRange] = useState('1h'); - - useEffect(() => { - const fetchData = async () => { - try { - // Fetch nodes list - const nodesResponse = await fetch('/api/nodes'); - if (!nodesResponse.ok) throw new Error('Failed to fetch nodes'); - const nodes = await nodesResponse.json(); - - // Find the specific node - const node = nodes.find((n) => n.node_id === nodeId); - if (!node) { - throw new Error('Node not found'); - } - - // Find the specific service - const service = node.services?.find((s) => s.name === serviceName); - if (!service) { - throw new Error('Service not found'); - } - - setServiceData(service); - - // Fetch metrics data - const metricsResponse = await fetch(`/api/nodes/${nodeId}/metrics`); - if (metricsResponse.ok) { - const metrics = await metricsResponse.json(); - const serviceMetrics = metrics.filter( - (m) => m.service_name === serviceName - ); - setMetricsData(serviceMetrics); - } - - setLoading(false); - } catch (err) { - console.error('Error fetching data:', err); - setError(err.message); - setLoading(false); - } - }; - - fetchData(); - const interval = setInterval(fetchData, 10000); - return () => clearInterval(interval); - }, [nodeId, serviceName]); - - const filterDataByTimeRange = (data, range) => { - const now = Date.now(); - const ranges = { - '1h': 60 * 60 * 1000, - '6h': 6 * 60 * 60 * 1000, - '24h': 24 * 60 * 60 * 1000, - }; - - const timeLimit = now - ranges[range]; - return data.filter( - (point) => new Date(point.timestamp).getTime() >= timeLimit - ); - }; - - const renderMetricsChart = () => { - if (!metricsData.length) return null; - - // Convert metrics data for the chart and filter by time range - const chartData = filterDataByTimeRange( - metricsData.map((metric) => ({ - timestamp: new Date(metric.timestamp).getTime(), - response_time: metric.response_time / 1000000, // Convert nanoseconds to ms - })), - selectedTimeRange - ); - - return ( -
-
-

- Response Time -

-
- {['1h', '6h', '24h'].map((range) => ( - - ))} -
-
-
- - - - new Date(ts).toLocaleTimeString()} - /> - - new Date(ts).toLocaleString()} - formatter={(value) => [`${value.toFixed(2)} ms`, 'Response Time']} - /> - - - - -
-
- ); - }; - - const renderServiceContent = () => { - if (!serviceData) return null; - - // Handle SNMP service type - if (serviceData.type === 'snmp') { - return ; - } - - // Handle sweep service type - if (serviceData.type === 'sweep') { - return ( - - ); - } - - // Handle ICMP service type - if (serviceData.type === 'icmp') { - return ( -
-

- ICMP Status -

- -
- ); - } - - // Handle other service types with their details - let details; - try { - details = - typeof serviceData.details === 'string' - ? JSON.parse(serviceData.details) - : serviceData.details; - } catch (e) { - console.error('Error parsing service details:', e); - return null; - } - - if (!details) return null; - - return ( -
- {Object.entries(details) - .filter(([key]) => key !== 'history') - .map(([key, value]) => ( -
-

- {key - .split('_') - .map( - (word) => word.charAt(0).toUpperCase() + word.slice(1) - ) - .join(' ')} -

-
- {typeof value === 'boolean' - ? value - ? 'Yes' - : 'No' - : value} -
-
- ))} -
- ); - }; - - if (loading) { - return ( -
-
- Loading... -
-
- ); - } - - if (error) { - return ( -
-
- {error} -
-
- ); - } - - return ( -
- {/* Header */} -
-

- {serviceName} Service Status -

- -
- - {/* Main Status */} -
-
-

- Service Status -

-
- {serviceData?.available ? 'Online' : 'Offline'} -
-
-
- - {/* Response Time Metrics */} - {renderMetricsChart()} - - {/* Service-specific content */} - {renderServiceContent()} -
- ); -}; - -export default ServiceDashboard; diff --git a/web/src/components/ServiceSparkline.jsx b/web/src/components/ServiceSparkline.jsx deleted file mode 100644 index df297e7..0000000 --- a/web/src/components/ServiceSparkline.jsx +++ /dev/null @@ -1,125 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react'; -import { LineChart, Line, YAxis, ResponsiveContainer } from 'recharts'; -import { TrendingUp, TrendingDown, Minus } from 'lucide-react'; -import _ from 'lodash'; - -const MAX_POINTS = 100; -const POLLING_INTERVAL = 10; - -const interpolatePoints = (points) => { - if (points.length < 2) return points; - - const result = []; - for (let i = 0; i < points.length - 1; i++) { - const current = points[i]; - const next = points[i + 1]; - const timeDiff = next.timestamp - current.timestamp; - - if (timeDiff > POLLING_INTERVAL * 1000) { - const steps = Math.min(Math.floor(timeDiff / (POLLING_INTERVAL * 1000)), 5); - const valueStep = (next.value - current.value) / steps; - const timeStep = timeDiff / steps; - - result.push(current); - for (let j = 1; j < steps; j++) { - result.push({ - timestamp: current.timestamp + timeStep * j, - value: current.value + valueStep * j, - }); - } - } else { - result.push(current); - } - } - result.push(points[points.length - 1]); - return result; -}; - -const getTrend = (metrics) => { - if (metrics.length < 2) return 'neutral'; - - // Get average of first half and second half - const half = Math.floor(metrics.length / 2); - const firstHalf = metrics.slice(0, half); - const secondHalf = metrics.slice(half); - - const firstAvg = _.meanBy(firstHalf, 'value'); - const secondAvg = _.meanBy(secondHalf, 'value'); - - const changePct = ((secondAvg - firstAvg) / firstAvg) * 100; - - if (Math.abs(changePct) < 5) return 'neutral'; - return changePct > 0 ? 'up' : 'down'; -}; - -const ServiceSparkline = ({ nodeId, serviceName }) => { - const [metrics, setMetrics] = useState([]); - - useEffect(() => { - const fetchMetrics = async () => { - try { - const response = await fetch(`/api/nodes/${nodeId}/metrics`); - if (!response.ok) throw new Error('Failed to fetch metrics'); - const data = await response.json(); - - const serviceMetrics = data - .filter((m) => m.service_name === serviceName) - .map((m) => ({ - timestamp: new Date(m.timestamp).getTime(), - value: m.response_time / 1000000, - })) - .sort((a, b) => a.timestamp - b.timestamp); - - const recentMetrics = serviceMetrics.slice(-MAX_POINTS); - setMetrics(recentMetrics); - } catch (error) { - console.error('Error fetching metrics:', error); - } - }; - - if (nodeId && serviceName) { - fetchMetrics(); - const interval = setInterval(fetchMetrics, POLLING_INTERVAL * 1000); - return () => clearInterval(interval); - } - }, [nodeId, serviceName]); - - const processedMetrics = useMemo(() => { - return interpolatePoints(metrics); - }, [metrics]); - - if (!processedMetrics.length) return null; - - const latestValue = processedMetrics[processedMetrics.length - 1]?.value; - const trend = getTrend(processedMetrics); - - return ( -
-
- - - - - - -
-
- - {latestValue ? `${latestValue.toFixed(4)}ms` : 'N/A'} - - {trend === 'up' && } - {trend === 'down' && } - {trend === 'neutral' && } -
-
- ); -}; - -export default ServiceSparkline; diff --git a/web/src/index.css b/web/src/index.css deleted file mode 100644 index 1daa63e..0000000 --- a/web/src/index.css +++ /dev/null @@ -1,4 +0,0 @@ -/* web/src/index.css */ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/web/src/main.jsx b/web/src/main.jsx deleted file mode 100644 index 844c5eb..0000000 --- a/web/src/main.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App' -import './index.css' - -ReactDOM.createRoot(document.getElementById('root')).render( - - - -) \ No newline at end of file diff --git a/web/tailwind.config.js b/web/tailwind.config.js deleted file mode 100644 index 0a46e32..0000000 --- a/web/tailwind.config.js +++ /dev/null @@ -1,19 +0,0 @@ -// web/tailwind.config.js -/** @type {import('tailwindcss').Config} */ -module.exports = { - darkMode: ["class"], - content: [ - './src/**/*.{js,jsx,ts,tsx}', - ], - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: {}, - }, - plugins: [require("tailwindcss-animate")], -} diff --git a/web/vite.config.js b/web/vite.config.js deleted file mode 100644 index 9ffd6ee..0000000 --- a/web/vite.config.js +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; - -export default defineConfig({ - plugins: [react()], - server: { - proxy: { - '/api': 'http://localhost:8090' - } - } -}); \ No newline at end of file