From ae71ec4f72ec0645441805c29aeca9ab011e86f4 Mon Sep 17 00:00:00 2001 From: Seif Ghazi Date: Sun, 29 Jun 2025 19:27:00 -0400 Subject: [PATCH] Ready --- .env.example | 16 + .gitignore | 41 + LICENSE | 21 + Makefile | 62 + README.md | 151 + demo.gif | Bin 0 -> 472326 bytes proxy/cmd/proxy/main.go | 106 + proxy/go.mod | 13 + proxy/go.sum | 8 + proxy/internal/config/config.go | 87 + proxy/internal/handler/handlers.go | 689 + proxy/internal/handler/utils.go | 265 + proxy/internal/middleware/logging.go | 99 + proxy/internal/model/models.go | 203 + proxy/internal/service/anthropic.go | 291 + proxy/internal/service/conversation.go | 306 + proxy/internal/service/storage.go | 18 + proxy/internal/service/storage_sqlite.go | 386 + run.sh | 91 + web/.eslintrc.cjs | 84 + web/app/components/CodeDiff.tsx | 103 + web/app/components/CodeViewer.tsx | 236 + web/app/components/ConversationThread.tsx | 215 + web/app/components/ImageContent.tsx | 144 + web/app/components/MessageContent.tsx | 400 + web/app/components/MessageFlow.tsx | 282 + web/app/components/RequestDetailContent.tsx | 789 + web/app/components/TodoList.tsx | 195 + web/app/components/ToolResult.tsx | 257 + web/app/components/ToolUse.tsx | 209 + web/app/entry.client.tsx | 18 + web/app/entry.server.tsx | 140 + web/app/root.tsx | 45 + web/app/routes/_index.tsx | 917 ++ web/app/routes/api.conversations.tsx | 26 + web/app/routes/api.grade-prompt.tsx | 33 + web/app/routes/api.requests.tsx | 61 + web/app/tailwind.css | 238 + web/app/utils/formatters.ts | 174 + web/package-lock.json | 13468 ++++++++++++++++++ web/package.json | 44 + web/postcss.config.js | 6 + web/public/favicon.ico | Bin 0 -> 16958 bytes web/public/logo-dark.png | Bin 0 -> 80332 bytes web/public/logo-light.png | Bin 0 -> 5906 bytes web/tailwind.config.ts | 31 + web/tsconfig.json | 32 + web/vite.config.ts | 32 + 48 files changed, 21032 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 demo.gif create mode 100644 proxy/cmd/proxy/main.go create mode 100644 proxy/go.mod create mode 100644 proxy/go.sum create mode 100644 proxy/internal/config/config.go create mode 100644 proxy/internal/handler/handlers.go create mode 100644 proxy/internal/handler/utils.go create mode 100644 proxy/internal/middleware/logging.go create mode 100644 proxy/internal/model/models.go create mode 100644 proxy/internal/service/anthropic.go create mode 100644 proxy/internal/service/conversation.go create mode 100644 proxy/internal/service/storage.go create mode 100644 proxy/internal/service/storage_sqlite.go create mode 100755 run.sh create mode 100644 web/.eslintrc.cjs create mode 100644 web/app/components/CodeDiff.tsx create mode 100644 web/app/components/CodeViewer.tsx create mode 100644 web/app/components/ConversationThread.tsx create mode 100644 web/app/components/ImageContent.tsx create mode 100644 web/app/components/MessageContent.tsx create mode 100644 web/app/components/MessageFlow.tsx create mode 100644 web/app/components/RequestDetailContent.tsx create mode 100644 web/app/components/TodoList.tsx create mode 100644 web/app/components/ToolResult.tsx create mode 100644 web/app/components/ToolUse.tsx create mode 100644 web/app/entry.client.tsx create mode 100644 web/app/entry.server.tsx create mode 100644 web/app/root.tsx create mode 100644 web/app/routes/_index.tsx create mode 100644 web/app/routes/api.conversations.tsx create mode 100644 web/app/routes/api.grade-prompt.tsx create mode 100644 web/app/routes/api.requests.tsx create mode 100644 web/app/tailwind.css create mode 100644 web/app/utils/formatters.ts create mode 100644 web/package-lock.json create mode 100644 web/package.json create mode 100644 web/postcss.config.js create mode 100644 web/public/favicon.ico create mode 100644 web/public/logo-dark.png create mode 100644 web/public/logo-light.png create mode 100644 web/tailwind.config.ts create mode 100644 web/tsconfig.json create mode 100644 web/vite.config.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1fd02fb --- /dev/null +++ b/.env.example @@ -0,0 +1,16 @@ +# Claude Code Monitor Configuration + +# Server Configuration +PORT=3001 +READ_TIMEOUT=500 +WRITE_TIMEOUT=500 +IDLE_TIMEOUT=500 + +# Anthropic API Configuration +# URL to forward requests to (the actual Anthropic API) +ANTHROPIC_FORWARD_URL=https://api.anthropic.com +ANTHROPIC_VERSION=2023-06-01 +ANTHROPIC_MAX_RETRIES=3 + +# Storage Configuration +DATABASE_PATH=requests.db \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..292181a --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# Dependencies +node_modules/ +/web/build/ +/web/.cache/ + +# Environment files +.env +.env.* +!.env.example + +# Database and logs +requests/* +requests.db +*.log +proxy.log + +# Build artifacts +bin/ +dist/ +*.exe + +# IDE and system files +.DS_Store +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Claude-specific files +.claude/ +CLAUDE.md + +# Test coverage +coverage/ +*.cover +*.test + +# Temporary files +tmp/ +temp/ \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..49234c6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Claude Code Monitor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2ae8b4e --- /dev/null +++ b/Makefile @@ -0,0 +1,62 @@ +.PHONY: all build run clean install dev + +# Default target +all: install build + +# Install dependencies +install: + @echo "๐Ÿ“ฆ Installing Go dependencies..." + cd proxy && go mod download + @echo "๐Ÿ“ฆ Installing Node dependencies..." + cd web && npm install + +# Build both services +build: build-proxy build-web + +build-proxy: + @echo "๐Ÿ”จ Building proxy server..." + cd proxy && go build -o ../bin/proxy cmd/proxy/main.go + +build-web: + @echo "๐Ÿ”จ Building web interface..." + cd web && npm run build + +# Run in development mode +dev: + @echo "๐Ÿš€ Starting development servers..." + ./run.sh + +# Run proxy only +run-proxy: + cd proxy && go run cmd/proxy/main.go + +# Run web only +run-web: + cd web && npm run dev + +# Clean build artifacts +clean: + @echo "๐Ÿงน Cleaning build artifacts..." + rm -rf bin/ + rm -rf web/build/ + rm -rf web/.cache/ + rm -f requests.db + rm -rf requests/ + +# Database operations +db-reset: + @echo "๐Ÿ—‘๏ธ Resetting database..." + rm -f requests.db + rm -rf requests/ + +# Help +help: + @echo "Claude Code Monitor - Available targets:" + @echo " make install - Install all dependencies" + @echo " make build - Build both services" + @echo " make dev - Run in development mode" + @echo " make run-proxy - Run proxy server only" + @echo " make run-web - Run web interface only" + @echo " make clean - Clean build artifacts" + @echo " make db-reset - Reset database" + @echo " make help - Show this help message" \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a1c6804 --- /dev/null +++ b/README.md @@ -0,0 +1,151 @@ +# Claude Code Monitor + +![Claude Code Monitor Demo](demo.gif) + +A dual-purpose monitoring solution that serves as both a proxy for Claude Code requests and a visualization dashboard for your Claude API conversations. + +## What It Does + +Claude Code Monitor serves two main purposes: + +1. **Claude Code Proxy**: Intercepts and monitors requests from Claude Code (claude.ai/code) to the Anthropic API, allowing you to see what Claude Code is doing in real-time +2. **Conversation Viewer**: Displays and analyzes your Claude API conversations with a beautiful web interface + +## Features + +- **Transparent Proxy**: Routes Claude Code requests through the monitor without disruption +- **Request Monitoring**: SQLite-based logging of all API interactions +- **Live Dashboard**: Real-time visualization of requests and responses +- **Conversation Analysis**: View full conversation threads with tool usage +- **Easy Setup**: One-command startup for both services + +## Quick Start + +### Prerequisites +- Go 1.20+ +- Node.js 18+ +- Anthropic API key +- Claude Code + +### Installation + +1. **Clone the repository** + ```bash + git clone https://github.com/yourusername/claude-code-monitor.git + cd claude-code-monitor + ``` + +2. **Set up your API key** + ```bash + cp .env.example .env + # Edit .env and add your ANTHROPIC_API_KEY + ``` + +3. **Install and run** (first time) + ```bash + make install # Install all dependencies + make dev # Start both services + ``` + + Or use the script that does both: + ```bash + ./run.sh + ``` + +4. **Subsequent runs** (after initial setup) + ```bash + make dev + # or + ./run.sh + ``` + +5. **Using with Claude Code** + +To use this proxy with Claude Code, set: +```bash +export ANTHROPIC_BASE_URL=http://localhost:3001 +``` + +This will route Claude Code's requests through the proxy for monitoring. + +### Access Points +- **Web Dashboard**: http://localhost:5173 +- **API Proxy**: http://localhost:3001 +- **Health Check**: http://localhost:3001/health + +## Advanced Usage + +### Running Services Separately + +If you need to run services independently: + +```bash +# Run proxy only +make run-proxy + +# Run web interface only (in another terminal) +make run-web +``` + +### Available Make Commands + +```bash +make install # Install all dependencies +make build # Build both services +make dev # Run in development mode +make clean # Clean build artifacts +make db-reset # Reset database +make help # Show all commands +``` + +## Configuration + +Create a `.env` file with: +``` +PORT=3001 +DB_PATH=requests.db +ANTHROPIC_FORWARD_URL=https://api.anthropic.com +``` + +See `.env.example` for all available options. + + +## Project Structure + +``` +claude-code-monitor/ +โ”œโ”€โ”€ proxy/ # Go proxy server +โ”‚ โ”œโ”€โ”€ cmd/ # Application entry points +โ”‚ โ”œโ”€โ”€ internal/ # Internal packages +โ”‚ โ””โ”€โ”€ go.mod # Go dependencies +โ”œโ”€โ”€ web/ # React Remix frontend +โ”‚ โ”œโ”€โ”€ app/ # Remix application +โ”‚ โ””โ”€โ”€ package.json # Node dependencies +โ”œโ”€โ”€ run.sh # Start script +โ”œโ”€โ”€ .env.example # Environment template +โ””โ”€โ”€ README.md # This file +``` + +## Features in Detail + +### Request Monitoring +- All API requests logged to SQLite database +- Searchable request history +- Request/response body inspection +- Conversation threading + +### Prompt Analysis +- Automatic prompt grading +- Best practices evaluation +- Complexity assessment +- Response quality metrics + +### Web Dashboard +- Real-time request streaming +- Interactive request explorer +- Conversation visualization +- Performance metrics + +## License + +MIT License - see [LICENSE](LICENSE) for details. \ No newline at end of file diff --git a/demo.gif b/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d45d7b94053d36cd8e5028b2d49bf75b8d23975 GIT binary patch literal 472326 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�dBG%q35H^vEMuTwvAOctTY2G@YZ)Hn9=QR{o4|Y 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 WE|UD+Q^Bz$Y?4sB$u8jjero{5bDuQ; literal 0 HcmV?d00001 diff --git a/proxy/cmd/proxy/main.go b/proxy/cmd/proxy/main.go new file mode 100644 index 0000000..7321eba --- /dev/null +++ b/proxy/cmd/proxy/main.go @@ -0,0 +1,106 @@ +package main + +import ( + "context" + "log" + "net/http" + "os" + "os/signal" + "syscall" + "time" + + "github.com/gorilla/handlers" + "github.com/gorilla/mux" + + "github.com/seifghazi/claude-code-monitor/internal/config" + "github.com/seifghazi/claude-code-monitor/internal/handler" + "github.com/seifghazi/claude-code-monitor/internal/middleware" + "github.com/seifghazi/claude-code-monitor/internal/service" +) + +func main() { + logger := log.New(os.Stdout, "proxy: ", log.LstdFlags|log.Lshortfile) + + cfg, err := config.Load() + if err != nil { + logger.Fatalf("โŒ Failed to load configuration: %v", err) + } + + anthropicService := service.NewAnthropicService(&cfg.Anthropic) + + // Use SQLite storage + storageService, err := service.NewSQLiteStorageService(&cfg.Storage) + if err != nil { + logger.Fatalf("โŒ Failed to initialize SQLite storage: %v", err) + } + logger.Println("๐Ÿ—ฟ SQLite database ready") + + h := handler.New(anthropicService, storageService, logger) + + r := mux.NewRouter() + + corsHandler := handlers.CORS( + handlers.AllowedOrigins([]string{"*"}), + handlers.AllowedMethods([]string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}), + handlers.AllowedHeaders([]string{"*"}), + ) + + r.Use(middleware.Logging) + + r.HandleFunc("/v1/chat/completions", h.ChatCompletions).Methods("POST") + r.HandleFunc("/v1/messages", h.Messages).Methods("POST") + r.HandleFunc("/v1/models", h.Models).Methods("GET") + r.HandleFunc("/health", h.Health).Methods("GET") + + r.HandleFunc("/", h.UI).Methods("GET") + r.HandleFunc("/ui", h.UI).Methods("GET") + r.HandleFunc("/api/requests", h.GetRequests).Methods("GET") + r.HandleFunc("/api/requests", h.DeleteRequests).Methods("DELETE") + r.HandleFunc("/api/conversations", h.GetConversations).Methods("GET") + r.HandleFunc("/api/conversations/{id}", h.GetConversationByID).Methods("GET") + r.HandleFunc("/api/conversations/project", h.GetConversationsByProject).Methods("GET") + + r.NotFoundHandler = http.HandlerFunc(h.NotFound) + + srv := &http.Server{ + Addr: ":" + cfg.Server.Port, + Handler: corsHandler(r), + ReadTimeout: cfg.Server.ReadTimeout, + WriteTimeout: cfg.Server.WriteTimeout, + IdleTimeout: cfg.Server.IdleTimeout, + } + + go func() { + logger.Printf("๐Ÿš€ Claude Code Monitor Server running on http://localhost:%s", cfg.Server.Port) + logger.Printf("๐Ÿ“ก API endpoints available at:") + logger.Printf(" - POST http://localhost:%s/v1/chat/completions (OpenAI format)", cfg.Server.Port) + logger.Printf(" - POST http://localhost:%s/v1/messages (Anthropic format)", cfg.Server.Port) + logger.Printf(" - GET http://localhost:%s/v1/models", cfg.Server.Port) + logger.Printf(" - GET http://localhost:%s/health", cfg.Server.Port) + logger.Printf(" - POST http://localhost:%s/api/grade-prompt (Prompt grading)", cfg.Server.Port) + logger.Printf("๐ŸŽจ Web UI available at:") + logger.Printf(" - GET http://localhost:%s/ (Request Visualizer)", cfg.Server.Port) + logger.Printf(" - GET http://localhost:%s/api/requests (Request API)", cfg.Server.Port) + logger.Printf("๐Ÿ” All requests logged with comprehensive error handling") + logger.Printf("๐ŸŽฏ Auto prompt grading with Anthropic best practices") + + if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { + logger.Fatalf("โŒ Server failed to start: %v", err) + } + }() + + quit := make(chan os.Signal, 1) + signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) + <-quit + + logger.Println("๐Ÿ›‘ Shutting down server...") + + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + if err := srv.Shutdown(ctx); err != nil { + logger.Fatalf("โŒ Server forced to shutdown: %v", err) + } + + logger.Println("โœ… Server exited") +} diff --git a/proxy/go.mod b/proxy/go.mod new file mode 100644 index 0000000..bda1306 --- /dev/null +++ b/proxy/go.mod @@ -0,0 +1,13 @@ +module github.com/seifghazi/claude-code-monitor + +go 1.20 + +require ( + github.com/gorilla/handlers v1.5.2 + github.com/gorilla/mux v1.8.1 +) + +require ( + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/mattn/go-sqlite3 v1.14.28 // indirect +) diff --git a/proxy/go.sum b/proxy/go.sum new file mode 100644 index 0000000..7c0f91b --- /dev/null +++ b/proxy/go.sum @@ -0,0 +1,8 @@ +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/mattn/go-sqlite3 v1.14.28 h1:ThEiQrnbtumT+QMknw63Befp/ce/nUPgBPMlRFEum7A= +github.com/mattn/go-sqlite3 v1.14.28/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= diff --git a/proxy/internal/config/config.go b/proxy/internal/config/config.go new file mode 100644 index 0000000..94d44c7 --- /dev/null +++ b/proxy/internal/config/config.go @@ -0,0 +1,87 @@ +package config + +import ( + "os" + "strconv" + "time" +) + +type Config struct { + Server ServerConfig + Anthropic AnthropicConfig + Storage StorageConfig +} + +type ServerConfig struct { + Port string + ReadTimeout time.Duration + WriteTimeout time.Duration + IdleTimeout time.Duration +} + +type AnthropicConfig struct { + BaseURL string + Version string + MaxRetries int +} + +type StorageConfig struct { + RequestsDir string + DBPath string +} + +func Load() (*Config, error) { + cfg := &Config{ + Server: ServerConfig{ + Port: getEnv("PORT", "3001"), + ReadTimeout: getDuration("READ_TIMEOUT", 500*time.Second), + WriteTimeout: getDuration("WRITE_TIMEOUT", 500*time.Second), + IdleTimeout: getDuration("IDLE_TIMEOUT", 500*time.Second), + }, + Anthropic: AnthropicConfig{ + BaseURL: getEnv("ANTHROPIC_FORWARD_URL", "https://api.anthropic.com"), + Version: getEnv("ANTHROPIC_VERSION", "2023-06-01"), + MaxRetries: getInt("ANTHROPIC_MAX_RETRIES", 3), + }, + Storage: StorageConfig{ + DBPath: getEnv("DB_PATH", "requests.db"), + }, + } + + return cfg, nil +} + +func getEnv(key, defaultValue string) string { + if value := os.Getenv(key); value != "" { + return value + } + return defaultValue +} + +func getDuration(key string, defaultValue time.Duration) time.Duration { + value := os.Getenv(key) + if value == "" { + return defaultValue + } + + duration, err := time.ParseDuration(value) + if err != nil { + return defaultValue + } + + return duration +} + +func getInt(key string, defaultValue int) int { + value := os.Getenv(key) + if value == "" { + return defaultValue + } + + intValue, err := strconv.Atoi(value) + if err != nil { + return defaultValue + } + + return intValue +} diff --git a/proxy/internal/handler/handlers.go b/proxy/internal/handler/handlers.go new file mode 100644 index 0000000..b38d0f6 --- /dev/null +++ b/proxy/internal/handler/handlers.go @@ -0,0 +1,689 @@ +package handler + +import ( + "bufio" + "crypto/rand" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "log" + "net/http" + "os" + "sort" + "strconv" + "strings" + "time" + + "github.com/gorilla/mux" + + "github.com/seifghazi/claude-code-monitor/internal/model" + "github.com/seifghazi/claude-code-monitor/internal/service" +) + +type Handler struct { + anthropicService service.AnthropicService + storageService service.StorageService + conversationService service.ConversationService +} + +func New(anthropicService service.AnthropicService, storageService service.StorageService, logger *log.Logger) *Handler { + conversationService := service.NewConversationService() + + return &Handler{ + anthropicService: anthropicService, + storageService: storageService, + conversationService: conversationService, + } +} + +func (h *Handler) ChatCompletions(w http.ResponseWriter, r *http.Request) { + log.Println("๐Ÿค– Chat completion request received (OpenAI format)") + + bodyBytes := getBodyBytes(r) + if bodyBytes == nil { + http.Error(w, "Error reading request body", http.StatusBadRequest) + return + } + + var req model.ChatCompletionRequest + if err := json.Unmarshal(bodyBytes, &req); err != nil { + log.Printf("โŒ Error parsing JSON: %v", err) + writeErrorResponse(w, "Invalid JSON", http.StatusBadRequest) + return + } + + requestID := generateRequestID() + startTime := time.Now() + + requestLog := &model.RequestLog{ + RequestID: requestID, + Timestamp: time.Now().Format(time.RFC3339), + Method: r.Method, + Endpoint: "/v1/chat/completions", + Headers: SanitizeHeaders(r.Header), + Body: req, + Model: req.Model, + UserAgent: r.Header.Get("User-Agent"), + ContentType: r.Header.Get("Content-Type"), + } + + if _, err := h.storageService.SaveRequest(requestLog); err != nil { + log.Printf("โŒ Error saving request: %v", err) + } + + response := &model.ChatCompletionResponse{ + ID: fmt.Sprintf("chatcmpl-%d", time.Now().UnixNano()), + Object: "chat.completion", + Created: time.Now().Unix(), + Model: req.Model, + Choices: []model.Choice{ + { + Index: 0, + Message: model.ChatMessage{ + Role: "assistant", + Content: "Hello! This is a test response from the refactored proxy server.", + }, + FinishReason: "stop", + }, + }, + Usage: model.Usage{ + PromptTokens: 10, + CompletionTokens: 20, + TotalTokens: 30, + }, + } + + if req.Model == "" { + response.Model = "claude-3-sonnet" + } + + responseLog := &model.ResponseLog{ + StatusCode: http.StatusOK, + Headers: SanitizeHeaders(w.Header()), + Body: response, + ResponseTime: time.Since(startTime).Milliseconds(), + IsStreaming: false, + } + + // The requestLog object has the conversation details. + // We need to set the response on it and then save the update. + requestLog.Response = responseLog + if err := h.storageService.UpdateRequestWithResponse(requestLog); err != nil { + log.Printf("โŒ Error updating request with response: %v", err) + } + + writeJSONResponse(w, response) +} + +func (h *Handler) Messages(w http.ResponseWriter, r *http.Request) { + log.Println("๐Ÿค– Messages request received (Anthropic format)") + + bodyBytes := getBodyBytes(r) + if bodyBytes == nil { + http.Error(w, "Error reading request body", http.StatusBadRequest) + return + } + + var req model.AnthropicRequest + if err := json.Unmarshal(bodyBytes, &req); err != nil { + log.Printf("โŒ Error parsing JSON: %v", err) + writeErrorResponse(w, "Invalid JSON", http.StatusBadRequest) + return + } + + // Extract API key from incoming request headers + apiKey := r.Header.Get("x-api-key") + if apiKey == "" { + // Also check for X-Api-Key (capitalized version) + apiKey = r.Header.Get("X-Api-Key") + } + if apiKey == "" { + log.Println("โŒ No API key provided in request headers") + writeErrorResponse(w, "API key required in x-api-key header", http.StatusUnauthorized) + return + } + + requestID := generateRequestID() + startTime := time.Now() + + // Create request log + requestLog := &model.RequestLog{ + RequestID: requestID, + Timestamp: time.Now().Format(time.RFC3339), + Method: r.Method, + Endpoint: "/v1/messages", + Headers: SanitizeHeaders(r.Header), + Body: req, + Model: req.Model, + UserAgent: r.Header.Get("User-Agent"), + ContentType: r.Header.Get("Content-Type"), + } + + if _, err := h.storageService.SaveRequest(requestLog); err != nil { + log.Printf("โŒ Error saving request: %v", err) + } + + // Forward the request to Anthropic + resp, err := h.anthropicService.ForwardRequest(r.Context(), &req, apiKey) + if err != nil { + log.Printf("โŒ Error forwarding to Anthropic API: %v", err) + writeErrorResponse(w, "Failed to forward request", http.StatusInternalServerError) + return + } + defer resp.Body.Close() + + if req.Stream { + h.handleStreamingResponse(w, resp, requestLog, startTime) + return + } + + h.handleNonStreamingResponse(w, resp, requestLog, startTime) +} + +func (h *Handler) Models(w http.ResponseWriter, r *http.Request) { + log.Println("๐Ÿ“‹ Models list requested") + + response := &model.ModelsResponse{ + Object: "list", + Data: []model.ModelInfo{ + { + ID: "claude-3-sonnet-20240229", + Object: "model", + Created: 1677610602, + OwnedBy: "anthropic", + }, + { + ID: "claude-3-opus-20240229", + Object: "model", + Created: 1677610602, + OwnedBy: "anthropic", + }, + { + ID: "claude-3-haiku-20240307", + Object: "model", + Created: 1677610602, + OwnedBy: "anthropic", + }, + }, + } + + writeJSONResponse(w, response) +} + +func (h *Handler) Health(w http.ResponseWriter, r *http.Request) { + response := &model.HealthResponse{ + Status: "healthy", + Timestamp: time.Now(), + } + + writeJSONResponse(w, response) +} + +func (h *Handler) UI(w http.ResponseWriter, r *http.Request) { + htmlContent, err := os.ReadFile("index.html") + if err != nil { + log.Printf("โŒ Error reading index.html: %v", err) + http.Error(w, "UI not available", http.StatusNotFound) + return + } + + w.Header().Set("Content-Type", "text/html") + w.Write(htmlContent) +} + +func (h *Handler) GetRequests(w http.ResponseWriter, r *http.Request) { + page, _ := strconv.Atoi(r.URL.Query().Get("page")) + if page < 1 { + page = 1 + } + + limit, _ := strconv.Atoi(r.URL.Query().Get("limit")) + if limit <= 0 { + limit = 10 // Default limit + } + + // Get model filter from query parameters + modelFilter := r.URL.Query().Get("model") + if modelFilter == "" { + modelFilter = "all" + } + + log.Printf("๐Ÿ“Š GetRequests called - page: %d, limit: %d, modelFilter: %s", page, limit, modelFilter) + + // Get all requests with model filter applied at storage level + allRequests, err := h.storageService.GetAllRequests(modelFilter) + if err != nil { + log.Printf("Error getting requests: %v", err) + http.Error(w, "Failed to get requests", http.StatusInternalServerError) + return + } + + log.Printf("๐Ÿ“Š Got %d requests from storage (filter: %s)", len(allRequests), modelFilter) + + // Convert pointers to values for consistency + requests := make([]model.RequestLog, len(allRequests)) + for i, req := range allRequests { + if req != nil { + requests[i] = *req + } + } + + // Calculate total before pagination + total := len(requests) + + // Apply pagination + start := (page - 1) * limit + end := start + limit + if start >= len(requests) { + requests = []model.RequestLog{} + } else { + if end > len(requests) { + end = len(requests) + } + requests = requests[start:end] + } + + log.Printf("๐Ÿ“Š Returning %d requests after pagination", len(requests)) + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(struct { + Requests []model.RequestLog `json:"requests"` + Total int `json:"total"` + }{ + Requests: requests, + Total: total, + }) +} + +func (h *Handler) DeleteRequests(w http.ResponseWriter, r *http.Request) { + log.Println("๐Ÿ—‘๏ธ Clearing request history") + + clearedCount, err := h.storageService.ClearRequests() + if err != nil { + log.Printf("โŒ Error clearing requests: %v", err) + writeErrorResponse(w, "Error clearing request history", http.StatusInternalServerError) + return + } + + log.Printf("โœ… Deleted %d request files", clearedCount) + + response := map[string]interface{}{ + "message": "Request history cleared", + "deleted": clearedCount, + } + + writeJSONResponse(w, response) +} + +func (h *Handler) NotFound(w http.ResponseWriter, r *http.Request) { + writeErrorResponse(w, "Not found", http.StatusNotFound) +} + +func (h *Handler) handleStreamingResponse(w http.ResponseWriter, resp *http.Response, requestLog *model.RequestLog, startTime time.Time) { + log.Println("๐ŸŒŠ Streaming response detected, forwarding stream...") + + w.Header().Set("Content-Type", "text/event-stream") + w.Header().Set("Cache-Control", "no-cache") + w.Header().Set("Connection", "keep-alive") + + if resp.StatusCode != http.StatusOK { + log.Printf("โŒ Anthropic API error: %d", resp.StatusCode) + errorBytes, _ := io.ReadAll(resp.Body) + log.Printf("Error details: %s", string(errorBytes)) + + responseLog := &model.ResponseLog{ + StatusCode: resp.StatusCode, + Headers: SanitizeHeaders(resp.Header), + BodyText: string(errorBytes), + ResponseTime: time.Since(startTime).Milliseconds(), + IsStreaming: true, + CompletedAt: time.Now().Format(time.RFC3339), + } + + requestLog.Response = responseLog + if err := h.storageService.UpdateRequestWithResponse(requestLog); err != nil { + log.Printf("โŒ Error updating request with error response: %v", err) + } + + w.WriteHeader(resp.StatusCode) + w.Write(errorBytes) + return + } + + var fullResponseText strings.Builder + var toolCalls []model.ContentBlock + var streamingChunks []string + + scanner := bufio.NewScanner(resp.Body) + for scanner.Scan() { + line := scanner.Text() + if line == "" || !strings.HasPrefix(line, "data:") { + continue + } + + streamingChunks = append(streamingChunks, line) + fmt.Fprintf(w, "%s\n\n", line) + if f, ok := w.(http.Flusher); ok { + f.Flush() + } + + jsonData := strings.TrimPrefix(line, "data: ") + var event model.StreamingEvent + if err := json.Unmarshal([]byte(jsonData), &event); err != nil { + log.Printf("โš ๏ธ Error unmarshalling streaming event: %v", err) + continue + } + + switch event.Type { + case "content_block_delta": + if event.Delta != nil { + if event.Delta.Type == "text_delta" { + fullResponseText.WriteString(event.Delta.Text) + } else if event.Delta.Type == "input_json_delta" { + if event.Index != nil && *event.Index < len(toolCalls) { + toolCalls[*event.Index].Input = append(toolCalls[*event.Index].Input, event.Delta.Input...) + } + } + } + case "content_block_start": + if event.ContentBlock != nil && event.ContentBlock.Type == "tool_use" { + toolCalls = append(toolCalls, *event.ContentBlock) + } + case "message_stop": + // End of stream + break + } + } + + responseLog := &model.ResponseLog{ + StatusCode: resp.StatusCode, + Headers: SanitizeHeaders(resp.Header), + StreamingChunks: streamingChunks, + ResponseTime: time.Since(startTime).Milliseconds(), + IsStreaming: true, + CompletedAt: time.Now().Format(time.RFC3339), + } + + // Create a structured body for the log + var responseBody model.AnthropicMessage + responseBody.Role = "assistant" + var contentBlocks []model.ContentBlock + if fullResponseText.Len() > 0 { + contentBlocks = append(contentBlocks, model.ContentBlock{ + Type: "text", + Text: fullResponseText.String(), + }) + } + contentBlocks = append(contentBlocks, toolCalls...) + responseBody.Content = contentBlocks + responseLog.Body = responseBody + + requestLog.Response = responseLog + if err := h.storageService.UpdateRequestWithResponse(requestLog); err != nil { + log.Printf("โŒ Error updating request with streaming response: %v", err) + } + + if err := scanner.Err(); err != nil { + log.Printf("โŒ Streaming error: %v", err) + } else { + log.Println("โœ… Streaming response completed") + } +} + +func (h *Handler) handleNonStreamingResponse(w http.ResponseWriter, resp *http.Response, requestLog *model.RequestLog, startTime time.Time) { + responseBytes, err := io.ReadAll(resp.Body) + if err != nil { + log.Printf("โŒ Error reading Anthropic response: %v", err) + writeErrorResponse(w, "Failed to read response", http.StatusInternalServerError) + return + } + + responseLog := &model.ResponseLog{ + StatusCode: resp.StatusCode, + Headers: SanitizeHeaders(resp.Header), + BodyText: string(responseBytes), + ResponseTime: time.Since(startTime).Milliseconds(), + IsStreaming: false, + CompletedAt: time.Now().Format(time.RFC3339), + } + + // Try to parse as JSON for structured logging + if resp.Header.Get("Content-Type") == "application/json" { + var jsonBody interface{} + if json.Unmarshal(responseBytes, &jsonBody) == nil { + responseLog.Body = jsonBody + } + } + + requestLog.Response = responseLog + if err := h.storageService.UpdateRequestWithResponse(requestLog); err != nil { + log.Printf("โŒ Error updating request with response: %v", err) + } + + if resp.StatusCode != http.StatusOK { + log.Printf("โŒ Anthropic API error: %d %s", resp.StatusCode, string(responseBytes)) + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(resp.StatusCode) + w.Write(responseBytes) + return + } + + log.Println("โœ… Successfully forwarded request to Anthropic API") + w.Header().Set("Content-Type", "application/json") + w.Write(responseBytes) +} + +func generateRequestID() string { + bytes := make([]byte, 8) + rand.Read(bytes) + return hex.EncodeToString(bytes) +} + +func getBodyBytes(r *http.Request) []byte { + if bodyBytes, ok := r.Context().Value(model.BodyBytesKey).([]byte); ok { + return bodyBytes + } + return nil +} + +func writeJSONResponse(w http.ResponseWriter, data interface{}) { + w.Header().Set("Content-Type", "application/json") + if err := json.NewEncoder(w).Encode(data); err != nil { + log.Printf("โŒ Error encoding JSON response: %v", err) + http.Error(w, "Internal server error", http.StatusInternalServerError) + } +} + +func writeErrorResponse(w http.ResponseWriter, message string, statusCode int) { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(statusCode) + json.NewEncoder(w).Encode(&model.ErrorResponse{Error: message}) +} + +// extractTextFromMessage tries multiple strategies to extract text from a message +func extractTextFromMessage(message json.RawMessage) string { + // Strategy 1: Direct string (simple text message) + var directString string + if err := json.Unmarshal(message, &directString); err == nil && directString != "" { + return directString + } + + // Strategy 2: Array format [{"type": "text", "text": "..."}] + var msgArray []interface{} + if err := json.Unmarshal(message, &msgArray); err == nil { + for _, item := range msgArray { + if itemMap, ok := item.(map[string]interface{}); ok { + if itemMap["type"] == "text" { + if text, ok := itemMap["text"].(string); ok && text != "" { + return text + } + } + } + } + } + + // Strategy 3: Content object format {"content": [{"type": "text", "text": "..."}]} + var msgContent map[string]interface{} + if err := json.Unmarshal(message, &msgContent); err == nil { + if content, ok := msgContent["content"]; ok { + if contentArray, ok := content.([]interface{}); ok { + for _, block := range contentArray { + if blockMap, ok := block.(map[string]interface{}); ok { + if blockMap["type"] == "text" { + if text, ok := blockMap["text"].(string); ok && text != "" { + return text + } + } + } + } + } + } + + // Also check if content is a string directly + if contentStr, ok := msgContent["content"].(string); ok && contentStr != "" { + return contentStr + } + } + + // Strategy 4: Single object with text field {"type": "text", "text": "..."} + var singleObj map[string]interface{} + if err := json.Unmarshal(message, &singleObj); err == nil { + if singleObj["type"] == "text" { + if text, ok := singleObj["text"].(string); ok && text != "" { + return text + } + } + + // Also check for content field at top level + if text, ok := singleObj["content"].(string); ok && text != "" { + return text + } + } + + return "" +} + +// Conversation handlers + +func (h *Handler) GetConversations(w http.ResponseWriter, r *http.Request) { + log.Println("๐Ÿ“š Getting conversations from Claude projects") + + conversations, err := h.conversationService.GetConversations() + if err != nil { + log.Printf("โŒ Error getting conversations: %v", err) + writeErrorResponse(w, "Failed to get conversations", http.StatusInternalServerError) + return + } + + // Flatten all conversations into a single array for the UI + var allConversations []map[string]interface{} + for _, convs := range conversations { + for _, conv := range convs { + // Extract first user message from the conversation + var firstMessage string + for _, msg := range conv.Messages { + if msg.Type == "user" { + // Try multiple parsing strategies + text := extractTextFromMessage(msg.Message) + if text != "" { + firstMessage = text + if len(firstMessage) > 200 { + firstMessage = firstMessage[:200] + "..." + } + break + } + } + } + + allConversations = append(allConversations, map[string]interface{}{ + "id": conv.SessionID, + "requestCount": conv.MessageCount, + "startTime": conv.StartTime.Format(time.RFC3339), + "lastActivity": conv.EndTime.Format(time.RFC3339), + "duration": conv.EndTime.Sub(conv.StartTime).Milliseconds(), + "firstMessage": firstMessage, + "projectName": conv.ProjectName, + }) + } + } + + // Sort by last activity (newest first) + sort.Slice(allConversations, func(i, j int) bool { + t1, _ := time.Parse(time.RFC3339, allConversations[i]["lastActivity"].(string)) + t2, _ := time.Parse(time.RFC3339, allConversations[j]["lastActivity"].(string)) + return t1.After(t2) + }) + + // Apply pagination + page, _ := strconv.Atoi(r.URL.Query().Get("page")) + if page < 1 { + page = 1 + } + limit, _ := strconv.Atoi(r.URL.Query().Get("limit")) + if limit <= 0 { + limit = 10 + } + + start := (page - 1) * limit + end := start + limit + if start > len(allConversations) { + allConversations = []map[string]interface{}{} + } else { + if end > len(allConversations) { + end = len(allConversations) + } + allConversations = allConversations[start:end] + } + + response := map[string]interface{}{ + "conversations": allConversations, + } + + writeJSONResponse(w, response) +} + +func (h *Handler) GetConversationByID(w http.ResponseWriter, r *http.Request) { + vars := mux.Vars(r) + sessionID, ok := vars["id"] + if !ok { + http.Error(w, "Session ID is required", http.StatusBadRequest) + return + } + + projectPath := r.URL.Query().Get("project") + if projectPath == "" { + http.Error(w, "Project path is required", http.StatusBadRequest) + return + } + + log.Printf("๐Ÿ“– Getting conversation %s from project %s", sessionID, projectPath) + + conversation, err := h.conversationService.GetConversation(projectPath, sessionID) + if err != nil { + log.Printf("โŒ Error getting conversation: %v", err) + http.Error(w, "Conversation not found", http.StatusNotFound) + return + } + + writeJSONResponse(w, conversation) +} + +func (h *Handler) GetConversationsByProject(w http.ResponseWriter, r *http.Request) { + projectPath := r.URL.Query().Get("project") + if projectPath == "" { + http.Error(w, "Project path is required", http.StatusBadRequest) + return + } + + log.Printf("๐Ÿ“ Getting conversations for project %s", projectPath) + + conversations, err := h.conversationService.GetConversationsByProject(projectPath) + if err != nil { + log.Printf("โŒ Error getting project conversations: %v", err) + writeErrorResponse(w, "Failed to get project conversations", http.StatusInternalServerError) + return + } + + writeJSONResponse(w, conversations) +} diff --git a/proxy/internal/handler/utils.go b/proxy/internal/handler/utils.go new file mode 100644 index 0000000..894f640 --- /dev/null +++ b/proxy/internal/handler/utils.go @@ -0,0 +1,265 @@ +package handler + +import ( + "crypto/sha256" + "encoding/json" + "fmt" + "net/http" + "strings" + "time" + + "github.com/seifghazi/claude-code-monitor/internal/model" +) + +// SanitizeHeaders removes sensitive headers before logging/storage +func SanitizeHeaders(headers http.Header) http.Header { + sanitized := make(http.Header) + + sensitiveHeaders := []string{ + "x-api-key", + "api-key", + "authorization", + "anthropic-api-key", + "openai-api-key", + "bearer", + } + + for key, values := range headers { + lowerKey := strings.ToLower(key) + isSensitive := false + + for _, sensitive := range sensitiveHeaders { + if strings.Contains(lowerKey, sensitive) { + isSensitive = true + break + } + } + + if isSensitive { + sanitized[key] = []string{"[REDACTED]"} + } else { + sanitized[key] = values + } + } + + return sanitized +} + +// ConversationDiffAnalyzer analyzes conversation flows to identify new vs repeated content +type ConversationDiffAnalyzer struct{} + +// NewConversationDiffAnalyzer creates a new conversation diff analyzer +func NewConversationDiffAnalyzer() *ConversationDiffAnalyzer { + return &ConversationDiffAnalyzer{} +} + +// ConversationFlowData represents the flow analysis of a conversation +type ConversationFlowData struct { + TotalMessages int `json:"totalMessages"` + NewMessages []int `json:"newMessages"` // Indices of new messages + DuplicateMessages []int `json:"duplicateMessages"` // Indices of duplicate messages + MessageHashes []string `json:"messageHashes"` // Content hashes for deduplication + ConversationHash string `json:"conversationHash"` // Hash of entire conversation + PreviousHash string `json:"previousHash"` // Hash of previous conversation state + Changes []ConversationChange `json:"changes"` // Detailed changes + FlowMetadata map[string]interface{} `json:"flowMetadata"` // Additional metadata +} + +// ConversationChange represents a specific change in the conversation +type ConversationChange struct { + Type string `json:"type"` // "added", "modified", "context" + MessageIdx int `json:"messageIdx"` // Index of the message + Role string `json:"role"` // Role of the message + ContentHash string `json:"contentHash"` // Hash of the content + Preview string `json:"preview"` // Short preview of content + Timestamp string `json:"timestamp"` // When this change was detected +} + +// AnalyzeConversationFlow analyzes a conversation to identify what's new vs repeated +func (c *ConversationDiffAnalyzer) AnalyzeConversationFlow(messages []model.AnthropicMessage, previousConversation []model.AnthropicMessage) *ConversationFlowData { + totalMessages := len(messages) + + // Create hashes for current conversation + currentHashes := make([]string, totalMessages) + for i, msg := range messages { + currentHashes[i] = c.hashMessage(msg) + } + + // Create hashes for previous conversation (if any) + var previousHashes []string + if previousConversation != nil { + previousHashes = make([]string, len(previousConversation)) + for i, msg := range previousConversation { + previousHashes[i] = c.hashMessage(msg) + } + } + + // Identify new vs duplicate messages + newMessages := []int{} + duplicateMessages := []int{} + changes := []ConversationChange{} + + // Simple approach: messages that appear after the previous conversation length are new + previousLength := len(previousHashes) + + for i, msg := range messages { + isNew := i >= previousLength + + // More sophisticated check: compare hashes + if !isNew && i < len(previousHashes) { + isNew = currentHashes[i] != previousHashes[i] + } + + if isNew { + newMessages = append(newMessages, i) + changes = append(changes, ConversationChange{ + Type: "added", + MessageIdx: i, + Role: msg.Role, + ContentHash: currentHashes[i], + Preview: c.getMessagePreview(msg), + Timestamp: fmt.Sprintf("%d", time.Now().Unix()), + }) + } else { + duplicateMessages = append(duplicateMessages, i) + changes = append(changes, ConversationChange{ + Type: "context", + MessageIdx: i, + Role: msg.Role, + ContentHash: currentHashes[i], + Preview: c.getMessagePreview(msg), + Timestamp: fmt.Sprintf("%d", time.Now().Unix()), + }) + } + } + + // If no previous conversation, consider a reasonable threshold of "new" vs "context" + if previousConversation == nil && totalMessages > 1 { + // Heuristic: last 30% of messages are "new", rest is context + newThreshold := max(1, int(float64(totalMessages)*0.3)) + contextEnd := totalMessages - newThreshold + + newMessages = []int{} + duplicateMessages = []int{} + changes = []ConversationChange{} + + for i := 0; i < totalMessages; i++ { + if i >= contextEnd { + newMessages = append(newMessages, i) + changes = append(changes, ConversationChange{ + Type: "added", + MessageIdx: i, + Role: messages[i].Role, + ContentHash: currentHashes[i], + Preview: c.getMessagePreview(messages[i]), + Timestamp: fmt.Sprintf("%d", time.Now().Unix()), + }) + } else { + duplicateMessages = append(duplicateMessages, i) + changes = append(changes, ConversationChange{ + Type: "context", + MessageIdx: i, + Role: messages[i].Role, + ContentHash: currentHashes[i], + Preview: c.getMessagePreview(messages[i]), + Timestamp: fmt.Sprintf("%d", time.Now().Unix()), + }) + } + } + } + + // Generate conversation hashes + conversationHash := c.hashConversation(messages) + previousHash := "" + if previousConversation != nil { + previousHash = c.hashConversation(previousConversation) + } + + return &ConversationFlowData{ + TotalMessages: totalMessages, + NewMessages: newMessages, + DuplicateMessages: duplicateMessages, + MessageHashes: currentHashes, + ConversationHash: conversationHash, + PreviousHash: previousHash, + Changes: changes, + FlowMetadata: map[string]interface{}{ + "newCount": len(newMessages), + "duplicateCount": len(duplicateMessages), + "analyzeTime": time.Now().Format(time.RFC3339), + }, + } +} + +// hashMessage creates a hash of a message for deduplication +func (c *ConversationDiffAnalyzer) hashMessage(msg model.AnthropicMessage) string { + // Create a stable representation of the message + content := c.normalizeMessageContent(msg.Content) + data := fmt.Sprintf("%s|%s", msg.Role, content) + + hash := sha256.Sum256([]byte(data)) + return fmt.Sprintf("%x", hash[:8]) // Use first 8 bytes for shorter hash +} + +// hashConversation creates a hash of the entire conversation +func (c *ConversationDiffAnalyzer) hashConversation(messages []model.AnthropicMessage) string { + var parts []string + for _, msg := range messages { + parts = append(parts, c.hashMessage(msg)) + } + + conversationData := strings.Join(parts, "|") + hash := sha256.Sum256([]byte(conversationData)) + return fmt.Sprintf("%x", hash[:16]) // Use first 16 bytes for conversation hash +} + +// normalizeMessageContent converts message content to a normalized string +func (c *ConversationDiffAnalyzer) normalizeMessageContent(content interface{}) string { + switch v := content.(type) { + case string: + return strings.TrimSpace(v) + case []interface{}: + var parts []string + for _, item := range v { + if block, ok := item.(map[string]interface{}); ok { + if text, hasText := block["text"].(string); hasText { + parts = append(parts, strings.TrimSpace(text)) + } else if blockType, hasType := block["type"].(string); hasType { + // Handle different content types (tool_use, etc.) + switch blockType { + case "tool_use": + if name, hasName := block["name"].(string); hasName { + parts = append(parts, fmt.Sprintf("TOOL:%s", name)) + } + case "tool_result": + parts = append(parts, "TOOL_RESULT") + default: + parts = append(parts, fmt.Sprintf("CONTENT:%s", blockType)) + } + } + } + } + return strings.Join(parts, " ") + default: + // Convert to JSON and back for normalization + jsonBytes, _ := json.Marshal(content) + return string(jsonBytes) + } +} + +// getMessagePreview creates a short preview of a message +func (c *ConversationDiffAnalyzer) getMessagePreview(msg model.AnthropicMessage) string { + content := c.normalizeMessageContent(msg.Content) + if len(content) > 100 { + return content[:100] + "..." + } + return content +} + +// max returns the maximum of two integers +func max(a, b int) int { + if a > b { + return a + } + return b +} diff --git a/proxy/internal/middleware/logging.go b/proxy/internal/middleware/logging.go new file mode 100644 index 0000000..9750e75 --- /dev/null +++ b/proxy/internal/middleware/logging.go @@ -0,0 +1,99 @@ +package middleware + +import ( + "bytes" + "context" + "encoding/json" + "io" + "log" + "net/http" + "strings" + "time" + + "github.com/seifghazi/claude-code-monitor/internal/model" +) + +func Logging(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + start := time.Now() + log.Printf("%s - %s %s", start.Format(time.RFC3339), r.Method, r.URL.Path) + log.Printf("Headers: %s", formatHeaders(r.Header)) + + var bodyBytes []byte + if r.Body != nil { + var err error + bodyBytes, err = io.ReadAll(r.Body) + if err != nil { + log.Printf("โŒ Error reading request body: %v", err) + http.Error(w, "Error reading request body", http.StatusBadRequest) + return + } + r.Body.Close() + r.Body = io.NopCloser(bytes.NewReader(bodyBytes)) + } + + ctx := context.WithValue(r.Context(), model.BodyBytesKey, bodyBytes) + r = r.WithContext(ctx) + + log.Printf("Body length: %d bytes", len(bodyBytes)) + if len(bodyBytes) > 0 { + logRequestBody(bodyBytes) + } + log.Println("---") + + wrapped := &responseWriter{ResponseWriter: w, statusCode: http.StatusOK} + next.ServeHTTP(wrapped, r) + + duration := time.Since(start) + log.Printf("Response: %d %s (took %v)", wrapped.statusCode, http.StatusText(wrapped.statusCode), duration) + }) +} + +func formatHeaders(headers http.Header) string { + headerMap := make(map[string][]string) + for k, v := range headers { + headerMap[k] = sanitizeHeaderValue(k, v) + } + headerBytes, _ := json.MarshalIndent(headerMap, "", " ") + return string(headerBytes) +} + +func sanitizeHeaderValue(key string, values []string) []string { + lowerKey := strings.ToLower(key) + sensitiveHeaders := []string{ + "x-api-key", + "api-key", + "authorization", + "anthropic-api-key", + "openai-api-key", + "bearer", + } + + for _, sensitive := range sensitiveHeaders { + if strings.Contains(lowerKey, sensitive) { + return []string{"[REDACTED]"} + } + } + return values +} + +func logRequestBody(bodyBytes []byte) { + var bodyJSON interface{} + if err := json.Unmarshal(bodyBytes, &bodyJSON); err == nil { + bodyStr, _ := json.MarshalIndent(bodyJSON, "", " ") + log.Printf("Body: %s", string(bodyStr)) + } else { + log.Printf("โŒ Failed to parse body as JSON: %v", err) + log.Printf("Raw body: %s", string(bodyBytes)) + } +} + +type responseWriter struct { + http.ResponseWriter + statusCode int +} + +func (rw *responseWriter) WriteHeader(code int) { + rw.statusCode = code + rw.ResponseWriter.WriteHeader(code) +} diff --git a/proxy/internal/model/models.go b/proxy/internal/model/models.go new file mode 100644 index 0000000..b62e9a0 --- /dev/null +++ b/proxy/internal/model/models.go @@ -0,0 +1,203 @@ +package model + +import ( + "encoding/json" + "time" +) + +type ContextKey string + +const BodyBytesKey ContextKey = "bodyBytes" + +type PromptGrade struct { + Score int `json:"score"` + MaxScore int `json:"maxScore"` + Feedback string `json:"feedback"` + ImprovedPrompt string `json:"improvedPrompt"` + Criteria map[string]CriteriaScore `json:"criteria"` + GradingTimestamp string `json:"gradingTimestamp"` + IsProcessing bool `json:"isProcessing"` +} + +type CriteriaScore struct { + Score int `json:"score"` + Feedback string `json:"feedback"` +} + +type RequestLog struct { + RequestID string `json:"requestId"` + Timestamp string `json:"timestamp"` + Method string `json:"method"` + Endpoint string `json:"endpoint"` + Headers map[string][]string `json:"headers"` + Body interface{} `json:"body"` + Model string `json:"model,omitempty"` + UserAgent string `json:"userAgent"` + ContentType string `json:"contentType"` + PromptGrade *PromptGrade `json:"promptGrade,omitempty"` + Response *ResponseLog `json:"response,omitempty"` +} + +type ResponseLog struct { + StatusCode int `json:"statusCode"` + Headers map[string][]string `json:"headers"` + Body interface{} `json:"body,omitempty"` + BodyText string `json:"bodyText,omitempty"` + ResponseTime int64 `json:"responseTime"` + StreamingChunks []string `json:"streamingChunks,omitempty"` + IsStreaming bool `json:"isStreaming"` + CompletedAt string `json:"completedAt"` +} + +type ChatMessage struct { + Role string `json:"role"` + Content string `json:"content"` +} + +type ChatCompletionRequest struct { + Model string `json:"model"` + Messages []ChatMessage `json:"messages"` + Stream bool `json:"stream,omitempty"` +} + +type ChatCompletionResponse struct { + ID string `json:"id"` + Object string `json:"object"` + Created int64 `json:"created"` + Model string `json:"model"` + Choices []Choice `json:"choices"` + Usage Usage `json:"usage"` +} + +type Choice struct { + Index int `json:"index"` + Message ChatMessage `json:"message"` + FinishReason string `json:"finish_reason"` +} + +type Usage struct { + PromptTokens int `json:"prompt_tokens"` + CompletionTokens int `json:"completion_tokens"` + TotalTokens int `json:"total_tokens"` +} + +type AnthropicContentBlock struct { + Type string `json:"type"` + Text string `json:"text"` +} + +type AnthropicMessage struct { + Role string `json:"role"` + Content interface{} `json:"content"` +} + +func (m *AnthropicMessage) GetContentBlocks() []AnthropicContentBlock { + switch v := m.Content.(type) { + case string: + return []AnthropicContentBlock{{Type: "text", Text: v}} + case []interface{}: + var blocks []AnthropicContentBlock + for _, item := range v { + if block, ok := item.(map[string]interface{}); ok { + if typ, hasType := block["type"].(string); hasType { + if text, hasText := block["text"].(string); hasText { + blocks = append(blocks, AnthropicContentBlock{Type: typ, Text: text}) + } + } + } + } + return blocks + case []AnthropicContentBlock: + return v + default: + return []AnthropicContentBlock{} + } +} + +type AnthropicSystemMessage struct { + Text string `json:"text"` + Type string `json:"type"` + CacheControl *CacheControl `json:"cache_control,omitempty"` +} + +type CacheControl struct { + Type string `json:"type"` +} + +type Tool struct { + Name string `json:"name"` + Description string `json:"description"` + InputSchema InputSchema `json:"input_schema"` +} + +type InputSchema struct { + Type string `json:"type"` + Properties map[string]Property `json:"properties"` + Required []string `json:"required,omitempty"` +} + +type Property struct { + Type string `json:"type"` + Description string `json:"description"` +} + +type AnthropicRequest struct { + Model string `json:"model"` + Messages []AnthropicMessage `json:"messages"` + MaxTokens int `json:"max_tokens"` + Temperature *float64 `json:"temperature,omitempty"` + System []AnthropicSystemMessage `json:"system,omitempty"` + Stream bool `json:"stream,omitempty"` + Tools []Tool `json:"tools,omitempty"` +} + +type ModelsResponse struct { + Object string `json:"object"` + Data []ModelInfo `json:"data"` +} + +type ModelInfo struct { + ID string `json:"id"` + Object string `json:"object"` + Created int64 `json:"created"` + OwnedBy string `json:"owned_by"` +} + +type GradeRequest struct { + Messages []AnthropicMessage `json:"messages"` + SystemMessages []AnthropicSystemMessage `json:"systemMessages"` + RequestID string `json:"requestId,omitempty"` +} + +type HealthResponse struct { + Status string `json:"status"` + Timestamp time.Time `json:"timestamp"` +} + +type ErrorResponse struct { + Error string `json:"error"` + Details string `json:"details,omitempty"` +} + + +type StreamingEvent struct { + Type string `json:"type"` + Index *int `json:"index,omitempty"` + Delta *Delta `json:"delta,omitempty"` + ContentBlock *ContentBlock `json:"content_block,omitempty"` +} + +type Delta struct { + Type string `json:"type,omitempty"` + Text string `json:"text,omitempty"` + Name string `json:"name,omitempty"` + Input json.RawMessage `json:"input,omitempty"` +} + +type ContentBlock struct { + Type string `json:"type"` + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Input json.RawMessage `json:"input,omitempty"` + Text string `json:"text,omitempty"` +} diff --git a/proxy/internal/service/anthropic.go b/proxy/internal/service/anthropic.go new file mode 100644 index 0000000..a21cd2e --- /dev/null +++ b/proxy/internal/service/anthropic.go @@ -0,0 +1,291 @@ +package service + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "path" + "strings" + "time" + + "github.com/seifghazi/claude-code-monitor/internal/config" + "github.com/seifghazi/claude-code-monitor/internal/model" +) + +type AnthropicService interface { + ForwardRequest(ctx context.Context, request *model.AnthropicRequest, apiKey string) (*http.Response, error) + GradePrompt(ctx context.Context, messages []model.AnthropicMessage, systemMessages []model.AnthropicSystemMessage, apiKey string) (*model.PromptGrade, error) +} + +type anthropicService struct { + client *http.Client + config *config.AnthropicConfig +} + +func NewAnthropicService(cfg *config.AnthropicConfig) AnthropicService { + return &anthropicService{ + client: &http.Client{ + Timeout: 60 * time.Second, + }, + config: cfg, + } +} + +func (s *anthropicService) ForwardRequest(ctx context.Context, request *model.AnthropicRequest, apiKey string) (*http.Response, error) { + if apiKey == "" { + return nil, fmt.Errorf("API key not provided") + } + + requestBody, err := json.Marshal(request) + if err != nil { + return nil, fmt.Errorf("failed to marshal request: %w", err) + } + + if s.config.BaseURL == "" { + return nil, fmt.Errorf("anthropic base URL is not configured. Please set ANTHROPIC_BASE_URL") + } + + baseURL, err := url.Parse(s.config.BaseURL) + if err != nil { + return nil, fmt.Errorf("failed to parse anthropic base URL '%s': %w", s.config.BaseURL, err) + } + + if baseURL.Scheme == "" || baseURL.Host == "" { + return nil, fmt.Errorf("invalid anthropic base URL, scheme and host are required: %s", s.config.BaseURL) + } + + baseURL.Path = path.Join(baseURL.Path, "/v1/messages") + fullURL := baseURL.String() + + req, err := http.NewRequestWithContext(ctx, "POST", fullURL, bytes.NewBuffer(requestBody)) + if err != nil { + return nil, fmt.Errorf("failed to create request: %w", err) + } + + req.Header.Set("Content-Type", "application/json") + req.Header.Set("x-api-key", apiKey) + req.Header.Set("anthropic-version", s.config.Version) + + resp, err := s.client.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to send request: %w", err) + } + + return resp, nil +} + +func (s *anthropicService) GradePrompt(ctx context.Context, messages []model.AnthropicMessage, systemMessages []model.AnthropicSystemMessage, apiKey string) (*model.PromptGrade, error) { + if apiKey == "" { + return nil, fmt.Errorf("API key not provided") + } + + userContentParts := s.extractUserContent(messages) + if len(userContentParts) == 0 { + return nil, fmt.Errorf("no user content found to grade") + } + + originalPrompt := strings.Join(userContentParts, "\n\n") + systemPrompt := s.extractSystemPrompt(systemMessages) + + gradingPrompt := s.buildGradingPrompt(originalPrompt, systemPrompt) + + claudeRequest := &model.AnthropicRequest{ + Model: "claude-3-5-sonnet-20240620", + MaxTokens: 4000, + Messages: []model.AnthropicMessage{ + { + Role: "user", + Content: gradingPrompt, + }, + }, + } + + resp, err := s.ForwardRequest(ctx, claudeRequest, apiKey) + if err != nil { + return nil, fmt.Errorf("failed to send grading request: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + bodyBytes, _ := io.ReadAll(resp.Body) + return nil, fmt.Errorf("API request failed with status %d: %s", resp.StatusCode, string(bodyBytes)) + } + + var claudeResponse struct { + Content []struct { + Type string `json:"type"` + Text string `json:"text"` + } `json:"content"` + } + + if err := json.NewDecoder(resp.Body).Decode(&claudeResponse); err != nil { + return nil, fmt.Errorf("failed to decode response: %w", err) + } + + if len(claudeResponse.Content) == 0 { + return nil, fmt.Errorf("empty response from Claude") + } + + return s.parseGradingResponse(claudeResponse.Content[0].Text) +} + +func (s *anthropicService) extractUserContent(messages []model.AnthropicMessage) []string { + var userContentParts []string + for _, msg := range messages { + if msg.Role == "user" { + blocks := msg.GetContentBlocks() + for _, block := range blocks { + if block.Type == "text" { + text := strings.TrimSpace(block.Text) + if text != "" && !s.isSystemReminder(text) { + userContentParts = append(userContentParts, text) + } + } + } + } + } + return userContentParts +} + +func (s *anthropicService) extractSystemPrompt(systemMessages []model.AnthropicSystemMessage) string { + var systemPromptParts []string + for _, msg := range systemMessages { + if msg.Text != "" { + systemPromptParts = append(systemPromptParts, msg.Text) + } + } + systemPrompt := strings.Join(systemPromptParts, "\n\n") + if systemPrompt == "" { + systemPrompt = "No system prompt was provided for this request." + } + return systemPrompt +} + +func (s *anthropicService) isSystemReminder(text string) bool { + text = strings.TrimSpace(text) + lowerText := strings.ToLower(text) + + systemPatterns := []string{ + "", + "system-reminder>", + "this is a reminder that your todo list", + "as you answer the user's questions, you can use the following context:", + "important-instruction-reminders", + "do not mention this to the user explicitly", + "the user opened the file", + "the user selected the following lines", + "caveat: the messages below were generated by the user while running local commands", + } + + for _, pattern := range systemPatterns { + if strings.Contains(lowerText, strings.ToLower(pattern)) { + return true + } + } + + return false +} + +func (s *anthropicService) buildGradingPrompt(originalPrompt, systemPrompt string) string { + return fmt.Sprintf(` +You are an expert prompt engineer specializing in Anthropic's Claude best practices. Please analyze the following user prompt and provide a comprehensive grading report. + + +%s + + +For context, here is the system prompt used in this request: + +%s + + +Please evaluate this prompt across these 5 criteria and provide your analysis in the exact JSON format specified below: + +1. **Clarity & Explicitness** (1-5): How clear and specific are the instructions? +2. **Context & Motivation** (1-5): Does it explain why the task matters and provide sufficient background? +3. **Structure & Format** (1-5): Is it well-organized? Does it use XML tags effectively? +4. **Examples & Details** (1-5): Are there sufficient examples and detailed specifications? +5. **Task-Specific Best Practices** (1-5): Does it follow Claude-specific best practices (thinking prompts, role specification, etc.)? + +Additionally, create an improved version of this prompt that addresses any weaknesses you identify. Include XML tags to structure the output if necessary. + + + +Please respond with a JSON object in exactly this format: +{ + "overallScore": [1-5 integer], + "detailedFeedback": "[comprehensive analysis of the prompt's strengths and weaknesses]", + "improvedPrompt": "[your rewritten version of the prompt that addresses the issues]", + "criteria": { + "clarity": { + "score": [1-5 integer], + "feedback": "[specific feedback for clarity]" + }, + "context": { + "score": [1-5 integer], + "feedback": "[specific feedback for context]" + }, + "structure": { + "score": [1-5 integer], + "feedback": "[specific feedback for structure]" + }, + "examples": { + "score": [1-5 integer], + "feedback": "[specific feedback for examples]" + }, + "taskSpecific": { + "score": [1-5 integer], + "feedback": "[specific feedback for task-specific practices]" + } + } +} +`, originalPrompt, systemPrompt) +} + +func (s *anthropicService) parseGradingResponse(responseText string) (*model.PromptGrade, error) { + var jsonStr string + + if strings.Contains(responseText, "```json") { + start := strings.Index(responseText, "```json") + 7 + end := strings.Index(responseText[start:], "```") + if end != -1 { + jsonStr = strings.TrimSpace(responseText[start : start+end]) + } + } else { + jsonStart := strings.Index(responseText, "{") + jsonEnd := strings.LastIndex(responseText, "}") + if jsonStart == -1 || jsonEnd == -1 { + return nil, fmt.Errorf("no JSON found in Claude's response") + } + jsonStr = responseText[jsonStart : jsonEnd+1] + } + + if jsonStr == "" { + return nil, fmt.Errorf("no JSON found in Claude's response") + } + + var gradingResult struct { + OverallScore int `json:"overallScore"` + DetailedFeedback string `json:"detailedFeedback"` + ImprovedPrompt string `json:"improvedPrompt"` + Criteria map[string]model.CriteriaScore `json:"criteria"` + } + + if err := json.Unmarshal([]byte(jsonStr), &gradingResult); err != nil { + return nil, fmt.Errorf("failed to parse grading result: %w", err) + } + + return &model.PromptGrade{ + Score: gradingResult.OverallScore, + MaxScore: 5, + Feedback: gradingResult.DetailedFeedback, + ImprovedPrompt: gradingResult.ImprovedPrompt, + Criteria: gradingResult.Criteria, + GradingTimestamp: time.Now().Format(time.RFC3339), + IsProcessing: false, + }, nil +} diff --git a/proxy/internal/service/conversation.go b/proxy/internal/service/conversation.go new file mode 100644 index 0000000..8248776 --- /dev/null +++ b/proxy/internal/service/conversation.go @@ -0,0 +1,306 @@ +package service + +import ( + "bufio" + "encoding/json" + "fmt" + "os" + "path/filepath" + "sort" + "strings" + "time" +) + +type ConversationService interface { + GetConversations() (map[string][]*Conversation, error) + GetConversation(projectPath, sessionID string) (*Conversation, error) + GetConversationsByProject(projectPath string) ([]*Conversation, error) +} + +type conversationService struct { + claudeProjectsPath string +} + +func NewConversationService() ConversationService { + homeDir, _ := os.UserHomeDir() + return &conversationService{ + claudeProjectsPath: filepath.Join(homeDir, ".claude", "projects"), + } +} + +// ConversationMessage represents a single message in a Claude conversation +type ConversationMessage struct { + ParentUUID *string `json:"parentUuid"` + IsSidechain bool `json:"isSidechain"` + UserType string `json:"userType"` + CWD string `json:"cwd"` + SessionID string `json:"sessionId"` + Version string `json:"version"` + Type string `json:"type"` + Message json.RawMessage `json:"message"` + UUID string `json:"uuid"` + Timestamp string `json:"timestamp"` + ParsedTime time.Time `json:"-"` +} + +// Conversation represents a complete conversation session +type Conversation struct { + SessionID string `json:"sessionId"` + ProjectPath string `json:"projectPath"` + ProjectName string `json:"projectName"` + Messages []*ConversationMessage `json:"messages"` + StartTime time.Time `json:"startTime"` + EndTime time.Time `json:"endTime"` + MessageCount int `json:"messageCount"` + FileModTime time.Time `json:"-"` // Used for sorting, not exported +} + +// GetConversations returns all conversations organized by project +func (cs *conversationService) GetConversations() (map[string][]*Conversation, error) { + conversations := make(map[string][]*Conversation) + var parseErrors []string + + err := filepath.Walk(cs.claudeProjectsPath, func(path string, info os.FileInfo, err error) error { + if err != nil { + // Log but don't fail the entire walk + parseErrors = append(parseErrors, fmt.Sprintf("Error accessing %s: %v", path, err)) + return nil + } + + if !strings.HasSuffix(path, ".jsonl") { + return nil + } + + // Get the project path relative to claudeProjectsPath + projectDir := filepath.Dir(path) + projectRelPath, _ := filepath.Rel(cs.claudeProjectsPath, projectDir) + + // Skip files directly in the projects directory + if projectRelPath == "." || projectRelPath == "" { + return nil + } + + conv, err := cs.parseConversationFile(path, projectRelPath) + if err != nil { + // Log parsing errors but continue processing other files + parseErrors = append(parseErrors, fmt.Sprintf("Failed to parse %s: %v", path, err)) + return nil + } + + if conv != nil { + // Include conversations even if they have no messages (edge case) + conversations[projectRelPath] = append(conversations[projectRelPath], conv) + } + + return nil + }) + + if err != nil { + return nil, fmt.Errorf("failed to walk claude projects: %w", err) + } + + // Log any parsing errors encountered + if len(parseErrors) > 0 { + fmt.Printf("Warning: Encountered %d parsing errors while loading conversations:\n", len(parseErrors)) + for i, err := range parseErrors { + if i < 5 { // Only show first 5 errors to avoid spam + fmt.Printf(" - %s\n", err) + } + } + if len(parseErrors) > 5 { + fmt.Printf(" ... and %d more errors\n", len(parseErrors)-5) + } + } + + // Sort conversations within each project by file modification time (newest first) + for project := range conversations { + sort.Slice(conversations[project], func(i, j int) bool { + return conversations[project][i].FileModTime.After(conversations[project][j].FileModTime) + }) + } + + return conversations, nil +} + +// GetConversation returns a specific conversation by project and session ID +func (cs *conversationService) GetConversation(projectPath, sessionID string) (*Conversation, error) { + filePath := filepath.Join(cs.claudeProjectsPath, projectPath, sessionID+".jsonl") + + conv, err := cs.parseConversationFile(filePath, projectPath) + if err != nil { + return nil, fmt.Errorf("failed to parse conversation: %w", err) + } + + return conv, nil +} + +// GetConversationsByProject returns all conversations for a specific project +func (cs *conversationService) GetConversationsByProject(projectPath string) ([]*Conversation, error) { + var conversations []*Conversation + projectDir := filepath.Join(cs.claudeProjectsPath, projectPath) + + files, err := os.ReadDir(projectDir) + if err != nil { + return nil, fmt.Errorf("failed to read project directory: %w", err) + } + + for _, file := range files { + if !strings.HasSuffix(file.Name(), ".jsonl") { + continue + } + + filePath := filepath.Join(projectDir, file.Name()) + conv, err := cs.parseConversationFile(filePath, projectPath) + if err != nil { + continue + } + + if conv != nil && len(conv.Messages) > 0 { + conversations = append(conversations, conv) + } + } + + // Sort by file modification time (newest first) + sort.Slice(conversations, func(i, j int) bool { + return conversations[i].FileModTime.After(conversations[j].FileModTime) + }) + + return conversations, nil +} + +// parseConversationFile reads and parses a JSONL conversation file +func (cs *conversationService) parseConversationFile(filePath, projectPath string) (*Conversation, error) { + // Get file info for modification time + fileInfo, err := os.Stat(filePath) + if err != nil { + return nil, fmt.Errorf("failed to stat file: %w", err) + } + + file, err := os.Open(filePath) + if err != nil { + return nil, fmt.Errorf("failed to open file: %w", err) + } + defer file.Close() + + var messages []*ConversationMessage + var parseErrors int + lineNum := 0 + + scanner := bufio.NewScanner(file) + + // Increase buffer size for large messages + const maxScanTokenSize = 10 * 1024 * 1024 // 10MB + buf := make([]byte, maxScanTokenSize) + scanner.Buffer(buf, maxScanTokenSize) + + for scanner.Scan() { + lineNum++ + line := scanner.Bytes() + + // Skip empty lines + if len(line) == 0 { + continue + } + + var msg ConversationMessage + if err := json.Unmarshal(line, &msg); err != nil { + parseErrors++ + // Log only first few errors to avoid spam + if parseErrors <= 3 { + fmt.Printf("Warning: Failed to parse line %d in %s: %v\n", lineNum, filePath, err) + } + continue + } + + // Parse timestamp + if msg.Timestamp != "" { + parsedTime, err := time.Parse(time.RFC3339, msg.Timestamp) + if err != nil { + // Try alternative timestamp formats + parsedTime, err = time.Parse(time.RFC3339Nano, msg.Timestamp) + if err != nil { + fmt.Printf("Warning: Failed to parse timestamp '%s' in %s\n", msg.Timestamp, filePath) + } + } + msg.ParsedTime = parsedTime + } + + messages = append(messages, &msg) + } + + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("scanner error: %w", err) + } + + if parseErrors > 3 { + fmt.Printf("Warning: Total of %d lines failed to parse in %s\n", parseErrors, filePath) + } + + // Return empty conversation if no messages (caller can decide what to do) + if len(messages) == 0 { + // Extract session ID from filename + sessionID := filepath.Base(filePath) + sessionID = strings.TrimSuffix(sessionID, ".jsonl") + + // Use the full project path as provided + projectName := projectPath + // If it looks like a file path, extract the last component + if strings.Contains(projectPath, "-") { + // This handles cases like "-Users-seifghazi-dev-llm-proxy" + projectName = projectPath + } + + return &Conversation{ + SessionID: sessionID, + ProjectPath: projectPath, + ProjectName: projectName, + Messages: messages, + StartTime: time.Time{}, + EndTime: time.Time{}, + MessageCount: 0, + FileModTime: fileInfo.ModTime(), + }, nil + } + + // Sort messages by timestamp + sort.Slice(messages, func(i, j int) bool { + return messages[i].ParsedTime.Before(messages[j].ParsedTime) + }) + + // Extract session ID from filename + sessionID := filepath.Base(filePath) + sessionID = strings.TrimSuffix(sessionID, ".jsonl") + + // Use the full project path as provided + projectName := projectPath + + // Find first and last valid timestamps + var startTime, endTime time.Time + for _, msg := range messages { + if !msg.ParsedTime.IsZero() { + if startTime.IsZero() || msg.ParsedTime.Before(startTime) { + startTime = msg.ParsedTime + } + if endTime.IsZero() || msg.ParsedTime.After(endTime) { + endTime = msg.ParsedTime + } + } + } + + // If no valid timestamps found, use file modification time + if startTime.IsZero() { + startTime = fileInfo.ModTime() + endTime = fileInfo.ModTime() + } + + return &Conversation{ + SessionID: sessionID, + ProjectPath: projectPath, + ProjectName: projectName, + Messages: messages, + StartTime: startTime, + EndTime: endTime, + MessageCount: len(messages), + FileModTime: fileInfo.ModTime(), + }, nil +} \ No newline at end of file diff --git a/proxy/internal/service/storage.go b/proxy/internal/service/storage.go new file mode 100644 index 0000000..868c616 --- /dev/null +++ b/proxy/internal/service/storage.go @@ -0,0 +1,18 @@ +package service + +import ( + "github.com/seifghazi/claude-code-monitor/internal/config" + "github.com/seifghazi/claude-code-monitor/internal/model" +) + +type StorageService interface { + SaveRequest(request *model.RequestLog) (string, error) + GetRequests(page, limit int) ([]model.RequestLog, int, error) + ClearRequests() (int, error) + UpdateRequestWithGrading(requestID string, grade *model.PromptGrade) error + UpdateRequestWithResponse(request *model.RequestLog) error + EnsureDirectoryExists() error + GetRequestByShortID(shortID string) (*model.RequestLog, string, error) + GetConfig() *config.StorageConfig + GetAllRequests(modelFilter string) ([]*model.RequestLog, error) +} diff --git a/proxy/internal/service/storage_sqlite.go b/proxy/internal/service/storage_sqlite.go new file mode 100644 index 0000000..8033ce1 --- /dev/null +++ b/proxy/internal/service/storage_sqlite.go @@ -0,0 +1,386 @@ +package service + +import ( + "database/sql" + "encoding/json" + "fmt" + "log" + "strings" + + _ "github.com/mattn/go-sqlite3" + + "github.com/seifghazi/claude-code-monitor/internal/config" + "github.com/seifghazi/claude-code-monitor/internal/model" +) + +type sqliteStorageService struct { + db *sql.DB + config *config.StorageConfig +} + +func NewSQLiteStorageService(cfg *config.StorageConfig) (StorageService, error) { + db, err := sql.Open("sqlite3", cfg.DBPath) + if err != nil { + return nil, fmt.Errorf("failed to open database: %w", err) + } + + service := &sqliteStorageService{ + db: db, + config: cfg, + } + + if err := service.createTables(); err != nil { + return nil, fmt.Errorf("failed to create tables: %w", err) + } + + return service, nil +} + +func (s *sqliteStorageService) createTables() error { + schema := ` + CREATE TABLE IF NOT EXISTS requests ( + id TEXT PRIMARY KEY, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, + method TEXT NOT NULL, + endpoint TEXT NOT NULL, + headers TEXT NOT NULL, + body TEXT NOT NULL, + user_agent TEXT, + content_type TEXT, + prompt_grade TEXT, + response TEXT, + model TEXT, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP + ); + + CREATE INDEX IF NOT EXISTS idx_timestamp ON requests(timestamp DESC); + CREATE INDEX IF NOT EXISTS idx_endpoint ON requests(endpoint); + CREATE INDEX IF NOT EXISTS idx_model ON requests(model); + ` + + _, err := s.db.Exec(schema) + return err +} + +func (s *sqliteStorageService) SaveRequest(request *model.RequestLog) (string, error) { + headersJSON, err := json.Marshal(request.Headers) + if err != nil { + return "", fmt.Errorf("failed to marshal headers: %w", err) + } + + bodyJSON, err := json.Marshal(request.Body) + if err != nil { + return "", fmt.Errorf("failed to marshal body: %w", err) + } + + // Extract model from body if available + var modelName string + if body, ok := request.Body.(map[string]interface{}); ok { + if model, ok := body["model"].(string); ok { + modelName = model + request.Model = model // Also set it in the struct + } + } + + query := ` + INSERT INTO requests (id, timestamp, method, endpoint, headers, body, user_agent, content_type, model) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + ` + + _, err = s.db.Exec(query, + request.RequestID, + request.Timestamp, + request.Method, + request.Endpoint, + string(headersJSON), + string(bodyJSON), + request.UserAgent, + request.ContentType, + modelName, + ) + + if err != nil { + return "", fmt.Errorf("failed to insert request: %w", err) + } + + return request.RequestID, nil +} + +func (s *sqliteStorageService) GetRequests(page, limit int) ([]model.RequestLog, int, error) { + // Get total count + var total int + err := s.db.QueryRow("SELECT COUNT(*) FROM requests").Scan(&total) + if err != nil { + return nil, 0, fmt.Errorf("failed to get total count: %w", err) + } + + // Get paginated results + offset := (page - 1) * limit + query := ` + SELECT id, timestamp, method, endpoint, headers, body, model, user_agent, content_type, prompt_grade, response + FROM requests + ORDER BY timestamp DESC + LIMIT ? OFFSET ? + ` + + rows, err := s.db.Query(query, limit, offset) + if err != nil { + return nil, 0, fmt.Errorf("failed to query requests: %w", err) + } + defer rows.Close() + + var requests []model.RequestLog + for rows.Next() { + var req model.RequestLog + var headersJSON, bodyJSON string + var promptGradeJSON, responseJSON sql.NullString + + err := rows.Scan( + &req.RequestID, + &req.Timestamp, + &req.Method, + &req.Endpoint, + &headersJSON, + &bodyJSON, + &req.Model, + &req.UserAgent, + &req.ContentType, + &promptGradeJSON, + &responseJSON, + ) + if err != nil { + log.Printf("Error scanning row: %v", err) + continue + } + + // Unmarshal JSON fields + if err := json.Unmarshal([]byte(headersJSON), &req.Headers); err != nil { + log.Printf("Error unmarshaling headers: %v", err) + continue + } + + var body interface{} + if err := json.Unmarshal([]byte(bodyJSON), &body); err != nil { + log.Printf("Error unmarshaling body: %v", err) + continue + } + req.Body = body + + if promptGradeJSON.Valid { + var grade model.PromptGrade + if err := json.Unmarshal([]byte(promptGradeJSON.String), &grade); err == nil { + req.PromptGrade = &grade + } + } + + if responseJSON.Valid { + var resp model.ResponseLog + if err := json.Unmarshal([]byte(responseJSON.String), &resp); err == nil { + req.Response = &resp + } + } + + requests = append(requests, req) + } + + return requests, total, nil +} + +func (s *sqliteStorageService) ClearRequests() (int, error) { + result, err := s.db.Exec("DELETE FROM requests") + if err != nil { + return 0, fmt.Errorf("failed to clear requests: %w", err) + } + + rowsAffected, err := result.RowsAffected() + if err != nil { + return 0, fmt.Errorf("failed to get rows affected: %w", err) + } + + return int(rowsAffected), nil +} + +func (s *sqliteStorageService) UpdateRequestWithGrading(requestID string, grade *model.PromptGrade) error { + gradeJSON, err := json.Marshal(grade) + if err != nil { + return fmt.Errorf("failed to marshal grade: %w", err) + } + + query := "UPDATE requests SET prompt_grade = ? WHERE id = ?" + _, err = s.db.Exec(query, string(gradeJSON), requestID) + if err != nil { + return fmt.Errorf("failed to update request with grading: %w", err) + } + + return nil +} + +func (s *sqliteStorageService) UpdateRequestWithResponse(request *model.RequestLog) error { + responseJSON, err := json.Marshal(request.Response) + if err != nil { + return fmt.Errorf("failed to marshal response: %w", err) + } + + query := "UPDATE requests SET response = ? WHERE id = ?" + _, err = s.db.Exec(query, string(responseJSON), request.RequestID) + if err != nil { + return fmt.Errorf("failed to update request with response: %w", err) + } + + return nil +} + +func (s *sqliteStorageService) EnsureDirectoryExists() error { + // No directory needed for SQLite + return nil +} + +func (s *sqliteStorageService) GetRequestByShortID(shortID string) (*model.RequestLog, string, error) { + query := ` + SELECT id, timestamp, method, endpoint, headers, body, model, user_agent, content_type, prompt_grade, response + FROM requests + WHERE id LIKE ? + ORDER BY timestamp DESC + LIMIT 1 + ` + + var req model.RequestLog + var headersJSON, bodyJSON string + var promptGradeJSON, responseJSON sql.NullString + + err := s.db.QueryRow(query, "%"+shortID).Scan( + &req.RequestID, + &req.Timestamp, + &req.Method, + &req.Endpoint, + &headersJSON, + &bodyJSON, + &req.Model, + &req.UserAgent, + &req.ContentType, + &promptGradeJSON, + &responseJSON, + ) + + if err == sql.ErrNoRows { + return nil, "", fmt.Errorf("request with ID %s not found", shortID) + } + if err != nil { + return nil, "", fmt.Errorf("failed to query request: %w", err) + } + + // Unmarshal JSON fields + if err := json.Unmarshal([]byte(headersJSON), &req.Headers); err != nil { + return nil, "", fmt.Errorf("failed to unmarshal headers: %w", err) + } + + var body interface{} + if err := json.Unmarshal([]byte(bodyJSON), &body); err != nil { + return nil, "", fmt.Errorf("failed to unmarshal body: %w", err) + } + req.Body = body + + if promptGradeJSON.Valid { + var grade model.PromptGrade + if err := json.Unmarshal([]byte(promptGradeJSON.String), &grade); err == nil { + req.PromptGrade = &grade + } + } + + if responseJSON.Valid { + var resp model.ResponseLog + if err := json.Unmarshal([]byte(responseJSON.String), &resp); err == nil { + req.Response = &resp + } + } + + return &req, req.RequestID, nil +} + +func (s *sqliteStorageService) GetConfig() *config.StorageConfig { + return s.config +} + +func (s *sqliteStorageService) GetAllRequests(modelFilter string) ([]*model.RequestLog, error) { + query := ` + SELECT id, timestamp, method, endpoint, headers, body, model, user_agent, content_type, prompt_grade, response + FROM requests + ` + args := []interface{}{} + + if modelFilter != "" && modelFilter != "all" { + query += " WHERE LOWER(model) LIKE ?" + args = append(args, "%"+strings.ToLower(modelFilter)+"%") + log.Printf("๐Ÿ” SQL Query with filter: %s, args: %v", query, args) + } + + query += " ORDER BY timestamp DESC" + + rows, err := s.db.Query(query, args...) + if err != nil { + return nil, fmt.Errorf("failed to query requests: %w", err) + } + defer rows.Close() + + var requests []*model.RequestLog + for rows.Next() { + var req model.RequestLog + var headersJSON, bodyJSON string + var promptGradeJSON, responseJSON sql.NullString + + err := rows.Scan( + &req.RequestID, + &req.Timestamp, + &req.Method, + &req.Endpoint, + &headersJSON, + &bodyJSON, + &req.Model, + &req.UserAgent, + &req.ContentType, + &promptGradeJSON, + &responseJSON, + ) + if err != nil { + log.Printf("Error scanning row: %v", err) + continue + } + + log.Printf("๐Ÿ” Scanned request - ID: %s, Model: %s", req.RequestID, req.Model) + + // Unmarshal JSON fields + if err := json.Unmarshal([]byte(headersJSON), &req.Headers); err != nil { + log.Printf("Error unmarshaling headers: %v", err) + continue + } + + var body interface{} + if err := json.Unmarshal([]byte(bodyJSON), &body); err != nil { + log.Printf("Error unmarshaling body: %v", err) + continue + } + req.Body = body + + if promptGradeJSON.Valid { + var grade model.PromptGrade + if err := json.Unmarshal([]byte(promptGradeJSON.String), &grade); err == nil { + req.PromptGrade = &grade + } + } + + if responseJSON.Valid { + var resp model.ResponseLog + if err := json.Unmarshal([]byte(responseJSON.String), &resp); err == nil { + req.Response = &resp + } + } + + requests = append(requests, &req) + } + + return requests, nil +} + +func (s *sqliteStorageService) Close() error { + return s.db.Close() +} diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..a6b09e1 --- /dev/null +++ b/run.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +# Claude Code Monitor - Build and Run Script + +set -e + +echo "๐Ÿš€ Claude Code Monitor - Starting Services" +echo "=========================================" + +# Colors for output +GREEN='\033[0;32m' +BLUE='\033[0;34m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Check if Go is installed +if ! command -v go &> /dev/null; then + echo "โŒ Go is not installed. Please install Go 1.20 or higher." + exit 1 +fi + +# Check if Node.js is installed +if ! command -v node &> /dev/null; then + echo "โŒ Node.js is not installed. Please install Node.js 18 or higher." + exit 1 +fi + +# Check for .env file +if [ ! -f .env ]; then + echo -e "${YELLOW}โš ๏ธ No .env file found. Creating from .env.example...${NC}" + if [ -f .env.example ]; then + cp .env.example .env + echo -e "${GREEN}โœ… Created .env file.${NC}" + else + echo "โŒ No .env.example file found." + exit 1 + fi +fi + +# Function to cleanup on exit +cleanup() { + echo -e "\n${YELLOW}Shutting down services...${NC}" + kill $PROXY_PID $WEB_PID 2>/dev/null || true + exit +} + +trap cleanup EXIT INT TERM + +# Build and start proxy server +echo -e "\n${BLUE}๐Ÿ“ฆ Building proxy server...${NC}" +cd proxy +go mod download +go build -o ../bin/proxy cmd/proxy/main.go +cd .. + +echo -e "${GREEN}โœ… Proxy server built${NC}" + +# Install web dependencies if needed +if [ ! -d "web/node_modules" ]; then + echo -e "\n${BLUE}๐Ÿ“ฆ Installing web dependencies...${NC}" + cd web + npm install + cd .. + echo -e "${GREEN}โœ… Web dependencies installed${NC}" +fi + +# Start proxy server +echo -e "\n${BLUE}๐Ÿš€ Starting proxy server on port 3001...${NC}" +./bin/proxy & +PROXY_PID=$! + +# Wait for proxy to start +sleep 2 + +# Start web server +echo -e "${BLUE}๐Ÿš€ Starting web interface on port 5173...${NC}" +cd web +npm run dev & +WEB_PID=$! +cd .. + +echo -e "\n${GREEN}โœจ All services started!${NC}" +echo "=========================================" +echo -e "๐Ÿ“Š Web Dashboard: ${BLUE}http://localhost:5173${NC}" +echo -e "๐Ÿ”Œ API Proxy: ${BLUE}http://localhost:3001${NC}" +echo -e "๐Ÿ’š Health Check: ${BLUE}http://localhost:3001/health${NC}" +echo "=========================================" +echo -e "${YELLOW}Press Ctrl+C to stop all services${NC}\n" + +# Wait for processes +wait \ No newline at end of file diff --git a/web/.eslintrc.cjs b/web/.eslintrc.cjs new file mode 100644 index 0000000..4f6f59e --- /dev/null +++ b/web/.eslintrc.cjs @@ -0,0 +1,84 @@ +/** + * This is intended to be a basic starting point for linting in your app. + * It relies on recommended configs out of the box for simplicity, but you can + * and should modify this configuration to best suit your team's needs. + */ + +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + }, + env: { + browser: true, + commonjs: true, + es6: true, + }, + ignorePatterns: ["!**/.server", "!**/.client"], + + // Base config + extends: ["eslint:recommended"], + + overrides: [ + // React + { + files: ["**/*.{js,jsx,ts,tsx}"], + plugins: ["react", "jsx-a11y"], + extends: [ + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", + "plugin:jsx-a11y/recommended", + ], + settings: { + react: { + version: "detect", + }, + formComponents: ["Form"], + linkComponents: [ + { name: "Link", linkAttribute: "to" }, + { name: "NavLink", linkAttribute: "to" }, + ], + "import/resolver": { + typescript: {}, + }, + }, + }, + + // Typescript + { + files: ["**/*.{ts,tsx}"], + plugins: ["@typescript-eslint", "import"], + parser: "@typescript-eslint/parser", + settings: { + "import/internal-regex": "^~/", + "import/resolver": { + node: { + extensions: [".ts", ".tsx"], + }, + typescript: { + alwaysTryTypes: true, + }, + }, + }, + extends: [ + "plugin:@typescript-eslint/recommended", + "plugin:import/recommended", + "plugin:import/typescript", + ], + }, + + // Node + { + files: [".eslintrc.cjs"], + env: { + node: true, + }, + }, + ], +}; diff --git a/web/app/components/CodeDiff.tsx b/web/app/components/CodeDiff.tsx new file mode 100644 index 0000000..9b950ba --- /dev/null +++ b/web/app/components/CodeDiff.tsx @@ -0,0 +1,103 @@ +import React from 'react'; + +interface CodeDiffProps { + oldCode: string; + newCode: string; + fileName?: string; +} + +export function CodeDiff({ oldCode, newCode, fileName }: CodeDiffProps) { + // Split code into lines + const oldLines = oldCode.split('\n'); + const newLines = newCode.split('\n'); + + // Simple diff algorithm - find common prefix and suffix + let start = 0; + let oldEnd = oldLines.length - 1; + let newEnd = newLines.length - 1; + + // Find common prefix + while (start <= oldEnd && start <= newEnd && oldLines[start] === newLines[start]) { + start++; + } + + // Find common suffix + while (oldEnd >= start && newEnd >= start && oldLines[oldEnd] === newLines[newEnd]) { + oldEnd--; + newEnd--; + } + + // Build diff display + const diffLines: Array<{ type: 'unchanged' | 'removed' | 'added'; content: string; lineNum?: number }> = []; + + // Add unchanged prefix + for (let i = 0; i < start; i++) { + diffLines.push({ type: 'unchanged', content: oldLines[i], lineNum: i + 1 }); + } + + // Add removed lines + for (let i = start; i <= oldEnd; i++) { + diffLines.push({ type: 'removed', content: oldLines[i] }); + } + + // Add added lines + for (let i = start; i <= newEnd; i++) { + diffLines.push({ type: 'added', content: newLines[i], lineNum: i + 1 }); + } + + // Add unchanged suffix + for (let i = oldEnd + 1; i < oldLines.length; i++) { + diffLines.push({ type: 'unchanged', content: oldLines[i], lineNum: i + 1 + (newEnd - oldEnd) }); + } + + return ( +
+ {fileName && ( +
+ {fileName} +
+ )} +
+ + + {diffLines.map((line, idx) => ( + + + + + + + ))} + +
+ {line.type === 'removed' ? '-' : line.lineNum || ''} + + {line.type === 'added' ? '+' : line.type === 'unchanged' ? line.lineNum || '' : ''} + + + {line.type === 'removed' ? '-' : line.type === 'added' ? '+' : ' '} + + + + {line.content} + +
+
+
+ ); +} \ No newline at end of file diff --git a/web/app/components/CodeViewer.tsx b/web/app/components/CodeViewer.tsx new file mode 100644 index 0000000..f9f4aae --- /dev/null +++ b/web/app/components/CodeViewer.tsx @@ -0,0 +1,236 @@ +import { useState } from 'react'; +import { Copy, Check, FileCode, Download, Maximize2, X } from 'lucide-react'; + +interface CodeViewerProps { + code: string; + fileName?: string; + language?: string; +} + +export function CodeViewer({ code, fileName, language }: CodeViewerProps) { + const [copied, setCopied] = useState(false); + const [isFullscreen, setIsFullscreen] = useState(false); + + // Determine language from file extension + const getLanguageFromFileName = (filename?: string): string => { + if (!filename) return 'text'; + + const extension = filename.split('.').pop()?.toLowerCase(); + const languageMap: Record = { + 'js': 'javascript', + 'jsx': 'javascript', + 'ts': 'typescript', + 'tsx': 'typescript', + 'py': 'python', + 'rb': 'ruby', + 'go': 'go', + 'rs': 'rust', + 'java': 'java', + 'cpp': 'cpp', + 'c': 'c', + 'h': 'c', + 'hpp': 'cpp', + 'cs': 'csharp', + 'php': 'php', + 'swift': 'swift', + 'kt': 'kotlin', + 'scala': 'scala', + 'r': 'r', + 'sh': 'bash', + 'bash': 'bash', + 'zsh': 'bash', + 'fish': 'bash', + 'ps1': 'powershell', + 'sql': 'sql', + 'html': 'html', + 'htm': 'html', + 'xml': 'xml', + 'css': 'css', + 'scss': 'scss', + 'sass': 'sass', + 'less': 'less', + 'json': 'json', + 'yaml': 'yaml', + 'yml': 'yaml', + 'toml': 'toml', + 'md': 'markdown', + 'mdx': 'markdown', + 'tex': 'latex', + 'dockerfile': 'dockerfile', + 'makefile': 'makefile', + 'cmake': 'cmake', + 'gradle': 'gradle', + 'maven': 'xml', + 'vim': 'vim', + 'lua': 'lua', + 'dart': 'dart', + 'elixir': 'elixir', + 'elm': 'elm', + 'erlang': 'erlang', + 'haskell': 'haskell', + 'julia': 'julia', + 'nim': 'nim', + 'perl': 'perl', + 'ocaml': 'ocaml', + 'clj': 'clojure', + 'cljs': 'clojure', + 'cljc': 'clojure' + }; + + return languageMap[extension || ''] || 'text'; + }; + + const detectedLanguage = language || getLanguageFromFileName(fileName); + + // Basic syntax highlighting for common tokens + const highlightCode = (code: string): string => { + // Escape HTML + let highlighted = code + .replace(/&/g, '&') + .replace(//g, '>'); + + // Common patterns for many languages + const patterns = [ + // Strings + { regex: /(["'`])(?:(?=(\\?))\2.)*?\1/g, class: 'text-green-400' }, + // Comments + { regex: /(\/\/.*$)/gm, class: 'text-gray-500 italic' }, + { regex: /(\/\*[\s\S]*?\*\/)/g, class: 'text-gray-500 italic' }, + { regex: /(#.*$)/gm, class: 'text-gray-500 italic' }, + // Numbers + { regex: /\b(\d+\.?\d*)\b/g, class: 'text-purple-400' }, + // Keywords (common across many languages) + { regex: /\b(function|const|let|var|if|else|for|while|return|class|import|export|from|async|await|def|elif|except|finally|lambda|with|as|raise|del|global|nonlocal|assert|break|continue|try|catch|throw|new|this|super|extends|implements|interface|abstract|static|public|private|protected|void|int|string|boolean|float|double|char|long|short|byte|enum|struct|typedef|union|namespace|using|package|goto|switch|case|default)\b/g, class: 'text-blue-400' }, + // Boolean and null values + { regex: /\b(true|false|null|undefined|nil|None|True|False)\b/g, class: 'text-orange-400' }, + // Function calls (basic) + { regex: /(\w+)(?=\s*\()/g, class: 'text-yellow-400' }, + // Types/Classes (PascalCase) + { regex: /\b([A-Z][a-zA-Z0-9]*)\b/g, class: 'text-cyan-400' }, + ]; + + patterns.forEach(({ regex, class: className }) => { + highlighted = highlighted.replace(regex, `$&`); + }); + + return highlighted; + }; + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(code); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (error) { + console.error('Failed to copy to clipboard:', error); + } + }; + + const handleDownload = () => { + const blob = new Blob([code], { type: 'text/plain' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = fileName || 'code.txt'; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + }; + + const lines = code.split('\n'); + const lineCount = lines.length; + + const CodeDisplay = ({ inModal = false }: { inModal?: boolean }) => ( +
+ {/* Header */} +
+
+ + + {fileName || 'Untitled'} + + + {detectedLanguage} + + + {lineCount} lines + +
+
+ + {!inModal && ( + + )} + +
+
+ + {/* Code content */} +
+ + + {lines.map((line, idx) => ( + + + + + ))} + +
+ {idx + 1} + + +
+
+
+ ); + + return ( + <> + + + {/* Fullscreen Modal */} + {isFullscreen && ( +
setIsFullscreen(false)} + > +
e.stopPropagation()}> + + +
+
+ )} + + ); +} \ No newline at end of file diff --git a/web/app/components/ConversationThread.tsx b/web/app/components/ConversationThread.tsx new file mode 100644 index 0000000..5ab7426 --- /dev/null +++ b/web/app/components/ConversationThread.tsx @@ -0,0 +1,215 @@ +import { MessageCircle, Clock, Sparkles, ChevronDown, ChevronRight, GitBranch, ArrowRight } from 'lucide-react'; +import { useState } from 'react'; +import { MessageFlow } from './MessageFlow' +import { formatLargeText } from '../utils/formatters'; + +interface ConversationThreadProps { + conversation: { + sessionId: string; + projectPath: string; + projectName: string; + messages: Array<{ + parentUuid: string | null; + isSidechain: boolean; + userType: string; + cwd: string; + sessionId: string; + version: string; + type: string; + message: any; + uuid: string; + timestamp: string; + }>; + startTime: string; + endTime: string; + messageCount: number; + }; +} + +interface ConversationMessage { + role: 'user' | 'assistant' | 'system'; + content: any; + timestamp: string; + turnNumber?: number; + isNewInTurn?: boolean; + isDuplicate?: boolean; +} + +export function ConversationThread({ conversation }: ConversationThreadProps) { + const [expandedSections, setExpandedSections] = useState>(new Set(['flow'])); + + const toggleSection = (section: string) => { + const newExpanded = new Set(expandedSections); + if (newExpanded.has(section)) { + newExpanded.delete(section); + } else { + newExpanded.add(section); + } + setExpandedSections(newExpanded); + }; + + // Extract all messages and analyze conversation flow from JSONL messages + const analyzeConversationFlow = () => { + const allMessages: ConversationMessage[] = []; + + // Check if messages exist + if (!conversation.messages || !Array.isArray(conversation.messages)) { + console.warn('No messages found in conversation:', conversation); + return allMessages; + } + + // Convert JSONL messages to conversation messages + conversation.messages.forEach((msg) => { + // Parse the message content + let parsedMessage: any; + try { + parsedMessage = typeof msg.message === 'string' ? JSON.parse(msg.message) : msg.message; + } catch (e) { + parsedMessage = msg.message; + } + + // Determine the role based on the type field + let role: 'user' | 'assistant' | 'system' = 'user'; + if (msg.type === 'assistant') { + role = 'assistant'; + } else if (msg.type === 'system') { + role = 'system'; + } + + // Extract content based on message structure + let content = null; + if (parsedMessage) { + if (parsedMessage.content) { + content = parsedMessage.content; + } else if (parsedMessage.text) { + content = parsedMessage.text; + } else if (Array.isArray(parsedMessage)) { + content = parsedMessage; + } else if (typeof parsedMessage === 'string') { + content = parsedMessage; + } else { + content = parsedMessage; + } + } + + if (content) { + allMessages.push({ + role, + content, + timestamp: msg.timestamp, + turnNumber: undefined, // Not available in JSONL format + isNewInTurn: true, + }); + } + }); + + return allMessages; + }; + + const messages = analyzeConversationFlow(); + + // Debug logging to identify assistant response issues + console.log('Conversation Debug:', { + messageCount: conversation.messageCount, + totalMessages: messages.length, + messages: messages.map(m => ({ + role: m.role, + contentPreview: JSON.stringify(m.content)?.substring(0, 50), + turn: m.turnNumber, + ts: m.timestamp, + })), + }); + + if (messages.length === 0) { + return ( +
+
+ +
+

No messages found

+

This conversation appears to be empty

+
+ ); + } + + return ( +
+ {/* Conversation Flow Header */} +
+
toggleSection('flow')} + > +
+
+ +
+
+

