A lexicon-driven AppView for ATProto. happyview.dev
backfill firehose jetstream atproto appview oauth lexicon
8
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: scaffold web admin app with static file serving

Trezy a10cf73d 65401726

+16055 -1
+3
.gitignore
··· 1 1 /target 2 2 .env 3 + web/node_modules/ 4 + web/.next/ 5 + web/out/
+31
Cargo.lock
··· 931 931 ] 932 932 933 933 [[package]] 934 + name = "http-range-header" 935 + version = "0.4.2" 936 + source = "registry+https://github.com/rust-lang/crates.io-index" 937 + checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" 938 + 939 + [[package]] 934 940 name = "httparse" 935 941 version = "1.10.1" 936 942 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1336 1342 version = "0.3.17" 1337 1343 source = "registry+https://github.com/rust-lang/crates.io-index" 1338 1344 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1345 + 1346 + [[package]] 1347 + name = "mime_guess" 1348 + version = "2.0.5" 1349 + source = "registry+https://github.com/rust-lang/crates.io-index" 1350 + checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1351 + dependencies = [ 1352 + "mime", 1353 + "unicase", 1354 + ] 1339 1355 1340 1356 [[package]] 1341 1357 name = "mio" ··· 2723 2739 dependencies = [ 2724 2740 "bitflags", 2725 2741 "bytes", 2742 + "futures-core", 2726 2743 "futures-util", 2727 2744 "http", 2728 2745 "http-body", 2746 + "http-body-util", 2747 + "http-range-header", 2748 + "httpdate", 2729 2749 "iri-string", 2750 + "mime", 2751 + "mime_guess", 2752 + "percent-encoding", 2730 2753 "pin-project-lite", 2754 + "tokio", 2755 + "tokio-util", 2731 2756 "tower", 2732 2757 "tower-layer", 2733 2758 "tower-service", ··· 2851 2876 version = "1.19.0" 2852 2877 source = "registry+https://github.com/rust-lang/crates.io-index" 2853 2878 checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 2879 + 2880 + [[package]] 2881 + name = "unicase" 2882 + version = "2.9.0" 2883 + source = "registry+https://github.com/rust-lang/crates.io-index" 2884 + checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" 2854 2885 2855 2886 [[package]] 2856 2887 name = "unicode-bidi"
+1 -1
Cargo.toml
··· 20 20 sqlx = { version = "0.8", features = ["runtime-tokio", "tls-rustls", "postgres", "json", "chrono", "migrate"] } 21 21 tokio = { version = "1", features = ["full"] } 22 22 tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] } 23 - tower-http = { version = "0.6", features = ["cors", "trace"] } 23 + tower-http = { version = "0.6", features = ["cors", "fs", "trace"] } 24 24 hickory-resolver = "0.25" 25 25 tracing = "0.1" 26 26 tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
+3
src/config.rs
··· 10 10 pub jetstream_url: String, 11 11 pub relay_url: String, 12 12 pub plc_url: String, 13 + pub static_dir: String, 13 14 } 14 15 15 16 impl Config { ··· 26 27 .unwrap_or_else(|_| "wss://jetstream2.us-west.bsky.network/subscribe".into()), 27 28 relay_url: env::var("RELAY_URL").unwrap_or_else(|_| "https://bsky.network".into()), 28 29 plc_url: env::var("PLC_URL").unwrap_or_else(|_| "https://plc.directory".into()), 30 + static_dir: env::var("STATIC_DIR").unwrap_or_else(|_| "./web/out".into()), 29 31 } 30 32 } 31 33 ··· 74 76 jetstream_url: String::new(), 75 77 relay_url: String::new(), 76 78 plc_url: String::new(), 79 + static_dir: String::new(), 77 80 }; 78 81 assert_eq!( 79 82 config.listen_addr(),
+6
src/server.rs
··· 2 2 use axum::routing::{get, post}; 3 3 use axum::{Json, Router}; 4 4 use tower_http::cors::CorsLayer; 5 + use tower_http::services::{ServeDir, ServeFile}; 5 6 use tower_http::trace::TraceLayer; 6 7 7 8 use crate::AppState; ··· 13 14 use crate::xrpc; 14 15 15 16 pub fn router(state: AppState) -> Router { 17 + let static_dir = state.config.static_dir.clone(); 18 + let index_path = format!("{}/index.html", static_dir); 19 + let serve_dir = ServeDir::new(&static_dir).not_found_service(ServeFile::new(index_path)); 20 + 16 21 Router::new() 17 22 .route("/health", get(health)) 18 23 .nest("/admin", admin::admin_routes(state.clone())) ··· 23 28 ) 24 29 // Catch-all for dynamically registered lexicons 25 30 .route("/xrpc/{method}", get(xrpc::xrpc_get).post(xrpc::xrpc_post)) 31 + .fallback_service(serve_dir) 26 32 .layer(TraceLayer::new_for_http()) 27 33 .layer(CorsLayer::permissive()) 28 34 .with_state(state)
+1
tests/common/app.rs
··· 38 38 jetstream_url: String::new(), 39 39 relay_url: mock_url.clone(), 40 40 plc_url: mock_url.clone(), 41 + static_dir: "./web/out".into(), 41 42 }; 42 43 43 44 // Seed the admin DID directly so tests don't rely on auto-bootstrap.
+41
web/.gitignore
··· 1 + # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 + 3 + # dependencies 4 + /node_modules 5 + /.pnp 6 + .pnp.* 7 + .yarn/* 8 + !.yarn/patches 9 + !.yarn/plugins 10 + !.yarn/releases 11 + !.yarn/versions 12 + 13 + # testing 14 + /coverage 15 + 16 + # next.js 17 + /.next/ 18 + /out/ 19 + 20 + # production 21 + /build 22 + 23 + # misc 24 + .DS_Store 25 + *.pem 26 + 27 + # debug 28 + npm-debug.log* 29 + yarn-debug.log* 30 + yarn-error.log* 31 + .pnpm-debug.log* 32 + 33 + # env files (can opt-in for committing if needed) 34 + .env* 35 + 36 + # vercel 37 + .vercel 38 + 39 + # typescript 40 + *.tsbuildinfo 41 + next-env.d.ts
+36
web/README.md
··· 1 + This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). 2 + 3 + ## Getting Started 4 + 5 + First, run the development server: 6 + 7 + ```bash 8 + npm run dev 9 + # or 10 + yarn dev 11 + # or 12 + pnpm dev 13 + # or 14 + bun dev 15 + ``` 16 + 17 + Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 + 19 + You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 + 21 + This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. 22 + 23 + ## Learn More 24 + 25 + To learn more about Next.js, take a look at the following resources: 26 + 27 + - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 + - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 + 30 + You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! 31 + 32 + ## Deploy on Vercel 33 + 34 + The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 + 36 + Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
+23
web/components.json
··· 1 + { 2 + "$schema": "https://ui.shadcn.com/schema.json", 3 + "style": "new-york", 4 + "rsc": true, 5 + "tsx": true, 6 + "tailwind": { 7 + "config": "", 8 + "css": "src/app/globals.css", 9 + "baseColor": "neutral", 10 + "cssVariables": true, 11 + "prefix": "" 12 + }, 13 + "iconLibrary": "lucide", 14 + "rtl": false, 15 + "aliases": { 16 + "components": "@/components", 17 + "utils": "@/lib/utils", 18 + "ui": "@/components/ui", 19 + "lib": "@/lib", 20 + "hooks": "@/hooks" 21 + }, 22 + "registries": {} 23 + }
+18
web/eslint.config.mjs
··· 1 + import { defineConfig, globalIgnores } from "eslint/config"; 2 + import nextVitals from "eslint-config-next/core-web-vitals"; 3 + import nextTs from "eslint-config-next/typescript"; 4 + 5 + const eslintConfig = defineConfig([ 6 + ...nextVitals, 7 + ...nextTs, 8 + // Override default ignores of eslint-config-next. 9 + globalIgnores([ 10 + // Default ignores of eslint-config-next: 11 + ".next/**", 12 + "out/**", 13 + "build/**", 14 + "next-env.d.ts", 15 + ]), 16 + ]); 17 + 18 + export default eslintConfig;
+18
web/next.config.ts
··· 1 + import type { NextConfig } from "next"; 2 + 3 + const nextConfig: NextConfig = { 4 + reactCompiler: true, 5 + images: { unoptimized: true }, 6 + }; 7 + 8 + if (process.env.NODE_ENV === "production") { 9 + nextConfig.output = "export"; 10 + } else { 11 + nextConfig.rewrites = async () => [ 12 + { source: "/admin/:path*", destination: "http://localhost:3000/admin/:path*" }, 13 + { source: "/xrpc/:path*", destination: "http://localhost:3000/xrpc/:path*" }, 14 + { source: "/health", destination: "http://localhost:3000/health" }, 15 + ]; 16 + } 17 + 18 + export default nextConfig;
+12315
web/package-lock.json
··· 1 + { 2 + "name": "web", 3 + "version": "0.1.0", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "web", 9 + "version": "0.1.0", 10 + "dependencies": { 11 + "@dnd-kit/core": "^6.3.1", 12 + "@dnd-kit/modifiers": "^9.0.0", 13 + "@dnd-kit/sortable": "^10.0.0", 14 + "@dnd-kit/utilities": "^3.2.2", 15 + "@tabler/icons-react": "^3.36.1", 16 + "@tanstack/react-table": "^8.21.3", 17 + "class-variance-authority": "^0.7.1", 18 + "clsx": "^2.1.1", 19 + "lucide-react": "^0.564.0", 20 + "next": "16.1.6", 21 + "next-themes": "^0.4.6", 22 + "radix-ui": "^1.4.3", 23 + "react": "19.2.3", 24 + "react-dom": "19.2.3", 25 + "recharts": "^2.15.4", 26 + "sonner": "^2.0.7", 27 + "tailwind-merge": "^3.4.0", 28 + "vaul": "^1.1.2", 29 + "zod": "^4.3.6" 30 + }, 31 + "devDependencies": { 32 + "@tailwindcss/postcss": "^4", 33 + "@types/node": "^20", 34 + "@types/react": "^19", 35 + "@types/react-dom": "^19", 36 + "babel-plugin-react-compiler": "1.0.0", 37 + "eslint": "^9", 38 + "eslint-config-next": "16.1.6", 39 + "shadcn": "^3.8.4", 40 + "tailwindcss": "^4", 41 + "tw-animate-css": "^1.4.0", 42 + "typescript": "^5" 43 + } 44 + }, 45 + "node_modules/@alloc/quick-lru": { 46 + "version": "5.2.0", 47 + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 48 + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 49 + "dev": true, 50 + "license": "MIT", 51 + "engines": { 52 + "node": ">=10" 53 + }, 54 + "funding": { 55 + "url": "https://github.com/sponsors/sindresorhus" 56 + } 57 + }, 58 + "node_modules/@antfu/ni": { 59 + "version": "25.0.0", 60 + "resolved": "https://registry.npmjs.org/@antfu/ni/-/ni-25.0.0.tgz", 61 + "integrity": "sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA==", 62 + "dev": true, 63 + "license": "MIT", 64 + "dependencies": { 65 + "ansis": "^4.0.0", 66 + "fzf": "^0.5.2", 67 + "package-manager-detector": "^1.3.0", 68 + "tinyexec": "^1.0.1" 69 + }, 70 + "bin": { 71 + "na": "bin/na.mjs", 72 + "nci": "bin/nci.mjs", 73 + "ni": "bin/ni.mjs", 74 + "nlx": "bin/nlx.mjs", 75 + "nr": "bin/nr.mjs", 76 + "nun": "bin/nun.mjs", 77 + "nup": "bin/nup.mjs" 78 + } 79 + }, 80 + "node_modules/@babel/code-frame": { 81 + "version": "7.29.0", 82 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", 83 + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", 84 + "dev": true, 85 + "license": "MIT", 86 + "dependencies": { 87 + "@babel/helper-validator-identifier": "^7.28.5", 88 + "js-tokens": "^4.0.0", 89 + "picocolors": "^1.1.1" 90 + }, 91 + "engines": { 92 + "node": ">=6.9.0" 93 + } 94 + }, 95 + "node_modules/@babel/compat-data": { 96 + "version": "7.29.0", 97 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", 98 + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", 99 + "dev": true, 100 + "license": "MIT", 101 + "engines": { 102 + "node": ">=6.9.0" 103 + } 104 + }, 105 + "node_modules/@babel/core": { 106 + "version": "7.29.0", 107 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", 108 + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", 109 + "dev": true, 110 + "license": "MIT", 111 + "peer": true, 112 + "dependencies": { 113 + "@babel/code-frame": "^7.29.0", 114 + "@babel/generator": "^7.29.0", 115 + "@babel/helper-compilation-targets": "^7.28.6", 116 + "@babel/helper-module-transforms": "^7.28.6", 117 + "@babel/helpers": "^7.28.6", 118 + "@babel/parser": "^7.29.0", 119 + "@babel/template": "^7.28.6", 120 + "@babel/traverse": "^7.29.0", 121 + "@babel/types": "^7.29.0", 122 + "@jridgewell/remapping": "^2.3.5", 123 + "convert-source-map": "^2.0.0", 124 + "debug": "^4.1.0", 125 + "gensync": "^1.0.0-beta.2", 126 + "json5": "^2.2.3", 127 + "semver": "^6.3.1" 128 + }, 129 + "engines": { 130 + "node": ">=6.9.0" 131 + }, 132 + "funding": { 133 + "type": "opencollective", 134 + "url": "https://opencollective.com/babel" 135 + } 136 + }, 137 + "node_modules/@babel/generator": { 138 + "version": "7.29.1", 139 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", 140 + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", 141 + "dev": true, 142 + "license": "MIT", 143 + "dependencies": { 144 + "@babel/parser": "^7.29.0", 145 + "@babel/types": "^7.29.0", 146 + "@jridgewell/gen-mapping": "^0.3.12", 147 + "@jridgewell/trace-mapping": "^0.3.28", 148 + "jsesc": "^3.0.2" 149 + }, 150 + "engines": { 151 + "node": ">=6.9.0" 152 + } 153 + }, 154 + "node_modules/@babel/helper-annotate-as-pure": { 155 + "version": "7.27.3", 156 + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", 157 + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", 158 + "dev": true, 159 + "license": "MIT", 160 + "dependencies": { 161 + "@babel/types": "^7.27.3" 162 + }, 163 + "engines": { 164 + "node": ">=6.9.0" 165 + } 166 + }, 167 + "node_modules/@babel/helper-compilation-targets": { 168 + "version": "7.28.6", 169 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", 170 + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", 171 + "dev": true, 172 + "license": "MIT", 173 + "dependencies": { 174 + "@babel/compat-data": "^7.28.6", 175 + "@babel/helper-validator-option": "^7.27.1", 176 + "browserslist": "^4.24.0", 177 + "lru-cache": "^5.1.1", 178 + "semver": "^6.3.1" 179 + }, 180 + "engines": { 181 + "node": ">=6.9.0" 182 + } 183 + }, 184 + "node_modules/@babel/helper-create-class-features-plugin": { 185 + "version": "7.28.6", 186 + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", 187 + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", 188 + "dev": true, 189 + "license": "MIT", 190 + "dependencies": { 191 + "@babel/helper-annotate-as-pure": "^7.27.3", 192 + "@babel/helper-member-expression-to-functions": "^7.28.5", 193 + "@babel/helper-optimise-call-expression": "^7.27.1", 194 + "@babel/helper-replace-supers": "^7.28.6", 195 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 196 + "@babel/traverse": "^7.28.6", 197 + "semver": "^6.3.1" 198 + }, 199 + "engines": { 200 + "node": ">=6.9.0" 201 + }, 202 + "peerDependencies": { 203 + "@babel/core": "^7.0.0" 204 + } 205 + }, 206 + "node_modules/@babel/helper-globals": { 207 + "version": "7.28.0", 208 + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 209 + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 210 + "dev": true, 211 + "license": "MIT", 212 + "engines": { 213 + "node": ">=6.9.0" 214 + } 215 + }, 216 + "node_modules/@babel/helper-member-expression-to-functions": { 217 + "version": "7.28.5", 218 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", 219 + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", 220 + "dev": true, 221 + "license": "MIT", 222 + "dependencies": { 223 + "@babel/traverse": "^7.28.5", 224 + "@babel/types": "^7.28.5" 225 + }, 226 + "engines": { 227 + "node": ">=6.9.0" 228 + } 229 + }, 230 + "node_modules/@babel/helper-module-imports": { 231 + "version": "7.28.6", 232 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", 233 + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", 234 + "dev": true, 235 + "license": "MIT", 236 + "dependencies": { 237 + "@babel/traverse": "^7.28.6", 238 + "@babel/types": "^7.28.6" 239 + }, 240 + "engines": { 241 + "node": ">=6.9.0" 242 + } 243 + }, 244 + "node_modules/@babel/helper-module-transforms": { 245 + "version": "7.28.6", 246 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", 247 + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", 248 + "dev": true, 249 + "license": "MIT", 250 + "dependencies": { 251 + "@babel/helper-module-imports": "^7.28.6", 252 + "@babel/helper-validator-identifier": "^7.28.5", 253 + "@babel/traverse": "^7.28.6" 254 + }, 255 + "engines": { 256 + "node": ">=6.9.0" 257 + }, 258 + "peerDependencies": { 259 + "@babel/core": "^7.0.0" 260 + } 261 + }, 262 + "node_modules/@babel/helper-optimise-call-expression": { 263 + "version": "7.27.1", 264 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", 265 + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", 266 + "dev": true, 267 + "license": "MIT", 268 + "dependencies": { 269 + "@babel/types": "^7.27.1" 270 + }, 271 + "engines": { 272 + "node": ">=6.9.0" 273 + } 274 + }, 275 + "node_modules/@babel/helper-plugin-utils": { 276 + "version": "7.28.6", 277 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", 278 + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", 279 + "dev": true, 280 + "license": "MIT", 281 + "engines": { 282 + "node": ">=6.9.0" 283 + } 284 + }, 285 + "node_modules/@babel/helper-replace-supers": { 286 + "version": "7.28.6", 287 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", 288 + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", 289 + "dev": true, 290 + "license": "MIT", 291 + "dependencies": { 292 + "@babel/helper-member-expression-to-functions": "^7.28.5", 293 + "@babel/helper-optimise-call-expression": "^7.27.1", 294 + "@babel/traverse": "^7.28.6" 295 + }, 296 + "engines": { 297 + "node": ">=6.9.0" 298 + }, 299 + "peerDependencies": { 300 + "@babel/core": "^7.0.0" 301 + } 302 + }, 303 + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { 304 + "version": "7.27.1", 305 + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", 306 + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", 307 + "dev": true, 308 + "license": "MIT", 309 + "dependencies": { 310 + "@babel/traverse": "^7.27.1", 311 + "@babel/types": "^7.27.1" 312 + }, 313 + "engines": { 314 + "node": ">=6.9.0" 315 + } 316 + }, 317 + "node_modules/@babel/helper-string-parser": { 318 + "version": "7.27.1", 319 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 320 + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 321 + "devOptional": true, 322 + "license": "MIT", 323 + "engines": { 324 + "node": ">=6.9.0" 325 + } 326 + }, 327 + "node_modules/@babel/helper-validator-identifier": { 328 + "version": "7.28.5", 329 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 330 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 331 + "devOptional": true, 332 + "license": "MIT", 333 + "engines": { 334 + "node": ">=6.9.0" 335 + } 336 + }, 337 + "node_modules/@babel/helper-validator-option": { 338 + "version": "7.27.1", 339 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", 340 + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", 341 + "dev": true, 342 + "license": "MIT", 343 + "engines": { 344 + "node": ">=6.9.0" 345 + } 346 + }, 347 + "node_modules/@babel/helpers": { 348 + "version": "7.28.6", 349 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", 350 + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", 351 + "dev": true, 352 + "license": "MIT", 353 + "dependencies": { 354 + "@babel/template": "^7.28.6", 355 + "@babel/types": "^7.28.6" 356 + }, 357 + "engines": { 358 + "node": ">=6.9.0" 359 + } 360 + }, 361 + "node_modules/@babel/parser": { 362 + "version": "7.29.0", 363 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", 364 + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", 365 + "dev": true, 366 + "license": "MIT", 367 + "dependencies": { 368 + "@babel/types": "^7.29.0" 369 + }, 370 + "bin": { 371 + "parser": "bin/babel-parser.js" 372 + }, 373 + "engines": { 374 + "node": ">=6.0.0" 375 + } 376 + }, 377 + "node_modules/@babel/plugin-syntax-jsx": { 378 + "version": "7.28.6", 379 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", 380 + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", 381 + "dev": true, 382 + "license": "MIT", 383 + "dependencies": { 384 + "@babel/helper-plugin-utils": "^7.28.6" 385 + }, 386 + "engines": { 387 + "node": ">=6.9.0" 388 + }, 389 + "peerDependencies": { 390 + "@babel/core": "^7.0.0-0" 391 + } 392 + }, 393 + "node_modules/@babel/plugin-syntax-typescript": { 394 + "version": "7.28.6", 395 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", 396 + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", 397 + "dev": true, 398 + "license": "MIT", 399 + "dependencies": { 400 + "@babel/helper-plugin-utils": "^7.28.6" 401 + }, 402 + "engines": { 403 + "node": ">=6.9.0" 404 + }, 405 + "peerDependencies": { 406 + "@babel/core": "^7.0.0-0" 407 + } 408 + }, 409 + "node_modules/@babel/plugin-transform-modules-commonjs": { 410 + "version": "7.28.6", 411 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", 412 + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", 413 + "dev": true, 414 + "license": "MIT", 415 + "dependencies": { 416 + "@babel/helper-module-transforms": "^7.28.6", 417 + "@babel/helper-plugin-utils": "^7.28.6" 418 + }, 419 + "engines": { 420 + "node": ">=6.9.0" 421 + }, 422 + "peerDependencies": { 423 + "@babel/core": "^7.0.0-0" 424 + } 425 + }, 426 + "node_modules/@babel/plugin-transform-typescript": { 427 + "version": "7.28.6", 428 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", 429 + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", 430 + "dev": true, 431 + "license": "MIT", 432 + "dependencies": { 433 + "@babel/helper-annotate-as-pure": "^7.27.3", 434 + "@babel/helper-create-class-features-plugin": "^7.28.6", 435 + "@babel/helper-plugin-utils": "^7.28.6", 436 + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", 437 + "@babel/plugin-syntax-typescript": "^7.28.6" 438 + }, 439 + "engines": { 440 + "node": ">=6.9.0" 441 + }, 442 + "peerDependencies": { 443 + "@babel/core": "^7.0.0-0" 444 + } 445 + }, 446 + "node_modules/@babel/preset-typescript": { 447 + "version": "7.28.5", 448 + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", 449 + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", 450 + "dev": true, 451 + "license": "MIT", 452 + "dependencies": { 453 + "@babel/helper-plugin-utils": "^7.27.1", 454 + "@babel/helper-validator-option": "^7.27.1", 455 + "@babel/plugin-syntax-jsx": "^7.27.1", 456 + "@babel/plugin-transform-modules-commonjs": "^7.27.1", 457 + "@babel/plugin-transform-typescript": "^7.28.5" 458 + }, 459 + "engines": { 460 + "node": ">=6.9.0" 461 + }, 462 + "peerDependencies": { 463 + "@babel/core": "^7.0.0-0" 464 + } 465 + }, 466 + "node_modules/@babel/runtime": { 467 + "version": "7.28.6", 468 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", 469 + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", 470 + "license": "MIT", 471 + "engines": { 472 + "node": ">=6.9.0" 473 + } 474 + }, 475 + "node_modules/@babel/template": { 476 + "version": "7.28.6", 477 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", 478 + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", 479 + "dev": true, 480 + "license": "MIT", 481 + "dependencies": { 482 + "@babel/code-frame": "^7.28.6", 483 + "@babel/parser": "^7.28.6", 484 + "@babel/types": "^7.28.6" 485 + }, 486 + "engines": { 487 + "node": ">=6.9.0" 488 + } 489 + }, 490 + "node_modules/@babel/traverse": { 491 + "version": "7.29.0", 492 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", 493 + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", 494 + "dev": true, 495 + "license": "MIT", 496 + "dependencies": { 497 + "@babel/code-frame": "^7.29.0", 498 + "@babel/generator": "^7.29.0", 499 + "@babel/helper-globals": "^7.28.0", 500 + "@babel/parser": "^7.29.0", 501 + "@babel/template": "^7.28.6", 502 + "@babel/types": "^7.29.0", 503 + "debug": "^4.3.1" 504 + }, 505 + "engines": { 506 + "node": ">=6.9.0" 507 + } 508 + }, 509 + "node_modules/@babel/types": { 510 + "version": "7.29.0", 511 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", 512 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", 513 + "devOptional": true, 514 + "license": "MIT", 515 + "dependencies": { 516 + "@babel/helper-string-parser": "^7.27.1", 517 + "@babel/helper-validator-identifier": "^7.28.5" 518 + }, 519 + "engines": { 520 + "node": ">=6.9.0" 521 + } 522 + }, 523 + "node_modules/@dnd-kit/accessibility": { 524 + "version": "3.1.1", 525 + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", 526 + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", 527 + "license": "MIT", 528 + "dependencies": { 529 + "tslib": "^2.0.0" 530 + }, 531 + "peerDependencies": { 532 + "react": ">=16.8.0" 533 + } 534 + }, 535 + "node_modules/@dnd-kit/core": { 536 + "version": "6.3.1", 537 + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", 538 + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", 539 + "license": "MIT", 540 + "peer": true, 541 + "dependencies": { 542 + "@dnd-kit/accessibility": "^3.1.1", 543 + "@dnd-kit/utilities": "^3.2.2", 544 + "tslib": "^2.0.0" 545 + }, 546 + "peerDependencies": { 547 + "react": ">=16.8.0", 548 + "react-dom": ">=16.8.0" 549 + } 550 + }, 551 + "node_modules/@dnd-kit/modifiers": { 552 + "version": "9.0.0", 553 + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", 554 + "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", 555 + "license": "MIT", 556 + "dependencies": { 557 + "@dnd-kit/utilities": "^3.2.2", 558 + "tslib": "^2.0.0" 559 + }, 560 + "peerDependencies": { 561 + "@dnd-kit/core": "^6.3.0", 562 + "react": ">=16.8.0" 563 + } 564 + }, 565 + "node_modules/@dnd-kit/sortable": { 566 + "version": "10.0.0", 567 + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", 568 + "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", 569 + "license": "MIT", 570 + "dependencies": { 571 + "@dnd-kit/utilities": "^3.2.2", 572 + "tslib": "^2.0.0" 573 + }, 574 + "peerDependencies": { 575 + "@dnd-kit/core": "^6.3.0", 576 + "react": ">=16.8.0" 577 + } 578 + }, 579 + "node_modules/@dnd-kit/utilities": { 580 + "version": "3.2.2", 581 + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", 582 + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", 583 + "license": "MIT", 584 + "dependencies": { 585 + "tslib": "^2.0.0" 586 + }, 587 + "peerDependencies": { 588 + "react": ">=16.8.0" 589 + } 590 + }, 591 + "node_modules/@dotenvx/dotenvx": { 592 + "version": "1.52.0", 593 + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.52.0.tgz", 594 + "integrity": "sha512-CaQcc8JvtzQhUSm9877b6V4Tb7HCotkcyud9X2YwdqtQKwgljkMRwU96fVYKnzN3V0Hj74oP7Es+vZ0mS+Aa1w==", 595 + "dev": true, 596 + "license": "BSD-3-Clause", 597 + "dependencies": { 598 + "commander": "^11.1.0", 599 + "dotenv": "^17.2.1", 600 + "eciesjs": "^0.4.10", 601 + "execa": "^5.1.1", 602 + "fdir": "^6.2.0", 603 + "ignore": "^5.3.0", 604 + "object-treeify": "1.1.33", 605 + "picomatch": "^4.0.2", 606 + "which": "^4.0.0" 607 + }, 608 + "bin": { 609 + "dotenvx": "src/cli/dotenvx.js" 610 + }, 611 + "funding": { 612 + "url": "https://dotenvx.com" 613 + } 614 + }, 615 + "node_modules/@dotenvx/dotenvx/node_modules/commander": { 616 + "version": "11.1.0", 617 + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", 618 + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", 619 + "dev": true, 620 + "license": "MIT", 621 + "engines": { 622 + "node": ">=16" 623 + } 624 + }, 625 + "node_modules/@dotenvx/dotenvx/node_modules/execa": { 626 + "version": "5.1.1", 627 + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 628 + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 629 + "dev": true, 630 + "license": "MIT", 631 + "dependencies": { 632 + "cross-spawn": "^7.0.3", 633 + "get-stream": "^6.0.0", 634 + "human-signals": "^2.1.0", 635 + "is-stream": "^2.0.0", 636 + "merge-stream": "^2.0.0", 637 + "npm-run-path": "^4.0.1", 638 + "onetime": "^5.1.2", 639 + "signal-exit": "^3.0.3", 640 + "strip-final-newline": "^2.0.0" 641 + }, 642 + "engines": { 643 + "node": ">=10" 644 + }, 645 + "funding": { 646 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 647 + } 648 + }, 649 + "node_modules/@dotenvx/dotenvx/node_modules/fdir": { 650 + "version": "6.5.0", 651 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 652 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 653 + "dev": true, 654 + "license": "MIT", 655 + "engines": { 656 + "node": ">=12.0.0" 657 + }, 658 + "peerDependencies": { 659 + "picomatch": "^3 || ^4" 660 + }, 661 + "peerDependenciesMeta": { 662 + "picomatch": { 663 + "optional": true 664 + } 665 + } 666 + }, 667 + "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { 668 + "version": "6.0.1", 669 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 670 + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 671 + "dev": true, 672 + "license": "MIT", 673 + "engines": { 674 + "node": ">=10" 675 + }, 676 + "funding": { 677 + "url": "https://github.com/sponsors/sindresorhus" 678 + } 679 + }, 680 + "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { 681 + "version": "2.1.0", 682 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 683 + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 684 + "dev": true, 685 + "license": "Apache-2.0", 686 + "engines": { 687 + "node": ">=10.17.0" 688 + } 689 + }, 690 + "node_modules/@dotenvx/dotenvx/node_modules/is-stream": { 691 + "version": "2.0.1", 692 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 693 + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 694 + "dev": true, 695 + "license": "MIT", 696 + "engines": { 697 + "node": ">=8" 698 + }, 699 + "funding": { 700 + "url": "https://github.com/sponsors/sindresorhus" 701 + } 702 + }, 703 + "node_modules/@dotenvx/dotenvx/node_modules/isexe": { 704 + "version": "3.1.5", 705 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", 706 + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", 707 + "dev": true, 708 + "license": "BlueOak-1.0.0", 709 + "engines": { 710 + "node": ">=18" 711 + } 712 + }, 713 + "node_modules/@dotenvx/dotenvx/node_modules/npm-run-path": { 714 + "version": "4.0.1", 715 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 716 + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 717 + "dev": true, 718 + "license": "MIT", 719 + "dependencies": { 720 + "path-key": "^3.0.0" 721 + }, 722 + "engines": { 723 + "node": ">=8" 724 + } 725 + }, 726 + "node_modules/@dotenvx/dotenvx/node_modules/onetime": { 727 + "version": "5.1.2", 728 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 729 + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 730 + "dev": true, 731 + "license": "MIT", 732 + "dependencies": { 733 + "mimic-fn": "^2.1.0" 734 + }, 735 + "engines": { 736 + "node": ">=6" 737 + }, 738 + "funding": { 739 + "url": "https://github.com/sponsors/sindresorhus" 740 + } 741 + }, 742 + "node_modules/@dotenvx/dotenvx/node_modules/picomatch": { 743 + "version": "4.0.3", 744 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 745 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 746 + "dev": true, 747 + "license": "MIT", 748 + "peer": true, 749 + "engines": { 750 + "node": ">=12" 751 + }, 752 + "funding": { 753 + "url": "https://github.com/sponsors/jonschlinkert" 754 + } 755 + }, 756 + "node_modules/@dotenvx/dotenvx/node_modules/signal-exit": { 757 + "version": "3.0.7", 758 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 759 + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 760 + "dev": true, 761 + "license": "ISC" 762 + }, 763 + "node_modules/@dotenvx/dotenvx/node_modules/strip-final-newline": { 764 + "version": "2.0.0", 765 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 766 + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 767 + "dev": true, 768 + "license": "MIT", 769 + "engines": { 770 + "node": ">=6" 771 + } 772 + }, 773 + "node_modules/@dotenvx/dotenvx/node_modules/which": { 774 + "version": "4.0.0", 775 + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", 776 + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", 777 + "dev": true, 778 + "license": "ISC", 779 + "dependencies": { 780 + "isexe": "^3.1.1" 781 + }, 782 + "bin": { 783 + "node-which": "bin/which.js" 784 + }, 785 + "engines": { 786 + "node": "^16.13.0 || >=18.0.0" 787 + } 788 + }, 789 + "node_modules/@ecies/ciphers": { 790 + "version": "0.2.5", 791 + "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.5.tgz", 792 + "integrity": "sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==", 793 + "dev": true, 794 + "license": "MIT", 795 + "engines": { 796 + "bun": ">=1", 797 + "deno": ">=2", 798 + "node": ">=16" 799 + }, 800 + "peerDependencies": { 801 + "@noble/ciphers": "^1.0.0" 802 + } 803 + }, 804 + "node_modules/@emnapi/core": { 805 + "version": "1.8.1", 806 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", 807 + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", 808 + "dev": true, 809 + "license": "MIT", 810 + "optional": true, 811 + "dependencies": { 812 + "@emnapi/wasi-threads": "1.1.0", 813 + "tslib": "^2.4.0" 814 + } 815 + }, 816 + "node_modules/@emnapi/runtime": { 817 + "version": "1.8.1", 818 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", 819 + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", 820 + "license": "MIT", 821 + "optional": true, 822 + "dependencies": { 823 + "tslib": "^2.4.0" 824 + } 825 + }, 826 + "node_modules/@emnapi/wasi-threads": { 827 + "version": "1.1.0", 828 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", 829 + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", 830 + "dev": true, 831 + "license": "MIT", 832 + "optional": true, 833 + "dependencies": { 834 + "tslib": "^2.4.0" 835 + } 836 + }, 837 + "node_modules/@eslint-community/eslint-utils": { 838 + "version": "4.9.1", 839 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", 840 + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", 841 + "dev": true, 842 + "license": "MIT", 843 + "dependencies": { 844 + "eslint-visitor-keys": "^3.4.3" 845 + }, 846 + "engines": { 847 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 848 + }, 849 + "funding": { 850 + "url": "https://opencollective.com/eslint" 851 + }, 852 + "peerDependencies": { 853 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 854 + } 855 + }, 856 + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { 857 + "version": "3.4.3", 858 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 859 + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 860 + "dev": true, 861 + "license": "Apache-2.0", 862 + "engines": { 863 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 864 + }, 865 + "funding": { 866 + "url": "https://opencollective.com/eslint" 867 + } 868 + }, 869 + "node_modules/@eslint-community/regexpp": { 870 + "version": "4.12.2", 871 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", 872 + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", 873 + "dev": true, 874 + "license": "MIT", 875 + "engines": { 876 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 877 + } 878 + }, 879 + "node_modules/@eslint/config-array": { 880 + "version": "0.21.1", 881 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", 882 + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", 883 + "dev": true, 884 + "license": "Apache-2.0", 885 + "dependencies": { 886 + "@eslint/object-schema": "^2.1.7", 887 + "debug": "^4.3.1", 888 + "minimatch": "^3.1.2" 889 + }, 890 + "engines": { 891 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 892 + } 893 + }, 894 + "node_modules/@eslint/config-helpers": { 895 + "version": "0.4.2", 896 + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", 897 + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", 898 + "dev": true, 899 + "license": "Apache-2.0", 900 + "dependencies": { 901 + "@eslint/core": "^0.17.0" 902 + }, 903 + "engines": { 904 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 905 + } 906 + }, 907 + "node_modules/@eslint/core": { 908 + "version": "0.17.0", 909 + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", 910 + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", 911 + "dev": true, 912 + "license": "Apache-2.0", 913 + "dependencies": { 914 + "@types/json-schema": "^7.0.15" 915 + }, 916 + "engines": { 917 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 918 + } 919 + }, 920 + "node_modules/@eslint/eslintrc": { 921 + "version": "3.3.3", 922 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", 923 + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", 924 + "dev": true, 925 + "license": "MIT", 926 + "dependencies": { 927 + "ajv": "^6.12.4", 928 + "debug": "^4.3.2", 929 + "espree": "^10.0.1", 930 + "globals": "^14.0.0", 931 + "ignore": "^5.2.0", 932 + "import-fresh": "^3.2.1", 933 + "js-yaml": "^4.1.1", 934 + "minimatch": "^3.1.2", 935 + "strip-json-comments": "^3.1.1" 936 + }, 937 + "engines": { 938 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 939 + }, 940 + "funding": { 941 + "url": "https://opencollective.com/eslint" 942 + } 943 + }, 944 + "node_modules/@eslint/js": { 945 + "version": "9.39.2", 946 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", 947 + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", 948 + "dev": true, 949 + "license": "MIT", 950 + "engines": { 951 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 952 + }, 953 + "funding": { 954 + "url": "https://eslint.org/donate" 955 + } 956 + }, 957 + "node_modules/@eslint/object-schema": { 958 + "version": "2.1.7", 959 + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", 960 + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", 961 + "dev": true, 962 + "license": "Apache-2.0", 963 + "engines": { 964 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 965 + } 966 + }, 967 + "node_modules/@eslint/plugin-kit": { 968 + "version": "0.4.1", 969 + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", 970 + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", 971 + "dev": true, 972 + "license": "Apache-2.0", 973 + "dependencies": { 974 + "@eslint/core": "^0.17.0", 975 + "levn": "^0.4.1" 976 + }, 977 + "engines": { 978 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 979 + } 980 + }, 981 + "node_modules/@floating-ui/core": { 982 + "version": "1.7.4", 983 + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", 984 + "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", 985 + "license": "MIT", 986 + "dependencies": { 987 + "@floating-ui/utils": "^0.2.10" 988 + } 989 + }, 990 + "node_modules/@floating-ui/dom": { 991 + "version": "1.7.5", 992 + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", 993 + "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", 994 + "license": "MIT", 995 + "dependencies": { 996 + "@floating-ui/core": "^1.7.4", 997 + "@floating-ui/utils": "^0.2.10" 998 + } 999 + }, 1000 + "node_modules/@floating-ui/react-dom": { 1001 + "version": "2.1.7", 1002 + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", 1003 + "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", 1004 + "license": "MIT", 1005 + "dependencies": { 1006 + "@floating-ui/dom": "^1.7.5" 1007 + }, 1008 + "peerDependencies": { 1009 + "react": ">=16.8.0", 1010 + "react-dom": ">=16.8.0" 1011 + } 1012 + }, 1013 + "node_modules/@floating-ui/utils": { 1014 + "version": "0.2.10", 1015 + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", 1016 + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", 1017 + "license": "MIT" 1018 + }, 1019 + "node_modules/@hono/node-server": { 1020 + "version": "1.19.9", 1021 + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz", 1022 + "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==", 1023 + "dev": true, 1024 + "license": "MIT", 1025 + "engines": { 1026 + "node": ">=18.14.1" 1027 + }, 1028 + "peerDependencies": { 1029 + "hono": "^4" 1030 + } 1031 + }, 1032 + "node_modules/@humanfs/core": { 1033 + "version": "0.19.1", 1034 + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 1035 + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 1036 + "dev": true, 1037 + "license": "Apache-2.0", 1038 + "engines": { 1039 + "node": ">=18.18.0" 1040 + } 1041 + }, 1042 + "node_modules/@humanfs/node": { 1043 + "version": "0.16.7", 1044 + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", 1045 + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", 1046 + "dev": true, 1047 + "license": "Apache-2.0", 1048 + "dependencies": { 1049 + "@humanfs/core": "^0.19.1", 1050 + "@humanwhocodes/retry": "^0.4.0" 1051 + }, 1052 + "engines": { 1053 + "node": ">=18.18.0" 1054 + } 1055 + }, 1056 + "node_modules/@humanwhocodes/module-importer": { 1057 + "version": "1.0.1", 1058 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 1059 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 1060 + "dev": true, 1061 + "license": "Apache-2.0", 1062 + "engines": { 1063 + "node": ">=12.22" 1064 + }, 1065 + "funding": { 1066 + "type": "github", 1067 + "url": "https://github.com/sponsors/nzakas" 1068 + } 1069 + }, 1070 + "node_modules/@humanwhocodes/retry": { 1071 + "version": "0.4.3", 1072 + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", 1073 + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", 1074 + "dev": true, 1075 + "license": "Apache-2.0", 1076 + "engines": { 1077 + "node": ">=18.18" 1078 + }, 1079 + "funding": { 1080 + "type": "github", 1081 + "url": "https://github.com/sponsors/nzakas" 1082 + } 1083 + }, 1084 + "node_modules/@img/colour": { 1085 + "version": "1.0.0", 1086 + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", 1087 + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", 1088 + "license": "MIT", 1089 + "optional": true, 1090 + "engines": { 1091 + "node": ">=18" 1092 + } 1093 + }, 1094 + "node_modules/@img/sharp-darwin-arm64": { 1095 + "version": "0.34.5", 1096 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", 1097 + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", 1098 + "cpu": [ 1099 + "arm64" 1100 + ], 1101 + "license": "Apache-2.0", 1102 + "optional": true, 1103 + "os": [ 1104 + "darwin" 1105 + ], 1106 + "engines": { 1107 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1108 + }, 1109 + "funding": { 1110 + "url": "https://opencollective.com/libvips" 1111 + }, 1112 + "optionalDependencies": { 1113 + "@img/sharp-libvips-darwin-arm64": "1.2.4" 1114 + } 1115 + }, 1116 + "node_modules/@img/sharp-darwin-x64": { 1117 + "version": "0.34.5", 1118 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", 1119 + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", 1120 + "cpu": [ 1121 + "x64" 1122 + ], 1123 + "license": "Apache-2.0", 1124 + "optional": true, 1125 + "os": [ 1126 + "darwin" 1127 + ], 1128 + "engines": { 1129 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1130 + }, 1131 + "funding": { 1132 + "url": "https://opencollective.com/libvips" 1133 + }, 1134 + "optionalDependencies": { 1135 + "@img/sharp-libvips-darwin-x64": "1.2.4" 1136 + } 1137 + }, 1138 + "node_modules/@img/sharp-libvips-darwin-arm64": { 1139 + "version": "1.2.4", 1140 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", 1141 + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", 1142 + "cpu": [ 1143 + "arm64" 1144 + ], 1145 + "license": "LGPL-3.0-or-later", 1146 + "optional": true, 1147 + "os": [ 1148 + "darwin" 1149 + ], 1150 + "funding": { 1151 + "url": "https://opencollective.com/libvips" 1152 + } 1153 + }, 1154 + "node_modules/@img/sharp-libvips-darwin-x64": { 1155 + "version": "1.2.4", 1156 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", 1157 + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", 1158 + "cpu": [ 1159 + "x64" 1160 + ], 1161 + "license": "LGPL-3.0-or-later", 1162 + "optional": true, 1163 + "os": [ 1164 + "darwin" 1165 + ], 1166 + "funding": { 1167 + "url": "https://opencollective.com/libvips" 1168 + } 1169 + }, 1170 + "node_modules/@img/sharp-libvips-linux-arm": { 1171 + "version": "1.2.4", 1172 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", 1173 + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", 1174 + "cpu": [ 1175 + "arm" 1176 + ], 1177 + "license": "LGPL-3.0-or-later", 1178 + "optional": true, 1179 + "os": [ 1180 + "linux" 1181 + ], 1182 + "funding": { 1183 + "url": "https://opencollective.com/libvips" 1184 + } 1185 + }, 1186 + "node_modules/@img/sharp-libvips-linux-arm64": { 1187 + "version": "1.2.4", 1188 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", 1189 + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", 1190 + "cpu": [ 1191 + "arm64" 1192 + ], 1193 + "license": "LGPL-3.0-or-later", 1194 + "optional": true, 1195 + "os": [ 1196 + "linux" 1197 + ], 1198 + "funding": { 1199 + "url": "https://opencollective.com/libvips" 1200 + } 1201 + }, 1202 + "node_modules/@img/sharp-libvips-linux-ppc64": { 1203 + "version": "1.2.4", 1204 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", 1205 + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", 1206 + "cpu": [ 1207 + "ppc64" 1208 + ], 1209 + "license": "LGPL-3.0-or-later", 1210 + "optional": true, 1211 + "os": [ 1212 + "linux" 1213 + ], 1214 + "funding": { 1215 + "url": "https://opencollective.com/libvips" 1216 + } 1217 + }, 1218 + "node_modules/@img/sharp-libvips-linux-riscv64": { 1219 + "version": "1.2.4", 1220 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", 1221 + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", 1222 + "cpu": [ 1223 + "riscv64" 1224 + ], 1225 + "license": "LGPL-3.0-or-later", 1226 + "optional": true, 1227 + "os": [ 1228 + "linux" 1229 + ], 1230 + "funding": { 1231 + "url": "https://opencollective.com/libvips" 1232 + } 1233 + }, 1234 + "node_modules/@img/sharp-libvips-linux-s390x": { 1235 + "version": "1.2.4", 1236 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", 1237 + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", 1238 + "cpu": [ 1239 + "s390x" 1240 + ], 1241 + "license": "LGPL-3.0-or-later", 1242 + "optional": true, 1243 + "os": [ 1244 + "linux" 1245 + ], 1246 + "funding": { 1247 + "url": "https://opencollective.com/libvips" 1248 + } 1249 + }, 1250 + "node_modules/@img/sharp-libvips-linux-x64": { 1251 + "version": "1.2.4", 1252 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", 1253 + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", 1254 + "cpu": [ 1255 + "x64" 1256 + ], 1257 + "license": "LGPL-3.0-or-later", 1258 + "optional": true, 1259 + "os": [ 1260 + "linux" 1261 + ], 1262 + "funding": { 1263 + "url": "https://opencollective.com/libvips" 1264 + } 1265 + }, 1266 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 1267 + "version": "1.2.4", 1268 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", 1269 + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", 1270 + "cpu": [ 1271 + "arm64" 1272 + ], 1273 + "license": "LGPL-3.0-or-later", 1274 + "optional": true, 1275 + "os": [ 1276 + "linux" 1277 + ], 1278 + "funding": { 1279 + "url": "https://opencollective.com/libvips" 1280 + } 1281 + }, 1282 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 1283 + "version": "1.2.4", 1284 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", 1285 + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", 1286 + "cpu": [ 1287 + "x64" 1288 + ], 1289 + "license": "LGPL-3.0-or-later", 1290 + "optional": true, 1291 + "os": [ 1292 + "linux" 1293 + ], 1294 + "funding": { 1295 + "url": "https://opencollective.com/libvips" 1296 + } 1297 + }, 1298 + "node_modules/@img/sharp-linux-arm": { 1299 + "version": "0.34.5", 1300 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", 1301 + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", 1302 + "cpu": [ 1303 + "arm" 1304 + ], 1305 + "license": "Apache-2.0", 1306 + "optional": true, 1307 + "os": [ 1308 + "linux" 1309 + ], 1310 + "engines": { 1311 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1312 + }, 1313 + "funding": { 1314 + "url": "https://opencollective.com/libvips" 1315 + }, 1316 + "optionalDependencies": { 1317 + "@img/sharp-libvips-linux-arm": "1.2.4" 1318 + } 1319 + }, 1320 + "node_modules/@img/sharp-linux-arm64": { 1321 + "version": "0.34.5", 1322 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", 1323 + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", 1324 + "cpu": [ 1325 + "arm64" 1326 + ], 1327 + "license": "Apache-2.0", 1328 + "optional": true, 1329 + "os": [ 1330 + "linux" 1331 + ], 1332 + "engines": { 1333 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1334 + }, 1335 + "funding": { 1336 + "url": "https://opencollective.com/libvips" 1337 + }, 1338 + "optionalDependencies": { 1339 + "@img/sharp-libvips-linux-arm64": "1.2.4" 1340 + } 1341 + }, 1342 + "node_modules/@img/sharp-linux-ppc64": { 1343 + "version": "0.34.5", 1344 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", 1345 + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", 1346 + "cpu": [ 1347 + "ppc64" 1348 + ], 1349 + "license": "Apache-2.0", 1350 + "optional": true, 1351 + "os": [ 1352 + "linux" 1353 + ], 1354 + "engines": { 1355 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1356 + }, 1357 + "funding": { 1358 + "url": "https://opencollective.com/libvips" 1359 + }, 1360 + "optionalDependencies": { 1361 + "@img/sharp-libvips-linux-ppc64": "1.2.4" 1362 + } 1363 + }, 1364 + "node_modules/@img/sharp-linux-riscv64": { 1365 + "version": "0.34.5", 1366 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", 1367 + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", 1368 + "cpu": [ 1369 + "riscv64" 1370 + ], 1371 + "license": "Apache-2.0", 1372 + "optional": true, 1373 + "os": [ 1374 + "linux" 1375 + ], 1376 + "engines": { 1377 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1378 + }, 1379 + "funding": { 1380 + "url": "https://opencollective.com/libvips" 1381 + }, 1382 + "optionalDependencies": { 1383 + "@img/sharp-libvips-linux-riscv64": "1.2.4" 1384 + } 1385 + }, 1386 + "node_modules/@img/sharp-linux-s390x": { 1387 + "version": "0.34.5", 1388 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", 1389 + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", 1390 + "cpu": [ 1391 + "s390x" 1392 + ], 1393 + "license": "Apache-2.0", 1394 + "optional": true, 1395 + "os": [ 1396 + "linux" 1397 + ], 1398 + "engines": { 1399 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1400 + }, 1401 + "funding": { 1402 + "url": "https://opencollective.com/libvips" 1403 + }, 1404 + "optionalDependencies": { 1405 + "@img/sharp-libvips-linux-s390x": "1.2.4" 1406 + } 1407 + }, 1408 + "node_modules/@img/sharp-linux-x64": { 1409 + "version": "0.34.5", 1410 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", 1411 + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", 1412 + "cpu": [ 1413 + "x64" 1414 + ], 1415 + "license": "Apache-2.0", 1416 + "optional": true, 1417 + "os": [ 1418 + "linux" 1419 + ], 1420 + "engines": { 1421 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1422 + }, 1423 + "funding": { 1424 + "url": "https://opencollective.com/libvips" 1425 + }, 1426 + "optionalDependencies": { 1427 + "@img/sharp-libvips-linux-x64": "1.2.4" 1428 + } 1429 + }, 1430 + "node_modules/@img/sharp-linuxmusl-arm64": { 1431 + "version": "0.34.5", 1432 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", 1433 + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", 1434 + "cpu": [ 1435 + "arm64" 1436 + ], 1437 + "license": "Apache-2.0", 1438 + "optional": true, 1439 + "os": [ 1440 + "linux" 1441 + ], 1442 + "engines": { 1443 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1444 + }, 1445 + "funding": { 1446 + "url": "https://opencollective.com/libvips" 1447 + }, 1448 + "optionalDependencies": { 1449 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" 1450 + } 1451 + }, 1452 + "node_modules/@img/sharp-linuxmusl-x64": { 1453 + "version": "0.34.5", 1454 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", 1455 + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", 1456 + "cpu": [ 1457 + "x64" 1458 + ], 1459 + "license": "Apache-2.0", 1460 + "optional": true, 1461 + "os": [ 1462 + "linux" 1463 + ], 1464 + "engines": { 1465 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1466 + }, 1467 + "funding": { 1468 + "url": "https://opencollective.com/libvips" 1469 + }, 1470 + "optionalDependencies": { 1471 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" 1472 + } 1473 + }, 1474 + "node_modules/@img/sharp-wasm32": { 1475 + "version": "0.34.5", 1476 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", 1477 + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", 1478 + "cpu": [ 1479 + "wasm32" 1480 + ], 1481 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 1482 + "optional": true, 1483 + "dependencies": { 1484 + "@emnapi/runtime": "^1.7.0" 1485 + }, 1486 + "engines": { 1487 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1488 + }, 1489 + "funding": { 1490 + "url": "https://opencollective.com/libvips" 1491 + } 1492 + }, 1493 + "node_modules/@img/sharp-win32-arm64": { 1494 + "version": "0.34.5", 1495 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", 1496 + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", 1497 + "cpu": [ 1498 + "arm64" 1499 + ], 1500 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1501 + "optional": true, 1502 + "os": [ 1503 + "win32" 1504 + ], 1505 + "engines": { 1506 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1507 + }, 1508 + "funding": { 1509 + "url": "https://opencollective.com/libvips" 1510 + } 1511 + }, 1512 + "node_modules/@img/sharp-win32-ia32": { 1513 + "version": "0.34.5", 1514 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", 1515 + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", 1516 + "cpu": [ 1517 + "ia32" 1518 + ], 1519 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1520 + "optional": true, 1521 + "os": [ 1522 + "win32" 1523 + ], 1524 + "engines": { 1525 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1526 + }, 1527 + "funding": { 1528 + "url": "https://opencollective.com/libvips" 1529 + } 1530 + }, 1531 + "node_modules/@img/sharp-win32-x64": { 1532 + "version": "0.34.5", 1533 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", 1534 + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", 1535 + "cpu": [ 1536 + "x64" 1537 + ], 1538 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1539 + "optional": true, 1540 + "os": [ 1541 + "win32" 1542 + ], 1543 + "engines": { 1544 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1545 + }, 1546 + "funding": { 1547 + "url": "https://opencollective.com/libvips" 1548 + } 1549 + }, 1550 + "node_modules/@inquirer/ansi": { 1551 + "version": "1.0.2", 1552 + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", 1553 + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", 1554 + "dev": true, 1555 + "license": "MIT", 1556 + "engines": { 1557 + "node": ">=18" 1558 + } 1559 + }, 1560 + "node_modules/@inquirer/confirm": { 1561 + "version": "5.1.21", 1562 + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", 1563 + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", 1564 + "dev": true, 1565 + "license": "MIT", 1566 + "dependencies": { 1567 + "@inquirer/core": "^10.3.2", 1568 + "@inquirer/type": "^3.0.10" 1569 + }, 1570 + "engines": { 1571 + "node": ">=18" 1572 + }, 1573 + "peerDependencies": { 1574 + "@types/node": ">=18" 1575 + }, 1576 + "peerDependenciesMeta": { 1577 + "@types/node": { 1578 + "optional": true 1579 + } 1580 + } 1581 + }, 1582 + "node_modules/@inquirer/core": { 1583 + "version": "10.3.2", 1584 + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", 1585 + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", 1586 + "dev": true, 1587 + "license": "MIT", 1588 + "dependencies": { 1589 + "@inquirer/ansi": "^1.0.2", 1590 + "@inquirer/figures": "^1.0.15", 1591 + "@inquirer/type": "^3.0.10", 1592 + "cli-width": "^4.1.0", 1593 + "mute-stream": "^2.0.0", 1594 + "signal-exit": "^4.1.0", 1595 + "wrap-ansi": "^6.2.0", 1596 + "yoctocolors-cjs": "^2.1.3" 1597 + }, 1598 + "engines": { 1599 + "node": ">=18" 1600 + }, 1601 + "peerDependencies": { 1602 + "@types/node": ">=18" 1603 + }, 1604 + "peerDependenciesMeta": { 1605 + "@types/node": { 1606 + "optional": true 1607 + } 1608 + } 1609 + }, 1610 + "node_modules/@inquirer/figures": { 1611 + "version": "1.0.15", 1612 + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", 1613 + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", 1614 + "dev": true, 1615 + "license": "MIT", 1616 + "engines": { 1617 + "node": ">=18" 1618 + } 1619 + }, 1620 + "node_modules/@inquirer/type": { 1621 + "version": "3.0.10", 1622 + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", 1623 + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", 1624 + "dev": true, 1625 + "license": "MIT", 1626 + "engines": { 1627 + "node": ">=18" 1628 + }, 1629 + "peerDependencies": { 1630 + "@types/node": ">=18" 1631 + }, 1632 + "peerDependenciesMeta": { 1633 + "@types/node": { 1634 + "optional": true 1635 + } 1636 + } 1637 + }, 1638 + "node_modules/@isaacs/cliui": { 1639 + "version": "9.0.0", 1640 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", 1641 + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", 1642 + "dev": true, 1643 + "license": "BlueOak-1.0.0", 1644 + "engines": { 1645 + "node": ">=18" 1646 + } 1647 + }, 1648 + "node_modules/@jridgewell/gen-mapping": { 1649 + "version": "0.3.13", 1650 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", 1651 + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", 1652 + "dev": true, 1653 + "license": "MIT", 1654 + "dependencies": { 1655 + "@jridgewell/sourcemap-codec": "^1.5.0", 1656 + "@jridgewell/trace-mapping": "^0.3.24" 1657 + } 1658 + }, 1659 + "node_modules/@jridgewell/remapping": { 1660 + "version": "2.3.5", 1661 + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", 1662 + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", 1663 + "dev": true, 1664 + "license": "MIT", 1665 + "dependencies": { 1666 + "@jridgewell/gen-mapping": "^0.3.5", 1667 + "@jridgewell/trace-mapping": "^0.3.24" 1668 + } 1669 + }, 1670 + "node_modules/@jridgewell/resolve-uri": { 1671 + "version": "3.1.2", 1672 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1673 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1674 + "dev": true, 1675 + "license": "MIT", 1676 + "engines": { 1677 + "node": ">=6.0.0" 1678 + } 1679 + }, 1680 + "node_modules/@jridgewell/sourcemap-codec": { 1681 + "version": "1.5.5", 1682 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1683 + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1684 + "dev": true, 1685 + "license": "MIT" 1686 + }, 1687 + "node_modules/@jridgewell/trace-mapping": { 1688 + "version": "0.3.31", 1689 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 1690 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 1691 + "dev": true, 1692 + "license": "MIT", 1693 + "dependencies": { 1694 + "@jridgewell/resolve-uri": "^3.1.0", 1695 + "@jridgewell/sourcemap-codec": "^1.4.14" 1696 + } 1697 + }, 1698 + "node_modules/@modelcontextprotocol/sdk": { 1699 + "version": "1.26.0", 1700 + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz", 1701 + "integrity": "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==", 1702 + "dev": true, 1703 + "license": "MIT", 1704 + "dependencies": { 1705 + "@hono/node-server": "^1.19.9", 1706 + "ajv": "^8.17.1", 1707 + "ajv-formats": "^3.0.1", 1708 + "content-type": "^1.0.5", 1709 + "cors": "^2.8.5", 1710 + "cross-spawn": "^7.0.5", 1711 + "eventsource": "^3.0.2", 1712 + "eventsource-parser": "^3.0.0", 1713 + "express": "^5.2.1", 1714 + "express-rate-limit": "^8.2.1", 1715 + "hono": "^4.11.4", 1716 + "jose": "^6.1.3", 1717 + "json-schema-typed": "^8.0.2", 1718 + "pkce-challenge": "^5.0.0", 1719 + "raw-body": "^3.0.0", 1720 + "zod": "^3.25 || ^4.0", 1721 + "zod-to-json-schema": "^3.25.1" 1722 + }, 1723 + "engines": { 1724 + "node": ">=18" 1725 + }, 1726 + "peerDependencies": { 1727 + "@cfworker/json-schema": "^4.1.1", 1728 + "zod": "^3.25 || ^4.0" 1729 + }, 1730 + "peerDependenciesMeta": { 1731 + "@cfworker/json-schema": { 1732 + "optional": true 1733 + }, 1734 + "zod": { 1735 + "optional": false 1736 + } 1737 + } 1738 + }, 1739 + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { 1740 + "version": "8.18.0", 1741 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", 1742 + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", 1743 + "dev": true, 1744 + "license": "MIT", 1745 + "dependencies": { 1746 + "fast-deep-equal": "^3.1.3", 1747 + "fast-uri": "^3.0.1", 1748 + "json-schema-traverse": "^1.0.0", 1749 + "require-from-string": "^2.0.2" 1750 + }, 1751 + "funding": { 1752 + "type": "github", 1753 + "url": "https://github.com/sponsors/epoberezkin" 1754 + } 1755 + }, 1756 + "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": { 1757 + "version": "1.0.0", 1758 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 1759 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 1760 + "dev": true, 1761 + "license": "MIT" 1762 + }, 1763 + "node_modules/@mswjs/interceptors": { 1764 + "version": "0.41.3", 1765 + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.41.3.tgz", 1766 + "integrity": "sha512-cXu86tF4VQVfwz8W1SPbhoRyHJkti6mjH/XJIxp40jhO4j2k1m4KYrEykxqWPkFF3vrK4rgQppBh//AwyGSXPA==", 1767 + "dev": true, 1768 + "license": "MIT", 1769 + "dependencies": { 1770 + "@open-draft/deferred-promise": "^2.2.0", 1771 + "@open-draft/logger": "^0.3.0", 1772 + "@open-draft/until": "^2.0.0", 1773 + "is-node-process": "^1.2.0", 1774 + "outvariant": "^1.4.3", 1775 + "strict-event-emitter": "^0.5.1" 1776 + }, 1777 + "engines": { 1778 + "node": ">=18" 1779 + } 1780 + }, 1781 + "node_modules/@napi-rs/wasm-runtime": { 1782 + "version": "0.2.12", 1783 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", 1784 + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", 1785 + "dev": true, 1786 + "license": "MIT", 1787 + "optional": true, 1788 + "dependencies": { 1789 + "@emnapi/core": "^1.4.3", 1790 + "@emnapi/runtime": "^1.4.3", 1791 + "@tybys/wasm-util": "^0.10.0" 1792 + } 1793 + }, 1794 + "node_modules/@next/env": { 1795 + "version": "16.1.6", 1796 + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", 1797 + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", 1798 + "license": "MIT" 1799 + }, 1800 + "node_modules/@next/eslint-plugin-next": { 1801 + "version": "16.1.6", 1802 + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.1.6.tgz", 1803 + "integrity": "sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==", 1804 + "dev": true, 1805 + "license": "MIT", 1806 + "dependencies": { 1807 + "fast-glob": "3.3.1" 1808 + } 1809 + }, 1810 + "node_modules/@next/swc-darwin-arm64": { 1811 + "version": "16.1.6", 1812 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", 1813 + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", 1814 + "cpu": [ 1815 + "arm64" 1816 + ], 1817 + "license": "MIT", 1818 + "optional": true, 1819 + "os": [ 1820 + "darwin" 1821 + ], 1822 + "engines": { 1823 + "node": ">= 10" 1824 + } 1825 + }, 1826 + "node_modules/@next/swc-darwin-x64": { 1827 + "version": "16.1.6", 1828 + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", 1829 + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", 1830 + "cpu": [ 1831 + "x64" 1832 + ], 1833 + "license": "MIT", 1834 + "optional": true, 1835 + "os": [ 1836 + "darwin" 1837 + ], 1838 + "engines": { 1839 + "node": ">= 10" 1840 + } 1841 + }, 1842 + "node_modules/@next/swc-linux-arm64-gnu": { 1843 + "version": "16.1.6", 1844 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", 1845 + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", 1846 + "cpu": [ 1847 + "arm64" 1848 + ], 1849 + "license": "MIT", 1850 + "optional": true, 1851 + "os": [ 1852 + "linux" 1853 + ], 1854 + "engines": { 1855 + "node": ">= 10" 1856 + } 1857 + }, 1858 + "node_modules/@next/swc-linux-arm64-musl": { 1859 + "version": "16.1.6", 1860 + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", 1861 + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", 1862 + "cpu": [ 1863 + "arm64" 1864 + ], 1865 + "license": "MIT", 1866 + "optional": true, 1867 + "os": [ 1868 + "linux" 1869 + ], 1870 + "engines": { 1871 + "node": ">= 10" 1872 + } 1873 + }, 1874 + "node_modules/@next/swc-linux-x64-gnu": { 1875 + "version": "16.1.6", 1876 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", 1877 + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", 1878 + "cpu": [ 1879 + "x64" 1880 + ], 1881 + "license": "MIT", 1882 + "optional": true, 1883 + "os": [ 1884 + "linux" 1885 + ], 1886 + "engines": { 1887 + "node": ">= 10" 1888 + } 1889 + }, 1890 + "node_modules/@next/swc-linux-x64-musl": { 1891 + "version": "16.1.6", 1892 + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", 1893 + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", 1894 + "cpu": [ 1895 + "x64" 1896 + ], 1897 + "license": "MIT", 1898 + "optional": true, 1899 + "os": [ 1900 + "linux" 1901 + ], 1902 + "engines": { 1903 + "node": ">= 10" 1904 + } 1905 + }, 1906 + "node_modules/@next/swc-win32-arm64-msvc": { 1907 + "version": "16.1.6", 1908 + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", 1909 + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", 1910 + "cpu": [ 1911 + "arm64" 1912 + ], 1913 + "license": "MIT", 1914 + "optional": true, 1915 + "os": [ 1916 + "win32" 1917 + ], 1918 + "engines": { 1919 + "node": ">= 10" 1920 + } 1921 + }, 1922 + "node_modules/@next/swc-win32-x64-msvc": { 1923 + "version": "16.1.6", 1924 + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", 1925 + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", 1926 + "cpu": [ 1927 + "x64" 1928 + ], 1929 + "license": "MIT", 1930 + "optional": true, 1931 + "os": [ 1932 + "win32" 1933 + ], 1934 + "engines": { 1935 + "node": ">= 10" 1936 + } 1937 + }, 1938 + "node_modules/@noble/ciphers": { 1939 + "version": "1.3.0", 1940 + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", 1941 + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", 1942 + "dev": true, 1943 + "license": "MIT", 1944 + "peer": true, 1945 + "engines": { 1946 + "node": "^14.21.3 || >=16" 1947 + }, 1948 + "funding": { 1949 + "url": "https://paulmillr.com/funding/" 1950 + } 1951 + }, 1952 + "node_modules/@noble/curves": { 1953 + "version": "1.9.7", 1954 + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", 1955 + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", 1956 + "dev": true, 1957 + "license": "MIT", 1958 + "dependencies": { 1959 + "@noble/hashes": "1.8.0" 1960 + }, 1961 + "engines": { 1962 + "node": "^14.21.3 || >=16" 1963 + }, 1964 + "funding": { 1965 + "url": "https://paulmillr.com/funding/" 1966 + } 1967 + }, 1968 + "node_modules/@noble/hashes": { 1969 + "version": "1.8.0", 1970 + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", 1971 + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", 1972 + "dev": true, 1973 + "license": "MIT", 1974 + "engines": { 1975 + "node": "^14.21.3 || >=16" 1976 + }, 1977 + "funding": { 1978 + "url": "https://paulmillr.com/funding/" 1979 + } 1980 + }, 1981 + "node_modules/@nodelib/fs.scandir": { 1982 + "version": "2.1.5", 1983 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1984 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1985 + "dev": true, 1986 + "license": "MIT", 1987 + "dependencies": { 1988 + "@nodelib/fs.stat": "2.0.5", 1989 + "run-parallel": "^1.1.9" 1990 + }, 1991 + "engines": { 1992 + "node": ">= 8" 1993 + } 1994 + }, 1995 + "node_modules/@nodelib/fs.stat": { 1996 + "version": "2.0.5", 1997 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1998 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1999 + "dev": true, 2000 + "license": "MIT", 2001 + "engines": { 2002 + "node": ">= 8" 2003 + } 2004 + }, 2005 + "node_modules/@nodelib/fs.walk": { 2006 + "version": "1.2.8", 2007 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 2008 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 2009 + "dev": true, 2010 + "license": "MIT", 2011 + "dependencies": { 2012 + "@nodelib/fs.scandir": "2.1.5", 2013 + "fastq": "^1.6.0" 2014 + }, 2015 + "engines": { 2016 + "node": ">= 8" 2017 + } 2018 + }, 2019 + "node_modules/@nolyfill/is-core-module": { 2020 + "version": "1.0.39", 2021 + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", 2022 + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", 2023 + "dev": true, 2024 + "license": "MIT", 2025 + "engines": { 2026 + "node": ">=12.4.0" 2027 + } 2028 + }, 2029 + "node_modules/@open-draft/deferred-promise": { 2030 + "version": "2.2.0", 2031 + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", 2032 + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", 2033 + "dev": true, 2034 + "license": "MIT" 2035 + }, 2036 + "node_modules/@open-draft/logger": { 2037 + "version": "0.3.0", 2038 + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", 2039 + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", 2040 + "dev": true, 2041 + "license": "MIT", 2042 + "dependencies": { 2043 + "is-node-process": "^1.2.0", 2044 + "outvariant": "^1.4.0" 2045 + } 2046 + }, 2047 + "node_modules/@open-draft/until": { 2048 + "version": "2.1.0", 2049 + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", 2050 + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", 2051 + "dev": true, 2052 + "license": "MIT" 2053 + }, 2054 + "node_modules/@radix-ui/number": { 2055 + "version": "1.1.1", 2056 + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", 2057 + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", 2058 + "license": "MIT" 2059 + }, 2060 + "node_modules/@radix-ui/primitive": { 2061 + "version": "1.1.3", 2062 + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", 2063 + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", 2064 + "license": "MIT" 2065 + }, 2066 + "node_modules/@radix-ui/react-accessible-icon": { 2067 + "version": "1.1.7", 2068 + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.7.tgz", 2069 + "integrity": "sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==", 2070 + "license": "MIT", 2071 + "dependencies": { 2072 + "@radix-ui/react-visually-hidden": "1.2.3" 2073 + }, 2074 + "peerDependencies": { 2075 + "@types/react": "*", 2076 + "@types/react-dom": "*", 2077 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2078 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2079 + }, 2080 + "peerDependenciesMeta": { 2081 + "@types/react": { 2082 + "optional": true 2083 + }, 2084 + "@types/react-dom": { 2085 + "optional": true 2086 + } 2087 + } 2088 + }, 2089 + "node_modules/@radix-ui/react-accordion": { 2090 + "version": "1.2.12", 2091 + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", 2092 + "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", 2093 + "license": "MIT", 2094 + "dependencies": { 2095 + "@radix-ui/primitive": "1.1.3", 2096 + "@radix-ui/react-collapsible": "1.1.12", 2097 + "@radix-ui/react-collection": "1.1.7", 2098 + "@radix-ui/react-compose-refs": "1.1.2", 2099 + "@radix-ui/react-context": "1.1.2", 2100 + "@radix-ui/react-direction": "1.1.1", 2101 + "@radix-ui/react-id": "1.1.1", 2102 + "@radix-ui/react-primitive": "2.1.3", 2103 + "@radix-ui/react-use-controllable-state": "1.2.2" 2104 + }, 2105 + "peerDependencies": { 2106 + "@types/react": "*", 2107 + "@types/react-dom": "*", 2108 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2109 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2110 + }, 2111 + "peerDependenciesMeta": { 2112 + "@types/react": { 2113 + "optional": true 2114 + }, 2115 + "@types/react-dom": { 2116 + "optional": true 2117 + } 2118 + } 2119 + }, 2120 + "node_modules/@radix-ui/react-alert-dialog": { 2121 + "version": "1.1.15", 2122 + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", 2123 + "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", 2124 + "license": "MIT", 2125 + "dependencies": { 2126 + "@radix-ui/primitive": "1.1.3", 2127 + "@radix-ui/react-compose-refs": "1.1.2", 2128 + "@radix-ui/react-context": "1.1.2", 2129 + "@radix-ui/react-dialog": "1.1.15", 2130 + "@radix-ui/react-primitive": "2.1.3", 2131 + "@radix-ui/react-slot": "1.2.3" 2132 + }, 2133 + "peerDependencies": { 2134 + "@types/react": "*", 2135 + "@types/react-dom": "*", 2136 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2137 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2138 + }, 2139 + "peerDependenciesMeta": { 2140 + "@types/react": { 2141 + "optional": true 2142 + }, 2143 + "@types/react-dom": { 2144 + "optional": true 2145 + } 2146 + } 2147 + }, 2148 + "node_modules/@radix-ui/react-arrow": { 2149 + "version": "1.1.7", 2150 + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", 2151 + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", 2152 + "license": "MIT", 2153 + "dependencies": { 2154 + "@radix-ui/react-primitive": "2.1.3" 2155 + }, 2156 + "peerDependencies": { 2157 + "@types/react": "*", 2158 + "@types/react-dom": "*", 2159 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2160 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2161 + }, 2162 + "peerDependenciesMeta": { 2163 + "@types/react": { 2164 + "optional": true 2165 + }, 2166 + "@types/react-dom": { 2167 + "optional": true 2168 + } 2169 + } 2170 + }, 2171 + "node_modules/@radix-ui/react-aspect-ratio": { 2172 + "version": "1.1.7", 2173 + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", 2174 + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", 2175 + "license": "MIT", 2176 + "dependencies": { 2177 + "@radix-ui/react-primitive": "2.1.3" 2178 + }, 2179 + "peerDependencies": { 2180 + "@types/react": "*", 2181 + "@types/react-dom": "*", 2182 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2183 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2184 + }, 2185 + "peerDependenciesMeta": { 2186 + "@types/react": { 2187 + "optional": true 2188 + }, 2189 + "@types/react-dom": { 2190 + "optional": true 2191 + } 2192 + } 2193 + }, 2194 + "node_modules/@radix-ui/react-avatar": { 2195 + "version": "1.1.10", 2196 + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", 2197 + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", 2198 + "license": "MIT", 2199 + "dependencies": { 2200 + "@radix-ui/react-context": "1.1.2", 2201 + "@radix-ui/react-primitive": "2.1.3", 2202 + "@radix-ui/react-use-callback-ref": "1.1.1", 2203 + "@radix-ui/react-use-is-hydrated": "0.1.0", 2204 + "@radix-ui/react-use-layout-effect": "1.1.1" 2205 + }, 2206 + "peerDependencies": { 2207 + "@types/react": "*", 2208 + "@types/react-dom": "*", 2209 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2210 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2211 + }, 2212 + "peerDependenciesMeta": { 2213 + "@types/react": { 2214 + "optional": true 2215 + }, 2216 + "@types/react-dom": { 2217 + "optional": true 2218 + } 2219 + } 2220 + }, 2221 + "node_modules/@radix-ui/react-checkbox": { 2222 + "version": "1.3.3", 2223 + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", 2224 + "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", 2225 + "license": "MIT", 2226 + "dependencies": { 2227 + "@radix-ui/primitive": "1.1.3", 2228 + "@radix-ui/react-compose-refs": "1.1.2", 2229 + "@radix-ui/react-context": "1.1.2", 2230 + "@radix-ui/react-presence": "1.1.5", 2231 + "@radix-ui/react-primitive": "2.1.3", 2232 + "@radix-ui/react-use-controllable-state": "1.2.2", 2233 + "@radix-ui/react-use-previous": "1.1.1", 2234 + "@radix-ui/react-use-size": "1.1.1" 2235 + }, 2236 + "peerDependencies": { 2237 + "@types/react": "*", 2238 + "@types/react-dom": "*", 2239 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2240 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2241 + }, 2242 + "peerDependenciesMeta": { 2243 + "@types/react": { 2244 + "optional": true 2245 + }, 2246 + "@types/react-dom": { 2247 + "optional": true 2248 + } 2249 + } 2250 + }, 2251 + "node_modules/@radix-ui/react-collapsible": { 2252 + "version": "1.1.12", 2253 + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", 2254 + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", 2255 + "license": "MIT", 2256 + "dependencies": { 2257 + "@radix-ui/primitive": "1.1.3", 2258 + "@radix-ui/react-compose-refs": "1.1.2", 2259 + "@radix-ui/react-context": "1.1.2", 2260 + "@radix-ui/react-id": "1.1.1", 2261 + "@radix-ui/react-presence": "1.1.5", 2262 + "@radix-ui/react-primitive": "2.1.3", 2263 + "@radix-ui/react-use-controllable-state": "1.2.2", 2264 + "@radix-ui/react-use-layout-effect": "1.1.1" 2265 + }, 2266 + "peerDependencies": { 2267 + "@types/react": "*", 2268 + "@types/react-dom": "*", 2269 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2270 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2271 + }, 2272 + "peerDependenciesMeta": { 2273 + "@types/react": { 2274 + "optional": true 2275 + }, 2276 + "@types/react-dom": { 2277 + "optional": true 2278 + } 2279 + } 2280 + }, 2281 + "node_modules/@radix-ui/react-collection": { 2282 + "version": "1.1.7", 2283 + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", 2284 + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", 2285 + "license": "MIT", 2286 + "dependencies": { 2287 + "@radix-ui/react-compose-refs": "1.1.2", 2288 + "@radix-ui/react-context": "1.1.2", 2289 + "@radix-ui/react-primitive": "2.1.3", 2290 + "@radix-ui/react-slot": "1.2.3" 2291 + }, 2292 + "peerDependencies": { 2293 + "@types/react": "*", 2294 + "@types/react-dom": "*", 2295 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2296 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2297 + }, 2298 + "peerDependenciesMeta": { 2299 + "@types/react": { 2300 + "optional": true 2301 + }, 2302 + "@types/react-dom": { 2303 + "optional": true 2304 + } 2305 + } 2306 + }, 2307 + "node_modules/@radix-ui/react-compose-refs": { 2308 + "version": "1.1.2", 2309 + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", 2310 + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", 2311 + "license": "MIT", 2312 + "peerDependencies": { 2313 + "@types/react": "*", 2314 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2315 + }, 2316 + "peerDependenciesMeta": { 2317 + "@types/react": { 2318 + "optional": true 2319 + } 2320 + } 2321 + }, 2322 + "node_modules/@radix-ui/react-context": { 2323 + "version": "1.1.2", 2324 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", 2325 + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", 2326 + "license": "MIT", 2327 + "peerDependencies": { 2328 + "@types/react": "*", 2329 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2330 + }, 2331 + "peerDependenciesMeta": { 2332 + "@types/react": { 2333 + "optional": true 2334 + } 2335 + } 2336 + }, 2337 + "node_modules/@radix-ui/react-context-menu": { 2338 + "version": "2.2.16", 2339 + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", 2340 + "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", 2341 + "license": "MIT", 2342 + "dependencies": { 2343 + "@radix-ui/primitive": "1.1.3", 2344 + "@radix-ui/react-context": "1.1.2", 2345 + "@radix-ui/react-menu": "2.1.16", 2346 + "@radix-ui/react-primitive": "2.1.3", 2347 + "@radix-ui/react-use-callback-ref": "1.1.1", 2348 + "@radix-ui/react-use-controllable-state": "1.2.2" 2349 + }, 2350 + "peerDependencies": { 2351 + "@types/react": "*", 2352 + "@types/react-dom": "*", 2353 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2354 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2355 + }, 2356 + "peerDependenciesMeta": { 2357 + "@types/react": { 2358 + "optional": true 2359 + }, 2360 + "@types/react-dom": { 2361 + "optional": true 2362 + } 2363 + } 2364 + }, 2365 + "node_modules/@radix-ui/react-dialog": { 2366 + "version": "1.1.15", 2367 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", 2368 + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", 2369 + "license": "MIT", 2370 + "dependencies": { 2371 + "@radix-ui/primitive": "1.1.3", 2372 + "@radix-ui/react-compose-refs": "1.1.2", 2373 + "@radix-ui/react-context": "1.1.2", 2374 + "@radix-ui/react-dismissable-layer": "1.1.11", 2375 + "@radix-ui/react-focus-guards": "1.1.3", 2376 + "@radix-ui/react-focus-scope": "1.1.7", 2377 + "@radix-ui/react-id": "1.1.1", 2378 + "@radix-ui/react-portal": "1.1.9", 2379 + "@radix-ui/react-presence": "1.1.5", 2380 + "@radix-ui/react-primitive": "2.1.3", 2381 + "@radix-ui/react-slot": "1.2.3", 2382 + "@radix-ui/react-use-controllable-state": "1.2.2", 2383 + "aria-hidden": "^1.2.4", 2384 + "react-remove-scroll": "^2.6.3" 2385 + }, 2386 + "peerDependencies": { 2387 + "@types/react": "*", 2388 + "@types/react-dom": "*", 2389 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2390 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2391 + }, 2392 + "peerDependenciesMeta": { 2393 + "@types/react": { 2394 + "optional": true 2395 + }, 2396 + "@types/react-dom": { 2397 + "optional": true 2398 + } 2399 + } 2400 + }, 2401 + "node_modules/@radix-ui/react-direction": { 2402 + "version": "1.1.1", 2403 + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", 2404 + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", 2405 + "license": "MIT", 2406 + "peerDependencies": { 2407 + "@types/react": "*", 2408 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2409 + }, 2410 + "peerDependenciesMeta": { 2411 + "@types/react": { 2412 + "optional": true 2413 + } 2414 + } 2415 + }, 2416 + "node_modules/@radix-ui/react-dismissable-layer": { 2417 + "version": "1.1.11", 2418 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", 2419 + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", 2420 + "license": "MIT", 2421 + "dependencies": { 2422 + "@radix-ui/primitive": "1.1.3", 2423 + "@radix-ui/react-compose-refs": "1.1.2", 2424 + "@radix-ui/react-primitive": "2.1.3", 2425 + "@radix-ui/react-use-callback-ref": "1.1.1", 2426 + "@radix-ui/react-use-escape-keydown": "1.1.1" 2427 + }, 2428 + "peerDependencies": { 2429 + "@types/react": "*", 2430 + "@types/react-dom": "*", 2431 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2432 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2433 + }, 2434 + "peerDependenciesMeta": { 2435 + "@types/react": { 2436 + "optional": true 2437 + }, 2438 + "@types/react-dom": { 2439 + "optional": true 2440 + } 2441 + } 2442 + }, 2443 + "node_modules/@radix-ui/react-dropdown-menu": { 2444 + "version": "2.1.16", 2445 + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", 2446 + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", 2447 + "license": "MIT", 2448 + "dependencies": { 2449 + "@radix-ui/primitive": "1.1.3", 2450 + "@radix-ui/react-compose-refs": "1.1.2", 2451 + "@radix-ui/react-context": "1.1.2", 2452 + "@radix-ui/react-id": "1.1.1", 2453 + "@radix-ui/react-menu": "2.1.16", 2454 + "@radix-ui/react-primitive": "2.1.3", 2455 + "@radix-ui/react-use-controllable-state": "1.2.2" 2456 + }, 2457 + "peerDependencies": { 2458 + "@types/react": "*", 2459 + "@types/react-dom": "*", 2460 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2461 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2462 + }, 2463 + "peerDependenciesMeta": { 2464 + "@types/react": { 2465 + "optional": true 2466 + }, 2467 + "@types/react-dom": { 2468 + "optional": true 2469 + } 2470 + } 2471 + }, 2472 + "node_modules/@radix-ui/react-focus-guards": { 2473 + "version": "1.1.3", 2474 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", 2475 + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", 2476 + "license": "MIT", 2477 + "peerDependencies": { 2478 + "@types/react": "*", 2479 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2480 + }, 2481 + "peerDependenciesMeta": { 2482 + "@types/react": { 2483 + "optional": true 2484 + } 2485 + } 2486 + }, 2487 + "node_modules/@radix-ui/react-focus-scope": { 2488 + "version": "1.1.7", 2489 + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", 2490 + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", 2491 + "license": "MIT", 2492 + "dependencies": { 2493 + "@radix-ui/react-compose-refs": "1.1.2", 2494 + "@radix-ui/react-primitive": "2.1.3", 2495 + "@radix-ui/react-use-callback-ref": "1.1.1" 2496 + }, 2497 + "peerDependencies": { 2498 + "@types/react": "*", 2499 + "@types/react-dom": "*", 2500 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2501 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2502 + }, 2503 + "peerDependenciesMeta": { 2504 + "@types/react": { 2505 + "optional": true 2506 + }, 2507 + "@types/react-dom": { 2508 + "optional": true 2509 + } 2510 + } 2511 + }, 2512 + "node_modules/@radix-ui/react-form": { 2513 + "version": "0.1.8", 2514 + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.8.tgz", 2515 + "integrity": "sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==", 2516 + "license": "MIT", 2517 + "dependencies": { 2518 + "@radix-ui/primitive": "1.1.3", 2519 + "@radix-ui/react-compose-refs": "1.1.2", 2520 + "@radix-ui/react-context": "1.1.2", 2521 + "@radix-ui/react-id": "1.1.1", 2522 + "@radix-ui/react-label": "2.1.7", 2523 + "@radix-ui/react-primitive": "2.1.3" 2524 + }, 2525 + "peerDependencies": { 2526 + "@types/react": "*", 2527 + "@types/react-dom": "*", 2528 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2529 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2530 + }, 2531 + "peerDependenciesMeta": { 2532 + "@types/react": { 2533 + "optional": true 2534 + }, 2535 + "@types/react-dom": { 2536 + "optional": true 2537 + } 2538 + } 2539 + }, 2540 + "node_modules/@radix-ui/react-hover-card": { 2541 + "version": "1.1.15", 2542 + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", 2543 + "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", 2544 + "license": "MIT", 2545 + "dependencies": { 2546 + "@radix-ui/primitive": "1.1.3", 2547 + "@radix-ui/react-compose-refs": "1.1.2", 2548 + "@radix-ui/react-context": "1.1.2", 2549 + "@radix-ui/react-dismissable-layer": "1.1.11", 2550 + "@radix-ui/react-popper": "1.2.8", 2551 + "@radix-ui/react-portal": "1.1.9", 2552 + "@radix-ui/react-presence": "1.1.5", 2553 + "@radix-ui/react-primitive": "2.1.3", 2554 + "@radix-ui/react-use-controllable-state": "1.2.2" 2555 + }, 2556 + "peerDependencies": { 2557 + "@types/react": "*", 2558 + "@types/react-dom": "*", 2559 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2560 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2561 + }, 2562 + "peerDependenciesMeta": { 2563 + "@types/react": { 2564 + "optional": true 2565 + }, 2566 + "@types/react-dom": { 2567 + "optional": true 2568 + } 2569 + } 2570 + }, 2571 + "node_modules/@radix-ui/react-id": { 2572 + "version": "1.1.1", 2573 + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", 2574 + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", 2575 + "license": "MIT", 2576 + "dependencies": { 2577 + "@radix-ui/react-use-layout-effect": "1.1.1" 2578 + }, 2579 + "peerDependencies": { 2580 + "@types/react": "*", 2581 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2582 + }, 2583 + "peerDependenciesMeta": { 2584 + "@types/react": { 2585 + "optional": true 2586 + } 2587 + } 2588 + }, 2589 + "node_modules/@radix-ui/react-label": { 2590 + "version": "2.1.7", 2591 + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", 2592 + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", 2593 + "license": "MIT", 2594 + "dependencies": { 2595 + "@radix-ui/react-primitive": "2.1.3" 2596 + }, 2597 + "peerDependencies": { 2598 + "@types/react": "*", 2599 + "@types/react-dom": "*", 2600 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2601 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2602 + }, 2603 + "peerDependenciesMeta": { 2604 + "@types/react": { 2605 + "optional": true 2606 + }, 2607 + "@types/react-dom": { 2608 + "optional": true 2609 + } 2610 + } 2611 + }, 2612 + "node_modules/@radix-ui/react-menu": { 2613 + "version": "2.1.16", 2614 + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", 2615 + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", 2616 + "license": "MIT", 2617 + "dependencies": { 2618 + "@radix-ui/primitive": "1.1.3", 2619 + "@radix-ui/react-collection": "1.1.7", 2620 + "@radix-ui/react-compose-refs": "1.1.2", 2621 + "@radix-ui/react-context": "1.1.2", 2622 + "@radix-ui/react-direction": "1.1.1", 2623 + "@radix-ui/react-dismissable-layer": "1.1.11", 2624 + "@radix-ui/react-focus-guards": "1.1.3", 2625 + "@radix-ui/react-focus-scope": "1.1.7", 2626 + "@radix-ui/react-id": "1.1.1", 2627 + "@radix-ui/react-popper": "1.2.8", 2628 + "@radix-ui/react-portal": "1.1.9", 2629 + "@radix-ui/react-presence": "1.1.5", 2630 + "@radix-ui/react-primitive": "2.1.3", 2631 + "@radix-ui/react-roving-focus": "1.1.11", 2632 + "@radix-ui/react-slot": "1.2.3", 2633 + "@radix-ui/react-use-callback-ref": "1.1.1", 2634 + "aria-hidden": "^1.2.4", 2635 + "react-remove-scroll": "^2.6.3" 2636 + }, 2637 + "peerDependencies": { 2638 + "@types/react": "*", 2639 + "@types/react-dom": "*", 2640 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2641 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2642 + }, 2643 + "peerDependenciesMeta": { 2644 + "@types/react": { 2645 + "optional": true 2646 + }, 2647 + "@types/react-dom": { 2648 + "optional": true 2649 + } 2650 + } 2651 + }, 2652 + "node_modules/@radix-ui/react-menubar": { 2653 + "version": "1.1.16", 2654 + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", 2655 + "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", 2656 + "license": "MIT", 2657 + "dependencies": { 2658 + "@radix-ui/primitive": "1.1.3", 2659 + "@radix-ui/react-collection": "1.1.7", 2660 + "@radix-ui/react-compose-refs": "1.1.2", 2661 + "@radix-ui/react-context": "1.1.2", 2662 + "@radix-ui/react-direction": "1.1.1", 2663 + "@radix-ui/react-id": "1.1.1", 2664 + "@radix-ui/react-menu": "2.1.16", 2665 + "@radix-ui/react-primitive": "2.1.3", 2666 + "@radix-ui/react-roving-focus": "1.1.11", 2667 + "@radix-ui/react-use-controllable-state": "1.2.2" 2668 + }, 2669 + "peerDependencies": { 2670 + "@types/react": "*", 2671 + "@types/react-dom": "*", 2672 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2673 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2674 + }, 2675 + "peerDependenciesMeta": { 2676 + "@types/react": { 2677 + "optional": true 2678 + }, 2679 + "@types/react-dom": { 2680 + "optional": true 2681 + } 2682 + } 2683 + }, 2684 + "node_modules/@radix-ui/react-navigation-menu": { 2685 + "version": "1.2.14", 2686 + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", 2687 + "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", 2688 + "license": "MIT", 2689 + "dependencies": { 2690 + "@radix-ui/primitive": "1.1.3", 2691 + "@radix-ui/react-collection": "1.1.7", 2692 + "@radix-ui/react-compose-refs": "1.1.2", 2693 + "@radix-ui/react-context": "1.1.2", 2694 + "@radix-ui/react-direction": "1.1.1", 2695 + "@radix-ui/react-dismissable-layer": "1.1.11", 2696 + "@radix-ui/react-id": "1.1.1", 2697 + "@radix-ui/react-presence": "1.1.5", 2698 + "@radix-ui/react-primitive": "2.1.3", 2699 + "@radix-ui/react-use-callback-ref": "1.1.1", 2700 + "@radix-ui/react-use-controllable-state": "1.2.2", 2701 + "@radix-ui/react-use-layout-effect": "1.1.1", 2702 + "@radix-ui/react-use-previous": "1.1.1", 2703 + "@radix-ui/react-visually-hidden": "1.2.3" 2704 + }, 2705 + "peerDependencies": { 2706 + "@types/react": "*", 2707 + "@types/react-dom": "*", 2708 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2709 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2710 + }, 2711 + "peerDependenciesMeta": { 2712 + "@types/react": { 2713 + "optional": true 2714 + }, 2715 + "@types/react-dom": { 2716 + "optional": true 2717 + } 2718 + } 2719 + }, 2720 + "node_modules/@radix-ui/react-one-time-password-field": { 2721 + "version": "0.1.8", 2722 + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.8.tgz", 2723 + "integrity": "sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==", 2724 + "license": "MIT", 2725 + "dependencies": { 2726 + "@radix-ui/number": "1.1.1", 2727 + "@radix-ui/primitive": "1.1.3", 2728 + "@radix-ui/react-collection": "1.1.7", 2729 + "@radix-ui/react-compose-refs": "1.1.2", 2730 + "@radix-ui/react-context": "1.1.2", 2731 + "@radix-ui/react-direction": "1.1.1", 2732 + "@radix-ui/react-primitive": "2.1.3", 2733 + "@radix-ui/react-roving-focus": "1.1.11", 2734 + "@radix-ui/react-use-controllable-state": "1.2.2", 2735 + "@radix-ui/react-use-effect-event": "0.0.2", 2736 + "@radix-ui/react-use-is-hydrated": "0.1.0", 2737 + "@radix-ui/react-use-layout-effect": "1.1.1" 2738 + }, 2739 + "peerDependencies": { 2740 + "@types/react": "*", 2741 + "@types/react-dom": "*", 2742 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2743 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2744 + }, 2745 + "peerDependenciesMeta": { 2746 + "@types/react": { 2747 + "optional": true 2748 + }, 2749 + "@types/react-dom": { 2750 + "optional": true 2751 + } 2752 + } 2753 + }, 2754 + "node_modules/@radix-ui/react-password-toggle-field": { 2755 + "version": "0.1.3", 2756 + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.3.tgz", 2757 + "integrity": "sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==", 2758 + "license": "MIT", 2759 + "dependencies": { 2760 + "@radix-ui/primitive": "1.1.3", 2761 + "@radix-ui/react-compose-refs": "1.1.2", 2762 + "@radix-ui/react-context": "1.1.2", 2763 + "@radix-ui/react-id": "1.1.1", 2764 + "@radix-ui/react-primitive": "2.1.3", 2765 + "@radix-ui/react-use-controllable-state": "1.2.2", 2766 + "@radix-ui/react-use-effect-event": "0.0.2", 2767 + "@radix-ui/react-use-is-hydrated": "0.1.0" 2768 + }, 2769 + "peerDependencies": { 2770 + "@types/react": "*", 2771 + "@types/react-dom": "*", 2772 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2773 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2774 + }, 2775 + "peerDependenciesMeta": { 2776 + "@types/react": { 2777 + "optional": true 2778 + }, 2779 + "@types/react-dom": { 2780 + "optional": true 2781 + } 2782 + } 2783 + }, 2784 + "node_modules/@radix-ui/react-popover": { 2785 + "version": "1.1.15", 2786 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", 2787 + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", 2788 + "license": "MIT", 2789 + "dependencies": { 2790 + "@radix-ui/primitive": "1.1.3", 2791 + "@radix-ui/react-compose-refs": "1.1.2", 2792 + "@radix-ui/react-context": "1.1.2", 2793 + "@radix-ui/react-dismissable-layer": "1.1.11", 2794 + "@radix-ui/react-focus-guards": "1.1.3", 2795 + "@radix-ui/react-focus-scope": "1.1.7", 2796 + "@radix-ui/react-id": "1.1.1", 2797 + "@radix-ui/react-popper": "1.2.8", 2798 + "@radix-ui/react-portal": "1.1.9", 2799 + "@radix-ui/react-presence": "1.1.5", 2800 + "@radix-ui/react-primitive": "2.1.3", 2801 + "@radix-ui/react-slot": "1.2.3", 2802 + "@radix-ui/react-use-controllable-state": "1.2.2", 2803 + "aria-hidden": "^1.2.4", 2804 + "react-remove-scroll": "^2.6.3" 2805 + }, 2806 + "peerDependencies": { 2807 + "@types/react": "*", 2808 + "@types/react-dom": "*", 2809 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2810 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2811 + }, 2812 + "peerDependenciesMeta": { 2813 + "@types/react": { 2814 + "optional": true 2815 + }, 2816 + "@types/react-dom": { 2817 + "optional": true 2818 + } 2819 + } 2820 + }, 2821 + "node_modules/@radix-ui/react-popper": { 2822 + "version": "1.2.8", 2823 + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", 2824 + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", 2825 + "license": "MIT", 2826 + "dependencies": { 2827 + "@floating-ui/react-dom": "^2.0.0", 2828 + "@radix-ui/react-arrow": "1.1.7", 2829 + "@radix-ui/react-compose-refs": "1.1.2", 2830 + "@radix-ui/react-context": "1.1.2", 2831 + "@radix-ui/react-primitive": "2.1.3", 2832 + "@radix-ui/react-use-callback-ref": "1.1.1", 2833 + "@radix-ui/react-use-layout-effect": "1.1.1", 2834 + "@radix-ui/react-use-rect": "1.1.1", 2835 + "@radix-ui/react-use-size": "1.1.1", 2836 + "@radix-ui/rect": "1.1.1" 2837 + }, 2838 + "peerDependencies": { 2839 + "@types/react": "*", 2840 + "@types/react-dom": "*", 2841 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2842 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2843 + }, 2844 + "peerDependenciesMeta": { 2845 + "@types/react": { 2846 + "optional": true 2847 + }, 2848 + "@types/react-dom": { 2849 + "optional": true 2850 + } 2851 + } 2852 + }, 2853 + "node_modules/@radix-ui/react-portal": { 2854 + "version": "1.1.9", 2855 + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", 2856 + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", 2857 + "license": "MIT", 2858 + "dependencies": { 2859 + "@radix-ui/react-primitive": "2.1.3", 2860 + "@radix-ui/react-use-layout-effect": "1.1.1" 2861 + }, 2862 + "peerDependencies": { 2863 + "@types/react": "*", 2864 + "@types/react-dom": "*", 2865 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2866 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2867 + }, 2868 + "peerDependenciesMeta": { 2869 + "@types/react": { 2870 + "optional": true 2871 + }, 2872 + "@types/react-dom": { 2873 + "optional": true 2874 + } 2875 + } 2876 + }, 2877 + "node_modules/@radix-ui/react-presence": { 2878 + "version": "1.1.5", 2879 + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", 2880 + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", 2881 + "license": "MIT", 2882 + "dependencies": { 2883 + "@radix-ui/react-compose-refs": "1.1.2", 2884 + "@radix-ui/react-use-layout-effect": "1.1.1" 2885 + }, 2886 + "peerDependencies": { 2887 + "@types/react": "*", 2888 + "@types/react-dom": "*", 2889 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2890 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2891 + }, 2892 + "peerDependenciesMeta": { 2893 + "@types/react": { 2894 + "optional": true 2895 + }, 2896 + "@types/react-dom": { 2897 + "optional": true 2898 + } 2899 + } 2900 + }, 2901 + "node_modules/@radix-ui/react-primitive": { 2902 + "version": "2.1.3", 2903 + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", 2904 + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", 2905 + "license": "MIT", 2906 + "dependencies": { 2907 + "@radix-ui/react-slot": "1.2.3" 2908 + }, 2909 + "peerDependencies": { 2910 + "@types/react": "*", 2911 + "@types/react-dom": "*", 2912 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2913 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2914 + }, 2915 + "peerDependenciesMeta": { 2916 + "@types/react": { 2917 + "optional": true 2918 + }, 2919 + "@types/react-dom": { 2920 + "optional": true 2921 + } 2922 + } 2923 + }, 2924 + "node_modules/@radix-ui/react-progress": { 2925 + "version": "1.1.7", 2926 + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", 2927 + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", 2928 + "license": "MIT", 2929 + "dependencies": { 2930 + "@radix-ui/react-context": "1.1.2", 2931 + "@radix-ui/react-primitive": "2.1.3" 2932 + }, 2933 + "peerDependencies": { 2934 + "@types/react": "*", 2935 + "@types/react-dom": "*", 2936 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2937 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2938 + }, 2939 + "peerDependenciesMeta": { 2940 + "@types/react": { 2941 + "optional": true 2942 + }, 2943 + "@types/react-dom": { 2944 + "optional": true 2945 + } 2946 + } 2947 + }, 2948 + "node_modules/@radix-ui/react-radio-group": { 2949 + "version": "1.3.8", 2950 + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", 2951 + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", 2952 + "license": "MIT", 2953 + "dependencies": { 2954 + "@radix-ui/primitive": "1.1.3", 2955 + "@radix-ui/react-compose-refs": "1.1.2", 2956 + "@radix-ui/react-context": "1.1.2", 2957 + "@radix-ui/react-direction": "1.1.1", 2958 + "@radix-ui/react-presence": "1.1.5", 2959 + "@radix-ui/react-primitive": "2.1.3", 2960 + "@radix-ui/react-roving-focus": "1.1.11", 2961 + "@radix-ui/react-use-controllable-state": "1.2.2", 2962 + "@radix-ui/react-use-previous": "1.1.1", 2963 + "@radix-ui/react-use-size": "1.1.1" 2964 + }, 2965 + "peerDependencies": { 2966 + "@types/react": "*", 2967 + "@types/react-dom": "*", 2968 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 2969 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 2970 + }, 2971 + "peerDependenciesMeta": { 2972 + "@types/react": { 2973 + "optional": true 2974 + }, 2975 + "@types/react-dom": { 2976 + "optional": true 2977 + } 2978 + } 2979 + }, 2980 + "node_modules/@radix-ui/react-roving-focus": { 2981 + "version": "1.1.11", 2982 + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", 2983 + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", 2984 + "license": "MIT", 2985 + "dependencies": { 2986 + "@radix-ui/primitive": "1.1.3", 2987 + "@radix-ui/react-collection": "1.1.7", 2988 + "@radix-ui/react-compose-refs": "1.1.2", 2989 + "@radix-ui/react-context": "1.1.2", 2990 + "@radix-ui/react-direction": "1.1.1", 2991 + "@radix-ui/react-id": "1.1.1", 2992 + "@radix-ui/react-primitive": "2.1.3", 2993 + "@radix-ui/react-use-callback-ref": "1.1.1", 2994 + "@radix-ui/react-use-controllable-state": "1.2.2" 2995 + }, 2996 + "peerDependencies": { 2997 + "@types/react": "*", 2998 + "@types/react-dom": "*", 2999 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3000 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3001 + }, 3002 + "peerDependenciesMeta": { 3003 + "@types/react": { 3004 + "optional": true 3005 + }, 3006 + "@types/react-dom": { 3007 + "optional": true 3008 + } 3009 + } 3010 + }, 3011 + "node_modules/@radix-ui/react-scroll-area": { 3012 + "version": "1.2.10", 3013 + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", 3014 + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", 3015 + "license": "MIT", 3016 + "dependencies": { 3017 + "@radix-ui/number": "1.1.1", 3018 + "@radix-ui/primitive": "1.1.3", 3019 + "@radix-ui/react-compose-refs": "1.1.2", 3020 + "@radix-ui/react-context": "1.1.2", 3021 + "@radix-ui/react-direction": "1.1.1", 3022 + "@radix-ui/react-presence": "1.1.5", 3023 + "@radix-ui/react-primitive": "2.1.3", 3024 + "@radix-ui/react-use-callback-ref": "1.1.1", 3025 + "@radix-ui/react-use-layout-effect": "1.1.1" 3026 + }, 3027 + "peerDependencies": { 3028 + "@types/react": "*", 3029 + "@types/react-dom": "*", 3030 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3031 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3032 + }, 3033 + "peerDependenciesMeta": { 3034 + "@types/react": { 3035 + "optional": true 3036 + }, 3037 + "@types/react-dom": { 3038 + "optional": true 3039 + } 3040 + } 3041 + }, 3042 + "node_modules/@radix-ui/react-select": { 3043 + "version": "2.2.6", 3044 + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", 3045 + "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", 3046 + "license": "MIT", 3047 + "dependencies": { 3048 + "@radix-ui/number": "1.1.1", 3049 + "@radix-ui/primitive": "1.1.3", 3050 + "@radix-ui/react-collection": "1.1.7", 3051 + "@radix-ui/react-compose-refs": "1.1.2", 3052 + "@radix-ui/react-context": "1.1.2", 3053 + "@radix-ui/react-direction": "1.1.1", 3054 + "@radix-ui/react-dismissable-layer": "1.1.11", 3055 + "@radix-ui/react-focus-guards": "1.1.3", 3056 + "@radix-ui/react-focus-scope": "1.1.7", 3057 + "@radix-ui/react-id": "1.1.1", 3058 + "@radix-ui/react-popper": "1.2.8", 3059 + "@radix-ui/react-portal": "1.1.9", 3060 + "@radix-ui/react-primitive": "2.1.3", 3061 + "@radix-ui/react-slot": "1.2.3", 3062 + "@radix-ui/react-use-callback-ref": "1.1.1", 3063 + "@radix-ui/react-use-controllable-state": "1.2.2", 3064 + "@radix-ui/react-use-layout-effect": "1.1.1", 3065 + "@radix-ui/react-use-previous": "1.1.1", 3066 + "@radix-ui/react-visually-hidden": "1.2.3", 3067 + "aria-hidden": "^1.2.4", 3068 + "react-remove-scroll": "^2.6.3" 3069 + }, 3070 + "peerDependencies": { 3071 + "@types/react": "*", 3072 + "@types/react-dom": "*", 3073 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3074 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3075 + }, 3076 + "peerDependenciesMeta": { 3077 + "@types/react": { 3078 + "optional": true 3079 + }, 3080 + "@types/react-dom": { 3081 + "optional": true 3082 + } 3083 + } 3084 + }, 3085 + "node_modules/@radix-ui/react-separator": { 3086 + "version": "1.1.7", 3087 + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", 3088 + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", 3089 + "license": "MIT", 3090 + "dependencies": { 3091 + "@radix-ui/react-primitive": "2.1.3" 3092 + }, 3093 + "peerDependencies": { 3094 + "@types/react": "*", 3095 + "@types/react-dom": "*", 3096 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3097 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3098 + }, 3099 + "peerDependenciesMeta": { 3100 + "@types/react": { 3101 + "optional": true 3102 + }, 3103 + "@types/react-dom": { 3104 + "optional": true 3105 + } 3106 + } 3107 + }, 3108 + "node_modules/@radix-ui/react-slider": { 3109 + "version": "1.3.6", 3110 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", 3111 + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", 3112 + "license": "MIT", 3113 + "dependencies": { 3114 + "@radix-ui/number": "1.1.1", 3115 + "@radix-ui/primitive": "1.1.3", 3116 + "@radix-ui/react-collection": "1.1.7", 3117 + "@radix-ui/react-compose-refs": "1.1.2", 3118 + "@radix-ui/react-context": "1.1.2", 3119 + "@radix-ui/react-direction": "1.1.1", 3120 + "@radix-ui/react-primitive": "2.1.3", 3121 + "@radix-ui/react-use-controllable-state": "1.2.2", 3122 + "@radix-ui/react-use-layout-effect": "1.1.1", 3123 + "@radix-ui/react-use-previous": "1.1.1", 3124 + "@radix-ui/react-use-size": "1.1.1" 3125 + }, 3126 + "peerDependencies": { 3127 + "@types/react": "*", 3128 + "@types/react-dom": "*", 3129 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3130 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3131 + }, 3132 + "peerDependenciesMeta": { 3133 + "@types/react": { 3134 + "optional": true 3135 + }, 3136 + "@types/react-dom": { 3137 + "optional": true 3138 + } 3139 + } 3140 + }, 3141 + "node_modules/@radix-ui/react-slot": { 3142 + "version": "1.2.3", 3143 + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", 3144 + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", 3145 + "license": "MIT", 3146 + "dependencies": { 3147 + "@radix-ui/react-compose-refs": "1.1.2" 3148 + }, 3149 + "peerDependencies": { 3150 + "@types/react": "*", 3151 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3152 + }, 3153 + "peerDependenciesMeta": { 3154 + "@types/react": { 3155 + "optional": true 3156 + } 3157 + } 3158 + }, 3159 + "node_modules/@radix-ui/react-switch": { 3160 + "version": "1.2.6", 3161 + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", 3162 + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", 3163 + "license": "MIT", 3164 + "dependencies": { 3165 + "@radix-ui/primitive": "1.1.3", 3166 + "@radix-ui/react-compose-refs": "1.1.2", 3167 + "@radix-ui/react-context": "1.1.2", 3168 + "@radix-ui/react-primitive": "2.1.3", 3169 + "@radix-ui/react-use-controllable-state": "1.2.2", 3170 + "@radix-ui/react-use-previous": "1.1.1", 3171 + "@radix-ui/react-use-size": "1.1.1" 3172 + }, 3173 + "peerDependencies": { 3174 + "@types/react": "*", 3175 + "@types/react-dom": "*", 3176 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3177 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3178 + }, 3179 + "peerDependenciesMeta": { 3180 + "@types/react": { 3181 + "optional": true 3182 + }, 3183 + "@types/react-dom": { 3184 + "optional": true 3185 + } 3186 + } 3187 + }, 3188 + "node_modules/@radix-ui/react-tabs": { 3189 + "version": "1.1.13", 3190 + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", 3191 + "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", 3192 + "license": "MIT", 3193 + "dependencies": { 3194 + "@radix-ui/primitive": "1.1.3", 3195 + "@radix-ui/react-context": "1.1.2", 3196 + "@radix-ui/react-direction": "1.1.1", 3197 + "@radix-ui/react-id": "1.1.1", 3198 + "@radix-ui/react-presence": "1.1.5", 3199 + "@radix-ui/react-primitive": "2.1.3", 3200 + "@radix-ui/react-roving-focus": "1.1.11", 3201 + "@radix-ui/react-use-controllable-state": "1.2.2" 3202 + }, 3203 + "peerDependencies": { 3204 + "@types/react": "*", 3205 + "@types/react-dom": "*", 3206 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3207 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3208 + }, 3209 + "peerDependenciesMeta": { 3210 + "@types/react": { 3211 + "optional": true 3212 + }, 3213 + "@types/react-dom": { 3214 + "optional": true 3215 + } 3216 + } 3217 + }, 3218 + "node_modules/@radix-ui/react-toast": { 3219 + "version": "1.2.15", 3220 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", 3221 + "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", 3222 + "license": "MIT", 3223 + "dependencies": { 3224 + "@radix-ui/primitive": "1.1.3", 3225 + "@radix-ui/react-collection": "1.1.7", 3226 + "@radix-ui/react-compose-refs": "1.1.2", 3227 + "@radix-ui/react-context": "1.1.2", 3228 + "@radix-ui/react-dismissable-layer": "1.1.11", 3229 + "@radix-ui/react-portal": "1.1.9", 3230 + "@radix-ui/react-presence": "1.1.5", 3231 + "@radix-ui/react-primitive": "2.1.3", 3232 + "@radix-ui/react-use-callback-ref": "1.1.1", 3233 + "@radix-ui/react-use-controllable-state": "1.2.2", 3234 + "@radix-ui/react-use-layout-effect": "1.1.1", 3235 + "@radix-ui/react-visually-hidden": "1.2.3" 3236 + }, 3237 + "peerDependencies": { 3238 + "@types/react": "*", 3239 + "@types/react-dom": "*", 3240 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3241 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3242 + }, 3243 + "peerDependenciesMeta": { 3244 + "@types/react": { 3245 + "optional": true 3246 + }, 3247 + "@types/react-dom": { 3248 + "optional": true 3249 + } 3250 + } 3251 + }, 3252 + "node_modules/@radix-ui/react-toggle": { 3253 + "version": "1.1.10", 3254 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", 3255 + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", 3256 + "license": "MIT", 3257 + "dependencies": { 3258 + "@radix-ui/primitive": "1.1.3", 3259 + "@radix-ui/react-primitive": "2.1.3", 3260 + "@radix-ui/react-use-controllable-state": "1.2.2" 3261 + }, 3262 + "peerDependencies": { 3263 + "@types/react": "*", 3264 + "@types/react-dom": "*", 3265 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3266 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3267 + }, 3268 + "peerDependenciesMeta": { 3269 + "@types/react": { 3270 + "optional": true 3271 + }, 3272 + "@types/react-dom": { 3273 + "optional": true 3274 + } 3275 + } 3276 + }, 3277 + "node_modules/@radix-ui/react-toggle-group": { 3278 + "version": "1.1.11", 3279 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", 3280 + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", 3281 + "license": "MIT", 3282 + "dependencies": { 3283 + "@radix-ui/primitive": "1.1.3", 3284 + "@radix-ui/react-context": "1.1.2", 3285 + "@radix-ui/react-direction": "1.1.1", 3286 + "@radix-ui/react-primitive": "2.1.3", 3287 + "@radix-ui/react-roving-focus": "1.1.11", 3288 + "@radix-ui/react-toggle": "1.1.10", 3289 + "@radix-ui/react-use-controllable-state": "1.2.2" 3290 + }, 3291 + "peerDependencies": { 3292 + "@types/react": "*", 3293 + "@types/react-dom": "*", 3294 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3295 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3296 + }, 3297 + "peerDependenciesMeta": { 3298 + "@types/react": { 3299 + "optional": true 3300 + }, 3301 + "@types/react-dom": { 3302 + "optional": true 3303 + } 3304 + } 3305 + }, 3306 + "node_modules/@radix-ui/react-toolbar": { 3307 + "version": "1.1.11", 3308 + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.11.tgz", 3309 + "integrity": "sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==", 3310 + "license": "MIT", 3311 + "dependencies": { 3312 + "@radix-ui/primitive": "1.1.3", 3313 + "@radix-ui/react-context": "1.1.2", 3314 + "@radix-ui/react-direction": "1.1.1", 3315 + "@radix-ui/react-primitive": "2.1.3", 3316 + "@radix-ui/react-roving-focus": "1.1.11", 3317 + "@radix-ui/react-separator": "1.1.7", 3318 + "@radix-ui/react-toggle-group": "1.1.11" 3319 + }, 3320 + "peerDependencies": { 3321 + "@types/react": "*", 3322 + "@types/react-dom": "*", 3323 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3324 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3325 + }, 3326 + "peerDependenciesMeta": { 3327 + "@types/react": { 3328 + "optional": true 3329 + }, 3330 + "@types/react-dom": { 3331 + "optional": true 3332 + } 3333 + } 3334 + }, 3335 + "node_modules/@radix-ui/react-tooltip": { 3336 + "version": "1.2.8", 3337 + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", 3338 + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", 3339 + "license": "MIT", 3340 + "dependencies": { 3341 + "@radix-ui/primitive": "1.1.3", 3342 + "@radix-ui/react-compose-refs": "1.1.2", 3343 + "@radix-ui/react-context": "1.1.2", 3344 + "@radix-ui/react-dismissable-layer": "1.1.11", 3345 + "@radix-ui/react-id": "1.1.1", 3346 + "@radix-ui/react-popper": "1.2.8", 3347 + "@radix-ui/react-portal": "1.1.9", 3348 + "@radix-ui/react-presence": "1.1.5", 3349 + "@radix-ui/react-primitive": "2.1.3", 3350 + "@radix-ui/react-slot": "1.2.3", 3351 + "@radix-ui/react-use-controllable-state": "1.2.2", 3352 + "@radix-ui/react-visually-hidden": "1.2.3" 3353 + }, 3354 + "peerDependencies": { 3355 + "@types/react": "*", 3356 + "@types/react-dom": "*", 3357 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3358 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3359 + }, 3360 + "peerDependenciesMeta": { 3361 + "@types/react": { 3362 + "optional": true 3363 + }, 3364 + "@types/react-dom": { 3365 + "optional": true 3366 + } 3367 + } 3368 + }, 3369 + "node_modules/@radix-ui/react-use-callback-ref": { 3370 + "version": "1.1.1", 3371 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", 3372 + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", 3373 + "license": "MIT", 3374 + "peerDependencies": { 3375 + "@types/react": "*", 3376 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3377 + }, 3378 + "peerDependenciesMeta": { 3379 + "@types/react": { 3380 + "optional": true 3381 + } 3382 + } 3383 + }, 3384 + "node_modules/@radix-ui/react-use-controllable-state": { 3385 + "version": "1.2.2", 3386 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", 3387 + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", 3388 + "license": "MIT", 3389 + "dependencies": { 3390 + "@radix-ui/react-use-effect-event": "0.0.2", 3391 + "@radix-ui/react-use-layout-effect": "1.1.1" 3392 + }, 3393 + "peerDependencies": { 3394 + "@types/react": "*", 3395 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3396 + }, 3397 + "peerDependenciesMeta": { 3398 + "@types/react": { 3399 + "optional": true 3400 + } 3401 + } 3402 + }, 3403 + "node_modules/@radix-ui/react-use-effect-event": { 3404 + "version": "0.0.2", 3405 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", 3406 + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", 3407 + "license": "MIT", 3408 + "dependencies": { 3409 + "@radix-ui/react-use-layout-effect": "1.1.1" 3410 + }, 3411 + "peerDependencies": { 3412 + "@types/react": "*", 3413 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3414 + }, 3415 + "peerDependenciesMeta": { 3416 + "@types/react": { 3417 + "optional": true 3418 + } 3419 + } 3420 + }, 3421 + "node_modules/@radix-ui/react-use-escape-keydown": { 3422 + "version": "1.1.1", 3423 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", 3424 + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", 3425 + "license": "MIT", 3426 + "dependencies": { 3427 + "@radix-ui/react-use-callback-ref": "1.1.1" 3428 + }, 3429 + "peerDependencies": { 3430 + "@types/react": "*", 3431 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3432 + }, 3433 + "peerDependenciesMeta": { 3434 + "@types/react": { 3435 + "optional": true 3436 + } 3437 + } 3438 + }, 3439 + "node_modules/@radix-ui/react-use-is-hydrated": { 3440 + "version": "0.1.0", 3441 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", 3442 + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", 3443 + "license": "MIT", 3444 + "dependencies": { 3445 + "use-sync-external-store": "^1.5.0" 3446 + }, 3447 + "peerDependencies": { 3448 + "@types/react": "*", 3449 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3450 + }, 3451 + "peerDependenciesMeta": { 3452 + "@types/react": { 3453 + "optional": true 3454 + } 3455 + } 3456 + }, 3457 + "node_modules/@radix-ui/react-use-layout-effect": { 3458 + "version": "1.1.1", 3459 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", 3460 + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", 3461 + "license": "MIT", 3462 + "peerDependencies": { 3463 + "@types/react": "*", 3464 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3465 + }, 3466 + "peerDependenciesMeta": { 3467 + "@types/react": { 3468 + "optional": true 3469 + } 3470 + } 3471 + }, 3472 + "node_modules/@radix-ui/react-use-previous": { 3473 + "version": "1.1.1", 3474 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", 3475 + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", 3476 + "license": "MIT", 3477 + "peerDependencies": { 3478 + "@types/react": "*", 3479 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3480 + }, 3481 + "peerDependenciesMeta": { 3482 + "@types/react": { 3483 + "optional": true 3484 + } 3485 + } 3486 + }, 3487 + "node_modules/@radix-ui/react-use-rect": { 3488 + "version": "1.1.1", 3489 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", 3490 + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", 3491 + "license": "MIT", 3492 + "dependencies": { 3493 + "@radix-ui/rect": "1.1.1" 3494 + }, 3495 + "peerDependencies": { 3496 + "@types/react": "*", 3497 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3498 + }, 3499 + "peerDependenciesMeta": { 3500 + "@types/react": { 3501 + "optional": true 3502 + } 3503 + } 3504 + }, 3505 + "node_modules/@radix-ui/react-use-size": { 3506 + "version": "1.1.1", 3507 + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", 3508 + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", 3509 + "license": "MIT", 3510 + "dependencies": { 3511 + "@radix-ui/react-use-layout-effect": "1.1.1" 3512 + }, 3513 + "peerDependencies": { 3514 + "@types/react": "*", 3515 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3516 + }, 3517 + "peerDependenciesMeta": { 3518 + "@types/react": { 3519 + "optional": true 3520 + } 3521 + } 3522 + }, 3523 + "node_modules/@radix-ui/react-visually-hidden": { 3524 + "version": "1.2.3", 3525 + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", 3526 + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", 3527 + "license": "MIT", 3528 + "dependencies": { 3529 + "@radix-ui/react-primitive": "2.1.3" 3530 + }, 3531 + "peerDependencies": { 3532 + "@types/react": "*", 3533 + "@types/react-dom": "*", 3534 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 3535 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 3536 + }, 3537 + "peerDependenciesMeta": { 3538 + "@types/react": { 3539 + "optional": true 3540 + }, 3541 + "@types/react-dom": { 3542 + "optional": true 3543 + } 3544 + } 3545 + }, 3546 + "node_modules/@radix-ui/rect": { 3547 + "version": "1.1.1", 3548 + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", 3549 + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", 3550 + "license": "MIT" 3551 + }, 3552 + "node_modules/@rtsao/scc": { 3553 + "version": "1.1.0", 3554 + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", 3555 + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", 3556 + "dev": true, 3557 + "license": "MIT" 3558 + }, 3559 + "node_modules/@sec-ant/readable-stream": { 3560 + "version": "0.4.1", 3561 + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", 3562 + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", 3563 + "dev": true, 3564 + "license": "MIT" 3565 + }, 3566 + "node_modules/@sindresorhus/merge-streams": { 3567 + "version": "4.0.0", 3568 + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", 3569 + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", 3570 + "dev": true, 3571 + "license": "MIT", 3572 + "engines": { 3573 + "node": ">=18" 3574 + }, 3575 + "funding": { 3576 + "url": "https://github.com/sponsors/sindresorhus" 3577 + } 3578 + }, 3579 + "node_modules/@swc/helpers": { 3580 + "version": "0.5.15", 3581 + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", 3582 + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", 3583 + "license": "Apache-2.0", 3584 + "dependencies": { 3585 + "tslib": "^2.8.0" 3586 + } 3587 + }, 3588 + "node_modules/@tabler/icons": { 3589 + "version": "3.36.1", 3590 + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.36.1.tgz", 3591 + "integrity": "sha512-f4Jg3Fof/Vru5ioix/UO4GX+sdDsF9wQo47FbtvG+utIYYVQ/QVAC0QYgcBbAjQGfbdOh2CCf0BgiFOF9Ixtjw==", 3592 + "license": "MIT", 3593 + "funding": { 3594 + "type": "github", 3595 + "url": "https://github.com/sponsors/codecalm" 3596 + } 3597 + }, 3598 + "node_modules/@tabler/icons-react": { 3599 + "version": "3.36.1", 3600 + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.36.1.tgz", 3601 + "integrity": "sha512-/8nOXeNeMoze9xY/QyEKG65wuvRhkT3q9aytaur6Gj8bYU2A98YVJyLc9MRmc5nVvpy+bRlrrwK/Ykr8WGyUWg==", 3602 + "license": "MIT", 3603 + "dependencies": { 3604 + "@tabler/icons": "" 3605 + }, 3606 + "funding": { 3607 + "type": "github", 3608 + "url": "https://github.com/sponsors/codecalm" 3609 + }, 3610 + "peerDependencies": { 3611 + "react": ">= 16" 3612 + } 3613 + }, 3614 + "node_modules/@tailwindcss/node": { 3615 + "version": "4.1.18", 3616 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", 3617 + "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", 3618 + "dev": true, 3619 + "license": "MIT", 3620 + "dependencies": { 3621 + "@jridgewell/remapping": "^2.3.4", 3622 + "enhanced-resolve": "^5.18.3", 3623 + "jiti": "^2.6.1", 3624 + "lightningcss": "1.30.2", 3625 + "magic-string": "^0.30.21", 3626 + "source-map-js": "^1.2.1", 3627 + "tailwindcss": "4.1.18" 3628 + } 3629 + }, 3630 + "node_modules/@tailwindcss/oxide": { 3631 + "version": "4.1.18", 3632 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", 3633 + "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", 3634 + "dev": true, 3635 + "license": "MIT", 3636 + "engines": { 3637 + "node": ">= 10" 3638 + }, 3639 + "optionalDependencies": { 3640 + "@tailwindcss/oxide-android-arm64": "4.1.18", 3641 + "@tailwindcss/oxide-darwin-arm64": "4.1.18", 3642 + "@tailwindcss/oxide-darwin-x64": "4.1.18", 3643 + "@tailwindcss/oxide-freebsd-x64": "4.1.18", 3644 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", 3645 + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", 3646 + "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", 3647 + "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", 3648 + "@tailwindcss/oxide-linux-x64-musl": "4.1.18", 3649 + "@tailwindcss/oxide-wasm32-wasi": "4.1.18", 3650 + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", 3651 + "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" 3652 + } 3653 + }, 3654 + "node_modules/@tailwindcss/oxide-android-arm64": { 3655 + "version": "4.1.18", 3656 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", 3657 + "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", 3658 + "cpu": [ 3659 + "arm64" 3660 + ], 3661 + "dev": true, 3662 + "license": "MIT", 3663 + "optional": true, 3664 + "os": [ 3665 + "android" 3666 + ], 3667 + "engines": { 3668 + "node": ">= 10" 3669 + } 3670 + }, 3671 + "node_modules/@tailwindcss/oxide-darwin-arm64": { 3672 + "version": "4.1.18", 3673 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", 3674 + "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", 3675 + "cpu": [ 3676 + "arm64" 3677 + ], 3678 + "dev": true, 3679 + "license": "MIT", 3680 + "optional": true, 3681 + "os": [ 3682 + "darwin" 3683 + ], 3684 + "engines": { 3685 + "node": ">= 10" 3686 + } 3687 + }, 3688 + "node_modules/@tailwindcss/oxide-darwin-x64": { 3689 + "version": "4.1.18", 3690 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", 3691 + "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", 3692 + "cpu": [ 3693 + "x64" 3694 + ], 3695 + "dev": true, 3696 + "license": "MIT", 3697 + "optional": true, 3698 + "os": [ 3699 + "darwin" 3700 + ], 3701 + "engines": { 3702 + "node": ">= 10" 3703 + } 3704 + }, 3705 + "node_modules/@tailwindcss/oxide-freebsd-x64": { 3706 + "version": "4.1.18", 3707 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", 3708 + "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", 3709 + "cpu": [ 3710 + "x64" 3711 + ], 3712 + "dev": true, 3713 + "license": "MIT", 3714 + "optional": true, 3715 + "os": [ 3716 + "freebsd" 3717 + ], 3718 + "engines": { 3719 + "node": ">= 10" 3720 + } 3721 + }, 3722 + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 3723 + "version": "4.1.18", 3724 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", 3725 + "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", 3726 + "cpu": [ 3727 + "arm" 3728 + ], 3729 + "dev": true, 3730 + "license": "MIT", 3731 + "optional": true, 3732 + "os": [ 3733 + "linux" 3734 + ], 3735 + "engines": { 3736 + "node": ">= 10" 3737 + } 3738 + }, 3739 + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 3740 + "version": "4.1.18", 3741 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", 3742 + "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", 3743 + "cpu": [ 3744 + "arm64" 3745 + ], 3746 + "dev": true, 3747 + "license": "MIT", 3748 + "optional": true, 3749 + "os": [ 3750 + "linux" 3751 + ], 3752 + "engines": { 3753 + "node": ">= 10" 3754 + } 3755 + }, 3756 + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 3757 + "version": "4.1.18", 3758 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", 3759 + "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", 3760 + "cpu": [ 3761 + "arm64" 3762 + ], 3763 + "dev": true, 3764 + "license": "MIT", 3765 + "optional": true, 3766 + "os": [ 3767 + "linux" 3768 + ], 3769 + "engines": { 3770 + "node": ">= 10" 3771 + } 3772 + }, 3773 + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 3774 + "version": "4.1.18", 3775 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", 3776 + "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", 3777 + "cpu": [ 3778 + "x64" 3779 + ], 3780 + "dev": true, 3781 + "license": "MIT", 3782 + "optional": true, 3783 + "os": [ 3784 + "linux" 3785 + ], 3786 + "engines": { 3787 + "node": ">= 10" 3788 + } 3789 + }, 3790 + "node_modules/@tailwindcss/oxide-linux-x64-musl": { 3791 + "version": "4.1.18", 3792 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", 3793 + "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", 3794 + "cpu": [ 3795 + "x64" 3796 + ], 3797 + "dev": true, 3798 + "license": "MIT", 3799 + "optional": true, 3800 + "os": [ 3801 + "linux" 3802 + ], 3803 + "engines": { 3804 + "node": ">= 10" 3805 + } 3806 + }, 3807 + "node_modules/@tailwindcss/oxide-wasm32-wasi": { 3808 + "version": "4.1.18", 3809 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", 3810 + "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", 3811 + "bundleDependencies": [ 3812 + "@napi-rs/wasm-runtime", 3813 + "@emnapi/core", 3814 + "@emnapi/runtime", 3815 + "@tybys/wasm-util", 3816 + "@emnapi/wasi-threads", 3817 + "tslib" 3818 + ], 3819 + "cpu": [ 3820 + "wasm32" 3821 + ], 3822 + "dev": true, 3823 + "license": "MIT", 3824 + "optional": true, 3825 + "dependencies": { 3826 + "@emnapi/core": "^1.7.1", 3827 + "@emnapi/runtime": "^1.7.1", 3828 + "@emnapi/wasi-threads": "^1.1.0", 3829 + "@napi-rs/wasm-runtime": "^1.1.0", 3830 + "@tybys/wasm-util": "^0.10.1", 3831 + "tslib": "^2.4.0" 3832 + }, 3833 + "engines": { 3834 + "node": ">=14.0.0" 3835 + } 3836 + }, 3837 + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 3838 + "version": "4.1.18", 3839 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", 3840 + "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", 3841 + "cpu": [ 3842 + "arm64" 3843 + ], 3844 + "dev": true, 3845 + "license": "MIT", 3846 + "optional": true, 3847 + "os": [ 3848 + "win32" 3849 + ], 3850 + "engines": { 3851 + "node": ">= 10" 3852 + } 3853 + }, 3854 + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 3855 + "version": "4.1.18", 3856 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", 3857 + "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", 3858 + "cpu": [ 3859 + "x64" 3860 + ], 3861 + "dev": true, 3862 + "license": "MIT", 3863 + "optional": true, 3864 + "os": [ 3865 + "win32" 3866 + ], 3867 + "engines": { 3868 + "node": ">= 10" 3869 + } 3870 + }, 3871 + "node_modules/@tailwindcss/postcss": { 3872 + "version": "4.1.18", 3873 + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz", 3874 + "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==", 3875 + "dev": true, 3876 + "license": "MIT", 3877 + "dependencies": { 3878 + "@alloc/quick-lru": "^5.2.0", 3879 + "@tailwindcss/node": "4.1.18", 3880 + "@tailwindcss/oxide": "4.1.18", 3881 + "postcss": "^8.4.41", 3882 + "tailwindcss": "4.1.18" 3883 + } 3884 + }, 3885 + "node_modules/@tanstack/react-table": { 3886 + "version": "8.21.3", 3887 + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz", 3888 + "integrity": "sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==", 3889 + "license": "MIT", 3890 + "dependencies": { 3891 + "@tanstack/table-core": "8.21.3" 3892 + }, 3893 + "engines": { 3894 + "node": ">=12" 3895 + }, 3896 + "funding": { 3897 + "type": "github", 3898 + "url": "https://github.com/sponsors/tannerlinsley" 3899 + }, 3900 + "peerDependencies": { 3901 + "react": ">=16.8", 3902 + "react-dom": ">=16.8" 3903 + } 3904 + }, 3905 + "node_modules/@tanstack/table-core": { 3906 + "version": "8.21.3", 3907 + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.21.3.tgz", 3908 + "integrity": "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==", 3909 + "license": "MIT", 3910 + "engines": { 3911 + "node": ">=12" 3912 + }, 3913 + "funding": { 3914 + "type": "github", 3915 + "url": "https://github.com/sponsors/tannerlinsley" 3916 + } 3917 + }, 3918 + "node_modules/@ts-morph/common": { 3919 + "version": "0.27.0", 3920 + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.27.0.tgz", 3921 + "integrity": "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==", 3922 + "dev": true, 3923 + "license": "MIT", 3924 + "dependencies": { 3925 + "fast-glob": "^3.3.3", 3926 + "minimatch": "^10.0.1", 3927 + "path-browserify": "^1.0.1" 3928 + } 3929 + }, 3930 + "node_modules/@ts-morph/common/node_modules/balanced-match": { 3931 + "version": "4.0.2", 3932 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", 3933 + "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", 3934 + "dev": true, 3935 + "license": "MIT", 3936 + "dependencies": { 3937 + "jackspeak": "^4.2.3" 3938 + }, 3939 + "engines": { 3940 + "node": "20 || >=22" 3941 + } 3942 + }, 3943 + "node_modules/@ts-morph/common/node_modules/brace-expansion": { 3944 + "version": "5.0.2", 3945 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", 3946 + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", 3947 + "dev": true, 3948 + "license": "MIT", 3949 + "dependencies": { 3950 + "balanced-match": "^4.0.2" 3951 + }, 3952 + "engines": { 3953 + "node": "20 || >=22" 3954 + } 3955 + }, 3956 + "node_modules/@ts-morph/common/node_modules/fast-glob": { 3957 + "version": "3.3.3", 3958 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 3959 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 3960 + "dev": true, 3961 + "license": "MIT", 3962 + "dependencies": { 3963 + "@nodelib/fs.stat": "^2.0.2", 3964 + "@nodelib/fs.walk": "^1.2.3", 3965 + "glob-parent": "^5.1.2", 3966 + "merge2": "^1.3.0", 3967 + "micromatch": "^4.0.8" 3968 + }, 3969 + "engines": { 3970 + "node": ">=8.6.0" 3971 + } 3972 + }, 3973 + "node_modules/@ts-morph/common/node_modules/glob-parent": { 3974 + "version": "5.1.2", 3975 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 3976 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 3977 + "dev": true, 3978 + "license": "ISC", 3979 + "dependencies": { 3980 + "is-glob": "^4.0.1" 3981 + }, 3982 + "engines": { 3983 + "node": ">= 6" 3984 + } 3985 + }, 3986 + "node_modules/@ts-morph/common/node_modules/minimatch": { 3987 + "version": "10.2.0", 3988 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.0.tgz", 3989 + "integrity": "sha512-ugkC31VaVg9cF0DFVoADH12k6061zNZkZON+aX8AWsR9GhPcErkcMBceb6znR8wLERM2AkkOxy2nWRLpT9Jq5w==", 3990 + "dev": true, 3991 + "license": "BlueOak-1.0.0", 3992 + "dependencies": { 3993 + "brace-expansion": "^5.0.2" 3994 + }, 3995 + "engines": { 3996 + "node": "20 || >=22" 3997 + }, 3998 + "funding": { 3999 + "url": "https://github.com/sponsors/isaacs" 4000 + } 4001 + }, 4002 + "node_modules/@tybys/wasm-util": { 4003 + "version": "0.10.1", 4004 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", 4005 + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", 4006 + "dev": true, 4007 + "license": "MIT", 4008 + "optional": true, 4009 + "dependencies": { 4010 + "tslib": "^2.4.0" 4011 + } 4012 + }, 4013 + "node_modules/@types/d3-array": { 4014 + "version": "3.2.2", 4015 + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", 4016 + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", 4017 + "license": "MIT" 4018 + }, 4019 + "node_modules/@types/d3-color": { 4020 + "version": "3.1.3", 4021 + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", 4022 + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", 4023 + "license": "MIT" 4024 + }, 4025 + "node_modules/@types/d3-ease": { 4026 + "version": "3.0.2", 4027 + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", 4028 + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", 4029 + "license": "MIT" 4030 + }, 4031 + "node_modules/@types/d3-interpolate": { 4032 + "version": "3.0.4", 4033 + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", 4034 + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", 4035 + "license": "MIT", 4036 + "dependencies": { 4037 + "@types/d3-color": "*" 4038 + } 4039 + }, 4040 + "node_modules/@types/d3-path": { 4041 + "version": "3.1.1", 4042 + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", 4043 + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", 4044 + "license": "MIT" 4045 + }, 4046 + "node_modules/@types/d3-scale": { 4047 + "version": "4.0.9", 4048 + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", 4049 + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", 4050 + "license": "MIT", 4051 + "dependencies": { 4052 + "@types/d3-time": "*" 4053 + } 4054 + }, 4055 + "node_modules/@types/d3-shape": { 4056 + "version": "3.1.8", 4057 + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", 4058 + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", 4059 + "license": "MIT", 4060 + "dependencies": { 4061 + "@types/d3-path": "*" 4062 + } 4063 + }, 4064 + "node_modules/@types/d3-time": { 4065 + "version": "3.0.4", 4066 + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", 4067 + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", 4068 + "license": "MIT" 4069 + }, 4070 + "node_modules/@types/d3-timer": { 4071 + "version": "3.0.2", 4072 + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", 4073 + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", 4074 + "license": "MIT" 4075 + }, 4076 + "node_modules/@types/estree": { 4077 + "version": "1.0.8", 4078 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 4079 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 4080 + "dev": true, 4081 + "license": "MIT" 4082 + }, 4083 + "node_modules/@types/json-schema": { 4084 + "version": "7.0.15", 4085 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 4086 + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 4087 + "dev": true, 4088 + "license": "MIT" 4089 + }, 4090 + "node_modules/@types/json5": { 4091 + "version": "0.0.29", 4092 + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", 4093 + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", 4094 + "dev": true, 4095 + "license": "MIT" 4096 + }, 4097 + "node_modules/@types/node": { 4098 + "version": "20.19.33", 4099 + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", 4100 + "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", 4101 + "dev": true, 4102 + "license": "MIT", 4103 + "peer": true, 4104 + "dependencies": { 4105 + "undici-types": "~6.21.0" 4106 + } 4107 + }, 4108 + "node_modules/@types/react": { 4109 + "version": "19.2.14", 4110 + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", 4111 + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", 4112 + "devOptional": true, 4113 + "license": "MIT", 4114 + "peer": true, 4115 + "dependencies": { 4116 + "csstype": "^3.2.2" 4117 + } 4118 + }, 4119 + "node_modules/@types/react-dom": { 4120 + "version": "19.2.3", 4121 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", 4122 + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", 4123 + "devOptional": true, 4124 + "license": "MIT", 4125 + "peer": true, 4126 + "peerDependencies": { 4127 + "@types/react": "^19.2.0" 4128 + } 4129 + }, 4130 + "node_modules/@types/statuses": { 4131 + "version": "2.0.6", 4132 + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz", 4133 + "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==", 4134 + "dev": true, 4135 + "license": "MIT" 4136 + }, 4137 + "node_modules/@types/validate-npm-package-name": { 4138 + "version": "4.0.2", 4139 + "resolved": "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz", 4140 + "integrity": "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==", 4141 + "dev": true, 4142 + "license": "MIT" 4143 + }, 4144 + "node_modules/@typescript-eslint/eslint-plugin": { 4145 + "version": "8.55.0", 4146 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz", 4147 + "integrity": "sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==", 4148 + "dev": true, 4149 + "license": "MIT", 4150 + "dependencies": { 4151 + "@eslint-community/regexpp": "^4.12.2", 4152 + "@typescript-eslint/scope-manager": "8.55.0", 4153 + "@typescript-eslint/type-utils": "8.55.0", 4154 + "@typescript-eslint/utils": "8.55.0", 4155 + "@typescript-eslint/visitor-keys": "8.55.0", 4156 + "ignore": "^7.0.5", 4157 + "natural-compare": "^1.4.0", 4158 + "ts-api-utils": "^2.4.0" 4159 + }, 4160 + "engines": { 4161 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4162 + }, 4163 + "funding": { 4164 + "type": "opencollective", 4165 + "url": "https://opencollective.com/typescript-eslint" 4166 + }, 4167 + "peerDependencies": { 4168 + "@typescript-eslint/parser": "^8.55.0", 4169 + "eslint": "^8.57.0 || ^9.0.0", 4170 + "typescript": ">=4.8.4 <6.0.0" 4171 + } 4172 + }, 4173 + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { 4174 + "version": "7.0.5", 4175 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", 4176 + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", 4177 + "dev": true, 4178 + "license": "MIT", 4179 + "engines": { 4180 + "node": ">= 4" 4181 + } 4182 + }, 4183 + "node_modules/@typescript-eslint/parser": { 4184 + "version": "8.55.0", 4185 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz", 4186 + "integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==", 4187 + "dev": true, 4188 + "license": "MIT", 4189 + "peer": true, 4190 + "dependencies": { 4191 + "@typescript-eslint/scope-manager": "8.55.0", 4192 + "@typescript-eslint/types": "8.55.0", 4193 + "@typescript-eslint/typescript-estree": "8.55.0", 4194 + "@typescript-eslint/visitor-keys": "8.55.0", 4195 + "debug": "^4.4.3" 4196 + }, 4197 + "engines": { 4198 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4199 + }, 4200 + "funding": { 4201 + "type": "opencollective", 4202 + "url": "https://opencollective.com/typescript-eslint" 4203 + }, 4204 + "peerDependencies": { 4205 + "eslint": "^8.57.0 || ^9.0.0", 4206 + "typescript": ">=4.8.4 <6.0.0" 4207 + } 4208 + }, 4209 + "node_modules/@typescript-eslint/project-service": { 4210 + "version": "8.55.0", 4211 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.55.0.tgz", 4212 + "integrity": "sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==", 4213 + "dev": true, 4214 + "license": "MIT", 4215 + "dependencies": { 4216 + "@typescript-eslint/tsconfig-utils": "^8.55.0", 4217 + "@typescript-eslint/types": "^8.55.0", 4218 + "debug": "^4.4.3" 4219 + }, 4220 + "engines": { 4221 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4222 + }, 4223 + "funding": { 4224 + "type": "opencollective", 4225 + "url": "https://opencollective.com/typescript-eslint" 4226 + }, 4227 + "peerDependencies": { 4228 + "typescript": ">=4.8.4 <6.0.0" 4229 + } 4230 + }, 4231 + "node_modules/@typescript-eslint/scope-manager": { 4232 + "version": "8.55.0", 4233 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz", 4234 + "integrity": "sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==", 4235 + "dev": true, 4236 + "license": "MIT", 4237 + "dependencies": { 4238 + "@typescript-eslint/types": "8.55.0", 4239 + "@typescript-eslint/visitor-keys": "8.55.0" 4240 + }, 4241 + "engines": { 4242 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4243 + }, 4244 + "funding": { 4245 + "type": "opencollective", 4246 + "url": "https://opencollective.com/typescript-eslint" 4247 + } 4248 + }, 4249 + "node_modules/@typescript-eslint/tsconfig-utils": { 4250 + "version": "8.55.0", 4251 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz", 4252 + "integrity": "sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==", 4253 + "dev": true, 4254 + "license": "MIT", 4255 + "engines": { 4256 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4257 + }, 4258 + "funding": { 4259 + "type": "opencollective", 4260 + "url": "https://opencollective.com/typescript-eslint" 4261 + }, 4262 + "peerDependencies": { 4263 + "typescript": ">=4.8.4 <6.0.0" 4264 + } 4265 + }, 4266 + "node_modules/@typescript-eslint/type-utils": { 4267 + "version": "8.55.0", 4268 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz", 4269 + "integrity": "sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==", 4270 + "dev": true, 4271 + "license": "MIT", 4272 + "dependencies": { 4273 + "@typescript-eslint/types": "8.55.0", 4274 + "@typescript-eslint/typescript-estree": "8.55.0", 4275 + "@typescript-eslint/utils": "8.55.0", 4276 + "debug": "^4.4.3", 4277 + "ts-api-utils": "^2.4.0" 4278 + }, 4279 + "engines": { 4280 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4281 + }, 4282 + "funding": { 4283 + "type": "opencollective", 4284 + "url": "https://opencollective.com/typescript-eslint" 4285 + }, 4286 + "peerDependencies": { 4287 + "eslint": "^8.57.0 || ^9.0.0", 4288 + "typescript": ">=4.8.4 <6.0.0" 4289 + } 4290 + }, 4291 + "node_modules/@typescript-eslint/types": { 4292 + "version": "8.55.0", 4293 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.55.0.tgz", 4294 + "integrity": "sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==", 4295 + "dev": true, 4296 + "license": "MIT", 4297 + "engines": { 4298 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4299 + }, 4300 + "funding": { 4301 + "type": "opencollective", 4302 + "url": "https://opencollective.com/typescript-eslint" 4303 + } 4304 + }, 4305 + "node_modules/@typescript-eslint/typescript-estree": { 4306 + "version": "8.55.0", 4307 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz", 4308 + "integrity": "sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==", 4309 + "dev": true, 4310 + "license": "MIT", 4311 + "dependencies": { 4312 + "@typescript-eslint/project-service": "8.55.0", 4313 + "@typescript-eslint/tsconfig-utils": "8.55.0", 4314 + "@typescript-eslint/types": "8.55.0", 4315 + "@typescript-eslint/visitor-keys": "8.55.0", 4316 + "debug": "^4.4.3", 4317 + "minimatch": "^9.0.5", 4318 + "semver": "^7.7.3", 4319 + "tinyglobby": "^0.2.15", 4320 + "ts-api-utils": "^2.4.0" 4321 + }, 4322 + "engines": { 4323 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4324 + }, 4325 + "funding": { 4326 + "type": "opencollective", 4327 + "url": "https://opencollective.com/typescript-eslint" 4328 + }, 4329 + "peerDependencies": { 4330 + "typescript": ">=4.8.4 <6.0.0" 4331 + } 4332 + }, 4333 + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 4334 + "version": "2.0.2", 4335 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", 4336 + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", 4337 + "dev": true, 4338 + "license": "MIT", 4339 + "dependencies": { 4340 + "balanced-match": "^1.0.0" 4341 + } 4342 + }, 4343 + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 4344 + "version": "9.0.5", 4345 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 4346 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 4347 + "dev": true, 4348 + "license": "ISC", 4349 + "dependencies": { 4350 + "brace-expansion": "^2.0.1" 4351 + }, 4352 + "engines": { 4353 + "node": ">=16 || 14 >=14.17" 4354 + }, 4355 + "funding": { 4356 + "url": "https://github.com/sponsors/isaacs" 4357 + } 4358 + }, 4359 + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { 4360 + "version": "7.7.4", 4361 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 4362 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 4363 + "dev": true, 4364 + "license": "ISC", 4365 + "bin": { 4366 + "semver": "bin/semver.js" 4367 + }, 4368 + "engines": { 4369 + "node": ">=10" 4370 + } 4371 + }, 4372 + "node_modules/@typescript-eslint/utils": { 4373 + "version": "8.55.0", 4374 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.55.0.tgz", 4375 + "integrity": "sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==", 4376 + "dev": true, 4377 + "license": "MIT", 4378 + "dependencies": { 4379 + "@eslint-community/eslint-utils": "^4.9.1", 4380 + "@typescript-eslint/scope-manager": "8.55.0", 4381 + "@typescript-eslint/types": "8.55.0", 4382 + "@typescript-eslint/typescript-estree": "8.55.0" 4383 + }, 4384 + "engines": { 4385 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4386 + }, 4387 + "funding": { 4388 + "type": "opencollective", 4389 + "url": "https://opencollective.com/typescript-eslint" 4390 + }, 4391 + "peerDependencies": { 4392 + "eslint": "^8.57.0 || ^9.0.0", 4393 + "typescript": ">=4.8.4 <6.0.0" 4394 + } 4395 + }, 4396 + "node_modules/@typescript-eslint/visitor-keys": { 4397 + "version": "8.55.0", 4398 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz", 4399 + "integrity": "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==", 4400 + "dev": true, 4401 + "license": "MIT", 4402 + "dependencies": { 4403 + "@typescript-eslint/types": "8.55.0", 4404 + "eslint-visitor-keys": "^4.2.1" 4405 + }, 4406 + "engines": { 4407 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 4408 + }, 4409 + "funding": { 4410 + "type": "opencollective", 4411 + "url": "https://opencollective.com/typescript-eslint" 4412 + } 4413 + }, 4414 + "node_modules/@unrs/resolver-binding-android-arm-eabi": { 4415 + "version": "1.11.1", 4416 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", 4417 + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", 4418 + "cpu": [ 4419 + "arm" 4420 + ], 4421 + "dev": true, 4422 + "license": "MIT", 4423 + "optional": true, 4424 + "os": [ 4425 + "android" 4426 + ] 4427 + }, 4428 + "node_modules/@unrs/resolver-binding-android-arm64": { 4429 + "version": "1.11.1", 4430 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", 4431 + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", 4432 + "cpu": [ 4433 + "arm64" 4434 + ], 4435 + "dev": true, 4436 + "license": "MIT", 4437 + "optional": true, 4438 + "os": [ 4439 + "android" 4440 + ] 4441 + }, 4442 + "node_modules/@unrs/resolver-binding-darwin-arm64": { 4443 + "version": "1.11.1", 4444 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", 4445 + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", 4446 + "cpu": [ 4447 + "arm64" 4448 + ], 4449 + "dev": true, 4450 + "license": "MIT", 4451 + "optional": true, 4452 + "os": [ 4453 + "darwin" 4454 + ] 4455 + }, 4456 + "node_modules/@unrs/resolver-binding-darwin-x64": { 4457 + "version": "1.11.1", 4458 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", 4459 + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", 4460 + "cpu": [ 4461 + "x64" 4462 + ], 4463 + "dev": true, 4464 + "license": "MIT", 4465 + "optional": true, 4466 + "os": [ 4467 + "darwin" 4468 + ] 4469 + }, 4470 + "node_modules/@unrs/resolver-binding-freebsd-x64": { 4471 + "version": "1.11.1", 4472 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", 4473 + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", 4474 + "cpu": [ 4475 + "x64" 4476 + ], 4477 + "dev": true, 4478 + "license": "MIT", 4479 + "optional": true, 4480 + "os": [ 4481 + "freebsd" 4482 + ] 4483 + }, 4484 + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { 4485 + "version": "1.11.1", 4486 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", 4487 + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", 4488 + "cpu": [ 4489 + "arm" 4490 + ], 4491 + "dev": true, 4492 + "license": "MIT", 4493 + "optional": true, 4494 + "os": [ 4495 + "linux" 4496 + ] 4497 + }, 4498 + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { 4499 + "version": "1.11.1", 4500 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", 4501 + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", 4502 + "cpu": [ 4503 + "arm" 4504 + ], 4505 + "dev": true, 4506 + "license": "MIT", 4507 + "optional": true, 4508 + "os": [ 4509 + "linux" 4510 + ] 4511 + }, 4512 + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { 4513 + "version": "1.11.1", 4514 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", 4515 + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", 4516 + "cpu": [ 4517 + "arm64" 4518 + ], 4519 + "dev": true, 4520 + "license": "MIT", 4521 + "optional": true, 4522 + "os": [ 4523 + "linux" 4524 + ] 4525 + }, 4526 + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { 4527 + "version": "1.11.1", 4528 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", 4529 + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", 4530 + "cpu": [ 4531 + "arm64" 4532 + ], 4533 + "dev": true, 4534 + "license": "MIT", 4535 + "optional": true, 4536 + "os": [ 4537 + "linux" 4538 + ] 4539 + }, 4540 + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { 4541 + "version": "1.11.1", 4542 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", 4543 + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", 4544 + "cpu": [ 4545 + "ppc64" 4546 + ], 4547 + "dev": true, 4548 + "license": "MIT", 4549 + "optional": true, 4550 + "os": [ 4551 + "linux" 4552 + ] 4553 + }, 4554 + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { 4555 + "version": "1.11.1", 4556 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", 4557 + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", 4558 + "cpu": [ 4559 + "riscv64" 4560 + ], 4561 + "dev": true, 4562 + "license": "MIT", 4563 + "optional": true, 4564 + "os": [ 4565 + "linux" 4566 + ] 4567 + }, 4568 + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { 4569 + "version": "1.11.1", 4570 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", 4571 + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", 4572 + "cpu": [ 4573 + "riscv64" 4574 + ], 4575 + "dev": true, 4576 + "license": "MIT", 4577 + "optional": true, 4578 + "os": [ 4579 + "linux" 4580 + ] 4581 + }, 4582 + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { 4583 + "version": "1.11.1", 4584 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", 4585 + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", 4586 + "cpu": [ 4587 + "s390x" 4588 + ], 4589 + "dev": true, 4590 + "license": "MIT", 4591 + "optional": true, 4592 + "os": [ 4593 + "linux" 4594 + ] 4595 + }, 4596 + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { 4597 + "version": "1.11.1", 4598 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", 4599 + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", 4600 + "cpu": [ 4601 + "x64" 4602 + ], 4603 + "dev": true, 4604 + "license": "MIT", 4605 + "optional": true, 4606 + "os": [ 4607 + "linux" 4608 + ] 4609 + }, 4610 + "node_modules/@unrs/resolver-binding-linux-x64-musl": { 4611 + "version": "1.11.1", 4612 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", 4613 + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", 4614 + "cpu": [ 4615 + "x64" 4616 + ], 4617 + "dev": true, 4618 + "license": "MIT", 4619 + "optional": true, 4620 + "os": [ 4621 + "linux" 4622 + ] 4623 + }, 4624 + "node_modules/@unrs/resolver-binding-wasm32-wasi": { 4625 + "version": "1.11.1", 4626 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", 4627 + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", 4628 + "cpu": [ 4629 + "wasm32" 4630 + ], 4631 + "dev": true, 4632 + "license": "MIT", 4633 + "optional": true, 4634 + "dependencies": { 4635 + "@napi-rs/wasm-runtime": "^0.2.11" 4636 + }, 4637 + "engines": { 4638 + "node": ">=14.0.0" 4639 + } 4640 + }, 4641 + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { 4642 + "version": "1.11.1", 4643 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", 4644 + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", 4645 + "cpu": [ 4646 + "arm64" 4647 + ], 4648 + "dev": true, 4649 + "license": "MIT", 4650 + "optional": true, 4651 + "os": [ 4652 + "win32" 4653 + ] 4654 + }, 4655 + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { 4656 + "version": "1.11.1", 4657 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", 4658 + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", 4659 + "cpu": [ 4660 + "ia32" 4661 + ], 4662 + "dev": true, 4663 + "license": "MIT", 4664 + "optional": true, 4665 + "os": [ 4666 + "win32" 4667 + ] 4668 + }, 4669 + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { 4670 + "version": "1.11.1", 4671 + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", 4672 + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", 4673 + "cpu": [ 4674 + "x64" 4675 + ], 4676 + "dev": true, 4677 + "license": "MIT", 4678 + "optional": true, 4679 + "os": [ 4680 + "win32" 4681 + ] 4682 + }, 4683 + "node_modules/accepts": { 4684 + "version": "2.0.0", 4685 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", 4686 + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", 4687 + "dev": true, 4688 + "license": "MIT", 4689 + "dependencies": { 4690 + "mime-types": "^3.0.0", 4691 + "negotiator": "^1.0.0" 4692 + }, 4693 + "engines": { 4694 + "node": ">= 0.6" 4695 + } 4696 + }, 4697 + "node_modules/acorn": { 4698 + "version": "8.15.0", 4699 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", 4700 + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", 4701 + "dev": true, 4702 + "license": "MIT", 4703 + "peer": true, 4704 + "bin": { 4705 + "acorn": "bin/acorn" 4706 + }, 4707 + "engines": { 4708 + "node": ">=0.4.0" 4709 + } 4710 + }, 4711 + "node_modules/acorn-jsx": { 4712 + "version": "5.3.2", 4713 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 4714 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 4715 + "dev": true, 4716 + "license": "MIT", 4717 + "peerDependencies": { 4718 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 4719 + } 4720 + }, 4721 + "node_modules/agent-base": { 4722 + "version": "7.1.4", 4723 + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", 4724 + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", 4725 + "dev": true, 4726 + "license": "MIT", 4727 + "engines": { 4728 + "node": ">= 14" 4729 + } 4730 + }, 4731 + "node_modules/ajv": { 4732 + "version": "6.12.6", 4733 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 4734 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 4735 + "dev": true, 4736 + "license": "MIT", 4737 + "dependencies": { 4738 + "fast-deep-equal": "^3.1.1", 4739 + "fast-json-stable-stringify": "^2.0.0", 4740 + "json-schema-traverse": "^0.4.1", 4741 + "uri-js": "^4.2.2" 4742 + }, 4743 + "funding": { 4744 + "type": "github", 4745 + "url": "https://github.com/sponsors/epoberezkin" 4746 + } 4747 + }, 4748 + "node_modules/ajv-formats": { 4749 + "version": "3.0.1", 4750 + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", 4751 + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", 4752 + "dev": true, 4753 + "license": "MIT", 4754 + "dependencies": { 4755 + "ajv": "^8.0.0" 4756 + }, 4757 + "peerDependencies": { 4758 + "ajv": "^8.0.0" 4759 + }, 4760 + "peerDependenciesMeta": { 4761 + "ajv": { 4762 + "optional": true 4763 + } 4764 + } 4765 + }, 4766 + "node_modules/ajv-formats/node_modules/ajv": { 4767 + "version": "8.18.0", 4768 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", 4769 + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", 4770 + "dev": true, 4771 + "license": "MIT", 4772 + "dependencies": { 4773 + "fast-deep-equal": "^3.1.3", 4774 + "fast-uri": "^3.0.1", 4775 + "json-schema-traverse": "^1.0.0", 4776 + "require-from-string": "^2.0.2" 4777 + }, 4778 + "funding": { 4779 + "type": "github", 4780 + "url": "https://github.com/sponsors/epoberezkin" 4781 + } 4782 + }, 4783 + "node_modules/ajv-formats/node_modules/json-schema-traverse": { 4784 + "version": "1.0.0", 4785 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 4786 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 4787 + "dev": true, 4788 + "license": "MIT" 4789 + }, 4790 + "node_modules/ansi-regex": { 4791 + "version": "6.2.2", 4792 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", 4793 + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", 4794 + "dev": true, 4795 + "license": "MIT", 4796 + "engines": { 4797 + "node": ">=12" 4798 + }, 4799 + "funding": { 4800 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 4801 + } 4802 + }, 4803 + "node_modules/ansi-styles": { 4804 + "version": "4.3.0", 4805 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 4806 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 4807 + "dev": true, 4808 + "license": "MIT", 4809 + "dependencies": { 4810 + "color-convert": "^2.0.1" 4811 + }, 4812 + "engines": { 4813 + "node": ">=8" 4814 + }, 4815 + "funding": { 4816 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 4817 + } 4818 + }, 4819 + "node_modules/ansis": { 4820 + "version": "4.2.0", 4821 + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", 4822 + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", 4823 + "dev": true, 4824 + "license": "ISC", 4825 + "engines": { 4826 + "node": ">=14" 4827 + } 4828 + }, 4829 + "node_modules/argparse": { 4830 + "version": "2.0.1", 4831 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 4832 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 4833 + "dev": true, 4834 + "license": "Python-2.0" 4835 + }, 4836 + "node_modules/aria-hidden": { 4837 + "version": "1.2.6", 4838 + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", 4839 + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", 4840 + "license": "MIT", 4841 + "dependencies": { 4842 + "tslib": "^2.0.0" 4843 + }, 4844 + "engines": { 4845 + "node": ">=10" 4846 + } 4847 + }, 4848 + "node_modules/aria-query": { 4849 + "version": "5.3.2", 4850 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 4851 + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 4852 + "dev": true, 4853 + "license": "Apache-2.0", 4854 + "engines": { 4855 + "node": ">= 0.4" 4856 + } 4857 + }, 4858 + "node_modules/array-buffer-byte-length": { 4859 + "version": "1.0.2", 4860 + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", 4861 + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", 4862 + "dev": true, 4863 + "license": "MIT", 4864 + "dependencies": { 4865 + "call-bound": "^1.0.3", 4866 + "is-array-buffer": "^3.0.5" 4867 + }, 4868 + "engines": { 4869 + "node": ">= 0.4" 4870 + }, 4871 + "funding": { 4872 + "url": "https://github.com/sponsors/ljharb" 4873 + } 4874 + }, 4875 + "node_modules/array-includes": { 4876 + "version": "3.1.9", 4877 + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", 4878 + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", 4879 + "dev": true, 4880 + "license": "MIT", 4881 + "dependencies": { 4882 + "call-bind": "^1.0.8", 4883 + "call-bound": "^1.0.4", 4884 + "define-properties": "^1.2.1", 4885 + "es-abstract": "^1.24.0", 4886 + "es-object-atoms": "^1.1.1", 4887 + "get-intrinsic": "^1.3.0", 4888 + "is-string": "^1.1.1", 4889 + "math-intrinsics": "^1.1.0" 4890 + }, 4891 + "engines": { 4892 + "node": ">= 0.4" 4893 + }, 4894 + "funding": { 4895 + "url": "https://github.com/sponsors/ljharb" 4896 + } 4897 + }, 4898 + "node_modules/array.prototype.findlast": { 4899 + "version": "1.2.5", 4900 + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", 4901 + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", 4902 + "dev": true, 4903 + "license": "MIT", 4904 + "dependencies": { 4905 + "call-bind": "^1.0.7", 4906 + "define-properties": "^1.2.1", 4907 + "es-abstract": "^1.23.2", 4908 + "es-errors": "^1.3.0", 4909 + "es-object-atoms": "^1.0.0", 4910 + "es-shim-unscopables": "^1.0.2" 4911 + }, 4912 + "engines": { 4913 + "node": ">= 0.4" 4914 + }, 4915 + "funding": { 4916 + "url": "https://github.com/sponsors/ljharb" 4917 + } 4918 + }, 4919 + "node_modules/array.prototype.findlastindex": { 4920 + "version": "1.2.6", 4921 + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", 4922 + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", 4923 + "dev": true, 4924 + "license": "MIT", 4925 + "dependencies": { 4926 + "call-bind": "^1.0.8", 4927 + "call-bound": "^1.0.4", 4928 + "define-properties": "^1.2.1", 4929 + "es-abstract": "^1.23.9", 4930 + "es-errors": "^1.3.0", 4931 + "es-object-atoms": "^1.1.1", 4932 + "es-shim-unscopables": "^1.1.0" 4933 + }, 4934 + "engines": { 4935 + "node": ">= 0.4" 4936 + }, 4937 + "funding": { 4938 + "url": "https://github.com/sponsors/ljharb" 4939 + } 4940 + }, 4941 + "node_modules/array.prototype.flat": { 4942 + "version": "1.3.3", 4943 + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", 4944 + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", 4945 + "dev": true, 4946 + "license": "MIT", 4947 + "dependencies": { 4948 + "call-bind": "^1.0.8", 4949 + "define-properties": "^1.2.1", 4950 + "es-abstract": "^1.23.5", 4951 + "es-shim-unscopables": "^1.0.2" 4952 + }, 4953 + "engines": { 4954 + "node": ">= 0.4" 4955 + }, 4956 + "funding": { 4957 + "url": "https://github.com/sponsors/ljharb" 4958 + } 4959 + }, 4960 + "node_modules/array.prototype.flatmap": { 4961 + "version": "1.3.3", 4962 + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", 4963 + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", 4964 + "dev": true, 4965 + "license": "MIT", 4966 + "dependencies": { 4967 + "call-bind": "^1.0.8", 4968 + "define-properties": "^1.2.1", 4969 + "es-abstract": "^1.23.5", 4970 + "es-shim-unscopables": "^1.0.2" 4971 + }, 4972 + "engines": { 4973 + "node": ">= 0.4" 4974 + }, 4975 + "funding": { 4976 + "url": "https://github.com/sponsors/ljharb" 4977 + } 4978 + }, 4979 + "node_modules/array.prototype.tosorted": { 4980 + "version": "1.1.4", 4981 + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", 4982 + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", 4983 + "dev": true, 4984 + "license": "MIT", 4985 + "dependencies": { 4986 + "call-bind": "^1.0.7", 4987 + "define-properties": "^1.2.1", 4988 + "es-abstract": "^1.23.3", 4989 + "es-errors": "^1.3.0", 4990 + "es-shim-unscopables": "^1.0.2" 4991 + }, 4992 + "engines": { 4993 + "node": ">= 0.4" 4994 + } 4995 + }, 4996 + "node_modules/arraybuffer.prototype.slice": { 4997 + "version": "1.0.4", 4998 + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", 4999 + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", 5000 + "dev": true, 5001 + "license": "MIT", 5002 + "dependencies": { 5003 + "array-buffer-byte-length": "^1.0.1", 5004 + "call-bind": "^1.0.8", 5005 + "define-properties": "^1.2.1", 5006 + "es-abstract": "^1.23.5", 5007 + "es-errors": "^1.3.0", 5008 + "get-intrinsic": "^1.2.6", 5009 + "is-array-buffer": "^3.0.4" 5010 + }, 5011 + "engines": { 5012 + "node": ">= 0.4" 5013 + }, 5014 + "funding": { 5015 + "url": "https://github.com/sponsors/ljharb" 5016 + } 5017 + }, 5018 + "node_modules/ast-types": { 5019 + "version": "0.16.1", 5020 + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", 5021 + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", 5022 + "dev": true, 5023 + "license": "MIT", 5024 + "dependencies": { 5025 + "tslib": "^2.0.1" 5026 + }, 5027 + "engines": { 5028 + "node": ">=4" 5029 + } 5030 + }, 5031 + "node_modules/ast-types-flow": { 5032 + "version": "0.0.8", 5033 + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", 5034 + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", 5035 + "dev": true, 5036 + "license": "MIT" 5037 + }, 5038 + "node_modules/async-function": { 5039 + "version": "1.0.0", 5040 + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", 5041 + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", 5042 + "dev": true, 5043 + "license": "MIT", 5044 + "engines": { 5045 + "node": ">= 0.4" 5046 + } 5047 + }, 5048 + "node_modules/available-typed-arrays": { 5049 + "version": "1.0.7", 5050 + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", 5051 + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", 5052 + "dev": true, 5053 + "license": "MIT", 5054 + "dependencies": { 5055 + "possible-typed-array-names": "^1.0.0" 5056 + }, 5057 + "engines": { 5058 + "node": ">= 0.4" 5059 + }, 5060 + "funding": { 5061 + "url": "https://github.com/sponsors/ljharb" 5062 + } 5063 + }, 5064 + "node_modules/axe-core": { 5065 + "version": "4.11.1", 5066 + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", 5067 + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", 5068 + "dev": true, 5069 + "license": "MPL-2.0", 5070 + "engines": { 5071 + "node": ">=4" 5072 + } 5073 + }, 5074 + "node_modules/axobject-query": { 5075 + "version": "4.1.0", 5076 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 5077 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 5078 + "dev": true, 5079 + "license": "Apache-2.0", 5080 + "engines": { 5081 + "node": ">= 0.4" 5082 + } 5083 + }, 5084 + "node_modules/babel-plugin-react-compiler": { 5085 + "version": "1.0.0", 5086 + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", 5087 + "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", 5088 + "devOptional": true, 5089 + "license": "MIT", 5090 + "peer": true, 5091 + "dependencies": { 5092 + "@babel/types": "^7.26.0" 5093 + } 5094 + }, 5095 + "node_modules/balanced-match": { 5096 + "version": "1.0.2", 5097 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 5098 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 5099 + "dev": true, 5100 + "license": "MIT" 5101 + }, 5102 + "node_modules/baseline-browser-mapping": { 5103 + "version": "2.9.19", 5104 + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", 5105 + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", 5106 + "license": "Apache-2.0", 5107 + "bin": { 5108 + "baseline-browser-mapping": "dist/cli.js" 5109 + } 5110 + }, 5111 + "node_modules/body-parser": { 5112 + "version": "2.2.2", 5113 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", 5114 + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", 5115 + "dev": true, 5116 + "license": "MIT", 5117 + "dependencies": { 5118 + "bytes": "^3.1.2", 5119 + "content-type": "^1.0.5", 5120 + "debug": "^4.4.3", 5121 + "http-errors": "^2.0.0", 5122 + "iconv-lite": "^0.7.0", 5123 + "on-finished": "^2.4.1", 5124 + "qs": "^6.14.1", 5125 + "raw-body": "^3.0.1", 5126 + "type-is": "^2.0.1" 5127 + }, 5128 + "engines": { 5129 + "node": ">=18" 5130 + }, 5131 + "funding": { 5132 + "type": "opencollective", 5133 + "url": "https://opencollective.com/express" 5134 + } 5135 + }, 5136 + "node_modules/brace-expansion": { 5137 + "version": "1.1.12", 5138 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", 5139 + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 5140 + "dev": true, 5141 + "license": "MIT", 5142 + "dependencies": { 5143 + "balanced-match": "^1.0.0", 5144 + "concat-map": "0.0.1" 5145 + } 5146 + }, 5147 + "node_modules/braces": { 5148 + "version": "3.0.3", 5149 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 5150 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 5151 + "dev": true, 5152 + "license": "MIT", 5153 + "dependencies": { 5154 + "fill-range": "^7.1.1" 5155 + }, 5156 + "engines": { 5157 + "node": ">=8" 5158 + } 5159 + }, 5160 + "node_modules/browserslist": { 5161 + "version": "4.28.1", 5162 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", 5163 + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", 5164 + "dev": true, 5165 + "funding": [ 5166 + { 5167 + "type": "opencollective", 5168 + "url": "https://opencollective.com/browserslist" 5169 + }, 5170 + { 5171 + "type": "tidelift", 5172 + "url": "https://tidelift.com/funding/github/npm/browserslist" 5173 + }, 5174 + { 5175 + "type": "github", 5176 + "url": "https://github.com/sponsors/ai" 5177 + } 5178 + ], 5179 + "license": "MIT", 5180 + "peer": true, 5181 + "dependencies": { 5182 + "baseline-browser-mapping": "^2.9.0", 5183 + "caniuse-lite": "^1.0.30001759", 5184 + "electron-to-chromium": "^1.5.263", 5185 + "node-releases": "^2.0.27", 5186 + "update-browserslist-db": "^1.2.0" 5187 + }, 5188 + "bin": { 5189 + "browserslist": "cli.js" 5190 + }, 5191 + "engines": { 5192 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 5193 + } 5194 + }, 5195 + "node_modules/bundle-name": { 5196 + "version": "4.1.0", 5197 + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", 5198 + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", 5199 + "dev": true, 5200 + "license": "MIT", 5201 + "dependencies": { 5202 + "run-applescript": "^7.0.0" 5203 + }, 5204 + "engines": { 5205 + "node": ">=18" 5206 + }, 5207 + "funding": { 5208 + "url": "https://github.com/sponsors/sindresorhus" 5209 + } 5210 + }, 5211 + "node_modules/bytes": { 5212 + "version": "3.1.2", 5213 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", 5214 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", 5215 + "dev": true, 5216 + "license": "MIT", 5217 + "engines": { 5218 + "node": ">= 0.8" 5219 + } 5220 + }, 5221 + "node_modules/call-bind": { 5222 + "version": "1.0.8", 5223 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", 5224 + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", 5225 + "dev": true, 5226 + "license": "MIT", 5227 + "dependencies": { 5228 + "call-bind-apply-helpers": "^1.0.0", 5229 + "es-define-property": "^1.0.0", 5230 + "get-intrinsic": "^1.2.4", 5231 + "set-function-length": "^1.2.2" 5232 + }, 5233 + "engines": { 5234 + "node": ">= 0.4" 5235 + }, 5236 + "funding": { 5237 + "url": "https://github.com/sponsors/ljharb" 5238 + } 5239 + }, 5240 + "node_modules/call-bind-apply-helpers": { 5241 + "version": "1.0.2", 5242 + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", 5243 + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", 5244 + "dev": true, 5245 + "license": "MIT", 5246 + "dependencies": { 5247 + "es-errors": "^1.3.0", 5248 + "function-bind": "^1.1.2" 5249 + }, 5250 + "engines": { 5251 + "node": ">= 0.4" 5252 + } 5253 + }, 5254 + "node_modules/call-bound": { 5255 + "version": "1.0.4", 5256 + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", 5257 + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", 5258 + "dev": true, 5259 + "license": "MIT", 5260 + "dependencies": { 5261 + "call-bind-apply-helpers": "^1.0.2", 5262 + "get-intrinsic": "^1.3.0" 5263 + }, 5264 + "engines": { 5265 + "node": ">= 0.4" 5266 + }, 5267 + "funding": { 5268 + "url": "https://github.com/sponsors/ljharb" 5269 + } 5270 + }, 5271 + "node_modules/callsites": { 5272 + "version": "3.1.0", 5273 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 5274 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 5275 + "dev": true, 5276 + "license": "MIT", 5277 + "engines": { 5278 + "node": ">=6" 5279 + } 5280 + }, 5281 + "node_modules/caniuse-lite": { 5282 + "version": "1.0.30001769", 5283 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", 5284 + "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", 5285 + "funding": [ 5286 + { 5287 + "type": "opencollective", 5288 + "url": "https://opencollective.com/browserslist" 5289 + }, 5290 + { 5291 + "type": "tidelift", 5292 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 5293 + }, 5294 + { 5295 + "type": "github", 5296 + "url": "https://github.com/sponsors/ai" 5297 + } 5298 + ], 5299 + "license": "CC-BY-4.0" 5300 + }, 5301 + "node_modules/chalk": { 5302 + "version": "4.1.2", 5303 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 5304 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 5305 + "dev": true, 5306 + "license": "MIT", 5307 + "dependencies": { 5308 + "ansi-styles": "^4.1.0", 5309 + "supports-color": "^7.1.0" 5310 + }, 5311 + "engines": { 5312 + "node": ">=10" 5313 + }, 5314 + "funding": { 5315 + "url": "https://github.com/chalk/chalk?sponsor=1" 5316 + } 5317 + }, 5318 + "node_modules/class-variance-authority": { 5319 + "version": "0.7.1", 5320 + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", 5321 + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", 5322 + "license": "Apache-2.0", 5323 + "dependencies": { 5324 + "clsx": "^2.1.1" 5325 + }, 5326 + "funding": { 5327 + "url": "https://polar.sh/cva" 5328 + } 5329 + }, 5330 + "node_modules/cli-cursor": { 5331 + "version": "5.0.0", 5332 + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", 5333 + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", 5334 + "dev": true, 5335 + "license": "MIT", 5336 + "dependencies": { 5337 + "restore-cursor": "^5.0.0" 5338 + }, 5339 + "engines": { 5340 + "node": ">=18" 5341 + }, 5342 + "funding": { 5343 + "url": "https://github.com/sponsors/sindresorhus" 5344 + } 5345 + }, 5346 + "node_modules/cli-spinners": { 5347 + "version": "2.9.2", 5348 + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", 5349 + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", 5350 + "dev": true, 5351 + "license": "MIT", 5352 + "engines": { 5353 + "node": ">=6" 5354 + }, 5355 + "funding": { 5356 + "url": "https://github.com/sponsors/sindresorhus" 5357 + } 5358 + }, 5359 + "node_modules/cli-width": { 5360 + "version": "4.1.0", 5361 + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", 5362 + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", 5363 + "dev": true, 5364 + "license": "ISC", 5365 + "engines": { 5366 + "node": ">= 12" 5367 + } 5368 + }, 5369 + "node_modules/client-only": { 5370 + "version": "0.0.1", 5371 + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 5372 + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", 5373 + "license": "MIT" 5374 + }, 5375 + "node_modules/cliui": { 5376 + "version": "8.0.1", 5377 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 5378 + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 5379 + "dev": true, 5380 + "license": "ISC", 5381 + "dependencies": { 5382 + "string-width": "^4.2.0", 5383 + "strip-ansi": "^6.0.1", 5384 + "wrap-ansi": "^7.0.0" 5385 + }, 5386 + "engines": { 5387 + "node": ">=12" 5388 + } 5389 + }, 5390 + "node_modules/cliui/node_modules/ansi-regex": { 5391 + "version": "5.0.1", 5392 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 5393 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 5394 + "dev": true, 5395 + "license": "MIT", 5396 + "engines": { 5397 + "node": ">=8" 5398 + } 5399 + }, 5400 + "node_modules/cliui/node_modules/emoji-regex": { 5401 + "version": "8.0.0", 5402 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 5403 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 5404 + "dev": true, 5405 + "license": "MIT" 5406 + }, 5407 + "node_modules/cliui/node_modules/string-width": { 5408 + "version": "4.2.3", 5409 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 5410 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 5411 + "dev": true, 5412 + "license": "MIT", 5413 + "dependencies": { 5414 + "emoji-regex": "^8.0.0", 5415 + "is-fullwidth-code-point": "^3.0.0", 5416 + "strip-ansi": "^6.0.1" 5417 + }, 5418 + "engines": { 5419 + "node": ">=8" 5420 + } 5421 + }, 5422 + "node_modules/cliui/node_modules/strip-ansi": { 5423 + "version": "6.0.1", 5424 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 5425 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 5426 + "dev": true, 5427 + "license": "MIT", 5428 + "dependencies": { 5429 + "ansi-regex": "^5.0.1" 5430 + }, 5431 + "engines": { 5432 + "node": ">=8" 5433 + } 5434 + }, 5435 + "node_modules/cliui/node_modules/wrap-ansi": { 5436 + "version": "7.0.0", 5437 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 5438 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 5439 + "dev": true, 5440 + "license": "MIT", 5441 + "dependencies": { 5442 + "ansi-styles": "^4.0.0", 5443 + "string-width": "^4.1.0", 5444 + "strip-ansi": "^6.0.0" 5445 + }, 5446 + "engines": { 5447 + "node": ">=10" 5448 + }, 5449 + "funding": { 5450 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 5451 + } 5452 + }, 5453 + "node_modules/clsx": { 5454 + "version": "2.1.1", 5455 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 5456 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 5457 + "license": "MIT", 5458 + "engines": { 5459 + "node": ">=6" 5460 + } 5461 + }, 5462 + "node_modules/code-block-writer": { 5463 + "version": "13.0.3", 5464 + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", 5465 + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", 5466 + "dev": true, 5467 + "license": "MIT" 5468 + }, 5469 + "node_modules/color-convert": { 5470 + "version": "2.0.1", 5471 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 5472 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 5473 + "dev": true, 5474 + "license": "MIT", 5475 + "dependencies": { 5476 + "color-name": "~1.1.4" 5477 + }, 5478 + "engines": { 5479 + "node": ">=7.0.0" 5480 + } 5481 + }, 5482 + "node_modules/color-name": { 5483 + "version": "1.1.4", 5484 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 5485 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 5486 + "dev": true, 5487 + "license": "MIT" 5488 + }, 5489 + "node_modules/commander": { 5490 + "version": "14.0.3", 5491 + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", 5492 + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", 5493 + "dev": true, 5494 + "license": "MIT", 5495 + "engines": { 5496 + "node": ">=20" 5497 + } 5498 + }, 5499 + "node_modules/concat-map": { 5500 + "version": "0.0.1", 5501 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 5502 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 5503 + "dev": true, 5504 + "license": "MIT" 5505 + }, 5506 + "node_modules/content-disposition": { 5507 + "version": "1.0.1", 5508 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", 5509 + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", 5510 + "dev": true, 5511 + "license": "MIT", 5512 + "engines": { 5513 + "node": ">=18" 5514 + }, 5515 + "funding": { 5516 + "type": "opencollective", 5517 + "url": "https://opencollective.com/express" 5518 + } 5519 + }, 5520 + "node_modules/content-type": { 5521 + "version": "1.0.5", 5522 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", 5523 + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", 5524 + "dev": true, 5525 + "license": "MIT", 5526 + "engines": { 5527 + "node": ">= 0.6" 5528 + } 5529 + }, 5530 + "node_modules/convert-source-map": { 5531 + "version": "2.0.0", 5532 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 5533 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 5534 + "dev": true, 5535 + "license": "MIT" 5536 + }, 5537 + "node_modules/cookie": { 5538 + "version": "0.7.2", 5539 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 5540 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 5541 + "dev": true, 5542 + "license": "MIT", 5543 + "engines": { 5544 + "node": ">= 0.6" 5545 + } 5546 + }, 5547 + "node_modules/cookie-signature": { 5548 + "version": "1.2.2", 5549 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", 5550 + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", 5551 + "dev": true, 5552 + "license": "MIT", 5553 + "engines": { 5554 + "node": ">=6.6.0" 5555 + } 5556 + }, 5557 + "node_modules/cors": { 5558 + "version": "2.8.6", 5559 + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", 5560 + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", 5561 + "dev": true, 5562 + "license": "MIT", 5563 + "dependencies": { 5564 + "object-assign": "^4", 5565 + "vary": "^1" 5566 + }, 5567 + "engines": { 5568 + "node": ">= 0.10" 5569 + }, 5570 + "funding": { 5571 + "type": "opencollective", 5572 + "url": "https://opencollective.com/express" 5573 + } 5574 + }, 5575 + "node_modules/cosmiconfig": { 5576 + "version": "9.0.0", 5577 + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", 5578 + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", 5579 + "dev": true, 5580 + "license": "MIT", 5581 + "dependencies": { 5582 + "env-paths": "^2.2.1", 5583 + "import-fresh": "^3.3.0", 5584 + "js-yaml": "^4.1.0", 5585 + "parse-json": "^5.2.0" 5586 + }, 5587 + "engines": { 5588 + "node": ">=14" 5589 + }, 5590 + "funding": { 5591 + "url": "https://github.com/sponsors/d-fischer" 5592 + }, 5593 + "peerDependencies": { 5594 + "typescript": ">=4.9.5" 5595 + }, 5596 + "peerDependenciesMeta": { 5597 + "typescript": { 5598 + "optional": true 5599 + } 5600 + } 5601 + }, 5602 + "node_modules/cross-spawn": { 5603 + "version": "7.0.6", 5604 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 5605 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 5606 + "dev": true, 5607 + "license": "MIT", 5608 + "dependencies": { 5609 + "path-key": "^3.1.0", 5610 + "shebang-command": "^2.0.0", 5611 + "which": "^2.0.1" 5612 + }, 5613 + "engines": { 5614 + "node": ">= 8" 5615 + } 5616 + }, 5617 + "node_modules/cssesc": { 5618 + "version": "3.0.0", 5619 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 5620 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 5621 + "dev": true, 5622 + "license": "MIT", 5623 + "bin": { 5624 + "cssesc": "bin/cssesc" 5625 + }, 5626 + "engines": { 5627 + "node": ">=4" 5628 + } 5629 + }, 5630 + "node_modules/csstype": { 5631 + "version": "3.2.3", 5632 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", 5633 + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", 5634 + "license": "MIT" 5635 + }, 5636 + "node_modules/d3-array": { 5637 + "version": "3.2.4", 5638 + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", 5639 + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", 5640 + "license": "ISC", 5641 + "dependencies": { 5642 + "internmap": "1 - 2" 5643 + }, 5644 + "engines": { 5645 + "node": ">=12" 5646 + } 5647 + }, 5648 + "node_modules/d3-color": { 5649 + "version": "3.1.0", 5650 + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", 5651 + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", 5652 + "license": "ISC", 5653 + "engines": { 5654 + "node": ">=12" 5655 + } 5656 + }, 5657 + "node_modules/d3-ease": { 5658 + "version": "3.0.1", 5659 + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", 5660 + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", 5661 + "license": "BSD-3-Clause", 5662 + "engines": { 5663 + "node": ">=12" 5664 + } 5665 + }, 5666 + "node_modules/d3-format": { 5667 + "version": "3.1.2", 5668 + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", 5669 + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", 5670 + "license": "ISC", 5671 + "engines": { 5672 + "node": ">=12" 5673 + } 5674 + }, 5675 + "node_modules/d3-interpolate": { 5676 + "version": "3.0.1", 5677 + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", 5678 + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", 5679 + "license": "ISC", 5680 + "dependencies": { 5681 + "d3-color": "1 - 3" 5682 + }, 5683 + "engines": { 5684 + "node": ">=12" 5685 + } 5686 + }, 5687 + "node_modules/d3-path": { 5688 + "version": "3.1.0", 5689 + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", 5690 + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", 5691 + "license": "ISC", 5692 + "engines": { 5693 + "node": ">=12" 5694 + } 5695 + }, 5696 + "node_modules/d3-scale": { 5697 + "version": "4.0.2", 5698 + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", 5699 + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", 5700 + "license": "ISC", 5701 + "dependencies": { 5702 + "d3-array": "2.10.0 - 3", 5703 + "d3-format": "1 - 3", 5704 + "d3-interpolate": "1.2.0 - 3", 5705 + "d3-time": "2.1.1 - 3", 5706 + "d3-time-format": "2 - 4" 5707 + }, 5708 + "engines": { 5709 + "node": ">=12" 5710 + } 5711 + }, 5712 + "node_modules/d3-shape": { 5713 + "version": "3.2.0", 5714 + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", 5715 + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", 5716 + "license": "ISC", 5717 + "dependencies": { 5718 + "d3-path": "^3.1.0" 5719 + }, 5720 + "engines": { 5721 + "node": ">=12" 5722 + } 5723 + }, 5724 + "node_modules/d3-time": { 5725 + "version": "3.1.0", 5726 + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", 5727 + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", 5728 + "license": "ISC", 5729 + "dependencies": { 5730 + "d3-array": "2 - 3" 5731 + }, 5732 + "engines": { 5733 + "node": ">=12" 5734 + } 5735 + }, 5736 + "node_modules/d3-time-format": { 5737 + "version": "4.1.0", 5738 + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", 5739 + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", 5740 + "license": "ISC", 5741 + "dependencies": { 5742 + "d3-time": "1 - 3" 5743 + }, 5744 + "engines": { 5745 + "node": ">=12" 5746 + } 5747 + }, 5748 + "node_modules/d3-timer": { 5749 + "version": "3.0.1", 5750 + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", 5751 + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", 5752 + "license": "ISC", 5753 + "engines": { 5754 + "node": ">=12" 5755 + } 5756 + }, 5757 + "node_modules/damerau-levenshtein": { 5758 + "version": "1.0.8", 5759 + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", 5760 + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", 5761 + "dev": true, 5762 + "license": "BSD-2-Clause" 5763 + }, 5764 + "node_modules/data-uri-to-buffer": { 5765 + "version": "4.0.1", 5766 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 5767 + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 5768 + "dev": true, 5769 + "license": "MIT", 5770 + "engines": { 5771 + "node": ">= 12" 5772 + } 5773 + }, 5774 + "node_modules/data-view-buffer": { 5775 + "version": "1.0.2", 5776 + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", 5777 + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", 5778 + "dev": true, 5779 + "license": "MIT", 5780 + "dependencies": { 5781 + "call-bound": "^1.0.3", 5782 + "es-errors": "^1.3.0", 5783 + "is-data-view": "^1.0.2" 5784 + }, 5785 + "engines": { 5786 + "node": ">= 0.4" 5787 + }, 5788 + "funding": { 5789 + "url": "https://github.com/sponsors/ljharb" 5790 + } 5791 + }, 5792 + "node_modules/data-view-byte-length": { 5793 + "version": "1.0.2", 5794 + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", 5795 + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", 5796 + "dev": true, 5797 + "license": "MIT", 5798 + "dependencies": { 5799 + "call-bound": "^1.0.3", 5800 + "es-errors": "^1.3.0", 5801 + "is-data-view": "^1.0.2" 5802 + }, 5803 + "engines": { 5804 + "node": ">= 0.4" 5805 + }, 5806 + "funding": { 5807 + "url": "https://github.com/sponsors/inspect-js" 5808 + } 5809 + }, 5810 + "node_modules/data-view-byte-offset": { 5811 + "version": "1.0.1", 5812 + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", 5813 + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", 5814 + "dev": true, 5815 + "license": "MIT", 5816 + "dependencies": { 5817 + "call-bound": "^1.0.2", 5818 + "es-errors": "^1.3.0", 5819 + "is-data-view": "^1.0.1" 5820 + }, 5821 + "engines": { 5822 + "node": ">= 0.4" 5823 + }, 5824 + "funding": { 5825 + "url": "https://github.com/sponsors/ljharb" 5826 + } 5827 + }, 5828 + "node_modules/debug": { 5829 + "version": "4.4.3", 5830 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", 5831 + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", 5832 + "dev": true, 5833 + "license": "MIT", 5834 + "dependencies": { 5835 + "ms": "^2.1.3" 5836 + }, 5837 + "engines": { 5838 + "node": ">=6.0" 5839 + }, 5840 + "peerDependenciesMeta": { 5841 + "supports-color": { 5842 + "optional": true 5843 + } 5844 + } 5845 + }, 5846 + "node_modules/decimal.js-light": { 5847 + "version": "2.5.1", 5848 + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", 5849 + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", 5850 + "license": "MIT" 5851 + }, 5852 + "node_modules/dedent": { 5853 + "version": "1.7.1", 5854 + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", 5855 + "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", 5856 + "dev": true, 5857 + "license": "MIT", 5858 + "peerDependencies": { 5859 + "babel-plugin-macros": "^3.1.0" 5860 + }, 5861 + "peerDependenciesMeta": { 5862 + "babel-plugin-macros": { 5863 + "optional": true 5864 + } 5865 + } 5866 + }, 5867 + "node_modules/deep-is": { 5868 + "version": "0.1.4", 5869 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 5870 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 5871 + "dev": true, 5872 + "license": "MIT" 5873 + }, 5874 + "node_modules/deepmerge": { 5875 + "version": "4.3.1", 5876 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 5877 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 5878 + "dev": true, 5879 + "license": "MIT", 5880 + "engines": { 5881 + "node": ">=0.10.0" 5882 + } 5883 + }, 5884 + "node_modules/default-browser": { 5885 + "version": "5.5.0", 5886 + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", 5887 + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", 5888 + "dev": true, 5889 + "license": "MIT", 5890 + "dependencies": { 5891 + "bundle-name": "^4.1.0", 5892 + "default-browser-id": "^5.0.0" 5893 + }, 5894 + "engines": { 5895 + "node": ">=18" 5896 + }, 5897 + "funding": { 5898 + "url": "https://github.com/sponsors/sindresorhus" 5899 + } 5900 + }, 5901 + "node_modules/default-browser-id": { 5902 + "version": "5.0.1", 5903 + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", 5904 + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", 5905 + "dev": true, 5906 + "license": "MIT", 5907 + "engines": { 5908 + "node": ">=18" 5909 + }, 5910 + "funding": { 5911 + "url": "https://github.com/sponsors/sindresorhus" 5912 + } 5913 + }, 5914 + "node_modules/define-data-property": { 5915 + "version": "1.1.4", 5916 + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 5917 + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 5918 + "dev": true, 5919 + "license": "MIT", 5920 + "dependencies": { 5921 + "es-define-property": "^1.0.0", 5922 + "es-errors": "^1.3.0", 5923 + "gopd": "^1.0.1" 5924 + }, 5925 + "engines": { 5926 + "node": ">= 0.4" 5927 + }, 5928 + "funding": { 5929 + "url": "https://github.com/sponsors/ljharb" 5930 + } 5931 + }, 5932 + "node_modules/define-lazy-prop": { 5933 + "version": "3.0.0", 5934 + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", 5935 + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", 5936 + "dev": true, 5937 + "license": "MIT", 5938 + "engines": { 5939 + "node": ">=12" 5940 + }, 5941 + "funding": { 5942 + "url": "https://github.com/sponsors/sindresorhus" 5943 + } 5944 + }, 5945 + "node_modules/define-properties": { 5946 + "version": "1.2.1", 5947 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 5948 + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 5949 + "dev": true, 5950 + "license": "MIT", 5951 + "dependencies": { 5952 + "define-data-property": "^1.0.1", 5953 + "has-property-descriptors": "^1.0.0", 5954 + "object-keys": "^1.1.1" 5955 + }, 5956 + "engines": { 5957 + "node": ">= 0.4" 5958 + }, 5959 + "funding": { 5960 + "url": "https://github.com/sponsors/ljharb" 5961 + } 5962 + }, 5963 + "node_modules/depd": { 5964 + "version": "2.0.0", 5965 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", 5966 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", 5967 + "dev": true, 5968 + "license": "MIT", 5969 + "engines": { 5970 + "node": ">= 0.8" 5971 + } 5972 + }, 5973 + "node_modules/detect-libc": { 5974 + "version": "2.1.2", 5975 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 5976 + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 5977 + "devOptional": true, 5978 + "license": "Apache-2.0", 5979 + "engines": { 5980 + "node": ">=8" 5981 + } 5982 + }, 5983 + "node_modules/detect-node-es": { 5984 + "version": "1.1.0", 5985 + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", 5986 + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", 5987 + "license": "MIT" 5988 + }, 5989 + "node_modules/diff": { 5990 + "version": "8.0.3", 5991 + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.3.tgz", 5992 + "integrity": "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==", 5993 + "dev": true, 5994 + "license": "BSD-3-Clause", 5995 + "engines": { 5996 + "node": ">=0.3.1" 5997 + } 5998 + }, 5999 + "node_modules/doctrine": { 6000 + "version": "2.1.0", 6001 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", 6002 + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", 6003 + "dev": true, 6004 + "license": "Apache-2.0", 6005 + "dependencies": { 6006 + "esutils": "^2.0.2" 6007 + }, 6008 + "engines": { 6009 + "node": ">=0.10.0" 6010 + } 6011 + }, 6012 + "node_modules/dom-helpers": { 6013 + "version": "5.2.1", 6014 + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 6015 + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 6016 + "license": "MIT", 6017 + "dependencies": { 6018 + "@babel/runtime": "^7.8.7", 6019 + "csstype": "^3.0.2" 6020 + } 6021 + }, 6022 + "node_modules/dotenv": { 6023 + "version": "17.3.1", 6024 + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz", 6025 + "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==", 6026 + "dev": true, 6027 + "license": "BSD-2-Clause", 6028 + "engines": { 6029 + "node": ">=12" 6030 + }, 6031 + "funding": { 6032 + "url": "https://dotenvx.com" 6033 + } 6034 + }, 6035 + "node_modules/dunder-proto": { 6036 + "version": "1.0.1", 6037 + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", 6038 + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", 6039 + "dev": true, 6040 + "license": "MIT", 6041 + "dependencies": { 6042 + "call-bind-apply-helpers": "^1.0.1", 6043 + "es-errors": "^1.3.0", 6044 + "gopd": "^1.2.0" 6045 + }, 6046 + "engines": { 6047 + "node": ">= 0.4" 6048 + } 6049 + }, 6050 + "node_modules/eciesjs": { 6051 + "version": "0.4.17", 6052 + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.17.tgz", 6053 + "integrity": "sha512-TOOURki4G7sD1wDCjj7NfLaXZZ49dFOeEb5y39IXpb8p0hRzVvfvzZHOi5JcT+PpyAbi/Y+lxPb8eTag2WYH8w==", 6054 + "dev": true, 6055 + "license": "MIT", 6056 + "dependencies": { 6057 + "@ecies/ciphers": "^0.2.5", 6058 + "@noble/ciphers": "^1.3.0", 6059 + "@noble/curves": "^1.9.7", 6060 + "@noble/hashes": "^1.8.0" 6061 + }, 6062 + "engines": { 6063 + "bun": ">=1", 6064 + "deno": ">=2", 6065 + "node": ">=16" 6066 + } 6067 + }, 6068 + "node_modules/ee-first": { 6069 + "version": "1.1.1", 6070 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 6071 + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", 6072 + "dev": true, 6073 + "license": "MIT" 6074 + }, 6075 + "node_modules/electron-to-chromium": { 6076 + "version": "1.5.286", 6077 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", 6078 + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", 6079 + "dev": true, 6080 + "license": "ISC" 6081 + }, 6082 + "node_modules/emoji-regex": { 6083 + "version": "9.2.2", 6084 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 6085 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 6086 + "dev": true, 6087 + "license": "MIT" 6088 + }, 6089 + "node_modules/encodeurl": { 6090 + "version": "2.0.0", 6091 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", 6092 + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", 6093 + "dev": true, 6094 + "license": "MIT", 6095 + "engines": { 6096 + "node": ">= 0.8" 6097 + } 6098 + }, 6099 + "node_modules/enhanced-resolve": { 6100 + "version": "5.19.0", 6101 + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", 6102 + "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", 6103 + "dev": true, 6104 + "license": "MIT", 6105 + "dependencies": { 6106 + "graceful-fs": "^4.2.4", 6107 + "tapable": "^2.3.0" 6108 + }, 6109 + "engines": { 6110 + "node": ">=10.13.0" 6111 + } 6112 + }, 6113 + "node_modules/env-paths": { 6114 + "version": "2.2.1", 6115 + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 6116 + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 6117 + "dev": true, 6118 + "license": "MIT", 6119 + "engines": { 6120 + "node": ">=6" 6121 + } 6122 + }, 6123 + "node_modules/error-ex": { 6124 + "version": "1.3.4", 6125 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", 6126 + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", 6127 + "dev": true, 6128 + "license": "MIT", 6129 + "dependencies": { 6130 + "is-arrayish": "^0.2.1" 6131 + } 6132 + }, 6133 + "node_modules/es-abstract": { 6134 + "version": "1.24.1", 6135 + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", 6136 + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", 6137 + "dev": true, 6138 + "license": "MIT", 6139 + "dependencies": { 6140 + "array-buffer-byte-length": "^1.0.2", 6141 + "arraybuffer.prototype.slice": "^1.0.4", 6142 + "available-typed-arrays": "^1.0.7", 6143 + "call-bind": "^1.0.8", 6144 + "call-bound": "^1.0.4", 6145 + "data-view-buffer": "^1.0.2", 6146 + "data-view-byte-length": "^1.0.2", 6147 + "data-view-byte-offset": "^1.0.1", 6148 + "es-define-property": "^1.0.1", 6149 + "es-errors": "^1.3.0", 6150 + "es-object-atoms": "^1.1.1", 6151 + "es-set-tostringtag": "^2.1.0", 6152 + "es-to-primitive": "^1.3.0", 6153 + "function.prototype.name": "^1.1.8", 6154 + "get-intrinsic": "^1.3.0", 6155 + "get-proto": "^1.0.1", 6156 + "get-symbol-description": "^1.1.0", 6157 + "globalthis": "^1.0.4", 6158 + "gopd": "^1.2.0", 6159 + "has-property-descriptors": "^1.0.2", 6160 + "has-proto": "^1.2.0", 6161 + "has-symbols": "^1.1.0", 6162 + "hasown": "^2.0.2", 6163 + "internal-slot": "^1.1.0", 6164 + "is-array-buffer": "^3.0.5", 6165 + "is-callable": "^1.2.7", 6166 + "is-data-view": "^1.0.2", 6167 + "is-negative-zero": "^2.0.3", 6168 + "is-regex": "^1.2.1", 6169 + "is-set": "^2.0.3", 6170 + "is-shared-array-buffer": "^1.0.4", 6171 + "is-string": "^1.1.1", 6172 + "is-typed-array": "^1.1.15", 6173 + "is-weakref": "^1.1.1", 6174 + "math-intrinsics": "^1.1.0", 6175 + "object-inspect": "^1.13.4", 6176 + "object-keys": "^1.1.1", 6177 + "object.assign": "^4.1.7", 6178 + "own-keys": "^1.0.1", 6179 + "regexp.prototype.flags": "^1.5.4", 6180 + "safe-array-concat": "^1.1.3", 6181 + "safe-push-apply": "^1.0.0", 6182 + "safe-regex-test": "^1.1.0", 6183 + "set-proto": "^1.0.0", 6184 + "stop-iteration-iterator": "^1.1.0", 6185 + "string.prototype.trim": "^1.2.10", 6186 + "string.prototype.trimend": "^1.0.9", 6187 + "string.prototype.trimstart": "^1.0.8", 6188 + "typed-array-buffer": "^1.0.3", 6189 + "typed-array-byte-length": "^1.0.3", 6190 + "typed-array-byte-offset": "^1.0.4", 6191 + "typed-array-length": "^1.0.7", 6192 + "unbox-primitive": "^1.1.0", 6193 + "which-typed-array": "^1.1.19" 6194 + }, 6195 + "engines": { 6196 + "node": ">= 0.4" 6197 + }, 6198 + "funding": { 6199 + "url": "https://github.com/sponsors/ljharb" 6200 + } 6201 + }, 6202 + "node_modules/es-define-property": { 6203 + "version": "1.0.1", 6204 + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", 6205 + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", 6206 + "dev": true, 6207 + "license": "MIT", 6208 + "engines": { 6209 + "node": ">= 0.4" 6210 + } 6211 + }, 6212 + "node_modules/es-errors": { 6213 + "version": "1.3.0", 6214 + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 6215 + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 6216 + "dev": true, 6217 + "license": "MIT", 6218 + "engines": { 6219 + "node": ">= 0.4" 6220 + } 6221 + }, 6222 + "node_modules/es-iterator-helpers": { 6223 + "version": "1.2.2", 6224 + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", 6225 + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", 6226 + "dev": true, 6227 + "license": "MIT", 6228 + "dependencies": { 6229 + "call-bind": "^1.0.8", 6230 + "call-bound": "^1.0.4", 6231 + "define-properties": "^1.2.1", 6232 + "es-abstract": "^1.24.1", 6233 + "es-errors": "^1.3.0", 6234 + "es-set-tostringtag": "^2.1.0", 6235 + "function-bind": "^1.1.2", 6236 + "get-intrinsic": "^1.3.0", 6237 + "globalthis": "^1.0.4", 6238 + "gopd": "^1.2.0", 6239 + "has-property-descriptors": "^1.0.2", 6240 + "has-proto": "^1.2.0", 6241 + "has-symbols": "^1.1.0", 6242 + "internal-slot": "^1.1.0", 6243 + "iterator.prototype": "^1.1.5", 6244 + "safe-array-concat": "^1.1.3" 6245 + }, 6246 + "engines": { 6247 + "node": ">= 0.4" 6248 + } 6249 + }, 6250 + "node_modules/es-object-atoms": { 6251 + "version": "1.1.1", 6252 + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", 6253 + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", 6254 + "dev": true, 6255 + "license": "MIT", 6256 + "dependencies": { 6257 + "es-errors": "^1.3.0" 6258 + }, 6259 + "engines": { 6260 + "node": ">= 0.4" 6261 + } 6262 + }, 6263 + "node_modules/es-set-tostringtag": { 6264 + "version": "2.1.0", 6265 + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", 6266 + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", 6267 + "dev": true, 6268 + "license": "MIT", 6269 + "dependencies": { 6270 + "es-errors": "^1.3.0", 6271 + "get-intrinsic": "^1.2.6", 6272 + "has-tostringtag": "^1.0.2", 6273 + "hasown": "^2.0.2" 6274 + }, 6275 + "engines": { 6276 + "node": ">= 0.4" 6277 + } 6278 + }, 6279 + "node_modules/es-shim-unscopables": { 6280 + "version": "1.1.0", 6281 + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", 6282 + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", 6283 + "dev": true, 6284 + "license": "MIT", 6285 + "dependencies": { 6286 + "hasown": "^2.0.2" 6287 + }, 6288 + "engines": { 6289 + "node": ">= 0.4" 6290 + } 6291 + }, 6292 + "node_modules/es-to-primitive": { 6293 + "version": "1.3.0", 6294 + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", 6295 + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", 6296 + "dev": true, 6297 + "license": "MIT", 6298 + "dependencies": { 6299 + "is-callable": "^1.2.7", 6300 + "is-date-object": "^1.0.5", 6301 + "is-symbol": "^1.0.4" 6302 + }, 6303 + "engines": { 6304 + "node": ">= 0.4" 6305 + }, 6306 + "funding": { 6307 + "url": "https://github.com/sponsors/ljharb" 6308 + } 6309 + }, 6310 + "node_modules/escalade": { 6311 + "version": "3.2.0", 6312 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 6313 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 6314 + "dev": true, 6315 + "license": "MIT", 6316 + "engines": { 6317 + "node": ">=6" 6318 + } 6319 + }, 6320 + "node_modules/escape-html": { 6321 + "version": "1.0.3", 6322 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 6323 + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", 6324 + "dev": true, 6325 + "license": "MIT" 6326 + }, 6327 + "node_modules/escape-string-regexp": { 6328 + "version": "4.0.0", 6329 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 6330 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 6331 + "dev": true, 6332 + "license": "MIT", 6333 + "engines": { 6334 + "node": ">=10" 6335 + }, 6336 + "funding": { 6337 + "url": "https://github.com/sponsors/sindresorhus" 6338 + } 6339 + }, 6340 + "node_modules/eslint": { 6341 + "version": "9.39.2", 6342 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", 6343 + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", 6344 + "dev": true, 6345 + "license": "MIT", 6346 + "peer": true, 6347 + "dependencies": { 6348 + "@eslint-community/eslint-utils": "^4.8.0", 6349 + "@eslint-community/regexpp": "^4.12.1", 6350 + "@eslint/config-array": "^0.21.1", 6351 + "@eslint/config-helpers": "^0.4.2", 6352 + "@eslint/core": "^0.17.0", 6353 + "@eslint/eslintrc": "^3.3.1", 6354 + "@eslint/js": "9.39.2", 6355 + "@eslint/plugin-kit": "^0.4.1", 6356 + "@humanfs/node": "^0.16.6", 6357 + "@humanwhocodes/module-importer": "^1.0.1", 6358 + "@humanwhocodes/retry": "^0.4.2", 6359 + "@types/estree": "^1.0.6", 6360 + "ajv": "^6.12.4", 6361 + "chalk": "^4.0.0", 6362 + "cross-spawn": "^7.0.6", 6363 + "debug": "^4.3.2", 6364 + "escape-string-regexp": "^4.0.0", 6365 + "eslint-scope": "^8.4.0", 6366 + "eslint-visitor-keys": "^4.2.1", 6367 + "espree": "^10.4.0", 6368 + "esquery": "^1.5.0", 6369 + "esutils": "^2.0.2", 6370 + "fast-deep-equal": "^3.1.3", 6371 + "file-entry-cache": "^8.0.0", 6372 + "find-up": "^5.0.0", 6373 + "glob-parent": "^6.0.2", 6374 + "ignore": "^5.2.0", 6375 + "imurmurhash": "^0.1.4", 6376 + "is-glob": "^4.0.0", 6377 + "json-stable-stringify-without-jsonify": "^1.0.1", 6378 + "lodash.merge": "^4.6.2", 6379 + "minimatch": "^3.1.2", 6380 + "natural-compare": "^1.4.0", 6381 + "optionator": "^0.9.3" 6382 + }, 6383 + "bin": { 6384 + "eslint": "bin/eslint.js" 6385 + }, 6386 + "engines": { 6387 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 6388 + }, 6389 + "funding": { 6390 + "url": "https://eslint.org/donate" 6391 + }, 6392 + "peerDependencies": { 6393 + "jiti": "*" 6394 + }, 6395 + "peerDependenciesMeta": { 6396 + "jiti": { 6397 + "optional": true 6398 + } 6399 + } 6400 + }, 6401 + "node_modules/eslint-config-next": { 6402 + "version": "16.1.6", 6403 + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.1.6.tgz", 6404 + "integrity": "sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==", 6405 + "dev": true, 6406 + "license": "MIT", 6407 + "dependencies": { 6408 + "@next/eslint-plugin-next": "16.1.6", 6409 + "eslint-import-resolver-node": "^0.3.6", 6410 + "eslint-import-resolver-typescript": "^3.5.2", 6411 + "eslint-plugin-import": "^2.32.0", 6412 + "eslint-plugin-jsx-a11y": "^6.10.0", 6413 + "eslint-plugin-react": "^7.37.0", 6414 + "eslint-plugin-react-hooks": "^7.0.0", 6415 + "globals": "16.4.0", 6416 + "typescript-eslint": "^8.46.0" 6417 + }, 6418 + "peerDependencies": { 6419 + "eslint": ">=9.0.0", 6420 + "typescript": ">=3.3.1" 6421 + }, 6422 + "peerDependenciesMeta": { 6423 + "typescript": { 6424 + "optional": true 6425 + } 6426 + } 6427 + }, 6428 + "node_modules/eslint-config-next/node_modules/globals": { 6429 + "version": "16.4.0", 6430 + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", 6431 + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", 6432 + "dev": true, 6433 + "license": "MIT", 6434 + "engines": { 6435 + "node": ">=18" 6436 + }, 6437 + "funding": { 6438 + "url": "https://github.com/sponsors/sindresorhus" 6439 + } 6440 + }, 6441 + "node_modules/eslint-import-resolver-node": { 6442 + "version": "0.3.9", 6443 + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", 6444 + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", 6445 + "dev": true, 6446 + "license": "MIT", 6447 + "dependencies": { 6448 + "debug": "^3.2.7", 6449 + "is-core-module": "^2.13.0", 6450 + "resolve": "^1.22.4" 6451 + } 6452 + }, 6453 + "node_modules/eslint-import-resolver-node/node_modules/debug": { 6454 + "version": "3.2.7", 6455 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 6456 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 6457 + "dev": true, 6458 + "license": "MIT", 6459 + "dependencies": { 6460 + "ms": "^2.1.1" 6461 + } 6462 + }, 6463 + "node_modules/eslint-import-resolver-typescript": { 6464 + "version": "3.10.1", 6465 + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", 6466 + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", 6467 + "dev": true, 6468 + "license": "ISC", 6469 + "dependencies": { 6470 + "@nolyfill/is-core-module": "1.0.39", 6471 + "debug": "^4.4.0", 6472 + "get-tsconfig": "^4.10.0", 6473 + "is-bun-module": "^2.0.0", 6474 + "stable-hash": "^0.0.5", 6475 + "tinyglobby": "^0.2.13", 6476 + "unrs-resolver": "^1.6.2" 6477 + }, 6478 + "engines": { 6479 + "node": "^14.18.0 || >=16.0.0" 6480 + }, 6481 + "funding": { 6482 + "url": "https://opencollective.com/eslint-import-resolver-typescript" 6483 + }, 6484 + "peerDependencies": { 6485 + "eslint": "*", 6486 + "eslint-plugin-import": "*", 6487 + "eslint-plugin-import-x": "*" 6488 + }, 6489 + "peerDependenciesMeta": { 6490 + "eslint-plugin-import": { 6491 + "optional": true 6492 + }, 6493 + "eslint-plugin-import-x": { 6494 + "optional": true 6495 + } 6496 + } 6497 + }, 6498 + "node_modules/eslint-module-utils": { 6499 + "version": "2.12.1", 6500 + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", 6501 + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", 6502 + "dev": true, 6503 + "license": "MIT", 6504 + "dependencies": { 6505 + "debug": "^3.2.7" 6506 + }, 6507 + "engines": { 6508 + "node": ">=4" 6509 + }, 6510 + "peerDependenciesMeta": { 6511 + "eslint": { 6512 + "optional": true 6513 + } 6514 + } 6515 + }, 6516 + "node_modules/eslint-module-utils/node_modules/debug": { 6517 + "version": "3.2.7", 6518 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 6519 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 6520 + "dev": true, 6521 + "license": "MIT", 6522 + "dependencies": { 6523 + "ms": "^2.1.1" 6524 + } 6525 + }, 6526 + "node_modules/eslint-plugin-import": { 6527 + "version": "2.32.0", 6528 + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", 6529 + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", 6530 + "dev": true, 6531 + "license": "MIT", 6532 + "peer": true, 6533 + "dependencies": { 6534 + "@rtsao/scc": "^1.1.0", 6535 + "array-includes": "^3.1.9", 6536 + "array.prototype.findlastindex": "^1.2.6", 6537 + "array.prototype.flat": "^1.3.3", 6538 + "array.prototype.flatmap": "^1.3.3", 6539 + "debug": "^3.2.7", 6540 + "doctrine": "^2.1.0", 6541 + "eslint-import-resolver-node": "^0.3.9", 6542 + "eslint-module-utils": "^2.12.1", 6543 + "hasown": "^2.0.2", 6544 + "is-core-module": "^2.16.1", 6545 + "is-glob": "^4.0.3", 6546 + "minimatch": "^3.1.2", 6547 + "object.fromentries": "^2.0.8", 6548 + "object.groupby": "^1.0.3", 6549 + "object.values": "^1.2.1", 6550 + "semver": "^6.3.1", 6551 + "string.prototype.trimend": "^1.0.9", 6552 + "tsconfig-paths": "^3.15.0" 6553 + }, 6554 + "engines": { 6555 + "node": ">=4" 6556 + }, 6557 + "peerDependencies": { 6558 + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" 6559 + } 6560 + }, 6561 + "node_modules/eslint-plugin-import/node_modules/debug": { 6562 + "version": "3.2.7", 6563 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 6564 + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 6565 + "dev": true, 6566 + "license": "MIT", 6567 + "dependencies": { 6568 + "ms": "^2.1.1" 6569 + } 6570 + }, 6571 + "node_modules/eslint-plugin-jsx-a11y": { 6572 + "version": "6.10.2", 6573 + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", 6574 + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", 6575 + "dev": true, 6576 + "license": "MIT", 6577 + "dependencies": { 6578 + "aria-query": "^5.3.2", 6579 + "array-includes": "^3.1.8", 6580 + "array.prototype.flatmap": "^1.3.2", 6581 + "ast-types-flow": "^0.0.8", 6582 + "axe-core": "^4.10.0", 6583 + "axobject-query": "^4.1.0", 6584 + "damerau-levenshtein": "^1.0.8", 6585 + "emoji-regex": "^9.2.2", 6586 + "hasown": "^2.0.2", 6587 + "jsx-ast-utils": "^3.3.5", 6588 + "language-tags": "^1.0.9", 6589 + "minimatch": "^3.1.2", 6590 + "object.fromentries": "^2.0.8", 6591 + "safe-regex-test": "^1.0.3", 6592 + "string.prototype.includes": "^2.0.1" 6593 + }, 6594 + "engines": { 6595 + "node": ">=4.0" 6596 + }, 6597 + "peerDependencies": { 6598 + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" 6599 + } 6600 + }, 6601 + "node_modules/eslint-plugin-react": { 6602 + "version": "7.37.5", 6603 + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", 6604 + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", 6605 + "dev": true, 6606 + "license": "MIT", 6607 + "dependencies": { 6608 + "array-includes": "^3.1.8", 6609 + "array.prototype.findlast": "^1.2.5", 6610 + "array.prototype.flatmap": "^1.3.3", 6611 + "array.prototype.tosorted": "^1.1.4", 6612 + "doctrine": "^2.1.0", 6613 + "es-iterator-helpers": "^1.2.1", 6614 + "estraverse": "^5.3.0", 6615 + "hasown": "^2.0.2", 6616 + "jsx-ast-utils": "^2.4.1 || ^3.0.0", 6617 + "minimatch": "^3.1.2", 6618 + "object.entries": "^1.1.9", 6619 + "object.fromentries": "^2.0.8", 6620 + "object.values": "^1.2.1", 6621 + "prop-types": "^15.8.1", 6622 + "resolve": "^2.0.0-next.5", 6623 + "semver": "^6.3.1", 6624 + "string.prototype.matchall": "^4.0.12", 6625 + "string.prototype.repeat": "^1.0.0" 6626 + }, 6627 + "engines": { 6628 + "node": ">=4" 6629 + }, 6630 + "peerDependencies": { 6631 + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" 6632 + } 6633 + }, 6634 + "node_modules/eslint-plugin-react-hooks": { 6635 + "version": "7.0.1", 6636 + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", 6637 + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", 6638 + "dev": true, 6639 + "license": "MIT", 6640 + "dependencies": { 6641 + "@babel/core": "^7.24.4", 6642 + "@babel/parser": "^7.24.4", 6643 + "hermes-parser": "^0.25.1", 6644 + "zod": "^3.25.0 || ^4.0.0", 6645 + "zod-validation-error": "^3.5.0 || ^4.0.0" 6646 + }, 6647 + "engines": { 6648 + "node": ">=18" 6649 + }, 6650 + "peerDependencies": { 6651 + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" 6652 + } 6653 + }, 6654 + "node_modules/eslint-plugin-react/node_modules/resolve": { 6655 + "version": "2.0.0-next.5", 6656 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", 6657 + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", 6658 + "dev": true, 6659 + "license": "MIT", 6660 + "dependencies": { 6661 + "is-core-module": "^2.13.0", 6662 + "path-parse": "^1.0.7", 6663 + "supports-preserve-symlinks-flag": "^1.0.0" 6664 + }, 6665 + "bin": { 6666 + "resolve": "bin/resolve" 6667 + }, 6668 + "funding": { 6669 + "url": "https://github.com/sponsors/ljharb" 6670 + } 6671 + }, 6672 + "node_modules/eslint-scope": { 6673 + "version": "8.4.0", 6674 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", 6675 + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", 6676 + "dev": true, 6677 + "license": "BSD-2-Clause", 6678 + "dependencies": { 6679 + "esrecurse": "^4.3.0", 6680 + "estraverse": "^5.2.0" 6681 + }, 6682 + "engines": { 6683 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 6684 + }, 6685 + "funding": { 6686 + "url": "https://opencollective.com/eslint" 6687 + } 6688 + }, 6689 + "node_modules/eslint-visitor-keys": { 6690 + "version": "4.2.1", 6691 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", 6692 + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", 6693 + "dev": true, 6694 + "license": "Apache-2.0", 6695 + "engines": { 6696 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 6697 + }, 6698 + "funding": { 6699 + "url": "https://opencollective.com/eslint" 6700 + } 6701 + }, 6702 + "node_modules/espree": { 6703 + "version": "10.4.0", 6704 + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", 6705 + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", 6706 + "dev": true, 6707 + "license": "BSD-2-Clause", 6708 + "dependencies": { 6709 + "acorn": "^8.15.0", 6710 + "acorn-jsx": "^5.3.2", 6711 + "eslint-visitor-keys": "^4.2.1" 6712 + }, 6713 + "engines": { 6714 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 6715 + }, 6716 + "funding": { 6717 + "url": "https://opencollective.com/eslint" 6718 + } 6719 + }, 6720 + "node_modules/esprima": { 6721 + "version": "4.0.1", 6722 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 6723 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 6724 + "dev": true, 6725 + "license": "BSD-2-Clause", 6726 + "bin": { 6727 + "esparse": "bin/esparse.js", 6728 + "esvalidate": "bin/esvalidate.js" 6729 + }, 6730 + "engines": { 6731 + "node": ">=4" 6732 + } 6733 + }, 6734 + "node_modules/esquery": { 6735 + "version": "1.7.0", 6736 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", 6737 + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", 6738 + "dev": true, 6739 + "license": "BSD-3-Clause", 6740 + "dependencies": { 6741 + "estraverse": "^5.1.0" 6742 + }, 6743 + "engines": { 6744 + "node": ">=0.10" 6745 + } 6746 + }, 6747 + "node_modules/esrecurse": { 6748 + "version": "4.3.0", 6749 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 6750 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 6751 + "dev": true, 6752 + "license": "BSD-2-Clause", 6753 + "dependencies": { 6754 + "estraverse": "^5.2.0" 6755 + }, 6756 + "engines": { 6757 + "node": ">=4.0" 6758 + } 6759 + }, 6760 + "node_modules/estraverse": { 6761 + "version": "5.3.0", 6762 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 6763 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 6764 + "dev": true, 6765 + "license": "BSD-2-Clause", 6766 + "engines": { 6767 + "node": ">=4.0" 6768 + } 6769 + }, 6770 + "node_modules/esutils": { 6771 + "version": "2.0.3", 6772 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 6773 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 6774 + "dev": true, 6775 + "license": "BSD-2-Clause", 6776 + "engines": { 6777 + "node": ">=0.10.0" 6778 + } 6779 + }, 6780 + "node_modules/etag": { 6781 + "version": "1.8.1", 6782 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 6783 + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", 6784 + "dev": true, 6785 + "license": "MIT", 6786 + "engines": { 6787 + "node": ">= 0.6" 6788 + } 6789 + }, 6790 + "node_modules/eventemitter3": { 6791 + "version": "4.0.7", 6792 + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 6793 + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 6794 + "license": "MIT" 6795 + }, 6796 + "node_modules/eventsource": { 6797 + "version": "3.0.7", 6798 + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", 6799 + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", 6800 + "dev": true, 6801 + "license": "MIT", 6802 + "dependencies": { 6803 + "eventsource-parser": "^3.0.1" 6804 + }, 6805 + "engines": { 6806 + "node": ">=18.0.0" 6807 + } 6808 + }, 6809 + "node_modules/eventsource-parser": { 6810 + "version": "3.0.6", 6811 + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", 6812 + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", 6813 + "dev": true, 6814 + "license": "MIT", 6815 + "engines": { 6816 + "node": ">=18.0.0" 6817 + } 6818 + }, 6819 + "node_modules/execa": { 6820 + "version": "9.6.1", 6821 + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", 6822 + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", 6823 + "dev": true, 6824 + "license": "MIT", 6825 + "dependencies": { 6826 + "@sindresorhus/merge-streams": "^4.0.0", 6827 + "cross-spawn": "^7.0.6", 6828 + "figures": "^6.1.0", 6829 + "get-stream": "^9.0.0", 6830 + "human-signals": "^8.0.1", 6831 + "is-plain-obj": "^4.1.0", 6832 + "is-stream": "^4.0.1", 6833 + "npm-run-path": "^6.0.0", 6834 + "pretty-ms": "^9.2.0", 6835 + "signal-exit": "^4.1.0", 6836 + "strip-final-newline": "^4.0.0", 6837 + "yoctocolors": "^2.1.1" 6838 + }, 6839 + "engines": { 6840 + "node": "^18.19.0 || >=20.5.0" 6841 + }, 6842 + "funding": { 6843 + "url": "https://github.com/sindresorhus/execa?sponsor=1" 6844 + } 6845 + }, 6846 + "node_modules/express": { 6847 + "version": "5.2.1", 6848 + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", 6849 + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", 6850 + "dev": true, 6851 + "license": "MIT", 6852 + "peer": true, 6853 + "dependencies": { 6854 + "accepts": "^2.0.0", 6855 + "body-parser": "^2.2.1", 6856 + "content-disposition": "^1.0.0", 6857 + "content-type": "^1.0.5", 6858 + "cookie": "^0.7.1", 6859 + "cookie-signature": "^1.2.1", 6860 + "debug": "^4.4.0", 6861 + "depd": "^2.0.0", 6862 + "encodeurl": "^2.0.0", 6863 + "escape-html": "^1.0.3", 6864 + "etag": "^1.8.1", 6865 + "finalhandler": "^2.1.0", 6866 + "fresh": "^2.0.0", 6867 + "http-errors": "^2.0.0", 6868 + "merge-descriptors": "^2.0.0", 6869 + "mime-types": "^3.0.0", 6870 + "on-finished": "^2.4.1", 6871 + "once": "^1.4.0", 6872 + "parseurl": "^1.3.3", 6873 + "proxy-addr": "^2.0.7", 6874 + "qs": "^6.14.0", 6875 + "range-parser": "^1.2.1", 6876 + "router": "^2.2.0", 6877 + "send": "^1.1.0", 6878 + "serve-static": "^2.2.0", 6879 + "statuses": "^2.0.1", 6880 + "type-is": "^2.0.1", 6881 + "vary": "^1.1.2" 6882 + }, 6883 + "engines": { 6884 + "node": ">= 18" 6885 + }, 6886 + "funding": { 6887 + "type": "opencollective", 6888 + "url": "https://opencollective.com/express" 6889 + } 6890 + }, 6891 + "node_modules/express-rate-limit": { 6892 + "version": "8.2.1", 6893 + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz", 6894 + "integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==", 6895 + "dev": true, 6896 + "license": "MIT", 6897 + "dependencies": { 6898 + "ip-address": "10.0.1" 6899 + }, 6900 + "engines": { 6901 + "node": ">= 16" 6902 + }, 6903 + "funding": { 6904 + "url": "https://github.com/sponsors/express-rate-limit" 6905 + }, 6906 + "peerDependencies": { 6907 + "express": ">= 4.11" 6908 + } 6909 + }, 6910 + "node_modules/fast-deep-equal": { 6911 + "version": "3.1.3", 6912 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 6913 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 6914 + "dev": true, 6915 + "license": "MIT" 6916 + }, 6917 + "node_modules/fast-equals": { 6918 + "version": "5.4.0", 6919 + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.4.0.tgz", 6920 + "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==", 6921 + "license": "MIT", 6922 + "engines": { 6923 + "node": ">=6.0.0" 6924 + } 6925 + }, 6926 + "node_modules/fast-glob": { 6927 + "version": "3.3.1", 6928 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", 6929 + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", 6930 + "dev": true, 6931 + "license": "MIT", 6932 + "dependencies": { 6933 + "@nodelib/fs.stat": "^2.0.2", 6934 + "@nodelib/fs.walk": "^1.2.3", 6935 + "glob-parent": "^5.1.2", 6936 + "merge2": "^1.3.0", 6937 + "micromatch": "^4.0.4" 6938 + }, 6939 + "engines": { 6940 + "node": ">=8.6.0" 6941 + } 6942 + }, 6943 + "node_modules/fast-glob/node_modules/glob-parent": { 6944 + "version": "5.1.2", 6945 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 6946 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 6947 + "dev": true, 6948 + "license": "ISC", 6949 + "dependencies": { 6950 + "is-glob": "^4.0.1" 6951 + }, 6952 + "engines": { 6953 + "node": ">= 6" 6954 + } 6955 + }, 6956 + "node_modules/fast-json-stable-stringify": { 6957 + "version": "2.1.0", 6958 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 6959 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 6960 + "dev": true, 6961 + "license": "MIT" 6962 + }, 6963 + "node_modules/fast-levenshtein": { 6964 + "version": "2.0.6", 6965 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 6966 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 6967 + "dev": true, 6968 + "license": "MIT" 6969 + }, 6970 + "node_modules/fast-uri": { 6971 + "version": "3.1.0", 6972 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", 6973 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", 6974 + "dev": true, 6975 + "funding": [ 6976 + { 6977 + "type": "github", 6978 + "url": "https://github.com/sponsors/fastify" 6979 + }, 6980 + { 6981 + "type": "opencollective", 6982 + "url": "https://opencollective.com/fastify" 6983 + } 6984 + ], 6985 + "license": "BSD-3-Clause" 6986 + }, 6987 + "node_modules/fastq": { 6988 + "version": "1.20.1", 6989 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", 6990 + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", 6991 + "dev": true, 6992 + "license": "ISC", 6993 + "dependencies": { 6994 + "reusify": "^1.0.4" 6995 + } 6996 + }, 6997 + "node_modules/fetch-blob": { 6998 + "version": "3.2.0", 6999 + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 7000 + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 7001 + "dev": true, 7002 + "funding": [ 7003 + { 7004 + "type": "github", 7005 + "url": "https://github.com/sponsors/jimmywarting" 7006 + }, 7007 + { 7008 + "type": "paypal", 7009 + "url": "https://paypal.me/jimmywarting" 7010 + } 7011 + ], 7012 + "license": "MIT", 7013 + "dependencies": { 7014 + "node-domexception": "^1.0.0", 7015 + "web-streams-polyfill": "^3.0.3" 7016 + }, 7017 + "engines": { 7018 + "node": "^12.20 || >= 14.13" 7019 + } 7020 + }, 7021 + "node_modules/figures": { 7022 + "version": "6.1.0", 7023 + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", 7024 + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", 7025 + "dev": true, 7026 + "license": "MIT", 7027 + "dependencies": { 7028 + "is-unicode-supported": "^2.0.0" 7029 + }, 7030 + "engines": { 7031 + "node": ">=18" 7032 + }, 7033 + "funding": { 7034 + "url": "https://github.com/sponsors/sindresorhus" 7035 + } 7036 + }, 7037 + "node_modules/file-entry-cache": { 7038 + "version": "8.0.0", 7039 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 7040 + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 7041 + "dev": true, 7042 + "license": "MIT", 7043 + "dependencies": { 7044 + "flat-cache": "^4.0.0" 7045 + }, 7046 + "engines": { 7047 + "node": ">=16.0.0" 7048 + } 7049 + }, 7050 + "node_modules/fill-range": { 7051 + "version": "7.1.1", 7052 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 7053 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 7054 + "dev": true, 7055 + "license": "MIT", 7056 + "dependencies": { 7057 + "to-regex-range": "^5.0.1" 7058 + }, 7059 + "engines": { 7060 + "node": ">=8" 7061 + } 7062 + }, 7063 + "node_modules/finalhandler": { 7064 + "version": "2.1.1", 7065 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", 7066 + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", 7067 + "dev": true, 7068 + "license": "MIT", 7069 + "dependencies": { 7070 + "debug": "^4.4.0", 7071 + "encodeurl": "^2.0.0", 7072 + "escape-html": "^1.0.3", 7073 + "on-finished": "^2.4.1", 7074 + "parseurl": "^1.3.3", 7075 + "statuses": "^2.0.1" 7076 + }, 7077 + "engines": { 7078 + "node": ">= 18.0.0" 7079 + }, 7080 + "funding": { 7081 + "type": "opencollective", 7082 + "url": "https://opencollective.com/express" 7083 + } 7084 + }, 7085 + "node_modules/find-up": { 7086 + "version": "5.0.0", 7087 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 7088 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 7089 + "dev": true, 7090 + "license": "MIT", 7091 + "dependencies": { 7092 + "locate-path": "^6.0.0", 7093 + "path-exists": "^4.0.0" 7094 + }, 7095 + "engines": { 7096 + "node": ">=10" 7097 + }, 7098 + "funding": { 7099 + "url": "https://github.com/sponsors/sindresorhus" 7100 + } 7101 + }, 7102 + "node_modules/flat-cache": { 7103 + "version": "4.0.1", 7104 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 7105 + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 7106 + "dev": true, 7107 + "license": "MIT", 7108 + "dependencies": { 7109 + "flatted": "^3.2.9", 7110 + "keyv": "^4.5.4" 7111 + }, 7112 + "engines": { 7113 + "node": ">=16" 7114 + } 7115 + }, 7116 + "node_modules/flatted": { 7117 + "version": "3.3.3", 7118 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", 7119 + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", 7120 + "dev": true, 7121 + "license": "ISC" 7122 + }, 7123 + "node_modules/for-each": { 7124 + "version": "0.3.5", 7125 + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", 7126 + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", 7127 + "dev": true, 7128 + "license": "MIT", 7129 + "dependencies": { 7130 + "is-callable": "^1.2.7" 7131 + }, 7132 + "engines": { 7133 + "node": ">= 0.4" 7134 + }, 7135 + "funding": { 7136 + "url": "https://github.com/sponsors/ljharb" 7137 + } 7138 + }, 7139 + "node_modules/formdata-polyfill": { 7140 + "version": "4.0.10", 7141 + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 7142 + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 7143 + "dev": true, 7144 + "license": "MIT", 7145 + "dependencies": { 7146 + "fetch-blob": "^3.1.2" 7147 + }, 7148 + "engines": { 7149 + "node": ">=12.20.0" 7150 + } 7151 + }, 7152 + "node_modules/forwarded": { 7153 + "version": "0.2.0", 7154 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 7155 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 7156 + "dev": true, 7157 + "license": "MIT", 7158 + "engines": { 7159 + "node": ">= 0.6" 7160 + } 7161 + }, 7162 + "node_modules/fresh": { 7163 + "version": "2.0.0", 7164 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", 7165 + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", 7166 + "dev": true, 7167 + "license": "MIT", 7168 + "engines": { 7169 + "node": ">= 0.8" 7170 + } 7171 + }, 7172 + "node_modules/fs-extra": { 7173 + "version": "11.3.3", 7174 + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", 7175 + "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", 7176 + "dev": true, 7177 + "license": "MIT", 7178 + "dependencies": { 7179 + "graceful-fs": "^4.2.0", 7180 + "jsonfile": "^6.0.1", 7181 + "universalify": "^2.0.0" 7182 + }, 7183 + "engines": { 7184 + "node": ">=14.14" 7185 + } 7186 + }, 7187 + "node_modules/function-bind": { 7188 + "version": "1.1.2", 7189 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 7190 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 7191 + "dev": true, 7192 + "license": "MIT", 7193 + "funding": { 7194 + "url": "https://github.com/sponsors/ljharb" 7195 + } 7196 + }, 7197 + "node_modules/function.prototype.name": { 7198 + "version": "1.1.8", 7199 + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", 7200 + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", 7201 + "dev": true, 7202 + "license": "MIT", 7203 + "dependencies": { 7204 + "call-bind": "^1.0.8", 7205 + "call-bound": "^1.0.3", 7206 + "define-properties": "^1.2.1", 7207 + "functions-have-names": "^1.2.3", 7208 + "hasown": "^2.0.2", 7209 + "is-callable": "^1.2.7" 7210 + }, 7211 + "engines": { 7212 + "node": ">= 0.4" 7213 + }, 7214 + "funding": { 7215 + "url": "https://github.com/sponsors/ljharb" 7216 + } 7217 + }, 7218 + "node_modules/functions-have-names": { 7219 + "version": "1.2.3", 7220 + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 7221 + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 7222 + "dev": true, 7223 + "license": "MIT", 7224 + "funding": { 7225 + "url": "https://github.com/sponsors/ljharb" 7226 + } 7227 + }, 7228 + "node_modules/fuzzysort": { 7229 + "version": "3.1.0", 7230 + "resolved": "https://registry.npmjs.org/fuzzysort/-/fuzzysort-3.1.0.tgz", 7231 + "integrity": "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==", 7232 + "dev": true, 7233 + "license": "MIT" 7234 + }, 7235 + "node_modules/fzf": { 7236 + "version": "0.5.2", 7237 + "resolved": "https://registry.npmjs.org/fzf/-/fzf-0.5.2.tgz", 7238 + "integrity": "sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==", 7239 + "dev": true, 7240 + "license": "BSD-3-Clause" 7241 + }, 7242 + "node_modules/generator-function": { 7243 + "version": "2.0.1", 7244 + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", 7245 + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", 7246 + "dev": true, 7247 + "license": "MIT", 7248 + "engines": { 7249 + "node": ">= 0.4" 7250 + } 7251 + }, 7252 + "node_modules/gensync": { 7253 + "version": "1.0.0-beta.2", 7254 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 7255 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 7256 + "dev": true, 7257 + "license": "MIT", 7258 + "engines": { 7259 + "node": ">=6.9.0" 7260 + } 7261 + }, 7262 + "node_modules/get-caller-file": { 7263 + "version": "2.0.5", 7264 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 7265 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 7266 + "dev": true, 7267 + "license": "ISC", 7268 + "engines": { 7269 + "node": "6.* || 8.* || >= 10.*" 7270 + } 7271 + }, 7272 + "node_modules/get-east-asian-width": { 7273 + "version": "1.4.0", 7274 + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", 7275 + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", 7276 + "dev": true, 7277 + "license": "MIT", 7278 + "engines": { 7279 + "node": ">=18" 7280 + }, 7281 + "funding": { 7282 + "url": "https://github.com/sponsors/sindresorhus" 7283 + } 7284 + }, 7285 + "node_modules/get-intrinsic": { 7286 + "version": "1.3.0", 7287 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", 7288 + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", 7289 + "dev": true, 7290 + "license": "MIT", 7291 + "dependencies": { 7292 + "call-bind-apply-helpers": "^1.0.2", 7293 + "es-define-property": "^1.0.1", 7294 + "es-errors": "^1.3.0", 7295 + "es-object-atoms": "^1.1.1", 7296 + "function-bind": "^1.1.2", 7297 + "get-proto": "^1.0.1", 7298 + "gopd": "^1.2.0", 7299 + "has-symbols": "^1.1.0", 7300 + "hasown": "^2.0.2", 7301 + "math-intrinsics": "^1.1.0" 7302 + }, 7303 + "engines": { 7304 + "node": ">= 0.4" 7305 + }, 7306 + "funding": { 7307 + "url": "https://github.com/sponsors/ljharb" 7308 + } 7309 + }, 7310 + "node_modules/get-nonce": { 7311 + "version": "1.0.1", 7312 + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", 7313 + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", 7314 + "license": "MIT", 7315 + "engines": { 7316 + "node": ">=6" 7317 + } 7318 + }, 7319 + "node_modules/get-own-enumerable-keys": { 7320 + "version": "1.0.0", 7321 + "resolved": "https://registry.npmjs.org/get-own-enumerable-keys/-/get-own-enumerable-keys-1.0.0.tgz", 7322 + "integrity": "sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==", 7323 + "dev": true, 7324 + "license": "MIT", 7325 + "engines": { 7326 + "node": ">=14.16" 7327 + }, 7328 + "funding": { 7329 + "url": "https://github.com/sponsors/sindresorhus" 7330 + } 7331 + }, 7332 + "node_modules/get-proto": { 7333 + "version": "1.0.1", 7334 + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", 7335 + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", 7336 + "dev": true, 7337 + "license": "MIT", 7338 + "dependencies": { 7339 + "dunder-proto": "^1.0.1", 7340 + "es-object-atoms": "^1.0.0" 7341 + }, 7342 + "engines": { 7343 + "node": ">= 0.4" 7344 + } 7345 + }, 7346 + "node_modules/get-stream": { 7347 + "version": "9.0.1", 7348 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", 7349 + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", 7350 + "dev": true, 7351 + "license": "MIT", 7352 + "dependencies": { 7353 + "@sec-ant/readable-stream": "^0.4.1", 7354 + "is-stream": "^4.0.1" 7355 + }, 7356 + "engines": { 7357 + "node": ">=18" 7358 + }, 7359 + "funding": { 7360 + "url": "https://github.com/sponsors/sindresorhus" 7361 + } 7362 + }, 7363 + "node_modules/get-symbol-description": { 7364 + "version": "1.1.0", 7365 + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", 7366 + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", 7367 + "dev": true, 7368 + "license": "MIT", 7369 + "dependencies": { 7370 + "call-bound": "^1.0.3", 7371 + "es-errors": "^1.3.0", 7372 + "get-intrinsic": "^1.2.6" 7373 + }, 7374 + "engines": { 7375 + "node": ">= 0.4" 7376 + }, 7377 + "funding": { 7378 + "url": "https://github.com/sponsors/ljharb" 7379 + } 7380 + }, 7381 + "node_modules/get-tsconfig": { 7382 + "version": "4.13.6", 7383 + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", 7384 + "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", 7385 + "dev": true, 7386 + "license": "MIT", 7387 + "dependencies": { 7388 + "resolve-pkg-maps": "^1.0.0" 7389 + }, 7390 + "funding": { 7391 + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 7392 + } 7393 + }, 7394 + "node_modules/glob-parent": { 7395 + "version": "6.0.2", 7396 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 7397 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 7398 + "dev": true, 7399 + "license": "ISC", 7400 + "dependencies": { 7401 + "is-glob": "^4.0.3" 7402 + }, 7403 + "engines": { 7404 + "node": ">=10.13.0" 7405 + } 7406 + }, 7407 + "node_modules/globals": { 7408 + "version": "14.0.0", 7409 + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 7410 + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 7411 + "dev": true, 7412 + "license": "MIT", 7413 + "engines": { 7414 + "node": ">=18" 7415 + }, 7416 + "funding": { 7417 + "url": "https://github.com/sponsors/sindresorhus" 7418 + } 7419 + }, 7420 + "node_modules/globalthis": { 7421 + "version": "1.0.4", 7422 + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", 7423 + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", 7424 + "dev": true, 7425 + "license": "MIT", 7426 + "dependencies": { 7427 + "define-properties": "^1.2.1", 7428 + "gopd": "^1.0.1" 7429 + }, 7430 + "engines": { 7431 + "node": ">= 0.4" 7432 + }, 7433 + "funding": { 7434 + "url": "https://github.com/sponsors/ljharb" 7435 + } 7436 + }, 7437 + "node_modules/gopd": { 7438 + "version": "1.2.0", 7439 + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", 7440 + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", 7441 + "dev": true, 7442 + "license": "MIT", 7443 + "engines": { 7444 + "node": ">= 0.4" 7445 + }, 7446 + "funding": { 7447 + "url": "https://github.com/sponsors/ljharb" 7448 + } 7449 + }, 7450 + "node_modules/graceful-fs": { 7451 + "version": "4.2.11", 7452 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 7453 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 7454 + "dev": true, 7455 + "license": "ISC" 7456 + }, 7457 + "node_modules/graphql": { 7458 + "version": "16.12.0", 7459 + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.12.0.tgz", 7460 + "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==", 7461 + "dev": true, 7462 + "license": "MIT", 7463 + "engines": { 7464 + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" 7465 + } 7466 + }, 7467 + "node_modules/has-bigints": { 7468 + "version": "1.1.0", 7469 + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", 7470 + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", 7471 + "dev": true, 7472 + "license": "MIT", 7473 + "engines": { 7474 + "node": ">= 0.4" 7475 + }, 7476 + "funding": { 7477 + "url": "https://github.com/sponsors/ljharb" 7478 + } 7479 + }, 7480 + "node_modules/has-flag": { 7481 + "version": "4.0.0", 7482 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 7483 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 7484 + "dev": true, 7485 + "license": "MIT", 7486 + "engines": { 7487 + "node": ">=8" 7488 + } 7489 + }, 7490 + "node_modules/has-property-descriptors": { 7491 + "version": "1.0.2", 7492 + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 7493 + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 7494 + "dev": true, 7495 + "license": "MIT", 7496 + "dependencies": { 7497 + "es-define-property": "^1.0.0" 7498 + }, 7499 + "funding": { 7500 + "url": "https://github.com/sponsors/ljharb" 7501 + } 7502 + }, 7503 + "node_modules/has-proto": { 7504 + "version": "1.2.0", 7505 + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", 7506 + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", 7507 + "dev": true, 7508 + "license": "MIT", 7509 + "dependencies": { 7510 + "dunder-proto": "^1.0.0" 7511 + }, 7512 + "engines": { 7513 + "node": ">= 0.4" 7514 + }, 7515 + "funding": { 7516 + "url": "https://github.com/sponsors/ljharb" 7517 + } 7518 + }, 7519 + "node_modules/has-symbols": { 7520 + "version": "1.1.0", 7521 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", 7522 + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", 7523 + "dev": true, 7524 + "license": "MIT", 7525 + "engines": { 7526 + "node": ">= 0.4" 7527 + }, 7528 + "funding": { 7529 + "url": "https://github.com/sponsors/ljharb" 7530 + } 7531 + }, 7532 + "node_modules/has-tostringtag": { 7533 + "version": "1.0.2", 7534 + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", 7535 + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", 7536 + "dev": true, 7537 + "license": "MIT", 7538 + "dependencies": { 7539 + "has-symbols": "^1.0.3" 7540 + }, 7541 + "engines": { 7542 + "node": ">= 0.4" 7543 + }, 7544 + "funding": { 7545 + "url": "https://github.com/sponsors/ljharb" 7546 + } 7547 + }, 7548 + "node_modules/hasown": { 7549 + "version": "2.0.2", 7550 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 7551 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 7552 + "dev": true, 7553 + "license": "MIT", 7554 + "dependencies": { 7555 + "function-bind": "^1.1.2" 7556 + }, 7557 + "engines": { 7558 + "node": ">= 0.4" 7559 + } 7560 + }, 7561 + "node_modules/headers-polyfill": { 7562 + "version": "4.0.3", 7563 + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", 7564 + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", 7565 + "dev": true, 7566 + "license": "MIT" 7567 + }, 7568 + "node_modules/hermes-estree": { 7569 + "version": "0.25.1", 7570 + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", 7571 + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", 7572 + "dev": true, 7573 + "license": "MIT" 7574 + }, 7575 + "node_modules/hermes-parser": { 7576 + "version": "0.25.1", 7577 + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", 7578 + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", 7579 + "dev": true, 7580 + "license": "MIT", 7581 + "dependencies": { 7582 + "hermes-estree": "0.25.1" 7583 + } 7584 + }, 7585 + "node_modules/hono": { 7586 + "version": "4.11.9", 7587 + "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.9.tgz", 7588 + "integrity": "sha512-Eaw2YTGM6WOxA6CXbckaEvslr2Ne4NFsKrvc0v97JD5awbmeBLO5w9Ho9L9kmKonrwF9RJlW6BxT1PVv/agBHQ==", 7589 + "dev": true, 7590 + "license": "MIT", 7591 + "peer": true, 7592 + "engines": { 7593 + "node": ">=16.9.0" 7594 + } 7595 + }, 7596 + "node_modules/http-errors": { 7597 + "version": "2.0.1", 7598 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", 7599 + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", 7600 + "dev": true, 7601 + "license": "MIT", 7602 + "dependencies": { 7603 + "depd": "~2.0.0", 7604 + "inherits": "~2.0.4", 7605 + "setprototypeof": "~1.2.0", 7606 + "statuses": "~2.0.2", 7607 + "toidentifier": "~1.0.1" 7608 + }, 7609 + "engines": { 7610 + "node": ">= 0.8" 7611 + }, 7612 + "funding": { 7613 + "type": "opencollective", 7614 + "url": "https://opencollective.com/express" 7615 + } 7616 + }, 7617 + "node_modules/https-proxy-agent": { 7618 + "version": "7.0.6", 7619 + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 7620 + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 7621 + "dev": true, 7622 + "license": "MIT", 7623 + "dependencies": { 7624 + "agent-base": "^7.1.2", 7625 + "debug": "4" 7626 + }, 7627 + "engines": { 7628 + "node": ">= 14" 7629 + } 7630 + }, 7631 + "node_modules/human-signals": { 7632 + "version": "8.0.1", 7633 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", 7634 + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", 7635 + "dev": true, 7636 + "license": "Apache-2.0", 7637 + "engines": { 7638 + "node": ">=18.18.0" 7639 + } 7640 + }, 7641 + "node_modules/iconv-lite": { 7642 + "version": "0.7.2", 7643 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", 7644 + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", 7645 + "dev": true, 7646 + "license": "MIT", 7647 + "dependencies": { 7648 + "safer-buffer": ">= 2.1.2 < 3.0.0" 7649 + }, 7650 + "engines": { 7651 + "node": ">=0.10.0" 7652 + }, 7653 + "funding": { 7654 + "type": "opencollective", 7655 + "url": "https://opencollective.com/express" 7656 + } 7657 + }, 7658 + "node_modules/ignore": { 7659 + "version": "5.3.2", 7660 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 7661 + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 7662 + "dev": true, 7663 + "license": "MIT", 7664 + "engines": { 7665 + "node": ">= 4" 7666 + } 7667 + }, 7668 + "node_modules/import-fresh": { 7669 + "version": "3.3.1", 7670 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 7671 + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 7672 + "dev": true, 7673 + "license": "MIT", 7674 + "dependencies": { 7675 + "parent-module": "^1.0.0", 7676 + "resolve-from": "^4.0.0" 7677 + }, 7678 + "engines": { 7679 + "node": ">=6" 7680 + }, 7681 + "funding": { 7682 + "url": "https://github.com/sponsors/sindresorhus" 7683 + } 7684 + }, 7685 + "node_modules/imurmurhash": { 7686 + "version": "0.1.4", 7687 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 7688 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 7689 + "dev": true, 7690 + "license": "MIT", 7691 + "engines": { 7692 + "node": ">=0.8.19" 7693 + } 7694 + }, 7695 + "node_modules/inherits": { 7696 + "version": "2.0.4", 7697 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 7698 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 7699 + "dev": true, 7700 + "license": "ISC" 7701 + }, 7702 + "node_modules/internal-slot": { 7703 + "version": "1.1.0", 7704 + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", 7705 + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", 7706 + "dev": true, 7707 + "license": "MIT", 7708 + "dependencies": { 7709 + "es-errors": "^1.3.0", 7710 + "hasown": "^2.0.2", 7711 + "side-channel": "^1.1.0" 7712 + }, 7713 + "engines": { 7714 + "node": ">= 0.4" 7715 + } 7716 + }, 7717 + "node_modules/internmap": { 7718 + "version": "2.0.3", 7719 + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", 7720 + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", 7721 + "license": "ISC", 7722 + "engines": { 7723 + "node": ">=12" 7724 + } 7725 + }, 7726 + "node_modules/ip-address": { 7727 + "version": "10.0.1", 7728 + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", 7729 + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", 7730 + "dev": true, 7731 + "license": "MIT", 7732 + "engines": { 7733 + "node": ">= 12" 7734 + } 7735 + }, 7736 + "node_modules/ipaddr.js": { 7737 + "version": "1.9.1", 7738 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 7739 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 7740 + "dev": true, 7741 + "license": "MIT", 7742 + "engines": { 7743 + "node": ">= 0.10" 7744 + } 7745 + }, 7746 + "node_modules/is-array-buffer": { 7747 + "version": "3.0.5", 7748 + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", 7749 + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", 7750 + "dev": true, 7751 + "license": "MIT", 7752 + "dependencies": { 7753 + "call-bind": "^1.0.8", 7754 + "call-bound": "^1.0.3", 7755 + "get-intrinsic": "^1.2.6" 7756 + }, 7757 + "engines": { 7758 + "node": ">= 0.4" 7759 + }, 7760 + "funding": { 7761 + "url": "https://github.com/sponsors/ljharb" 7762 + } 7763 + }, 7764 + "node_modules/is-arrayish": { 7765 + "version": "0.2.1", 7766 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 7767 + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 7768 + "dev": true, 7769 + "license": "MIT" 7770 + }, 7771 + "node_modules/is-async-function": { 7772 + "version": "2.1.1", 7773 + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", 7774 + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", 7775 + "dev": true, 7776 + "license": "MIT", 7777 + "dependencies": { 7778 + "async-function": "^1.0.0", 7779 + "call-bound": "^1.0.3", 7780 + "get-proto": "^1.0.1", 7781 + "has-tostringtag": "^1.0.2", 7782 + "safe-regex-test": "^1.1.0" 7783 + }, 7784 + "engines": { 7785 + "node": ">= 0.4" 7786 + }, 7787 + "funding": { 7788 + "url": "https://github.com/sponsors/ljharb" 7789 + } 7790 + }, 7791 + "node_modules/is-bigint": { 7792 + "version": "1.1.0", 7793 + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", 7794 + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", 7795 + "dev": true, 7796 + "license": "MIT", 7797 + "dependencies": { 7798 + "has-bigints": "^1.0.2" 7799 + }, 7800 + "engines": { 7801 + "node": ">= 0.4" 7802 + }, 7803 + "funding": { 7804 + "url": "https://github.com/sponsors/ljharb" 7805 + } 7806 + }, 7807 + "node_modules/is-boolean-object": { 7808 + "version": "1.2.2", 7809 + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", 7810 + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", 7811 + "dev": true, 7812 + "license": "MIT", 7813 + "dependencies": { 7814 + "call-bound": "^1.0.3", 7815 + "has-tostringtag": "^1.0.2" 7816 + }, 7817 + "engines": { 7818 + "node": ">= 0.4" 7819 + }, 7820 + "funding": { 7821 + "url": "https://github.com/sponsors/ljharb" 7822 + } 7823 + }, 7824 + "node_modules/is-bun-module": { 7825 + "version": "2.0.0", 7826 + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", 7827 + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", 7828 + "dev": true, 7829 + "license": "MIT", 7830 + "dependencies": { 7831 + "semver": "^7.7.1" 7832 + } 7833 + }, 7834 + "node_modules/is-bun-module/node_modules/semver": { 7835 + "version": "7.7.4", 7836 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 7837 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 7838 + "dev": true, 7839 + "license": "ISC", 7840 + "bin": { 7841 + "semver": "bin/semver.js" 7842 + }, 7843 + "engines": { 7844 + "node": ">=10" 7845 + } 7846 + }, 7847 + "node_modules/is-callable": { 7848 + "version": "1.2.7", 7849 + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 7850 + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 7851 + "dev": true, 7852 + "license": "MIT", 7853 + "engines": { 7854 + "node": ">= 0.4" 7855 + }, 7856 + "funding": { 7857 + "url": "https://github.com/sponsors/ljharb" 7858 + } 7859 + }, 7860 + "node_modules/is-core-module": { 7861 + "version": "2.16.1", 7862 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 7863 + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 7864 + "dev": true, 7865 + "license": "MIT", 7866 + "dependencies": { 7867 + "hasown": "^2.0.2" 7868 + }, 7869 + "engines": { 7870 + "node": ">= 0.4" 7871 + }, 7872 + "funding": { 7873 + "url": "https://github.com/sponsors/ljharb" 7874 + } 7875 + }, 7876 + "node_modules/is-data-view": { 7877 + "version": "1.0.2", 7878 + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", 7879 + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", 7880 + "dev": true, 7881 + "license": "MIT", 7882 + "dependencies": { 7883 + "call-bound": "^1.0.2", 7884 + "get-intrinsic": "^1.2.6", 7885 + "is-typed-array": "^1.1.13" 7886 + }, 7887 + "engines": { 7888 + "node": ">= 0.4" 7889 + }, 7890 + "funding": { 7891 + "url": "https://github.com/sponsors/ljharb" 7892 + } 7893 + }, 7894 + "node_modules/is-date-object": { 7895 + "version": "1.1.0", 7896 + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", 7897 + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", 7898 + "dev": true, 7899 + "license": "MIT", 7900 + "dependencies": { 7901 + "call-bound": "^1.0.2", 7902 + "has-tostringtag": "^1.0.2" 7903 + }, 7904 + "engines": { 7905 + "node": ">= 0.4" 7906 + }, 7907 + "funding": { 7908 + "url": "https://github.com/sponsors/ljharb" 7909 + } 7910 + }, 7911 + "node_modules/is-docker": { 7912 + "version": "3.0.0", 7913 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 7914 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 7915 + "dev": true, 7916 + "license": "MIT", 7917 + "bin": { 7918 + "is-docker": "cli.js" 7919 + }, 7920 + "engines": { 7921 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 7922 + }, 7923 + "funding": { 7924 + "url": "https://github.com/sponsors/sindresorhus" 7925 + } 7926 + }, 7927 + "node_modules/is-extglob": { 7928 + "version": "2.1.1", 7929 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 7930 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 7931 + "dev": true, 7932 + "license": "MIT", 7933 + "engines": { 7934 + "node": ">=0.10.0" 7935 + } 7936 + }, 7937 + "node_modules/is-finalizationregistry": { 7938 + "version": "1.1.1", 7939 + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", 7940 + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", 7941 + "dev": true, 7942 + "license": "MIT", 7943 + "dependencies": { 7944 + "call-bound": "^1.0.3" 7945 + }, 7946 + "engines": { 7947 + "node": ">= 0.4" 7948 + }, 7949 + "funding": { 7950 + "url": "https://github.com/sponsors/ljharb" 7951 + } 7952 + }, 7953 + "node_modules/is-fullwidth-code-point": { 7954 + "version": "3.0.0", 7955 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 7956 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 7957 + "dev": true, 7958 + "license": "MIT", 7959 + "engines": { 7960 + "node": ">=8" 7961 + } 7962 + }, 7963 + "node_modules/is-generator-function": { 7964 + "version": "1.1.2", 7965 + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", 7966 + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", 7967 + "dev": true, 7968 + "license": "MIT", 7969 + "dependencies": { 7970 + "call-bound": "^1.0.4", 7971 + "generator-function": "^2.0.0", 7972 + "get-proto": "^1.0.1", 7973 + "has-tostringtag": "^1.0.2", 7974 + "safe-regex-test": "^1.1.0" 7975 + }, 7976 + "engines": { 7977 + "node": ">= 0.4" 7978 + }, 7979 + "funding": { 7980 + "url": "https://github.com/sponsors/ljharb" 7981 + } 7982 + }, 7983 + "node_modules/is-glob": { 7984 + "version": "4.0.3", 7985 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 7986 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 7987 + "dev": true, 7988 + "license": "MIT", 7989 + "dependencies": { 7990 + "is-extglob": "^2.1.1" 7991 + }, 7992 + "engines": { 7993 + "node": ">=0.10.0" 7994 + } 7995 + }, 7996 + "node_modules/is-in-ssh": { 7997 + "version": "1.0.0", 7998 + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", 7999 + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", 8000 + "dev": true, 8001 + "license": "MIT", 8002 + "engines": { 8003 + "node": ">=20" 8004 + }, 8005 + "funding": { 8006 + "url": "https://github.com/sponsors/sindresorhus" 8007 + } 8008 + }, 8009 + "node_modules/is-inside-container": { 8010 + "version": "1.0.0", 8011 + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 8012 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 8013 + "dev": true, 8014 + "license": "MIT", 8015 + "dependencies": { 8016 + "is-docker": "^3.0.0" 8017 + }, 8018 + "bin": { 8019 + "is-inside-container": "cli.js" 8020 + }, 8021 + "engines": { 8022 + "node": ">=14.16" 8023 + }, 8024 + "funding": { 8025 + "url": "https://github.com/sponsors/sindresorhus" 8026 + } 8027 + }, 8028 + "node_modules/is-interactive": { 8029 + "version": "2.0.0", 8030 + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", 8031 + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", 8032 + "dev": true, 8033 + "license": "MIT", 8034 + "engines": { 8035 + "node": ">=12" 8036 + }, 8037 + "funding": { 8038 + "url": "https://github.com/sponsors/sindresorhus" 8039 + } 8040 + }, 8041 + "node_modules/is-map": { 8042 + "version": "2.0.3", 8043 + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", 8044 + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", 8045 + "dev": true, 8046 + "license": "MIT", 8047 + "engines": { 8048 + "node": ">= 0.4" 8049 + }, 8050 + "funding": { 8051 + "url": "https://github.com/sponsors/ljharb" 8052 + } 8053 + }, 8054 + "node_modules/is-negative-zero": { 8055 + "version": "2.0.3", 8056 + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", 8057 + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", 8058 + "dev": true, 8059 + "license": "MIT", 8060 + "engines": { 8061 + "node": ">= 0.4" 8062 + }, 8063 + "funding": { 8064 + "url": "https://github.com/sponsors/ljharb" 8065 + } 8066 + }, 8067 + "node_modules/is-node-process": { 8068 + "version": "1.2.0", 8069 + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", 8070 + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", 8071 + "dev": true, 8072 + "license": "MIT" 8073 + }, 8074 + "node_modules/is-number": { 8075 + "version": "7.0.0", 8076 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 8077 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 8078 + "dev": true, 8079 + "license": "MIT", 8080 + "engines": { 8081 + "node": ">=0.12.0" 8082 + } 8083 + }, 8084 + "node_modules/is-number-object": { 8085 + "version": "1.1.1", 8086 + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", 8087 + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", 8088 + "dev": true, 8089 + "license": "MIT", 8090 + "dependencies": { 8091 + "call-bound": "^1.0.3", 8092 + "has-tostringtag": "^1.0.2" 8093 + }, 8094 + "engines": { 8095 + "node": ">= 0.4" 8096 + }, 8097 + "funding": { 8098 + "url": "https://github.com/sponsors/ljharb" 8099 + } 8100 + }, 8101 + "node_modules/is-obj": { 8102 + "version": "3.0.0", 8103 + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-3.0.0.tgz", 8104 + "integrity": "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==", 8105 + "dev": true, 8106 + "license": "MIT", 8107 + "engines": { 8108 + "node": ">=12" 8109 + }, 8110 + "funding": { 8111 + "url": "https://github.com/sponsors/sindresorhus" 8112 + } 8113 + }, 8114 + "node_modules/is-plain-obj": { 8115 + "version": "4.1.0", 8116 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 8117 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 8118 + "dev": true, 8119 + "license": "MIT", 8120 + "engines": { 8121 + "node": ">=12" 8122 + }, 8123 + "funding": { 8124 + "url": "https://github.com/sponsors/sindresorhus" 8125 + } 8126 + }, 8127 + "node_modules/is-promise": { 8128 + "version": "4.0.0", 8129 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", 8130 + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", 8131 + "dev": true, 8132 + "license": "MIT" 8133 + }, 8134 + "node_modules/is-regex": { 8135 + "version": "1.2.1", 8136 + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", 8137 + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", 8138 + "dev": true, 8139 + "license": "MIT", 8140 + "dependencies": { 8141 + "call-bound": "^1.0.2", 8142 + "gopd": "^1.2.0", 8143 + "has-tostringtag": "^1.0.2", 8144 + "hasown": "^2.0.2" 8145 + }, 8146 + "engines": { 8147 + "node": ">= 0.4" 8148 + }, 8149 + "funding": { 8150 + "url": "https://github.com/sponsors/ljharb" 8151 + } 8152 + }, 8153 + "node_modules/is-regexp": { 8154 + "version": "3.1.0", 8155 + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", 8156 + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", 8157 + "dev": true, 8158 + "license": "MIT", 8159 + "engines": { 8160 + "node": ">=12" 8161 + }, 8162 + "funding": { 8163 + "url": "https://github.com/sponsors/sindresorhus" 8164 + } 8165 + }, 8166 + "node_modules/is-set": { 8167 + "version": "2.0.3", 8168 + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", 8169 + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", 8170 + "dev": true, 8171 + "license": "MIT", 8172 + "engines": { 8173 + "node": ">= 0.4" 8174 + }, 8175 + "funding": { 8176 + "url": "https://github.com/sponsors/ljharb" 8177 + } 8178 + }, 8179 + "node_modules/is-shared-array-buffer": { 8180 + "version": "1.0.4", 8181 + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", 8182 + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", 8183 + "dev": true, 8184 + "license": "MIT", 8185 + "dependencies": { 8186 + "call-bound": "^1.0.3" 8187 + }, 8188 + "engines": { 8189 + "node": ">= 0.4" 8190 + }, 8191 + "funding": { 8192 + "url": "https://github.com/sponsors/ljharb" 8193 + } 8194 + }, 8195 + "node_modules/is-stream": { 8196 + "version": "4.0.1", 8197 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", 8198 + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", 8199 + "dev": true, 8200 + "license": "MIT", 8201 + "engines": { 8202 + "node": ">=18" 8203 + }, 8204 + "funding": { 8205 + "url": "https://github.com/sponsors/sindresorhus" 8206 + } 8207 + }, 8208 + "node_modules/is-string": { 8209 + "version": "1.1.1", 8210 + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", 8211 + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", 8212 + "dev": true, 8213 + "license": "MIT", 8214 + "dependencies": { 8215 + "call-bound": "^1.0.3", 8216 + "has-tostringtag": "^1.0.2" 8217 + }, 8218 + "engines": { 8219 + "node": ">= 0.4" 8220 + }, 8221 + "funding": { 8222 + "url": "https://github.com/sponsors/ljharb" 8223 + } 8224 + }, 8225 + "node_modules/is-symbol": { 8226 + "version": "1.1.1", 8227 + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", 8228 + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", 8229 + "dev": true, 8230 + "license": "MIT", 8231 + "dependencies": { 8232 + "call-bound": "^1.0.2", 8233 + "has-symbols": "^1.1.0", 8234 + "safe-regex-test": "^1.1.0" 8235 + }, 8236 + "engines": { 8237 + "node": ">= 0.4" 8238 + }, 8239 + "funding": { 8240 + "url": "https://github.com/sponsors/ljharb" 8241 + } 8242 + }, 8243 + "node_modules/is-typed-array": { 8244 + "version": "1.1.15", 8245 + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", 8246 + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", 8247 + "dev": true, 8248 + "license": "MIT", 8249 + "dependencies": { 8250 + "which-typed-array": "^1.1.16" 8251 + }, 8252 + "engines": { 8253 + "node": ">= 0.4" 8254 + }, 8255 + "funding": { 8256 + "url": "https://github.com/sponsors/ljharb" 8257 + } 8258 + }, 8259 + "node_modules/is-unicode-supported": { 8260 + "version": "2.1.0", 8261 + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", 8262 + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", 8263 + "dev": true, 8264 + "license": "MIT", 8265 + "engines": { 8266 + "node": ">=18" 8267 + }, 8268 + "funding": { 8269 + "url": "https://github.com/sponsors/sindresorhus" 8270 + } 8271 + }, 8272 + "node_modules/is-weakmap": { 8273 + "version": "2.0.2", 8274 + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", 8275 + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", 8276 + "dev": true, 8277 + "license": "MIT", 8278 + "engines": { 8279 + "node": ">= 0.4" 8280 + }, 8281 + "funding": { 8282 + "url": "https://github.com/sponsors/ljharb" 8283 + } 8284 + }, 8285 + "node_modules/is-weakref": { 8286 + "version": "1.1.1", 8287 + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", 8288 + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", 8289 + "dev": true, 8290 + "license": "MIT", 8291 + "dependencies": { 8292 + "call-bound": "^1.0.3" 8293 + }, 8294 + "engines": { 8295 + "node": ">= 0.4" 8296 + }, 8297 + "funding": { 8298 + "url": "https://github.com/sponsors/ljharb" 8299 + } 8300 + }, 8301 + "node_modules/is-weakset": { 8302 + "version": "2.0.4", 8303 + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", 8304 + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", 8305 + "dev": true, 8306 + "license": "MIT", 8307 + "dependencies": { 8308 + "call-bound": "^1.0.3", 8309 + "get-intrinsic": "^1.2.6" 8310 + }, 8311 + "engines": { 8312 + "node": ">= 0.4" 8313 + }, 8314 + "funding": { 8315 + "url": "https://github.com/sponsors/ljharb" 8316 + } 8317 + }, 8318 + "node_modules/is-wsl": { 8319 + "version": "3.1.0", 8320 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", 8321 + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", 8322 + "dev": true, 8323 + "license": "MIT", 8324 + "dependencies": { 8325 + "is-inside-container": "^1.0.0" 8326 + }, 8327 + "engines": { 8328 + "node": ">=16" 8329 + }, 8330 + "funding": { 8331 + "url": "https://github.com/sponsors/sindresorhus" 8332 + } 8333 + }, 8334 + "node_modules/isarray": { 8335 + "version": "2.0.5", 8336 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 8337 + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 8338 + "dev": true, 8339 + "license": "MIT" 8340 + }, 8341 + "node_modules/isexe": { 8342 + "version": "2.0.0", 8343 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 8344 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 8345 + "dev": true, 8346 + "license": "ISC" 8347 + }, 8348 + "node_modules/iterator.prototype": { 8349 + "version": "1.1.5", 8350 + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", 8351 + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", 8352 + "dev": true, 8353 + "license": "MIT", 8354 + "dependencies": { 8355 + "define-data-property": "^1.1.4", 8356 + "es-object-atoms": "^1.0.0", 8357 + "get-intrinsic": "^1.2.6", 8358 + "get-proto": "^1.0.0", 8359 + "has-symbols": "^1.1.0", 8360 + "set-function-name": "^2.0.2" 8361 + }, 8362 + "engines": { 8363 + "node": ">= 0.4" 8364 + } 8365 + }, 8366 + "node_modules/jackspeak": { 8367 + "version": "4.2.3", 8368 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", 8369 + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", 8370 + "dev": true, 8371 + "license": "BlueOak-1.0.0", 8372 + "dependencies": { 8373 + "@isaacs/cliui": "^9.0.0" 8374 + }, 8375 + "engines": { 8376 + "node": "20 || >=22" 8377 + }, 8378 + "funding": { 8379 + "url": "https://github.com/sponsors/isaacs" 8380 + } 8381 + }, 8382 + "node_modules/jiti": { 8383 + "version": "2.6.1", 8384 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", 8385 + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", 8386 + "dev": true, 8387 + "license": "MIT", 8388 + "bin": { 8389 + "jiti": "lib/jiti-cli.mjs" 8390 + } 8391 + }, 8392 + "node_modules/jose": { 8393 + "version": "6.1.3", 8394 + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz", 8395 + "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==", 8396 + "dev": true, 8397 + "license": "MIT", 8398 + "funding": { 8399 + "url": "https://github.com/sponsors/panva" 8400 + } 8401 + }, 8402 + "node_modules/js-tokens": { 8403 + "version": "4.0.0", 8404 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 8405 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 8406 + "license": "MIT" 8407 + }, 8408 + "node_modules/js-yaml": { 8409 + "version": "4.1.1", 8410 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 8411 + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 8412 + "dev": true, 8413 + "license": "MIT", 8414 + "dependencies": { 8415 + "argparse": "^2.0.1" 8416 + }, 8417 + "bin": { 8418 + "js-yaml": "bin/js-yaml.js" 8419 + } 8420 + }, 8421 + "node_modules/jsesc": { 8422 + "version": "3.1.0", 8423 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 8424 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 8425 + "dev": true, 8426 + "license": "MIT", 8427 + "bin": { 8428 + "jsesc": "bin/jsesc" 8429 + }, 8430 + "engines": { 8431 + "node": ">=6" 8432 + } 8433 + }, 8434 + "node_modules/json-buffer": { 8435 + "version": "3.0.1", 8436 + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 8437 + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 8438 + "dev": true, 8439 + "license": "MIT" 8440 + }, 8441 + "node_modules/json-parse-even-better-errors": { 8442 + "version": "2.3.1", 8443 + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 8444 + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 8445 + "dev": true, 8446 + "license": "MIT" 8447 + }, 8448 + "node_modules/json-schema-traverse": { 8449 + "version": "0.4.1", 8450 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 8451 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 8452 + "dev": true, 8453 + "license": "MIT" 8454 + }, 8455 + "node_modules/json-schema-typed": { 8456 + "version": "8.0.2", 8457 + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", 8458 + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", 8459 + "dev": true, 8460 + "license": "BSD-2-Clause" 8461 + }, 8462 + "node_modules/json-stable-stringify-without-jsonify": { 8463 + "version": "1.0.1", 8464 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 8465 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 8466 + "dev": true, 8467 + "license": "MIT" 8468 + }, 8469 + "node_modules/json5": { 8470 + "version": "2.2.3", 8471 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 8472 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 8473 + "dev": true, 8474 + "license": "MIT", 8475 + "bin": { 8476 + "json5": "lib/cli.js" 8477 + }, 8478 + "engines": { 8479 + "node": ">=6" 8480 + } 8481 + }, 8482 + "node_modules/jsonfile": { 8483 + "version": "6.2.0", 8484 + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", 8485 + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", 8486 + "dev": true, 8487 + "license": "MIT", 8488 + "dependencies": { 8489 + "universalify": "^2.0.0" 8490 + }, 8491 + "optionalDependencies": { 8492 + "graceful-fs": "^4.1.6" 8493 + } 8494 + }, 8495 + "node_modules/jsx-ast-utils": { 8496 + "version": "3.3.5", 8497 + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", 8498 + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", 8499 + "dev": true, 8500 + "license": "MIT", 8501 + "dependencies": { 8502 + "array-includes": "^3.1.6", 8503 + "array.prototype.flat": "^1.3.1", 8504 + "object.assign": "^4.1.4", 8505 + "object.values": "^1.1.6" 8506 + }, 8507 + "engines": { 8508 + "node": ">=4.0" 8509 + } 8510 + }, 8511 + "node_modules/keyv": { 8512 + "version": "4.5.4", 8513 + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 8514 + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 8515 + "dev": true, 8516 + "license": "MIT", 8517 + "dependencies": { 8518 + "json-buffer": "3.0.1" 8519 + } 8520 + }, 8521 + "node_modules/kleur": { 8522 + "version": "4.1.5", 8523 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 8524 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 8525 + "dev": true, 8526 + "license": "MIT", 8527 + "engines": { 8528 + "node": ">=6" 8529 + } 8530 + }, 8531 + "node_modules/language-subtag-registry": { 8532 + "version": "0.3.23", 8533 + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", 8534 + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", 8535 + "dev": true, 8536 + "license": "CC0-1.0" 8537 + }, 8538 + "node_modules/language-tags": { 8539 + "version": "1.0.9", 8540 + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", 8541 + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", 8542 + "dev": true, 8543 + "license": "MIT", 8544 + "dependencies": { 8545 + "language-subtag-registry": "^0.3.20" 8546 + }, 8547 + "engines": { 8548 + "node": ">=0.10" 8549 + } 8550 + }, 8551 + "node_modules/levn": { 8552 + "version": "0.4.1", 8553 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 8554 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 8555 + "dev": true, 8556 + "license": "MIT", 8557 + "dependencies": { 8558 + "prelude-ls": "^1.2.1", 8559 + "type-check": "~0.4.0" 8560 + }, 8561 + "engines": { 8562 + "node": ">= 0.8.0" 8563 + } 8564 + }, 8565 + "node_modules/lightningcss": { 8566 + "version": "1.30.2", 8567 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", 8568 + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", 8569 + "dev": true, 8570 + "license": "MPL-2.0", 8571 + "dependencies": { 8572 + "detect-libc": "^2.0.3" 8573 + }, 8574 + "engines": { 8575 + "node": ">= 12.0.0" 8576 + }, 8577 + "funding": { 8578 + "type": "opencollective", 8579 + "url": "https://opencollective.com/parcel" 8580 + }, 8581 + "optionalDependencies": { 8582 + "lightningcss-android-arm64": "1.30.2", 8583 + "lightningcss-darwin-arm64": "1.30.2", 8584 + "lightningcss-darwin-x64": "1.30.2", 8585 + "lightningcss-freebsd-x64": "1.30.2", 8586 + "lightningcss-linux-arm-gnueabihf": "1.30.2", 8587 + "lightningcss-linux-arm64-gnu": "1.30.2", 8588 + "lightningcss-linux-arm64-musl": "1.30.2", 8589 + "lightningcss-linux-x64-gnu": "1.30.2", 8590 + "lightningcss-linux-x64-musl": "1.30.2", 8591 + "lightningcss-win32-arm64-msvc": "1.30.2", 8592 + "lightningcss-win32-x64-msvc": "1.30.2" 8593 + } 8594 + }, 8595 + "node_modules/lightningcss-android-arm64": { 8596 + "version": "1.30.2", 8597 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", 8598 + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", 8599 + "cpu": [ 8600 + "arm64" 8601 + ], 8602 + "dev": true, 8603 + "license": "MPL-2.0", 8604 + "optional": true, 8605 + "os": [ 8606 + "android" 8607 + ], 8608 + "engines": { 8609 + "node": ">= 12.0.0" 8610 + }, 8611 + "funding": { 8612 + "type": "opencollective", 8613 + "url": "https://opencollective.com/parcel" 8614 + } 8615 + }, 8616 + "node_modules/lightningcss-darwin-arm64": { 8617 + "version": "1.30.2", 8618 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", 8619 + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", 8620 + "cpu": [ 8621 + "arm64" 8622 + ], 8623 + "dev": true, 8624 + "license": "MPL-2.0", 8625 + "optional": true, 8626 + "os": [ 8627 + "darwin" 8628 + ], 8629 + "engines": { 8630 + "node": ">= 12.0.0" 8631 + }, 8632 + "funding": { 8633 + "type": "opencollective", 8634 + "url": "https://opencollective.com/parcel" 8635 + } 8636 + }, 8637 + "node_modules/lightningcss-darwin-x64": { 8638 + "version": "1.30.2", 8639 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", 8640 + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", 8641 + "cpu": [ 8642 + "x64" 8643 + ], 8644 + "dev": true, 8645 + "license": "MPL-2.0", 8646 + "optional": true, 8647 + "os": [ 8648 + "darwin" 8649 + ], 8650 + "engines": { 8651 + "node": ">= 12.0.0" 8652 + }, 8653 + "funding": { 8654 + "type": "opencollective", 8655 + "url": "https://opencollective.com/parcel" 8656 + } 8657 + }, 8658 + "node_modules/lightningcss-freebsd-x64": { 8659 + "version": "1.30.2", 8660 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", 8661 + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", 8662 + "cpu": [ 8663 + "x64" 8664 + ], 8665 + "dev": true, 8666 + "license": "MPL-2.0", 8667 + "optional": true, 8668 + "os": [ 8669 + "freebsd" 8670 + ], 8671 + "engines": { 8672 + "node": ">= 12.0.0" 8673 + }, 8674 + "funding": { 8675 + "type": "opencollective", 8676 + "url": "https://opencollective.com/parcel" 8677 + } 8678 + }, 8679 + "node_modules/lightningcss-linux-arm-gnueabihf": { 8680 + "version": "1.30.2", 8681 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", 8682 + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", 8683 + "cpu": [ 8684 + "arm" 8685 + ], 8686 + "dev": true, 8687 + "license": "MPL-2.0", 8688 + "optional": true, 8689 + "os": [ 8690 + "linux" 8691 + ], 8692 + "engines": { 8693 + "node": ">= 12.0.0" 8694 + }, 8695 + "funding": { 8696 + "type": "opencollective", 8697 + "url": "https://opencollective.com/parcel" 8698 + } 8699 + }, 8700 + "node_modules/lightningcss-linux-arm64-gnu": { 8701 + "version": "1.30.2", 8702 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", 8703 + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", 8704 + "cpu": [ 8705 + "arm64" 8706 + ], 8707 + "dev": true, 8708 + "license": "MPL-2.0", 8709 + "optional": true, 8710 + "os": [ 8711 + "linux" 8712 + ], 8713 + "engines": { 8714 + "node": ">= 12.0.0" 8715 + }, 8716 + "funding": { 8717 + "type": "opencollective", 8718 + "url": "https://opencollective.com/parcel" 8719 + } 8720 + }, 8721 + "node_modules/lightningcss-linux-arm64-musl": { 8722 + "version": "1.30.2", 8723 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", 8724 + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", 8725 + "cpu": [ 8726 + "arm64" 8727 + ], 8728 + "dev": true, 8729 + "license": "MPL-2.0", 8730 + "optional": true, 8731 + "os": [ 8732 + "linux" 8733 + ], 8734 + "engines": { 8735 + "node": ">= 12.0.0" 8736 + }, 8737 + "funding": { 8738 + "type": "opencollective", 8739 + "url": "https://opencollective.com/parcel" 8740 + } 8741 + }, 8742 + "node_modules/lightningcss-linux-x64-gnu": { 8743 + "version": "1.30.2", 8744 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", 8745 + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", 8746 + "cpu": [ 8747 + "x64" 8748 + ], 8749 + "dev": true, 8750 + "license": "MPL-2.0", 8751 + "optional": true, 8752 + "os": [ 8753 + "linux" 8754 + ], 8755 + "engines": { 8756 + "node": ">= 12.0.0" 8757 + }, 8758 + "funding": { 8759 + "type": "opencollective", 8760 + "url": "https://opencollective.com/parcel" 8761 + } 8762 + }, 8763 + "node_modules/lightningcss-linux-x64-musl": { 8764 + "version": "1.30.2", 8765 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", 8766 + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", 8767 + "cpu": [ 8768 + "x64" 8769 + ], 8770 + "dev": true, 8771 + "license": "MPL-2.0", 8772 + "optional": true, 8773 + "os": [ 8774 + "linux" 8775 + ], 8776 + "engines": { 8777 + "node": ">= 12.0.0" 8778 + }, 8779 + "funding": { 8780 + "type": "opencollective", 8781 + "url": "https://opencollective.com/parcel" 8782 + } 8783 + }, 8784 + "node_modules/lightningcss-win32-arm64-msvc": { 8785 + "version": "1.30.2", 8786 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", 8787 + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", 8788 + "cpu": [ 8789 + "arm64" 8790 + ], 8791 + "dev": true, 8792 + "license": "MPL-2.0", 8793 + "optional": true, 8794 + "os": [ 8795 + "win32" 8796 + ], 8797 + "engines": { 8798 + "node": ">= 12.0.0" 8799 + }, 8800 + "funding": { 8801 + "type": "opencollective", 8802 + "url": "https://opencollective.com/parcel" 8803 + } 8804 + }, 8805 + "node_modules/lightningcss-win32-x64-msvc": { 8806 + "version": "1.30.2", 8807 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", 8808 + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", 8809 + "cpu": [ 8810 + "x64" 8811 + ], 8812 + "dev": true, 8813 + "license": "MPL-2.0", 8814 + "optional": true, 8815 + "os": [ 8816 + "win32" 8817 + ], 8818 + "engines": { 8819 + "node": ">= 12.0.0" 8820 + }, 8821 + "funding": { 8822 + "type": "opencollective", 8823 + "url": "https://opencollective.com/parcel" 8824 + } 8825 + }, 8826 + "node_modules/lines-and-columns": { 8827 + "version": "1.2.4", 8828 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 8829 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 8830 + "dev": true, 8831 + "license": "MIT" 8832 + }, 8833 + "node_modules/locate-path": { 8834 + "version": "6.0.0", 8835 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 8836 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 8837 + "dev": true, 8838 + "license": "MIT", 8839 + "dependencies": { 8840 + "p-locate": "^5.0.0" 8841 + }, 8842 + "engines": { 8843 + "node": ">=10" 8844 + }, 8845 + "funding": { 8846 + "url": "https://github.com/sponsors/sindresorhus" 8847 + } 8848 + }, 8849 + "node_modules/lodash": { 8850 + "version": "4.17.23", 8851 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", 8852 + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", 8853 + "license": "MIT" 8854 + }, 8855 + "node_modules/lodash.merge": { 8856 + "version": "4.6.2", 8857 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 8858 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 8859 + "dev": true, 8860 + "license": "MIT" 8861 + }, 8862 + "node_modules/log-symbols": { 8863 + "version": "6.0.0", 8864 + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", 8865 + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", 8866 + "dev": true, 8867 + "license": "MIT", 8868 + "dependencies": { 8869 + "chalk": "^5.3.0", 8870 + "is-unicode-supported": "^1.3.0" 8871 + }, 8872 + "engines": { 8873 + "node": ">=18" 8874 + }, 8875 + "funding": { 8876 + "url": "https://github.com/sponsors/sindresorhus" 8877 + } 8878 + }, 8879 + "node_modules/log-symbols/node_modules/chalk": { 8880 + "version": "5.6.2", 8881 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 8882 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 8883 + "dev": true, 8884 + "license": "MIT", 8885 + "engines": { 8886 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 8887 + }, 8888 + "funding": { 8889 + "url": "https://github.com/chalk/chalk?sponsor=1" 8890 + } 8891 + }, 8892 + "node_modules/log-symbols/node_modules/is-unicode-supported": { 8893 + "version": "1.3.0", 8894 + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", 8895 + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", 8896 + "dev": true, 8897 + "license": "MIT", 8898 + "engines": { 8899 + "node": ">=12" 8900 + }, 8901 + "funding": { 8902 + "url": "https://github.com/sponsors/sindresorhus" 8903 + } 8904 + }, 8905 + "node_modules/loose-envify": { 8906 + "version": "1.4.0", 8907 + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 8908 + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 8909 + "license": "MIT", 8910 + "dependencies": { 8911 + "js-tokens": "^3.0.0 || ^4.0.0" 8912 + }, 8913 + "bin": { 8914 + "loose-envify": "cli.js" 8915 + } 8916 + }, 8917 + "node_modules/lru-cache": { 8918 + "version": "5.1.1", 8919 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 8920 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 8921 + "dev": true, 8922 + "license": "ISC", 8923 + "dependencies": { 8924 + "yallist": "^3.0.2" 8925 + } 8926 + }, 8927 + "node_modules/lucide-react": { 8928 + "version": "0.564.0", 8929 + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.564.0.tgz", 8930 + "integrity": "sha512-JJ8GVTQqFwuliifD48U6+h7DXEHdkhJ/E87kksGByII3qHxtPciVb8T8woQONHBQgHVOl7rSMrrip3SeVNy7Fg==", 8931 + "license": "ISC", 8932 + "peerDependencies": { 8933 + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" 8934 + } 8935 + }, 8936 + "node_modules/magic-string": { 8937 + "version": "0.30.21", 8938 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 8939 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 8940 + "dev": true, 8941 + "license": "MIT", 8942 + "dependencies": { 8943 + "@jridgewell/sourcemap-codec": "^1.5.5" 8944 + } 8945 + }, 8946 + "node_modules/math-intrinsics": { 8947 + "version": "1.1.0", 8948 + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", 8949 + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", 8950 + "dev": true, 8951 + "license": "MIT", 8952 + "engines": { 8953 + "node": ">= 0.4" 8954 + } 8955 + }, 8956 + "node_modules/media-typer": { 8957 + "version": "1.1.0", 8958 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 8959 + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", 8960 + "dev": true, 8961 + "license": "MIT", 8962 + "engines": { 8963 + "node": ">= 0.8" 8964 + } 8965 + }, 8966 + "node_modules/merge-descriptors": { 8967 + "version": "2.0.0", 8968 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", 8969 + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", 8970 + "dev": true, 8971 + "license": "MIT", 8972 + "engines": { 8973 + "node": ">=18" 8974 + }, 8975 + "funding": { 8976 + "url": "https://github.com/sponsors/sindresorhus" 8977 + } 8978 + }, 8979 + "node_modules/merge-stream": { 8980 + "version": "2.0.0", 8981 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 8982 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 8983 + "dev": true, 8984 + "license": "MIT" 8985 + }, 8986 + "node_modules/merge2": { 8987 + "version": "1.4.1", 8988 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 8989 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 8990 + "dev": true, 8991 + "license": "MIT", 8992 + "engines": { 8993 + "node": ">= 8" 8994 + } 8995 + }, 8996 + "node_modules/micromatch": { 8997 + "version": "4.0.8", 8998 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 8999 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 9000 + "dev": true, 9001 + "license": "MIT", 9002 + "dependencies": { 9003 + "braces": "^3.0.3", 9004 + "picomatch": "^2.3.1" 9005 + }, 9006 + "engines": { 9007 + "node": ">=8.6" 9008 + } 9009 + }, 9010 + "node_modules/mime-db": { 9011 + "version": "1.54.0", 9012 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", 9013 + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", 9014 + "dev": true, 9015 + "license": "MIT", 9016 + "engines": { 9017 + "node": ">= 0.6" 9018 + } 9019 + }, 9020 + "node_modules/mime-types": { 9021 + "version": "3.0.2", 9022 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", 9023 + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", 9024 + "dev": true, 9025 + "license": "MIT", 9026 + "dependencies": { 9027 + "mime-db": "^1.54.0" 9028 + }, 9029 + "engines": { 9030 + "node": ">=18" 9031 + }, 9032 + "funding": { 9033 + "type": "opencollective", 9034 + "url": "https://opencollective.com/express" 9035 + } 9036 + }, 9037 + "node_modules/mimic-fn": { 9038 + "version": "2.1.0", 9039 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 9040 + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 9041 + "dev": true, 9042 + "license": "MIT", 9043 + "engines": { 9044 + "node": ">=6" 9045 + } 9046 + }, 9047 + "node_modules/mimic-function": { 9048 + "version": "5.0.1", 9049 + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", 9050 + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", 9051 + "dev": true, 9052 + "license": "MIT", 9053 + "engines": { 9054 + "node": ">=18" 9055 + }, 9056 + "funding": { 9057 + "url": "https://github.com/sponsors/sindresorhus" 9058 + } 9059 + }, 9060 + "node_modules/minimatch": { 9061 + "version": "3.1.2", 9062 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 9063 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 9064 + "dev": true, 9065 + "license": "ISC", 9066 + "dependencies": { 9067 + "brace-expansion": "^1.1.7" 9068 + }, 9069 + "engines": { 9070 + "node": "*" 9071 + } 9072 + }, 9073 + "node_modules/minimist": { 9074 + "version": "1.2.8", 9075 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 9076 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 9077 + "dev": true, 9078 + "license": "MIT", 9079 + "funding": { 9080 + "url": "https://github.com/sponsors/ljharb" 9081 + } 9082 + }, 9083 + "node_modules/ms": { 9084 + "version": "2.1.3", 9085 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 9086 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 9087 + "dev": true, 9088 + "license": "MIT" 9089 + }, 9090 + "node_modules/msw": { 9091 + "version": "2.12.10", 9092 + "resolved": "https://registry.npmjs.org/msw/-/msw-2.12.10.tgz", 9093 + "integrity": "sha512-G3VUymSE0/iegFnuipujpwyTM2GuZAKXNeerUSrG2+Eg391wW63xFs5ixWsK9MWzr1AGoSkYGmyAzNgbR3+urw==", 9094 + "dev": true, 9095 + "hasInstallScript": true, 9096 + "license": "MIT", 9097 + "dependencies": { 9098 + "@inquirer/confirm": "^5.0.0", 9099 + "@mswjs/interceptors": "^0.41.2", 9100 + "@open-draft/deferred-promise": "^2.2.0", 9101 + "@types/statuses": "^2.0.6", 9102 + "cookie": "^1.0.2", 9103 + "graphql": "^16.12.0", 9104 + "headers-polyfill": "^4.0.2", 9105 + "is-node-process": "^1.2.0", 9106 + "outvariant": "^1.4.3", 9107 + "path-to-regexp": "^6.3.0", 9108 + "picocolors": "^1.1.1", 9109 + "rettime": "^0.10.1", 9110 + "statuses": "^2.0.2", 9111 + "strict-event-emitter": "^0.5.1", 9112 + "tough-cookie": "^6.0.0", 9113 + "type-fest": "^5.2.0", 9114 + "until-async": "^3.0.2", 9115 + "yargs": "^17.7.2" 9116 + }, 9117 + "bin": { 9118 + "msw": "cli/index.js" 9119 + }, 9120 + "engines": { 9121 + "node": ">=18" 9122 + }, 9123 + "funding": { 9124 + "url": "https://github.com/sponsors/mswjs" 9125 + }, 9126 + "peerDependencies": { 9127 + "typescript": ">= 4.8.x" 9128 + }, 9129 + "peerDependenciesMeta": { 9130 + "typescript": { 9131 + "optional": true 9132 + } 9133 + } 9134 + }, 9135 + "node_modules/msw/node_modules/cookie": { 9136 + "version": "1.1.1", 9137 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 9138 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 9139 + "dev": true, 9140 + "license": "MIT", 9141 + "engines": { 9142 + "node": ">=18" 9143 + }, 9144 + "funding": { 9145 + "type": "opencollective", 9146 + "url": "https://opencollective.com/express" 9147 + } 9148 + }, 9149 + "node_modules/mute-stream": { 9150 + "version": "2.0.0", 9151 + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", 9152 + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", 9153 + "dev": true, 9154 + "license": "ISC", 9155 + "engines": { 9156 + "node": "^18.17.0 || >=20.5.0" 9157 + } 9158 + }, 9159 + "node_modules/nanoid": { 9160 + "version": "3.3.11", 9161 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 9162 + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 9163 + "funding": [ 9164 + { 9165 + "type": "github", 9166 + "url": "https://github.com/sponsors/ai" 9167 + } 9168 + ], 9169 + "license": "MIT", 9170 + "bin": { 9171 + "nanoid": "bin/nanoid.cjs" 9172 + }, 9173 + "engines": { 9174 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 9175 + } 9176 + }, 9177 + "node_modules/napi-postinstall": { 9178 + "version": "0.3.4", 9179 + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", 9180 + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", 9181 + "dev": true, 9182 + "license": "MIT", 9183 + "bin": { 9184 + "napi-postinstall": "lib/cli.js" 9185 + }, 9186 + "engines": { 9187 + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" 9188 + }, 9189 + "funding": { 9190 + "url": "https://opencollective.com/napi-postinstall" 9191 + } 9192 + }, 9193 + "node_modules/natural-compare": { 9194 + "version": "1.4.0", 9195 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 9196 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 9197 + "dev": true, 9198 + "license": "MIT" 9199 + }, 9200 + "node_modules/negotiator": { 9201 + "version": "1.0.0", 9202 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", 9203 + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", 9204 + "dev": true, 9205 + "license": "MIT", 9206 + "engines": { 9207 + "node": ">= 0.6" 9208 + } 9209 + }, 9210 + "node_modules/next": { 9211 + "version": "16.1.6", 9212 + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", 9213 + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", 9214 + "license": "MIT", 9215 + "dependencies": { 9216 + "@next/env": "16.1.6", 9217 + "@swc/helpers": "0.5.15", 9218 + "baseline-browser-mapping": "^2.8.3", 9219 + "caniuse-lite": "^1.0.30001579", 9220 + "postcss": "8.4.31", 9221 + "styled-jsx": "5.1.6" 9222 + }, 9223 + "bin": { 9224 + "next": "dist/bin/next" 9225 + }, 9226 + "engines": { 9227 + "node": ">=20.9.0" 9228 + }, 9229 + "optionalDependencies": { 9230 + "@next/swc-darwin-arm64": "16.1.6", 9231 + "@next/swc-darwin-x64": "16.1.6", 9232 + "@next/swc-linux-arm64-gnu": "16.1.6", 9233 + "@next/swc-linux-arm64-musl": "16.1.6", 9234 + "@next/swc-linux-x64-gnu": "16.1.6", 9235 + "@next/swc-linux-x64-musl": "16.1.6", 9236 + "@next/swc-win32-arm64-msvc": "16.1.6", 9237 + "@next/swc-win32-x64-msvc": "16.1.6", 9238 + "sharp": "^0.34.4" 9239 + }, 9240 + "peerDependencies": { 9241 + "@opentelemetry/api": "^1.1.0", 9242 + "@playwright/test": "^1.51.1", 9243 + "babel-plugin-react-compiler": "*", 9244 + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 9245 + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 9246 + "sass": "^1.3.0" 9247 + }, 9248 + "peerDependenciesMeta": { 9249 + "@opentelemetry/api": { 9250 + "optional": true 9251 + }, 9252 + "@playwright/test": { 9253 + "optional": true 9254 + }, 9255 + "babel-plugin-react-compiler": { 9256 + "optional": true 9257 + }, 9258 + "sass": { 9259 + "optional": true 9260 + } 9261 + } 9262 + }, 9263 + "node_modules/next-themes": { 9264 + "version": "0.4.6", 9265 + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", 9266 + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", 9267 + "license": "MIT", 9268 + "peerDependencies": { 9269 + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", 9270 + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" 9271 + } 9272 + }, 9273 + "node_modules/next/node_modules/postcss": { 9274 + "version": "8.4.31", 9275 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 9276 + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 9277 + "funding": [ 9278 + { 9279 + "type": "opencollective", 9280 + "url": "https://opencollective.com/postcss/" 9281 + }, 9282 + { 9283 + "type": "tidelift", 9284 + "url": "https://tidelift.com/funding/github/npm/postcss" 9285 + }, 9286 + { 9287 + "type": "github", 9288 + "url": "https://github.com/sponsors/ai" 9289 + } 9290 + ], 9291 + "license": "MIT", 9292 + "dependencies": { 9293 + "nanoid": "^3.3.6", 9294 + "picocolors": "^1.0.0", 9295 + "source-map-js": "^1.0.2" 9296 + }, 9297 + "engines": { 9298 + "node": "^10 || ^12 || >=14" 9299 + } 9300 + }, 9301 + "node_modules/node-domexception": { 9302 + "version": "1.0.0", 9303 + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 9304 + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 9305 + "deprecated": "Use your platform's native DOMException instead", 9306 + "dev": true, 9307 + "funding": [ 9308 + { 9309 + "type": "github", 9310 + "url": "https://github.com/sponsors/jimmywarting" 9311 + }, 9312 + { 9313 + "type": "github", 9314 + "url": "https://paypal.me/jimmywarting" 9315 + } 9316 + ], 9317 + "license": "MIT", 9318 + "engines": { 9319 + "node": ">=10.5.0" 9320 + } 9321 + }, 9322 + "node_modules/node-fetch": { 9323 + "version": "3.3.2", 9324 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 9325 + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 9326 + "dev": true, 9327 + "license": "MIT", 9328 + "dependencies": { 9329 + "data-uri-to-buffer": "^4.0.0", 9330 + "fetch-blob": "^3.1.4", 9331 + "formdata-polyfill": "^4.0.10" 9332 + }, 9333 + "engines": { 9334 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 9335 + }, 9336 + "funding": { 9337 + "type": "opencollective", 9338 + "url": "https://opencollective.com/node-fetch" 9339 + } 9340 + }, 9341 + "node_modules/node-releases": { 9342 + "version": "2.0.27", 9343 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", 9344 + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", 9345 + "dev": true, 9346 + "license": "MIT" 9347 + }, 9348 + "node_modules/npm-run-path": { 9349 + "version": "6.0.0", 9350 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", 9351 + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", 9352 + "dev": true, 9353 + "license": "MIT", 9354 + "dependencies": { 9355 + "path-key": "^4.0.0", 9356 + "unicorn-magic": "^0.3.0" 9357 + }, 9358 + "engines": { 9359 + "node": ">=18" 9360 + }, 9361 + "funding": { 9362 + "url": "https://github.com/sponsors/sindresorhus" 9363 + } 9364 + }, 9365 + "node_modules/npm-run-path/node_modules/path-key": { 9366 + "version": "4.0.0", 9367 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", 9368 + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", 9369 + "dev": true, 9370 + "license": "MIT", 9371 + "engines": { 9372 + "node": ">=12" 9373 + }, 9374 + "funding": { 9375 + "url": "https://github.com/sponsors/sindresorhus" 9376 + } 9377 + }, 9378 + "node_modules/object-assign": { 9379 + "version": "4.1.1", 9380 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 9381 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 9382 + "license": "MIT", 9383 + "engines": { 9384 + "node": ">=0.10.0" 9385 + } 9386 + }, 9387 + "node_modules/object-inspect": { 9388 + "version": "1.13.4", 9389 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", 9390 + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", 9391 + "dev": true, 9392 + "license": "MIT", 9393 + "engines": { 9394 + "node": ">= 0.4" 9395 + }, 9396 + "funding": { 9397 + "url": "https://github.com/sponsors/ljharb" 9398 + } 9399 + }, 9400 + "node_modules/object-keys": { 9401 + "version": "1.1.1", 9402 + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 9403 + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 9404 + "dev": true, 9405 + "license": "MIT", 9406 + "engines": { 9407 + "node": ">= 0.4" 9408 + } 9409 + }, 9410 + "node_modules/object-treeify": { 9411 + "version": "1.1.33", 9412 + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", 9413 + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", 9414 + "dev": true, 9415 + "license": "MIT", 9416 + "engines": { 9417 + "node": ">= 10" 9418 + } 9419 + }, 9420 + "node_modules/object.assign": { 9421 + "version": "4.1.7", 9422 + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", 9423 + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", 9424 + "dev": true, 9425 + "license": "MIT", 9426 + "dependencies": { 9427 + "call-bind": "^1.0.8", 9428 + "call-bound": "^1.0.3", 9429 + "define-properties": "^1.2.1", 9430 + "es-object-atoms": "^1.0.0", 9431 + "has-symbols": "^1.1.0", 9432 + "object-keys": "^1.1.1" 9433 + }, 9434 + "engines": { 9435 + "node": ">= 0.4" 9436 + }, 9437 + "funding": { 9438 + "url": "https://github.com/sponsors/ljharb" 9439 + } 9440 + }, 9441 + "node_modules/object.entries": { 9442 + "version": "1.1.9", 9443 + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", 9444 + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", 9445 + "dev": true, 9446 + "license": "MIT", 9447 + "dependencies": { 9448 + "call-bind": "^1.0.8", 9449 + "call-bound": "^1.0.4", 9450 + "define-properties": "^1.2.1", 9451 + "es-object-atoms": "^1.1.1" 9452 + }, 9453 + "engines": { 9454 + "node": ">= 0.4" 9455 + } 9456 + }, 9457 + "node_modules/object.fromentries": { 9458 + "version": "2.0.8", 9459 + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", 9460 + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", 9461 + "dev": true, 9462 + "license": "MIT", 9463 + "dependencies": { 9464 + "call-bind": "^1.0.7", 9465 + "define-properties": "^1.2.1", 9466 + "es-abstract": "^1.23.2", 9467 + "es-object-atoms": "^1.0.0" 9468 + }, 9469 + "engines": { 9470 + "node": ">= 0.4" 9471 + }, 9472 + "funding": { 9473 + "url": "https://github.com/sponsors/ljharb" 9474 + } 9475 + }, 9476 + "node_modules/object.groupby": { 9477 + "version": "1.0.3", 9478 + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", 9479 + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", 9480 + "dev": true, 9481 + "license": "MIT", 9482 + "dependencies": { 9483 + "call-bind": "^1.0.7", 9484 + "define-properties": "^1.2.1", 9485 + "es-abstract": "^1.23.2" 9486 + }, 9487 + "engines": { 9488 + "node": ">= 0.4" 9489 + } 9490 + }, 9491 + "node_modules/object.values": { 9492 + "version": "1.2.1", 9493 + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", 9494 + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", 9495 + "dev": true, 9496 + "license": "MIT", 9497 + "dependencies": { 9498 + "call-bind": "^1.0.8", 9499 + "call-bound": "^1.0.3", 9500 + "define-properties": "^1.2.1", 9501 + "es-object-atoms": "^1.0.0" 9502 + }, 9503 + "engines": { 9504 + "node": ">= 0.4" 9505 + }, 9506 + "funding": { 9507 + "url": "https://github.com/sponsors/ljharb" 9508 + } 9509 + }, 9510 + "node_modules/on-finished": { 9511 + "version": "2.4.1", 9512 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", 9513 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", 9514 + "dev": true, 9515 + "license": "MIT", 9516 + "dependencies": { 9517 + "ee-first": "1.1.1" 9518 + }, 9519 + "engines": { 9520 + "node": ">= 0.8" 9521 + } 9522 + }, 9523 + "node_modules/once": { 9524 + "version": "1.4.0", 9525 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 9526 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 9527 + "dev": true, 9528 + "license": "ISC", 9529 + "dependencies": { 9530 + "wrappy": "1" 9531 + } 9532 + }, 9533 + "node_modules/onetime": { 9534 + "version": "7.0.0", 9535 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", 9536 + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", 9537 + "dev": true, 9538 + "license": "MIT", 9539 + "dependencies": { 9540 + "mimic-function": "^5.0.0" 9541 + }, 9542 + "engines": { 9543 + "node": ">=18" 9544 + }, 9545 + "funding": { 9546 + "url": "https://github.com/sponsors/sindresorhus" 9547 + } 9548 + }, 9549 + "node_modules/open": { 9550 + "version": "11.0.0", 9551 + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", 9552 + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", 9553 + "dev": true, 9554 + "license": "MIT", 9555 + "dependencies": { 9556 + "default-browser": "^5.4.0", 9557 + "define-lazy-prop": "^3.0.0", 9558 + "is-in-ssh": "^1.0.0", 9559 + "is-inside-container": "^1.0.0", 9560 + "powershell-utils": "^0.1.0", 9561 + "wsl-utils": "^0.3.0" 9562 + }, 9563 + "engines": { 9564 + "node": ">=20" 9565 + }, 9566 + "funding": { 9567 + "url": "https://github.com/sponsors/sindresorhus" 9568 + } 9569 + }, 9570 + "node_modules/optionator": { 9571 + "version": "0.9.4", 9572 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 9573 + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 9574 + "dev": true, 9575 + "license": "MIT", 9576 + "dependencies": { 9577 + "deep-is": "^0.1.3", 9578 + "fast-levenshtein": "^2.0.6", 9579 + "levn": "^0.4.1", 9580 + "prelude-ls": "^1.2.1", 9581 + "type-check": "^0.4.0", 9582 + "word-wrap": "^1.2.5" 9583 + }, 9584 + "engines": { 9585 + "node": ">= 0.8.0" 9586 + } 9587 + }, 9588 + "node_modules/ora": { 9589 + "version": "8.2.0", 9590 + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", 9591 + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", 9592 + "dev": true, 9593 + "license": "MIT", 9594 + "dependencies": { 9595 + "chalk": "^5.3.0", 9596 + "cli-cursor": "^5.0.0", 9597 + "cli-spinners": "^2.9.2", 9598 + "is-interactive": "^2.0.0", 9599 + "is-unicode-supported": "^2.0.0", 9600 + "log-symbols": "^6.0.0", 9601 + "stdin-discarder": "^0.2.2", 9602 + "string-width": "^7.2.0", 9603 + "strip-ansi": "^7.1.0" 9604 + }, 9605 + "engines": { 9606 + "node": ">=18" 9607 + }, 9608 + "funding": { 9609 + "url": "https://github.com/sponsors/sindresorhus" 9610 + } 9611 + }, 9612 + "node_modules/ora/node_modules/chalk": { 9613 + "version": "5.6.2", 9614 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", 9615 + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", 9616 + "dev": true, 9617 + "license": "MIT", 9618 + "engines": { 9619 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 9620 + }, 9621 + "funding": { 9622 + "url": "https://github.com/chalk/chalk?sponsor=1" 9623 + } 9624 + }, 9625 + "node_modules/outvariant": { 9626 + "version": "1.4.3", 9627 + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", 9628 + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", 9629 + "dev": true, 9630 + "license": "MIT" 9631 + }, 9632 + "node_modules/own-keys": { 9633 + "version": "1.0.1", 9634 + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", 9635 + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", 9636 + "dev": true, 9637 + "license": "MIT", 9638 + "dependencies": { 9639 + "get-intrinsic": "^1.2.6", 9640 + "object-keys": "^1.1.1", 9641 + "safe-push-apply": "^1.0.0" 9642 + }, 9643 + "engines": { 9644 + "node": ">= 0.4" 9645 + }, 9646 + "funding": { 9647 + "url": "https://github.com/sponsors/ljharb" 9648 + } 9649 + }, 9650 + "node_modules/p-limit": { 9651 + "version": "3.1.0", 9652 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 9653 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 9654 + "dev": true, 9655 + "license": "MIT", 9656 + "dependencies": { 9657 + "yocto-queue": "^0.1.0" 9658 + }, 9659 + "engines": { 9660 + "node": ">=10" 9661 + }, 9662 + "funding": { 9663 + "url": "https://github.com/sponsors/sindresorhus" 9664 + } 9665 + }, 9666 + "node_modules/p-locate": { 9667 + "version": "5.0.0", 9668 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 9669 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 9670 + "dev": true, 9671 + "license": "MIT", 9672 + "dependencies": { 9673 + "p-limit": "^3.0.2" 9674 + }, 9675 + "engines": { 9676 + "node": ">=10" 9677 + }, 9678 + "funding": { 9679 + "url": "https://github.com/sponsors/sindresorhus" 9680 + } 9681 + }, 9682 + "node_modules/package-manager-detector": { 9683 + "version": "1.6.0", 9684 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", 9685 + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", 9686 + "dev": true, 9687 + "license": "MIT" 9688 + }, 9689 + "node_modules/parent-module": { 9690 + "version": "1.0.1", 9691 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 9692 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 9693 + "dev": true, 9694 + "license": "MIT", 9695 + "dependencies": { 9696 + "callsites": "^3.0.0" 9697 + }, 9698 + "engines": { 9699 + "node": ">=6" 9700 + } 9701 + }, 9702 + "node_modules/parse-json": { 9703 + "version": "5.2.0", 9704 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 9705 + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 9706 + "dev": true, 9707 + "license": "MIT", 9708 + "dependencies": { 9709 + "@babel/code-frame": "^7.0.0", 9710 + "error-ex": "^1.3.1", 9711 + "json-parse-even-better-errors": "^2.3.0", 9712 + "lines-and-columns": "^1.1.6" 9713 + }, 9714 + "engines": { 9715 + "node": ">=8" 9716 + }, 9717 + "funding": { 9718 + "url": "https://github.com/sponsors/sindresorhus" 9719 + } 9720 + }, 9721 + "node_modules/parse-ms": { 9722 + "version": "4.0.0", 9723 + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", 9724 + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", 9725 + "dev": true, 9726 + "license": "MIT", 9727 + "engines": { 9728 + "node": ">=18" 9729 + }, 9730 + "funding": { 9731 + "url": "https://github.com/sponsors/sindresorhus" 9732 + } 9733 + }, 9734 + "node_modules/parseurl": { 9735 + "version": "1.3.3", 9736 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 9737 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", 9738 + "dev": true, 9739 + "license": "MIT", 9740 + "engines": { 9741 + "node": ">= 0.8" 9742 + } 9743 + }, 9744 + "node_modules/path-browserify": { 9745 + "version": "1.0.1", 9746 + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 9747 + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", 9748 + "dev": true, 9749 + "license": "MIT" 9750 + }, 9751 + "node_modules/path-exists": { 9752 + "version": "4.0.0", 9753 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 9754 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 9755 + "dev": true, 9756 + "license": "MIT", 9757 + "engines": { 9758 + "node": ">=8" 9759 + } 9760 + }, 9761 + "node_modules/path-key": { 9762 + "version": "3.1.1", 9763 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 9764 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 9765 + "dev": true, 9766 + "license": "MIT", 9767 + "engines": { 9768 + "node": ">=8" 9769 + } 9770 + }, 9771 + "node_modules/path-parse": { 9772 + "version": "1.0.7", 9773 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 9774 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 9775 + "dev": true, 9776 + "license": "MIT" 9777 + }, 9778 + "node_modules/path-to-regexp": { 9779 + "version": "6.3.0", 9780 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 9781 + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 9782 + "dev": true, 9783 + "license": "MIT" 9784 + }, 9785 + "node_modules/picocolors": { 9786 + "version": "1.1.1", 9787 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 9788 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 9789 + "license": "ISC" 9790 + }, 9791 + "node_modules/picomatch": { 9792 + "version": "2.3.1", 9793 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 9794 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 9795 + "dev": true, 9796 + "license": "MIT", 9797 + "engines": { 9798 + "node": ">=8.6" 9799 + }, 9800 + "funding": { 9801 + "url": "https://github.com/sponsors/jonschlinkert" 9802 + } 9803 + }, 9804 + "node_modules/pkce-challenge": { 9805 + "version": "5.0.1", 9806 + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", 9807 + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", 9808 + "dev": true, 9809 + "license": "MIT", 9810 + "engines": { 9811 + "node": ">=16.20.0" 9812 + } 9813 + }, 9814 + "node_modules/possible-typed-array-names": { 9815 + "version": "1.1.0", 9816 + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", 9817 + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", 9818 + "dev": true, 9819 + "license": "MIT", 9820 + "engines": { 9821 + "node": ">= 0.4" 9822 + } 9823 + }, 9824 + "node_modules/postcss": { 9825 + "version": "8.5.6", 9826 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 9827 + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 9828 + "dev": true, 9829 + "funding": [ 9830 + { 9831 + "type": "opencollective", 9832 + "url": "https://opencollective.com/postcss/" 9833 + }, 9834 + { 9835 + "type": "tidelift", 9836 + "url": "https://tidelift.com/funding/github/npm/postcss" 9837 + }, 9838 + { 9839 + "type": "github", 9840 + "url": "https://github.com/sponsors/ai" 9841 + } 9842 + ], 9843 + "license": "MIT", 9844 + "dependencies": { 9845 + "nanoid": "^3.3.11", 9846 + "picocolors": "^1.1.1", 9847 + "source-map-js": "^1.2.1" 9848 + }, 9849 + "engines": { 9850 + "node": "^10 || ^12 || >=14" 9851 + } 9852 + }, 9853 + "node_modules/postcss-selector-parser": { 9854 + "version": "7.1.1", 9855 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", 9856 + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", 9857 + "dev": true, 9858 + "license": "MIT", 9859 + "dependencies": { 9860 + "cssesc": "^3.0.0", 9861 + "util-deprecate": "^1.0.2" 9862 + }, 9863 + "engines": { 9864 + "node": ">=4" 9865 + } 9866 + }, 9867 + "node_modules/powershell-utils": { 9868 + "version": "0.1.0", 9869 + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", 9870 + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", 9871 + "dev": true, 9872 + "license": "MIT", 9873 + "engines": { 9874 + "node": ">=20" 9875 + }, 9876 + "funding": { 9877 + "url": "https://github.com/sponsors/sindresorhus" 9878 + } 9879 + }, 9880 + "node_modules/prelude-ls": { 9881 + "version": "1.2.1", 9882 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 9883 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 9884 + "dev": true, 9885 + "license": "MIT", 9886 + "engines": { 9887 + "node": ">= 0.8.0" 9888 + } 9889 + }, 9890 + "node_modules/pretty-ms": { 9891 + "version": "9.3.0", 9892 + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", 9893 + "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==", 9894 + "dev": true, 9895 + "license": "MIT", 9896 + "dependencies": { 9897 + "parse-ms": "^4.0.0" 9898 + }, 9899 + "engines": { 9900 + "node": ">=18" 9901 + }, 9902 + "funding": { 9903 + "url": "https://github.com/sponsors/sindresorhus" 9904 + } 9905 + }, 9906 + "node_modules/prompts": { 9907 + "version": "2.4.2", 9908 + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", 9909 + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", 9910 + "dev": true, 9911 + "license": "MIT", 9912 + "dependencies": { 9913 + "kleur": "^3.0.3", 9914 + "sisteransi": "^1.0.5" 9915 + }, 9916 + "engines": { 9917 + "node": ">= 6" 9918 + } 9919 + }, 9920 + "node_modules/prompts/node_modules/kleur": { 9921 + "version": "3.0.3", 9922 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 9923 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 9924 + "dev": true, 9925 + "license": "MIT", 9926 + "engines": { 9927 + "node": ">=6" 9928 + } 9929 + }, 9930 + "node_modules/prop-types": { 9931 + "version": "15.8.1", 9932 + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 9933 + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 9934 + "license": "MIT", 9935 + "dependencies": { 9936 + "loose-envify": "^1.4.0", 9937 + "object-assign": "^4.1.1", 9938 + "react-is": "^16.13.1" 9939 + } 9940 + }, 9941 + "node_modules/proxy-addr": { 9942 + "version": "2.0.7", 9943 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 9944 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 9945 + "dev": true, 9946 + "license": "MIT", 9947 + "dependencies": { 9948 + "forwarded": "0.2.0", 9949 + "ipaddr.js": "1.9.1" 9950 + }, 9951 + "engines": { 9952 + "node": ">= 0.10" 9953 + } 9954 + }, 9955 + "node_modules/punycode": { 9956 + "version": "2.3.1", 9957 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 9958 + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 9959 + "dev": true, 9960 + "license": "MIT", 9961 + "engines": { 9962 + "node": ">=6" 9963 + } 9964 + }, 9965 + "node_modules/qs": { 9966 + "version": "6.14.2", 9967 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", 9968 + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", 9969 + "dev": true, 9970 + "license": "BSD-3-Clause", 9971 + "dependencies": { 9972 + "side-channel": "^1.1.0" 9973 + }, 9974 + "engines": { 9975 + "node": ">=0.6" 9976 + }, 9977 + "funding": { 9978 + "url": "https://github.com/sponsors/ljharb" 9979 + } 9980 + }, 9981 + "node_modules/queue-microtask": { 9982 + "version": "1.2.3", 9983 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 9984 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 9985 + "dev": true, 9986 + "funding": [ 9987 + { 9988 + "type": "github", 9989 + "url": "https://github.com/sponsors/feross" 9990 + }, 9991 + { 9992 + "type": "patreon", 9993 + "url": "https://www.patreon.com/feross" 9994 + }, 9995 + { 9996 + "type": "consulting", 9997 + "url": "https://feross.org/support" 9998 + } 9999 + ], 10000 + "license": "MIT" 10001 + }, 10002 + "node_modules/radix-ui": { 10003 + "version": "1.4.3", 10004 + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.4.3.tgz", 10005 + "integrity": "sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==", 10006 + "license": "MIT", 10007 + "dependencies": { 10008 + "@radix-ui/primitive": "1.1.3", 10009 + "@radix-ui/react-accessible-icon": "1.1.7", 10010 + "@radix-ui/react-accordion": "1.2.12", 10011 + "@radix-ui/react-alert-dialog": "1.1.15", 10012 + "@radix-ui/react-arrow": "1.1.7", 10013 + "@radix-ui/react-aspect-ratio": "1.1.7", 10014 + "@radix-ui/react-avatar": "1.1.10", 10015 + "@radix-ui/react-checkbox": "1.3.3", 10016 + "@radix-ui/react-collapsible": "1.1.12", 10017 + "@radix-ui/react-collection": "1.1.7", 10018 + "@radix-ui/react-compose-refs": "1.1.2", 10019 + "@radix-ui/react-context": "1.1.2", 10020 + "@radix-ui/react-context-menu": "2.2.16", 10021 + "@radix-ui/react-dialog": "1.1.15", 10022 + "@radix-ui/react-direction": "1.1.1", 10023 + "@radix-ui/react-dismissable-layer": "1.1.11", 10024 + "@radix-ui/react-dropdown-menu": "2.1.16", 10025 + "@radix-ui/react-focus-guards": "1.1.3", 10026 + "@radix-ui/react-focus-scope": "1.1.7", 10027 + "@radix-ui/react-form": "0.1.8", 10028 + "@radix-ui/react-hover-card": "1.1.15", 10029 + "@radix-ui/react-label": "2.1.7", 10030 + "@radix-ui/react-menu": "2.1.16", 10031 + "@radix-ui/react-menubar": "1.1.16", 10032 + "@radix-ui/react-navigation-menu": "1.2.14", 10033 + "@radix-ui/react-one-time-password-field": "0.1.8", 10034 + "@radix-ui/react-password-toggle-field": "0.1.3", 10035 + "@radix-ui/react-popover": "1.1.15", 10036 + "@radix-ui/react-popper": "1.2.8", 10037 + "@radix-ui/react-portal": "1.1.9", 10038 + "@radix-ui/react-presence": "1.1.5", 10039 + "@radix-ui/react-primitive": "2.1.3", 10040 + "@radix-ui/react-progress": "1.1.7", 10041 + "@radix-ui/react-radio-group": "1.3.8", 10042 + "@radix-ui/react-roving-focus": "1.1.11", 10043 + "@radix-ui/react-scroll-area": "1.2.10", 10044 + "@radix-ui/react-select": "2.2.6", 10045 + "@radix-ui/react-separator": "1.1.7", 10046 + "@radix-ui/react-slider": "1.3.6", 10047 + "@radix-ui/react-slot": "1.2.3", 10048 + "@radix-ui/react-switch": "1.2.6", 10049 + "@radix-ui/react-tabs": "1.1.13", 10050 + "@radix-ui/react-toast": "1.2.15", 10051 + "@radix-ui/react-toggle": "1.1.10", 10052 + "@radix-ui/react-toggle-group": "1.1.11", 10053 + "@radix-ui/react-toolbar": "1.1.11", 10054 + "@radix-ui/react-tooltip": "1.2.8", 10055 + "@radix-ui/react-use-callback-ref": "1.1.1", 10056 + "@radix-ui/react-use-controllable-state": "1.2.2", 10057 + "@radix-ui/react-use-effect-event": "0.0.2", 10058 + "@radix-ui/react-use-escape-keydown": "1.1.1", 10059 + "@radix-ui/react-use-is-hydrated": "0.1.0", 10060 + "@radix-ui/react-use-layout-effect": "1.1.1", 10061 + "@radix-ui/react-use-size": "1.1.1", 10062 + "@radix-ui/react-visually-hidden": "1.2.3" 10063 + }, 10064 + "peerDependencies": { 10065 + "@types/react": "*", 10066 + "@types/react-dom": "*", 10067 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", 10068 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" 10069 + }, 10070 + "peerDependenciesMeta": { 10071 + "@types/react": { 10072 + "optional": true 10073 + }, 10074 + "@types/react-dom": { 10075 + "optional": true 10076 + } 10077 + } 10078 + }, 10079 + "node_modules/range-parser": { 10080 + "version": "1.2.1", 10081 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 10082 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", 10083 + "dev": true, 10084 + "license": "MIT", 10085 + "engines": { 10086 + "node": ">= 0.6" 10087 + } 10088 + }, 10089 + "node_modules/raw-body": { 10090 + "version": "3.0.2", 10091 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", 10092 + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", 10093 + "dev": true, 10094 + "license": "MIT", 10095 + "dependencies": { 10096 + "bytes": "~3.1.2", 10097 + "http-errors": "~2.0.1", 10098 + "iconv-lite": "~0.7.0", 10099 + "unpipe": "~1.0.0" 10100 + }, 10101 + "engines": { 10102 + "node": ">= 0.10" 10103 + } 10104 + }, 10105 + "node_modules/react": { 10106 + "version": "19.2.3", 10107 + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", 10108 + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", 10109 + "license": "MIT", 10110 + "peer": true, 10111 + "engines": { 10112 + "node": ">=0.10.0" 10113 + } 10114 + }, 10115 + "node_modules/react-dom": { 10116 + "version": "19.2.3", 10117 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", 10118 + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", 10119 + "license": "MIT", 10120 + "peer": true, 10121 + "dependencies": { 10122 + "scheduler": "^0.27.0" 10123 + }, 10124 + "peerDependencies": { 10125 + "react": "^19.2.3" 10126 + } 10127 + }, 10128 + "node_modules/react-is": { 10129 + "version": "16.13.1", 10130 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 10131 + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", 10132 + "license": "MIT" 10133 + }, 10134 + "node_modules/react-remove-scroll": { 10135 + "version": "2.7.2", 10136 + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", 10137 + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", 10138 + "license": "MIT", 10139 + "dependencies": { 10140 + "react-remove-scroll-bar": "^2.3.7", 10141 + "react-style-singleton": "^2.2.3", 10142 + "tslib": "^2.1.0", 10143 + "use-callback-ref": "^1.3.3", 10144 + "use-sidecar": "^1.1.3" 10145 + }, 10146 + "engines": { 10147 + "node": ">=10" 10148 + }, 10149 + "peerDependencies": { 10150 + "@types/react": "*", 10151 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 10152 + }, 10153 + "peerDependenciesMeta": { 10154 + "@types/react": { 10155 + "optional": true 10156 + } 10157 + } 10158 + }, 10159 + "node_modules/react-remove-scroll-bar": { 10160 + "version": "2.3.8", 10161 + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", 10162 + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", 10163 + "license": "MIT", 10164 + "dependencies": { 10165 + "react-style-singleton": "^2.2.2", 10166 + "tslib": "^2.0.0" 10167 + }, 10168 + "engines": { 10169 + "node": ">=10" 10170 + }, 10171 + "peerDependencies": { 10172 + "@types/react": "*", 10173 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 10174 + }, 10175 + "peerDependenciesMeta": { 10176 + "@types/react": { 10177 + "optional": true 10178 + } 10179 + } 10180 + }, 10181 + "node_modules/react-smooth": { 10182 + "version": "4.0.4", 10183 + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.4.tgz", 10184 + "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==", 10185 + "license": "MIT", 10186 + "dependencies": { 10187 + "fast-equals": "^5.0.1", 10188 + "prop-types": "^15.8.1", 10189 + "react-transition-group": "^4.4.5" 10190 + }, 10191 + "peerDependencies": { 10192 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10193 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 10194 + } 10195 + }, 10196 + "node_modules/react-style-singleton": { 10197 + "version": "2.2.3", 10198 + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", 10199 + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", 10200 + "license": "MIT", 10201 + "dependencies": { 10202 + "get-nonce": "^1.0.0", 10203 + "tslib": "^2.0.0" 10204 + }, 10205 + "engines": { 10206 + "node": ">=10" 10207 + }, 10208 + "peerDependencies": { 10209 + "@types/react": "*", 10210 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 10211 + }, 10212 + "peerDependenciesMeta": { 10213 + "@types/react": { 10214 + "optional": true 10215 + } 10216 + } 10217 + }, 10218 + "node_modules/react-transition-group": { 10219 + "version": "4.4.5", 10220 + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", 10221 + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", 10222 + "license": "BSD-3-Clause", 10223 + "dependencies": { 10224 + "@babel/runtime": "^7.5.5", 10225 + "dom-helpers": "^5.0.1", 10226 + "loose-envify": "^1.4.0", 10227 + "prop-types": "^15.6.2" 10228 + }, 10229 + "peerDependencies": { 10230 + "react": ">=16.6.0", 10231 + "react-dom": ">=16.6.0" 10232 + } 10233 + }, 10234 + "node_modules/recast": { 10235 + "version": "0.23.11", 10236 + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", 10237 + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", 10238 + "dev": true, 10239 + "license": "MIT", 10240 + "dependencies": { 10241 + "ast-types": "^0.16.1", 10242 + "esprima": "~4.0.0", 10243 + "source-map": "~0.6.1", 10244 + "tiny-invariant": "^1.3.3", 10245 + "tslib": "^2.0.1" 10246 + }, 10247 + "engines": { 10248 + "node": ">= 4" 10249 + } 10250 + }, 10251 + "node_modules/recharts": { 10252 + "version": "2.15.4", 10253 + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.15.4.tgz", 10254 + "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==", 10255 + "license": "MIT", 10256 + "dependencies": { 10257 + "clsx": "^2.0.0", 10258 + "eventemitter3": "^4.0.1", 10259 + "lodash": "^4.17.21", 10260 + "react-is": "^18.3.1", 10261 + "react-smooth": "^4.0.4", 10262 + "recharts-scale": "^0.4.4", 10263 + "tiny-invariant": "^1.3.1", 10264 + "victory-vendor": "^36.6.8" 10265 + }, 10266 + "engines": { 10267 + "node": ">=14" 10268 + }, 10269 + "peerDependencies": { 10270 + "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10271 + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 10272 + } 10273 + }, 10274 + "node_modules/recharts-scale": { 10275 + "version": "0.4.5", 10276 + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", 10277 + "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", 10278 + "license": "MIT", 10279 + "dependencies": { 10280 + "decimal.js-light": "^2.4.1" 10281 + } 10282 + }, 10283 + "node_modules/recharts/node_modules/react-is": { 10284 + "version": "18.3.1", 10285 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", 10286 + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", 10287 + "license": "MIT" 10288 + }, 10289 + "node_modules/reflect.getprototypeof": { 10290 + "version": "1.0.10", 10291 + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", 10292 + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", 10293 + "dev": true, 10294 + "license": "MIT", 10295 + "dependencies": { 10296 + "call-bind": "^1.0.8", 10297 + "define-properties": "^1.2.1", 10298 + "es-abstract": "^1.23.9", 10299 + "es-errors": "^1.3.0", 10300 + "es-object-atoms": "^1.0.0", 10301 + "get-intrinsic": "^1.2.7", 10302 + "get-proto": "^1.0.1", 10303 + "which-builtin-type": "^1.2.1" 10304 + }, 10305 + "engines": { 10306 + "node": ">= 0.4" 10307 + }, 10308 + "funding": { 10309 + "url": "https://github.com/sponsors/ljharb" 10310 + } 10311 + }, 10312 + "node_modules/regexp.prototype.flags": { 10313 + "version": "1.5.4", 10314 + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", 10315 + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", 10316 + "dev": true, 10317 + "license": "MIT", 10318 + "dependencies": { 10319 + "call-bind": "^1.0.8", 10320 + "define-properties": "^1.2.1", 10321 + "es-errors": "^1.3.0", 10322 + "get-proto": "^1.0.1", 10323 + "gopd": "^1.2.0", 10324 + "set-function-name": "^2.0.2" 10325 + }, 10326 + "engines": { 10327 + "node": ">= 0.4" 10328 + }, 10329 + "funding": { 10330 + "url": "https://github.com/sponsors/ljharb" 10331 + } 10332 + }, 10333 + "node_modules/require-directory": { 10334 + "version": "2.1.1", 10335 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 10336 + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 10337 + "dev": true, 10338 + "license": "MIT", 10339 + "engines": { 10340 + "node": ">=0.10.0" 10341 + } 10342 + }, 10343 + "node_modules/require-from-string": { 10344 + "version": "2.0.2", 10345 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 10346 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 10347 + "dev": true, 10348 + "license": "MIT", 10349 + "engines": { 10350 + "node": ">=0.10.0" 10351 + } 10352 + }, 10353 + "node_modules/resolve": { 10354 + "version": "1.22.11", 10355 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", 10356 + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", 10357 + "dev": true, 10358 + "license": "MIT", 10359 + "dependencies": { 10360 + "is-core-module": "^2.16.1", 10361 + "path-parse": "^1.0.7", 10362 + "supports-preserve-symlinks-flag": "^1.0.0" 10363 + }, 10364 + "bin": { 10365 + "resolve": "bin/resolve" 10366 + }, 10367 + "engines": { 10368 + "node": ">= 0.4" 10369 + }, 10370 + "funding": { 10371 + "url": "https://github.com/sponsors/ljharb" 10372 + } 10373 + }, 10374 + "node_modules/resolve-from": { 10375 + "version": "4.0.0", 10376 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 10377 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 10378 + "dev": true, 10379 + "license": "MIT", 10380 + "engines": { 10381 + "node": ">=4" 10382 + } 10383 + }, 10384 + "node_modules/resolve-pkg-maps": { 10385 + "version": "1.0.0", 10386 + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", 10387 + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", 10388 + "dev": true, 10389 + "license": "MIT", 10390 + "funding": { 10391 + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" 10392 + } 10393 + }, 10394 + "node_modules/restore-cursor": { 10395 + "version": "5.1.0", 10396 + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", 10397 + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", 10398 + "dev": true, 10399 + "license": "MIT", 10400 + "dependencies": { 10401 + "onetime": "^7.0.0", 10402 + "signal-exit": "^4.1.0" 10403 + }, 10404 + "engines": { 10405 + "node": ">=18" 10406 + }, 10407 + "funding": { 10408 + "url": "https://github.com/sponsors/sindresorhus" 10409 + } 10410 + }, 10411 + "node_modules/rettime": { 10412 + "version": "0.10.1", 10413 + "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.10.1.tgz", 10414 + "integrity": "sha512-uyDrIlUEH37cinabq0AX4QbgV4HbFZ/gqoiunWQ1UqBtRvTTytwhNYjE++pO/MjPTZL5KQCf2bEoJ/BJNVQ5Kw==", 10415 + "dev": true, 10416 + "license": "MIT" 10417 + }, 10418 + "node_modules/reusify": { 10419 + "version": "1.1.0", 10420 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 10421 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 10422 + "dev": true, 10423 + "license": "MIT", 10424 + "engines": { 10425 + "iojs": ">=1.0.0", 10426 + "node": ">=0.10.0" 10427 + } 10428 + }, 10429 + "node_modules/router": { 10430 + "version": "2.2.0", 10431 + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", 10432 + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", 10433 + "dev": true, 10434 + "license": "MIT", 10435 + "dependencies": { 10436 + "debug": "^4.4.0", 10437 + "depd": "^2.0.0", 10438 + "is-promise": "^4.0.0", 10439 + "parseurl": "^1.3.3", 10440 + "path-to-regexp": "^8.0.0" 10441 + }, 10442 + "engines": { 10443 + "node": ">= 18" 10444 + } 10445 + }, 10446 + "node_modules/router/node_modules/path-to-regexp": { 10447 + "version": "8.3.0", 10448 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", 10449 + "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", 10450 + "dev": true, 10451 + "license": "MIT", 10452 + "funding": { 10453 + "type": "opencollective", 10454 + "url": "https://opencollective.com/express" 10455 + } 10456 + }, 10457 + "node_modules/run-applescript": { 10458 + "version": "7.1.0", 10459 + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", 10460 + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", 10461 + "dev": true, 10462 + "license": "MIT", 10463 + "engines": { 10464 + "node": ">=18" 10465 + }, 10466 + "funding": { 10467 + "url": "https://github.com/sponsors/sindresorhus" 10468 + } 10469 + }, 10470 + "node_modules/run-parallel": { 10471 + "version": "1.2.0", 10472 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 10473 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 10474 + "dev": true, 10475 + "funding": [ 10476 + { 10477 + "type": "github", 10478 + "url": "https://github.com/sponsors/feross" 10479 + }, 10480 + { 10481 + "type": "patreon", 10482 + "url": "https://www.patreon.com/feross" 10483 + }, 10484 + { 10485 + "type": "consulting", 10486 + "url": "https://feross.org/support" 10487 + } 10488 + ], 10489 + "license": "MIT", 10490 + "dependencies": { 10491 + "queue-microtask": "^1.2.2" 10492 + } 10493 + }, 10494 + "node_modules/safe-array-concat": { 10495 + "version": "1.1.3", 10496 + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", 10497 + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", 10498 + "dev": true, 10499 + "license": "MIT", 10500 + "dependencies": { 10501 + "call-bind": "^1.0.8", 10502 + "call-bound": "^1.0.2", 10503 + "get-intrinsic": "^1.2.6", 10504 + "has-symbols": "^1.1.0", 10505 + "isarray": "^2.0.5" 10506 + }, 10507 + "engines": { 10508 + "node": ">=0.4" 10509 + }, 10510 + "funding": { 10511 + "url": "https://github.com/sponsors/ljharb" 10512 + } 10513 + }, 10514 + "node_modules/safe-push-apply": { 10515 + "version": "1.0.0", 10516 + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", 10517 + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", 10518 + "dev": true, 10519 + "license": "MIT", 10520 + "dependencies": { 10521 + "es-errors": "^1.3.0", 10522 + "isarray": "^2.0.5" 10523 + }, 10524 + "engines": { 10525 + "node": ">= 0.4" 10526 + }, 10527 + "funding": { 10528 + "url": "https://github.com/sponsors/ljharb" 10529 + } 10530 + }, 10531 + "node_modules/safe-regex-test": { 10532 + "version": "1.1.0", 10533 + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", 10534 + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", 10535 + "dev": true, 10536 + "license": "MIT", 10537 + "dependencies": { 10538 + "call-bound": "^1.0.2", 10539 + "es-errors": "^1.3.0", 10540 + "is-regex": "^1.2.1" 10541 + }, 10542 + "engines": { 10543 + "node": ">= 0.4" 10544 + }, 10545 + "funding": { 10546 + "url": "https://github.com/sponsors/ljharb" 10547 + } 10548 + }, 10549 + "node_modules/safer-buffer": { 10550 + "version": "2.1.2", 10551 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 10552 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 10553 + "dev": true, 10554 + "license": "MIT" 10555 + }, 10556 + "node_modules/scheduler": { 10557 + "version": "0.27.0", 10558 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", 10559 + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", 10560 + "license": "MIT" 10561 + }, 10562 + "node_modules/semver": { 10563 + "version": "6.3.1", 10564 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 10565 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 10566 + "dev": true, 10567 + "license": "ISC", 10568 + "bin": { 10569 + "semver": "bin/semver.js" 10570 + } 10571 + }, 10572 + "node_modules/send": { 10573 + "version": "1.2.1", 10574 + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", 10575 + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", 10576 + "dev": true, 10577 + "license": "MIT", 10578 + "dependencies": { 10579 + "debug": "^4.4.3", 10580 + "encodeurl": "^2.0.0", 10581 + "escape-html": "^1.0.3", 10582 + "etag": "^1.8.1", 10583 + "fresh": "^2.0.0", 10584 + "http-errors": "^2.0.1", 10585 + "mime-types": "^3.0.2", 10586 + "ms": "^2.1.3", 10587 + "on-finished": "^2.4.1", 10588 + "range-parser": "^1.2.1", 10589 + "statuses": "^2.0.2" 10590 + }, 10591 + "engines": { 10592 + "node": ">= 18" 10593 + }, 10594 + "funding": { 10595 + "type": "opencollective", 10596 + "url": "https://opencollective.com/express" 10597 + } 10598 + }, 10599 + "node_modules/serve-static": { 10600 + "version": "2.2.1", 10601 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", 10602 + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", 10603 + "dev": true, 10604 + "license": "MIT", 10605 + "dependencies": { 10606 + "encodeurl": "^2.0.0", 10607 + "escape-html": "^1.0.3", 10608 + "parseurl": "^1.3.3", 10609 + "send": "^1.2.0" 10610 + }, 10611 + "engines": { 10612 + "node": ">= 18" 10613 + }, 10614 + "funding": { 10615 + "type": "opencollective", 10616 + "url": "https://opencollective.com/express" 10617 + } 10618 + }, 10619 + "node_modules/set-function-length": { 10620 + "version": "1.2.2", 10621 + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 10622 + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 10623 + "dev": true, 10624 + "license": "MIT", 10625 + "dependencies": { 10626 + "define-data-property": "^1.1.4", 10627 + "es-errors": "^1.3.0", 10628 + "function-bind": "^1.1.2", 10629 + "get-intrinsic": "^1.2.4", 10630 + "gopd": "^1.0.1", 10631 + "has-property-descriptors": "^1.0.2" 10632 + }, 10633 + "engines": { 10634 + "node": ">= 0.4" 10635 + } 10636 + }, 10637 + "node_modules/set-function-name": { 10638 + "version": "2.0.2", 10639 + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", 10640 + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", 10641 + "dev": true, 10642 + "license": "MIT", 10643 + "dependencies": { 10644 + "define-data-property": "^1.1.4", 10645 + "es-errors": "^1.3.0", 10646 + "functions-have-names": "^1.2.3", 10647 + "has-property-descriptors": "^1.0.2" 10648 + }, 10649 + "engines": { 10650 + "node": ">= 0.4" 10651 + } 10652 + }, 10653 + "node_modules/set-proto": { 10654 + "version": "1.0.0", 10655 + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", 10656 + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", 10657 + "dev": true, 10658 + "license": "MIT", 10659 + "dependencies": { 10660 + "dunder-proto": "^1.0.1", 10661 + "es-errors": "^1.3.0", 10662 + "es-object-atoms": "^1.0.0" 10663 + }, 10664 + "engines": { 10665 + "node": ">= 0.4" 10666 + } 10667 + }, 10668 + "node_modules/setprototypeof": { 10669 + "version": "1.2.0", 10670 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", 10671 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", 10672 + "dev": true, 10673 + "license": "ISC" 10674 + }, 10675 + "node_modules/shadcn": { 10676 + "version": "3.8.4", 10677 + "resolved": "https://registry.npmjs.org/shadcn/-/shadcn-3.8.4.tgz", 10678 + "integrity": "sha512-pSad/m1+PGzB0aLsRBV0EkyGg9al1nJqYUuucg6d8v8xZspPZ5/ehGNEp5M4b1KQYqdO5/gGPbkhVbgmXqG9Pw==", 10679 + "dev": true, 10680 + "license": "MIT", 10681 + "dependencies": { 10682 + "@antfu/ni": "^25.0.0", 10683 + "@babel/core": "^7.28.0", 10684 + "@babel/parser": "^7.28.0", 10685 + "@babel/plugin-transform-typescript": "^7.28.0", 10686 + "@babel/preset-typescript": "^7.27.1", 10687 + "@dotenvx/dotenvx": "^1.48.4", 10688 + "@modelcontextprotocol/sdk": "^1.26.0", 10689 + "@types/validate-npm-package-name": "^4.0.2", 10690 + "browserslist": "^4.26.2", 10691 + "commander": "^14.0.0", 10692 + "cosmiconfig": "^9.0.0", 10693 + "dedent": "^1.6.0", 10694 + "deepmerge": "^4.3.1", 10695 + "diff": "^8.0.2", 10696 + "execa": "^9.6.0", 10697 + "fast-glob": "^3.3.3", 10698 + "fs-extra": "^11.3.1", 10699 + "fuzzysort": "^3.1.0", 10700 + "https-proxy-agent": "^7.0.6", 10701 + "kleur": "^4.1.5", 10702 + "msw": "^2.10.4", 10703 + "node-fetch": "^3.3.2", 10704 + "open": "^11.0.0", 10705 + "ora": "^8.2.0", 10706 + "postcss": "^8.5.6", 10707 + "postcss-selector-parser": "^7.1.0", 10708 + "prompts": "^2.4.2", 10709 + "recast": "^0.23.11", 10710 + "stringify-object": "^5.0.0", 10711 + "tailwind-merge": "^3.0.1", 10712 + "ts-morph": "^26.0.0", 10713 + "tsconfig-paths": "^4.2.0", 10714 + "validate-npm-package-name": "^7.0.1", 10715 + "zod": "^3.24.1", 10716 + "zod-to-json-schema": "^3.24.6" 10717 + }, 10718 + "bin": { 10719 + "shadcn": "dist/index.js" 10720 + } 10721 + }, 10722 + "node_modules/shadcn/node_modules/fast-glob": { 10723 + "version": "3.3.3", 10724 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 10725 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 10726 + "dev": true, 10727 + "license": "MIT", 10728 + "dependencies": { 10729 + "@nodelib/fs.stat": "^2.0.2", 10730 + "@nodelib/fs.walk": "^1.2.3", 10731 + "glob-parent": "^5.1.2", 10732 + "merge2": "^1.3.0", 10733 + "micromatch": "^4.0.8" 10734 + }, 10735 + "engines": { 10736 + "node": ">=8.6.0" 10737 + } 10738 + }, 10739 + "node_modules/shadcn/node_modules/glob-parent": { 10740 + "version": "5.1.2", 10741 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 10742 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 10743 + "dev": true, 10744 + "license": "ISC", 10745 + "dependencies": { 10746 + "is-glob": "^4.0.1" 10747 + }, 10748 + "engines": { 10749 + "node": ">= 6" 10750 + } 10751 + }, 10752 + "node_modules/shadcn/node_modules/tsconfig-paths": { 10753 + "version": "4.2.0", 10754 + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", 10755 + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", 10756 + "dev": true, 10757 + "license": "MIT", 10758 + "dependencies": { 10759 + "json5": "^2.2.2", 10760 + "minimist": "^1.2.6", 10761 + "strip-bom": "^3.0.0" 10762 + }, 10763 + "engines": { 10764 + "node": ">=6" 10765 + } 10766 + }, 10767 + "node_modules/shadcn/node_modules/zod": { 10768 + "version": "3.25.76", 10769 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", 10770 + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", 10771 + "dev": true, 10772 + "license": "MIT", 10773 + "funding": { 10774 + "url": "https://github.com/sponsors/colinhacks" 10775 + } 10776 + }, 10777 + "node_modules/sharp": { 10778 + "version": "0.34.5", 10779 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", 10780 + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", 10781 + "hasInstallScript": true, 10782 + "license": "Apache-2.0", 10783 + "optional": true, 10784 + "dependencies": { 10785 + "@img/colour": "^1.0.0", 10786 + "detect-libc": "^2.1.2", 10787 + "semver": "^7.7.3" 10788 + }, 10789 + "engines": { 10790 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 10791 + }, 10792 + "funding": { 10793 + "url": "https://opencollective.com/libvips" 10794 + }, 10795 + "optionalDependencies": { 10796 + "@img/sharp-darwin-arm64": "0.34.5", 10797 + "@img/sharp-darwin-x64": "0.34.5", 10798 + "@img/sharp-libvips-darwin-arm64": "1.2.4", 10799 + "@img/sharp-libvips-darwin-x64": "1.2.4", 10800 + "@img/sharp-libvips-linux-arm": "1.2.4", 10801 + "@img/sharp-libvips-linux-arm64": "1.2.4", 10802 + "@img/sharp-libvips-linux-ppc64": "1.2.4", 10803 + "@img/sharp-libvips-linux-riscv64": "1.2.4", 10804 + "@img/sharp-libvips-linux-s390x": "1.2.4", 10805 + "@img/sharp-libvips-linux-x64": "1.2.4", 10806 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", 10807 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", 10808 + "@img/sharp-linux-arm": "0.34.5", 10809 + "@img/sharp-linux-arm64": "0.34.5", 10810 + "@img/sharp-linux-ppc64": "0.34.5", 10811 + "@img/sharp-linux-riscv64": "0.34.5", 10812 + "@img/sharp-linux-s390x": "0.34.5", 10813 + "@img/sharp-linux-x64": "0.34.5", 10814 + "@img/sharp-linuxmusl-arm64": "0.34.5", 10815 + "@img/sharp-linuxmusl-x64": "0.34.5", 10816 + "@img/sharp-wasm32": "0.34.5", 10817 + "@img/sharp-win32-arm64": "0.34.5", 10818 + "@img/sharp-win32-ia32": "0.34.5", 10819 + "@img/sharp-win32-x64": "0.34.5" 10820 + } 10821 + }, 10822 + "node_modules/sharp/node_modules/semver": { 10823 + "version": "7.7.4", 10824 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", 10825 + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", 10826 + "license": "ISC", 10827 + "optional": true, 10828 + "bin": { 10829 + "semver": "bin/semver.js" 10830 + }, 10831 + "engines": { 10832 + "node": ">=10" 10833 + } 10834 + }, 10835 + "node_modules/shebang-command": { 10836 + "version": "2.0.0", 10837 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 10838 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 10839 + "dev": true, 10840 + "license": "MIT", 10841 + "dependencies": { 10842 + "shebang-regex": "^3.0.0" 10843 + }, 10844 + "engines": { 10845 + "node": ">=8" 10846 + } 10847 + }, 10848 + "node_modules/shebang-regex": { 10849 + "version": "3.0.0", 10850 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 10851 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 10852 + "dev": true, 10853 + "license": "MIT", 10854 + "engines": { 10855 + "node": ">=8" 10856 + } 10857 + }, 10858 + "node_modules/side-channel": { 10859 + "version": "1.1.0", 10860 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", 10861 + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", 10862 + "dev": true, 10863 + "license": "MIT", 10864 + "dependencies": { 10865 + "es-errors": "^1.3.0", 10866 + "object-inspect": "^1.13.3", 10867 + "side-channel-list": "^1.0.0", 10868 + "side-channel-map": "^1.0.1", 10869 + "side-channel-weakmap": "^1.0.2" 10870 + }, 10871 + "engines": { 10872 + "node": ">= 0.4" 10873 + }, 10874 + "funding": { 10875 + "url": "https://github.com/sponsors/ljharb" 10876 + } 10877 + }, 10878 + "node_modules/side-channel-list": { 10879 + "version": "1.0.0", 10880 + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", 10881 + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", 10882 + "dev": true, 10883 + "license": "MIT", 10884 + "dependencies": { 10885 + "es-errors": "^1.3.0", 10886 + "object-inspect": "^1.13.3" 10887 + }, 10888 + "engines": { 10889 + "node": ">= 0.4" 10890 + }, 10891 + "funding": { 10892 + "url": "https://github.com/sponsors/ljharb" 10893 + } 10894 + }, 10895 + "node_modules/side-channel-map": { 10896 + "version": "1.0.1", 10897 + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", 10898 + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", 10899 + "dev": true, 10900 + "license": "MIT", 10901 + "dependencies": { 10902 + "call-bound": "^1.0.2", 10903 + "es-errors": "^1.3.0", 10904 + "get-intrinsic": "^1.2.5", 10905 + "object-inspect": "^1.13.3" 10906 + }, 10907 + "engines": { 10908 + "node": ">= 0.4" 10909 + }, 10910 + "funding": { 10911 + "url": "https://github.com/sponsors/ljharb" 10912 + } 10913 + }, 10914 + "node_modules/side-channel-weakmap": { 10915 + "version": "1.0.2", 10916 + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", 10917 + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", 10918 + "dev": true, 10919 + "license": "MIT", 10920 + "dependencies": { 10921 + "call-bound": "^1.0.2", 10922 + "es-errors": "^1.3.0", 10923 + "get-intrinsic": "^1.2.5", 10924 + "object-inspect": "^1.13.3", 10925 + "side-channel-map": "^1.0.1" 10926 + }, 10927 + "engines": { 10928 + "node": ">= 0.4" 10929 + }, 10930 + "funding": { 10931 + "url": "https://github.com/sponsors/ljharb" 10932 + } 10933 + }, 10934 + "node_modules/signal-exit": { 10935 + "version": "4.1.0", 10936 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 10937 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 10938 + "dev": true, 10939 + "license": "ISC", 10940 + "engines": { 10941 + "node": ">=14" 10942 + }, 10943 + "funding": { 10944 + "url": "https://github.com/sponsors/isaacs" 10945 + } 10946 + }, 10947 + "node_modules/sisteransi": { 10948 + "version": "1.0.5", 10949 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 10950 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", 10951 + "dev": true, 10952 + "license": "MIT" 10953 + }, 10954 + "node_modules/sonner": { 10955 + "version": "2.0.7", 10956 + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", 10957 + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", 10958 + "license": "MIT", 10959 + "peerDependencies": { 10960 + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", 10961 + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" 10962 + } 10963 + }, 10964 + "node_modules/source-map": { 10965 + "version": "0.6.1", 10966 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 10967 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 10968 + "dev": true, 10969 + "license": "BSD-3-Clause", 10970 + "engines": { 10971 + "node": ">=0.10.0" 10972 + } 10973 + }, 10974 + "node_modules/source-map-js": { 10975 + "version": "1.2.1", 10976 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 10977 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 10978 + "license": "BSD-3-Clause", 10979 + "engines": { 10980 + "node": ">=0.10.0" 10981 + } 10982 + }, 10983 + "node_modules/stable-hash": { 10984 + "version": "0.0.5", 10985 + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", 10986 + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", 10987 + "dev": true, 10988 + "license": "MIT" 10989 + }, 10990 + "node_modules/statuses": { 10991 + "version": "2.0.2", 10992 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", 10993 + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", 10994 + "dev": true, 10995 + "license": "MIT", 10996 + "engines": { 10997 + "node": ">= 0.8" 10998 + } 10999 + }, 11000 + "node_modules/stdin-discarder": { 11001 + "version": "0.2.2", 11002 + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", 11003 + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", 11004 + "dev": true, 11005 + "license": "MIT", 11006 + "engines": { 11007 + "node": ">=18" 11008 + }, 11009 + "funding": { 11010 + "url": "https://github.com/sponsors/sindresorhus" 11011 + } 11012 + }, 11013 + "node_modules/stop-iteration-iterator": { 11014 + "version": "1.1.0", 11015 + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", 11016 + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", 11017 + "dev": true, 11018 + "license": "MIT", 11019 + "dependencies": { 11020 + "es-errors": "^1.3.0", 11021 + "internal-slot": "^1.1.0" 11022 + }, 11023 + "engines": { 11024 + "node": ">= 0.4" 11025 + } 11026 + }, 11027 + "node_modules/strict-event-emitter": { 11028 + "version": "0.5.1", 11029 + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", 11030 + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", 11031 + "dev": true, 11032 + "license": "MIT" 11033 + }, 11034 + "node_modules/string-width": { 11035 + "version": "7.2.0", 11036 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", 11037 + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", 11038 + "dev": true, 11039 + "license": "MIT", 11040 + "dependencies": { 11041 + "emoji-regex": "^10.3.0", 11042 + "get-east-asian-width": "^1.0.0", 11043 + "strip-ansi": "^7.1.0" 11044 + }, 11045 + "engines": { 11046 + "node": ">=18" 11047 + }, 11048 + "funding": { 11049 + "url": "https://github.com/sponsors/sindresorhus" 11050 + } 11051 + }, 11052 + "node_modules/string-width/node_modules/emoji-regex": { 11053 + "version": "10.6.0", 11054 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", 11055 + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", 11056 + "dev": true, 11057 + "license": "MIT" 11058 + }, 11059 + "node_modules/string.prototype.includes": { 11060 + "version": "2.0.1", 11061 + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", 11062 + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", 11063 + "dev": true, 11064 + "license": "MIT", 11065 + "dependencies": { 11066 + "call-bind": "^1.0.7", 11067 + "define-properties": "^1.2.1", 11068 + "es-abstract": "^1.23.3" 11069 + }, 11070 + "engines": { 11071 + "node": ">= 0.4" 11072 + } 11073 + }, 11074 + "node_modules/string.prototype.matchall": { 11075 + "version": "4.0.12", 11076 + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", 11077 + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", 11078 + "dev": true, 11079 + "license": "MIT", 11080 + "dependencies": { 11081 + "call-bind": "^1.0.8", 11082 + "call-bound": "^1.0.3", 11083 + "define-properties": "^1.2.1", 11084 + "es-abstract": "^1.23.6", 11085 + "es-errors": "^1.3.0", 11086 + "es-object-atoms": "^1.0.0", 11087 + "get-intrinsic": "^1.2.6", 11088 + "gopd": "^1.2.0", 11089 + "has-symbols": "^1.1.0", 11090 + "internal-slot": "^1.1.0", 11091 + "regexp.prototype.flags": "^1.5.3", 11092 + "set-function-name": "^2.0.2", 11093 + "side-channel": "^1.1.0" 11094 + }, 11095 + "engines": { 11096 + "node": ">= 0.4" 11097 + }, 11098 + "funding": { 11099 + "url": "https://github.com/sponsors/ljharb" 11100 + } 11101 + }, 11102 + "node_modules/string.prototype.repeat": { 11103 + "version": "1.0.0", 11104 + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", 11105 + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", 11106 + "dev": true, 11107 + "license": "MIT", 11108 + "dependencies": { 11109 + "define-properties": "^1.1.3", 11110 + "es-abstract": "^1.17.5" 11111 + } 11112 + }, 11113 + "node_modules/string.prototype.trim": { 11114 + "version": "1.2.10", 11115 + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", 11116 + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", 11117 + "dev": true, 11118 + "license": "MIT", 11119 + "dependencies": { 11120 + "call-bind": "^1.0.8", 11121 + "call-bound": "^1.0.2", 11122 + "define-data-property": "^1.1.4", 11123 + "define-properties": "^1.2.1", 11124 + "es-abstract": "^1.23.5", 11125 + "es-object-atoms": "^1.0.0", 11126 + "has-property-descriptors": "^1.0.2" 11127 + }, 11128 + "engines": { 11129 + "node": ">= 0.4" 11130 + }, 11131 + "funding": { 11132 + "url": "https://github.com/sponsors/ljharb" 11133 + } 11134 + }, 11135 + "node_modules/string.prototype.trimend": { 11136 + "version": "1.0.9", 11137 + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", 11138 + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", 11139 + "dev": true, 11140 + "license": "MIT", 11141 + "dependencies": { 11142 + "call-bind": "^1.0.8", 11143 + "call-bound": "^1.0.2", 11144 + "define-properties": "^1.2.1", 11145 + "es-object-atoms": "^1.0.0" 11146 + }, 11147 + "engines": { 11148 + "node": ">= 0.4" 11149 + }, 11150 + "funding": { 11151 + "url": "https://github.com/sponsors/ljharb" 11152 + } 11153 + }, 11154 + "node_modules/string.prototype.trimstart": { 11155 + "version": "1.0.8", 11156 + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", 11157 + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", 11158 + "dev": true, 11159 + "license": "MIT", 11160 + "dependencies": { 11161 + "call-bind": "^1.0.7", 11162 + "define-properties": "^1.2.1", 11163 + "es-object-atoms": "^1.0.0" 11164 + }, 11165 + "engines": { 11166 + "node": ">= 0.4" 11167 + }, 11168 + "funding": { 11169 + "url": "https://github.com/sponsors/ljharb" 11170 + } 11171 + }, 11172 + "node_modules/stringify-object": { 11173 + "version": "5.0.0", 11174 + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-5.0.0.tgz", 11175 + "integrity": "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==", 11176 + "dev": true, 11177 + "license": "BSD-2-Clause", 11178 + "dependencies": { 11179 + "get-own-enumerable-keys": "^1.0.0", 11180 + "is-obj": "^3.0.0", 11181 + "is-regexp": "^3.1.0" 11182 + }, 11183 + "engines": { 11184 + "node": ">=14.16" 11185 + }, 11186 + "funding": { 11187 + "url": "https://github.com/yeoman/stringify-object?sponsor=1" 11188 + } 11189 + }, 11190 + "node_modules/strip-ansi": { 11191 + "version": "7.1.2", 11192 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", 11193 + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", 11194 + "dev": true, 11195 + "license": "MIT", 11196 + "dependencies": { 11197 + "ansi-regex": "^6.0.1" 11198 + }, 11199 + "engines": { 11200 + "node": ">=12" 11201 + }, 11202 + "funding": { 11203 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 11204 + } 11205 + }, 11206 + "node_modules/strip-bom": { 11207 + "version": "3.0.0", 11208 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 11209 + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 11210 + "dev": true, 11211 + "license": "MIT", 11212 + "engines": { 11213 + "node": ">=4" 11214 + } 11215 + }, 11216 + "node_modules/strip-final-newline": { 11217 + "version": "4.0.0", 11218 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", 11219 + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", 11220 + "dev": true, 11221 + "license": "MIT", 11222 + "engines": { 11223 + "node": ">=18" 11224 + }, 11225 + "funding": { 11226 + "url": "https://github.com/sponsors/sindresorhus" 11227 + } 11228 + }, 11229 + "node_modules/strip-json-comments": { 11230 + "version": "3.1.1", 11231 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 11232 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 11233 + "dev": true, 11234 + "license": "MIT", 11235 + "engines": { 11236 + "node": ">=8" 11237 + }, 11238 + "funding": { 11239 + "url": "https://github.com/sponsors/sindresorhus" 11240 + } 11241 + }, 11242 + "node_modules/styled-jsx": { 11243 + "version": "5.1.6", 11244 + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", 11245 + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", 11246 + "license": "MIT", 11247 + "dependencies": { 11248 + "client-only": "0.0.1" 11249 + }, 11250 + "engines": { 11251 + "node": ">= 12.0.0" 11252 + }, 11253 + "peerDependencies": { 11254 + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" 11255 + }, 11256 + "peerDependenciesMeta": { 11257 + "@babel/core": { 11258 + "optional": true 11259 + }, 11260 + "babel-plugin-macros": { 11261 + "optional": true 11262 + } 11263 + } 11264 + }, 11265 + "node_modules/supports-color": { 11266 + "version": "7.2.0", 11267 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 11268 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 11269 + "dev": true, 11270 + "license": "MIT", 11271 + "dependencies": { 11272 + "has-flag": "^4.0.0" 11273 + }, 11274 + "engines": { 11275 + "node": ">=8" 11276 + } 11277 + }, 11278 + "node_modules/supports-preserve-symlinks-flag": { 11279 + "version": "1.0.0", 11280 + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 11281 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 11282 + "dev": true, 11283 + "license": "MIT", 11284 + "engines": { 11285 + "node": ">= 0.4" 11286 + }, 11287 + "funding": { 11288 + "url": "https://github.com/sponsors/ljharb" 11289 + } 11290 + }, 11291 + "node_modules/tagged-tag": { 11292 + "version": "1.0.0", 11293 + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", 11294 + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", 11295 + "dev": true, 11296 + "license": "MIT", 11297 + "engines": { 11298 + "node": ">=20" 11299 + }, 11300 + "funding": { 11301 + "url": "https://github.com/sponsors/sindresorhus" 11302 + } 11303 + }, 11304 + "node_modules/tailwind-merge": { 11305 + "version": "3.4.0", 11306 + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", 11307 + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", 11308 + "license": "MIT", 11309 + "funding": { 11310 + "type": "github", 11311 + "url": "https://github.com/sponsors/dcastil" 11312 + } 11313 + }, 11314 + "node_modules/tailwindcss": { 11315 + "version": "4.1.18", 11316 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", 11317 + "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", 11318 + "dev": true, 11319 + "license": "MIT" 11320 + }, 11321 + "node_modules/tapable": { 11322 + "version": "2.3.0", 11323 + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", 11324 + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", 11325 + "dev": true, 11326 + "license": "MIT", 11327 + "engines": { 11328 + "node": ">=6" 11329 + }, 11330 + "funding": { 11331 + "type": "opencollective", 11332 + "url": "https://opencollective.com/webpack" 11333 + } 11334 + }, 11335 + "node_modules/tiny-invariant": { 11336 + "version": "1.3.3", 11337 + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", 11338 + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", 11339 + "license": "MIT" 11340 + }, 11341 + "node_modules/tinyexec": { 11342 + "version": "1.0.2", 11343 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", 11344 + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", 11345 + "dev": true, 11346 + "license": "MIT", 11347 + "engines": { 11348 + "node": ">=18" 11349 + } 11350 + }, 11351 + "node_modules/tinyglobby": { 11352 + "version": "0.2.15", 11353 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 11354 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 11355 + "dev": true, 11356 + "license": "MIT", 11357 + "dependencies": { 11358 + "fdir": "^6.5.0", 11359 + "picomatch": "^4.0.3" 11360 + }, 11361 + "engines": { 11362 + "node": ">=12.0.0" 11363 + }, 11364 + "funding": { 11365 + "url": "https://github.com/sponsors/SuperchupuDev" 11366 + } 11367 + }, 11368 + "node_modules/tinyglobby/node_modules/fdir": { 11369 + "version": "6.5.0", 11370 + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 11371 + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 11372 + "dev": true, 11373 + "license": "MIT", 11374 + "engines": { 11375 + "node": ">=12.0.0" 11376 + }, 11377 + "peerDependencies": { 11378 + "picomatch": "^3 || ^4" 11379 + }, 11380 + "peerDependenciesMeta": { 11381 + "picomatch": { 11382 + "optional": true 11383 + } 11384 + } 11385 + }, 11386 + "node_modules/tinyglobby/node_modules/picomatch": { 11387 + "version": "4.0.3", 11388 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 11389 + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 11390 + "dev": true, 11391 + "license": "MIT", 11392 + "peer": true, 11393 + "engines": { 11394 + "node": ">=12" 11395 + }, 11396 + "funding": { 11397 + "url": "https://github.com/sponsors/jonschlinkert" 11398 + } 11399 + }, 11400 + "node_modules/tldts": { 11401 + "version": "7.0.23", 11402 + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.23.tgz", 11403 + "integrity": "sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==", 11404 + "dev": true, 11405 + "license": "MIT", 11406 + "dependencies": { 11407 + "tldts-core": "^7.0.23" 11408 + }, 11409 + "bin": { 11410 + "tldts": "bin/cli.js" 11411 + } 11412 + }, 11413 + "node_modules/tldts-core": { 11414 + "version": "7.0.23", 11415 + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.23.tgz", 11416 + "integrity": "sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==", 11417 + "dev": true, 11418 + "license": "MIT" 11419 + }, 11420 + "node_modules/to-regex-range": { 11421 + "version": "5.0.1", 11422 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 11423 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 11424 + "dev": true, 11425 + "license": "MIT", 11426 + "dependencies": { 11427 + "is-number": "^7.0.0" 11428 + }, 11429 + "engines": { 11430 + "node": ">=8.0" 11431 + } 11432 + }, 11433 + "node_modules/toidentifier": { 11434 + "version": "1.0.1", 11435 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", 11436 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", 11437 + "dev": true, 11438 + "license": "MIT", 11439 + "engines": { 11440 + "node": ">=0.6" 11441 + } 11442 + }, 11443 + "node_modules/tough-cookie": { 11444 + "version": "6.0.0", 11445 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", 11446 + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", 11447 + "dev": true, 11448 + "license": "BSD-3-Clause", 11449 + "dependencies": { 11450 + "tldts": "^7.0.5" 11451 + }, 11452 + "engines": { 11453 + "node": ">=16" 11454 + } 11455 + }, 11456 + "node_modules/ts-api-utils": { 11457 + "version": "2.4.0", 11458 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", 11459 + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", 11460 + "dev": true, 11461 + "license": "MIT", 11462 + "engines": { 11463 + "node": ">=18.12" 11464 + }, 11465 + "peerDependencies": { 11466 + "typescript": ">=4.8.4" 11467 + } 11468 + }, 11469 + "node_modules/ts-morph": { 11470 + "version": "26.0.0", 11471 + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-26.0.0.tgz", 11472 + "integrity": "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==", 11473 + "dev": true, 11474 + "license": "MIT", 11475 + "dependencies": { 11476 + "@ts-morph/common": "~0.27.0", 11477 + "code-block-writer": "^13.0.3" 11478 + } 11479 + }, 11480 + "node_modules/tsconfig-paths": { 11481 + "version": "3.15.0", 11482 + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", 11483 + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", 11484 + "dev": true, 11485 + "license": "MIT", 11486 + "dependencies": { 11487 + "@types/json5": "^0.0.29", 11488 + "json5": "^1.0.2", 11489 + "minimist": "^1.2.6", 11490 + "strip-bom": "^3.0.0" 11491 + } 11492 + }, 11493 + "node_modules/tsconfig-paths/node_modules/json5": { 11494 + "version": "1.0.2", 11495 + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", 11496 + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", 11497 + "dev": true, 11498 + "license": "MIT", 11499 + "dependencies": { 11500 + "minimist": "^1.2.0" 11501 + }, 11502 + "bin": { 11503 + "json5": "lib/cli.js" 11504 + } 11505 + }, 11506 + "node_modules/tslib": { 11507 + "version": "2.8.1", 11508 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 11509 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 11510 + "license": "0BSD" 11511 + }, 11512 + "node_modules/tw-animate-css": { 11513 + "version": "1.4.0", 11514 + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", 11515 + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", 11516 + "dev": true, 11517 + "license": "MIT", 11518 + "funding": { 11519 + "url": "https://github.com/sponsors/Wombosvideo" 11520 + } 11521 + }, 11522 + "node_modules/type-check": { 11523 + "version": "0.4.0", 11524 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 11525 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 11526 + "dev": true, 11527 + "license": "MIT", 11528 + "dependencies": { 11529 + "prelude-ls": "^1.2.1" 11530 + }, 11531 + "engines": { 11532 + "node": ">= 0.8.0" 11533 + } 11534 + }, 11535 + "node_modules/type-fest": { 11536 + "version": "5.4.4", 11537 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.4.4.tgz", 11538 + "integrity": "sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==", 11539 + "dev": true, 11540 + "license": "(MIT OR CC0-1.0)", 11541 + "dependencies": { 11542 + "tagged-tag": "^1.0.0" 11543 + }, 11544 + "engines": { 11545 + "node": ">=20" 11546 + }, 11547 + "funding": { 11548 + "url": "https://github.com/sponsors/sindresorhus" 11549 + } 11550 + }, 11551 + "node_modules/type-is": { 11552 + "version": "2.0.1", 11553 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", 11554 + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", 11555 + "dev": true, 11556 + "license": "MIT", 11557 + "dependencies": { 11558 + "content-type": "^1.0.5", 11559 + "media-typer": "^1.1.0", 11560 + "mime-types": "^3.0.0" 11561 + }, 11562 + "engines": { 11563 + "node": ">= 0.6" 11564 + } 11565 + }, 11566 + "node_modules/typed-array-buffer": { 11567 + "version": "1.0.3", 11568 + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", 11569 + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", 11570 + "dev": true, 11571 + "license": "MIT", 11572 + "dependencies": { 11573 + "call-bound": "^1.0.3", 11574 + "es-errors": "^1.3.0", 11575 + "is-typed-array": "^1.1.14" 11576 + }, 11577 + "engines": { 11578 + "node": ">= 0.4" 11579 + } 11580 + }, 11581 + "node_modules/typed-array-byte-length": { 11582 + "version": "1.0.3", 11583 + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", 11584 + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", 11585 + "dev": true, 11586 + "license": "MIT", 11587 + "dependencies": { 11588 + "call-bind": "^1.0.8", 11589 + "for-each": "^0.3.3", 11590 + "gopd": "^1.2.0", 11591 + "has-proto": "^1.2.0", 11592 + "is-typed-array": "^1.1.14" 11593 + }, 11594 + "engines": { 11595 + "node": ">= 0.4" 11596 + }, 11597 + "funding": { 11598 + "url": "https://github.com/sponsors/ljharb" 11599 + } 11600 + }, 11601 + "node_modules/typed-array-byte-offset": { 11602 + "version": "1.0.4", 11603 + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", 11604 + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", 11605 + "dev": true, 11606 + "license": "MIT", 11607 + "dependencies": { 11608 + "available-typed-arrays": "^1.0.7", 11609 + "call-bind": "^1.0.8", 11610 + "for-each": "^0.3.3", 11611 + "gopd": "^1.2.0", 11612 + "has-proto": "^1.2.0", 11613 + "is-typed-array": "^1.1.15", 11614 + "reflect.getprototypeof": "^1.0.9" 11615 + }, 11616 + "engines": { 11617 + "node": ">= 0.4" 11618 + }, 11619 + "funding": { 11620 + "url": "https://github.com/sponsors/ljharb" 11621 + } 11622 + }, 11623 + "node_modules/typed-array-length": { 11624 + "version": "1.0.7", 11625 + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", 11626 + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", 11627 + "dev": true, 11628 + "license": "MIT", 11629 + "dependencies": { 11630 + "call-bind": "^1.0.7", 11631 + "for-each": "^0.3.3", 11632 + "gopd": "^1.0.1", 11633 + "is-typed-array": "^1.1.13", 11634 + "possible-typed-array-names": "^1.0.0", 11635 + "reflect.getprototypeof": "^1.0.6" 11636 + }, 11637 + "engines": { 11638 + "node": ">= 0.4" 11639 + }, 11640 + "funding": { 11641 + "url": "https://github.com/sponsors/ljharb" 11642 + } 11643 + }, 11644 + "node_modules/typescript": { 11645 + "version": "5.9.3", 11646 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 11647 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 11648 + "dev": true, 11649 + "license": "Apache-2.0", 11650 + "peer": true, 11651 + "bin": { 11652 + "tsc": "bin/tsc", 11653 + "tsserver": "bin/tsserver" 11654 + }, 11655 + "engines": { 11656 + "node": ">=14.17" 11657 + } 11658 + }, 11659 + "node_modules/typescript-eslint": { 11660 + "version": "8.55.0", 11661 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.55.0.tgz", 11662 + "integrity": "sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==", 11663 + "dev": true, 11664 + "license": "MIT", 11665 + "dependencies": { 11666 + "@typescript-eslint/eslint-plugin": "8.55.0", 11667 + "@typescript-eslint/parser": "8.55.0", 11668 + "@typescript-eslint/typescript-estree": "8.55.0", 11669 + "@typescript-eslint/utils": "8.55.0" 11670 + }, 11671 + "engines": { 11672 + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 11673 + }, 11674 + "funding": { 11675 + "type": "opencollective", 11676 + "url": "https://opencollective.com/typescript-eslint" 11677 + }, 11678 + "peerDependencies": { 11679 + "eslint": "^8.57.0 || ^9.0.0", 11680 + "typescript": ">=4.8.4 <6.0.0" 11681 + } 11682 + }, 11683 + "node_modules/unbox-primitive": { 11684 + "version": "1.1.0", 11685 + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", 11686 + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", 11687 + "dev": true, 11688 + "license": "MIT", 11689 + "dependencies": { 11690 + "call-bound": "^1.0.3", 11691 + "has-bigints": "^1.0.2", 11692 + "has-symbols": "^1.1.0", 11693 + "which-boxed-primitive": "^1.1.1" 11694 + }, 11695 + "engines": { 11696 + "node": ">= 0.4" 11697 + }, 11698 + "funding": { 11699 + "url": "https://github.com/sponsors/ljharb" 11700 + } 11701 + }, 11702 + "node_modules/undici-types": { 11703 + "version": "6.21.0", 11704 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", 11705 + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", 11706 + "dev": true, 11707 + "license": "MIT" 11708 + }, 11709 + "node_modules/unicorn-magic": { 11710 + "version": "0.3.0", 11711 + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", 11712 + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", 11713 + "dev": true, 11714 + "license": "MIT", 11715 + "engines": { 11716 + "node": ">=18" 11717 + }, 11718 + "funding": { 11719 + "url": "https://github.com/sponsors/sindresorhus" 11720 + } 11721 + }, 11722 + "node_modules/universalify": { 11723 + "version": "2.0.1", 11724 + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", 11725 + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", 11726 + "dev": true, 11727 + "license": "MIT", 11728 + "engines": { 11729 + "node": ">= 10.0.0" 11730 + } 11731 + }, 11732 + "node_modules/unpipe": { 11733 + "version": "1.0.0", 11734 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 11735 + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", 11736 + "dev": true, 11737 + "license": "MIT", 11738 + "engines": { 11739 + "node": ">= 0.8" 11740 + } 11741 + }, 11742 + "node_modules/unrs-resolver": { 11743 + "version": "1.11.1", 11744 + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", 11745 + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", 11746 + "dev": true, 11747 + "hasInstallScript": true, 11748 + "license": "MIT", 11749 + "dependencies": { 11750 + "napi-postinstall": "^0.3.0" 11751 + }, 11752 + "funding": { 11753 + "url": "https://opencollective.com/unrs-resolver" 11754 + }, 11755 + "optionalDependencies": { 11756 + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", 11757 + "@unrs/resolver-binding-android-arm64": "1.11.1", 11758 + "@unrs/resolver-binding-darwin-arm64": "1.11.1", 11759 + "@unrs/resolver-binding-darwin-x64": "1.11.1", 11760 + "@unrs/resolver-binding-freebsd-x64": "1.11.1", 11761 + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", 11762 + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", 11763 + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", 11764 + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", 11765 + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", 11766 + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", 11767 + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", 11768 + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", 11769 + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", 11770 + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", 11771 + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", 11772 + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", 11773 + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", 11774 + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" 11775 + } 11776 + }, 11777 + "node_modules/until-async": { 11778 + "version": "3.0.2", 11779 + "resolved": "https://registry.npmjs.org/until-async/-/until-async-3.0.2.tgz", 11780 + "integrity": "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==", 11781 + "dev": true, 11782 + "license": "MIT", 11783 + "funding": { 11784 + "url": "https://github.com/sponsors/kettanaito" 11785 + } 11786 + }, 11787 + "node_modules/update-browserslist-db": { 11788 + "version": "1.2.3", 11789 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", 11790 + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", 11791 + "dev": true, 11792 + "funding": [ 11793 + { 11794 + "type": "opencollective", 11795 + "url": "https://opencollective.com/browserslist" 11796 + }, 11797 + { 11798 + "type": "tidelift", 11799 + "url": "https://tidelift.com/funding/github/npm/browserslist" 11800 + }, 11801 + { 11802 + "type": "github", 11803 + "url": "https://github.com/sponsors/ai" 11804 + } 11805 + ], 11806 + "license": "MIT", 11807 + "dependencies": { 11808 + "escalade": "^3.2.0", 11809 + "picocolors": "^1.1.1" 11810 + }, 11811 + "bin": { 11812 + "update-browserslist-db": "cli.js" 11813 + }, 11814 + "peerDependencies": { 11815 + "browserslist": ">= 4.21.0" 11816 + } 11817 + }, 11818 + "node_modules/uri-js": { 11819 + "version": "4.4.1", 11820 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 11821 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 11822 + "dev": true, 11823 + "license": "BSD-2-Clause", 11824 + "dependencies": { 11825 + "punycode": "^2.1.0" 11826 + } 11827 + }, 11828 + "node_modules/use-callback-ref": { 11829 + "version": "1.3.3", 11830 + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", 11831 + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", 11832 + "license": "MIT", 11833 + "dependencies": { 11834 + "tslib": "^2.0.0" 11835 + }, 11836 + "engines": { 11837 + "node": ">=10" 11838 + }, 11839 + "peerDependencies": { 11840 + "@types/react": "*", 11841 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 11842 + }, 11843 + "peerDependenciesMeta": { 11844 + "@types/react": { 11845 + "optional": true 11846 + } 11847 + } 11848 + }, 11849 + "node_modules/use-sidecar": { 11850 + "version": "1.1.3", 11851 + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", 11852 + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", 11853 + "license": "MIT", 11854 + "dependencies": { 11855 + "detect-node-es": "^1.1.0", 11856 + "tslib": "^2.0.0" 11857 + }, 11858 + "engines": { 11859 + "node": ">=10" 11860 + }, 11861 + "peerDependencies": { 11862 + "@types/react": "*", 11863 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" 11864 + }, 11865 + "peerDependenciesMeta": { 11866 + "@types/react": { 11867 + "optional": true 11868 + } 11869 + } 11870 + }, 11871 + "node_modules/use-sync-external-store": { 11872 + "version": "1.6.0", 11873 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", 11874 + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", 11875 + "license": "MIT", 11876 + "peerDependencies": { 11877 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 11878 + } 11879 + }, 11880 + "node_modules/util-deprecate": { 11881 + "version": "1.0.2", 11882 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 11883 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 11884 + "dev": true, 11885 + "license": "MIT" 11886 + }, 11887 + "node_modules/validate-npm-package-name": { 11888 + "version": "7.0.2", 11889 + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", 11890 + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", 11891 + "dev": true, 11892 + "license": "ISC", 11893 + "engines": { 11894 + "node": "^20.17.0 || >=22.9.0" 11895 + } 11896 + }, 11897 + "node_modules/vary": { 11898 + "version": "1.1.2", 11899 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 11900 + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", 11901 + "dev": true, 11902 + "license": "MIT", 11903 + "engines": { 11904 + "node": ">= 0.8" 11905 + } 11906 + }, 11907 + "node_modules/vaul": { 11908 + "version": "1.1.2", 11909 + "resolved": "https://registry.npmjs.org/vaul/-/vaul-1.1.2.tgz", 11910 + "integrity": "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==", 11911 + "license": "MIT", 11912 + "dependencies": { 11913 + "@radix-ui/react-dialog": "^1.1.1" 11914 + }, 11915 + "peerDependencies": { 11916 + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", 11917 + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" 11918 + } 11919 + }, 11920 + "node_modules/victory-vendor": { 11921 + "version": "36.9.2", 11922 + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", 11923 + "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", 11924 + "license": "MIT AND ISC", 11925 + "dependencies": { 11926 + "@types/d3-array": "^3.0.3", 11927 + "@types/d3-ease": "^3.0.0", 11928 + "@types/d3-interpolate": "^3.0.1", 11929 + "@types/d3-scale": "^4.0.2", 11930 + "@types/d3-shape": "^3.1.0", 11931 + "@types/d3-time": "^3.0.0", 11932 + "@types/d3-timer": "^3.0.0", 11933 + "d3-array": "^3.1.6", 11934 + "d3-ease": "^3.0.1", 11935 + "d3-interpolate": "^3.0.1", 11936 + "d3-scale": "^4.0.2", 11937 + "d3-shape": "^3.1.0", 11938 + "d3-time": "^3.0.0", 11939 + "d3-timer": "^3.0.1" 11940 + } 11941 + }, 11942 + "node_modules/web-streams-polyfill": { 11943 + "version": "3.3.3", 11944 + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", 11945 + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", 11946 + "dev": true, 11947 + "license": "MIT", 11948 + "engines": { 11949 + "node": ">= 8" 11950 + } 11951 + }, 11952 + "node_modules/which": { 11953 + "version": "2.0.2", 11954 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 11955 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 11956 + "dev": true, 11957 + "license": "ISC", 11958 + "dependencies": { 11959 + "isexe": "^2.0.0" 11960 + }, 11961 + "bin": { 11962 + "node-which": "bin/node-which" 11963 + }, 11964 + "engines": { 11965 + "node": ">= 8" 11966 + } 11967 + }, 11968 + "node_modules/which-boxed-primitive": { 11969 + "version": "1.1.1", 11970 + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", 11971 + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", 11972 + "dev": true, 11973 + "license": "MIT", 11974 + "dependencies": { 11975 + "is-bigint": "^1.1.0", 11976 + "is-boolean-object": "^1.2.1", 11977 + "is-number-object": "^1.1.1", 11978 + "is-string": "^1.1.1", 11979 + "is-symbol": "^1.1.1" 11980 + }, 11981 + "engines": { 11982 + "node": ">= 0.4" 11983 + }, 11984 + "funding": { 11985 + "url": "https://github.com/sponsors/ljharb" 11986 + } 11987 + }, 11988 + "node_modules/which-builtin-type": { 11989 + "version": "1.2.1", 11990 + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", 11991 + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", 11992 + "dev": true, 11993 + "license": "MIT", 11994 + "dependencies": { 11995 + "call-bound": "^1.0.2", 11996 + "function.prototype.name": "^1.1.6", 11997 + "has-tostringtag": "^1.0.2", 11998 + "is-async-function": "^2.0.0", 11999 + "is-date-object": "^1.1.0", 12000 + "is-finalizationregistry": "^1.1.0", 12001 + "is-generator-function": "^1.0.10", 12002 + "is-regex": "^1.2.1", 12003 + "is-weakref": "^1.0.2", 12004 + "isarray": "^2.0.5", 12005 + "which-boxed-primitive": "^1.1.0", 12006 + "which-collection": "^1.0.2", 12007 + "which-typed-array": "^1.1.16" 12008 + }, 12009 + "engines": { 12010 + "node": ">= 0.4" 12011 + }, 12012 + "funding": { 12013 + "url": "https://github.com/sponsors/ljharb" 12014 + } 12015 + }, 12016 + "node_modules/which-collection": { 12017 + "version": "1.0.2", 12018 + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", 12019 + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", 12020 + "dev": true, 12021 + "license": "MIT", 12022 + "dependencies": { 12023 + "is-map": "^2.0.3", 12024 + "is-set": "^2.0.3", 12025 + "is-weakmap": "^2.0.2", 12026 + "is-weakset": "^2.0.3" 12027 + }, 12028 + "engines": { 12029 + "node": ">= 0.4" 12030 + }, 12031 + "funding": { 12032 + "url": "https://github.com/sponsors/ljharb" 12033 + } 12034 + }, 12035 + "node_modules/which-typed-array": { 12036 + "version": "1.1.20", 12037 + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", 12038 + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", 12039 + "dev": true, 12040 + "license": "MIT", 12041 + "dependencies": { 12042 + "available-typed-arrays": "^1.0.7", 12043 + "call-bind": "^1.0.8", 12044 + "call-bound": "^1.0.4", 12045 + "for-each": "^0.3.5", 12046 + "get-proto": "^1.0.1", 12047 + "gopd": "^1.2.0", 12048 + "has-tostringtag": "^1.0.2" 12049 + }, 12050 + "engines": { 12051 + "node": ">= 0.4" 12052 + }, 12053 + "funding": { 12054 + "url": "https://github.com/sponsors/ljharb" 12055 + } 12056 + }, 12057 + "node_modules/word-wrap": { 12058 + "version": "1.2.5", 12059 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 12060 + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 12061 + "dev": true, 12062 + "license": "MIT", 12063 + "engines": { 12064 + "node": ">=0.10.0" 12065 + } 12066 + }, 12067 + "node_modules/wrap-ansi": { 12068 + "version": "6.2.0", 12069 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 12070 + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 12071 + "dev": true, 12072 + "license": "MIT", 12073 + "dependencies": { 12074 + "ansi-styles": "^4.0.0", 12075 + "string-width": "^4.1.0", 12076 + "strip-ansi": "^6.0.0" 12077 + }, 12078 + "engines": { 12079 + "node": ">=8" 12080 + } 12081 + }, 12082 + "node_modules/wrap-ansi/node_modules/ansi-regex": { 12083 + "version": "5.0.1", 12084 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 12085 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 12086 + "dev": true, 12087 + "license": "MIT", 12088 + "engines": { 12089 + "node": ">=8" 12090 + } 12091 + }, 12092 + "node_modules/wrap-ansi/node_modules/emoji-regex": { 12093 + "version": "8.0.0", 12094 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 12095 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 12096 + "dev": true, 12097 + "license": "MIT" 12098 + }, 12099 + "node_modules/wrap-ansi/node_modules/string-width": { 12100 + "version": "4.2.3", 12101 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 12102 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 12103 + "dev": true, 12104 + "license": "MIT", 12105 + "dependencies": { 12106 + "emoji-regex": "^8.0.0", 12107 + "is-fullwidth-code-point": "^3.0.0", 12108 + "strip-ansi": "^6.0.1" 12109 + }, 12110 + "engines": { 12111 + "node": ">=8" 12112 + } 12113 + }, 12114 + "node_modules/wrap-ansi/node_modules/strip-ansi": { 12115 + "version": "6.0.1", 12116 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 12117 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 12118 + "dev": true, 12119 + "license": "MIT", 12120 + "dependencies": { 12121 + "ansi-regex": "^5.0.1" 12122 + }, 12123 + "engines": { 12124 + "node": ">=8" 12125 + } 12126 + }, 12127 + "node_modules/wrappy": { 12128 + "version": "1.0.2", 12129 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 12130 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 12131 + "dev": true, 12132 + "license": "ISC" 12133 + }, 12134 + "node_modules/wsl-utils": { 12135 + "version": "0.3.1", 12136 + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", 12137 + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", 12138 + "dev": true, 12139 + "license": "MIT", 12140 + "dependencies": { 12141 + "is-wsl": "^3.1.0", 12142 + "powershell-utils": "^0.1.0" 12143 + }, 12144 + "engines": { 12145 + "node": ">=20" 12146 + }, 12147 + "funding": { 12148 + "url": "https://github.com/sponsors/sindresorhus" 12149 + } 12150 + }, 12151 + "node_modules/y18n": { 12152 + "version": "5.0.8", 12153 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 12154 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 12155 + "dev": true, 12156 + "license": "ISC", 12157 + "engines": { 12158 + "node": ">=10" 12159 + } 12160 + }, 12161 + "node_modules/yallist": { 12162 + "version": "3.1.1", 12163 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 12164 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 12165 + "dev": true, 12166 + "license": "ISC" 12167 + }, 12168 + "node_modules/yargs": { 12169 + "version": "17.7.2", 12170 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 12171 + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 12172 + "dev": true, 12173 + "license": "MIT", 12174 + "dependencies": { 12175 + "cliui": "^8.0.1", 12176 + "escalade": "^3.1.1", 12177 + "get-caller-file": "^2.0.5", 12178 + "require-directory": "^2.1.1", 12179 + "string-width": "^4.2.3", 12180 + "y18n": "^5.0.5", 12181 + "yargs-parser": "^21.1.1" 12182 + }, 12183 + "engines": { 12184 + "node": ">=12" 12185 + } 12186 + }, 12187 + "node_modules/yargs-parser": { 12188 + "version": "21.1.1", 12189 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 12190 + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 12191 + "dev": true, 12192 + "license": "ISC", 12193 + "engines": { 12194 + "node": ">=12" 12195 + } 12196 + }, 12197 + "node_modules/yargs/node_modules/ansi-regex": { 12198 + "version": "5.0.1", 12199 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 12200 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 12201 + "dev": true, 12202 + "license": "MIT", 12203 + "engines": { 12204 + "node": ">=8" 12205 + } 12206 + }, 12207 + "node_modules/yargs/node_modules/emoji-regex": { 12208 + "version": "8.0.0", 12209 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 12210 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 12211 + "dev": true, 12212 + "license": "MIT" 12213 + }, 12214 + "node_modules/yargs/node_modules/string-width": { 12215 + "version": "4.2.3", 12216 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 12217 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 12218 + "dev": true, 12219 + "license": "MIT", 12220 + "dependencies": { 12221 + "emoji-regex": "^8.0.0", 12222 + "is-fullwidth-code-point": "^3.0.0", 12223 + "strip-ansi": "^6.0.1" 12224 + }, 12225 + "engines": { 12226 + "node": ">=8" 12227 + } 12228 + }, 12229 + "node_modules/yargs/node_modules/strip-ansi": { 12230 + "version": "6.0.1", 12231 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 12232 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 12233 + "dev": true, 12234 + "license": "MIT", 12235 + "dependencies": { 12236 + "ansi-regex": "^5.0.1" 12237 + }, 12238 + "engines": { 12239 + "node": ">=8" 12240 + } 12241 + }, 12242 + "node_modules/yocto-queue": { 12243 + "version": "0.1.0", 12244 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 12245 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 12246 + "dev": true, 12247 + "license": "MIT", 12248 + "engines": { 12249 + "node": ">=10" 12250 + }, 12251 + "funding": { 12252 + "url": "https://github.com/sponsors/sindresorhus" 12253 + } 12254 + }, 12255 + "node_modules/yoctocolors": { 12256 + "version": "2.1.2", 12257 + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", 12258 + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", 12259 + "dev": true, 12260 + "license": "MIT", 12261 + "engines": { 12262 + "node": ">=18" 12263 + }, 12264 + "funding": { 12265 + "url": "https://github.com/sponsors/sindresorhus" 12266 + } 12267 + }, 12268 + "node_modules/yoctocolors-cjs": { 12269 + "version": "2.1.3", 12270 + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", 12271 + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", 12272 + "dev": true, 12273 + "license": "MIT", 12274 + "engines": { 12275 + "node": ">=18" 12276 + }, 12277 + "funding": { 12278 + "url": "https://github.com/sponsors/sindresorhus" 12279 + } 12280 + }, 12281 + "node_modules/zod": { 12282 + "version": "4.3.6", 12283 + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", 12284 + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", 12285 + "license": "MIT", 12286 + "peer": true, 12287 + "funding": { 12288 + "url": "https://github.com/sponsors/colinhacks" 12289 + } 12290 + }, 12291 + "node_modules/zod-to-json-schema": { 12292 + "version": "3.25.1", 12293 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", 12294 + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", 12295 + "dev": true, 12296 + "license": "ISC", 12297 + "peerDependencies": { 12298 + "zod": "^3.25 || ^4" 12299 + } 12300 + }, 12301 + "node_modules/zod-validation-error": { 12302 + "version": "4.0.2", 12303 + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", 12304 + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", 12305 + "dev": true, 12306 + "license": "MIT", 12307 + "engines": { 12308 + "node": ">=18.0.0" 12309 + }, 12310 + "peerDependencies": { 12311 + "zod": "^3.25.0 || ^4.0.0" 12312 + } 12313 + } 12314 + } 12315 + }
+45
web/package.json
··· 1 + { 2 + "name": "web", 3 + "version": "0.1.0", 4 + "private": true, 5 + "scripts": { 6 + "dev": "next dev --port 3001", 7 + "build": "next build", 8 + "start": "next start", 9 + "lint": "eslint" 10 + }, 11 + "dependencies": { 12 + "@dnd-kit/core": "^6.3.1", 13 + "@dnd-kit/modifiers": "^9.0.0", 14 + "@dnd-kit/sortable": "^10.0.0", 15 + "@dnd-kit/utilities": "^3.2.2", 16 + "@tabler/icons-react": "^3.36.1", 17 + "@tanstack/react-table": "^8.21.3", 18 + "class-variance-authority": "^0.7.1", 19 + "clsx": "^2.1.1", 20 + "lucide-react": "^0.564.0", 21 + "next": "16.1.6", 22 + "next-themes": "^0.4.6", 23 + "radix-ui": "^1.4.3", 24 + "react": "19.2.3", 25 + "react-dom": "19.2.3", 26 + "recharts": "^2.15.4", 27 + "sonner": "^2.0.7", 28 + "tailwind-merge": "^3.4.0", 29 + "vaul": "^1.1.2", 30 + "zod": "^4.3.6" 31 + }, 32 + "devDependencies": { 33 + "@tailwindcss/postcss": "^4", 34 + "@types/node": "^20", 35 + "@types/react": "^19", 36 + "@types/react-dom": "^19", 37 + "babel-plugin-react-compiler": "1.0.0", 38 + "eslint": "^9", 39 + "eslint-config-next": "16.1.6", 40 + "shadcn": "^3.8.4", 41 + "tailwindcss": "^4", 42 + "tw-animate-css": "^1.4.0", 43 + "typescript": "^5" 44 + } 45 + }
+7
web/postcss.config.mjs
··· 1 + const config = { 2 + plugins: { 3 + "@tailwindcss/postcss": {}, 4 + }, 5 + }; 6 + 7 + export default config;
+1
web/public/file.svg
··· 1 + <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
+1
web/public/globe.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
+1
web/public/next.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
+1
web/public/vercel.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
+1
web/public/window.svg
··· 1 + <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
web/src/app/favicon.ico

This is a binary file and will not be displayed.

+128
web/src/app/globals.css
··· 1 + @import "tailwindcss"; 2 + @import "tw-animate-css"; 3 + @import "shadcn/tailwind.css"; 4 + 5 + @custom-variant dark (&:is(.dark *)); 6 + 7 + @theme inline { 8 + --color-background: var(--background); 9 + --color-foreground: var(--foreground); 10 + --font-sans: var(--font-geist-sans); 11 + --font-mono: var(--font-geist-mono); 12 + --color-sidebar-ring: var(--sidebar-ring); 13 + --color-sidebar-border: var(--sidebar-border); 14 + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); 15 + --color-sidebar-accent: var(--sidebar-accent); 16 + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); 17 + --color-sidebar-primary: var(--sidebar-primary); 18 + --color-sidebar-foreground: var(--sidebar-foreground); 19 + --color-sidebar: var(--sidebar); 20 + --color-chart-5: var(--chart-5); 21 + --color-chart-4: var(--chart-4); 22 + --color-chart-3: var(--chart-3); 23 + --color-chart-2: var(--chart-2); 24 + --color-chart-1: var(--chart-1); 25 + --color-ring: var(--ring); 26 + --color-input: var(--input); 27 + --color-border: var(--border); 28 + --color-destructive: var(--destructive); 29 + --color-accent-foreground: var(--accent-foreground); 30 + --color-accent: var(--accent); 31 + --color-muted-foreground: var(--muted-foreground); 32 + --color-muted: var(--muted); 33 + --color-secondary-foreground: var(--secondary-foreground); 34 + --color-secondary: var(--secondary); 35 + --color-primary-foreground: var(--primary-foreground); 36 + --color-primary: var(--primary); 37 + --color-popover-foreground: var(--popover-foreground); 38 + --color-popover: var(--popover); 39 + --color-card-foreground: var(--card-foreground); 40 + --color-card: var(--card); 41 + --radius-sm: calc(var(--radius) - 4px); 42 + --radius-md: calc(var(--radius) - 2px); 43 + --radius-lg: var(--radius); 44 + --radius-xl: calc(var(--radius) + 4px); 45 + --radius-2xl: calc(var(--radius) + 8px); 46 + --radius-3xl: calc(var(--radius) + 12px); 47 + --radius-4xl: calc(var(--radius) + 16px); 48 + } 49 + 50 + :root { 51 + --radius: 0.625rem; 52 + --background: oklch(1 0 0); 53 + --foreground: oklch(0.145 0 0); 54 + --card: oklch(1 0 0); 55 + --card-foreground: oklch(0.145 0 0); 56 + --popover: oklch(1 0 0); 57 + --popover-foreground: oklch(0.145 0 0); 58 + --primary: oklch(0.205 0 0); 59 + --primary-foreground: oklch(0.985 0 0); 60 + --secondary: oklch(0.97 0 0); 61 + --secondary-foreground: oklch(0.205 0 0); 62 + --muted: oklch(0.97 0 0); 63 + --muted-foreground: oklch(0.556 0 0); 64 + --accent: oklch(0.97 0 0); 65 + --accent-foreground: oklch(0.205 0 0); 66 + --destructive: oklch(0.577 0.245 27.325); 67 + --border: oklch(0.922 0 0); 68 + --input: oklch(0.922 0 0); 69 + --ring: oklch(0.708 0 0); 70 + --chart-1: oklch(0.646 0.222 41.116); 71 + --chart-2: oklch(0.6 0.118 184.704); 72 + --chart-3: oklch(0.398 0.07 227.392); 73 + --chart-4: oklch(0.828 0.189 84.429); 74 + --chart-5: oklch(0.769 0.188 70.08); 75 + --sidebar: oklch(0.985 0 0); 76 + --sidebar-foreground: oklch(0.145 0 0); 77 + --sidebar-primary: oklch(0.205 0 0); 78 + --sidebar-primary-foreground: oklch(0.985 0 0); 79 + --sidebar-accent: oklch(0.97 0 0); 80 + --sidebar-accent-foreground: oklch(0.205 0 0); 81 + --sidebar-border: oklch(0.922 0 0); 82 + --sidebar-ring: oklch(0.708 0 0); 83 + } 84 + 85 + .dark { 86 + --background: oklch(0.145 0 0); 87 + --foreground: oklch(0.985 0 0); 88 + --card: oklch(0.205 0 0); 89 + --card-foreground: oklch(0.985 0 0); 90 + --popover: oklch(0.205 0 0); 91 + --popover-foreground: oklch(0.985 0 0); 92 + --primary: oklch(0.922 0 0); 93 + --primary-foreground: oklch(0.205 0 0); 94 + --secondary: oklch(0.269 0 0); 95 + --secondary-foreground: oklch(0.985 0 0); 96 + --muted: oklch(0.269 0 0); 97 + --muted-foreground: oklch(0.708 0 0); 98 + --accent: oklch(0.269 0 0); 99 + --accent-foreground: oklch(0.985 0 0); 100 + --destructive: oklch(0.704 0.191 22.216); 101 + --border: oklch(1 0 0 / 10%); 102 + --input: oklch(1 0 0 / 15%); 103 + --ring: oklch(0.556 0 0); 104 + --chart-1: oklch(0.488 0.243 264.376); 105 + --chart-2: oklch(0.696 0.17 162.48); 106 + --chart-3: oklch(0.769 0.188 70.08); 107 + --chart-4: oklch(0.627 0.265 303.9); 108 + --chart-5: oklch(0.645 0.246 16.439); 109 + --sidebar: oklch(0.205 0 0); 110 + --sidebar-foreground: oklch(0.985 0 0); 111 + --sidebar-primary: oklch(0.488 0.243 264.376); 112 + --sidebar-primary-foreground: oklch(0.985 0 0); 113 + --sidebar-accent: oklch(0.269 0 0); 114 + --sidebar-accent-foreground: oklch(0.985 0 0); 115 + --sidebar-border: oklch(1 0 0 / 10%); 116 + --sidebar-ring: oklch(0.556 0 0); 117 + } 118 + 119 + @layer base { 120 + * { 121 + @apply border-border outline-ring/50; 122 + @apply border-border outline-ring/50; 123 + } 124 + body { 125 + @apply bg-background text-foreground; 126 + @apply bg-background text-foreground; 127 + } 128 + }
+34
web/src/app/layout.tsx
··· 1 + import type { Metadata } from "next" 2 + import { Geist, Geist_Mono } from "next/font/google" 3 + import "./globals.css" 4 + 5 + const geistSans = Geist({ 6 + variable: "--font-geist-sans", 7 + subsets: ["latin"], 8 + }) 9 + 10 + const geistMono = Geist_Mono({ 11 + variable: "--font-geist-mono", 12 + subsets: ["latin"], 13 + }) 14 + 15 + export const metadata: Metadata = { 16 + title: "HappyView Admin", 17 + description: "Admin dashboard for HappyView AppView", 18 + } 19 + 20 + export default function RootLayout({ 21 + children, 22 + }: Readonly<{ 23 + children: React.ReactNode 24 + }>) { 25 + return ( 26 + <html lang="en"> 27 + <body 28 + className={`${geistSans.variable} ${geistMono.variable} antialiased`} 29 + > 30 + {children} 31 + </body> 32 + </html> 33 + ) 34 + }
+7
web/src/app/page.tsx
··· 1 + export default function Home() { 2 + return ( 3 + <div className="flex min-h-svh items-center justify-center"> 4 + <h1 className="text-2xl font-semibold">HappyView Admin</h1> 5 + </div> 6 + ) 7 + }
+109
web/src/components/ui/avatar.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Avatar as AvatarPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function Avatar({ 9 + className, 10 + size = "default", 11 + ...props 12 + }: React.ComponentProps<typeof AvatarPrimitive.Root> & { 13 + size?: "default" | "sm" | "lg" 14 + }) { 15 + return ( 16 + <AvatarPrimitive.Root 17 + data-slot="avatar" 18 + data-size={size} 19 + className={cn( 20 + "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6", 21 + className 22 + )} 23 + {...props} 24 + /> 25 + ) 26 + } 27 + 28 + function AvatarImage({ 29 + className, 30 + ...props 31 + }: React.ComponentProps<typeof AvatarPrimitive.Image>) { 32 + return ( 33 + <AvatarPrimitive.Image 34 + data-slot="avatar-image" 35 + className={cn("aspect-square size-full", className)} 36 + {...props} 37 + /> 38 + ) 39 + } 40 + 41 + function AvatarFallback({ 42 + className, 43 + ...props 44 + }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) { 45 + return ( 46 + <AvatarPrimitive.Fallback 47 + data-slot="avatar-fallback" 48 + className={cn( 49 + "bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs", 50 + className 51 + )} 52 + {...props} 53 + /> 54 + ) 55 + } 56 + 57 + function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) { 58 + return ( 59 + <span 60 + data-slot="avatar-badge" 61 + className={cn( 62 + "bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none", 63 + "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden", 64 + "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2", 65 + "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2", 66 + className 67 + )} 68 + {...props} 69 + /> 70 + ) 71 + } 72 + 73 + function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) { 74 + return ( 75 + <div 76 + data-slot="avatar-group" 77 + className={cn( 78 + "*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2", 79 + className 80 + )} 81 + {...props} 82 + /> 83 + ) 84 + } 85 + 86 + function AvatarGroupCount({ 87 + className, 88 + ...props 89 + }: React.ComponentProps<"div">) { 90 + return ( 91 + <div 92 + data-slot="avatar-group-count" 93 + className={cn( 94 + "bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", 95 + className 96 + )} 97 + {...props} 98 + /> 99 + ) 100 + } 101 + 102 + export { 103 + Avatar, 104 + AvatarImage, 105 + AvatarFallback, 106 + AvatarBadge, 107 + AvatarGroup, 108 + AvatarGroupCount, 109 + }
+48
web/src/components/ui/badge.tsx
··· 1 + import * as React from "react" 2 + import { cva, type VariantProps } from "class-variance-authority" 3 + import { Slot } from "radix-ui" 4 + 5 + import { cn } from "@/lib/utils" 6 + 7 + const badgeVariants = cva( 8 + "inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", 9 + { 10 + variants: { 11 + variant: { 12 + default: "bg-primary text-primary-foreground [a&]:hover:bg-primary/90", 13 + secondary: 14 + "bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90", 15 + destructive: 16 + "bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", 17 + outline: 18 + "border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground", 19 + ghost: "[a&]:hover:bg-accent [a&]:hover:text-accent-foreground", 20 + link: "text-primary underline-offset-4 [a&]:hover:underline", 21 + }, 22 + }, 23 + defaultVariants: { 24 + variant: "default", 25 + }, 26 + } 27 + ) 28 + 29 + function Badge({ 30 + className, 31 + variant = "default", 32 + asChild = false, 33 + ...props 34 + }: React.ComponentProps<"span"> & 35 + VariantProps<typeof badgeVariants> & { asChild?: boolean }) { 36 + const Comp = asChild ? Slot.Root : "span" 37 + 38 + return ( 39 + <Comp 40 + data-slot="badge" 41 + data-variant={variant} 42 + className={cn(badgeVariants({ variant }), className)} 43 + {...props} 44 + /> 45 + ) 46 + } 47 + 48 + export { Badge, badgeVariants }
+109
web/src/components/ui/breadcrumb.tsx
··· 1 + import * as React from "react" 2 + import { ChevronRight, MoreHorizontal } from "lucide-react" 3 + import { Slot } from "radix-ui" 4 + 5 + import { cn } from "@/lib/utils" 6 + 7 + function Breadcrumb({ ...props }: React.ComponentProps<"nav">) { 8 + return <nav aria-label="breadcrumb" data-slot="breadcrumb" {...props} /> 9 + } 10 + 11 + function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) { 12 + return ( 13 + <ol 14 + data-slot="breadcrumb-list" 15 + className={cn( 16 + "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5", 17 + className 18 + )} 19 + {...props} 20 + /> 21 + ) 22 + } 23 + 24 + function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) { 25 + return ( 26 + <li 27 + data-slot="breadcrumb-item" 28 + className={cn("inline-flex items-center gap-1.5", className)} 29 + {...props} 30 + /> 31 + ) 32 + } 33 + 34 + function BreadcrumbLink({ 35 + asChild, 36 + className, 37 + ...props 38 + }: React.ComponentProps<"a"> & { 39 + asChild?: boolean 40 + }) { 41 + const Comp = asChild ? Slot.Root : "a" 42 + 43 + return ( 44 + <Comp 45 + data-slot="breadcrumb-link" 46 + className={cn("hover:text-foreground transition-colors", className)} 47 + {...props} 48 + /> 49 + ) 50 + } 51 + 52 + function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) { 53 + return ( 54 + <span 55 + data-slot="breadcrumb-page" 56 + role="link" 57 + aria-disabled="true" 58 + aria-current="page" 59 + className={cn("text-foreground font-normal", className)} 60 + {...props} 61 + /> 62 + ) 63 + } 64 + 65 + function BreadcrumbSeparator({ 66 + children, 67 + className, 68 + ...props 69 + }: React.ComponentProps<"li">) { 70 + return ( 71 + <li 72 + data-slot="breadcrumb-separator" 73 + role="presentation" 74 + aria-hidden="true" 75 + className={cn("[&>svg]:size-3.5", className)} 76 + {...props} 77 + > 78 + {children ?? <ChevronRight />} 79 + </li> 80 + ) 81 + } 82 + 83 + function BreadcrumbEllipsis({ 84 + className, 85 + ...props 86 + }: React.ComponentProps<"span">) { 87 + return ( 88 + <span 89 + data-slot="breadcrumb-ellipsis" 90 + role="presentation" 91 + aria-hidden="true" 92 + className={cn("flex size-9 items-center justify-center", className)} 93 + {...props} 94 + > 95 + <MoreHorizontal className="size-4" /> 96 + <span className="sr-only">More</span> 97 + </span> 98 + ) 99 + } 100 + 101 + export { 102 + Breadcrumb, 103 + BreadcrumbList, 104 + BreadcrumbItem, 105 + BreadcrumbLink, 106 + BreadcrumbPage, 107 + BreadcrumbSeparator, 108 + BreadcrumbEllipsis, 109 + }
+64
web/src/components/ui/button.tsx
··· 1 + import * as React from "react" 2 + import { cva, type VariantProps } from "class-variance-authority" 3 + import { Slot } from "radix-ui" 4 + 5 + import { cn } from "@/lib/utils" 6 + 7 + const buttonVariants = cva( 8 + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", 9 + { 10 + variants: { 11 + variant: { 12 + default: "bg-primary text-primary-foreground hover:bg-primary/90", 13 + destructive: 14 + "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", 15 + outline: 16 + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", 17 + secondary: 18 + "bg-secondary text-secondary-foreground hover:bg-secondary/80", 19 + ghost: 20 + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", 21 + link: "text-primary underline-offset-4 hover:underline", 22 + }, 23 + size: { 24 + default: "h-9 px-4 py-2 has-[>svg]:px-3", 25 + xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3", 26 + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", 27 + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", 28 + icon: "size-9", 29 + "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3", 30 + "icon-sm": "size-8", 31 + "icon-lg": "size-10", 32 + }, 33 + }, 34 + defaultVariants: { 35 + variant: "default", 36 + size: "default", 37 + }, 38 + } 39 + ) 40 + 41 + function Button({ 42 + className, 43 + variant = "default", 44 + size = "default", 45 + asChild = false, 46 + ...props 47 + }: React.ComponentProps<"button"> & 48 + VariantProps<typeof buttonVariants> & { 49 + asChild?: boolean 50 + }) { 51 + const Comp = asChild ? Slot.Root : "button" 52 + 53 + return ( 54 + <Comp 55 + data-slot="button" 56 + data-variant={variant} 57 + data-size={size} 58 + className={cn(buttonVariants({ variant, size, className }))} 59 + {...props} 60 + /> 61 + ) 62 + } 63 + 64 + export { Button, buttonVariants }
+92
web/src/components/ui/card.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/lib/utils" 4 + 5 + function Card({ className, ...props }: React.ComponentProps<"div">) { 6 + return ( 7 + <div 8 + data-slot="card" 9 + className={cn( 10 + "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm", 11 + className 12 + )} 13 + {...props} 14 + /> 15 + ) 16 + } 17 + 18 + function CardHeader({ className, ...props }: React.ComponentProps<"div">) { 19 + return ( 20 + <div 21 + data-slot="card-header" 22 + className={cn( 23 + "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", 24 + className 25 + )} 26 + {...props} 27 + /> 28 + ) 29 + } 30 + 31 + function CardTitle({ className, ...props }: React.ComponentProps<"div">) { 32 + return ( 33 + <div 34 + data-slot="card-title" 35 + className={cn("leading-none font-semibold", className)} 36 + {...props} 37 + /> 38 + ) 39 + } 40 + 41 + function CardDescription({ className, ...props }: React.ComponentProps<"div">) { 42 + return ( 43 + <div 44 + data-slot="card-description" 45 + className={cn("text-muted-foreground text-sm", className)} 46 + {...props} 47 + /> 48 + ) 49 + } 50 + 51 + function CardAction({ className, ...props }: React.ComponentProps<"div">) { 52 + return ( 53 + <div 54 + data-slot="card-action" 55 + className={cn( 56 + "col-start-2 row-span-2 row-start-1 self-start justify-self-end", 57 + className 58 + )} 59 + {...props} 60 + /> 61 + ) 62 + } 63 + 64 + function CardContent({ className, ...props }: React.ComponentProps<"div">) { 65 + return ( 66 + <div 67 + data-slot="card-content" 68 + className={cn("px-6", className)} 69 + {...props} 70 + /> 71 + ) 72 + } 73 + 74 + function CardFooter({ className, ...props }: React.ComponentProps<"div">) { 75 + return ( 76 + <div 77 + data-slot="card-footer" 78 + className={cn("flex items-center px-6 [.border-t]:pt-6", className)} 79 + {...props} 80 + /> 81 + ) 82 + } 83 + 84 + export { 85 + Card, 86 + CardHeader, 87 + CardFooter, 88 + CardTitle, 89 + CardAction, 90 + CardDescription, 91 + CardContent, 92 + }
+357
web/src/components/ui/chart.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import * as RechartsPrimitive from "recharts" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + // Format: { THEME_NAME: CSS_SELECTOR } 9 + const THEMES = { light: "", dark: ".dark" } as const 10 + 11 + export type ChartConfig = { 12 + [k in string]: { 13 + label?: React.ReactNode 14 + icon?: React.ComponentType 15 + } & ( 16 + | { color?: string; theme?: never } 17 + | { color?: never; theme: Record<keyof typeof THEMES, string> } 18 + ) 19 + } 20 + 21 + type ChartContextProps = { 22 + config: ChartConfig 23 + } 24 + 25 + const ChartContext = React.createContext<ChartContextProps | null>(null) 26 + 27 + function useChart() { 28 + const context = React.useContext(ChartContext) 29 + 30 + if (!context) { 31 + throw new Error("useChart must be used within a <ChartContainer />") 32 + } 33 + 34 + return context 35 + } 36 + 37 + function ChartContainer({ 38 + id, 39 + className, 40 + children, 41 + config, 42 + ...props 43 + }: React.ComponentProps<"div"> & { 44 + config: ChartConfig 45 + children: React.ComponentProps< 46 + typeof RechartsPrimitive.ResponsiveContainer 47 + >["children"] 48 + }) { 49 + const uniqueId = React.useId() 50 + const chartId = `chart-${id || uniqueId.replace(/:/g, "")}` 51 + 52 + return ( 53 + <ChartContext.Provider value={{ config }}> 54 + <div 55 + data-slot="chart" 56 + data-chart={chartId} 57 + className={cn( 58 + "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden", 59 + className 60 + )} 61 + {...props} 62 + > 63 + <ChartStyle id={chartId} config={config} /> 64 + <RechartsPrimitive.ResponsiveContainer> 65 + {children} 66 + </RechartsPrimitive.ResponsiveContainer> 67 + </div> 68 + </ChartContext.Provider> 69 + ) 70 + } 71 + 72 + const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => { 73 + const colorConfig = Object.entries(config).filter( 74 + ([, config]) => config.theme || config.color 75 + ) 76 + 77 + if (!colorConfig.length) { 78 + return null 79 + } 80 + 81 + return ( 82 + <style 83 + dangerouslySetInnerHTML={{ 84 + __html: Object.entries(THEMES) 85 + .map( 86 + ([theme, prefix]) => ` 87 + ${prefix} [data-chart=${id}] { 88 + ${colorConfig 89 + .map(([key, itemConfig]) => { 90 + const color = 91 + itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || 92 + itemConfig.color 93 + return color ? ` --color-${key}: ${color};` : null 94 + }) 95 + .join("\n")} 96 + } 97 + ` 98 + ) 99 + .join("\n"), 100 + }} 101 + /> 102 + ) 103 + } 104 + 105 + const ChartTooltip = RechartsPrimitive.Tooltip 106 + 107 + function ChartTooltipContent({ 108 + active, 109 + payload, 110 + className, 111 + indicator = "dot", 112 + hideLabel = false, 113 + hideIndicator = false, 114 + label, 115 + labelFormatter, 116 + labelClassName, 117 + formatter, 118 + color, 119 + nameKey, 120 + labelKey, 121 + }: React.ComponentProps<typeof RechartsPrimitive.Tooltip> & 122 + React.ComponentProps<"div"> & { 123 + hideLabel?: boolean 124 + hideIndicator?: boolean 125 + indicator?: "line" | "dot" | "dashed" 126 + nameKey?: string 127 + labelKey?: string 128 + }) { 129 + const { config } = useChart() 130 + 131 + const tooltipLabel = React.useMemo(() => { 132 + if (hideLabel || !payload?.length) { 133 + return null 134 + } 135 + 136 + const [item] = payload 137 + const key = `${labelKey || item?.dataKey || item?.name || "value"}` 138 + const itemConfig = getPayloadConfigFromPayload(config, item, key) 139 + const value = 140 + !labelKey && typeof label === "string" 141 + ? config[label as keyof typeof config]?.label || label 142 + : itemConfig?.label 143 + 144 + if (labelFormatter) { 145 + return ( 146 + <div className={cn("font-medium", labelClassName)}> 147 + {labelFormatter(value, payload)} 148 + </div> 149 + ) 150 + } 151 + 152 + if (!value) { 153 + return null 154 + } 155 + 156 + return <div className={cn("font-medium", labelClassName)}>{value}</div> 157 + }, [ 158 + label, 159 + labelFormatter, 160 + payload, 161 + hideLabel, 162 + labelClassName, 163 + config, 164 + labelKey, 165 + ]) 166 + 167 + if (!active || !payload?.length) { 168 + return null 169 + } 170 + 171 + const nestLabel = payload.length === 1 && indicator !== "dot" 172 + 173 + return ( 174 + <div 175 + className={cn( 176 + "border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl", 177 + className 178 + )} 179 + > 180 + {!nestLabel ? tooltipLabel : null} 181 + <div className="grid gap-1.5"> 182 + {payload 183 + .filter((item) => item.type !== "none") 184 + .map((item, index) => { 185 + const key = `${nameKey || item.name || item.dataKey || "value"}` 186 + const itemConfig = getPayloadConfigFromPayload(config, item, key) 187 + const indicatorColor = color || item.payload.fill || item.color 188 + 189 + return ( 190 + <div 191 + key={item.dataKey} 192 + className={cn( 193 + "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5", 194 + indicator === "dot" && "items-center" 195 + )} 196 + > 197 + {formatter && item?.value !== undefined && item.name ? ( 198 + formatter(item.value, item.name, item, index, item.payload) 199 + ) : ( 200 + <> 201 + {itemConfig?.icon ? ( 202 + <itemConfig.icon /> 203 + ) : ( 204 + !hideIndicator && ( 205 + <div 206 + className={cn( 207 + "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", 208 + { 209 + "h-2.5 w-2.5": indicator === "dot", 210 + "w-1": indicator === "line", 211 + "w-0 border-[1.5px] border-dashed bg-transparent": 212 + indicator === "dashed", 213 + "my-0.5": nestLabel && indicator === "dashed", 214 + } 215 + )} 216 + style={ 217 + { 218 + "--color-bg": indicatorColor, 219 + "--color-border": indicatorColor, 220 + } as React.CSSProperties 221 + } 222 + /> 223 + ) 224 + )} 225 + <div 226 + className={cn( 227 + "flex flex-1 justify-between leading-none", 228 + nestLabel ? "items-end" : "items-center" 229 + )} 230 + > 231 + <div className="grid gap-1.5"> 232 + {nestLabel ? tooltipLabel : null} 233 + <span className="text-muted-foreground"> 234 + {itemConfig?.label || item.name} 235 + </span> 236 + </div> 237 + {item.value && ( 238 + <span className="text-foreground font-mono font-medium tabular-nums"> 239 + {item.value.toLocaleString()} 240 + </span> 241 + )} 242 + </div> 243 + </> 244 + )} 245 + </div> 246 + ) 247 + })} 248 + </div> 249 + </div> 250 + ) 251 + } 252 + 253 + const ChartLegend = RechartsPrimitive.Legend 254 + 255 + function ChartLegendContent({ 256 + className, 257 + hideIcon = false, 258 + payload, 259 + verticalAlign = "bottom", 260 + nameKey, 261 + }: React.ComponentProps<"div"> & 262 + Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & { 263 + hideIcon?: boolean 264 + nameKey?: string 265 + }) { 266 + const { config } = useChart() 267 + 268 + if (!payload?.length) { 269 + return null 270 + } 271 + 272 + return ( 273 + <div 274 + className={cn( 275 + "flex items-center justify-center gap-4", 276 + verticalAlign === "top" ? "pb-3" : "pt-3", 277 + className 278 + )} 279 + > 280 + {payload 281 + .filter((item) => item.type !== "none") 282 + .map((item) => { 283 + const key = `${nameKey || item.dataKey || "value"}` 284 + const itemConfig = getPayloadConfigFromPayload(config, item, key) 285 + 286 + return ( 287 + <div 288 + key={item.value} 289 + className={cn( 290 + "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3" 291 + )} 292 + > 293 + {itemConfig?.icon && !hideIcon ? ( 294 + <itemConfig.icon /> 295 + ) : ( 296 + <div 297 + className="h-2 w-2 shrink-0 rounded-[2px]" 298 + style={{ 299 + backgroundColor: item.color, 300 + }} 301 + /> 302 + )} 303 + {itemConfig?.label} 304 + </div> 305 + ) 306 + })} 307 + </div> 308 + ) 309 + } 310 + 311 + // Helper to extract item config from a payload. 312 + function getPayloadConfigFromPayload( 313 + config: ChartConfig, 314 + payload: unknown, 315 + key: string 316 + ) { 317 + if (typeof payload !== "object" || payload === null) { 318 + return undefined 319 + } 320 + 321 + const payloadPayload = 322 + "payload" in payload && 323 + typeof payload.payload === "object" && 324 + payload.payload !== null 325 + ? payload.payload 326 + : undefined 327 + 328 + let configLabelKey: string = key 329 + 330 + if ( 331 + key in payload && 332 + typeof payload[key as keyof typeof payload] === "string" 333 + ) { 334 + configLabelKey = payload[key as keyof typeof payload] as string 335 + } else if ( 336 + payloadPayload && 337 + key in payloadPayload && 338 + typeof payloadPayload[key as keyof typeof payloadPayload] === "string" 339 + ) { 340 + configLabelKey = payloadPayload[ 341 + key as keyof typeof payloadPayload 342 + ] as string 343 + } 344 + 345 + return configLabelKey in config 346 + ? config[configLabelKey] 347 + : config[key as keyof typeof config] 348 + } 349 + 350 + export { 351 + ChartContainer, 352 + ChartTooltip, 353 + ChartTooltipContent, 354 + ChartLegend, 355 + ChartLegendContent, 356 + ChartStyle, 357 + }
+32
web/src/components/ui/checkbox.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { CheckIcon } from "lucide-react" 5 + import { Checkbox as CheckboxPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + function Checkbox({ 10 + className, 11 + ...props 12 + }: React.ComponentProps<typeof CheckboxPrimitive.Root>) { 13 + return ( 14 + <CheckboxPrimitive.Root 15 + data-slot="checkbox" 16 + className={cn( 17 + "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", 18 + className 19 + )} 20 + {...props} 21 + > 22 + <CheckboxPrimitive.Indicator 23 + data-slot="checkbox-indicator" 24 + className="grid place-content-center text-current transition-none" 25 + > 26 + <CheckIcon className="size-3.5" /> 27 + </CheckboxPrimitive.Indicator> 28 + </CheckboxPrimitive.Root> 29 + ) 30 + } 31 + 32 + export { Checkbox }
+33
web/src/components/ui/collapsible.tsx
··· 1 + "use client" 2 + 3 + import { Collapsible as CollapsiblePrimitive } from "radix-ui" 4 + 5 + function Collapsible({ 6 + ...props 7 + }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) { 8 + return <CollapsiblePrimitive.Root data-slot="collapsible" {...props} /> 9 + } 10 + 11 + function CollapsibleTrigger({ 12 + ...props 13 + }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) { 14 + return ( 15 + <CollapsiblePrimitive.CollapsibleTrigger 16 + data-slot="collapsible-trigger" 17 + {...props} 18 + /> 19 + ) 20 + } 21 + 22 + function CollapsibleContent({ 23 + ...props 24 + }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) { 25 + return ( 26 + <CollapsiblePrimitive.CollapsibleContent 27 + data-slot="collapsible-content" 28 + {...props} 29 + /> 30 + ) 31 + } 32 + 33 + export { Collapsible, CollapsibleTrigger, CollapsibleContent }
+158
web/src/components/ui/dialog.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { XIcon } from "lucide-react" 5 + import { Dialog as DialogPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + import { Button } from "@/components/ui/button" 9 + 10 + function Dialog({ 11 + ...props 12 + }: React.ComponentProps<typeof DialogPrimitive.Root>) { 13 + return <DialogPrimitive.Root data-slot="dialog" {...props} /> 14 + } 15 + 16 + function DialogTrigger({ 17 + ...props 18 + }: React.ComponentProps<typeof DialogPrimitive.Trigger>) { 19 + return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} /> 20 + } 21 + 22 + function DialogPortal({ 23 + ...props 24 + }: React.ComponentProps<typeof DialogPrimitive.Portal>) { 25 + return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} /> 26 + } 27 + 28 + function DialogClose({ 29 + ...props 30 + }: React.ComponentProps<typeof DialogPrimitive.Close>) { 31 + return <DialogPrimitive.Close data-slot="dialog-close" {...props} /> 32 + } 33 + 34 + function DialogOverlay({ 35 + className, 36 + ...props 37 + }: React.ComponentProps<typeof DialogPrimitive.Overlay>) { 38 + return ( 39 + <DialogPrimitive.Overlay 40 + data-slot="dialog-overlay" 41 + className={cn( 42 + "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", 43 + className 44 + )} 45 + {...props} 46 + /> 47 + ) 48 + } 49 + 50 + function DialogContent({ 51 + className, 52 + children, 53 + showCloseButton = true, 54 + ...props 55 + }: React.ComponentProps<typeof DialogPrimitive.Content> & { 56 + showCloseButton?: boolean 57 + }) { 58 + return ( 59 + <DialogPortal data-slot="dialog-portal"> 60 + <DialogOverlay /> 61 + <DialogPrimitive.Content 62 + data-slot="dialog-content" 63 + className={cn( 64 + "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg", 65 + className 66 + )} 67 + {...props} 68 + > 69 + {children} 70 + {showCloseButton && ( 71 + <DialogPrimitive.Close 72 + data-slot="dialog-close" 73 + className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4" 74 + > 75 + <XIcon /> 76 + <span className="sr-only">Close</span> 77 + </DialogPrimitive.Close> 78 + )} 79 + </DialogPrimitive.Content> 80 + </DialogPortal> 81 + ) 82 + } 83 + 84 + function DialogHeader({ className, ...props }: React.ComponentProps<"div">) { 85 + return ( 86 + <div 87 + data-slot="dialog-header" 88 + className={cn("flex flex-col gap-2 text-center sm:text-left", className)} 89 + {...props} 90 + /> 91 + ) 92 + } 93 + 94 + function DialogFooter({ 95 + className, 96 + showCloseButton = false, 97 + children, 98 + ...props 99 + }: React.ComponentProps<"div"> & { 100 + showCloseButton?: boolean 101 + }) { 102 + return ( 103 + <div 104 + data-slot="dialog-footer" 105 + className={cn( 106 + "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", 107 + className 108 + )} 109 + {...props} 110 + > 111 + {children} 112 + {showCloseButton && ( 113 + <DialogPrimitive.Close asChild> 114 + <Button variant="outline">Close</Button> 115 + </DialogPrimitive.Close> 116 + )} 117 + </div> 118 + ) 119 + } 120 + 121 + function DialogTitle({ 122 + className, 123 + ...props 124 + }: React.ComponentProps<typeof DialogPrimitive.Title>) { 125 + return ( 126 + <DialogPrimitive.Title 127 + data-slot="dialog-title" 128 + className={cn("text-lg leading-none font-semibold", className)} 129 + {...props} 130 + /> 131 + ) 132 + } 133 + 134 + function DialogDescription({ 135 + className, 136 + ...props 137 + }: React.ComponentProps<typeof DialogPrimitive.Description>) { 138 + return ( 139 + <DialogPrimitive.Description 140 + data-slot="dialog-description" 141 + className={cn("text-muted-foreground text-sm", className)} 142 + {...props} 143 + /> 144 + ) 145 + } 146 + 147 + export { 148 + Dialog, 149 + DialogClose, 150 + DialogContent, 151 + DialogDescription, 152 + DialogFooter, 153 + DialogHeader, 154 + DialogOverlay, 155 + DialogPortal, 156 + DialogTitle, 157 + DialogTrigger, 158 + }
+135
web/src/components/ui/drawer.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Drawer as DrawerPrimitive } from "vaul" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function Drawer({ 9 + ...props 10 + }: React.ComponentProps<typeof DrawerPrimitive.Root>) { 11 + return <DrawerPrimitive.Root data-slot="drawer" {...props} /> 12 + } 13 + 14 + function DrawerTrigger({ 15 + ...props 16 + }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) { 17 + return <DrawerPrimitive.Trigger data-slot="drawer-trigger" {...props} /> 18 + } 19 + 20 + function DrawerPortal({ 21 + ...props 22 + }: React.ComponentProps<typeof DrawerPrimitive.Portal>) { 23 + return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} /> 24 + } 25 + 26 + function DrawerClose({ 27 + ...props 28 + }: React.ComponentProps<typeof DrawerPrimitive.Close>) { 29 + return <DrawerPrimitive.Close data-slot="drawer-close" {...props} /> 30 + } 31 + 32 + function DrawerOverlay({ 33 + className, 34 + ...props 35 + }: React.ComponentProps<typeof DrawerPrimitive.Overlay>) { 36 + return ( 37 + <DrawerPrimitive.Overlay 38 + data-slot="drawer-overlay" 39 + className={cn( 40 + "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", 41 + className 42 + )} 43 + {...props} 44 + /> 45 + ) 46 + } 47 + 48 + function DrawerContent({ 49 + className, 50 + children, 51 + ...props 52 + }: React.ComponentProps<typeof DrawerPrimitive.Content>) { 53 + return ( 54 + <DrawerPortal data-slot="drawer-portal"> 55 + <DrawerOverlay /> 56 + <DrawerPrimitive.Content 57 + data-slot="drawer-content" 58 + className={cn( 59 + "group/drawer-content bg-background fixed z-50 flex h-auto flex-col", 60 + "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b", 61 + "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t", 62 + "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm", 63 + "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm", 64 + className 65 + )} 66 + {...props} 67 + > 68 + <div className="bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" /> 69 + {children} 70 + </DrawerPrimitive.Content> 71 + </DrawerPortal> 72 + ) 73 + } 74 + 75 + function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) { 76 + return ( 77 + <div 78 + data-slot="drawer-header" 79 + className={cn( 80 + "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left", 81 + className 82 + )} 83 + {...props} 84 + /> 85 + ) 86 + } 87 + 88 + function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) { 89 + return ( 90 + <div 91 + data-slot="drawer-footer" 92 + className={cn("mt-auto flex flex-col gap-2 p-4", className)} 93 + {...props} 94 + /> 95 + ) 96 + } 97 + 98 + function DrawerTitle({ 99 + className, 100 + ...props 101 + }: React.ComponentProps<typeof DrawerPrimitive.Title>) { 102 + return ( 103 + <DrawerPrimitive.Title 104 + data-slot="drawer-title" 105 + className={cn("text-foreground font-semibold", className)} 106 + {...props} 107 + /> 108 + ) 109 + } 110 + 111 + function DrawerDescription({ 112 + className, 113 + ...props 114 + }: React.ComponentProps<typeof DrawerPrimitive.Description>) { 115 + return ( 116 + <DrawerPrimitive.Description 117 + data-slot="drawer-description" 118 + className={cn("text-muted-foreground text-sm", className)} 119 + {...props} 120 + /> 121 + ) 122 + } 123 + 124 + export { 125 + Drawer, 126 + DrawerPortal, 127 + DrawerOverlay, 128 + DrawerTrigger, 129 + DrawerClose, 130 + DrawerContent, 131 + DrawerHeader, 132 + DrawerFooter, 133 + DrawerTitle, 134 + DrawerDescription, 135 + }
+257
web/src/components/ui/dropdown-menu.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react" 5 + import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + function DropdownMenu({ 10 + ...props 11 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) { 12 + return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} /> 13 + } 14 + 15 + function DropdownMenuPortal({ 16 + ...props 17 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) { 18 + return ( 19 + <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} /> 20 + ) 21 + } 22 + 23 + function DropdownMenuTrigger({ 24 + ...props 25 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) { 26 + return ( 27 + <DropdownMenuPrimitive.Trigger 28 + data-slot="dropdown-menu-trigger" 29 + {...props} 30 + /> 31 + ) 32 + } 33 + 34 + function DropdownMenuContent({ 35 + className, 36 + sideOffset = 4, 37 + ...props 38 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) { 39 + return ( 40 + <DropdownMenuPrimitive.Portal> 41 + <DropdownMenuPrimitive.Content 42 + data-slot="dropdown-menu-content" 43 + sideOffset={sideOffset} 44 + className={cn( 45 + "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", 46 + className 47 + )} 48 + {...props} 49 + /> 50 + </DropdownMenuPrimitive.Portal> 51 + ) 52 + } 53 + 54 + function DropdownMenuGroup({ 55 + ...props 56 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) { 57 + return ( 58 + <DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} /> 59 + ) 60 + } 61 + 62 + function DropdownMenuItem({ 63 + className, 64 + inset, 65 + variant = "default", 66 + ...props 67 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & { 68 + inset?: boolean 69 + variant?: "default" | "destructive" 70 + }) { 71 + return ( 72 + <DropdownMenuPrimitive.Item 73 + data-slot="dropdown-menu-item" 74 + data-inset={inset} 75 + data-variant={variant} 76 + className={cn( 77 + "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 78 + className 79 + )} 80 + {...props} 81 + /> 82 + ) 83 + } 84 + 85 + function DropdownMenuCheckboxItem({ 86 + className, 87 + children, 88 + checked, 89 + ...props 90 + }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) { 91 + return ( 92 + <DropdownMenuPrimitive.CheckboxItem 93 + data-slot="dropdown-menu-checkbox-item" 94 + className={cn( 95 + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 96 + className 97 + )} 98 + checked={checked} 99 + {...props} 100 + > 101 + <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center"> 102 + <DropdownMenuPrimitive.ItemIndicator> 103 + <CheckIcon className="size-4" /> 104 + </DropdownMenuPrimitive.ItemIndicator> 105 + </span> 106 + {children} 107 + </DropdownMenuPrimitive.CheckboxItem> 108 + ) 109 + } 110 + 111 + function DropdownMenuRadioGroup({ 112 + ...props 113 + }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) { 114 + return ( 115 + <DropdownMenuPrimitive.RadioGroup 116 + data-slot="dropdown-menu-radio-group" 117 + {...props} 118 + /> 119 + ) 120 + } 121 + 122 + function DropdownMenuRadioItem({ 123 + className, 124 + children, 125 + ...props 126 + }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) { 127 + return ( 128 + <DropdownMenuPrimitive.RadioItem 129 + data-slot="dropdown-menu-radio-item" 130 + className={cn( 131 + "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 132 + className 133 + )} 134 + {...props} 135 + > 136 + <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center"> 137 + <DropdownMenuPrimitive.ItemIndicator> 138 + <CircleIcon className="size-2 fill-current" /> 139 + </DropdownMenuPrimitive.ItemIndicator> 140 + </span> 141 + {children} 142 + </DropdownMenuPrimitive.RadioItem> 143 + ) 144 + } 145 + 146 + function DropdownMenuLabel({ 147 + className, 148 + inset, 149 + ...props 150 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & { 151 + inset?: boolean 152 + }) { 153 + return ( 154 + <DropdownMenuPrimitive.Label 155 + data-slot="dropdown-menu-label" 156 + data-inset={inset} 157 + className={cn( 158 + "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", 159 + className 160 + )} 161 + {...props} 162 + /> 163 + ) 164 + } 165 + 166 + function DropdownMenuSeparator({ 167 + className, 168 + ...props 169 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) { 170 + return ( 171 + <DropdownMenuPrimitive.Separator 172 + data-slot="dropdown-menu-separator" 173 + className={cn("bg-border -mx-1 my-1 h-px", className)} 174 + {...props} 175 + /> 176 + ) 177 + } 178 + 179 + function DropdownMenuShortcut({ 180 + className, 181 + ...props 182 + }: React.ComponentProps<"span">) { 183 + return ( 184 + <span 185 + data-slot="dropdown-menu-shortcut" 186 + className={cn( 187 + "text-muted-foreground ml-auto text-xs tracking-widest", 188 + className 189 + )} 190 + {...props} 191 + /> 192 + ) 193 + } 194 + 195 + function DropdownMenuSub({ 196 + ...props 197 + }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) { 198 + return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} /> 199 + } 200 + 201 + function DropdownMenuSubTrigger({ 202 + className, 203 + inset, 204 + children, 205 + ...props 206 + }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & { 207 + inset?: boolean 208 + }) { 209 + return ( 210 + <DropdownMenuPrimitive.SubTrigger 211 + data-slot="dropdown-menu-sub-trigger" 212 + data-inset={inset} 213 + className={cn( 214 + "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 215 + className 216 + )} 217 + {...props} 218 + > 219 + {children} 220 + <ChevronRightIcon className="ml-auto size-4" /> 221 + </DropdownMenuPrimitive.SubTrigger> 222 + ) 223 + } 224 + 225 + function DropdownMenuSubContent({ 226 + className, 227 + ...props 228 + }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) { 229 + return ( 230 + <DropdownMenuPrimitive.SubContent 231 + data-slot="dropdown-menu-sub-content" 232 + className={cn( 233 + "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", 234 + className 235 + )} 236 + {...props} 237 + /> 238 + ) 239 + } 240 + 241 + export { 242 + DropdownMenu, 243 + DropdownMenuPortal, 244 + DropdownMenuTrigger, 245 + DropdownMenuContent, 246 + DropdownMenuGroup, 247 + DropdownMenuLabel, 248 + DropdownMenuItem, 249 + DropdownMenuCheckboxItem, 250 + DropdownMenuRadioGroup, 251 + DropdownMenuRadioItem, 252 + DropdownMenuSeparator, 253 + DropdownMenuShortcut, 254 + DropdownMenuSub, 255 + DropdownMenuSubTrigger, 256 + DropdownMenuSubContent, 257 + }
+248
web/src/components/ui/field.tsx
··· 1 + "use client" 2 + 3 + import { useMemo } from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + 6 + import { cn } from "@/lib/utils" 7 + import { Label } from "@/components/ui/label" 8 + import { Separator } from "@/components/ui/separator" 9 + 10 + function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) { 11 + return ( 12 + <fieldset 13 + data-slot="field-set" 14 + className={cn( 15 + "flex flex-col gap-6", 16 + "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", 17 + className 18 + )} 19 + {...props} 20 + /> 21 + ) 22 + } 23 + 24 + function FieldLegend({ 25 + className, 26 + variant = "legend", 27 + ...props 28 + }: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) { 29 + return ( 30 + <legend 31 + data-slot="field-legend" 32 + data-variant={variant} 33 + className={cn( 34 + "mb-3 font-medium", 35 + "data-[variant=legend]:text-base", 36 + "data-[variant=label]:text-sm", 37 + className 38 + )} 39 + {...props} 40 + /> 41 + ) 42 + } 43 + 44 + function FieldGroup({ className, ...props }: React.ComponentProps<"div">) { 45 + return ( 46 + <div 47 + data-slot="field-group" 48 + className={cn( 49 + "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4", 50 + className 51 + )} 52 + {...props} 53 + /> 54 + ) 55 + } 56 + 57 + const fieldVariants = cva( 58 + "group/field flex w-full gap-3 data-[invalid=true]:text-destructive", 59 + { 60 + variants: { 61 + orientation: { 62 + vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"], 63 + horizontal: [ 64 + "flex-row items-center", 65 + "[&>[data-slot=field-label]]:flex-auto", 66 + "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", 67 + ], 68 + responsive: [ 69 + "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto", 70 + "@md/field-group:[&>[data-slot=field-label]]:flex-auto", 71 + "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px", 72 + ], 73 + }, 74 + }, 75 + defaultVariants: { 76 + orientation: "vertical", 77 + }, 78 + } 79 + ) 80 + 81 + function Field({ 82 + className, 83 + orientation = "vertical", 84 + ...props 85 + }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>) { 86 + return ( 87 + <div 88 + role="group" 89 + data-slot="field" 90 + data-orientation={orientation} 91 + className={cn(fieldVariants({ orientation }), className)} 92 + {...props} 93 + /> 94 + ) 95 + } 96 + 97 + function FieldContent({ className, ...props }: React.ComponentProps<"div">) { 98 + return ( 99 + <div 100 + data-slot="field-content" 101 + className={cn( 102 + "group/field-content flex flex-1 flex-col gap-1.5 leading-snug", 103 + className 104 + )} 105 + {...props} 106 + /> 107 + ) 108 + } 109 + 110 + function FieldLabel({ 111 + className, 112 + ...props 113 + }: React.ComponentProps<typeof Label>) { 114 + return ( 115 + <Label 116 + data-slot="field-label" 117 + className={cn( 118 + "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50", 119 + "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4", 120 + "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10", 121 + className 122 + )} 123 + {...props} 124 + /> 125 + ) 126 + } 127 + 128 + function FieldTitle({ className, ...props }: React.ComponentProps<"div">) { 129 + return ( 130 + <div 131 + data-slot="field-label" 132 + className={cn( 133 + "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50", 134 + className 135 + )} 136 + {...props} 137 + /> 138 + ) 139 + } 140 + 141 + function FieldDescription({ className, ...props }: React.ComponentProps<"p">) { 142 + return ( 143 + <p 144 + data-slot="field-description" 145 + className={cn( 146 + "text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance", 147 + "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5", 148 + "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", 149 + className 150 + )} 151 + {...props} 152 + /> 153 + ) 154 + } 155 + 156 + function FieldSeparator({ 157 + children, 158 + className, 159 + ...props 160 + }: React.ComponentProps<"div"> & { 161 + children?: React.ReactNode 162 + }) { 163 + return ( 164 + <div 165 + data-slot="field-separator" 166 + data-content={!!children} 167 + className={cn( 168 + "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", 169 + className 170 + )} 171 + {...props} 172 + > 173 + <Separator className="absolute inset-0 top-1/2" /> 174 + {children && ( 175 + <span 176 + className="bg-background text-muted-foreground relative mx-auto block w-fit px-2" 177 + data-slot="field-separator-content" 178 + > 179 + {children} 180 + </span> 181 + )} 182 + </div> 183 + ) 184 + } 185 + 186 + function FieldError({ 187 + className, 188 + children, 189 + errors, 190 + ...props 191 + }: React.ComponentProps<"div"> & { 192 + errors?: Array<{ message?: string } | undefined> 193 + }) { 194 + const content = useMemo(() => { 195 + if (children) { 196 + return children 197 + } 198 + 199 + if (!errors?.length) { 200 + return null 201 + } 202 + 203 + const uniqueErrors = [ 204 + ...new Map(errors.map((error) => [error?.message, error])).values(), 205 + ] 206 + 207 + if (uniqueErrors?.length == 1) { 208 + return uniqueErrors[0]?.message 209 + } 210 + 211 + return ( 212 + <ul className="ml-4 flex list-disc flex-col gap-1"> 213 + {uniqueErrors.map( 214 + (error, index) => 215 + error?.message && <li key={index}>{error.message}</li> 216 + )} 217 + </ul> 218 + ) 219 + }, [children, errors]) 220 + 221 + if (!content) { 222 + return null 223 + } 224 + 225 + return ( 226 + <div 227 + role="alert" 228 + data-slot="field-error" 229 + className={cn("text-destructive text-sm font-normal", className)} 230 + {...props} 231 + > 232 + {content} 233 + </div> 234 + ) 235 + } 236 + 237 + export { 238 + Field, 239 + FieldLabel, 240 + FieldDescription, 241 + FieldError, 242 + FieldGroup, 243 + FieldLegend, 244 + FieldSeparator, 245 + FieldSet, 246 + FieldContent, 247 + FieldTitle, 248 + }
+21
web/src/components/ui/input.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/lib/utils" 4 + 5 + function Input({ className, type, ...props }: React.ComponentProps<"input">) { 6 + return ( 7 + <input 8 + type={type} 9 + data-slot="input" 10 + className={cn( 11 + "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", 12 + "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", 13 + "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", 14 + className 15 + )} 16 + {...props} 17 + /> 18 + ) 19 + } 20 + 21 + export { Input }
+24
web/src/components/ui/label.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Label as LabelPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function Label({ 9 + className, 10 + ...props 11 + }: React.ComponentProps<typeof LabelPrimitive.Root>) { 12 + return ( 13 + <LabelPrimitive.Root 14 + data-slot="label" 15 + className={cn( 16 + "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", 17 + className 18 + )} 19 + {...props} 20 + /> 21 + ) 22 + } 23 + 24 + export { Label }
+190
web/src/components/ui/select.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" 5 + import { Select as SelectPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + function Select({ 10 + ...props 11 + }: React.ComponentProps<typeof SelectPrimitive.Root>) { 12 + return <SelectPrimitive.Root data-slot="select" {...props} /> 13 + } 14 + 15 + function SelectGroup({ 16 + ...props 17 + }: React.ComponentProps<typeof SelectPrimitive.Group>) { 18 + return <SelectPrimitive.Group data-slot="select-group" {...props} /> 19 + } 20 + 21 + function SelectValue({ 22 + ...props 23 + }: React.ComponentProps<typeof SelectPrimitive.Value>) { 24 + return <SelectPrimitive.Value data-slot="select-value" {...props} /> 25 + } 26 + 27 + function SelectTrigger({ 28 + className, 29 + size = "default", 30 + children, 31 + ...props 32 + }: React.ComponentProps<typeof SelectPrimitive.Trigger> & { 33 + size?: "sm" | "default" 34 + }) { 35 + return ( 36 + <SelectPrimitive.Trigger 37 + data-slot="select-trigger" 38 + data-size={size} 39 + className={cn( 40 + "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 41 + className 42 + )} 43 + {...props} 44 + > 45 + {children} 46 + <SelectPrimitive.Icon asChild> 47 + <ChevronDownIcon className="size-4 opacity-50" /> 48 + </SelectPrimitive.Icon> 49 + </SelectPrimitive.Trigger> 50 + ) 51 + } 52 + 53 + function SelectContent({ 54 + className, 55 + children, 56 + position = "item-aligned", 57 + align = "center", 58 + ...props 59 + }: React.ComponentProps<typeof SelectPrimitive.Content>) { 60 + return ( 61 + <SelectPrimitive.Portal> 62 + <SelectPrimitive.Content 63 + data-slot="select-content" 64 + className={cn( 65 + "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", 66 + position === "popper" && 67 + "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", 68 + className 69 + )} 70 + position={position} 71 + align={align} 72 + {...props} 73 + > 74 + <SelectScrollUpButton /> 75 + <SelectPrimitive.Viewport 76 + className={cn( 77 + "p-1", 78 + position === "popper" && 79 + "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1" 80 + )} 81 + > 82 + {children} 83 + </SelectPrimitive.Viewport> 84 + <SelectScrollDownButton /> 85 + </SelectPrimitive.Content> 86 + </SelectPrimitive.Portal> 87 + ) 88 + } 89 + 90 + function SelectLabel({ 91 + className, 92 + ...props 93 + }: React.ComponentProps<typeof SelectPrimitive.Label>) { 94 + return ( 95 + <SelectPrimitive.Label 96 + data-slot="select-label" 97 + className={cn("text-muted-foreground px-2 py-1.5 text-xs", className)} 98 + {...props} 99 + /> 100 + ) 101 + } 102 + 103 + function SelectItem({ 104 + className, 105 + children, 106 + ...props 107 + }: React.ComponentProps<typeof SelectPrimitive.Item>) { 108 + return ( 109 + <SelectPrimitive.Item 110 + data-slot="select-item" 111 + className={cn( 112 + "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", 113 + className 114 + )} 115 + {...props} 116 + > 117 + <span 118 + data-slot="select-item-indicator" 119 + className="absolute right-2 flex size-3.5 items-center justify-center" 120 + > 121 + <SelectPrimitive.ItemIndicator> 122 + <CheckIcon className="size-4" /> 123 + </SelectPrimitive.ItemIndicator> 124 + </span> 125 + <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText> 126 + </SelectPrimitive.Item> 127 + ) 128 + } 129 + 130 + function SelectSeparator({ 131 + className, 132 + ...props 133 + }: React.ComponentProps<typeof SelectPrimitive.Separator>) { 134 + return ( 135 + <SelectPrimitive.Separator 136 + data-slot="select-separator" 137 + className={cn("bg-border pointer-events-none -mx-1 my-1 h-px", className)} 138 + {...props} 139 + /> 140 + ) 141 + } 142 + 143 + function SelectScrollUpButton({ 144 + className, 145 + ...props 146 + }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) { 147 + return ( 148 + <SelectPrimitive.ScrollUpButton 149 + data-slot="select-scroll-up-button" 150 + className={cn( 151 + "flex cursor-default items-center justify-center py-1", 152 + className 153 + )} 154 + {...props} 155 + > 156 + <ChevronUpIcon className="size-4" /> 157 + </SelectPrimitive.ScrollUpButton> 158 + ) 159 + } 160 + 161 + function SelectScrollDownButton({ 162 + className, 163 + ...props 164 + }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) { 165 + return ( 166 + <SelectPrimitive.ScrollDownButton 167 + data-slot="select-scroll-down-button" 168 + className={cn( 169 + "flex cursor-default items-center justify-center py-1", 170 + className 171 + )} 172 + {...props} 173 + > 174 + <ChevronDownIcon className="size-4" /> 175 + </SelectPrimitive.ScrollDownButton> 176 + ) 177 + } 178 + 179 + export { 180 + Select, 181 + SelectContent, 182 + SelectGroup, 183 + SelectItem, 184 + SelectLabel, 185 + SelectScrollDownButton, 186 + SelectScrollUpButton, 187 + SelectSeparator, 188 + SelectTrigger, 189 + SelectValue, 190 + }
+28
web/src/components/ui/separator.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Separator as SeparatorPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function Separator({ 9 + className, 10 + orientation = "horizontal", 11 + decorative = true, 12 + ...props 13 + }: React.ComponentProps<typeof SeparatorPrimitive.Root>) { 14 + return ( 15 + <SeparatorPrimitive.Root 16 + data-slot="separator" 17 + decorative={decorative} 18 + orientation={orientation} 19 + className={cn( 20 + "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", 21 + className 22 + )} 23 + {...props} 24 + /> 25 + ) 26 + } 27 + 28 + export { Separator }
+143
web/src/components/ui/sheet.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { XIcon } from "lucide-react" 5 + import { Dialog as SheetPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) { 10 + return <SheetPrimitive.Root data-slot="sheet" {...props} /> 11 + } 12 + 13 + function SheetTrigger({ 14 + ...props 15 + }: React.ComponentProps<typeof SheetPrimitive.Trigger>) { 16 + return <SheetPrimitive.Trigger data-slot="sheet-trigger" {...props} /> 17 + } 18 + 19 + function SheetClose({ 20 + ...props 21 + }: React.ComponentProps<typeof SheetPrimitive.Close>) { 22 + return <SheetPrimitive.Close data-slot="sheet-close" {...props} /> 23 + } 24 + 25 + function SheetPortal({ 26 + ...props 27 + }: React.ComponentProps<typeof SheetPrimitive.Portal>) { 28 + return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} /> 29 + } 30 + 31 + function SheetOverlay({ 32 + className, 33 + ...props 34 + }: React.ComponentProps<typeof SheetPrimitive.Overlay>) { 35 + return ( 36 + <SheetPrimitive.Overlay 37 + data-slot="sheet-overlay" 38 + className={cn( 39 + "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", 40 + className 41 + )} 42 + {...props} 43 + /> 44 + ) 45 + } 46 + 47 + function SheetContent({ 48 + className, 49 + children, 50 + side = "right", 51 + showCloseButton = true, 52 + ...props 53 + }: React.ComponentProps<typeof SheetPrimitive.Content> & { 54 + side?: "top" | "right" | "bottom" | "left" 55 + showCloseButton?: boolean 56 + }) { 57 + return ( 58 + <SheetPortal> 59 + <SheetOverlay /> 60 + <SheetPrimitive.Content 61 + data-slot="sheet-content" 62 + className={cn( 63 + "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", 64 + side === "right" && 65 + "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", 66 + side === "left" && 67 + "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", 68 + side === "top" && 69 + "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", 70 + side === "bottom" && 71 + "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", 72 + className 73 + )} 74 + {...props} 75 + > 76 + {children} 77 + {showCloseButton && ( 78 + <SheetPrimitive.Close className="ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none"> 79 + <XIcon className="size-4" /> 80 + <span className="sr-only">Close</span> 81 + </SheetPrimitive.Close> 82 + )} 83 + </SheetPrimitive.Content> 84 + </SheetPortal> 85 + ) 86 + } 87 + 88 + function SheetHeader({ className, ...props }: React.ComponentProps<"div">) { 89 + return ( 90 + <div 91 + data-slot="sheet-header" 92 + className={cn("flex flex-col gap-1.5 p-4", className)} 93 + {...props} 94 + /> 95 + ) 96 + } 97 + 98 + function SheetFooter({ className, ...props }: React.ComponentProps<"div">) { 99 + return ( 100 + <div 101 + data-slot="sheet-footer" 102 + className={cn("mt-auto flex flex-col gap-2 p-4", className)} 103 + {...props} 104 + /> 105 + ) 106 + } 107 + 108 + function SheetTitle({ 109 + className, 110 + ...props 111 + }: React.ComponentProps<typeof SheetPrimitive.Title>) { 112 + return ( 113 + <SheetPrimitive.Title 114 + data-slot="sheet-title" 115 + className={cn("text-foreground font-semibold", className)} 116 + {...props} 117 + /> 118 + ) 119 + } 120 + 121 + function SheetDescription({ 122 + className, 123 + ...props 124 + }: React.ComponentProps<typeof SheetPrimitive.Description>) { 125 + return ( 126 + <SheetPrimitive.Description 127 + data-slot="sheet-description" 128 + className={cn("text-muted-foreground text-sm", className)} 129 + {...props} 130 + /> 131 + ) 132 + } 133 + 134 + export { 135 + Sheet, 136 + SheetTrigger, 137 + SheetClose, 138 + SheetContent, 139 + SheetHeader, 140 + SheetFooter, 141 + SheetTitle, 142 + SheetDescription, 143 + }
+726
web/src/components/ui/sidebar.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + import { PanelLeftIcon } from "lucide-react" 6 + import { Slot } from "radix-ui" 7 + 8 + import { useIsMobile } from "@/hooks/use-mobile" 9 + import { cn } from "@/lib/utils" 10 + import { Button } from "@/components/ui/button" 11 + import { Input } from "@/components/ui/input" 12 + import { Separator } from "@/components/ui/separator" 13 + import { 14 + Sheet, 15 + SheetContent, 16 + SheetDescription, 17 + SheetHeader, 18 + SheetTitle, 19 + } from "@/components/ui/sheet" 20 + import { Skeleton } from "@/components/ui/skeleton" 21 + import { 22 + Tooltip, 23 + TooltipContent, 24 + TooltipProvider, 25 + TooltipTrigger, 26 + } from "@/components/ui/tooltip" 27 + 28 + const SIDEBAR_COOKIE_NAME = "sidebar_state" 29 + const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7 30 + const SIDEBAR_WIDTH = "16rem" 31 + const SIDEBAR_WIDTH_MOBILE = "18rem" 32 + const SIDEBAR_WIDTH_ICON = "3rem" 33 + const SIDEBAR_KEYBOARD_SHORTCUT = "b" 34 + 35 + type SidebarContextProps = { 36 + state: "expanded" | "collapsed" 37 + open: boolean 38 + setOpen: (open: boolean) => void 39 + openMobile: boolean 40 + setOpenMobile: (open: boolean) => void 41 + isMobile: boolean 42 + toggleSidebar: () => void 43 + } 44 + 45 + const SidebarContext = React.createContext<SidebarContextProps | null>(null) 46 + 47 + function useSidebar() { 48 + const context = React.useContext(SidebarContext) 49 + if (!context) { 50 + throw new Error("useSidebar must be used within a SidebarProvider.") 51 + } 52 + 53 + return context 54 + } 55 + 56 + function SidebarProvider({ 57 + defaultOpen = true, 58 + open: openProp, 59 + onOpenChange: setOpenProp, 60 + className, 61 + style, 62 + children, 63 + ...props 64 + }: React.ComponentProps<"div"> & { 65 + defaultOpen?: boolean 66 + open?: boolean 67 + onOpenChange?: (open: boolean) => void 68 + }) { 69 + const isMobile = useIsMobile() 70 + const [openMobile, setOpenMobile] = React.useState(false) 71 + 72 + // This is the internal state of the sidebar. 73 + // We use openProp and setOpenProp for control from outside the component. 74 + const [_open, _setOpen] = React.useState(defaultOpen) 75 + const open = openProp ?? _open 76 + const setOpen = React.useCallback( 77 + (value: boolean | ((value: boolean) => boolean)) => { 78 + const openState = typeof value === "function" ? value(open) : value 79 + if (setOpenProp) { 80 + setOpenProp(openState) 81 + } else { 82 + _setOpen(openState) 83 + } 84 + 85 + // This sets the cookie to keep the sidebar state. 86 + document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}` 87 + }, 88 + [setOpenProp, open] 89 + ) 90 + 91 + // Helper to toggle the sidebar. 92 + const toggleSidebar = React.useCallback(() => { 93 + return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open) 94 + }, [isMobile, setOpen, setOpenMobile]) 95 + 96 + // Adds a keyboard shortcut to toggle the sidebar. 97 + React.useEffect(() => { 98 + const handleKeyDown = (event: KeyboardEvent) => { 99 + if ( 100 + event.key === SIDEBAR_KEYBOARD_SHORTCUT && 101 + (event.metaKey || event.ctrlKey) 102 + ) { 103 + event.preventDefault() 104 + toggleSidebar() 105 + } 106 + } 107 + 108 + window.addEventListener("keydown", handleKeyDown) 109 + return () => window.removeEventListener("keydown", handleKeyDown) 110 + }, [toggleSidebar]) 111 + 112 + // We add a state so that we can do data-state="expanded" or "collapsed". 113 + // This makes it easier to style the sidebar with Tailwind classes. 114 + const state = open ? "expanded" : "collapsed" 115 + 116 + const contextValue = React.useMemo<SidebarContextProps>( 117 + () => ({ 118 + state, 119 + open, 120 + setOpen, 121 + isMobile, 122 + openMobile, 123 + setOpenMobile, 124 + toggleSidebar, 125 + }), 126 + [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar] 127 + ) 128 + 129 + return ( 130 + <SidebarContext.Provider value={contextValue}> 131 + <TooltipProvider delayDuration={0}> 132 + <div 133 + data-slot="sidebar-wrapper" 134 + style={ 135 + { 136 + "--sidebar-width": SIDEBAR_WIDTH, 137 + "--sidebar-width-icon": SIDEBAR_WIDTH_ICON, 138 + ...style, 139 + } as React.CSSProperties 140 + } 141 + className={cn( 142 + "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", 143 + className 144 + )} 145 + {...props} 146 + > 147 + {children} 148 + </div> 149 + </TooltipProvider> 150 + </SidebarContext.Provider> 151 + ) 152 + } 153 + 154 + function Sidebar({ 155 + side = "left", 156 + variant = "sidebar", 157 + collapsible = "offcanvas", 158 + className, 159 + children, 160 + ...props 161 + }: React.ComponentProps<"div"> & { 162 + side?: "left" | "right" 163 + variant?: "sidebar" | "floating" | "inset" 164 + collapsible?: "offcanvas" | "icon" | "none" 165 + }) { 166 + const { isMobile, state, openMobile, setOpenMobile } = useSidebar() 167 + 168 + if (collapsible === "none") { 169 + return ( 170 + <div 171 + data-slot="sidebar" 172 + className={cn( 173 + "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", 174 + className 175 + )} 176 + {...props} 177 + > 178 + {children} 179 + </div> 180 + ) 181 + } 182 + 183 + if (isMobile) { 184 + return ( 185 + <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}> 186 + <SheetContent 187 + data-sidebar="sidebar" 188 + data-slot="sidebar" 189 + data-mobile="true" 190 + className="bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden" 191 + style={ 192 + { 193 + "--sidebar-width": SIDEBAR_WIDTH_MOBILE, 194 + } as React.CSSProperties 195 + } 196 + side={side} 197 + > 198 + <SheetHeader className="sr-only"> 199 + <SheetTitle>Sidebar</SheetTitle> 200 + <SheetDescription>Displays the mobile sidebar.</SheetDescription> 201 + </SheetHeader> 202 + <div className="flex h-full w-full flex-col">{children}</div> 203 + </SheetContent> 204 + </Sheet> 205 + ) 206 + } 207 + 208 + return ( 209 + <div 210 + className="group peer text-sidebar-foreground hidden md:block" 211 + data-state={state} 212 + data-collapsible={state === "collapsed" ? collapsible : ""} 213 + data-variant={variant} 214 + data-side={side} 215 + data-slot="sidebar" 216 + > 217 + {/* This is what handles the sidebar gap on desktop */} 218 + <div 219 + data-slot="sidebar-gap" 220 + className={cn( 221 + "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", 222 + "group-data-[collapsible=offcanvas]:w-0", 223 + "group-data-[side=right]:rotate-180", 224 + variant === "floating" || variant === "inset" 225 + ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" 226 + : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)" 227 + )} 228 + /> 229 + <div 230 + data-slot="sidebar-container" 231 + className={cn( 232 + "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", 233 + side === "left" 234 + ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" 235 + : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", 236 + // Adjust the padding for floating and inset variants. 237 + variant === "floating" || variant === "inset" 238 + ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" 239 + : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", 240 + className 241 + )} 242 + {...props} 243 + > 244 + <div 245 + data-sidebar="sidebar" 246 + data-slot="sidebar-inner" 247 + className="bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm" 248 + > 249 + {children} 250 + </div> 251 + </div> 252 + </div> 253 + ) 254 + } 255 + 256 + function SidebarTrigger({ 257 + className, 258 + onClick, 259 + ...props 260 + }: React.ComponentProps<typeof Button>) { 261 + const { toggleSidebar } = useSidebar() 262 + 263 + return ( 264 + <Button 265 + data-sidebar="trigger" 266 + data-slot="sidebar-trigger" 267 + variant="ghost" 268 + size="icon" 269 + className={cn("size-7", className)} 270 + onClick={(event) => { 271 + onClick?.(event) 272 + toggleSidebar() 273 + }} 274 + {...props} 275 + > 276 + <PanelLeftIcon /> 277 + <span className="sr-only">Toggle Sidebar</span> 278 + </Button> 279 + ) 280 + } 281 + 282 + function SidebarRail({ className, ...props }: React.ComponentProps<"button">) { 283 + const { toggleSidebar } = useSidebar() 284 + 285 + return ( 286 + <button 287 + data-sidebar="rail" 288 + data-slot="sidebar-rail" 289 + aria-label="Toggle Sidebar" 290 + tabIndex={-1} 291 + onClick={toggleSidebar} 292 + title="Toggle Sidebar" 293 + className={cn( 294 + "hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", 295 + "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", 296 + "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", 297 + "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", 298 + "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", 299 + "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", 300 + className 301 + )} 302 + {...props} 303 + /> 304 + ) 305 + } 306 + 307 + function SidebarInset({ className, ...props }: React.ComponentProps<"main">) { 308 + return ( 309 + <main 310 + data-slot="sidebar-inset" 311 + className={cn( 312 + "bg-background relative flex w-full flex-1 flex-col", 313 + "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", 314 + className 315 + )} 316 + {...props} 317 + /> 318 + ) 319 + } 320 + 321 + function SidebarInput({ 322 + className, 323 + ...props 324 + }: React.ComponentProps<typeof Input>) { 325 + return ( 326 + <Input 327 + data-slot="sidebar-input" 328 + data-sidebar="input" 329 + className={cn("bg-background h-8 w-full shadow-none", className)} 330 + {...props} 331 + /> 332 + ) 333 + } 334 + 335 + function SidebarHeader({ className, ...props }: React.ComponentProps<"div">) { 336 + return ( 337 + <div 338 + data-slot="sidebar-header" 339 + data-sidebar="header" 340 + className={cn("flex flex-col gap-2 p-2", className)} 341 + {...props} 342 + /> 343 + ) 344 + } 345 + 346 + function SidebarFooter({ className, ...props }: React.ComponentProps<"div">) { 347 + return ( 348 + <div 349 + data-slot="sidebar-footer" 350 + data-sidebar="footer" 351 + className={cn("flex flex-col gap-2 p-2", className)} 352 + {...props} 353 + /> 354 + ) 355 + } 356 + 357 + function SidebarSeparator({ 358 + className, 359 + ...props 360 + }: React.ComponentProps<typeof Separator>) { 361 + return ( 362 + <Separator 363 + data-slot="sidebar-separator" 364 + data-sidebar="separator" 365 + className={cn("bg-sidebar-border mx-2 w-auto", className)} 366 + {...props} 367 + /> 368 + ) 369 + } 370 + 371 + function SidebarContent({ className, ...props }: React.ComponentProps<"div">) { 372 + return ( 373 + <div 374 + data-slot="sidebar-content" 375 + data-sidebar="content" 376 + className={cn( 377 + "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", 378 + className 379 + )} 380 + {...props} 381 + /> 382 + ) 383 + } 384 + 385 + function SidebarGroup({ className, ...props }: React.ComponentProps<"div">) { 386 + return ( 387 + <div 388 + data-slot="sidebar-group" 389 + data-sidebar="group" 390 + className={cn("relative flex w-full min-w-0 flex-col p-2", className)} 391 + {...props} 392 + /> 393 + ) 394 + } 395 + 396 + function SidebarGroupLabel({ 397 + className, 398 + asChild = false, 399 + ...props 400 + }: React.ComponentProps<"div"> & { asChild?: boolean }) { 401 + const Comp = asChild ? Slot.Root : "div" 402 + 403 + return ( 404 + <Comp 405 + data-slot="sidebar-group-label" 406 + data-sidebar="group-label" 407 + className={cn( 408 + "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", 409 + "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", 410 + className 411 + )} 412 + {...props} 413 + /> 414 + ) 415 + } 416 + 417 + function SidebarGroupAction({ 418 + className, 419 + asChild = false, 420 + ...props 421 + }: React.ComponentProps<"button"> & { asChild?: boolean }) { 422 + const Comp = asChild ? Slot.Root : "button" 423 + 424 + return ( 425 + <Comp 426 + data-slot="sidebar-group-action" 427 + data-sidebar="group-action" 428 + className={cn( 429 + "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", 430 + // Increases the hit area of the button on mobile. 431 + "after:absolute after:-inset-2 md:after:hidden", 432 + "group-data-[collapsible=icon]:hidden", 433 + className 434 + )} 435 + {...props} 436 + /> 437 + ) 438 + } 439 + 440 + function SidebarGroupContent({ 441 + className, 442 + ...props 443 + }: React.ComponentProps<"div">) { 444 + return ( 445 + <div 446 + data-slot="sidebar-group-content" 447 + data-sidebar="group-content" 448 + className={cn("w-full text-sm", className)} 449 + {...props} 450 + /> 451 + ) 452 + } 453 + 454 + function SidebarMenu({ className, ...props }: React.ComponentProps<"ul">) { 455 + return ( 456 + <ul 457 + data-slot="sidebar-menu" 458 + data-sidebar="menu" 459 + className={cn("flex w-full min-w-0 flex-col gap-1", className)} 460 + {...props} 461 + /> 462 + ) 463 + } 464 + 465 + function SidebarMenuItem({ className, ...props }: React.ComponentProps<"li">) { 466 + return ( 467 + <li 468 + data-slot="sidebar-menu-item" 469 + data-sidebar="menu-item" 470 + className={cn("group/menu-item relative", className)} 471 + {...props} 472 + /> 473 + ) 474 + } 475 + 476 + const sidebarMenuButtonVariants = cva( 477 + "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", 478 + { 479 + variants: { 480 + variant: { 481 + default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", 482 + outline: 483 + "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]", 484 + }, 485 + size: { 486 + default: "h-8 text-sm", 487 + sm: "h-7 text-xs", 488 + lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!", 489 + }, 490 + }, 491 + defaultVariants: { 492 + variant: "default", 493 + size: "default", 494 + }, 495 + } 496 + ) 497 + 498 + function SidebarMenuButton({ 499 + asChild = false, 500 + isActive = false, 501 + variant = "default", 502 + size = "default", 503 + tooltip, 504 + className, 505 + ...props 506 + }: React.ComponentProps<"button"> & { 507 + asChild?: boolean 508 + isActive?: boolean 509 + tooltip?: string | React.ComponentProps<typeof TooltipContent> 510 + } & VariantProps<typeof sidebarMenuButtonVariants>) { 511 + const Comp = asChild ? Slot.Root : "button" 512 + const { isMobile, state } = useSidebar() 513 + 514 + const button = ( 515 + <Comp 516 + data-slot="sidebar-menu-button" 517 + data-sidebar="menu-button" 518 + data-size={size} 519 + data-active={isActive} 520 + className={cn(sidebarMenuButtonVariants({ variant, size }), className)} 521 + {...props} 522 + /> 523 + ) 524 + 525 + if (!tooltip) { 526 + return button 527 + } 528 + 529 + if (typeof tooltip === "string") { 530 + tooltip = { 531 + children: tooltip, 532 + } 533 + } 534 + 535 + return ( 536 + <Tooltip> 537 + <TooltipTrigger asChild>{button}</TooltipTrigger> 538 + <TooltipContent 539 + side="right" 540 + align="center" 541 + hidden={state !== "collapsed" || isMobile} 542 + {...tooltip} 543 + /> 544 + </Tooltip> 545 + ) 546 + } 547 + 548 + function SidebarMenuAction({ 549 + className, 550 + asChild = false, 551 + showOnHover = false, 552 + ...props 553 + }: React.ComponentProps<"button"> & { 554 + asChild?: boolean 555 + showOnHover?: boolean 556 + }) { 557 + const Comp = asChild ? Slot.Root : "button" 558 + 559 + return ( 560 + <Comp 561 + data-slot="sidebar-menu-action" 562 + data-sidebar="menu-action" 563 + className={cn( 564 + "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", 565 + // Increases the hit area of the button on mobile. 566 + "after:absolute after:-inset-2 md:after:hidden", 567 + "peer-data-[size=sm]/menu-button:top-1", 568 + "peer-data-[size=default]/menu-button:top-1.5", 569 + "peer-data-[size=lg]/menu-button:top-2.5", 570 + "group-data-[collapsible=icon]:hidden", 571 + showOnHover && 572 + "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", 573 + className 574 + )} 575 + {...props} 576 + /> 577 + ) 578 + } 579 + 580 + function SidebarMenuBadge({ 581 + className, 582 + ...props 583 + }: React.ComponentProps<"div">) { 584 + return ( 585 + <div 586 + data-slot="sidebar-menu-badge" 587 + data-sidebar="menu-badge" 588 + className={cn( 589 + "text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", 590 + "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", 591 + "peer-data-[size=sm]/menu-button:top-1", 592 + "peer-data-[size=default]/menu-button:top-1.5", 593 + "peer-data-[size=lg]/menu-button:top-2.5", 594 + "group-data-[collapsible=icon]:hidden", 595 + className 596 + )} 597 + {...props} 598 + /> 599 + ) 600 + } 601 + 602 + function SidebarMenuSkeleton({ 603 + className, 604 + showIcon = false, 605 + ...props 606 + }: React.ComponentProps<"div"> & { 607 + showIcon?: boolean 608 + }) { 609 + // Random width between 50 to 90%. 610 + const width = React.useMemo(() => { 611 + return `${Math.floor(Math.random() * 40) + 50}%` 612 + }, []) 613 + 614 + return ( 615 + <div 616 + data-slot="sidebar-menu-skeleton" 617 + data-sidebar="menu-skeleton" 618 + className={cn("flex h-8 items-center gap-2 rounded-md px-2", className)} 619 + {...props} 620 + > 621 + {showIcon && ( 622 + <Skeleton 623 + className="size-4 rounded-md" 624 + data-sidebar="menu-skeleton-icon" 625 + /> 626 + )} 627 + <Skeleton 628 + className="h-4 max-w-(--skeleton-width) flex-1" 629 + data-sidebar="menu-skeleton-text" 630 + style={ 631 + { 632 + "--skeleton-width": width, 633 + } as React.CSSProperties 634 + } 635 + /> 636 + </div> 637 + ) 638 + } 639 + 640 + function SidebarMenuSub({ className, ...props }: React.ComponentProps<"ul">) { 641 + return ( 642 + <ul 643 + data-slot="sidebar-menu-sub" 644 + data-sidebar="menu-sub" 645 + className={cn( 646 + "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5", 647 + "group-data-[collapsible=icon]:hidden", 648 + className 649 + )} 650 + {...props} 651 + /> 652 + ) 653 + } 654 + 655 + function SidebarMenuSubItem({ 656 + className, 657 + ...props 658 + }: React.ComponentProps<"li">) { 659 + return ( 660 + <li 661 + data-slot="sidebar-menu-sub-item" 662 + data-sidebar="menu-sub-item" 663 + className={cn("group/menu-sub-item relative", className)} 664 + {...props} 665 + /> 666 + ) 667 + } 668 + 669 + function SidebarMenuSubButton({ 670 + asChild = false, 671 + size = "md", 672 + isActive = false, 673 + className, 674 + ...props 675 + }: React.ComponentProps<"a"> & { 676 + asChild?: boolean 677 + size?: "sm" | "md" 678 + isActive?: boolean 679 + }) { 680 + const Comp = asChild ? Slot.Root : "a" 681 + 682 + return ( 683 + <Comp 684 + data-slot="sidebar-menu-sub-button" 685 + data-sidebar="menu-sub-button" 686 + data-size={size} 687 + data-active={isActive} 688 + className={cn( 689 + "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", 690 + "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", 691 + size === "sm" && "text-xs", 692 + size === "md" && "text-sm", 693 + "group-data-[collapsible=icon]:hidden", 694 + className 695 + )} 696 + {...props} 697 + /> 698 + ) 699 + } 700 + 701 + export { 702 + Sidebar, 703 + SidebarContent, 704 + SidebarFooter, 705 + SidebarGroup, 706 + SidebarGroupAction, 707 + SidebarGroupContent, 708 + SidebarGroupLabel, 709 + SidebarHeader, 710 + SidebarInput, 711 + SidebarInset, 712 + SidebarMenu, 713 + SidebarMenuAction, 714 + SidebarMenuBadge, 715 + SidebarMenuButton, 716 + SidebarMenuItem, 717 + SidebarMenuSkeleton, 718 + SidebarMenuSub, 719 + SidebarMenuSubButton, 720 + SidebarMenuSubItem, 721 + SidebarProvider, 722 + SidebarRail, 723 + SidebarSeparator, 724 + SidebarTrigger, 725 + useSidebar, 726 + }
+13
web/src/components/ui/skeleton.tsx
··· 1 + import { cn } from "@/lib/utils" 2 + 3 + function Skeleton({ className, ...props }: React.ComponentProps<"div">) { 4 + return ( 5 + <div 6 + data-slot="skeleton" 7 + className={cn("bg-accent animate-pulse rounded-md", className)} 8 + {...props} 9 + /> 10 + ) 11 + } 12 + 13 + export { Skeleton }
+40
web/src/components/ui/sonner.tsx
··· 1 + "use client" 2 + 3 + import { 4 + CircleCheckIcon, 5 + InfoIcon, 6 + Loader2Icon, 7 + OctagonXIcon, 8 + TriangleAlertIcon, 9 + } from "lucide-react" 10 + import { useTheme } from "next-themes" 11 + import { Toaster as Sonner, type ToasterProps } from "sonner" 12 + 13 + const Toaster = ({ ...props }: ToasterProps) => { 14 + const { theme = "system" } = useTheme() 15 + 16 + return ( 17 + <Sonner 18 + theme={theme as ToasterProps["theme"]} 19 + className="toaster group" 20 + icons={{ 21 + success: <CircleCheckIcon className="size-4" />, 22 + info: <InfoIcon className="size-4" />, 23 + warning: <TriangleAlertIcon className="size-4" />, 24 + error: <OctagonXIcon className="size-4" />, 25 + loading: <Loader2Icon className="size-4 animate-spin" />, 26 + }} 27 + style={ 28 + { 29 + "--normal-bg": "var(--popover)", 30 + "--normal-text": "var(--popover-foreground)", 31 + "--normal-border": "var(--border)", 32 + "--border-radius": "var(--radius)", 33 + } as React.CSSProperties 34 + } 35 + {...props} 36 + /> 37 + ) 38 + } 39 + 40 + export { Toaster }
+35
web/src/components/ui/switch.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Switch as SwitchPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function Switch({ 9 + className, 10 + size = "default", 11 + ...props 12 + }: React.ComponentProps<typeof SwitchPrimitive.Root> & { 13 + size?: "sm" | "default" 14 + }) { 15 + return ( 16 + <SwitchPrimitive.Root 17 + data-slot="switch" 18 + data-size={size} 19 + className={cn( 20 + "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6", 21 + className 22 + )} 23 + {...props} 24 + > 25 + <SwitchPrimitive.Thumb 26 + data-slot="switch-thumb" 27 + className={cn( 28 + "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0" 29 + )} 30 + /> 31 + </SwitchPrimitive.Root> 32 + ) 33 + } 34 + 35 + export { Switch }
+116
web/src/components/ui/table.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + 5 + import { cn } from "@/lib/utils" 6 + 7 + function Table({ className, ...props }: React.ComponentProps<"table">) { 8 + return ( 9 + <div 10 + data-slot="table-container" 11 + className="relative w-full overflow-x-auto" 12 + > 13 + <table 14 + data-slot="table" 15 + className={cn("w-full caption-bottom text-sm", className)} 16 + {...props} 17 + /> 18 + </div> 19 + ) 20 + } 21 + 22 + function TableHeader({ className, ...props }: React.ComponentProps<"thead">) { 23 + return ( 24 + <thead 25 + data-slot="table-header" 26 + className={cn("[&_tr]:border-b", className)} 27 + {...props} 28 + /> 29 + ) 30 + } 31 + 32 + function TableBody({ className, ...props }: React.ComponentProps<"tbody">) { 33 + return ( 34 + <tbody 35 + data-slot="table-body" 36 + className={cn("[&_tr:last-child]:border-0", className)} 37 + {...props} 38 + /> 39 + ) 40 + } 41 + 42 + function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) { 43 + return ( 44 + <tfoot 45 + data-slot="table-footer" 46 + className={cn( 47 + "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", 48 + className 49 + )} 50 + {...props} 51 + /> 52 + ) 53 + } 54 + 55 + function TableRow({ className, ...props }: React.ComponentProps<"tr">) { 56 + return ( 57 + <tr 58 + data-slot="table-row" 59 + className={cn( 60 + "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", 61 + className 62 + )} 63 + {...props} 64 + /> 65 + ) 66 + } 67 + 68 + function TableHead({ className, ...props }: React.ComponentProps<"th">) { 69 + return ( 70 + <th 71 + data-slot="table-head" 72 + className={cn( 73 + "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", 74 + className 75 + )} 76 + {...props} 77 + /> 78 + ) 79 + } 80 + 81 + function TableCell({ className, ...props }: React.ComponentProps<"td">) { 82 + return ( 83 + <td 84 + data-slot="table-cell" 85 + className={cn( 86 + "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", 87 + className 88 + )} 89 + {...props} 90 + /> 91 + ) 92 + } 93 + 94 + function TableCaption({ 95 + className, 96 + ...props 97 + }: React.ComponentProps<"caption">) { 98 + return ( 99 + <caption 100 + data-slot="table-caption" 101 + className={cn("text-muted-foreground mt-4 text-sm", className)} 102 + {...props} 103 + /> 104 + ) 105 + } 106 + 107 + export { 108 + Table, 109 + TableHeader, 110 + TableBody, 111 + TableFooter, 112 + TableHead, 113 + TableRow, 114 + TableCell, 115 + TableCaption, 116 + }
+91
web/src/components/ui/tabs.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + import { Tabs as TabsPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + function Tabs({ 10 + className, 11 + orientation = "horizontal", 12 + ...props 13 + }: React.ComponentProps<typeof TabsPrimitive.Root>) { 14 + return ( 15 + <TabsPrimitive.Root 16 + data-slot="tabs" 17 + data-orientation={orientation} 18 + orientation={orientation} 19 + className={cn( 20 + "group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", 21 + className 22 + )} 23 + {...props} 24 + /> 25 + ) 26 + } 27 + 28 + const tabsListVariants = cva( 29 + "rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", 30 + { 31 + variants: { 32 + variant: { 33 + default: "bg-muted", 34 + line: "gap-1 bg-transparent", 35 + }, 36 + }, 37 + defaultVariants: { 38 + variant: "default", 39 + }, 40 + } 41 + ) 42 + 43 + function TabsList({ 44 + className, 45 + variant = "default", 46 + ...props 47 + }: React.ComponentProps<typeof TabsPrimitive.List> & 48 + VariantProps<typeof tabsListVariants>) { 49 + return ( 50 + <TabsPrimitive.List 51 + data-slot="tabs-list" 52 + data-variant={variant} 53 + className={cn(tabsListVariants({ variant }), className)} 54 + {...props} 55 + /> 56 + ) 57 + } 58 + 59 + function TabsTrigger({ 60 + className, 61 + ...props 62 + }: React.ComponentProps<typeof TabsPrimitive.Trigger>) { 63 + return ( 64 + <TabsPrimitive.Trigger 65 + data-slot="tabs-trigger" 66 + className={cn( 67 + "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", 68 + "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent", 69 + "data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground", 70 + "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100", 71 + className 72 + )} 73 + {...props} 74 + /> 75 + ) 76 + } 77 + 78 + function TabsContent({ 79 + className, 80 + ...props 81 + }: React.ComponentProps<typeof TabsPrimitive.Content>) { 82 + return ( 83 + <TabsPrimitive.Content 84 + data-slot="tabs-content" 85 + className={cn("flex-1 outline-none", className)} 86 + {...props} 87 + /> 88 + ) 89 + } 90 + 91 + export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }
+18
web/src/components/ui/textarea.tsx
··· 1 + import * as React from "react" 2 + 3 + import { cn } from "@/lib/utils" 4 + 5 + function Textarea({ className, ...props }: React.ComponentProps<"textarea">) { 6 + return ( 7 + <textarea 8 + data-slot="textarea" 9 + className={cn( 10 + "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", 11 + className 12 + )} 13 + {...props} 14 + /> 15 + ) 16 + } 17 + 18 + export { Textarea }
+83
web/src/components/ui/toggle-group.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { type VariantProps } from "class-variance-authority" 5 + import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + import { toggleVariants } from "@/components/ui/toggle" 9 + 10 + const ToggleGroupContext = React.createContext< 11 + VariantProps<typeof toggleVariants> & { 12 + spacing?: number 13 + } 14 + >({ 15 + size: "default", 16 + variant: "default", 17 + spacing: 0, 18 + }) 19 + 20 + function ToggleGroup({ 21 + className, 22 + variant, 23 + size, 24 + spacing = 0, 25 + children, 26 + ...props 27 + }: React.ComponentProps<typeof ToggleGroupPrimitive.Root> & 28 + VariantProps<typeof toggleVariants> & { 29 + spacing?: number 30 + }) { 31 + return ( 32 + <ToggleGroupPrimitive.Root 33 + data-slot="toggle-group" 34 + data-variant={variant} 35 + data-size={size} 36 + data-spacing={spacing} 37 + style={{ "--gap": spacing } as React.CSSProperties} 38 + className={cn( 39 + "group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs", 40 + className 41 + )} 42 + {...props} 43 + > 44 + <ToggleGroupContext.Provider value={{ variant, size, spacing }}> 45 + {children} 46 + </ToggleGroupContext.Provider> 47 + </ToggleGroupPrimitive.Root> 48 + ) 49 + } 50 + 51 + function ToggleGroupItem({ 52 + className, 53 + children, 54 + variant, 55 + size, 56 + ...props 57 + }: React.ComponentProps<typeof ToggleGroupPrimitive.Item> & 58 + VariantProps<typeof toggleVariants>) { 59 + const context = React.useContext(ToggleGroupContext) 60 + 61 + return ( 62 + <ToggleGroupPrimitive.Item 63 + data-slot="toggle-group-item" 64 + data-variant={context.variant || variant} 65 + data-size={context.size || size} 66 + data-spacing={context.spacing} 67 + className={cn( 68 + toggleVariants({ 69 + variant: context.variant || variant, 70 + size: context.size || size, 71 + }), 72 + "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10", 73 + "data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l", 74 + className 75 + )} 76 + {...props} 77 + > 78 + {children} 79 + </ToggleGroupPrimitive.Item> 80 + ) 81 + } 82 + 83 + export { ToggleGroup, ToggleGroupItem }
+47
web/src/components/ui/toggle.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { cva, type VariantProps } from "class-variance-authority" 5 + import { Toggle as TogglePrimitive } from "radix-ui" 6 + 7 + import { cn } from "@/lib/utils" 8 + 9 + const toggleVariants = cva( 10 + "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap", 11 + { 12 + variants: { 13 + variant: { 14 + default: "bg-transparent", 15 + outline: 16 + "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground", 17 + }, 18 + size: { 19 + default: "h-9 px-2 min-w-9", 20 + sm: "h-8 px-1.5 min-w-8", 21 + lg: "h-10 px-2.5 min-w-10", 22 + }, 23 + }, 24 + defaultVariants: { 25 + variant: "default", 26 + size: "default", 27 + }, 28 + } 29 + ) 30 + 31 + function Toggle({ 32 + className, 33 + variant, 34 + size, 35 + ...props 36 + }: React.ComponentProps<typeof TogglePrimitive.Root> & 37 + VariantProps<typeof toggleVariants>) { 38 + return ( 39 + <TogglePrimitive.Root 40 + data-slot="toggle" 41 + className={cn(toggleVariants({ variant, size, className }))} 42 + {...props} 43 + /> 44 + ) 45 + } 46 + 47 + export { Toggle, toggleVariants }
+57
web/src/components/ui/tooltip.tsx
··· 1 + "use client" 2 + 3 + import * as React from "react" 4 + import { Tooltip as TooltipPrimitive } from "radix-ui" 5 + 6 + import { cn } from "@/lib/utils" 7 + 8 + function TooltipProvider({ 9 + delayDuration = 0, 10 + ...props 11 + }: React.ComponentProps<typeof TooltipPrimitive.Provider>) { 12 + return ( 13 + <TooltipPrimitive.Provider 14 + data-slot="tooltip-provider" 15 + delayDuration={delayDuration} 16 + {...props} 17 + /> 18 + ) 19 + } 20 + 21 + function Tooltip({ 22 + ...props 23 + }: React.ComponentProps<typeof TooltipPrimitive.Root>) { 24 + return <TooltipPrimitive.Root data-slot="tooltip" {...props} /> 25 + } 26 + 27 + function TooltipTrigger({ 28 + ...props 29 + }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) { 30 + return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} /> 31 + } 32 + 33 + function TooltipContent({ 34 + className, 35 + sideOffset = 0, 36 + children, 37 + ...props 38 + }: React.ComponentProps<typeof TooltipPrimitive.Content>) { 39 + return ( 40 + <TooltipPrimitive.Portal> 41 + <TooltipPrimitive.Content 42 + data-slot="tooltip-content" 43 + sideOffset={sideOffset} 44 + className={cn( 45 + "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", 46 + className 47 + )} 48 + {...props} 49 + > 50 + {children} 51 + <TooltipPrimitive.Arrow className="bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" /> 52 + </TooltipPrimitive.Content> 53 + </TooltipPrimitive.Portal> 54 + ) 55 + } 56 + 57 + export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
+19
web/src/hooks/use-mobile.ts
··· 1 + import * as React from "react" 2 + 3 + const MOBILE_BREAKPOINT = 768 4 + 5 + export function useIsMobile() { 6 + const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined) 7 + 8 + React.useEffect(() => { 9 + const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`) 10 + const onChange = () => { 11 + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 12 + } 13 + mql.addEventListener("change", onChange) 14 + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) 15 + return () => mql.removeEventListener("change", onChange) 16 + }, []) 17 + 18 + return !!isMobile 19 + }
+6
web/src/lib/utils.ts
··· 1 + import { clsx, type ClassValue } from "clsx" 2 + import { twMerge } from "tailwind-merge" 3 + 4 + export function cn(...inputs: ClassValue[]) { 5 + return twMerge(clsx(inputs)) 6 + }
+34
web/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2017", 4 + "lib": ["dom", "dom.iterable", "esnext"], 5 + "allowJs": true, 6 + "skipLibCheck": true, 7 + "strict": true, 8 + "noEmit": true, 9 + "esModuleInterop": true, 10 + "module": "esnext", 11 + "moduleResolution": "bundler", 12 + "resolveJsonModule": true, 13 + "isolatedModules": true, 14 + "jsx": "react-jsx", 15 + "incremental": true, 16 + "plugins": [ 17 + { 18 + "name": "next" 19 + } 20 + ], 21 + "paths": { 22 + "@/*": ["./src/*"] 23 + } 24 + }, 25 + "include": [ 26 + "next-env.d.ts", 27 + "**/*.ts", 28 + "**/*.tsx", 29 + ".next/types/**/*.ts", 30 + ".next/dev/types/**/*.ts", 31 + "**/*.mts" 32 + ], 33 + "exclude": ["node_modules"] 34 + }