+ Conversation Flow +
+ + + Conversation processed - + {messages.length} messages + +
+

+

+ {messages.length} messages โ€ข {conversation.messageCount} total +

+
+
+
+ + {new Date(messages[messages.length - 1]?.timestamp).toLocaleTimeString()} + + {expandedSections.has('flow') ? ( + + ) : ( + + )} +
+
+
+ + {/* Conversation Messages */} + {expandedSections.has('flow') && ( +
+ {messages.map((message, index) => ( + + ))} + + {/* Conversation Summary */} +
+
+
+
+ +
+
+
Conversation Summary
+
+ {messages.length} messages โ€ข {conversation.messageCount} total messages +
+
+
+
+
+ + Latest: {new Date().toLocaleTimeString()} +
+
+
+
+
+ )} +
+ ); +} \ No newline at end of file diff --git a/web/app/components/ImageContent.tsx b/web/app/components/ImageContent.tsx new file mode 100644 index 0000000..7be0a3d --- /dev/null +++ b/web/app/components/ImageContent.tsx @@ -0,0 +1,144 @@ +import { useState } from 'react'; +import { Image as ImageIcon, Download, Maximize2, X } from 'lucide-react'; + +interface ImageContentProps { + content: { + source?: { + type: string; + media_type: string; + data: string; + }; + data?: string; + media_type?: string; + }; +} + +export function ImageContent({ content }: ImageContentProps) { + const [isFullscreen, setIsFullscreen] = useState(false); + const [imageError, setImageError] = useState(false); + + // Extract image data and media type + let imageData: string | undefined; + let mediaType: string | undefined; + + if (content.source) { + // Claude API format + imageData = content.source.data; + mediaType = content.source.media_type; + } else if (content.data) { + // Alternative format + imageData = content.data; + mediaType = content.media_type || 'image/png'; + } + + if (!imageData) { + return ( +
+
+ + No image data available +
+
+ ); + } + + // Ensure the data URI is properly formatted + const dataUri = imageData.startsWith('data:') + ? imageData + : `data:${mediaType || 'image/png'};base64,${imageData}`; + + const handleDownload = () => { + const link = document.createElement('a'); + link.href = dataUri; + link.download = `image-${Date.now()}.${mediaType?.split('/')[1] || 'png'}`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + }; + + if (imageError) { + return ( +
+
+ + Failed to load image +
+
+ + Show raw data + +
+            {JSON.stringify(content, null, 2)}
+          
+
+
+ ); + } + + return ( + <> +
+
+
+ + + Image ({mediaType || 'unknown type'}) + +
+
+ + +
+
+
+ Content image setIsFullscreen(true)} + onError={() => setImageError(true)} + /> +
+
+ + {/* Fullscreen Modal */} + {isFullscreen && ( +
setIsFullscreen(false)} + > +
+ + Content image (fullscreen) e.stopPropagation()} + /> +
+
+ )} + + ); +} \ No newline at end of file diff --git a/web/app/components/MessageContent.tsx b/web/app/components/MessageContent.tsx new file mode 100644 index 0000000..c45feb1 --- /dev/null +++ b/web/app/components/MessageContent.tsx @@ -0,0 +1,400 @@ +import { useState } from 'react'; +import { ChevronDown, ChevronRight, Wrench, Code, FileText, Database, AlertCircle } from 'lucide-react'; +import { ToolResult } from './ToolResult'; +import { ToolUse } from './ToolUse'; +import { ImageContent } from './ImageContent'; +import { formatLargeText } from '../utils/formatters'; + +interface ContentItem { + type: string; + text?: string; + content?: any; + name?: string; + id?: string; + input?: Record; + tool_call_id?: string; + is_error?: boolean; +} + +interface MessageContentProps { + content: ContentItem | ContentItem[] | string; +} + +export function MessageContent({ content }: MessageContentProps) { + // Handle string content + if (typeof content === 'string') { + // Check if content contains system reminders + if (content.includes('')) { + return ; + } + + return ( +
+ ); + } + + // Handle array of content items + if (Array.isArray(content)) { + return ( +
+ {content.map((item, index) => ( +
+ +
+ ))} +
+ ); + } + + // Handle single content item + if (content && typeof content === 'object') { + switch (content.type) { + case 'text': + // Check if this text contains tool definitions + if (content.text && content.text.includes('')) { + return ; + } + // Check if this text contains system reminders + if (content.text && content.text.includes('')) { + return ; + } + return ( +
+ ); + + case 'tool_use': + return ( + + ); + + case 'tool_result': + // Handle both content.text and content.content structures + const resultContent = content.text || content.content || content; + return ( + + ); + + case 'image': + return ; + + default: + return ( +
+
+ + Unknown content type: {content.type} +
+
+ + Show raw content + +
+                {JSON.stringify(content, null, 2)}
+              
+
+
+ ); + } + } + + // Fallback + return ( +
+
+ + Unable to render content +
+
+ + Show raw content + +
+          {JSON.stringify(content, null, 2)}
+        
+
+
+ ); +} + +// Component to handle tool definitions in system prompts +function ToolDefinitions({ text }: { text: string }) { + const [isExpanded, setIsExpanded] = useState(false); + + const functionsMatch = text.match(/([\s\S]*?)<\/functions>/); + if (!functionsMatch) { + return ( +
+ ); + } + + const functionsText = functionsMatch[1]; + const beforeFunctions = text.substring(0, functionsMatch.index!); + const afterFunctions = text.substring(functionsMatch.index! + functionsMatch[0].length); + + // Parse individual function definitions + const functionMatches = [...functionsText.matchAll(/([\s\S]*?)<\/function>/g)]; + + return ( +
+ {beforeFunctions && ( +
+ )} + +
+
+
+
+ +
+
+
+ Available Tools + +
+
+ {functionMatches.length} tools defined for this conversation +
+
+
+ +
+ + {isExpanded && ( +
+ {functionMatches.map((match, index) => ( + + ))} +
+ )} +
+ + {afterFunctions && ( +
+ )} +
+ ); +} + +// Component to render individual tool definition +function ToolDefinition({ functionText, index }: { functionText: string; index: number }) { + const [showDetails, setShowDetails] = useState(false); + + try { + const toolDef = JSON.parse(functionText); + const paramCount = toolDef.parameters?.properties ? Object.keys(toolDef.parameters.properties).length : 0; + const requiredParams = toolDef.parameters?.required || []; + + return ( +
+
+
+
+ +
+
+ {toolDef.name} +
+ + {paramCount} params + + {requiredParams.length > 0 && ( + + {requiredParams.length} required + + )} +
+
+
+ +
+ +
+ {toolDef.description || 'No description available'} +
+ + {showDetails && ( +
+ {toolDef.parameters?.properties && ( +
+
Parameters:
+
+ {Object.entries(toolDef.parameters.properties).map(([name, param]: [string, any]) => ( +
+
+ {name} + {requiredParams.includes(name) ? ( + + required + + ) : ( + + optional + + )} + {param.type || 'any'} +
+
+ {param.description || 'No description'} +
+
+ ))} +
+
+ )} + +
+ + Show raw definition + +
+                {JSON.stringify(toolDef, null, 2)}
+              
+
+
+ )} +
+ ); + } catch (e) { + return ( +
+
+ + Invalid Tool Definition #{index + 1} +
+
+          {functionText}
+        
+
+ ); + } +} + +// Component to handle system reminder content +function SystemReminderContent({ content }: { content: string }) { + const [showReminders, setShowReminders] = useState(false); + + // Split content into regular and system reminder parts + const parts: Array<{ type: 'text' | 'reminder'; content: string }> = []; + const reminderRegex = /([\s\S]*?)<\/system-reminder>/g; + let lastIndex = 0; + let match; + + while ((match = reminderRegex.exec(content)) !== null) { + // Add text before the reminder + if (match.index > lastIndex) { + const textPart = content.substring(lastIndex, match.index).trim(); + if (textPart) { + parts.push({ type: 'text', content: textPart }); + } + } + + // Add the reminder + parts.push({ type: 'reminder', content: match[1].trim() }); + lastIndex = match.index + match[0].length; + } + + // Add any remaining text + if (lastIndex < content.length) { + const textPart = content.substring(lastIndex).trim(); + if (textPart) { + parts.push({ type: 'text', content: textPart }); + } + } + + const reminderCount = parts.filter(p => p.type === 'reminder').length; + const hasNonReminderContent = parts.some(p => p.type === 'text'); + + return ( +
+ {/* Regular content */} + {parts.filter(p => p.type === 'text').map((part, index) => ( +
+ ))} + + {/* System reminder indicator/toggle */} + {reminderCount > 0 && ( +
+ + + {/* System reminder content */} + {showReminders && ( +
+ {parts.filter(p => p.type === 'reminder').map((part, index) => ( +
+
+ +
{part.content}
+
+
+ ))} +
+ )} +
+ )} + +
+ ); +} \ No newline at end of file diff --git a/web/app/components/MessageFlow.tsx b/web/app/components/MessageFlow.tsx new file mode 100644 index 0000000..cb50167 --- /dev/null +++ b/web/app/components/MessageFlow.tsx @@ -0,0 +1,282 @@ +import { useState } from 'react'; +import { User, Bot, Settings, ChevronDown, ChevronRight, Clock, Sparkles, ArrowDown } from 'lucide-react'; +import { MessageContent } from './MessageContent'; +import { formatLargeText } from '../utils/formatters'; + +interface ConversationMessage { + role: 'user' | 'assistant' | 'system'; + content: any; + timestamp: string; + turnNumber?: number; + isNewInTurn?: boolean; + isDuplicate?: boolean; +} + +interface MessageFlowProps { + message: ConversationMessage; + index: number; + isLast: boolean; + totalMessages: number; +} + +export function MessageFlow({ message, index, isLast, totalMessages }: MessageFlowProps) { + const [isExpanded, setIsExpanded] = useState(false); + + const getRoleConfig = () => { + switch (message.role) { + case 'user': + return { + icon: , + bgColor: 'bg-blue-50', + borderColor: 'border-blue-200', + accentColor: 'border-l-blue-500', + textColor: 'text-blue-900', + titleColor: 'text-blue-700', + name: 'User' + }; + case 'assistant': + return { + icon: , + bgColor: 'bg-gray-50', + borderColor: 'border-gray-200', + accentColor: 'border-l-gray-500', + textColor: 'text-gray-900', + titleColor: 'text-gray-700', + name: 'Assistant' + }; + case 'system': + return { + icon: , + bgColor: 'bg-amber-50', + borderColor: 'border-amber-200', + accentColor: 'border-l-amber-500', + textColor: 'text-amber-900', + titleColor: 'text-amber-700', + name: 'System' + }; + default: + return { + icon: , + bgColor: 'bg-gray-50', + borderColor: 'border-gray-200', + accentColor: 'border-l-gray-500', + textColor: 'text-gray-900', + titleColor: 'text-gray-700', + name: 'Unknown' + }; + } + }; + + const roleConfig = getRoleConfig(); + + // Helper function to check if content is a system reminder + const isSystemReminder = (text: string) => { + return text.includes('') || text.includes(''); + }; + + // Helper function to extract non-system-reminder content for preview + const extractNonSystemContent = (content: string) => { + // Split by system-reminder tags and filter out the reminder parts + const parts = content.split(/[\s\S]*?<\/system-reminder>/g); + return parts.filter(part => part.trim()).join(' ').trim(); + }; + + // Determine if content should be expandable + const getContentPreview = () => { + if (typeof message.content === 'string') { + const nonSystemContent = extractNonSystemContent(message.content); + if (!nonSystemContent && isSystemReminder(message.content)) { + return "[System reminder]"; + } + return nonSystemContent.length > 300 ? nonSystemContent.substring(0, 300) + '...' : nonSystemContent; + } + + if (Array.isArray(message.content)) { + const allText = message.content + .filter(c => c.type === 'text' && c.text) + .map(c => { + const nonSystemContent = extractNonSystemContent(c.text); + return nonSystemContent; + }) + .filter(text => text) + .join('\\n'); + + if (!allText) { + const hasToolUse = message.content.some(c => c.type === 'tool_use'); + const hasSystemReminder = message.content.some(c => c.type === 'text' && c.text && isSystemReminder(c.text)); + if (hasToolUse) return "[Tool call]"; + if (hasSystemReminder) return "[System reminder]"; + return "[Context message]"; + } + + return allText.length > 300 ? allText.substring(0, 300) + '...' : allText; + } + + if (message.content?.type) { + return `[${message.content.type.replace('_', ' ')}]`; + } + + try { + const str = JSON.stringify(message.content, null, 2); + return str.length > 300 ? str.substring(0, 300) + '...' : str; + } catch { + return '[Complex content]'; + } + }; + + const shouldShowExpander = () => { + if (typeof message.content === 'string') { + // Show expander if content is long OR contains system reminders + return message.content.length > 300 || isSystemReminder(message.content); + } + + if (Array.isArray(message.content)) { + const allText = message.content + .filter(c => c.type === 'text' && c.text) + .map(c => c.text) + .join('\\n'); + return allText.length > 300 || message.content.length > 1; + } + + return true; + }; + + const formatTimestamp = (timestamp: string) => { + try { + const date = new Date(timestamp); + return date.toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + hour12: true + }); + } catch { + return timestamp; + } + }; + + return ( +
+ {/* Connection line to next message */} + {!isLast && ( +
+ )} + + {/* Message container */} +
+ {/* New message indicator */} + {message.isNewInTurn && ( +
+ )} + +
+
+ {/* Avatar */} +
+
+ {roleConfig.icon} +
+
+ + {/* Message content */} +
+ {/* Header */} +
+
+ + {roleConfig.name} + + {message.isNewInTurn && ( + + NEW + + )} + + #{index + 1} + + {message.turnNumber && ( + + Turn {message.turnNumber} + + )} +
+
+
+ + {formatTimestamp(message.timestamp)} +
+
+
+ + {/* Content */} +
+ {shouldShowExpander() && !isExpanded ? ( +
+
+ {typeof message.content === 'string' ? ( +
+ ) : ( +
+
+ {Array.isArray(message.content) ? ( + `Message contains ${message.content.length} content blocks` + ) : ( + 'Complex content' + )} +
+ {Array.isArray(message.content) && ( +
+ {message.content.map(item => item.type).join(' โ†’ ')} +
+ )} +
+ {getContentPreview()} +
+
+ )} +
+ +
+ ) : ( +
+ {shouldShowExpander() && isExpanded && ( +
+ +
+ )} + +
+ )} +
+
+
+
+ + {/* Flow indicator */} + {!isLast && ( +
+ +
+ )} +
+
+ ); +} \ No newline at end of file diff --git a/web/app/components/RequestDetailContent.tsx b/web/app/components/RequestDetailContent.tsx new file mode 100644 index 0000000..5140908 --- /dev/null +++ b/web/app/components/RequestDetailContent.tsx @@ -0,0 +1,789 @@ +import { useState } from 'react'; +import { + ChevronDown, + Info, + Settings, + Cpu, + MessageCircle, + Brain, + User, + Bot, + Target, + Copy, + Check, + ArrowLeftRight, + Activity, + Clock, + Wifi, + Calendar, + List, + FileText +} from 'lucide-react'; +import { MessageContent } from './MessageContent'; +import { formatJSON } from '../utils/formatters'; + +interface Request { + id: number; + timestamp: string; + method: string; + endpoint: string; + headers: Record; + body?: { + model?: string; + messages?: Array<{ + role: string; + content: any; + }>; + system?: Array<{ + text: string; + type: string; + cache_control?: { type: string }; + }>; + max_tokens?: number; + temperature?: number; + stream?: boolean; + }; + response?: { + statusCode: number; + headers: Record; + body?: any; + bodyText?: string; + responseTime: number; + streamingChunks?: string[]; + isStreaming: boolean; + completedAt: string; + }; + promptGrade?: { + score: number; + criteria: Record; + feedback: string; + improvedPrompt: string; + gradingTimestamp: string; + }; +} + +interface RequestDetailContentProps { + request: Request; + onGrade: () => void; +} + +export default function RequestDetailContent({ request, onGrade }: RequestDetailContentProps) { + const [expandedSections, setExpandedSections] = useState>({ + overview: true, + conversation: true + }); + const [copied, setCopied] = useState>({}); + + const toggleSection = (section: string) => { + setExpandedSections(prev => ({ + ...prev, + [section]: !prev[section] + })); + }; + + const handleCopy = async (content: string, key: string) => { + try { + await navigator.clipboard.writeText(content); + setCopied(prev => ({ ...prev, [key]: true })); + setTimeout(() => { + setCopied(prev => ({ ...prev, [key]: false })); + }, 2000); + } catch (error) { + console.error('Failed to copy to clipboard:', error); + } + }; + + const getMethodColor = (method: string) => { + const colors = { + 'GET': 'bg-green-50 text-green-700 border border-green-200', + 'POST': 'bg-blue-50 text-blue-700 border border-blue-200', + 'PUT': 'bg-yellow-50 text-yellow-700 border border-yellow-200', + 'DELETE': 'bg-red-50 text-red-700 border border-red-200' + }; + return colors[method as keyof typeof colors] || 'bg-gray-50 text-gray-700 border border-gray-200'; + }; + + const canGradeRequest = (request: Request) => { + return request.body && + request.body.messages && + request.body.messages.some(msg => msg.role === 'user') && + request.endpoint.includes('/messages'); + }; + + return ( +
+ {/* Request Overview */} +
+
+

+ + Request Overview +

+ {/* {!request.promptGrade && canGradeRequest(request) && ( + + )} */} +
+
+
+
+ Method: + + {request.method} + +
+
+ Endpoint: + + {request.endpoint} + +
+
+
+
+ Timestamp: + {new Date(request.timestamp).toLocaleString()} +
+
+ User Agent: + {request.headers['User-Agent']?.[0] || 'N/A'} +
+
+
+
+ + {/* Headers */} +
+
toggleSection('headers')} + > +
+

+ + Request Headers +

+ +
+
+ {expandedSections.headers && ( +
+
+
+ Headers + +
+
+                {formatJSON(request.headers)}
+              
+
+
+ )} +
+ + {request.body && ( + <> + {/* System Messages */} + {request.body.system && ( +
+
toggleSection('system')} + > +
+

+ + System Instructions + + {request.body.system.length} items + +

+ +
+
+ {expandedSections.system && ( +
+ {request.body.system.map((sys, index) => ( +
+
+ System Message #{index + 1} + {sys.cache_control && ( + + Cache: {sys.cache_control.type} + + )} +
+
+ +
+
+ ))} +
+ )} +
+ )} + + {/* Conversation */} + {request.body.messages && ( +
+
toggleSection('conversation')} + > +
+

+ + Conversation + + {request.body.messages.length} messages + +

+ +
+
+ {expandedSections.conversation && ( +
+ {request.body.messages.map((message, index) => ( + + ))} +
+ )} +
+ )} + + {/* Model Configuration */} +
+
toggleSection('model')} + > +
+

+ + Model Configuration +

+ +
+
+ {expandedSections.model && ( +
+
+
+
Model
+
{request.body.model || 'N/A'}
+
+
+
Max Tokens
+
+ {request.body.max_tokens?.toLocaleString() || 'N/A'} +
+
+
+
Temperature
+
{request.body.temperature ?? 'N/A'}
+
+
+
Stream
+
+ {request.body.stream ? 'โœ… Yes' : 'โŒ No'} +
+
+
+
+ )} +
+ + )} + + {/* API Response */} + {request.response && ( + + )} + + {/* Prompt Grading Results */} + {request.promptGrade && ( + + )} +
+ ); +} + +// Message bubble component +function MessageBubble({ message, index }: { message: any; index: number }) { + const roleColors = { + 'user': 'bg-blue-50 border border-blue-200', + 'assistant': 'bg-gray-50 border border-gray-200', + 'system': 'bg-yellow-50 border border-yellow-200' + }; + + const roleIcons = { + 'user': User, + 'assistant': Bot, + 'system': Settings + }; + + const roleIconColors = { + 'user': 'text-blue-600', + 'assistant': 'text-gray-600', + 'system': 'text-yellow-600' + }; + + const Icon = roleIcons[message.role as keyof typeof roleIcons] || User; + + return ( +
+
+
+
+ +
+ {message.role} + + #{index + 1} + +
+
+
+ +
+
+ ); +} + +// Placeholder for prompt grading results - you can expand this +function PromptGradingResults({ promptGrade }: { promptGrade: any }) { + return ( +
+

Prompt Quality Analysis

+
+
+ Overall Score: + {promptGrade.score}/5 +
+
+

{promptGrade.feedback}

+
+
+
+ ); +} + +// Response Details Component +function ResponseDetails({ response }: { response: NonNullable }) { + const [expandedSections, setExpandedSections] = useState>({ + overview: true + }); + const [copied, setCopied] = useState>({}); + + const toggleSection = (section: string) => { + setExpandedSections(prev => ({ + ...prev, + [section]: !prev[section] + })); + }; + + const handleCopy = async (content: string, key: string) => { + try { + await navigator.clipboard.writeText(content); + setCopied(prev => ({ ...prev, [key]: true })); + setTimeout(() => { + setCopied(prev => ({ ...prev, [key]: false })); + }, 2000); + } catch (error) { + console.error('Failed to copy to clipboard:', error); + } + }; + + const getStatusColor = (statusCode: number) => { + if (statusCode >= 200 && statusCode < 300) { + return { bg: 'bg-green-50', border: 'border-green-200', text: 'text-green-700', icon: 'text-green-600' }; + } + if (statusCode >= 400 && statusCode < 500) { + return { bg: 'bg-yellow-50', border: 'border-yellow-200', text: 'text-yellow-700', icon: 'text-yellow-600' }; + } + if (statusCode >= 500) { + return { bg: 'bg-red-50', border: 'border-red-200', text: 'text-red-700', icon: 'text-red-600' }; + } + return { bg: 'bg-gray-50', border: 'border-gray-200', text: 'text-gray-700', icon: 'text-gray-600' }; + }; + + // Parse streaming chunks to extract the final assembled text + const parseStreamingResponse = (chunks: string[]) => { + let assembledText = ''; + let rawData = chunks.join(''); + + try { + // Split by lines and process each SSE event + const lines = rawData.split('\n').filter(line => line.trim()); + + for (const line of lines) { + // Look for data lines in SSE format + if (line.startsWith('data: ')) { + const jsonStr = line.substring(6).trim(); + + // Skip non-JSON lines (like "data: [DONE]") + if (!jsonStr.startsWith('{')) continue; + + try { + const eventData = JSON.parse(jsonStr); + + // Extract text from content_block_delta events + if (eventData.type === 'content_block_delta' && + eventData.delta && + eventData.delta.type === 'text_delta' && + typeof eventData.delta.text === 'string') { + assembledText += eventData.delta.text; + } + } catch (parseError) { + // Skip malformed JSON + continue; + } + } + } + + // If we successfully extracted text, return it + if (assembledText.trim().length > 0) { + return { + finalText: assembledText, + isFormatted: true, + rawData: rawData + }; + } + + // Fallback: try to find any text content in the raw data + const textMatches = rawData.match(/"text":"([^"]+)"/g); + if (textMatches) { + let fallbackText = ''; + for (const match of textMatches) { + const text = match.match(/"text":"([^"]+)"/)?.[1]; + if (text) { + // Unescape common JSON escape sequences + fallbackText += text.replace(/\\n/g, '\n').replace(/\\"/g, '"').replace(/\\\\/g, '\\'); + } + } + if (fallbackText.trim()) { + return { + finalText: fallbackText, + isFormatted: true, + rawData: rawData + }; + } + } + + } catch (error) { + console.warn('Error parsing streaming response:', error); + } + + // Ultimate fallback to raw concatenation + return { + finalText: rawData, + isFormatted: false, + rawData: rawData + }; + }; + + const statusColors = getStatusColor(response.statusCode); + const completedAt = response.completedAt ? new Date(response.completedAt).toLocaleString() : 'Unknown'; + + return ( +
+
toggleSection('overview')} + > +
+

+ + API Response + + {response.statusCode} + +

+ +
+
+ + {expandedSections.overview && ( +
+ {/* Response Overview */} +
+
+
+ + Status +
+
{response.statusCode}
+
+ {response.statusCode >= 200 && response.statusCode < 300 ? 'Success' : + response.statusCode >= 400 && response.statusCode < 500 ? 'Client Error' : + response.statusCode >= 500 ? 'Server Error' : 'Unknown'} +
+
+ +
+
+ + Response Time +
+
{response.responseTime}ms
+
+ {response.responseTime < 1000 ? 'Fast' : response.responseTime < 3000 ? 'Normal' : 'Slow'} +
+
+ +
+
+ + Type +
+
+ {response.isStreaming ? 'Stream' : 'Single'} +
+
+ {response.isStreaming ? 'Streaming' : 'Complete'} +
+
+ +
+
+ + Completed +
+
{completedAt.split(' ')[1] || 'N/A'}
+
{completedAt.split(' ')[0] || ''}
+
+
+ + {/* Response Headers */} + {response.headers && ( +
+
toggleSection('responseHeaders')} + > +
+
+ + Response Headers + + {Object.keys(response.headers).length} + +
+ +
+
+ {expandedSections.responseHeaders && ( +
+
+
+ Headers + +
+
+                      {formatJSON(response.headers)}
+                    
+
+
+ )} +
+ )} + + {/* Response Body */} + {(response.body || response.bodyText) && ( +
+
toggleSection('responseBody')} + > +
+
+ + Response Body + + {response.body ? 'JSON' : 'Text'} + +
+ +
+
+ {expandedSections.responseBody && ( +
+
+
+ Response + +
+
+                      {response.body ? formatJSON(response.body) : response.bodyText}
+                    
+
+
+ )} +
+ )} + + {/* Streaming Response */} + {response.isStreaming && response.streamingChunks && response.streamingChunks.length > 0 && (() => { + const parsed = parseStreamingResponse(response.streamingChunks); + return ( +
+
toggleSection('streamingResponse')} + > +
+
+ + Streaming Response + + {response.streamingChunks.length} chunks + + {parsed.isFormatted && ( + + Parsed + + )} +
+ +
+
+ {expandedSections.streamingResponse && ( +
+ {/* Clean Parsed Response */} + {parsed.isFormatted && ( +
+
+
+ + Final Response (Clean) +
+ +
+
+
+                            {parsed.finalText}
+                          
+
+
+ Extracted clean text from streaming chunks +
+
+ )} + + {/* Raw Data (Collapsible) */} +
+
toggleSection('rawStreamingData')} + > + + + Raw Streaming Data + + +
+ {expandedSections.rawStreamingData && ( +
+
+ SSE Events & Metadata + +
+
+                            {parsed.rawData}
+                          
+
+ )} +
+ +
+ {parsed.isFormatted + ? `Successfully parsed ${response.streamingChunks.length} streaming chunks` + : `Raw display of ${response.streamingChunks.length} streaming chunks (parsing failed)` + } +
+
+ )} +
+ ); + })()} +
+ )} +
+ ); +} \ No newline at end of file diff --git a/web/app/components/TodoList.tsx b/web/app/components/TodoList.tsx new file mode 100644 index 0000000..644586c --- /dev/null +++ b/web/app/components/TodoList.tsx @@ -0,0 +1,195 @@ +import { CheckSquare, Square, Clock, AlertCircle, ListTodo } from 'lucide-react'; + +interface Todo { + task?: string; + description?: string; + content?: string; + title?: string; + text?: string; + priority: 'high' | 'medium' | 'low'; + status: 'pending' | 'in_progress' | 'completed'; + [key: string]: any; // Allow other properties +} + +interface TodoListProps { + todos: Todo[]; +} + +export function TodoList({ todos }: TodoListProps) { + // Debug: Log the structure of the first todo + if (todos && todos.length > 0) { + console.log('Todo structure:', todos[0]); + } + + if (!todos || todos.length === 0) { + return ( +
+ +

No tasks in the todo list

+
+ ); + } + + const getPriorityColor = (priority: string) => { + switch (priority) { + case 'high': + return 'text-red-600 bg-red-50 border-red-200'; + case 'medium': + return 'text-yellow-600 bg-yellow-50 border-yellow-200'; + case 'low': + return 'text-green-600 bg-green-50 border-green-200'; + default: + return 'text-gray-600 bg-gray-50 border-gray-200'; + } + }; + + const getStatusIcon = (status: string) => { + switch (status) { + case 'completed': + return ; + case 'in_progress': + return ; + case 'pending': + return ; + default: + return ; + } + }; + + const getStatusColor = (status: string) => { + switch (status) { + case 'completed': + return 'bg-green-50 border-green-200'; + case 'in_progress': + return 'bg-blue-50 border-blue-200'; + case 'pending': + return 'bg-gray-50 border-gray-200'; + default: + return 'bg-gray-50 border-gray-200'; + } + }; + + // Group todos by status + const groupedTodos = { + in_progress: todos.filter(t => t.status === 'in_progress'), + pending: todos.filter(t => t.status === 'pending'), + completed: todos.filter(t => t.status === 'completed') + }; + + return ( +
+ {/* Summary stats */} +
+
+ + Todo List +
+
+ {groupedTodos.in_progress.length > 0 && ( + + {groupedTodos.in_progress.length} in progress + + )} + {groupedTodos.pending.length > 0 && ( + + {groupedTodos.pending.length} pending + + )} + {groupedTodos.completed.length > 0 && ( + + {groupedTodos.completed.length} completed + + )} +
+
+ + {/* Todo items */} +
+ {/* In Progress items first */} + {groupedTodos.in_progress.map((todo, index) => ( + + ))} + + {/* Pending items */} + {groupedTodos.pending.map((todo, index) => ( + + ))} + + {/* Completed items last */} + {groupedTodos.completed.map((todo, index) => ( + + ))} +
+
+ ); +} + +function TodoItem({ todo }: { todo: Todo }) { + // Get the task text from various possible property names + const getTaskText = (todo: Todo): string => { + return todo.task || todo.description || todo.content || todo.title || todo.text || + Object.entries(todo).find(([key, value]) => + typeof value === 'string' && + !['priority', 'status'].includes(key) + )?.[1] || + 'No task description'; + }; + + const taskText = getTaskText(todo); + const getPriorityColor = (priority: string) => { + switch (priority) { + case 'high': + return 'text-red-600 bg-red-50 border-red-200'; + case 'medium': + return 'text-yellow-600 bg-yellow-50 border-yellow-200'; + case 'low': + return 'text-green-600 bg-green-50 border-green-200'; + default: + return 'text-gray-600 bg-gray-50 border-gray-200'; + } + }; + + const getStatusIcon = (status: string) => { + switch (status) { + case 'completed': + return ; + case 'in_progress': + return ; + case 'pending': + return ; + default: + return ; + } + }; + + const getStatusColor = (status: string) => { + switch (status) { + case 'completed': + return 'bg-green-50 border-green-200'; + case 'in_progress': + return 'bg-blue-50 border-blue-200'; + case 'pending': + return 'bg-gray-50 border-gray-200'; + default: + return 'bg-gray-50 border-gray-200'; + } + }; + + return ( +
+
+ {getStatusIcon(todo.status)} +
+
+

+ {taskText} +

+
+
+ + {todo.priority} + +
+
+ ); +} \ No newline at end of file diff --git a/web/app/components/ToolResult.tsx b/web/app/components/ToolResult.tsx new file mode 100644 index 0000000..b51901c --- /dev/null +++ b/web/app/components/ToolResult.tsx @@ -0,0 +1,257 @@ +import { useState } from 'react'; +import { ChevronDown, ChevronRight, CheckCircle, AlertCircle, FileText, Database, Clock } from 'lucide-react'; +import { formatValue, formatJSON, isComplexObject, truncateText } from '../utils/formatters'; +import { CodeViewer } from './CodeViewer'; + +interface ToolResultProps { + content: any; + toolId?: string; + isError?: boolean; +} + +export function ToolResult({ content, toolId, isError = false }: ToolResultProps) { + const [isExpanded, setIsExpanded] = useState(false); + + // Detect if this is likely code content from a Read tool + const isCodeContent = (content: string): boolean => { + if (typeof content !== 'string') return false; + + // Check for line numbers pattern (e.g., " 1โ†’" from cat -n output) + const hasLineNumbers = /^\s*\d+โ†’/m.test(content); + + // Check for common code patterns + const hasCodePatterns = ( + content.includes('function') || + content.includes('const ') || + content.includes('let ') || + content.includes('var ') || + content.includes('import ') || + content.includes('export ') || + content.includes('class ') || + content.includes('interface ') || + content.includes('type ') || + content.includes('def ') || + content.includes('if (') || + content.includes('for (') || + content.includes('while (') || + content.includes('{') && content.includes('}') + ); + + // Check for file extension indicators in the content + const hasFileExtension = /\.(js|jsx|ts|tsx|py|rb|go|rs|java|cpp|c|h|cs|php|swift|kt|scala|r|sh|bash|sql|html|css|json|yaml|yml|toml|md|xml)$/m.test(content); + + return hasLineNumbers || (hasCodePatterns && content.length > 100); + }; + + // Extract code from cat -n format if present + const extractCodeFromCatN = (content: string): { code: string; fileName?: string } => { + if (typeof content !== 'string') return { code: content }; + + // Check if this is cat -n output + if (!/^\s*\d+โ†’/m.test(content)) { + return { code: content }; + } + + // Extract the code by removing line numbers + const lines = content.split('\n'); + const codeLines = lines.map(line => { + // Match line number pattern and extract the code part + const match = line.match(/^\s*\d+โ†’(.*)$/); + return match ? match[1] : line; + }); + + return { code: codeLines.join('\n') }; + }; + + // Handle different content structures + const getDisplayContent = () => { + // If content is a string, return it directly + if (typeof content === 'string') { + return content; + } + + // If content has a 'text' property, use that + if (content && typeof content === 'object' && 'text' in content) { + return content.text; + } + + // If content has a 'content' property, use that + if (content && typeof content === 'object' && 'content' in content) { + return content.content; + } + + // If it's an array, join with newlines + if (Array.isArray(content)) { + return content.map(item => formatValue(item)).join('\n'); + } + + // For complex objects, show JSON + if (isComplexObject(content)) { + return formatJSON(content); + } + + // Fallback to string conversion + return formatValue(content); + }; + + const displayContent = getDisplayContent(); + const isLargeContent = displayContent.length > 500; + const shouldTruncate = isLargeContent && !isExpanded; + const truncatedContent = shouldTruncate ? truncateText(displayContent, 500) : displayContent; + + // Determine if content should be rendered as JSON + const isJSONContent = isComplexObject(content) || (typeof content === 'string' && content.startsWith('{')); + + // Check if this is code content + const isCode = isCodeContent(displayContent); + const { code: extractedCode } = isCode ? extractCodeFromCatN(displayContent) : { code: displayContent }; + + const getResultConfig = () => { + if (isError) { + return { + bgColor: 'bg-gradient-to-r from-red-50 to-pink-50', + borderColor: 'border-red-200', + accentColor: 'border-l-red-500', + iconBg: 'bg-red-100', + iconColor: 'text-red-600', + titleColor: 'text-red-900', + icon: , + title: 'Tool Error' + }; + } + + return { + bgColor: 'bg-gradient-to-r from-emerald-50 to-green-50', + borderColor: 'border-emerald-200', + accentColor: 'border-l-emerald-500', + iconBg: 'bg-emerald-100', + iconColor: 'text-emerald-600', + titleColor: 'text-emerald-900', + icon: , + title: 'Tool Result' + }; + }; + + const config = getResultConfig(); + + return ( +
+ {/* Header */} +
+
+
+
+ {config.icon} +
+
+
+
+ + {config.title} + + +
+ {toolId && ( +
+ + + {toolId} + +
+ )} +
+
+ + {isLargeContent && ( + + )} +
+ + {/* Content */} +
+
+ {/* Content type indicator */} +
+
+ + Result received +
+
+ + {isCode ? 'Code' : isJSONContent ? 'JSON' : 'Text'} + + {!isCode && ( + + {displayContent.length} chars + + )} +
+
+ + {/* Main content */} + {isCode ? ( + + ) : isJSONContent ? ( +
+              {truncatedContent}
+            
+ ) : ( +
') + }} + /> + )} + + {/* Expand/collapse controls */} + {shouldTruncate && !isCode && ( +
+ +
+ )} +
+
+ + {/* Metadata */} + {content && typeof content === 'object' && Object.keys(content).length > 1 && ( +
+
+ + + Show raw data structure + +
+
+                {formatJSON(content)}
+              
+
+
+
+ )} + + {/* Result indicator */} +
+
+
+ {isError ? 'Execution failed' : 'Execution completed'} +
+
+
+ ); +} \ No newline at end of file diff --git a/web/app/components/ToolUse.tsx b/web/app/components/ToolUse.tsx new file mode 100644 index 0000000..46084a4 --- /dev/null +++ b/web/app/components/ToolUse.tsx @@ -0,0 +1,209 @@ +import { useState } from 'react'; +import { Wrench, ChevronDown, ChevronRight, Copy, Check, Terminal, Zap } from 'lucide-react'; +import { formatValue, formatJSON, isComplexObject } from '../utils/formatters'; +import { CodeDiff } from './CodeDiff'; +import { TodoList } from './TodoList'; + +interface ToolUseProps { + name: string; + id: string; + input?: Record; + text?: string; +} + +export function ToolUse({ name, id, input = {}, text }: ToolUseProps) { + const [isExpanded, setIsExpanded] = useState(false); + const [copied, setCopied] = useState(false); + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(formatJSON({ name, id, input })); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (error) { + console.error('Failed to copy to clipboard:', error); + } + }; + + const renderParameterValue = (value: any) => { + if (typeof value === 'string') { + if (value.length > 200 || value.includes('\n')) { + return ( +
+ + {isExpanded && ( +
+                {value}
+              
+ )} +
+ ); + } + return {value}; + } + + if (isComplexObject(value)) { + return ( +
+ + Show object ({Object.keys(value).length} properties) + +
+            {formatJSON(value)}
+          
+
+ ); + } + + return {formatValue(value)}; + }; + + return ( +
+ {/* Header */} +
+
+
+ +
+
+
+ Tool Execution + +
+
+ + + {name} + +
+
+
+
+ + {id} + + +
+
+ + {/* Special handling for Edit tool - show code diff */} + {name === 'Edit' && input.old_string && input.new_string && ( +
+
Code Changes
+ +
+ )} + + {/* Special handling for Read tool - show code with syntax highlighting */} + {name === 'Read' && input.file_path && ( +
+
File Contents
+ {/* Note: The actual file content will be in the tool result, not the input */} +
+ Reading: {input.file_path} +
+
+ )} + + {/* Special handling for TodoWrite tool - show todo list */} + {name === 'TodoWrite' && input.todos && Array.isArray(input.todos) && ( +
+
Task Management
+ +
+ )} + + {/* Parameters */} + {Object.keys(input).length > 0 && ( +
+
+
+ Parameters + + {Object.keys(input).length} + +
+ {Object.keys(input).length > 2 && ( + + )} +
+ + {/* Don't show raw parameters for Edit and TodoWrite tools since we have custom views */} + {name !== 'Edit' && name !== 'TodoWrite' && ( +
+
2 ? 'max-h-32 overflow-hidden' : ''}`}> + {Object.entries(input).map(([key, value]) => ( +
+ + {key}: + +
+ {renderParameterValue(value)} +
+
+ ))} +
+ + {!isExpanded && Object.keys(input).length > 2 && ( +
+ +
+ )} +
+ )} +
+ )} + + {/* Additional text */} + {text && ( +
+
Additional Information:
+
{text}
+
+ )} + + {/* Tool execution indicator */} +
+
+
+ Tool execution initiated +
+
+
+ ); +} \ No newline at end of file diff --git a/web/app/entry.client.tsx b/web/app/entry.client.tsx new file mode 100644 index 0000000..94d5dc0 --- /dev/null +++ b/web/app/entry.client.tsx @@ -0,0 +1,18 @@ +/** + * By default, Remix will handle hydrating your app on the client for you. + * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` โœจ + * For more information, see https://remix.run/file-conventions/entry.client + */ + +import { RemixBrowser } from "@remix-run/react"; +import { startTransition, StrictMode } from "react"; +import { hydrateRoot } from "react-dom/client"; + +startTransition(() => { + hydrateRoot( + document, + + + + ); +}); diff --git a/web/app/entry.server.tsx b/web/app/entry.server.tsx new file mode 100644 index 0000000..45db322 --- /dev/null +++ b/web/app/entry.server.tsx @@ -0,0 +1,140 @@ +/** + * By default, Remix will handle generating the HTTP Response for you. + * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` โœจ + * For more information, see https://remix.run/file-conventions/entry.server + */ + +import { PassThrough } from "node:stream"; + +import type { AppLoadContext, EntryContext } from "@remix-run/node"; +import { createReadableStreamFromReadable } from "@remix-run/node"; +import { RemixServer } from "@remix-run/react"; +import { isbot } from "isbot"; +import { renderToPipeableStream } from "react-dom/server"; + +const ABORT_DELAY = 5_000; + +export default function handleRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + remixContext: EntryContext, + // This is ignored so we can keep it in the template for visibility. Feel + // free to delete this parameter in your app if you're not using it! + // eslint-disable-next-line @typescript-eslint/no-unused-vars + loadContext: AppLoadContext +) { + return isbot(request.headers.get("user-agent") || "") + ? handleBotRequest( + request, + responseStatusCode, + responseHeaders, + remixContext + ) + : handleBrowserRequest( + request, + responseStatusCode, + responseHeaders, + remixContext + ); +} + +function handleBotRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + remixContext: EntryContext +) { + return new Promise((resolve, reject) => { + let shellRendered = false; + const { pipe, abort } = renderToPipeableStream( + , + { + onAllReady() { + shellRendered = true; + const body = new PassThrough(); + const stream = createReadableStreamFromReadable(body); + + responseHeaders.set("Content-Type", "text/html"); + + resolve( + new Response(stream, { + headers: responseHeaders, + status: responseStatusCode, + }) + ); + + pipe(body); + }, + onShellError(error: unknown) { + reject(error); + }, + onError(error: unknown) { + responseStatusCode = 500; + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } + }, + } + ); + + setTimeout(abort, ABORT_DELAY); + }); +} + +function handleBrowserRequest( + request: Request, + responseStatusCode: number, + responseHeaders: Headers, + remixContext: EntryContext +) { + return new Promise((resolve, reject) => { + let shellRendered = false; + const { pipe, abort } = renderToPipeableStream( + , + { + onShellReady() { + shellRendered = true; + const body = new PassThrough(); + const stream = createReadableStreamFromReadable(body); + + responseHeaders.set("Content-Type", "text/html"); + + resolve( + new Response(stream, { + headers: responseHeaders, + status: responseStatusCode, + }) + ); + + pipe(body); + }, + onShellError(error: unknown) { + reject(error); + }, + onError(error: unknown) { + responseStatusCode = 500; + // Log streaming rendering errors from inside the shell. Don't log + // errors encountered during initial shell rendering since they'll + // reject and get logged in handleDocumentRequest. + if (shellRendered) { + console.error(error); + } + }, + } + ); + + setTimeout(abort, ABORT_DELAY); + }); +} diff --git a/web/app/root.tsx b/web/app/root.tsx new file mode 100644 index 0000000..61c8b98 --- /dev/null +++ b/web/app/root.tsx @@ -0,0 +1,45 @@ +import { + Links, + Meta, + Outlet, + Scripts, + ScrollRestoration, +} from "@remix-run/react"; +import type { LinksFunction } from "@remix-run/node"; + +import "./tailwind.css"; + +export const links: LinksFunction = () => [ + { rel: "preconnect", href: "https://fonts.googleapis.com" }, + { + rel: "preconnect", + href: "https://fonts.gstatic.com", + crossOrigin: "anonymous", + }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap", + }, +]; + +export function Layout({ children }: { children: React.ReactNode }) { + return ( + + + + + + + + + {children} + + + + + ); +} + +export default function App() { + return ; +} diff --git a/web/app/routes/_index.tsx b/web/app/routes/_index.tsx new file mode 100644 index 0000000..2f34a1e --- /dev/null +++ b/web/app/routes/_index.tsx @@ -0,0 +1,917 @@ +import type { MetaFunction } from "@remix-run/node"; +import { useState, useEffect, useTransition } from "react"; +import { + Activity, + RefreshCw, + Trash2, + List, + FileText, + X, + ChevronRight, + ChevronDown, + Inbox, + Wrench, + Bot, + User, + Settings, + Zap, + Users, + Target, + Cpu, + MessageCircle, + Brain, + CheckCircle, + ClipboardCheck, + BarChart3, + MessageSquare, + Sparkles, + Copy, + Check, + Lightbulb, + Loader2 +} from "lucide-react"; + +import RequestDetailContent from "../components/RequestDetailContent"; +import { ConversationThread } from "../components/ConversationThread"; + +export const meta: MetaFunction = () => { + return [ + { title: "Claude Code Monitor" }, + { name: "description", content: "Claude Code Monitor - Real-time API request visualization" }, + ]; +}; + +interface Request { + id: number; + conversationId?: string; + turnNumber?: number; + isRoot?: boolean; + timestamp: string; + method: string; + endpoint: string; + headers: Record; + body?: { + model?: string; + messages?: Array<{ + role: string; + content: any; + }>; + system?: Array<{ + text: string; + type: string; + cache_control?: { type: string }; + }>; + max_tokens?: number; + temperature?: number; + stream?: boolean; + }; + response?: { + statusCode: number; + headers: Record; + body?: any; + bodyText?: string; + responseTime: number; + streamingChunks?: string[]; + isStreaming: boolean; + completedAt: string; + }; + promptGrade?: { + score: number; + criteria: Record; + feedback: string; + improvedPrompt: string; + gradingTimestamp: string; + }; +} + +interface ConversationSummary { + id: string; + requestCount: number; + startTime: string; + lastActivity: string; + duration: number; + firstMessage: string; + lastMessage: string; + projectName: string; +} + +interface Conversation { + sessionId: string; + projectPath: string; + projectName: string; + messages: Array<{ + parentUuid: string | null; + isSidechain: boolean; + userType: string; + cwd: string; + sessionId: string; + version: string; + type: 'user' | 'assistant'; + message: any; + uuid: string; + timestamp: string; + }>; + startTime: string; + endTime: string; + messageCount: number; +} + +export default function Index() { + const [requests, setRequests] = useState([]); + const [conversations, setConversations] = useState([]); + const [selectedRequest, setSelectedRequest] = useState(null); + const [selectedConversation, setSelectedConversation] = useState(null); + const [filter, setFilter] = useState("all"); + const [viewMode, setViewMode] = useState<"requests" | "conversations">("requests"); + const [isModalOpen, setIsModalOpen] = useState(false); + const [isConversationModalOpen, setIsConversationModalOpen] = useState(false); + const [modelFilter, setModelFilter] = useState("all"); + const [isFetching, setIsFetching] = useState(false); + const [isPending, startTransition] = useTransition(); + const [requestsCurrentPage, setRequestsCurrentPage] = useState(1); + const [hasMoreRequests, setHasMoreRequests] = useState(true); + const [conversationsCurrentPage, setConversationsCurrentPage] = useState(1); + const [hasMoreConversations, setHasMoreConversations] = useState(true); + const itemsPerPage = 50; + + const loadRequests = async (filter?: string, loadMore = false) => { + setIsFetching(true); + const pageToFetch = loadMore ? requestsCurrentPage + 1 : 1; + try { + const currentModelFilter = filter || modelFilter; + const url = new URL('/api/requests', window.location.origin); + url.searchParams.append("page", pageToFetch.toString()); + url.searchParams.append("limit", itemsPerPage.toString()); + if (currentModelFilter !== "all") { + url.searchParams.append("model", currentModelFilter); + } + + const response = await fetch(url.toString()); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + const requests = data.requests || []; + const mappedRequests = requests.map((req: any, index: number) => ({ + ...req, + id: req.requestId ? `${req.requestId}_${index}` : `request_${index}` + })); + + startTransition(() => { + if (loadMore) { + setRequests(prev => [...prev, ...mappedRequests]); + } else { + setRequests(mappedRequests); + } + setRequestsCurrentPage(pageToFetch); + setHasMoreRequests(mappedRequests.length === itemsPerPage); + }); + } catch (error) { + console.error('Failed to load requests:', error); + + // Fallback to example data for demo + const exampleRequest = { + timestamp: "2025-06-04T23:47:37-04:00", + method: "POST", + endpoint: "/v1/messages", + headers: { + "User-Agent": ["claude-cli/1.0.11 (external, cli)"], + "Content-Type": ["application/json"], + "Anthropic-Version": ["2023-06-01"] + }, + body: { + model: "claude-sonnet-4-20250514", + messages: [ + { + role: "user", + content: [{ + type: "text", + text: "I need to extract the complete list of tools available to Claude Code from the request file..." + }] + } + ], + max_tokens: 32000, + temperature: 1, + stream: true + } + }; + + startTransition(() => { + // setRequests([ + // { ...exampleRequest, id: 1 }, + // { + // ...exampleRequest, + // id: 2, + // timestamp: "2025-06-04T23:45:12-04:00", + // endpoint: "/v1/chat/completions", + // body: { ...exampleRequest.body, model: "gpt-4-turbo" } + // }, + // { + // ...exampleRequest, + // id: 3, + // timestamp: "2025-06-04T23:42:33-04:00", + // method: "GET", + // endpoint: "/v1/models", + // body: undefined + // } + // ]); + }); + } finally { + setIsFetching(false); + } + }; + + const loadConversations = async (filter?: string, loadMore = false) => { + setIsFetching(true); + const pageToFetch = loadMore ? conversationsCurrentPage + 1 : 1; + try { + const currentModelFilter = filter || modelFilter; + const url = new URL('/api/conversations', window.location.origin); + url.searchParams.append("page", pageToFetch.toString()); + url.searchParams.append("limit", itemsPerPage.toString()); + if (currentModelFilter !== "all") { + url.searchParams.append("model", currentModelFilter); + } + + const response = await fetch(url.toString()); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + startTransition(() => { + if (loadMore) { + setConversations(prev => [...prev, ...data.conversations]); + } else { + setConversations(data.conversations); + } + setConversationsCurrentPage(pageToFetch); + setHasMoreConversations(data.conversations.length === itemsPerPage); + }); + } catch (error) { + console.error('Failed to load conversations:', error); + startTransition(() => { + setConversations([]); + }); + } finally { + setIsFetching(false); + } + }; + + const loadConversationDetails = async (conversationId: string, projectName: string) => { + try { + const response = await fetch(`/api/conversations/${conversationId}?project=${encodeURIComponent(projectName)}`); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const conversation = await response.json(); + setSelectedConversation(conversation); + setIsConversationModalOpen(true); + } catch (error) { + console.error('Failed to load conversation details:', error); + } + }; + + const clearRequests = async () => { + try { + const response = await fetch('/api/requests', { + method: 'DELETE' + }); + + if (response.ok) { + setRequests([]); + setConversations([]); + setRequestsCurrentPage(1); + setHasMoreRequests(true); + setConversationsCurrentPage(1); + setHasMoreConversations(true); + } + } catch (error) { + console.error('Failed to clear requests:', error); + setRequests([]); + } + }; + + const filterRequests = (filter: string) => { + if (filter === 'all') return requests; + + return requests.filter(req => { + switch (filter) { + case 'messages': + return req.endpoint.includes('/messages'); + case 'completions': + return req.endpoint.includes('/completions'); + case 'models': + return req.endpoint.includes('/models'); + default: + return true; + } + }); + }; + + const getMethodColor = (method: string) => { + const colors = { + 'GET': 'bg-green-50 text-green-700 border border-green-200', + 'POST': 'bg-blue-50 text-blue-700 border border-blue-200', + 'PUT': 'bg-yellow-50 text-yellow-700 border border-yellow-200', + 'DELETE': 'bg-red-50 text-red-700 border border-red-200' + }; + return colors[method as keyof typeof colors] || 'bg-gray-50 text-gray-700 border border-gray-200'; + }; + + const getRequestSummary = (request: Request) => { + if (request.body?.messages) { + const messageCount = request.body.messages.length; + + // Count tool calls + const toolCalls = request.body.messages.reduce((count, msg) => { + if (msg.content && Array.isArray(msg.content)) { + return count + msg.content.filter((c: any) => c.type === 'tool_use').length; + } + return count; + }, 0); + + // Count tool definitions in system prompt + let toolDefinitions = 0; + if (request.body.system) { + request.body.system.forEach(sys => { + if (sys.text && sys.text.includes('')) { + const functionMatches = [...sys.text.matchAll(/([\s\S]*?)<\/function>/g)]; + toolDefinitions += functionMatches.length; + } + }); + } + + let summary = `๐Ÿ’ฌ ${messageCount} messages`; + if (toolDefinitions > 0) { + summary += ` โ€ข ๐Ÿ› ๏ธ ${toolDefinitions} tools available`; + } + if (toolCalls > 0) { + summary += ` โ€ข โšก ${toolCalls} tool calls executed`; + } + + return summary; + } + return '๐Ÿ“ก API request'; + }; + + const showRequestDetails = (requestId: number) => { + const request = requests.find(r => r.id === requestId); + if (request) { + setSelectedRequest(request); + setIsModalOpen(true); + } + }; + + const closeModal = () => { + setIsModalOpen(false); + setSelectedRequest(null); + }; + + const getToolStats = () => { + let toolDefinitions = 0; + let toolCalls = 0; + + requests.forEach(req => { + if (req.body) { + // Count tool definitions in system prompts + if (req.body.system) { + req.body.system.forEach(sys => { + if (sys.text && sys.text.includes('')) { + const functionMatches = [...sys.text.matchAll(/([\s\S]*?)<\/function>/g)]; + toolDefinitions += functionMatches.length; + } + }); + } + + // Count actual tool calls in messages + if (req.body.messages) { + req.body.messages.forEach(msg => { + if (msg.content && Array.isArray(msg.content)) { + msg.content.forEach((contentPart: any) => { + if (contentPart.type === 'tool_use') { + toolCalls++; + } + if (contentPart.type === 'text' && contentPart.text && contentPart.text.includes('')) { + const functionMatches = [...contentPart.text.matchAll(/([\s\S]*?)<\/function>/g)]; + toolDefinitions += functionMatches.length; + } + }); + } + }); + } + } + }); + + return `${toolCalls} calls / ${toolDefinitions} tools`; + }; + + const getPromptGradeStats = () => { + let totalGrades = 0; + let gradeCount = 0; + + requests.forEach(req => { + if (req.promptGrade && req.promptGrade.score) { + totalGrades += req.promptGrade.score; + gradeCount++; + } + }); + + if (gradeCount > 0) { + const avgGrade = (totalGrades / gradeCount).toFixed(1); + return `${avgGrade}/5`; + } + return '-/5'; + }; + + const formatDuration = (milliseconds: number) => { + if (milliseconds < 60000) { + return `${Math.round(milliseconds / 1000)}s`; + } else if (milliseconds < 3600000) { + return `${Math.round(milliseconds / 60000)}m`; + } else { + return `${Math.round(milliseconds / 3600000)}h`; + } + }; + + const formatConversationSummary = (conversation: ConversationSummary) => { + const duration = formatDuration(conversation.duration); + return `${conversation.requestCount} requests โ€ข ${duration} duration`; + }; + + const canGradeRequest = (request: Request) => { + return request.body && + request.body.messages && + request.body.messages.some(msg => msg.role === 'user') && + request.endpoint.includes('/messages'); + }; + + const gradeRequest = async (requestId: number) => { + const request = requests.find(r => r.id === requestId); + if (!request || !canGradeRequest(request)) return; + + try { + const response = await fetch('/api/grade-prompt', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + messages: request.body!.messages, + systemMessages: request.body!.system || [], + requestId: request.timestamp + }) + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const promptGrade = await response.json(); + + // Update the request with the new grading + const updatedRequests = requests.map(r => + r.id === requestId ? { ...r, promptGrade } : r + ); + setRequests(updatedRequests); + + } catch (error) { + console.error('Failed to grade prompt:', error); + } + }; + + const handleModelFilterChange = (newFilter: string) => { + setModelFilter(newFilter); + if (viewMode === 'requests') { + loadRequests(newFilter); + } else { + loadConversations(newFilter); + } + }; + + useEffect(() => { + if (viewMode === 'requests') { + loadRequests(modelFilter); + } else { + loadConversations(modelFilter); + } + }, [viewMode, modelFilter]); + + const filteredRequests = filterRequests(filter); + + return ( +
+ {/* Header */} +
+
+
+
+
+
+ +
+
+

Claude Code Monitor

+
+
+
+
+
+ + +
+
+
+
+
+ + {/* Filter buttons */} +
+
+ + + + +
+
+ + {/* View mode toggle */} +
+
+ + +
+
+ + {/* Main Content */} +
+ {/* Stats Grid */} +
+
+
+
+

+ {viewMode === "requests" ? "Total Requests" : "Total Conversations"} +

+

+ {viewMode === "requests" ? requests.length : conversations.length} +

+ {/*

All time

*/} +
+
+ {viewMode === "requests" ? ( + + ) : ( + + )} +
+
+
+
+ + {/* Main Content */} + {viewMode === "requests" ? ( + /* Request History */ +
+
+
+
+ +

Request History

+
+ {/*
+ +
*/} +
+
+
+ {(isFetching && requestsCurrentPage === 1) || isPending ? ( +
+ +

Loading requests...

+
+ ) : filteredRequests.length === 0 ? ( +
+
+ +
+

No requests found

+

Make sure you have set the ANTHROPIC_BASE_URL environment variable to the proxy server URL

+
+ ) : ( + <> + {filteredRequests.map(request => ( +
showRequestDetails(request.id)}> +
+
+ + {request.method} + +
+
+ {request.endpoint} + {request.conversationId && ( + + Turn {request.turnNumber} + + )} +
+ {new Date(request.timestamp).toLocaleString()} +
+
+
+ {request.body?.model && ( + + {request.body.model} + + )} + {/* {request.promptGrade ? ( + = 4 + ? 'bg-green-50 border-green-200 text-green-700' + : request.promptGrade.score >= 3 + ? 'bg-yellow-50 border-yellow-200 text-yellow-700' + : 'bg-red-50 border-red-200 text-red-700' + }`}> + {request.promptGrade.score >= 4 ? '๐ŸŽ‰' : request.promptGrade.score >= 3 ? '๐Ÿ‘' : 'โš ๏ธ'} {request.promptGrade.score}/5 + + ) : ( + canGradeRequest(request) && ( + + ) + )} */} +
+ +
+
+
+
+ {getRequestSummary(request)} +
+
+ ))} + {hasMoreRequests && ( +
+ +
+ )} + + )} +
+
+ ) : ( + /* Conversations View */ +
+
+
+
+ +

Conversations

+
+
+
+
+ {(isFetching && conversationsCurrentPage === 1) || isPending ? ( +
+ +

Loading conversations...

+
+ ) : conversations.length === 0 ? ( +
+
+ +
+

No conversations found

+

Start a conversation to see it appear here

+
+ ) : ( + <> + {conversations.map(conversation => ( +
loadConversationDetails(conversation.id, conversation.projectName)}> +
+
+
+ +
+
+ Conversation {conversation.id.slice(-8)} + {new Date(conversation.startTime).toLocaleString()} + {conversation.projectName && ( + {conversation.projectName} + )} +
+
+
+ + {conversation.requestCount} turns + +
+ +
+
+
+
+
+ First: {conversation.firstMessage.substring(0, 200) || "No content"}{conversation.firstMessage.length > 200 && "..."} +
+ {conversation.lastMessage && conversation.lastMessage !== conversation.firstMessage && ( +
+ Latest: {conversation.lastMessage.substring(0, 200)}{conversation.lastMessage.length > 200 && "..."} +
+ )} +
+
+ ))} + {hasMoreConversations && ( +
+ +
+ )} + + )} +
+
+ )} +
+ + {/* Request Detail Modal */} + {isModalOpen && selectedRequest && ( +
+
+
+
+
+ +

Request Details

+
+ +
+
+
+ gradeRequest(selectedRequest.id)} /> +
+
+
+ )} + + {/* Conversation Detail Modal */} + {isConversationModalOpen && selectedConversation && ( +
+
+
+
+
+ +

+ Conversation {selectedConversation.sessionId.slice(-8)} +

+ + {selectedConversation.messageCount} messages + +
+ +
+
+
+
+ {/* Conversation Overview */} +
+
+
+
{selectedConversation.messageCount}
+
Messages
+
+
+
{new Date(selectedConversation.startTime).toLocaleDateString()}
+
Started
+
+
+
{new Date(selectedConversation.endTime).toLocaleDateString()}
+
Last Activity
+
+
+
+ + {/* Conversation Thread */} + +
+
+
+
+ )} +
+ ); +} diff --git a/web/app/routes/api.conversations.tsx b/web/app/routes/api.conversations.tsx new file mode 100644 index 0000000..988a84c --- /dev/null +++ b/web/app/routes/api.conversations.tsx @@ -0,0 +1,26 @@ +import type { LoaderFunction } from "@remix-run/node"; +import { json } from "@remix-run/node"; + +export const loader: LoaderFunction = async ({ request }) => { + try { + const url = new URL(request.url); + const modelFilter = url.searchParams.get("model"); + + const backendUrl = new URL('http://localhost:3001/api/conversations'); + if (modelFilter) { + backendUrl.searchParams.append('model', modelFilter); + } + + const response = await fetch(backendUrl.toString()); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return json(data); + } catch (error) { + console.error('Failed to fetch conversations:', error); + return json({ conversations: [] }); + } +}; \ No newline at end of file diff --git a/web/app/routes/api.grade-prompt.tsx b/web/app/routes/api.grade-prompt.tsx new file mode 100644 index 0000000..4a84253 --- /dev/null +++ b/web/app/routes/api.grade-prompt.tsx @@ -0,0 +1,33 @@ +import type { ActionFunction } from "@remix-run/node"; +import { json } from "@remix-run/node"; + +export const action: ActionFunction = async ({ request }) => { + if (request.method !== "POST") { + return json({ error: 'Method not allowed' }, { status: 405 }); + } + + try { + const body = await request.json(); + + // Forward the request to the Go backend + const response = await fetch('http://localhost:3001/api/grade-prompt', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(body) + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return json(data); + } catch (error) { + console.error('Failed to grade prompt:', error); + return json({ + error: 'Failed to grade prompt. Please ensure the backend is running and has a valid Anthropic API key.' + }, { status: 500 }); + } +}; \ No newline at end of file diff --git a/web/app/routes/api.requests.tsx b/web/app/routes/api.requests.tsx new file mode 100644 index 0000000..7f2b9cf --- /dev/null +++ b/web/app/routes/api.requests.tsx @@ -0,0 +1,61 @@ +import type { ActionFunction, LoaderFunction } from "@remix-run/node"; +import { json } from "@remix-run/node"; + +export const loader: LoaderFunction = async ({ request }) => { + try { + const url = new URL(request.url); + const modelFilter = url.searchParams.get("model"); + const page = url.searchParams.get("page"); + const limit = url.searchParams.get("limit"); + + // Forward the request to the Go backend + const backendUrl = new URL('http://localhost:3001/api/requests'); + if (modelFilter) { + backendUrl.searchParams.append('model', modelFilter); + } + if (page) { + backendUrl.searchParams.append('page', page); + } + if (limit) { + backendUrl.searchParams.append('limit', limit); + } + + const response = await fetch(backendUrl.toString()); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + return json(data); + } catch (error) { + console.error('Failed to fetch requests:', error); + + // Return empty array if backend is not available + return json({ requests: [] }); + } +}; + +export const action: ActionFunction = async ({ request }) => { + const method = request.method; + + if (method === "DELETE") { + try { + // Forward the DELETE request to the Go backend + const response = await fetch('http://localhost:3001/api/requests', { + method: 'DELETE' + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + return json({ success: true }); + } catch (error) { + console.error('Failed to clear requests:', error); + return json({ success: false, error: 'Failed to clear requests' }, { status: 500 }); + } + } + + return json({ error: 'Method not allowed' }, { status: 405 }); +}; \ No newline at end of file diff --git a/web/app/tailwind.css b/web/app/tailwind.css new file mode 100644 index 0000000..8d76c65 --- /dev/null +++ b/web/app/tailwind.css @@ -0,0 +1,238 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); + +* { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; +} + +body { + background-color: #f9fafb; + color: #101828; +} + +.card { + background: white; + border: 1px solid #eaecf0; + border-radius: 12px; + box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.1), 0 1px 2px 0 rgba(16, 24, 40, 0.06); +} + +.card-hover { + transition: all 0.2s ease; +} + +.card-hover:hover { + box-shadow: 0 4px 6px -1px rgba(16, 24, 40, 0.1), 0 2px 4px -1px rgba(16, 24, 40, 0.06); + border-color: #d0d5dd; +} + +.stat-card { + background: white; + border: 1px solid #eaecf0; + border-radius: 12px; + box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.1), 0 1px 2px 0 rgba(16, 24, 40, 0.06); +} + +.nav-button { + background: white; + border: 1px solid #d0d5dd; + color: #344054; + font-weight: 500; + transition: all 0.2s ease; +} + +.nav-button:hover { + background: #f9fafb; + border-color: #98a2b3; +} + +.nav-button-primary { + background: #3b82f6; + border: 1px solid #3b82f6; + color: white; + font-weight: 500; +} + +.nav-button-primary:hover { + background: #2563eb; + border-color: #2563eb; +} + +.nav-button-danger { + color: #dc2626; + border-color: #fecaca; + background: #fef2f2; +} + +.nav-button-danger:hover { + background: #fee2e2; + border-color: #fca5a5; +} + +.request-card { + background: white; + border: 1px solid #eaecf0; + border-radius: 8px; + transition: all 0.2s ease; +} + +.request-card:hover { + border-color: #3b82f6; + box-shadow: 0 4px 6px -1px rgba(16, 24, 40, 0.1), 0 2px 4px -1px rgba(16, 24, 40, 0.06); +} + +.modal-overlay { + background: rgba(16, 24, 40, 0.7); + backdrop-filter: blur(8px); +} + +.modal-content { + background: white; + border: 1px solid #eaecf0; + border-radius: 12px; + box-shadow: 0 25px 50px -12px rgba(16, 24, 40, 0.25); +} + +.method-badge { + font-weight: 600; + font-size: 0.75rem; + letter-spacing: 0.025em; + text-transform: uppercase; + border-radius: 6px; + padding: 4px 8px; +} + +.code-block { + font-family: 'SF Mono', 'Monaco', 'Cascadia Code', monospace; + font-size: 0.875rem; + line-height: 1.6; + background: #f9fafb; + border: 1px solid #eaecf0; + border-radius: 8px; +} + +.status-indicator { + width: 8px; + height: 8px; + border-radius: 50%; + background: #10b981; + animation: pulse 2s infinite; +} + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.7; } +} + +.header-blur { + background: rgba(255, 255, 255, 0.8); + backdrop-filter: blur(20px); + border-bottom: 1px solid #eaecf0; +} + +.section-header { + background: #f9fafb; + border-bottom: 1px solid #eaecf0; +} + +.message-role-user { + background: #eff6ff; + border: 1px solid #dbeafe; + border-left: 3px solid #3b82f6; +} + +.message-role-assistant { + background: #f8fafc; + border: 1px solid #e2e8f0; + border-left: 3px solid #64748b; +} + +.message-role-system { + background: #fffbeb; + border: 1px solid #fef3c7; + border-left: 3px solid #f59e0b; +} + +.tool-badge { + background: #ecfdf5; + border: 1px solid #bbf7d0; + color: #047857; + font-weight: 500; +} + +.scrollbar-custom { + scrollbar-width: thin; + scrollbar-color: #cbd5e1 #f1f5f9; +} + +.scrollbar-custom::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.scrollbar-custom::-webkit-scrollbar-track { + background: #f1f5f9; + border-radius: 3px; +} + +.scrollbar-custom::-webkit-scrollbar-thumb { + background: #cbd5e1; + border-radius: 3px; +} + +.scrollbar-custom::-webkit-scrollbar-thumb:hover { + background: #94a3b8; +} + +.scrollbar-dark { + scrollbar-width: thin; + scrollbar-color: #4b5563 #374151; +} + +.scrollbar-dark::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.scrollbar-dark::-webkit-scrollbar-track { + background: #374151; + border-radius: 3px; +} + +.scrollbar-dark::-webkit-scrollbar-thumb { + background: #4b5563; + border-radius: 3px; +} + +.scrollbar-dark::-webkit-scrollbar-thumb:hover { + background: #6b7280; +} + +select:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); +} + +.text-primary { + color: #101828; +} + +.text-secondary { + color: #475467; +} + +.text-tertiary { + color: #667085; +} + +.icon-primary { + color: #475467; +} + +.icon-accent { + color: #3b82f6; +} diff --git a/web/app/utils/formatters.ts b/web/app/utils/formatters.ts new file mode 100644 index 0000000..4b02e5a --- /dev/null +++ b/web/app/utils/formatters.ts @@ -0,0 +1,174 @@ +/** + * Utility functions for formatting and displaying data + */ + +/** + * Safely converts any value to a formatted string for display + */ +export function formatValue(value: any): string { + if (value === null) return 'null'; + if (value === undefined) return 'undefined'; + if (typeof value === 'string') return value; + if (typeof value === 'number' || typeof value === 'boolean') return String(value); + + try { + return JSON.stringify(value, null, 2); + } catch (error) { + return String(value); + } +} + +/** + * Formats JSON with proper indentation and returns a formatted string + */ +export function formatJSON(obj: any, maxLength: number = 1000): string { + try { + const jsonString = JSON.stringify(obj, null, 2); + if (jsonString.length > maxLength) { + return jsonString.substring(0, maxLength) + '...'; + } + return jsonString; + } catch (error) { + return String(obj); + } +} + +/** + * Escapes HTML characters to prevent XSS + */ +export function escapeHtml(text: string): string { + const div = document.createElement('div'); + div.textContent = text; + return div.innerHTML; +} + +/** + * Formats large text with proper line breaks and structure, optimized for the new conversation flow + */ +export function formatLargeText(text: string): string { + if (!text) return ''; + + // Escape HTML first + const escaped = escapeHtml(text); + + // Format the text with proper spacing and structure + return escaped + // Preserve existing double line breaks + .replace(/\n\n/g, '

') + // Convert single line breaks to single
tags + .replace(/\n/g, '
') + // Format bullet points with modern styling + .replace(/^(\s*)([-*โ€ข])\s+(.+)$/gm, '$1$3') + // Format numbered lists with modern styling + .replace(/^(\s*)(\d+)\.\s+(.+)$/gm, '$1$2$3') + // Format headers with better typography + .replace(/^([A-Z][^<\n]*:)(
|$)/gm, '
$1
$2') + // Format code blocks with better styling + .replace(/\b([A-Z_]{3,})\b/g, '$1') + // Format file paths and technical terms + .replace(/\b([a-zA-Z0-9_-]+\.[a-zA-Z]{2,4})\b/g, '$1') + // Format URLs with modern link styling + .replace(/(https?:\/\/[^\s<]+)/g, '$1') + // Format quoted text + .replace(/^(\s*)([""](.+?)[""])/gm, '$1
$3
') + // Add proper spacing around paragraphs + .replace(/(

)/g, '
') + // Clean up any excessive spacing + .replace(/(
\s*){3,}/g, '

') + // Format emphasis patterns + .replace(/\*\*([^*]+)\*\*/g, '$1') + .replace(/\*([^*]+)\*/g, '$1') + // Format inline code + .replace(/`([^`]+)`/g, '$1'); +} + +/** + * Determines if a value is a complex object that should be JSON-formatted + */ +export function isComplexObject(value: any): boolean { + return value !== null && + typeof value === 'object' && + !Array.isArray(value) && + Object.keys(value).length > 0; +} + +/** + * Truncates text to a specified length with ellipsis + */ +export function truncateText(text: string, maxLength: number = 200): string { + if (text.length <= maxLength) return text; + return text.substring(0, maxLength) + '...'; +} + +/** + * Formats timestamp for display in the conversation flow + */ +export function formatTimestamp(timestamp: string | Date): string { + try { + const date = new Date(timestamp); + const now = new Date(); + const diff = now.getTime() - date.getTime(); + + // Less than a minute ago + if (diff < 60000) { + return 'Just now'; + } + + // Less than an hour ago + if (diff < 3600000) { + const minutes = Math.floor(diff / 60000); + return `${minutes}m ago`; + } + + // Less than a day ago + if (diff < 86400000) { + const hours = Math.floor(diff / 3600000); + return `${hours}h ago`; + } + + // More than a day ago - show time + return date.toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + hour12: true + }); + } catch { + return String(timestamp); + } +} + +/** + * Formats file size for display + */ +export function formatFileSize(bytes: number): string { + const sizes = ['B', 'KB', 'MB', 'GB']; + if (bytes === 0) return '0 B'; + const i = Math.floor(Math.log(bytes) / Math.log(1024)); + return Math.round(bytes / Math.pow(1024, i) * 100) / 100 + ' ' + sizes[i]; +} + +/** + * Creates a content preview for message summaries + */ +export function createContentPreview(content: any, maxLength: number = 100): string { + if (typeof content === 'string') { + return content.length > maxLength ? content.substring(0, maxLength) + '...' : content; + } + + if (Array.isArray(content)) { + const textContent = content.find(c => c.type === 'text')?.text || ''; + if (textContent) { + return textContent.length > maxLength ? textContent.substring(0, maxLength) + '...' : textContent; + } + return `${content.length} content blocks`; + } + + if (content && typeof content === 'object') { + if (content.text) { + return content.text.length > maxLength ? content.text.substring(0, maxLength) + '...' : content.text; + } + return 'Complex content'; + } + + return 'No content'; +} \ No newline at end of file diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 0000000..97e7738 --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,13468 @@ +{ + "name": "web", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web", + "dependencies": { + "@remix-run/node": "^2.16.8", + "@remix-run/react": "^2.16.8", + "@remix-run/serve": "^2.16.8", + "isbot": "^4.1.0", + "lucide-react": "^0.522.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@remix-run/dev": "^2.16.8", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "autoprefixer": "^10.4.19", + "eslint": "^8.38.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.1.6", + "vite": "^6.0.0", + "vite-tsconfig-paths": "^4.2.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "Apache-2.0", + "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.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "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/core/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@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-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.6.tgz", + "integrity": "sha512-bSC9YVUjADDy1gae8RrioINU6e1lCkg3VGVwm0QQ2E1CWcC4gnMce9+B6RpxuSsrsXsk1yojn7sp1fnG8erE2g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.6.tgz", + "integrity": "sha512-YnYSCceN/dUzUr5kdtUzB+wZprCafuD89Hs0Aqv9QSdwhYQybhXTaSTcrl6X/aWThn1a/j0eEpUBGOE7269REg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.6.tgz", + "integrity": "sha512-MVcYcgSO7pfu/x34uX9u2QIZHmXAB7dEiLQC5bBl5Ryqtpj9lT2sg3gNDEsrPEmimSJW2FXIaxqSQ501YLDsZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.6.tgz", + "integrity": "sha512-bsDRvlbKMQMt6Wl08nHtFz++yoZHsyTOxnjfB2Q95gato+Yi4WnRl13oC2/PJJA9yLCoRv9gqT/EYX0/zDsyMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.6.tgz", + "integrity": "sha512-xh2A5oPrYRfMFz74QXIQTQo8uA+hYzGWJFoeTE8EvoZGHb+idyV4ATaukaUvnnxJiauhs/fPx3vYhU4wiGfosg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.6.tgz", + "integrity": "sha512-EnUwjRc1inT4ccZh4pB3v1cIhohE2S4YXlt1OvI7sw/+pD+dIE4smwekZlEPIwY6PhU6oDWwITrQQm5S2/iZgg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.6.tgz", + "integrity": "sha512-Uh3HLWGzH6FwpviUcLMKPCbZUAFzv67Wj5MTwK6jn89b576SR2IbEp+tqUHTr8DIl0iDmBAf51MVaP7pw6PY5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.6.tgz", + "integrity": "sha512-7YdGiurNt7lqO0Bf/U9/arrPWPqdPqcV6JCZda4LZgEn+PTQ5SMEI4MGR52Bfn3+d6bNEGcWFzlIxiQdS48YUw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.6.tgz", + "integrity": "sha512-bUR58IFOMJX523aDVozswnlp5yry7+0cRLCXDsxnUeQYJik1DukMY+apBsLOZJblpH+K7ox7YrKrHmJoWqVR9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.6.tgz", + "integrity": "sha512-ujp8uoQCM9FRcbDfkqECoARsLnLfCUhKARTP56TFPog8ie9JG83D5GVKjQ6yVrEVdMie1djH86fm98eY3quQkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.6.tgz", + "integrity": "sha512-y2NX1+X/Nt+izj9bLoiaYB9YXT/LoaQFYvCkVD77G/4F+/yuVXYCWz4SE9yr5CBMbOxOfBcy/xFL4LlOeNlzYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.6.tgz", + "integrity": "sha512-09AXKB1HDOzXD+j3FdXCiL/MWmZP0Ex9eR8DLMBVcHorrWJxWmY8Nms2Nm41iRM64WVx7bA/JVHMv081iP2kUA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.6.tgz", + "integrity": "sha512-AmLhMzkM8JuqTIOhxnX4ubh0XWJIznEynRnZAVdA2mMKE6FAfwT2TWKTwdqMG+qEaeyDPtfNoZRpJbD4ZBv0Tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.6.tgz", + "integrity": "sha512-Y4Ri62PfavhLQhFbqucysHOmRamlTVK10zPWlqjNbj2XMea+BOs4w6ASKwQwAiqf9ZqcY9Ab7NOU4wIgpxwoSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.6.tgz", + "integrity": "sha512-SPUiz4fDbnNEm3JSdUW8pBJ/vkop3M1YwZAVwvdwlFLoJwKEZ9L98l3tzeyMzq27CyepDQ3Qgoba44StgbiN5Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.6.tgz", + "integrity": "sha512-a3yHLmOodHrzuNgdpB7peFGPx1iJ2x6m+uDvhP2CKdr2CwOaqEFMeSqYAHU7hG+RjCq8r2NFujcd/YsEsFgTGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.6.tgz", + "integrity": "sha512-EanJqcU/4uZIBreTrnbnre2DXgXSa+Gjap7ifRfllpmyAU7YMvaXmljdArptTHmjrkkKm9BK6GH5D5Yo+p6y5A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.6.tgz", + "integrity": "sha512-xaxeSunhQRsTNGFanoOkkLtnmMn5QbA0qBhNet/XLVsc+OVkpIWPHcr3zTW2gxVU5YOHFbIHR9ODuaUdNza2Vw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.6.tgz", + "integrity": "sha512-gnMnMPg5pfMkZvhHee21KbKdc6W3GR8/JuE0Da1kjwpK6oiFU3nqfHuVPgUX2rsOx9N2SadSQTIYV1CIjYG+xw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.6.tgz", + "integrity": "sha512-G95n7vP1UnGJPsVdKXllAJPtqjMvFYbN20e8RK8LVLhlTiSOH1sd7+Gt7rm70xiG+I5tM58nYgwWrLs6I1jHqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.6.tgz", + "integrity": "sha512-96yEFzLhq5bv9jJo5JhTs1gI+1cKQ83cUpyxHuGqXVwQtY5Eq54ZEsKs8veKtiKwlrNimtckHEkj4mRh4pPjsg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.6.tgz", + "integrity": "sha512-n6d8MOyUrNp6G4VSpRcgjs5xj4A91svJSaiwLIDWVWEsZtpN5FA9NlBbZHDmAJc2e8e6SF4tkBD3HAvPF+7igA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "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==", + "dev": true, + "license": "ISC", + "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/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jspm/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@jspm/core/-/core-2.1.0.tgz", + "integrity": "sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@mdx-js/mdx": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-2.3.0.tgz", + "integrity": "sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/mdx": "^2.0.0", + "estree-util-build-jsx": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-to-js": "^1.1.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^2.0.0", + "markdown-extensions": "^1.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^2.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "unified": "^10.0.0", + "unist-util-position-from-estree": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", + "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.9.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", + "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^6.0.0", + "lru-cache": "^7.4.4", + "npm-pick-manifest": "^8.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^4.1.0", + "glob": "^10.2.2", + "hosted-git-info": "^6.1.1", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^5.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "dev": true, + "license": "ISC", + "dependencies": { + "which": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@remix-run/dev": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/dev/-/dev-2.16.8.tgz", + "integrity": "sha512-2EKByaD5CDwh7H56UFVCqc90kCZ9LukPlSwkcsR3gj7WlfL7sXtcIqIopcToAlKAeao3HDbhBlBT2CTOivxZCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.8", + "@babel/generator": "^7.21.5", + "@babel/parser": "^7.21.8", + "@babel/plugin-syntax-decorators": "^7.22.10", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/preset-typescript": "^7.21.5", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.22.5", + "@mdx-js/mdx": "^2.3.0", + "@npmcli/package-json": "^4.0.1", + "@remix-run/node": "2.16.8", + "@remix-run/router": "1.23.0", + "@remix-run/server-runtime": "2.16.8", + "@types/mdx": "^2.0.5", + "@vanilla-extract/integration": "^6.2.0", + "arg": "^5.0.1", + "cacache": "^17.1.3", + "chalk": "^4.1.2", + "chokidar": "^3.5.1", + "cross-spawn": "^7.0.3", + "dotenv": "^16.0.0", + "es-module-lexer": "^1.3.1", + "esbuild": "0.17.6", + "esbuild-plugins-node-modules-polyfill": "^1.6.0", + "execa": "5.1.1", + "exit-hook": "2.2.1", + "express": "^4.20.0", + "fs-extra": "^10.0.0", + "get-port": "^5.1.1", + "gunzip-maybe": "^1.4.2", + "jsesc": "3.0.2", + "json5": "^2.2.2", + "lodash": "^4.17.21", + "lodash.debounce": "^4.0.8", + "minimatch": "^9.0.0", + "ora": "^5.4.1", + "pathe": "^1.1.2", + "picocolors": "^1.0.0", + "picomatch": "^2.3.1", + "pidtree": "^0.6.0", + "postcss": "^8.4.19", + "postcss-discard-duplicates": "^5.1.0", + "postcss-load-config": "^4.0.1", + "postcss-modules": "^6.0.0", + "prettier": "^2.7.1", + "pretty-ms": "^7.0.1", + "react-refresh": "^0.14.0", + "remark-frontmatter": "4.0.1", + "remark-mdx-frontmatter": "^1.0.1", + "semver": "^7.3.7", + "set-cookie-parser": "^2.6.0", + "tar-fs": "^2.1.3", + "tsconfig-paths": "^4.0.0", + "valibot": "^0.41.0", + "vite-node": "^3.1.3", + "ws": "^7.5.10" + }, + "bin": { + "remix": "dist/cli.js" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@remix-run/react": "^2.16.8", + "@remix-run/serve": "^2.16.8", + "typescript": "^5.1.0", + "vite": "^5.1.0 || ^6.0.0", + "wrangler": "^3.28.2" + }, + "peerDependenciesMeta": { + "@remix-run/serve": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vite": { + "optional": true + }, + "wrangler": { + "optional": true + } + } + }, + "node_modules/@remix-run/express": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/express/-/express-2.16.8.tgz", + "integrity": "sha512-NNTosiAJ4jZCRDfWSjV+3Fyu7KoHPeEHruLZEPRNDuXO6Nm5EkRvIkMwdfwyJ+ajE5IPotu8MFtPyNtm3sw/gw==", + "license": "MIT", + "dependencies": { + "@remix-run/node": "2.16.8" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "express": "^4.20.0", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/node": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.16.8.tgz", + "integrity": "sha512-foeYXU3mdaBJZnbtGbM8mNdHowz2+QnVGDRo7P3zgFkmsccMEflArGZNbkACGKd9xwDguTxxMJ6cuXBC4jIfgQ==", + "license": "MIT", + "dependencies": { + "@remix-run/server-runtime": "2.16.8", + "@remix-run/web-fetch": "^4.4.2", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie-signature": "^1.1.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.21.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/react": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/react/-/react-2.16.8.tgz", + "integrity": "sha512-JmoBUnEu/nPLkU6NGNIG7rfLM97gPpr1LYRJeV680hChr0/2UpfQQwcRLtHz03w1Gz1i/xONAAVOvRHVcXkRlA==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "@remix-run/server-runtime": "2.16.8", + "react-router": "6.30.0", + "react-router-dom": "6.30.0", + "turbo-stream": "2.4.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0", + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@remix-run/serve": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/serve/-/serve-2.16.8.tgz", + "integrity": "sha512-4exyeXCZoc/Vo8Zc+6Eyao3ONwOyNOK3Yeb0LLkWXd4aeFQ4v59i5fq/j/E+68UnpD/UZQl1Bj0k2hQnGQZhlQ==", + "license": "MIT", + "dependencies": { + "@remix-run/express": "2.16.8", + "@remix-run/node": "2.16.8", + "chokidar": "^3.5.3", + "compression": "^1.7.4", + "express": "^4.20.0", + "get-port": "5.1.1", + "morgan": "^1.10.0", + "source-map-support": "^0.5.21" + }, + "bin": { + "remix-serve": "dist/cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@remix-run/server-runtime": { + "version": "2.16.8", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.16.8.tgz", + "integrity": "sha512-ZwWOam4GAQTx10t+wK09YuYctd2Koz5Xy/klDgUN3lmTXmwbV0tZU0baiXEqZXrvyD+WDZ4b0ADDW9Df3+dpzA==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "@types/cookie": "^0.6.0", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie": "^0.7.2", + "set-cookie-parser": "^2.4.8", + "source-map": "^0.7.3", + "turbo-stream": "2.4.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/web-blob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", + "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "license": "MIT", + "dependencies": { + "@remix-run/web-stream": "^1.1.0", + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-fetch": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", + "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0", + "@remix-run/web-file": "^3.1.0", + "@remix-run/web-form-data": "^3.1.0", + "@remix-run/web-stream": "^1.1.0", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@remix-run/web-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", + "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0" + } + }, + "node_modules/@remix-run/web-form-data": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", + "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "license": "MIT", + "dependencies": { + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", + "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz", + "integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz", + "integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz", + "integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz", + "integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz", + "integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz", + "integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz", + "integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz", + "integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz", + "integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz", + "integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz", + "integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz", + "integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz", + "integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz", + "integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz", + "integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz", + "integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz", + "integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz", + "integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz", + "integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz", + "integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.3.tgz", + "integrity": "sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.8.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.1.tgz", + "integrity": "sha512-dd7yIp1hfJFX9ZlVLQRrh/Re9WMUHHmF9hrKD1yIvxcyNr2BhQ3xc1upAVhy8NijadnCswAxWQu8MkkSMC1qXQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.1.tgz", + "integrity": "sha512-EzUPcMFtDVlo5yrbzMqUsGq3HnLXw+3ZOhSd7CUaDmbTtnrzM+RO2ntw2dm2wjbbc5djWj3yX0wzbbg8pLhx8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.1.tgz", + "integrity": "sha512-nB+dna3q4kOleKFcSZJ/wDXIsAd1kpMO9XrVAt8tG3RDWJ6vi+Ic6bpz4cmg5tWNeCfHEY4KuqJCB+pKejPEmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.1.tgz", + "integrity": "sha512-aKWHCrOGaCGwZcekf3TnczQoBxk5w//W3RZ4EQyhux6rKDwBPgDU9Y2yGigCV1Z+8DWqZgVGQi+hdpnlSy3a1w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.1.tgz", + "integrity": "sha512-4dIEMXrXt0UqDVgrsUd1I+NoIzVQWXy/CNhgpfS75rOOMK/4Abn0Mx2M2gWH4Mk9+ds/ASAiCmqoUFynmMY5hA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.1.tgz", + "integrity": "sha512-vtvS13IXPs1eE8DuS/soiosqMBeyh50YLRZ+p7EaIKAPPeevRnA9G/wu/KbVt01ZD5qiGjxS+CGIdVC7I6gTOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.1.tgz", + "integrity": "sha512-BfdnN6aZ7NcX8djW8SR6GOJc+K+sFhWRF4vJueVE0vbUu5N1bLnBpxJg1TGlhSyo+ImC4SR0jcNiKN0jdoxt+A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.1.tgz", + "integrity": "sha512-Jhge7lFtH0QqfRz2PyJjJXWENqywPteITd+nOS0L6AhbZli+UmEyGBd2Sstt1c+l9C+j/YvKTl9wJo9PPmsFNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.1.tgz", + "integrity": "sha512-ofdK/ow+ZSbSU0pRoB7uBaiRHeaAOYQFU5Spp87LdcPL/P1RhbCTMSIYVb61XWzsVEmYKjHFtoIE0wxP6AFvrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.1.tgz", + "integrity": "sha512-eC8SXVn8de67HacqU7PoGdHA+9tGbqfEdD05AEFRAB81ejeQtNi5Fx7lPcxpLH79DW0BnMAHau3hi4RVkHfSCw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.1.tgz", + "integrity": "sha512-fIkwvAAQ41kfoGWfzeJ33iLGShl0JEDZHrMnwTHMErUcPkaaZRJYjQjsFhMl315NEQ4mmTlC+2nfK/J2IszDOw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.1.tgz", + "integrity": "sha512-RAAszxImSOFLk44aLwnSqpcOdce8sBcxASledSzuFAd8Q5ZhhVck472SisspnzHdc7THCvGXiUeZ2hOC7NUoBQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.1.tgz", + "integrity": "sha512-QoP9vkY+THuQdZi05bA6s6XwFd6HIz3qlx82v9bTOgxeqin/3C12Ye7f7EOD00RQ36OtOPWnhEMMm84sv7d1XQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.1.tgz", + "integrity": "sha512-/p77cGN/h9zbsfCseAP5gY7tK+7+DdM8fkPfr9d1ye1fsF6bmtGbtZN6e/8j4jCZ9NEIBBkT0GhdgixSelTK9g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.1.tgz", + "integrity": "sha512-wInTqT3Bu9u50mDStEig1v8uxEL2Ht+K8pir/YhyyrM5ordJtxoqzsL1vR/CQzOJuDunUTrDkMM0apjW/d7/PA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.1.tgz", + "integrity": "sha512-eNwqO5kUa+1k7yFIircwwiniKWA0UFHo2Cfm8LYgkh9km7uMad+0x7X7oXbQonJXlqfitBTSjhA0un+DsHIrhw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.1.tgz", + "integrity": "sha512-Eaz1xMUnoa2mFqh20mPqSdbYl6crnk8HnIXDu6nsla9zpgZJZO8w3c1gvNN/4Eb0RXRq3K9OG6mu8vw14gIqiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.1.tgz", + "integrity": "sha512-H/+d+5BGlnEQif0gnwWmYbYv7HJj563PUKJfn8PlmzF8UmF+8KxdvXdwCsoOqh4HHnENnoLrav9NYBrv76x1wQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.1.tgz", + "integrity": "sha512-rS86wI4R6cknYM3is3grCb/laE8XBEbpWAMSIPjYfmYp75KL5dT87jXF2orDa4tQYg5aajP5G8Fgh34dRyR+Rw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vanilla-extract/babel-plugin-debug-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.2.2.tgz", + "integrity": "sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.9" + } + }, + "node_modules/@vanilla-extract/css": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.17.4.tgz", + "integrity": "sha512-m3g9nQDWPtL+sTFdtCGRMI1Vrp86Ay4PBYq1Bo7Bnchj5ElNtAJpOqD+zg+apthVA4fB7oVpMWNjwpa6ElDWFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.9", + "css-what": "^6.1.0", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "dedent": "^1.5.3", + "deep-object-diff": "^1.1.9", + "deepmerge": "^4.2.2", + "lru-cache": "^10.4.3", + "media-query-parser": "^2.0.2", + "modern-ahocorasick": "^1.0.0", + "picocolors": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/css/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vanilla-extract/integration": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.5.0.tgz", + "integrity": "sha512-E2YcfO8vA+vs+ua+gpvy1HRqvgWbI+MTlUpxA8FvatOvybuNcWAY0CKwQ/Gpj7rswYKtC6C7+xw33emM6/ImdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.20.7", + "@babel/plugin-syntax-typescript": "^7.20.0", + "@vanilla-extract/babel-plugin-debug-ids": "^1.0.4", + "@vanilla-extract/css": "^1.14.0", + "esbuild": "npm:esbuild@~0.17.6 || ~0.18.0 || ~0.19.0", + "eval": "0.1.8", + "find-up": "^5.0.0", + "javascript-stringify": "^2.0.1", + "lodash": "^4.17.21", + "mlly": "^1.4.2", + "outdent": "^0.8.0", + "vite": "^5.0.11", + "vite-node": "^1.2.0" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/vite": { + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/@vanilla-extract/integration/node_modules/vite-node": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz", + "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vanilla-extract/integration/node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.9.tgz", + "integrity": "sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "license": "(Unlicense OR Apache-2.0)", + "optional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "dev": true, + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacache": { + "version": "17.1.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", + "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^7.7.1", + "minipass": "^7.0.3", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001724", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001724.tgz", + "integrity": "sha512-WqJo7p0TbHDOythNTqYujmaJTvtYRZrjpP8TCvH6Vb9CYJerJNKamKzIWOM4BkQatWj9H2lYulpdAQNBe7QhNA==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.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, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.171", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.171.tgz", + "integrity": "sha512-scWpzXEJEMrGJa4Y6m/tVotb0WuvNmasv3wWVzUAeCgKU0ToFOhUW6Z+xWnRQANMYGxN4ngJXIThgBJOqzVPCQ==", + "dev": true, + "license": "ISC" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.6.tgz", + "integrity": "sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.6", + "@esbuild/android-arm64": "0.17.6", + "@esbuild/android-x64": "0.17.6", + "@esbuild/darwin-arm64": "0.17.6", + "@esbuild/darwin-x64": "0.17.6", + "@esbuild/freebsd-arm64": "0.17.6", + "@esbuild/freebsd-x64": "0.17.6", + "@esbuild/linux-arm": "0.17.6", + "@esbuild/linux-arm64": "0.17.6", + "@esbuild/linux-ia32": "0.17.6", + "@esbuild/linux-loong64": "0.17.6", + "@esbuild/linux-mips64el": "0.17.6", + "@esbuild/linux-ppc64": "0.17.6", + "@esbuild/linux-riscv64": "0.17.6", + "@esbuild/linux-s390x": "0.17.6", + "@esbuild/linux-x64": "0.17.6", + "@esbuild/netbsd-x64": "0.17.6", + "@esbuild/openbsd-x64": "0.17.6", + "@esbuild/sunos-x64": "0.17.6", + "@esbuild/win32-arm64": "0.17.6", + "@esbuild/win32-ia32": "0.17.6", + "@esbuild/win32-x64": "0.17.6" + } + }, + "node_modules/esbuild-plugins-node-modules-polyfill": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/esbuild-plugins-node-modules-polyfill/-/esbuild-plugins-node-modules-polyfill-1.7.1.tgz", + "integrity": "sha512-IEaUhaS1RukGGcatDzqJmR+AzUWJ2upTJZP2i7FzR37Iw5Lk0LReCTnWnPMWnGG9lO4MWTGKEGGLWEOPegTRJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jspm/core": "^2.1.0", + "local-pkg": "^1.1.1", + "resolve.exports": "^2.0.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.14.0 <=0.25.x" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz", + "integrity": "sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz", + "integrity": "sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz", + "integrity": "sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz", + "integrity": "sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz", + "integrity": "sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/estree-util-visit": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-1.2.1.tgz", + "integrity": "sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit-hook": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", + "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "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-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/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==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generic-names": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", + "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^3.2.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "ISC", + "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": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/gunzip-maybe": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", + "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-zlib": "^0.1.4", + "is-deflate": "^1.0.0", + "is-gzip": "^1.0.0", + "peek-stream": "^1.1.0", + "pumpify": "^1.3.3", + "through2": "^2.0.3" + }, + "bin": { + "gunzip-maybe": "bin.js" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-to-estree": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz", + "integrity": "sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "estree-util-attach-comments": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdxjs-esm": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.1", + "unist-util-position": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hosted-git-info": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.3.tgz", + "integrity": "sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-deflate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", + "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.6" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isbot": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/isbot/-/isbot-4.4.0.tgz", + "integrity": "sha512-8ZvOWUA68kyJO4hHJdWjyreq7TYNWTS9y15IzeqVdKxR9pPr3P/3r9AHcoIv9M0Rllkao5qWz2v1lmcyKIVCzQ==", + "license": "Unlicense", + "engines": { + "node": ">=18" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "license": "MIT", + "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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.522.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.522.0.tgz", + "integrity": "sha512-jnJbw974yZ7rQHHEFKJOlWAefG3ATSCZHANZxIdx8Rk/16siuwjgA4fBULpXEAWx/RlTs3FzmKW/udWUuO0aRw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/markdown-extensions": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", + "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz", + "integrity": "sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-extension-frontmatter": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz", + "integrity": "sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdx-jsx": "^2.0.0", + "mdast-util-mdxjs-esm": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz", + "integrity": "sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz", + "integrity": "sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "ccount": "^2.0.0", + "mdast-util-from-markdown": "^1.1.0", + "mdast-util-to-markdown": "^1.3.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz", + "integrity": "sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz", + "integrity": "sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz", + "integrity": "sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz", + "integrity": "sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz", + "integrity": "sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz", + "integrity": "sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^1.0.0", + "micromark-extension-mdx-jsx": "^1.0.0", + "micromark-extension-mdx-md": "^1.0.0", + "micromark-extension-mdxjs-esm": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz", + "integrity": "sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "micromark-core-commonmark": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.1.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz", + "integrity": "sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz", + "integrity": "sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^2.0.0", + "estree-util-visit": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/modern-ahocorasick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.1.0.tgz", + "integrity": "sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "license": "MIT", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", + "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", + "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^6.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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==", + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", + "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", + "dev": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^10.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/outdent": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", + "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==", + "dev": true, + "license": "MIT" + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true, + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "BlueOak-1.0.0", + "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==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/peek-stream": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", + "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "duplexify": "^3.5.0", + "through2": "^2.0.3" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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-modules": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-6.0.1.tgz", + "integrity": "sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "generic-names": "^4.0.0", + "icss-utils": "^5.1.0", + "lodash.camelcase": "^4.3.0", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "string-hash": "^1.1.3" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.0.tgz", + "integrity": "sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.0.tgz", + "integrity": "sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/remark-frontmatter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz", + "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-frontmatter": "^1.0.0", + "micromark-extension-frontmatter": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.3.0.tgz", + "integrity": "sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^2.0.0", + "micromark-extension-mdxjs": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx-frontmatter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx-frontmatter/-/remark-mdx-frontmatter-1.1.1.tgz", + "integrity": "sha512-7teX9DW4tI2WZkXS4DBxneYSY7NHiXl4AKdWDO9LXVweULlCT8OPWsOjLEnMIXViN1j+QcY8mfbq3k0EK6x3uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-util-is-identifier-name": "^1.0.0", + "estree-util-value-to-estree": "^1.0.0", + "js-yaml": "^4.0.0", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=12.2.0" + } + }, + "node_modules/remark-mdx-frontmatter/node_modules/estree-util-is-identifier-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-1.1.0.tgz", + "integrity": "sha512-OVJZ3fGGt9By77Ix9NhaRbzfbDV/2rx9EP7YIDJTmsZSEc5kYn2vWcNccYyahJL2uAQZK2a5Or2i0wtIKTPoRQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/rollup": { + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz", + "integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.44.0", + "@rollup/rollup-android-arm64": "4.44.0", + "@rollup/rollup-darwin-arm64": "4.44.0", + "@rollup/rollup-darwin-x64": "4.44.0", + "@rollup/rollup-freebsd-arm64": "4.44.0", + "@rollup/rollup-freebsd-x64": "4.44.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", + "@rollup/rollup-linux-arm-musleabihf": "4.44.0", + "@rollup/rollup-linux-arm64-gnu": "4.44.0", + "@rollup/rollup-linux-arm64-musl": "4.44.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-gnu": "4.44.0", + "@rollup/rollup-linux-riscv64-musl": "4.44.0", + "@rollup/rollup-linux-s390x-gnu": "4.44.0", + "@rollup/rollup-linux-x64-gnu": "4.44.0", + "@rollup/rollup-linux-x64-musl": "4.44.0", + "@rollup/rollup-win32-arm64-msvc": "4.44.0", + "@rollup/rollup-win32-ia32-msvc": "4.44.0", + "@rollup/rollup-win32-x64-msvc": "4.44.0", + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "dev": true, + "license": "CC0-1.0" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", + "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/tar-fs/node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.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==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/turbo-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.1.tgz", + "integrity": "sha512-v8kOJXpG3WoTN/+at8vK7erSzo6nW6CIaeOvNOkHQVDajfz1ZVeSxCbc6tOH4hrGZW7VUCV0TOXd8CPzYnYkrw==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz", + "integrity": "sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz", + "integrity": "sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.1.tgz", + "integrity": "sha512-4AZVxP05JGN6DwqIkSP4VKLOcwQa5l37SWHF/ahcuqBMbfxbpN1L1QKafEhWCziHhzKex9H/AR09H0OuVyU+9g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.2.2" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.9.1", + "@unrs/resolver-binding-android-arm64": "1.9.1", + "@unrs/resolver-binding-darwin-arm64": "1.9.1", + "@unrs/resolver-binding-darwin-x64": "1.9.1", + "@unrs/resolver-binding-freebsd-x64": "1.9.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.9.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.9.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.9.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.9.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.9.1", + "@unrs/resolver-binding-linux-x64-musl": "1.9.1", + "@unrs/resolver-binding-wasm32-wasi": "1.9.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.9.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.9.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.9.1" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/valibot": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/valibot/-/valibot-0.41.0.tgz", + "integrity": "sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">=5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "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/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-node/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-tsconfig-paths": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz", + "integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "license": "MIT", + "dependencies": { + "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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/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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "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/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..4388d8f --- /dev/null +++ b/web/package.json @@ -0,0 +1,44 @@ +{ + "name": "web", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "build": "remix vite:build", + "dev": "remix vite:dev", + "lint": "eslint --ignore-path .gitignore --cache --cache-location ./node_modules/.cache/eslint .", + "start": "remix-serve ./build/server/index.js", + "typecheck": "tsc" + }, + "dependencies": { + "@remix-run/node": "^2.16.8", + "@remix-run/react": "^2.16.8", + "@remix-run/serve": "^2.16.8", + "isbot": "^4.1.0", + "lucide-react": "^0.522.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@remix-run/dev": "^2.16.8", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", + "autoprefixer": "^10.4.19", + "eslint": "^8.38.0", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.1.6", + "vite": "^6.0.0", + "vite-tsconfig-paths": "^4.2.1" + }, + "engines": { + "node": ">=20.0.0" + } +} diff --git a/web/postcss.config.js b/web/postcss.config.js new file mode 100644 index 0000000..2aa7205 --- /dev/null +++ b/web/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/web/public/favicon.ico b/web/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8830cf6821b354114848e6354889b8ecf6d2bc61 GIT binary patch literal 16958 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 EKbET!0{{R3 literal 0 HcmV?d00001 diff --git a/web/public/logo-dark.png b/web/public/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b24c7aee3a86dad7eb334ba6fba94e5b18b84215 GIT binary patch literal 80332 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 BAPKNXC&B9%2=3YBbo!Y+L4D-GS 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�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 F{{et{IHv#r literal 0 HcmV?d00001 diff --git a/web/tailwind.config.ts b/web/tailwind.config.ts new file mode 100644 index 0000000..c95a09a --- /dev/null +++ b/web/tailwind.config.ts @@ -0,0 +1,31 @@ +import type { Config } from "tailwindcss"; + +export default { + content: ["./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}"], + theme: { + extend: { + fontFamily: { + sans: [ + "Inter", + "ui-sans-serif", + "system-ui", + "sans-serif", + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol", + "Noto Color Emoji", + ], + }, + animation: { + spin: 'spin 1s linear infinite', + }, + keyframes: { + spin: { + from: { transform: 'rotate(0deg)' }, + to: { transform: 'rotate(360deg)' }, + }, + }, + }, + }, + plugins: [], +} satisfies Config; diff --git a/web/tsconfig.json b/web/tsconfig.json new file mode 100644 index 0000000..9d87dd3 --- /dev/null +++ b/web/tsconfig.json @@ -0,0 +1,32 @@ +{ + "include": [ + "**/*.ts", + "**/*.tsx", + "**/.server/**/*.ts", + "**/.server/**/*.tsx", + "**/.client/**/*.ts", + "**/.client/**/*.tsx" + ], + "compilerOptions": { + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "types": ["@remix-run/node", "vite/client"], + "isolatedModules": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "target": "ES2022", + "strict": true, + "allowJs": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "baseUrl": ".", + "paths": { + "~/*": ["./app/*"] + }, + + // Vite takes care of building everything, not tsc. + "noEmit": true + } +} diff --git a/web/vite.config.ts b/web/vite.config.ts new file mode 100644 index 0000000..ef6d138 --- /dev/null +++ b/web/vite.config.ts @@ -0,0 +1,32 @@ +import { vitePlugin as remix } from "@remix-run/dev"; +import { defineConfig } from "vite"; +import tsconfigPaths from "vite-tsconfig-paths"; + +declare module "@remix-run/node" { + interface Future { + v3_singleFetch: true; + } +} + +export default defineConfig({ + plugins: [ + remix({ + future: { + v3_fetcherPersist: true, + v3_relativeSplatPath: true, + v3_throwAbortReason: true, + v3_singleFetch: true, + v3_lazyRouteDiscovery: true, + }, + }), + tsconfigPaths(), + ], + server: { + proxy: { + "/api": { + target: "http://localhost:3001", + changeOrigin: true, + }, + }, + }, +});