Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

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

website: rewrite in astro

Aly Raffauf (Jun 22, 2026, 11:56 AM EDT) 6a0f035b 75f36d2b

+4706 -2386
data/screenshots/browser-rules.png website/src/assets/screenshots/browser-rules.png
data/screenshots/edit-rules.png website/src/assets/screenshots/edit-rules.png
data/screenshots/webextension.png

This is a binary file and will not be displayed.

+1
website/.gitignore
··· 1 1 node_modules 2 2 dist 3 + .astro 3 4 public/og-image.png
+9
website/.prettierrc
··· 1 + { 2 + "plugins": ["prettier-plugin-astro"], 3 + "overrides": [ 4 + { 5 + "files": "*.astro", 6 + "options": { "parser": "astro" } 7 + } 8 + ] 9 + }
+1 -1
website/README.md
··· 2 2 3 3 Landing page for [Switchyard](https://github.com/alyraffauf/switchyard), a rules-based URL router for Linux. 4 4 5 - Built with React + Vite. Published as a container image to `ghcr.io/alyraffauf/switchyard-website`. 5 + Built with Astro. Published as a container image to `ghcr.io/alyraffauf/switchyard-website`. 6 6 7 7 ## Development 8 8
+14
website/astro.config.mjs
··· 1 + import { defineConfig } from "astro/config"; 2 + import tailwindcss from "@tailwindcss/vite"; 3 + import sitemap from "@astrojs/sitemap"; 4 + 5 + export default defineConfig({ 6 + site: "https://switchyard.aly.codes", 7 + integrations: [sitemap()], 8 + vite: { 9 + plugins: [tailwindcss()], 10 + }, 11 + build: { 12 + assets: "assets", 13 + }, 14 + });
+12 -16
website/eslint.config.js
··· 1 - import js from '@eslint/js' 2 - import globals from 'globals' 3 - import reactHooks from 'eslint-plugin-react-hooks' 4 - import reactRefresh from 'eslint-plugin-react-refresh' 5 - import tseslint from 'typescript-eslint' 6 - import { defineConfig, globalIgnores } from 'eslint/config' 1 + import js from "@eslint/js"; 2 + import globals from "globals"; 3 + import tseslint from "typescript-eslint"; 4 + import { defineConfig, globalIgnores } from "eslint/config"; 7 5 8 6 export default defineConfig([ 9 - globalIgnores(['dist']), 7 + globalIgnores(["dist", ".astro", "**/*.astro"]), 10 8 { 11 - files: ['**/*.{ts,tsx}'], 12 - extends: [ 13 - js.configs.recommended, 14 - tseslint.configs.recommended, 15 - reactHooks.configs.flat.recommended, 16 - reactRefresh.configs.vite, 17 - ], 9 + files: ["**/*.{js,mjs,ts}"], 10 + extends: [js.configs.recommended, tseslint.configs.recommended], 18 11 languageOptions: { 19 12 ecmaVersion: 2020, 20 - globals: globals.browser, 13 + globals: { 14 + ...globals.browser, 15 + ...globals.node, 16 + }, 21 17 }, 22 18 }, 23 - ]) 19 + ]);
-41
website/index.html
··· 1 - <!doctype html> 2 - <html lang="en"> 3 - <head> 4 - <meta charset="UTF-8" /> 5 - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 - <title>Switchyard - A Rules-Based Browser Launcher for Linux</title> 7 - <meta 8 - name="description" 9 - content="Work links in Chrome. Personal links in Firefox." 10 - /> 11 - 12 - <!-- Favicon --> 13 - <link rel="icon" type="image/svg+xml" href="/icon.svg" /> 14 - <link rel="apple-touch-icon" href="/icon.svg" /> 15 - 16 - <!-- Open Graph / Twitter --> 17 - <meta property="og:type" content="website" /> 18 - <meta property="og:url" content="https://switchyard.aly.codes/" /> 19 - <meta 20 - property="og:title" 21 - content="Switchyard - A Rules-Based Browser Launcher for Linux" 22 - /> 23 - <meta 24 - property="og:description" 25 - content="Work links in Chrome. Personal links in Firefox." 26 - /> 27 - <meta 28 - property="og:image" 29 - content="https://switchyard.aly.codes/og-image.png" 30 - /> 31 - <meta name="twitter:card" content="summary_large_image" /> 32 - 33 - <!-- Additional SEO --> 34 - <meta name="theme-color" content="#4f895d" /> 35 - <link rel="canonical" href="https://switchyard.aly.codes/" /> 36 - </head> 37 - <body> 38 - <div id="root"></div> 39 - <script type="module" src="/src/main.tsx"></script> 40 - </body> 41 - </html>
+3929 -1552
website/package-lock.json
··· 8 8 "name": "website", 9 9 "version": "0.0.0", 10 10 "dependencies": { 11 - "react": "^19.2.0", 12 - "react-dom": "^19.2.0" 11 + "@astrojs/sitemap": "^3.7.3", 12 + "astro": "^7.0.0" 13 13 }, 14 14 "devDependencies": { 15 - "@eslint/js": "^9.39.1", 15 + "@eslint/js": "^9.39.4", 16 16 "@resvg/resvg-js": "^2.6.2", 17 - "@tailwindcss/vite": "^4.1.18", 18 - "@types/node": "^24.10.1", 19 - "@types/react": "^19.2.5", 20 - "@types/react-dom": "^19.2.3", 21 - "@vitejs/plugin-react": "^5.1.1", 22 - "eslint": "^9.39.1", 23 - "eslint-plugin-react-hooks": "^7.0.1", 24 - "eslint-plugin-react-refresh": "^0.4.24", 25 - "globals": "^16.5.0", 26 - "satori": "^0.19.1", 27 - "tailwindcss": "^4.1.18", 28 - "typescript": "~5.9.3", 29 - "typescript-eslint": "^8.46.4", 30 - "vite": "^7.2.4" 31 - } 32 - }, 33 - "node_modules/@babel/code-frame": { 34 - "version": "7.28.6", 35 - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", 36 - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", 37 - "dev": true, 38 - "license": "MIT", 39 - "dependencies": { 40 - "@babel/helper-validator-identifier": "^7.28.5", 41 - "js-tokens": "^4.0.0", 42 - "picocolors": "^1.1.1" 43 - }, 44 - "engines": { 45 - "node": ">=6.9.0" 46 - } 47 - }, 48 - "node_modules/@babel/compat-data": { 49 - "version": "7.28.6", 50 - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", 51 - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", 52 - "dev": true, 53 - "license": "MIT", 54 - "engines": { 55 - "node": ">=6.9.0" 17 + "@tailwindcss/vite": "^4.3.1", 18 + "@types/node": "^26.0.0", 19 + "eslint": "^9.39.4", 20 + "globals": "^17.6.0", 21 + "prettier": "^3.8.4", 22 + "prettier-plugin-astro": "^0.14.1", 23 + "satori": "^0.26.0", 24 + "tailwindcss": "^4.3.1", 25 + "typescript": "^6.0.3", 26 + "typescript-eslint": "^8.61.1" 56 27 } 57 28 }, 58 - "node_modules/@babel/core": { 59 - "version": "7.28.6", 60 - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", 61 - "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", 29 + "node_modules/@astrojs/compiler": { 30 + "version": "2.13.1", 31 + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz", 32 + "integrity": "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==", 62 33 "dev": true, 63 - "license": "MIT", 64 - "dependencies": { 65 - "@babel/code-frame": "^7.28.6", 66 - "@babel/generator": "^7.28.6", 67 - "@babel/helper-compilation-targets": "^7.28.6", 68 - "@babel/helper-module-transforms": "^7.28.6", 69 - "@babel/helpers": "^7.28.6", 70 - "@babel/parser": "^7.28.6", 71 - "@babel/template": "^7.28.6", 72 - "@babel/traverse": "^7.28.6", 73 - "@babel/types": "^7.28.6", 74 - "@jridgewell/remapping": "^2.3.5", 75 - "convert-source-map": "^2.0.0", 76 - "debug": "^4.1.0", 77 - "gensync": "^1.0.0-beta.2", 78 - "json5": "^2.2.3", 79 - "semver": "^6.3.1" 80 - }, 81 - "engines": { 82 - "node": ">=6.9.0" 83 - }, 84 - "funding": { 85 - "type": "opencollective", 86 - "url": "https://opencollective.com/babel" 87 - } 34 + "license": "MIT" 88 35 }, 89 - "node_modules/@babel/generator": { 90 - "version": "7.28.6", 91 - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", 92 - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", 93 - "dev": true, 36 + "node_modules/@astrojs/compiler-binding": { 37 + "version": "0.2.2", 38 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.2.2.tgz", 39 + "integrity": "sha512-PkCo+UcSxMt9pufjv28kRy8YU88O/XNgm7apwkyhkrCecLY62QCj5UA3nOTMO88PPyVKnUh/6FZbPefBhDD5IA==", 94 40 "license": "MIT", 95 - "dependencies": { 96 - "@babel/parser": "^7.28.6", 97 - "@babel/types": "^7.28.6", 98 - "@jridgewell/gen-mapping": "^0.3.12", 99 - "@jridgewell/trace-mapping": "^0.3.28", 100 - "jsesc": "^3.0.2" 101 - }, 102 41 "engines": { 103 - "node": ">=6.9.0" 104 - } 105 - }, 106 - "node_modules/@babel/helper-compilation-targets": { 107 - "version": "7.28.6", 108 - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", 109 - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", 110 - "dev": true, 111 - "license": "MIT", 112 - "dependencies": { 113 - "@babel/compat-data": "^7.28.6", 114 - "@babel/helper-validator-option": "^7.27.1", 115 - "browserslist": "^4.24.0", 116 - "lru-cache": "^5.1.1", 117 - "semver": "^6.3.1" 42 + "node": "^20.19.0 || >=22.12.0" 118 43 }, 119 - "engines": { 120 - "node": ">=6.9.0" 121 - } 122 - }, 123 - "node_modules/@babel/helper-globals": { 124 - "version": "7.28.0", 125 - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", 126 - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", 127 - "dev": true, 128 - "license": "MIT", 129 - "engines": { 130 - "node": ">=6.9.0" 44 + "optionalDependencies": { 45 + "@astrojs/compiler-binding-darwin-arm64": "0.2.2", 46 + "@astrojs/compiler-binding-darwin-x64": "0.2.2", 47 + "@astrojs/compiler-binding-linux-arm64-gnu": "0.2.2", 48 + "@astrojs/compiler-binding-linux-arm64-musl": "0.2.2", 49 + "@astrojs/compiler-binding-linux-x64-gnu": "0.2.2", 50 + "@astrojs/compiler-binding-linux-x64-musl": "0.2.2", 51 + "@astrojs/compiler-binding-wasm32-wasi": "0.2.2", 52 + "@astrojs/compiler-binding-win32-arm64-msvc": "0.2.2", 53 + "@astrojs/compiler-binding-win32-x64-msvc": "0.2.2" 131 54 } 132 55 }, 133 - "node_modules/@babel/helper-module-imports": { 134 - "version": "7.28.6", 135 - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", 136 - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", 137 - "dev": true, 56 + "node_modules/@astrojs/compiler-binding-darwin-arm64": { 57 + "version": "0.2.2", 58 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.2.2.tgz", 59 + "integrity": "sha512-1WxpECx3izz5X4Ha3l6ex79HZlUHpKBTElGJsfOosnhVvXhccfcXAsBlrYPNmUOKJWiG7mcrje0ELSr1KPE69Q==", 60 + "cpu": [ 61 + "arm64" 62 + ], 138 63 "license": "MIT", 139 - "dependencies": { 140 - "@babel/traverse": "^7.28.6", 141 - "@babel/types": "^7.28.6" 142 - }, 64 + "optional": true, 65 + "os": [ 66 + "darwin" 67 + ], 143 68 "engines": { 144 - "node": ">=6.9.0" 69 + "node": "^20.19.0 || >=22.12.0" 145 70 } 146 71 }, 147 - "node_modules/@babel/helper-module-transforms": { 148 - "version": "7.28.6", 149 - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", 150 - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", 151 - "dev": true, 152 - "license": "MIT", 153 - "dependencies": { 154 - "@babel/helper-module-imports": "^7.28.6", 155 - "@babel/helper-validator-identifier": "^7.28.5", 156 - "@babel/traverse": "^7.28.6" 157 - }, 158 - "engines": { 159 - "node": ">=6.9.0" 160 - }, 161 - "peerDependencies": { 162 - "@babel/core": "^7.0.0" 163 - } 164 - }, 165 - "node_modules/@babel/helper-plugin-utils": { 166 - "version": "7.28.6", 167 - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", 168 - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", 169 - "dev": true, 170 - "license": "MIT", 171 - "engines": { 172 - "node": ">=6.9.0" 173 - } 174 - }, 175 - "node_modules/@babel/helper-string-parser": { 176 - "version": "7.27.1", 177 - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", 178 - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", 179 - "dev": true, 180 - "license": "MIT", 181 - "engines": { 182 - "node": ">=6.9.0" 183 - } 184 - }, 185 - "node_modules/@babel/helper-validator-identifier": { 186 - "version": "7.28.5", 187 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 188 - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 189 - "dev": true, 190 - "license": "MIT", 191 - "engines": { 192 - "node": ">=6.9.0" 193 - } 194 - }, 195 - "node_modules/@babel/helper-validator-option": { 196 - "version": "7.27.1", 197 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", 198 - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", 199 - "dev": true, 200 - "license": "MIT", 201 - "engines": { 202 - "node": ">=6.9.0" 203 - } 204 - }, 205 - "node_modules/@babel/helpers": { 206 - "version": "7.28.6", 207 - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", 208 - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", 209 - "dev": true, 210 - "license": "MIT", 211 - "dependencies": { 212 - "@babel/template": "^7.28.6", 213 - "@babel/types": "^7.28.6" 214 - }, 215 - "engines": { 216 - "node": ">=6.9.0" 217 - } 218 - }, 219 - "node_modules/@babel/parser": { 220 - "version": "7.28.6", 221 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", 222 - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", 223 - "dev": true, 224 - "license": "MIT", 225 - "dependencies": { 226 - "@babel/types": "^7.28.6" 227 - }, 228 - "bin": { 229 - "parser": "bin/babel-parser.js" 230 - }, 231 - "engines": { 232 - "node": ">=6.0.0" 233 - } 234 - }, 235 - "node_modules/@babel/plugin-transform-react-jsx-self": { 236 - "version": "7.27.1", 237 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", 238 - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", 239 - "dev": true, 240 - "license": "MIT", 241 - "dependencies": { 242 - "@babel/helper-plugin-utils": "^7.27.1" 243 - }, 244 - "engines": { 245 - "node": ">=6.9.0" 246 - }, 247 - "peerDependencies": { 248 - "@babel/core": "^7.0.0-0" 249 - } 250 - }, 251 - "node_modules/@babel/plugin-transform-react-jsx-source": { 252 - "version": "7.27.1", 253 - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", 254 - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", 255 - "dev": true, 256 - "license": "MIT", 257 - "dependencies": { 258 - "@babel/helper-plugin-utils": "^7.27.1" 259 - }, 260 - "engines": { 261 - "node": ">=6.9.0" 262 - }, 263 - "peerDependencies": { 264 - "@babel/core": "^7.0.0-0" 265 - } 266 - }, 267 - "node_modules/@babel/template": { 268 - "version": "7.28.6", 269 - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", 270 - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", 271 - "dev": true, 272 - "license": "MIT", 273 - "dependencies": { 274 - "@babel/code-frame": "^7.28.6", 275 - "@babel/parser": "^7.28.6", 276 - "@babel/types": "^7.28.6" 277 - }, 278 - "engines": { 279 - "node": ">=6.9.0" 280 - } 281 - }, 282 - "node_modules/@babel/traverse": { 283 - "version": "7.28.6", 284 - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", 285 - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", 286 - "dev": true, 287 - "license": "MIT", 288 - "dependencies": { 289 - "@babel/code-frame": "^7.28.6", 290 - "@babel/generator": "^7.28.6", 291 - "@babel/helper-globals": "^7.28.0", 292 - "@babel/parser": "^7.28.6", 293 - "@babel/template": "^7.28.6", 294 - "@babel/types": "^7.28.6", 295 - "debug": "^4.3.1" 296 - }, 297 - "engines": { 298 - "node": ">=6.9.0" 299 - } 300 - }, 301 - "node_modules/@babel/types": { 302 - "version": "7.28.6", 303 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", 304 - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", 305 - "dev": true, 306 - "license": "MIT", 307 - "dependencies": { 308 - "@babel/helper-string-parser": "^7.27.1", 309 - "@babel/helper-validator-identifier": "^7.28.5" 310 - }, 311 - "engines": { 312 - "node": ">=6.9.0" 313 - } 314 - }, 315 - "node_modules/@esbuild/aix-ppc64": { 316 - "version": "0.27.2", 317 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", 318 - "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", 72 + "node_modules/@astrojs/compiler-binding-darwin-x64": { 73 + "version": "0.2.2", 74 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.2.2.tgz", 75 + "integrity": "sha512-PdIQidwQ4nUX/qNL0JXzSwNYadr+yX/Yoo+kZSCxBZqlAqug9SlKR/1H5EG5jSEpkEDRo2d1JdrO1W4kU6uNHw==", 319 76 "cpu": [ 320 - "ppc64" 77 + "x64" 321 78 ], 322 - "dev": true, 323 79 "license": "MIT", 324 80 "optional": true, 325 81 "os": [ 326 - "aix" 82 + "darwin" 327 83 ], 328 84 "engines": { 329 - "node": ">=18" 85 + "node": "^20.19.0 || >=22.12.0" 330 86 } 331 87 }, 332 - "node_modules/@esbuild/android-arm": { 333 - "version": "0.27.2", 334 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", 335 - "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", 88 + "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { 89 + "version": "0.2.2", 90 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.2.2.tgz", 91 + "integrity": "sha512-5sZicPkJCoyxTEOW2he+u6UV97pTXY4c7fbHOZ/aslu9ewsunD0231QUBSvnjBB9hRFzzP2JRfNCLY+IvWfw0Q==", 336 92 "cpu": [ 337 - "arm" 93 + "arm64" 94 + ], 95 + "libc": [ 96 + "glibc" 338 97 ], 339 - "dev": true, 340 98 "license": "MIT", 341 99 "optional": true, 342 100 "os": [ 343 - "android" 101 + "linux" 344 102 ], 345 103 "engines": { 346 - "node": ">=18" 104 + "node": "^20.19.0 || >=22.12.0" 347 105 } 348 106 }, 349 - "node_modules/@esbuild/android-arm64": { 350 - "version": "0.27.2", 351 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", 352 - "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", 107 + "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { 108 + "version": "0.2.2", 109 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.2.2.tgz", 110 + "integrity": "sha512-Vto5fqRzMepQNJPeEhQLOIkmAoNbSBQNlpMe64OHTjEbAtQpJYVHEwe+8WJLaEGLA9qBksLv7ctiYPLLxgVVYQ==", 353 111 "cpu": [ 354 112 "arm64" 355 113 ], 356 - "dev": true, 114 + "libc": [ 115 + "musl" 116 + ], 357 117 "license": "MIT", 358 118 "optional": true, 359 119 "os": [ 360 - "android" 120 + "linux" 361 121 ], 362 122 "engines": { 363 - "node": ">=18" 123 + "node": "^20.19.0 || >=22.12.0" 364 124 } 365 125 }, 366 - "node_modules/@esbuild/android-x64": { 367 - "version": "0.27.2", 368 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", 369 - "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", 126 + "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { 127 + "version": "0.2.2", 128 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.2.2.tgz", 129 + "integrity": "sha512-NJTTaUDU49WEJT+ImS9evlv3i3x42HN8PbcqdyydI9picnKtuf5TxRL94naoW09YDMYWpkrwVeVqaG7GTSIepQ==", 370 130 "cpu": [ 371 131 "x64" 372 132 ], 373 - "dev": true, 133 + "libc": [ 134 + "glibc" 135 + ], 374 136 "license": "MIT", 375 137 "optional": true, 376 138 "os": [ 377 - "android" 139 + "linux" 378 140 ], 379 141 "engines": { 380 - "node": ">=18" 142 + "node": "^20.19.0 || >=22.12.0" 381 143 } 382 144 }, 383 - "node_modules/@esbuild/darwin-arm64": { 384 - "version": "0.27.2", 385 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", 386 - "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", 145 + "node_modules/@astrojs/compiler-binding-linux-x64-musl": { 146 + "version": "0.2.2", 147 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.2.2.tgz", 148 + "integrity": "sha512-9nFdNDkWaU35bhWUIciDmi439W0fq2ZNgv1GCi2A/LSb+8vTw9l9z+fVW4YEn7Tlvbs8gyQkJvbc62ZD1H76xA==", 387 149 "cpu": [ 388 - "arm64" 150 + "x64" 151 + ], 152 + "libc": [ 153 + "musl" 389 154 ], 390 - "dev": true, 391 155 "license": "MIT", 392 156 "optional": true, 393 157 "os": [ 394 - "darwin" 158 + "linux" 395 159 ], 396 160 "engines": { 397 - "node": ">=18" 161 + "node": "^20.19.0 || >=22.12.0" 398 162 } 399 163 }, 400 - "node_modules/@esbuild/darwin-x64": { 401 - "version": "0.27.2", 402 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", 403 - "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", 164 + "node_modules/@astrojs/compiler-binding-wasm32-wasi": { 165 + "version": "0.2.2", 166 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.2.2.tgz", 167 + "integrity": "sha512-3NWaxRc3KSwr9zHBEGcQ147rMgAhi/HzZWZJPRN2YLbtuLhoeBPruhdX1MIlOYAg3FvJPYdzGCAKvvWWU6pF0A==", 404 168 "cpu": [ 405 - "x64" 169 + "wasm32" 406 170 ], 407 - "dev": true, 408 171 "license": "MIT", 409 172 "optional": true, 410 - "os": [ 411 - "darwin" 412 - ], 173 + "dependencies": { 174 + "@napi-rs/wasm-runtime": "^1.1.5" 175 + }, 413 176 "engines": { 414 - "node": ">=18" 177 + "node": ">=14.0.0" 415 178 } 416 179 }, 417 - "node_modules/@esbuild/freebsd-arm64": { 418 - "version": "0.27.2", 419 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", 420 - "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", 180 + "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { 181 + "version": "0.2.2", 182 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.2.2.tgz", 183 + "integrity": "sha512-QsyOgocLGOwDm8zAyuAiziALMzbTTevaqBLv5lvdhyhj2JC5yjp0H3yeEBtE0owRLr1gDQdX0+1qBSc5tTwp4g==", 421 184 "cpu": [ 422 185 "arm64" 423 186 ], 424 - "dev": true, 425 187 "license": "MIT", 426 188 "optional": true, 427 189 "os": [ 428 - "freebsd" 190 + "win32" 429 191 ], 430 192 "engines": { 431 - "node": ">=18" 193 + "node": "^20.19.0 || >=22.12.0" 432 194 } 433 195 }, 434 - "node_modules/@esbuild/freebsd-x64": { 435 - "version": "0.27.2", 436 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", 437 - "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", 196 + "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { 197 + "version": "0.2.2", 198 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.2.2.tgz", 199 + "integrity": "sha512-+/C8Oh9YS8C0fwtaqDtUSPniKwlJqgiQbxp7XuzxCP0RI/Jf7yOlz9ZHNr6jD3ZJa4CHdq0mYq7pd8QFiNGIZA==", 438 200 "cpu": [ 439 201 "x64" 440 202 ], 441 - "dev": true, 442 203 "license": "MIT", 443 204 "optional": true, 444 205 "os": [ 445 - "freebsd" 206 + "win32" 446 207 ], 447 208 "engines": { 448 - "node": ">=18" 209 + "node": "^20.19.0 || >=22.12.0" 449 210 } 450 211 }, 451 - "node_modules/@esbuild/linux-arm": { 452 - "version": "0.27.2", 453 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", 454 - "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", 455 - "cpu": [ 456 - "arm" 457 - ], 458 - "dev": true, 212 + "node_modules/@astrojs/compiler-rs": { 213 + "version": "0.2.2", 214 + "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.2.2.tgz", 215 + "integrity": "sha512-C0qoz7Hxa2krlwMYfzQ1ZxOjR6cGmO+iskjRXXCdUM85W/cAPGTi/MSQlLkv0ADMz+Go1/lqeRBjL8AZwsFffQ==", 459 216 "license": "MIT", 460 - "optional": true, 461 - "os": [ 462 - "linux" 463 - ], 217 + "dependencies": { 218 + "@astrojs/compiler-binding": "0.2.2" 219 + } 220 + }, 221 + "node_modules/@astrojs/internal-helpers": { 222 + "version": "0.10.0", 223 + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.10.0.tgz", 224 + "integrity": "sha512-Ry2R3VPeIN4uPCSA4xQc+e+vsJXkalKpEbDc07hV+a/o5Bs2N/s/uDcPJH/05L19DKh9tAy7e6JM3YZ6Cxfezw==", 225 + "license": "MIT", 226 + "dependencies": { 227 + "@types/hast": "^3.0.4", 228 + "@types/mdast": "^4.0.4", 229 + "js-yaml": "^4.1.1", 230 + "picomatch": "^4.0.4", 231 + "retext-smartypants": "^6.2.0", 232 + "shiki": "^4.0.2", 233 + "smol-toml": "^1.6.0", 234 + "unified": "^11.0.5" 235 + } 236 + }, 237 + "node_modules/@astrojs/markdown-satteri": { 238 + "version": "0.3.1", 239 + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.1.tgz", 240 + "integrity": "sha512-4cvSQp2yUm50LeReHJfuQt5N0rfQEepveVJv1SCitVerTGRjj0SrXCzP89NHb9VJou87Ldi9uw8uQDVCv5rC6A==", 241 + "license": "MIT", 242 + "dependencies": { 243 + "@astrojs/internal-helpers": "0.10.0", 244 + "@astrojs/prism": "4.0.2", 245 + "github-slugger": "^2.0.0", 246 + "satteri": "^0.9.1" 247 + } 248 + }, 249 + "node_modules/@astrojs/prism": { 250 + "version": "4.0.2", 251 + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz", 252 + "integrity": "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==", 253 + "license": "MIT", 254 + "dependencies": { 255 + "prismjs": "^1.30.0" 256 + }, 464 257 "engines": { 465 - "node": ">=18" 258 + "node": ">=22.12.0" 466 259 } 467 260 }, 468 - "node_modules/@esbuild/linux-arm64": { 469 - "version": "0.27.2", 470 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", 471 - "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", 472 - "cpu": [ 473 - "arm64" 474 - ], 475 - "dev": true, 261 + "node_modules/@astrojs/sitemap": { 262 + "version": "3.7.3", 263 + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.3.tgz", 264 + "integrity": "sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==", 265 + "license": "MIT", 266 + "dependencies": { 267 + "sitemap": "^9.0.0", 268 + "stream-replace-string": "^2.0.0", 269 + "zod": "^4.3.6" 270 + } 271 + }, 272 + "node_modules/@astrojs/telemetry": { 273 + "version": "3.3.2", 274 + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.2.tgz", 275 + "integrity": "sha512-j8DNruA8ors99Al39RYZPJK4DC1bKkoNm93mAMuBhY9TCNC4R8n1q7ovFnJ5qhGh5Lsh7pa1gpQVpYpsJPeTHQ==", 476 276 "license": "MIT", 477 - "optional": true, 478 - "os": [ 479 - "linux" 480 - ], 277 + "dependencies": { 278 + "ci-info": "^4.4.0", 279 + "dset": "^3.1.4", 280 + "is-docker": "^4.0.0", 281 + "is-wsl": "^3.1.1", 282 + "which-pm-runs": "^1.1.0" 283 + }, 481 284 "engines": { 482 - "node": ">=18" 285 + "node": "18.20.8 || ^20.3.0 || >=22.0.0" 483 286 } 484 287 }, 485 - "node_modules/@esbuild/linux-ia32": { 486 - "version": "0.27.2", 487 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", 488 - "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", 489 - "cpu": [ 490 - "ia32" 491 - ], 492 - "dev": true, 288 + "node_modules/@babel/helper-string-parser": { 289 + "version": "7.29.7", 290 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", 291 + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", 493 292 "license": "MIT", 494 - "optional": true, 495 - "os": [ 496 - "linux" 497 - ], 498 293 "engines": { 499 - "node": ">=18" 294 + "node": ">=6.9.0" 500 295 } 501 296 }, 502 - "node_modules/@esbuild/linux-loong64": { 503 - "version": "0.27.2", 504 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", 505 - "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", 506 - "cpu": [ 507 - "loong64" 508 - ], 509 - "dev": true, 297 + "node_modules/@babel/helper-validator-identifier": { 298 + "version": "7.29.7", 299 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", 300 + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", 510 301 "license": "MIT", 511 - "optional": true, 512 - "os": [ 513 - "linux" 514 - ], 515 302 "engines": { 516 - "node": ">=18" 303 + "node": ">=6.9.0" 517 304 } 518 305 }, 519 - "node_modules/@esbuild/linux-mips64el": { 520 - "version": "0.27.2", 521 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", 522 - "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", 523 - "cpu": [ 524 - "mips64el" 525 - ], 526 - "dev": true, 306 + "node_modules/@babel/parser": { 307 + "version": "7.29.7", 308 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", 309 + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", 527 310 "license": "MIT", 528 - "optional": true, 529 - "os": [ 530 - "linux" 531 - ], 311 + "dependencies": { 312 + "@babel/types": "^7.29.7" 313 + }, 314 + "bin": { 315 + "parser": "bin/babel-parser.js" 316 + }, 532 317 "engines": { 533 - "node": ">=18" 318 + "node": ">=6.0.0" 534 319 } 535 320 }, 536 - "node_modules/@esbuild/linux-ppc64": { 537 - "version": "0.27.2", 538 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", 539 - "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", 540 - "cpu": [ 541 - "ppc64" 542 - ], 543 - "dev": true, 321 + "node_modules/@babel/types": { 322 + "version": "7.29.7", 323 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", 324 + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", 544 325 "license": "MIT", 545 - "optional": true, 546 - "os": [ 547 - "linux" 548 - ], 326 + "dependencies": { 327 + "@babel/helper-string-parser": "^7.29.7", 328 + "@babel/helper-validator-identifier": "^7.29.7" 329 + }, 549 330 "engines": { 550 - "node": ">=18" 331 + "node": ">=6.9.0" 551 332 } 552 333 }, 553 - "node_modules/@esbuild/linux-riscv64": { 554 - "version": "0.27.2", 555 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", 556 - "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", 334 + "node_modules/@bruits/satteri-darwin-arm64": { 335 + "version": "0.9.1", 336 + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.9.1.tgz", 337 + "integrity": "sha512-NE4qC2sRd0+R+oPMsKcUikIvWTGpAV16fSXNBoMSW7nK7Pd9e/ZGB7M8knep83pFmGmOb/5NbGKiVIh3oLbljw==", 557 338 "cpu": [ 558 - "riscv64" 339 + "arm64" 559 340 ], 560 - "dev": true, 561 - "license": "MIT", 562 341 "optional": true, 563 342 "os": [ 564 - "linux" 565 - ], 566 - "engines": { 567 - "node": ">=18" 568 - } 343 + "darwin" 344 + ] 569 345 }, 570 - "node_modules/@esbuild/linux-s390x": { 571 - "version": "0.27.2", 572 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", 573 - "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", 346 + "node_modules/@bruits/satteri-darwin-x64": { 347 + "version": "0.9.1", 348 + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.9.1.tgz", 349 + "integrity": "sha512-Am8z5nX0L/sJR/n7np+5rMVP434MOBe3zlU+IO8fXbv2UaPNRCrEQPMS6lyxCj7dZHQI2AynSJw3v4fgQE8xSQ==", 574 350 "cpu": [ 575 - "s390x" 351 + "x64" 576 352 ], 577 - "dev": true, 578 - "license": "MIT", 579 353 "optional": true, 580 354 "os": [ 581 - "linux" 582 - ], 583 - "engines": { 584 - "node": ">=18" 585 - } 355 + "darwin" 356 + ] 586 357 }, 587 - "node_modules/@esbuild/linux-x64": { 588 - "version": "0.27.2", 589 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", 590 - "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", 358 + "node_modules/@bruits/satteri-linux-x64-gnu": { 359 + "version": "0.9.1", 360 + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.9.1.tgz", 361 + "integrity": "sha512-Bivw60+SIfmlaU9wEZ39HAcyPh1xU9TvOrz4KJgc+ziRStQs4EzYoWW4Eh9aSdiol+xV0vjEWYuA79aF3dr7kg==", 591 362 "cpu": [ 592 363 "x64" 593 364 ], 594 - "dev": true, 595 - "license": "MIT", 365 + "libc": [ 366 + "glibc" 367 + ], 596 368 "optional": true, 597 369 "os": [ 598 370 "linux" 371 + ] 372 + }, 373 + "node_modules/@bruits/satteri-wasm32-wasi": { 374 + "version": "0.9.1", 375 + "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.9.1.tgz", 376 + "integrity": "sha512-lEFk5ebh5SxRquA5RJisEoMoDmOiSnS10PGgXgXeVlWgF8KWKI9D3hSzVqNjEg/qKOjHcNdjIfyx/03Wrl6J3g==", 377 + "cpu": [ 378 + "wasm32" 599 379 ], 380 + "optional": true, 381 + "dependencies": { 382 + "@emnapi/core": "1.9.1", 383 + "@emnapi/runtime": "1.9.1", 384 + "@napi-rs/wasm-runtime": "^1.1.5" 385 + }, 600 386 "engines": { 601 - "node": ">=18" 387 + "node": ">=14.0.0" 602 388 } 603 389 }, 604 - "node_modules/@esbuild/netbsd-arm64": { 605 - "version": "0.27.2", 606 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", 607 - "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", 608 - "cpu": [ 609 - "arm64" 610 - ], 611 - "dev": true, 390 + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/core": { 391 + "version": "1.9.1", 392 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", 393 + "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", 612 394 "license": "MIT", 613 395 "optional": true, 614 - "os": [ 615 - "netbsd" 616 - ], 617 - "engines": { 618 - "node": ">=18" 396 + "dependencies": { 397 + "@emnapi/wasi-threads": "1.2.0", 398 + "tslib": "^2.4.0" 619 399 } 620 400 }, 621 - "node_modules/@esbuild/netbsd-x64": { 622 - "version": "0.27.2", 623 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", 624 - "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", 625 - "cpu": [ 626 - "x64" 627 - ], 628 - "dev": true, 401 + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/runtime": { 402 + "version": "1.9.1", 403 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", 404 + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", 629 405 "license": "MIT", 630 406 "optional": true, 631 - "os": [ 632 - "netbsd" 633 - ], 634 - "engines": { 635 - "node": ">=18" 407 + "dependencies": { 408 + "tslib": "^2.4.0" 636 409 } 637 410 }, 638 - "node_modules/@esbuild/openbsd-arm64": { 639 - "version": "0.27.2", 640 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", 641 - "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", 642 - "cpu": [ 643 - "arm64" 644 - ], 645 - "dev": true, 411 + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/wasi-threads": { 412 + "version": "1.2.0", 413 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", 414 + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", 646 415 "license": "MIT", 647 416 "optional": true, 648 - "os": [ 649 - "openbsd" 650 - ], 651 - "engines": { 652 - "node": ">=18" 417 + "dependencies": { 418 + "tslib": "^2.4.0" 653 419 } 654 420 }, 655 - "node_modules/@esbuild/openbsd-x64": { 656 - "version": "0.27.2", 657 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", 658 - "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", 421 + "node_modules/@bruits/satteri-win32-x64-msvc": { 422 + "version": "0.9.1", 423 + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.9.1.tgz", 424 + "integrity": "sha512-YBhm8yARopswAPeTih11BzMxWVQFD5CI9Yryp6HWepi6F/CeMycqxv18DXrj9U2fDDlbVGwT2IiEM2UPBjIPDQ==", 659 425 "cpu": [ 660 426 "x64" 661 427 ], 662 - "dev": true, 663 - "license": "MIT", 664 428 "optional": true, 665 429 "os": [ 666 - "openbsd" 667 - ], 430 + "win32" 431 + ] 432 + }, 433 + "node_modules/@capsizecss/unpack": { 434 + "version": "4.0.1", 435 + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", 436 + "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", 437 + "license": "MIT", 438 + "dependencies": { 439 + "fontkitten": "^1.0.3" 440 + }, 668 441 "engines": { 669 442 "node": ">=18" 670 443 } 671 444 }, 672 - "node_modules/@esbuild/openharmony-arm64": { 673 - "version": "0.27.2", 674 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", 675 - "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", 676 - "cpu": [ 677 - "arm64" 678 - ], 679 - "dev": true, 445 + "node_modules/@clack/core": { 446 + "version": "1.4.2", 447 + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.2.tgz", 448 + "integrity": "sha512-0Ty/1Gfm+Kb07sXcuESjyKfwEhSy4Ns1AgeEisHb/bDY5fWme0tTeTkU14T1Gmcs17YIjB/teiDe4uaCghbYqQ==", 680 449 "license": "MIT", 681 - "optional": true, 682 - "os": [ 683 - "openharmony" 684 - ], 450 + "dependencies": { 451 + "fast-wrap-ansi": "^0.2.0", 452 + "sisteransi": "^1.0.5" 453 + }, 685 454 "engines": { 686 - "node": ">=18" 455 + "node": ">= 20.12.0" 687 456 } 688 457 }, 689 - "node_modules/@esbuild/sunos-x64": { 690 - "version": "0.27.2", 691 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", 692 - "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", 693 - "cpu": [ 694 - "x64" 695 - ], 696 - "dev": true, 458 + "node_modules/@clack/prompts": { 459 + "version": "1.6.0", 460 + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.6.0.tgz", 461 + "integrity": "sha512-EYlRokl8szrP9Z25qT5aepMdBjzBvHF9ZEhzIiUBc9guz/T31EqRgvD0QSgZcpE93xiwrr+OkB4nz0BZyF6fSA==", 697 462 "license": "MIT", 698 - "optional": true, 699 - "os": [ 700 - "sunos" 701 - ], 463 + "dependencies": { 464 + "@clack/core": "1.4.2", 465 + "fast-string-width": "^3.0.2", 466 + "fast-wrap-ansi": "^0.2.0", 467 + "sisteransi": "^1.0.5" 468 + }, 702 469 "engines": { 703 - "node": ">=18" 470 + "node": ">= 20.12.0" 704 471 } 705 472 }, 706 - "node_modules/@esbuild/win32-arm64": { 707 - "version": "0.27.2", 708 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", 709 - "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", 710 - "cpu": [ 711 - "arm64" 712 - ], 713 - "dev": true, 473 + "node_modules/@emnapi/core": { 474 + "version": "1.11.1", 475 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", 476 + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", 714 477 "license": "MIT", 715 478 "optional": true, 716 - "os": [ 717 - "win32" 718 - ], 719 - "engines": { 720 - "node": ">=18" 479 + "dependencies": { 480 + "@emnapi/wasi-threads": "1.2.2", 481 + "tslib": "^2.4.0" 721 482 } 722 483 }, 723 - "node_modules/@esbuild/win32-ia32": { 724 - "version": "0.27.2", 725 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", 726 - "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", 727 - "cpu": [ 728 - "ia32" 729 - ], 730 - "dev": true, 484 + "node_modules/@emnapi/runtime": { 485 + "version": "1.11.1", 486 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", 487 + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", 731 488 "license": "MIT", 732 489 "optional": true, 733 - "os": [ 734 - "win32" 735 - ], 736 - "engines": { 737 - "node": ">=18" 490 + "dependencies": { 491 + "tslib": "^2.4.0" 738 492 } 739 493 }, 740 - "node_modules/@esbuild/win32-x64": { 741 - "version": "0.27.2", 742 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", 743 - "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", 744 - "cpu": [ 745 - "x64" 746 - ], 747 - "dev": true, 494 + "node_modules/@emnapi/wasi-threads": { 495 + "version": "1.2.2", 496 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", 497 + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", 748 498 "license": "MIT", 749 499 "optional": true, 750 - "os": [ 751 - "win32" 752 - ], 753 - "engines": { 754 - "node": ">=18" 500 + "dependencies": { 501 + "tslib": "^2.4.0" 755 502 } 756 503 }, 757 504 "node_modules/@eslint-community/eslint-utils": { ··· 797 544 } 798 545 }, 799 546 "node_modules/@eslint/config-array": { 800 - "version": "0.21.1", 801 - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", 802 - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", 547 + "version": "0.21.2", 548 + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", 549 + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", 803 550 "dev": true, 804 551 "license": "Apache-2.0", 805 552 "dependencies": { 806 553 "@eslint/object-schema": "^2.1.7", 807 554 "debug": "^4.3.1", 808 - "minimatch": "^3.1.2" 555 + "minimatch": "^3.1.5" 809 556 }, 810 557 "engines": { 811 558 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 838 585 } 839 586 }, 840 587 "node_modules/@eslint/eslintrc": { 841 - "version": "3.3.3", 842 - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", 843 - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", 588 + "version": "3.3.5", 589 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", 590 + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", 844 591 "dev": true, 845 592 "license": "MIT", 846 593 "dependencies": { 847 - "ajv": "^6.12.4", 594 + "ajv": "^6.14.0", 848 595 "debug": "^4.3.2", 849 596 "espree": "^10.0.1", 850 597 "globals": "^14.0.0", 851 598 "ignore": "^5.2.0", 852 599 "import-fresh": "^3.2.1", 853 600 "js-yaml": "^4.1.1", 854 - "minimatch": "^3.1.2", 601 + "minimatch": "^3.1.5", 855 602 "strip-json-comments": "^3.1.1" 856 603 }, 857 604 "engines": { ··· 875 622 } 876 623 }, 877 624 "node_modules/@eslint/js": { 878 - "version": "9.39.2", 879 - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", 880 - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", 625 + "version": "9.39.4", 626 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", 627 + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", 881 628 "dev": true, 882 629 "license": "MIT", 883 630 "engines": { ··· 963 710 "url": "https://github.com/sponsors/nzakas" 964 711 } 965 712 }, 713 + "node_modules/@img/colour": { 714 + "version": "1.1.0", 715 + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", 716 + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", 717 + "license": "MIT", 718 + "optional": true, 719 + "engines": { 720 + "node": ">=18" 721 + } 722 + }, 723 + "node_modules/@img/sharp-darwin-arm64": { 724 + "version": "0.34.5", 725 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", 726 + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", 727 + "cpu": [ 728 + "arm64" 729 + ], 730 + "license": "Apache-2.0", 731 + "optional": true, 732 + "os": [ 733 + "darwin" 734 + ], 735 + "engines": { 736 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 737 + }, 738 + "funding": { 739 + "url": "https://opencollective.com/libvips" 740 + }, 741 + "optionalDependencies": { 742 + "@img/sharp-libvips-darwin-arm64": "1.2.4" 743 + } 744 + }, 745 + "node_modules/@img/sharp-darwin-x64": { 746 + "version": "0.34.5", 747 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", 748 + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", 749 + "cpu": [ 750 + "x64" 751 + ], 752 + "license": "Apache-2.0", 753 + "optional": true, 754 + "os": [ 755 + "darwin" 756 + ], 757 + "engines": { 758 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 759 + }, 760 + "funding": { 761 + "url": "https://opencollective.com/libvips" 762 + }, 763 + "optionalDependencies": { 764 + "@img/sharp-libvips-darwin-x64": "1.2.4" 765 + } 766 + }, 767 + "node_modules/@img/sharp-libvips-darwin-arm64": { 768 + "version": "1.2.4", 769 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", 770 + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", 771 + "cpu": [ 772 + "arm64" 773 + ], 774 + "license": "LGPL-3.0-or-later", 775 + "optional": true, 776 + "os": [ 777 + "darwin" 778 + ], 779 + "funding": { 780 + "url": "https://opencollective.com/libvips" 781 + } 782 + }, 783 + "node_modules/@img/sharp-libvips-darwin-x64": { 784 + "version": "1.2.4", 785 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", 786 + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", 787 + "cpu": [ 788 + "x64" 789 + ], 790 + "license": "LGPL-3.0-or-later", 791 + "optional": true, 792 + "os": [ 793 + "darwin" 794 + ], 795 + "funding": { 796 + "url": "https://opencollective.com/libvips" 797 + } 798 + }, 799 + "node_modules/@img/sharp-libvips-linux-arm": { 800 + "version": "1.2.4", 801 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", 802 + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", 803 + "cpu": [ 804 + "arm" 805 + ], 806 + "libc": [ 807 + "glibc" 808 + ], 809 + "license": "LGPL-3.0-or-later", 810 + "optional": true, 811 + "os": [ 812 + "linux" 813 + ], 814 + "funding": { 815 + "url": "https://opencollective.com/libvips" 816 + } 817 + }, 818 + "node_modules/@img/sharp-libvips-linux-arm64": { 819 + "version": "1.2.4", 820 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", 821 + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", 822 + "cpu": [ 823 + "arm64" 824 + ], 825 + "libc": [ 826 + "glibc" 827 + ], 828 + "license": "LGPL-3.0-or-later", 829 + "optional": true, 830 + "os": [ 831 + "linux" 832 + ], 833 + "funding": { 834 + "url": "https://opencollective.com/libvips" 835 + } 836 + }, 837 + "node_modules/@img/sharp-libvips-linux-ppc64": { 838 + "version": "1.2.4", 839 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", 840 + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", 841 + "cpu": [ 842 + "ppc64" 843 + ], 844 + "libc": [ 845 + "glibc" 846 + ], 847 + "license": "LGPL-3.0-or-later", 848 + "optional": true, 849 + "os": [ 850 + "linux" 851 + ], 852 + "funding": { 853 + "url": "https://opencollective.com/libvips" 854 + } 855 + }, 856 + "node_modules/@img/sharp-libvips-linux-riscv64": { 857 + "version": "1.2.4", 858 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", 859 + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", 860 + "cpu": [ 861 + "riscv64" 862 + ], 863 + "libc": [ 864 + "glibc" 865 + ], 866 + "license": "LGPL-3.0-or-later", 867 + "optional": true, 868 + "os": [ 869 + "linux" 870 + ], 871 + "funding": { 872 + "url": "https://opencollective.com/libvips" 873 + } 874 + }, 875 + "node_modules/@img/sharp-libvips-linux-s390x": { 876 + "version": "1.2.4", 877 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", 878 + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", 879 + "cpu": [ 880 + "s390x" 881 + ], 882 + "libc": [ 883 + "glibc" 884 + ], 885 + "license": "LGPL-3.0-or-later", 886 + "optional": true, 887 + "os": [ 888 + "linux" 889 + ], 890 + "funding": { 891 + "url": "https://opencollective.com/libvips" 892 + } 893 + }, 894 + "node_modules/@img/sharp-libvips-linux-x64": { 895 + "version": "1.2.4", 896 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", 897 + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", 898 + "cpu": [ 899 + "x64" 900 + ], 901 + "libc": [ 902 + "glibc" 903 + ], 904 + "license": "LGPL-3.0-or-later", 905 + "optional": true, 906 + "os": [ 907 + "linux" 908 + ], 909 + "funding": { 910 + "url": "https://opencollective.com/libvips" 911 + } 912 + }, 913 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 914 + "version": "1.2.4", 915 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", 916 + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", 917 + "cpu": [ 918 + "arm64" 919 + ], 920 + "libc": [ 921 + "musl" 922 + ], 923 + "license": "LGPL-3.0-or-later", 924 + "optional": true, 925 + "os": [ 926 + "linux" 927 + ], 928 + "funding": { 929 + "url": "https://opencollective.com/libvips" 930 + } 931 + }, 932 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 933 + "version": "1.2.4", 934 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", 935 + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", 936 + "cpu": [ 937 + "x64" 938 + ], 939 + "libc": [ 940 + "musl" 941 + ], 942 + "license": "LGPL-3.0-or-later", 943 + "optional": true, 944 + "os": [ 945 + "linux" 946 + ], 947 + "funding": { 948 + "url": "https://opencollective.com/libvips" 949 + } 950 + }, 951 + "node_modules/@img/sharp-linux-arm": { 952 + "version": "0.34.5", 953 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", 954 + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", 955 + "cpu": [ 956 + "arm" 957 + ], 958 + "libc": [ 959 + "glibc" 960 + ], 961 + "license": "Apache-2.0", 962 + "optional": true, 963 + "os": [ 964 + "linux" 965 + ], 966 + "engines": { 967 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 968 + }, 969 + "funding": { 970 + "url": "https://opencollective.com/libvips" 971 + }, 972 + "optionalDependencies": { 973 + "@img/sharp-libvips-linux-arm": "1.2.4" 974 + } 975 + }, 976 + "node_modules/@img/sharp-linux-arm64": { 977 + "version": "0.34.5", 978 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", 979 + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", 980 + "cpu": [ 981 + "arm64" 982 + ], 983 + "libc": [ 984 + "glibc" 985 + ], 986 + "license": "Apache-2.0", 987 + "optional": true, 988 + "os": [ 989 + "linux" 990 + ], 991 + "engines": { 992 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 993 + }, 994 + "funding": { 995 + "url": "https://opencollective.com/libvips" 996 + }, 997 + "optionalDependencies": { 998 + "@img/sharp-libvips-linux-arm64": "1.2.4" 999 + } 1000 + }, 1001 + "node_modules/@img/sharp-linux-ppc64": { 1002 + "version": "0.34.5", 1003 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", 1004 + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", 1005 + "cpu": [ 1006 + "ppc64" 1007 + ], 1008 + "libc": [ 1009 + "glibc" 1010 + ], 1011 + "license": "Apache-2.0", 1012 + "optional": true, 1013 + "os": [ 1014 + "linux" 1015 + ], 1016 + "engines": { 1017 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1018 + }, 1019 + "funding": { 1020 + "url": "https://opencollective.com/libvips" 1021 + }, 1022 + "optionalDependencies": { 1023 + "@img/sharp-libvips-linux-ppc64": "1.2.4" 1024 + } 1025 + }, 1026 + "node_modules/@img/sharp-linux-riscv64": { 1027 + "version": "0.34.5", 1028 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", 1029 + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", 1030 + "cpu": [ 1031 + "riscv64" 1032 + ], 1033 + "libc": [ 1034 + "glibc" 1035 + ], 1036 + "license": "Apache-2.0", 1037 + "optional": true, 1038 + "os": [ 1039 + "linux" 1040 + ], 1041 + "engines": { 1042 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1043 + }, 1044 + "funding": { 1045 + "url": "https://opencollective.com/libvips" 1046 + }, 1047 + "optionalDependencies": { 1048 + "@img/sharp-libvips-linux-riscv64": "1.2.4" 1049 + } 1050 + }, 1051 + "node_modules/@img/sharp-linux-s390x": { 1052 + "version": "0.34.5", 1053 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", 1054 + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", 1055 + "cpu": [ 1056 + "s390x" 1057 + ], 1058 + "libc": [ 1059 + "glibc" 1060 + ], 1061 + "license": "Apache-2.0", 1062 + "optional": true, 1063 + "os": [ 1064 + "linux" 1065 + ], 1066 + "engines": { 1067 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1068 + }, 1069 + "funding": { 1070 + "url": "https://opencollective.com/libvips" 1071 + }, 1072 + "optionalDependencies": { 1073 + "@img/sharp-libvips-linux-s390x": "1.2.4" 1074 + } 1075 + }, 1076 + "node_modules/@img/sharp-linux-x64": { 1077 + "version": "0.34.5", 1078 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", 1079 + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", 1080 + "cpu": [ 1081 + "x64" 1082 + ], 1083 + "libc": [ 1084 + "glibc" 1085 + ], 1086 + "license": "Apache-2.0", 1087 + "optional": true, 1088 + "os": [ 1089 + "linux" 1090 + ], 1091 + "engines": { 1092 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1093 + }, 1094 + "funding": { 1095 + "url": "https://opencollective.com/libvips" 1096 + }, 1097 + "optionalDependencies": { 1098 + "@img/sharp-libvips-linux-x64": "1.2.4" 1099 + } 1100 + }, 1101 + "node_modules/@img/sharp-linuxmusl-arm64": { 1102 + "version": "0.34.5", 1103 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", 1104 + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", 1105 + "cpu": [ 1106 + "arm64" 1107 + ], 1108 + "libc": [ 1109 + "musl" 1110 + ], 1111 + "license": "Apache-2.0", 1112 + "optional": true, 1113 + "os": [ 1114 + "linux" 1115 + ], 1116 + "engines": { 1117 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1118 + }, 1119 + "funding": { 1120 + "url": "https://opencollective.com/libvips" 1121 + }, 1122 + "optionalDependencies": { 1123 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" 1124 + } 1125 + }, 1126 + "node_modules/@img/sharp-linuxmusl-x64": { 1127 + "version": "0.34.5", 1128 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", 1129 + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", 1130 + "cpu": [ 1131 + "x64" 1132 + ], 1133 + "libc": [ 1134 + "musl" 1135 + ], 1136 + "license": "Apache-2.0", 1137 + "optional": true, 1138 + "os": [ 1139 + "linux" 1140 + ], 1141 + "engines": { 1142 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1143 + }, 1144 + "funding": { 1145 + "url": "https://opencollective.com/libvips" 1146 + }, 1147 + "optionalDependencies": { 1148 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" 1149 + } 1150 + }, 1151 + "node_modules/@img/sharp-wasm32": { 1152 + "version": "0.34.5", 1153 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", 1154 + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", 1155 + "cpu": [ 1156 + "wasm32" 1157 + ], 1158 + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 1159 + "optional": true, 1160 + "dependencies": { 1161 + "@emnapi/runtime": "^1.7.0" 1162 + }, 1163 + "engines": { 1164 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1165 + }, 1166 + "funding": { 1167 + "url": "https://opencollective.com/libvips" 1168 + } 1169 + }, 1170 + "node_modules/@img/sharp-win32-arm64": { 1171 + "version": "0.34.5", 1172 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", 1173 + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", 1174 + "cpu": [ 1175 + "arm64" 1176 + ], 1177 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1178 + "optional": true, 1179 + "os": [ 1180 + "win32" 1181 + ], 1182 + "engines": { 1183 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1184 + }, 1185 + "funding": { 1186 + "url": "https://opencollective.com/libvips" 1187 + } 1188 + }, 1189 + "node_modules/@img/sharp-win32-ia32": { 1190 + "version": "0.34.5", 1191 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", 1192 + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", 1193 + "cpu": [ 1194 + "ia32" 1195 + ], 1196 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1197 + "optional": true, 1198 + "os": [ 1199 + "win32" 1200 + ], 1201 + "engines": { 1202 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1203 + }, 1204 + "funding": { 1205 + "url": "https://opencollective.com/libvips" 1206 + } 1207 + }, 1208 + "node_modules/@img/sharp-win32-x64": { 1209 + "version": "0.34.5", 1210 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", 1211 + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", 1212 + "cpu": [ 1213 + "x64" 1214 + ], 1215 + "license": "Apache-2.0 AND LGPL-3.0-or-later", 1216 + "optional": true, 1217 + "os": [ 1218 + "win32" 1219 + ], 1220 + "engines": { 1221 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1222 + }, 1223 + "funding": { 1224 + "url": "https://opencollective.com/libvips" 1225 + } 1226 + }, 966 1227 "node_modules/@jridgewell/gen-mapping": { 967 1228 "version": "0.3.13", 968 1229 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", ··· 999 1260 "version": "1.5.5", 1000 1261 "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1001 1262 "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1002 - "dev": true, 1003 1263 "license": "MIT" 1004 1264 }, 1005 1265 "node_modules/@jridgewell/trace-mapping": { ··· 1011 1271 "dependencies": { 1012 1272 "@jridgewell/resolve-uri": "^3.1.0", 1013 1273 "@jridgewell/sourcemap-codec": "^1.4.14" 1274 + } 1275 + }, 1276 + "node_modules/@napi-rs/wasm-runtime": { 1277 + "version": "1.1.5", 1278 + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", 1279 + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", 1280 + "license": "MIT", 1281 + "optional": true, 1282 + "dependencies": { 1283 + "@tybys/wasm-util": "^0.10.2" 1284 + }, 1285 + "funding": { 1286 + "type": "github", 1287 + "url": "https://github.com/sponsors/Brooooooklyn" 1288 + }, 1289 + "peerDependencies": { 1290 + "@emnapi/core": "^1.7.1", 1291 + "@emnapi/runtime": "^1.7.1" 1292 + } 1293 + }, 1294 + "node_modules/@oslojs/encoding": { 1295 + "version": "1.1.0", 1296 + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", 1297 + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", 1298 + "license": "MIT" 1299 + }, 1300 + "node_modules/@oxc-project/types": { 1301 + "version": "0.133.0", 1302 + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", 1303 + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", 1304 + "license": "MIT", 1305 + "funding": { 1306 + "url": "https://github.com/sponsors/Boshen" 1014 1307 } 1015 1308 }, 1016 1309 "node_modules/@resvg/resvg-js": { ··· 1241 1534 "node": ">= 10" 1242 1535 } 1243 1536 }, 1244 - "node_modules/@rolldown/pluginutils": { 1245 - "version": "1.0.0-beta.53", 1246 - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", 1247 - "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", 1248 - "dev": true, 1249 - "license": "MIT" 1250 - }, 1251 - "node_modules/@rollup/rollup-android-arm-eabi": { 1252 - "version": "4.55.3", 1253 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.3.tgz", 1254 - "integrity": "sha512-qyX8+93kK/7R5BEXPC2PjUt0+fS/VO2BVHjEHyIEWiYn88rcRBHmdLgoJjktBltgAf+NY7RfCGB1SoyKS/p9kg==", 1537 + "node_modules/@rolldown/binding-android-arm64": { 1538 + "version": "1.0.3", 1539 + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", 1540 + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", 1255 1541 "cpu": [ 1256 - "arm" 1542 + "arm64" 1257 1543 ], 1258 - "dev": true, 1259 1544 "license": "MIT", 1260 1545 "optional": true, 1261 1546 "os": [ 1262 1547 "android" 1263 - ] 1264 - }, 1265 - "node_modules/@rollup/rollup-android-arm64": { 1266 - "version": "4.55.3", 1267 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.3.tgz", 1268 - "integrity": "sha512-6sHrL42bjt5dHQzJ12Q4vMKfN+kUnZ0atHHnv4V0Wd9JMTk7FDzSY35+7qbz3ypQYMBPANbpGK7JpnWNnhGt8g==", 1269 - "cpu": [ 1270 - "arm64" 1271 1548 ], 1272 - "dev": true, 1273 - "license": "MIT", 1274 - "optional": true, 1275 - "os": [ 1276 - "android" 1277 - ] 1549 + "engines": { 1550 + "node": "^20.19.0 || >=22.12.0" 1551 + } 1278 1552 }, 1279 - "node_modules/@rollup/rollup-darwin-arm64": { 1280 - "version": "4.55.3", 1281 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.3.tgz", 1282 - "integrity": "sha512-1ht2SpGIjEl2igJ9AbNpPIKzb1B5goXOcmtD0RFxnwNuMxqkR6AUaaErZz+4o+FKmzxcSNBOLrzsICZVNYa1Rw==", 1553 + "node_modules/@rolldown/binding-darwin-arm64": { 1554 + "version": "1.0.3", 1555 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", 1556 + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", 1283 1557 "cpu": [ 1284 1558 "arm64" 1285 1559 ], 1286 - "dev": true, 1287 1560 "license": "MIT", 1288 1561 "optional": true, 1289 1562 "os": [ 1290 1563 "darwin" 1291 - ] 1564 + ], 1565 + "engines": { 1566 + "node": "^20.19.0 || >=22.12.0" 1567 + } 1292 1568 }, 1293 - "node_modules/@rollup/rollup-darwin-x64": { 1294 - "version": "4.55.3", 1295 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.3.tgz", 1296 - "integrity": "sha512-FYZ4iVunXxtT+CZqQoPVwPhH7549e/Gy7PIRRtq4t5f/vt54pX6eG9ebttRH6QSH7r/zxAFA4EZGlQ0h0FvXiA==", 1569 + "node_modules/@rolldown/binding-darwin-x64": { 1570 + "version": "1.0.3", 1571 + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", 1572 + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", 1297 1573 "cpu": [ 1298 1574 "x64" 1299 1575 ], 1300 - "dev": true, 1301 1576 "license": "MIT", 1302 1577 "optional": true, 1303 1578 "os": [ 1304 1579 "darwin" 1305 - ] 1306 - }, 1307 - "node_modules/@rollup/rollup-freebsd-arm64": { 1308 - "version": "4.55.3", 1309 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.3.tgz", 1310 - "integrity": "sha512-M/mwDCJ4wLsIgyxv2Lj7Len+UMHd4zAXu4GQ2UaCdksStglWhP61U3uowkaYBQBhVoNpwx5Hputo8eSqM7K82Q==", 1311 - "cpu": [ 1312 - "arm64" 1313 1580 ], 1314 - "dev": true, 1315 - "license": "MIT", 1316 - "optional": true, 1317 - "os": [ 1318 - "freebsd" 1319 - ] 1581 + "engines": { 1582 + "node": "^20.19.0 || >=22.12.0" 1583 + } 1320 1584 }, 1321 - "node_modules/@rollup/rollup-freebsd-x64": { 1322 - "version": "4.55.3", 1323 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.3.tgz", 1324 - "integrity": "sha512-5jZT2c7jBCrMegKYTYTpni8mg8y3uY8gzeq2ndFOANwNuC/xJbVAoGKR9LhMDA0H3nIhvaqUoBEuJoICBudFrA==", 1585 + "node_modules/@rolldown/binding-freebsd-x64": { 1586 + "version": "1.0.3", 1587 + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", 1588 + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", 1325 1589 "cpu": [ 1326 1590 "x64" 1327 1591 ], 1328 - "dev": true, 1329 1592 "license": "MIT", 1330 1593 "optional": true, 1331 1594 "os": [ 1332 1595 "freebsd" 1333 - ] 1596 + ], 1597 + "engines": { 1598 + "node": "^20.19.0 || >=22.12.0" 1599 + } 1334 1600 }, 1335 - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 1336 - "version": "4.55.3", 1337 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.3.tgz", 1338 - "integrity": "sha512-YeGUhkN1oA+iSPzzhEjVPS29YbViOr8s4lSsFaZKLHswgqP911xx25fPOyE9+khmN6W4VeM0aevbDp4kkEoHiA==", 1601 + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { 1602 + "version": "1.0.3", 1603 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", 1604 + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", 1339 1605 "cpu": [ 1340 1606 "arm" 1341 1607 ], 1342 - "dev": true, 1343 1608 "license": "MIT", 1344 1609 "optional": true, 1345 1610 "os": [ 1346 1611 "linux" 1347 - ] 1348 - }, 1349 - "node_modules/@rollup/rollup-linux-arm-musleabihf": { 1350 - "version": "4.55.3", 1351 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.3.tgz", 1352 - "integrity": "sha512-eo0iOIOvcAlWB3Z3eh8pVM8hZ0oVkK3AjEM9nSrkSug2l15qHzF3TOwT0747omI6+CJJvl7drwZepT+re6Fy/w==", 1353 - "cpu": [ 1354 - "arm" 1355 1612 ], 1356 - "dev": true, 1357 - "license": "MIT", 1358 - "optional": true, 1359 - "os": [ 1360 - "linux" 1361 - ] 1613 + "engines": { 1614 + "node": "^20.19.0 || >=22.12.0" 1615 + } 1362 1616 }, 1363 - "node_modules/@rollup/rollup-linux-arm64-gnu": { 1364 - "version": "4.55.3", 1365 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.3.tgz", 1366 - "integrity": "sha512-DJay3ep76bKUDImmn//W5SvpjRN5LmK/ntWyeJs/dcnwiiHESd3N4uteK9FDLf0S0W8E6Y0sVRXpOCoQclQqNg==", 1617 + "node_modules/@rolldown/binding-linux-arm64-gnu": { 1618 + "version": "1.0.3", 1619 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", 1620 + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", 1367 1621 "cpu": [ 1368 1622 "arm64" 1369 1623 ], 1370 - "dev": true, 1624 + "libc": [ 1625 + "glibc" 1626 + ], 1371 1627 "license": "MIT", 1372 1628 "optional": true, 1373 1629 "os": [ 1374 1630 "linux" 1375 - ] 1631 + ], 1632 + "engines": { 1633 + "node": "^20.19.0 || >=22.12.0" 1634 + } 1376 1635 }, 1377 - "node_modules/@rollup/rollup-linux-arm64-musl": { 1378 - "version": "4.55.3", 1379 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.3.tgz", 1380 - "integrity": "sha512-BKKWQkY2WgJ5MC/ayvIJTHjy0JUGb5efaHCUiG/39sSUvAYRBaO3+/EK0AZT1RF3pSj86O24GLLik9mAYu0IJg==", 1636 + "node_modules/@rolldown/binding-linux-arm64-musl": { 1637 + "version": "1.0.3", 1638 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", 1639 + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", 1381 1640 "cpu": [ 1382 1641 "arm64" 1383 1642 ], 1384 - "dev": true, 1385 - "license": "MIT", 1386 - "optional": true, 1387 - "os": [ 1388 - "linux" 1389 - ] 1390 - }, 1391 - "node_modules/@rollup/rollup-linux-loong64-gnu": { 1392 - "version": "4.55.3", 1393 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.3.tgz", 1394 - "integrity": "sha512-Q9nVlWtKAG7ISW80OiZGxTr6rYtyDSkauHUtvkQI6TNOJjFvpj4gcH+KaJihqYInnAzEEUetPQubRwHef4exVg==", 1395 - "cpu": [ 1396 - "loong64" 1643 + "libc": [ 1644 + "musl" 1397 1645 ], 1398 - "dev": true, 1399 1646 "license": "MIT", 1400 1647 "optional": true, 1401 1648 "os": [ 1402 1649 "linux" 1403 - ] 1404 - }, 1405 - "node_modules/@rollup/rollup-linux-loong64-musl": { 1406 - "version": "4.55.3", 1407 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.3.tgz", 1408 - "integrity": "sha512-2H5LmhzrpC4fFRNwknzmmTvvyJPHwESoJgyReXeFoYYuIDfBhP29TEXOkCJE/KxHi27mj7wDUClNq78ue3QEBQ==", 1409 - "cpu": [ 1410 - "loong64" 1411 1650 ], 1412 - "dev": true, 1413 - "license": "MIT", 1414 - "optional": true, 1415 - "os": [ 1416 - "linux" 1417 - ] 1651 + "engines": { 1652 + "node": "^20.19.0 || >=22.12.0" 1653 + } 1418 1654 }, 1419 - "node_modules/@rollup/rollup-linux-ppc64-gnu": { 1420 - "version": "4.55.3", 1421 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.3.tgz", 1422 - "integrity": "sha512-9S542V0ie9LCTznPYlvaeySwBeIEa7rDBgLHKZ5S9DBgcqdJYburabm8TqiqG6mrdTzfV5uttQRHcbKff9lWtA==", 1655 + "node_modules/@rolldown/binding-linux-ppc64-gnu": { 1656 + "version": "1.0.3", 1657 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", 1658 + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", 1423 1659 "cpu": [ 1424 1660 "ppc64" 1425 1661 ], 1426 - "dev": true, 1662 + "libc": [ 1663 + "glibc" 1664 + ], 1427 1665 "license": "MIT", 1428 1666 "optional": true, 1429 1667 "os": [ 1430 1668 "linux" 1431 - ] 1669 + ], 1670 + "engines": { 1671 + "node": "^20.19.0 || >=22.12.0" 1672 + } 1432 1673 }, 1433 - "node_modules/@rollup/rollup-linux-ppc64-musl": { 1434 - "version": "4.55.3", 1435 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.3.tgz", 1436 - "integrity": "sha512-ukxw+YH3XXpcezLgbJeasgxyTbdpnNAkrIlFGDl7t+pgCxZ89/6n1a+MxlY7CegU+nDgrgdqDelPRNQ/47zs0g==", 1674 + "node_modules/@rolldown/binding-linux-s390x-gnu": { 1675 + "version": "1.0.3", 1676 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", 1677 + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", 1437 1678 "cpu": [ 1438 - "ppc64" 1679 + "s390x" 1680 + ], 1681 + "libc": [ 1682 + "glibc" 1439 1683 ], 1440 - "dev": true, 1441 1684 "license": "MIT", 1442 1685 "optional": true, 1443 1686 "os": [ 1444 1687 "linux" 1445 - ] 1688 + ], 1689 + "engines": { 1690 + "node": "^20.19.0 || >=22.12.0" 1691 + } 1446 1692 }, 1447 - "node_modules/@rollup/rollup-linux-riscv64-gnu": { 1448 - "version": "4.55.3", 1449 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.3.tgz", 1450 - "integrity": "sha512-Iauw9UsTTvlF++FhghFJjqYxyXdggXsOqGpFBylaRopVpcbfyIIsNvkf9oGwfgIcf57z3m8+/oSYTo6HutBFNw==", 1693 + "node_modules/@rolldown/binding-linux-x64-gnu": { 1694 + "version": "1.0.3", 1695 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", 1696 + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", 1451 1697 "cpu": [ 1452 - "riscv64" 1698 + "x64" 1699 + ], 1700 + "libc": [ 1701 + "glibc" 1453 1702 ], 1454 - "dev": true, 1455 1703 "license": "MIT", 1456 1704 "optional": true, 1457 1705 "os": [ 1458 1706 "linux" 1459 - ] 1707 + ], 1708 + "engines": { 1709 + "node": "^20.19.0 || >=22.12.0" 1710 + } 1460 1711 }, 1461 - "node_modules/@rollup/rollup-linux-riscv64-musl": { 1462 - "version": "4.55.3", 1463 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.3.tgz", 1464 - "integrity": "sha512-3OqKAHSEQXKdq9mQ4eajqUgNIK27VZPW3I26EP8miIzuKzCJ3aW3oEn2pzF+4/Hj/Moc0YDsOtBgT5bZ56/vcA==", 1712 + "node_modules/@rolldown/binding-linux-x64-musl": { 1713 + "version": "1.0.3", 1714 + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", 1715 + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", 1465 1716 "cpu": [ 1466 - "riscv64" 1717 + "x64" 1718 + ], 1719 + "libc": [ 1720 + "musl" 1467 1721 ], 1468 - "dev": true, 1469 1722 "license": "MIT", 1470 1723 "optional": true, 1471 1724 "os": [ 1472 1725 "linux" 1473 - ] 1726 + ], 1727 + "engines": { 1728 + "node": "^20.19.0 || >=22.12.0" 1729 + } 1474 1730 }, 1475 - "node_modules/@rollup/rollup-linux-s390x-gnu": { 1476 - "version": "4.55.3", 1477 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.3.tgz", 1478 - "integrity": "sha512-0CM8dSVzVIaqMcXIFej8zZrSFLnGrAE8qlNbbHfTw1EEPnFTg1U1ekI0JdzjPyzSfUsHWtodilQQG/RA55berA==", 1731 + "node_modules/@rolldown/binding-openharmony-arm64": { 1732 + "version": "1.0.3", 1733 + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", 1734 + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", 1479 1735 "cpu": [ 1480 - "s390x" 1736 + "arm64" 1481 1737 ], 1482 - "dev": true, 1483 1738 "license": "MIT", 1484 1739 "optional": true, 1485 1740 "os": [ 1486 - "linux" 1487 - ] 1741 + "openharmony" 1742 + ], 1743 + "engines": { 1744 + "node": "^20.19.0 || >=22.12.0" 1745 + } 1488 1746 }, 1489 - "node_modules/@rollup/rollup-linux-x64-gnu": { 1490 - "version": "4.55.3", 1491 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.3.tgz", 1492 - "integrity": "sha512-+fgJE12FZMIgBaKIAGd45rxf+5ftcycANJRWk8Vz0NnMTM5rADPGuRFTYar+Mqs560xuART7XsX2lSACa1iOmQ==", 1747 + "node_modules/@rolldown/binding-wasm32-wasi": { 1748 + "version": "1.0.3", 1749 + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", 1750 + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", 1493 1751 "cpu": [ 1494 - "x64" 1752 + "wasm32" 1495 1753 ], 1496 - "dev": true, 1497 1754 "license": "MIT", 1498 1755 "optional": true, 1499 - "os": [ 1500 - "linux" 1501 - ] 1756 + "dependencies": { 1757 + "@emnapi/core": "1.10.0", 1758 + "@emnapi/runtime": "1.10.0", 1759 + "@napi-rs/wasm-runtime": "^1.1.4" 1760 + }, 1761 + "engines": { 1762 + "node": "^20.19.0 || >=22.12.0" 1763 + } 1502 1764 }, 1503 - "node_modules/@rollup/rollup-linux-x64-musl": { 1504 - "version": "4.55.3", 1505 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.3.tgz", 1506 - "integrity": "sha512-tMD7NnbAolWPzQlJQJjVFh/fNH3K/KnA7K8gv2dJWCwwnaK6DFCYST1QXYWfu5V0cDwarWC8Sf/cfMHniNq21A==", 1507 - "cpu": [ 1508 - "x64" 1509 - ], 1510 - "dev": true, 1765 + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/core": { 1766 + "version": "1.10.0", 1767 + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", 1768 + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", 1511 1769 "license": "MIT", 1512 1770 "optional": true, 1513 - "os": [ 1514 - "linux" 1515 - ] 1771 + "dependencies": { 1772 + "@emnapi/wasi-threads": "1.2.1", 1773 + "tslib": "^2.4.0" 1774 + } 1516 1775 }, 1517 - "node_modules/@rollup/rollup-openbsd-x64": { 1518 - "version": "4.55.3", 1519 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.3.tgz", 1520 - "integrity": "sha512-u5KsqxOxjEeIbn7bUK1MPM34jrnPwjeqgyin4/N6e/KzXKfpE9Mi0nCxcQjaM9lLmPcHmn/xx1yOjgTMtu1jWQ==", 1521 - "cpu": [ 1522 - "x64" 1523 - ], 1524 - "dev": true, 1776 + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { 1777 + "version": "1.10.0", 1778 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", 1779 + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", 1525 1780 "license": "MIT", 1526 1781 "optional": true, 1527 - "os": [ 1528 - "openbsd" 1529 - ] 1782 + "dependencies": { 1783 + "tslib": "^2.4.0" 1784 + } 1530 1785 }, 1531 - "node_modules/@rollup/rollup-openharmony-arm64": { 1532 - "version": "4.55.3", 1533 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.3.tgz", 1534 - "integrity": "sha512-vo54aXwjpTtsAnb3ca7Yxs9t2INZg7QdXN/7yaoG7nPGbOBXYXQY41Km+S1Ov26vzOAzLcAjmMdjyEqS1JkVhw==", 1535 - "cpu": [ 1536 - "arm64" 1537 - ], 1538 - "dev": true, 1786 + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/wasi-threads": { 1787 + "version": "1.2.1", 1788 + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", 1789 + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", 1539 1790 "license": "MIT", 1540 1791 "optional": true, 1541 - "os": [ 1542 - "openharmony" 1543 - ] 1792 + "dependencies": { 1793 + "tslib": "^2.4.0" 1794 + } 1544 1795 }, 1545 - "node_modules/@rollup/rollup-win32-arm64-msvc": { 1546 - "version": "4.55.3", 1547 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.3.tgz", 1548 - "integrity": "sha512-HI+PIVZ+m+9AgpnY3pt6rinUdRYrGHvmVdsNQ4odNqQ/eRF78DVpMR7mOq7nW06QxpczibwBmeQzB68wJ+4W4A==", 1796 + "node_modules/@rolldown/binding-win32-arm64-msvc": { 1797 + "version": "1.0.3", 1798 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", 1799 + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", 1549 1800 "cpu": [ 1550 1801 "arm64" 1551 1802 ], 1552 - "dev": true, 1553 1803 "license": "MIT", 1554 1804 "optional": true, 1555 1805 "os": [ 1556 1806 "win32" 1557 - ] 1558 - }, 1559 - "node_modules/@rollup/rollup-win32-ia32-msvc": { 1560 - "version": "4.55.3", 1561 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.3.tgz", 1562 - "integrity": "sha512-vRByotbdMo3Wdi+8oC2nVxtc3RkkFKrGaok+a62AT8lz/YBuQjaVYAS5Zcs3tPzW43Vsf9J0wehJbUY5xRSekA==", 1563 - "cpu": [ 1564 - "ia32" 1565 1807 ], 1566 - "dev": true, 1567 - "license": "MIT", 1568 - "optional": true, 1569 - "os": [ 1570 - "win32" 1571 - ] 1808 + "engines": { 1809 + "node": "^20.19.0 || >=22.12.0" 1810 + } 1572 1811 }, 1573 - "node_modules/@rollup/rollup-win32-x64-gnu": { 1574 - "version": "4.55.3", 1575 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.3.tgz", 1576 - "integrity": "sha512-POZHq7UeuzMJljC5NjKi8vKMFN6/5EOqcX1yGntNLp7rUTpBAXQ1hW8kWPFxYLv07QMcNM75xqVLGPWQq6TKFA==", 1812 + "node_modules/@rolldown/binding-win32-x64-msvc": { 1813 + "version": "1.0.3", 1814 + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", 1815 + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", 1577 1816 "cpu": [ 1578 1817 "x64" 1579 1818 ], 1580 - "dev": true, 1581 1819 "license": "MIT", 1582 1820 "optional": true, 1583 1821 "os": [ 1584 1822 "win32" 1585 - ] 1823 + ], 1824 + "engines": { 1825 + "node": "^20.19.0 || >=22.12.0" 1826 + } 1827 + }, 1828 + "node_modules/@rolldown/pluginutils": { 1829 + "version": "1.0.1", 1830 + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", 1831 + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", 1832 + "license": "MIT" 1586 1833 }, 1587 - "node_modules/@rollup/rollup-win32-x64-msvc": { 1588 - "version": "4.55.3", 1589 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.3.tgz", 1590 - "integrity": "sha512-aPFONczE4fUFKNXszdvnd2GqKEYQdV5oEsIbKPujJmWlCI9zEsv1Otig8RKK+X9bed9gFUN6LAeN4ZcNuu4zjg==", 1591 - "cpu": [ 1592 - "x64" 1593 - ], 1594 - "dev": true, 1834 + "node_modules/@rollup/pluginutils": { 1835 + "version": "5.4.0", 1836 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", 1837 + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", 1595 1838 "license": "MIT", 1596 - "optional": true, 1597 - "os": [ 1598 - "win32" 1599 - ] 1839 + "dependencies": { 1840 + "@types/estree": "^1.0.0", 1841 + "estree-walker": "^2.0.2", 1842 + "picomatch": "^4.0.2" 1843 + }, 1844 + "engines": { 1845 + "node": ">=14.0.0" 1846 + }, 1847 + "peerDependencies": { 1848 + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 1849 + }, 1850 + "peerDependenciesMeta": { 1851 + "rollup": { 1852 + "optional": true 1853 + } 1854 + } 1855 + }, 1856 + "node_modules/@shikijs/core": { 1857 + "version": "4.2.0", 1858 + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.2.0.tgz", 1859 + "integrity": "sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ==", 1860 + "license": "MIT", 1861 + "dependencies": { 1862 + "@shikijs/primitive": "4.2.0", 1863 + "@shikijs/types": "4.2.0", 1864 + "@shikijs/vscode-textmate": "^10.0.2", 1865 + "@types/hast": "^3.0.4", 1866 + "hast-util-to-html": "^9.0.5" 1867 + }, 1868 + "engines": { 1869 + "node": ">=20" 1870 + } 1871 + }, 1872 + "node_modules/@shikijs/engine-javascript": { 1873 + "version": "4.2.0", 1874 + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.2.0.tgz", 1875 + "integrity": "sha512-fjETeq1k5ffyXqRgS6+3hpvqseLalp1kjNfRbXpUgWR8FpZ1CmQfiNHovc5lncYjt/Vg5JK/WJEmLahjwMa0og==", 1876 + "license": "MIT", 1877 + "dependencies": { 1878 + "@shikijs/types": "4.2.0", 1879 + "@shikijs/vscode-textmate": "^10.0.2", 1880 + "oniguruma-to-es": "^4.3.6" 1881 + }, 1882 + "engines": { 1883 + "node": ">=20" 1884 + } 1885 + }, 1886 + "node_modules/@shikijs/engine-oniguruma": { 1887 + "version": "4.2.0", 1888 + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.2.0.tgz", 1889 + "integrity": "sha512-hTorK1dffPkpbMUk6Z+828PgRo7d07HbnizoP0hNPFjhxMHctj0Px/qoHeGMYafc6ju+u9iMldN4JbVzNQM++g==", 1890 + "license": "MIT", 1891 + "dependencies": { 1892 + "@shikijs/types": "4.2.0", 1893 + "@shikijs/vscode-textmate": "^10.0.2" 1894 + }, 1895 + "engines": { 1896 + "node": ">=20" 1897 + } 1898 + }, 1899 + "node_modules/@shikijs/langs": { 1900 + "version": "4.2.0", 1901 + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.2.0.tgz", 1902 + "integrity": "sha512-bwrVRlJ0wUhZxAbVdvBbv2TTC9yLsh4C/IO5Ofz0T8MQntgDvyVnkbjw9vi50r1kx7RCIJdnJnjZAwmAsXFLZQ==", 1903 + "license": "MIT", 1904 + "dependencies": { 1905 + "@shikijs/types": "4.2.0" 1906 + }, 1907 + "engines": { 1908 + "node": ">=20" 1909 + } 1910 + }, 1911 + "node_modules/@shikijs/primitive": { 1912 + "version": "4.2.0", 1913 + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.2.0.tgz", 1914 + "integrity": "sha512-NOq+DtUkVBJtZMVXL5A0vI0Xk8nvDYaXetFHSJFlOqjDZIVhIPRYFdGkSoElDqNuegikcc3A76SNUa8dTqtAYA==", 1915 + "license": "MIT", 1916 + "dependencies": { 1917 + "@shikijs/types": "4.2.0", 1918 + "@shikijs/vscode-textmate": "^10.0.2", 1919 + "@types/hast": "^3.0.4" 1920 + }, 1921 + "engines": { 1922 + "node": ">=20" 1923 + } 1924 + }, 1925 + "node_modules/@shikijs/themes": { 1926 + "version": "4.2.0", 1927 + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.2.0.tgz", 1928 + "integrity": "sha512-RX8IHYeLv8Cu2W6ruc3RxUqWn0IYCqSrMBzi/uRGAmfyDNOnNO5BF/Px7o97n4XTpmFTo5GbRaazuOWj+2ak2w==", 1929 + "license": "MIT", 1930 + "dependencies": { 1931 + "@shikijs/types": "4.2.0" 1932 + }, 1933 + "engines": { 1934 + "node": ">=20" 1935 + } 1936 + }, 1937 + "node_modules/@shikijs/types": { 1938 + "version": "4.2.0", 1939 + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.2.0.tgz", 1940 + "integrity": "sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw==", 1941 + "license": "MIT", 1942 + "dependencies": { 1943 + "@shikijs/vscode-textmate": "^10.0.2", 1944 + "@types/hast": "^3.0.4" 1945 + }, 1946 + "engines": { 1947 + "node": ">=20" 1948 + } 1949 + }, 1950 + "node_modules/@shikijs/vscode-textmate": { 1951 + "version": "10.0.2", 1952 + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", 1953 + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", 1954 + "license": "MIT" 1600 1955 }, 1601 1956 "node_modules/@shuding/opentype.js": { 1602 1957 "version": "1.4.0-beta.0", ··· 1616 1971 } 1617 1972 }, 1618 1973 "node_modules/@tailwindcss/node": { 1619 - "version": "4.1.18", 1620 - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", 1621 - "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", 1974 + "version": "4.3.1", 1975 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", 1976 + "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", 1622 1977 "dev": true, 1623 1978 "license": "MIT", 1624 1979 "dependencies": { 1625 - "@jridgewell/remapping": "^2.3.4", 1626 - "enhanced-resolve": "^5.18.3", 1627 - "jiti": "^2.6.1", 1628 - "lightningcss": "1.30.2", 1980 + "@jridgewell/remapping": "^2.3.5", 1981 + "enhanced-resolve": "5.21.6", 1982 + "jiti": "^2.7.0", 1983 + "lightningcss": "1.32.0", 1629 1984 "magic-string": "^0.30.21", 1630 1985 "source-map-js": "^1.2.1", 1631 - "tailwindcss": "4.1.18" 1986 + "tailwindcss": "4.3.1" 1632 1987 } 1633 1988 }, 1634 1989 "node_modules/@tailwindcss/oxide": { 1635 - "version": "4.1.18", 1636 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", 1637 - "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", 1990 + "version": "4.3.1", 1991 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", 1992 + "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", 1638 1993 "dev": true, 1639 1994 "license": "MIT", 1640 1995 "engines": { 1641 - "node": ">= 10" 1996 + "node": ">= 20" 1642 1997 }, 1643 1998 "optionalDependencies": { 1644 - "@tailwindcss/oxide-android-arm64": "4.1.18", 1645 - "@tailwindcss/oxide-darwin-arm64": "4.1.18", 1646 - "@tailwindcss/oxide-darwin-x64": "4.1.18", 1647 - "@tailwindcss/oxide-freebsd-x64": "4.1.18", 1648 - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", 1649 - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", 1650 - "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", 1651 - "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", 1652 - "@tailwindcss/oxide-linux-x64-musl": "4.1.18", 1653 - "@tailwindcss/oxide-wasm32-wasi": "4.1.18", 1654 - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", 1655 - "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" 1999 + "@tailwindcss/oxide-android-arm64": "4.3.1", 2000 + "@tailwindcss/oxide-darwin-arm64": "4.3.1", 2001 + "@tailwindcss/oxide-darwin-x64": "4.3.1", 2002 + "@tailwindcss/oxide-freebsd-x64": "4.3.1", 2003 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", 2004 + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", 2005 + "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", 2006 + "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", 2007 + "@tailwindcss/oxide-linux-x64-musl": "4.3.1", 2008 + "@tailwindcss/oxide-wasm32-wasi": "4.3.1", 2009 + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", 2010 + "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" 1656 2011 } 1657 2012 }, 1658 2013 "node_modules/@tailwindcss/oxide-android-arm64": { 1659 - "version": "4.1.18", 1660 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", 1661 - "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", 2014 + "version": "4.3.1", 2015 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", 2016 + "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", 1662 2017 "cpu": [ 1663 2018 "arm64" 1664 2019 ], ··· 1669 2024 "android" 1670 2025 ], 1671 2026 "engines": { 1672 - "node": ">= 10" 2027 + "node": ">= 20" 1673 2028 } 1674 2029 }, 1675 2030 "node_modules/@tailwindcss/oxide-darwin-arm64": { 1676 - "version": "4.1.18", 1677 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", 1678 - "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", 2031 + "version": "4.3.1", 2032 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", 2033 + "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", 1679 2034 "cpu": [ 1680 2035 "arm64" 1681 2036 ], ··· 1686 2041 "darwin" 1687 2042 ], 1688 2043 "engines": { 1689 - "node": ">= 10" 2044 + "node": ">= 20" 1690 2045 } 1691 2046 }, 1692 2047 "node_modules/@tailwindcss/oxide-darwin-x64": { 1693 - "version": "4.1.18", 1694 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", 1695 - "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", 2048 + "version": "4.3.1", 2049 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", 2050 + "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", 1696 2051 "cpu": [ 1697 2052 "x64" 1698 2053 ], ··· 1703 2058 "darwin" 1704 2059 ], 1705 2060 "engines": { 1706 - "node": ">= 10" 2061 + "node": ">= 20" 1707 2062 } 1708 2063 }, 1709 2064 "node_modules/@tailwindcss/oxide-freebsd-x64": { 1710 - "version": "4.1.18", 1711 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", 1712 - "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", 2065 + "version": "4.3.1", 2066 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", 2067 + "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", 1713 2068 "cpu": [ 1714 2069 "x64" 1715 2070 ], ··· 1720 2075 "freebsd" 1721 2076 ], 1722 2077 "engines": { 1723 - "node": ">= 10" 2078 + "node": ">= 20" 1724 2079 } 1725 2080 }, 1726 2081 "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1727 - "version": "4.1.18", 1728 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", 1729 - "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", 2082 + "version": "4.3.1", 2083 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", 2084 + "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", 1730 2085 "cpu": [ 1731 2086 "arm" 1732 2087 ], ··· 1737 2092 "linux" 1738 2093 ], 1739 2094 "engines": { 1740 - "node": ">= 10" 2095 + "node": ">= 20" 1741 2096 } 1742 2097 }, 1743 2098 "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1744 - "version": "4.1.18", 1745 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", 1746 - "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", 2099 + "version": "4.3.1", 2100 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", 2101 + "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", 1747 2102 "cpu": [ 1748 2103 "arm64" 1749 2104 ], 1750 2105 "dev": true, 2106 + "libc": [ 2107 + "glibc" 2108 + ], 1751 2109 "license": "MIT", 1752 2110 "optional": true, 1753 2111 "os": [ 1754 2112 "linux" 1755 2113 ], 1756 2114 "engines": { 1757 - "node": ">= 10" 2115 + "node": ">= 20" 1758 2116 } 1759 2117 }, 1760 2118 "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1761 - "version": "4.1.18", 1762 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", 1763 - "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", 2119 + "version": "4.3.1", 2120 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", 2121 + "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", 1764 2122 "cpu": [ 1765 2123 "arm64" 1766 2124 ], 1767 2125 "dev": true, 2126 + "libc": [ 2127 + "musl" 2128 + ], 1768 2129 "license": "MIT", 1769 2130 "optional": true, 1770 2131 "os": [ 1771 2132 "linux" 1772 2133 ], 1773 2134 "engines": { 1774 - "node": ">= 10" 2135 + "node": ">= 20" 1775 2136 } 1776 2137 }, 1777 2138 "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1778 - "version": "4.1.18", 1779 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", 1780 - "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", 2139 + "version": "4.3.1", 2140 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", 2141 + "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", 1781 2142 "cpu": [ 1782 2143 "x64" 1783 2144 ], 1784 2145 "dev": true, 2146 + "libc": [ 2147 + "glibc" 2148 + ], 1785 2149 "license": "MIT", 1786 2150 "optional": true, 1787 2151 "os": [ 1788 2152 "linux" 1789 2153 ], 1790 2154 "engines": { 1791 - "node": ">= 10" 2155 + "node": ">= 20" 1792 2156 } 1793 2157 }, 1794 2158 "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1795 - "version": "4.1.18", 1796 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", 1797 - "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", 2159 + "version": "4.3.1", 2160 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", 2161 + "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", 1798 2162 "cpu": [ 1799 2163 "x64" 1800 2164 ], 1801 2165 "dev": true, 2166 + "libc": [ 2167 + "musl" 2168 + ], 1802 2169 "license": "MIT", 1803 2170 "optional": true, 1804 2171 "os": [ 1805 2172 "linux" 1806 2173 ], 1807 2174 "engines": { 1808 - "node": ">= 10" 2175 + "node": ">= 20" 1809 2176 } 1810 2177 }, 1811 2178 "node_modules/@tailwindcss/oxide-wasm32-wasi": { 1812 - "version": "4.1.18", 1813 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", 1814 - "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", 2179 + "version": "4.3.1", 2180 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", 2181 + "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", 1815 2182 "bundleDependencies": [ 1816 2183 "@napi-rs/wasm-runtime", 1817 2184 "@emnapi/core", ··· 1827 2194 "license": "MIT", 1828 2195 "optional": true, 1829 2196 "dependencies": { 1830 - "@emnapi/core": "^1.7.1", 1831 - "@emnapi/runtime": "^1.7.1", 1832 - "@emnapi/wasi-threads": "^1.1.0", 1833 - "@napi-rs/wasm-runtime": "^1.1.0", 1834 - "@tybys/wasm-util": "^0.10.1", 1835 - "tslib": "^2.4.0" 2197 + "@emnapi/core": "^1.10.0", 2198 + "@emnapi/runtime": "^1.10.0", 2199 + "@emnapi/wasi-threads": "^1.2.1", 2200 + "@napi-rs/wasm-runtime": "^1.1.4", 2201 + "@tybys/wasm-util": "^0.10.2", 2202 + "tslib": "^2.8.1" 1836 2203 }, 1837 2204 "engines": { 1838 2205 "node": ">=14.0.0" 1839 2206 } 1840 2207 }, 1841 2208 "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 1842 - "version": "4.1.18", 1843 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", 1844 - "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", 2209 + "version": "4.3.1", 2210 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", 2211 + "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", 1845 2212 "cpu": [ 1846 2213 "arm64" 1847 2214 ], ··· 1852 2219 "win32" 1853 2220 ], 1854 2221 "engines": { 1855 - "node": ">= 10" 2222 + "node": ">= 20" 1856 2223 } 1857 2224 }, 1858 2225 "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1859 - "version": "4.1.18", 1860 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", 1861 - "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", 2226 + "version": "4.3.1", 2227 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", 2228 + "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", 1862 2229 "cpu": [ 1863 2230 "x64" 1864 2231 ], ··· 1869 2236 "win32" 1870 2237 ], 1871 2238 "engines": { 1872 - "node": ">= 10" 2239 + "node": ">= 20" 1873 2240 } 1874 2241 }, 1875 2242 "node_modules/@tailwindcss/vite": { 1876 - "version": "4.1.18", 1877 - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz", 1878 - "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==", 2243 + "version": "4.3.1", 2244 + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.1.tgz", 2245 + "integrity": "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==", 1879 2246 "dev": true, 1880 2247 "license": "MIT", 1881 2248 "dependencies": { 1882 - "@tailwindcss/node": "4.1.18", 1883 - "@tailwindcss/oxide": "4.1.18", 1884 - "tailwindcss": "4.1.18" 2249 + "@tailwindcss/node": "4.3.1", 2250 + "@tailwindcss/oxide": "4.3.1", 2251 + "tailwindcss": "4.3.1" 1885 2252 }, 1886 2253 "peerDependencies": { 1887 - "vite": "^5.2.0 || ^6 || ^7" 2254 + "vite": "^5.2.0 || ^6 || ^7 || ^8" 1888 2255 } 1889 2256 }, 1890 - "node_modules/@types/babel__core": { 1891 - "version": "7.20.5", 1892 - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 1893 - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 1894 - "dev": true, 2257 + "node_modules/@tybys/wasm-util": { 2258 + "version": "0.10.2", 2259 + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", 2260 + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", 1895 2261 "license": "MIT", 2262 + "optional": true, 1896 2263 "dependencies": { 1897 - "@babel/parser": "^7.20.7", 1898 - "@babel/types": "^7.20.7", 1899 - "@types/babel__generator": "*", 1900 - "@types/babel__template": "*", 1901 - "@types/babel__traverse": "*" 2264 + "tslib": "^2.4.0" 1902 2265 } 1903 2266 }, 1904 - "node_modules/@types/babel__generator": { 1905 - "version": "7.27.0", 1906 - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", 1907 - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", 1908 - "dev": true, 1909 - "license": "MIT", 1910 - "dependencies": { 1911 - "@babel/types": "^7.0.0" 1912 - } 2267 + "node_modules/@types/estree": { 2268 + "version": "1.0.8", 2269 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 2270 + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 2271 + "license": "MIT" 1913 2272 }, 1914 - "node_modules/@types/babel__template": { 1915 - "version": "7.4.4", 1916 - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 1917 - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 1918 - "dev": true, 2273 + "node_modules/@types/estree-jsx": { 2274 + "version": "1.0.5", 2275 + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", 2276 + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", 1919 2277 "license": "MIT", 1920 2278 "dependencies": { 1921 - "@babel/parser": "^7.1.0", 1922 - "@babel/types": "^7.0.0" 2279 + "@types/estree": "*" 1923 2280 } 1924 2281 }, 1925 - "node_modules/@types/babel__traverse": { 1926 - "version": "7.28.0", 1927 - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", 1928 - "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", 1929 - "dev": true, 2282 + "node_modules/@types/hast": { 2283 + "version": "3.0.4", 2284 + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", 2285 + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", 1930 2286 "license": "MIT", 1931 2287 "dependencies": { 1932 - "@babel/types": "^7.28.2" 2288 + "@types/unist": "*" 1933 2289 } 1934 2290 }, 1935 - "node_modules/@types/estree": { 1936 - "version": "1.0.8", 1937 - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", 1938 - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", 1939 - "dev": true, 1940 - "license": "MIT" 1941 - }, 1942 2291 "node_modules/@types/json-schema": { 1943 2292 "version": "7.0.15", 1944 2293 "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", ··· 1946 2295 "dev": true, 1947 2296 "license": "MIT" 1948 2297 }, 1949 - "node_modules/@types/node": { 1950 - "version": "24.10.9", 1951 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz", 1952 - "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==", 1953 - "dev": true, 2298 + "node_modules/@types/mdast": { 2299 + "version": "4.0.4", 2300 + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", 2301 + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", 2302 + "license": "MIT", 2303 + "dependencies": { 2304 + "@types/unist": "*" 2305 + } 2306 + }, 2307 + "node_modules/@types/nlcst": { 2308 + "version": "2.0.3", 2309 + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", 2310 + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", 1954 2311 "license": "MIT", 1955 2312 "dependencies": { 1956 - "undici-types": "~7.16.0" 2313 + "@types/unist": "*" 1957 2314 } 1958 2315 }, 1959 - "node_modules/@types/react": { 1960 - "version": "19.2.9", 1961 - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.9.tgz", 1962 - "integrity": "sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==", 1963 - "dev": true, 2316 + "node_modules/@types/node": { 2317 + "version": "26.0.0", 2318 + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz", 2319 + "integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==", 1964 2320 "license": "MIT", 1965 2321 "dependencies": { 1966 - "csstype": "^3.2.2" 2322 + "undici-types": "~8.3.0" 1967 2323 } 1968 2324 }, 1969 - "node_modules/@types/react-dom": { 1970 - "version": "19.2.3", 1971 - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", 1972 - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", 1973 - "dev": true, 2325 + "node_modules/@types/sax": { 2326 + "version": "1.2.7", 2327 + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", 2328 + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", 1974 2329 "license": "MIT", 1975 - "peerDependencies": { 1976 - "@types/react": "^19.2.0" 2330 + "dependencies": { 2331 + "@types/node": "*" 1977 2332 } 2333 + }, 2334 + "node_modules/@types/unist": { 2335 + "version": "3.0.3", 2336 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", 2337 + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", 2338 + "license": "MIT" 1978 2339 }, 1979 2340 "node_modules/@typescript-eslint/eslint-plugin": { 1980 - "version": "8.53.1", 1981 - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.1.tgz", 1982 - "integrity": "sha512-cFYYFZ+oQFi6hUnBTbLRXfTJiaQtYE3t4O692agbBl+2Zy+eqSKWtPjhPXJu1G7j4RLjKgeJPDdq3EqOwmX5Ag==", 2341 + "version": "8.61.1", 2342 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.61.1.tgz", 2343 + "integrity": "sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==", 1983 2344 "dev": true, 1984 2345 "license": "MIT", 1985 2346 "dependencies": { 1986 2347 "@eslint-community/regexpp": "^4.12.2", 1987 - "@typescript-eslint/scope-manager": "8.53.1", 1988 - "@typescript-eslint/type-utils": "8.53.1", 1989 - "@typescript-eslint/utils": "8.53.1", 1990 - "@typescript-eslint/visitor-keys": "8.53.1", 2348 + "@typescript-eslint/scope-manager": "8.61.1", 2349 + "@typescript-eslint/type-utils": "8.61.1", 2350 + "@typescript-eslint/utils": "8.61.1", 2351 + "@typescript-eslint/visitor-keys": "8.61.1", 1991 2352 "ignore": "^7.0.5", 1992 2353 "natural-compare": "^1.4.0", 1993 - "ts-api-utils": "^2.4.0" 2354 + "ts-api-utils": "^2.5.0" 1994 2355 }, 1995 2356 "engines": { 1996 2357 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2000 2361 "url": "https://opencollective.com/typescript-eslint" 2001 2362 }, 2002 2363 "peerDependencies": { 2003 - "@typescript-eslint/parser": "^8.53.1", 2004 - "eslint": "^8.57.0 || ^9.0.0", 2005 - "typescript": ">=4.8.4 <6.0.0" 2364 + "@typescript-eslint/parser": "^8.61.1", 2365 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 2366 + "typescript": ">=4.8.4 <6.1.0" 2006 2367 } 2007 2368 }, 2008 2369 "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { ··· 2016 2377 } 2017 2378 }, 2018 2379 "node_modules/@typescript-eslint/parser": { 2019 - "version": "8.53.1", 2020 - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.1.tgz", 2021 - "integrity": "sha512-nm3cvFN9SqZGXjmw5bZ6cGmvJSyJPn0wU9gHAZZHDnZl2wF9PhHv78Xf06E0MaNk4zLVHL8hb2/c32XvyJOLQg==", 2380 + "version": "8.61.1", 2381 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.61.1.tgz", 2382 + "integrity": "sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==", 2022 2383 "dev": true, 2023 2384 "license": "MIT", 2024 2385 "dependencies": { 2025 - "@typescript-eslint/scope-manager": "8.53.1", 2026 - "@typescript-eslint/types": "8.53.1", 2027 - "@typescript-eslint/typescript-estree": "8.53.1", 2028 - "@typescript-eslint/visitor-keys": "8.53.1", 2386 + "@typescript-eslint/scope-manager": "8.61.1", 2387 + "@typescript-eslint/types": "8.61.1", 2388 + "@typescript-eslint/typescript-estree": "8.61.1", 2389 + "@typescript-eslint/visitor-keys": "8.61.1", 2029 2390 "debug": "^4.4.3" 2030 2391 }, 2031 2392 "engines": { ··· 2036 2397 "url": "https://opencollective.com/typescript-eslint" 2037 2398 }, 2038 2399 "peerDependencies": { 2039 - "eslint": "^8.57.0 || ^9.0.0", 2040 - "typescript": ">=4.8.4 <6.0.0" 2400 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 2401 + "typescript": ">=4.8.4 <6.1.0" 2041 2402 } 2042 2403 }, 2043 2404 "node_modules/@typescript-eslint/project-service": { 2044 - "version": "8.53.1", 2045 - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.1.tgz", 2046 - "integrity": "sha512-WYC4FB5Ra0xidsmlPb+1SsnaSKPmS3gsjIARwbEkHkoWloQmuzcfypljaJcR78uyLA1h8sHdWWPHSLDI+MtNog==", 2405 + "version": "8.61.1", 2406 + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.61.1.tgz", 2407 + "integrity": "sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==", 2047 2408 "dev": true, 2048 2409 "license": "MIT", 2049 2410 "dependencies": { 2050 - "@typescript-eslint/tsconfig-utils": "^8.53.1", 2051 - "@typescript-eslint/types": "^8.53.1", 2411 + "@typescript-eslint/tsconfig-utils": "^8.61.1", 2412 + "@typescript-eslint/types": "^8.61.1", 2052 2413 "debug": "^4.4.3" 2053 2414 }, 2054 2415 "engines": { ··· 2059 2420 "url": "https://opencollective.com/typescript-eslint" 2060 2421 }, 2061 2422 "peerDependencies": { 2062 - "typescript": ">=4.8.4 <6.0.0" 2423 + "typescript": ">=4.8.4 <6.1.0" 2063 2424 } 2064 2425 }, 2065 2426 "node_modules/@typescript-eslint/scope-manager": { 2066 - "version": "8.53.1", 2067 - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.1.tgz", 2068 - "integrity": "sha512-Lu23yw1uJMFY8cUeq7JlrizAgeQvWugNQzJp8C3x8Eo5Jw5Q2ykMdiiTB9vBVOOUBysMzmRRmUfwFrZuI2C4SQ==", 2427 + "version": "8.61.1", 2428 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.61.1.tgz", 2429 + "integrity": "sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==", 2069 2430 "dev": true, 2070 2431 "license": "MIT", 2071 2432 "dependencies": { 2072 - "@typescript-eslint/types": "8.53.1", 2073 - "@typescript-eslint/visitor-keys": "8.53.1" 2433 + "@typescript-eslint/types": "8.61.1", 2434 + "@typescript-eslint/visitor-keys": "8.61.1" 2074 2435 }, 2075 2436 "engines": { 2076 2437 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2081 2442 } 2082 2443 }, 2083 2444 "node_modules/@typescript-eslint/tsconfig-utils": { 2084 - "version": "8.53.1", 2085 - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.1.tgz", 2086 - "integrity": "sha512-qfvLXS6F6b1y43pnf0pPbXJ+YoXIC7HKg0UGZ27uMIemKMKA6XH2DTxsEDdpdN29D+vHV07x/pnlPNVLhdhWiA==", 2445 + "version": "8.61.1", 2446 + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.61.1.tgz", 2447 + "integrity": "sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==", 2087 2448 "dev": true, 2088 2449 "license": "MIT", 2089 2450 "engines": { ··· 2094 2455 "url": "https://opencollective.com/typescript-eslint" 2095 2456 }, 2096 2457 "peerDependencies": { 2097 - "typescript": ">=4.8.4 <6.0.0" 2458 + "typescript": ">=4.8.4 <6.1.0" 2098 2459 } 2099 2460 }, 2100 2461 "node_modules/@typescript-eslint/type-utils": { 2101 - "version": "8.53.1", 2102 - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.1.tgz", 2103 - "integrity": "sha512-MOrdtNvyhy0rHyv0ENzub1d4wQYKb2NmIqG7qEqPWFW7Mpy2jzFC3pQ2yKDvirZB7jypm5uGjF2Qqs6OIqu47w==", 2462 + "version": "8.61.1", 2463 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.61.1.tgz", 2464 + "integrity": "sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==", 2104 2465 "dev": true, 2105 2466 "license": "MIT", 2106 2467 "dependencies": { 2107 - "@typescript-eslint/types": "8.53.1", 2108 - "@typescript-eslint/typescript-estree": "8.53.1", 2109 - "@typescript-eslint/utils": "8.53.1", 2468 + "@typescript-eslint/types": "8.61.1", 2469 + "@typescript-eslint/typescript-estree": "8.61.1", 2470 + "@typescript-eslint/utils": "8.61.1", 2110 2471 "debug": "^4.4.3", 2111 - "ts-api-utils": "^2.4.0" 2472 + "ts-api-utils": "^2.5.0" 2112 2473 }, 2113 2474 "engines": { 2114 2475 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2118 2479 "url": "https://opencollective.com/typescript-eslint" 2119 2480 }, 2120 2481 "peerDependencies": { 2121 - "eslint": "^8.57.0 || ^9.0.0", 2122 - "typescript": ">=4.8.4 <6.0.0" 2482 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 2483 + "typescript": ">=4.8.4 <6.1.0" 2123 2484 } 2124 2485 }, 2125 2486 "node_modules/@typescript-eslint/types": { 2126 - "version": "8.53.1", 2127 - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.1.tgz", 2128 - "integrity": "sha512-jr/swrr2aRmUAUjW5/zQHbMaui//vQlsZcJKijZf3M26bnmLj8LyZUpj8/Rd6uzaek06OWsqdofN/Thenm5O8A==", 2487 + "version": "8.61.1", 2488 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.61.1.tgz", 2489 + "integrity": "sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==", 2129 2490 "dev": true, 2130 2491 "license": "MIT", 2131 2492 "engines": { ··· 2137 2498 } 2138 2499 }, 2139 2500 "node_modules/@typescript-eslint/typescript-estree": { 2140 - "version": "8.53.1", 2141 - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.1.tgz", 2142 - "integrity": "sha512-RGlVipGhQAG4GxV1s34O91cxQ/vWiHJTDHbXRr0li2q/BGg3RR/7NM8QDWgkEgrwQYCvmJV9ichIwyoKCQ+DTg==", 2501 + "version": "8.61.1", 2502 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.61.1.tgz", 2503 + "integrity": "sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==", 2143 2504 "dev": true, 2144 2505 "license": "MIT", 2145 2506 "dependencies": { 2146 - "@typescript-eslint/project-service": "8.53.1", 2147 - "@typescript-eslint/tsconfig-utils": "8.53.1", 2148 - "@typescript-eslint/types": "8.53.1", 2149 - "@typescript-eslint/visitor-keys": "8.53.1", 2507 + "@typescript-eslint/project-service": "8.61.1", 2508 + "@typescript-eslint/tsconfig-utils": "8.61.1", 2509 + "@typescript-eslint/types": "8.61.1", 2510 + "@typescript-eslint/visitor-keys": "8.61.1", 2150 2511 "debug": "^4.4.3", 2151 - "minimatch": "^9.0.5", 2512 + "minimatch": "^10.2.2", 2152 2513 "semver": "^7.7.3", 2153 2514 "tinyglobby": "^0.2.15", 2154 - "ts-api-utils": "^2.4.0" 2515 + "ts-api-utils": "^2.5.0" 2155 2516 }, 2156 2517 "engines": { 2157 2518 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2161 2522 "url": "https://opencollective.com/typescript-eslint" 2162 2523 }, 2163 2524 "peerDependencies": { 2164 - "typescript": ">=4.8.4 <6.0.0" 2525 + "typescript": ">=4.8.4 <6.1.0" 2526 + } 2527 + }, 2528 + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { 2529 + "version": "4.0.4", 2530 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 2531 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 2532 + "dev": true, 2533 + "license": "MIT", 2534 + "engines": { 2535 + "node": "18 || 20 || >=22" 2165 2536 } 2166 2537 }, 2167 2538 "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { 2168 - "version": "2.0.2", 2169 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", 2170 - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", 2539 + "version": "5.0.6", 2540 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", 2541 + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", 2171 2542 "dev": true, 2172 2543 "license": "MIT", 2173 2544 "dependencies": { 2174 - "balanced-match": "^1.0.0" 2545 + "balanced-match": "^4.0.2" 2546 + }, 2547 + "engines": { 2548 + "node": "18 || 20 || >=22" 2175 2549 } 2176 2550 }, 2177 2551 "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { 2178 - "version": "9.0.5", 2179 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 2180 - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 2552 + "version": "10.2.5", 2553 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", 2554 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", 2181 2555 "dev": true, 2182 - "license": "ISC", 2556 + "license": "BlueOak-1.0.0", 2183 2557 "dependencies": { 2184 - "brace-expansion": "^2.0.1" 2558 + "brace-expansion": "^5.0.5" 2185 2559 }, 2186 2560 "engines": { 2187 - "node": ">=16 || 14 >=14.17" 2561 + "node": "18 || 20 || >=22" 2188 2562 }, 2189 2563 "funding": { 2190 2564 "url": "https://github.com/sponsors/isaacs" 2191 2565 } 2192 2566 }, 2193 - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { 2194 - "version": "7.7.3", 2195 - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 2196 - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 2197 - "dev": true, 2198 - "license": "ISC", 2199 - "bin": { 2200 - "semver": "bin/semver.js" 2201 - }, 2202 - "engines": { 2203 - "node": ">=10" 2204 - } 2205 - }, 2206 2567 "node_modules/@typescript-eslint/utils": { 2207 - "version": "8.53.1", 2208 - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.1.tgz", 2209 - "integrity": "sha512-c4bMvGVWW4hv6JmDUEG7fSYlWOl3II2I4ylt0NM+seinYQlZMQIaKaXIIVJWt9Ofh6whrpM+EdDQXKXjNovvrg==", 2568 + "version": "8.61.1", 2569 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.61.1.tgz", 2570 + "integrity": "sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==", 2210 2571 "dev": true, 2211 2572 "license": "MIT", 2212 2573 "dependencies": { 2213 2574 "@eslint-community/eslint-utils": "^4.9.1", 2214 - "@typescript-eslint/scope-manager": "8.53.1", 2215 - "@typescript-eslint/types": "8.53.1", 2216 - "@typescript-eslint/typescript-estree": "8.53.1" 2575 + "@typescript-eslint/scope-manager": "8.61.1", 2576 + "@typescript-eslint/types": "8.61.1", 2577 + "@typescript-eslint/typescript-estree": "8.61.1" 2217 2578 }, 2218 2579 "engines": { 2219 2580 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2223 2584 "url": "https://opencollective.com/typescript-eslint" 2224 2585 }, 2225 2586 "peerDependencies": { 2226 - "eslint": "^8.57.0 || ^9.0.0", 2227 - "typescript": ">=4.8.4 <6.0.0" 2587 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 2588 + "typescript": ">=4.8.4 <6.1.0" 2228 2589 } 2229 2590 }, 2230 2591 "node_modules/@typescript-eslint/visitor-keys": { 2231 - "version": "8.53.1", 2232 - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.1.tgz", 2233 - "integrity": "sha512-oy+wV7xDKFPRyNggmXuZQSBzvoLnpmJs+GhzRhPjrxl2b/jIlyjVokzm47CZCDUdXKr2zd7ZLodPfOBpOPyPlg==", 2592 + "version": "8.61.1", 2593 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.61.1.tgz", 2594 + "integrity": "sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==", 2234 2595 "dev": true, 2235 2596 "license": "MIT", 2236 2597 "dependencies": { 2237 - "@typescript-eslint/types": "8.53.1", 2238 - "eslint-visitor-keys": "^4.2.1" 2598 + "@typescript-eslint/types": "8.61.1", 2599 + "eslint-visitor-keys": "^5.0.0" 2239 2600 }, 2240 2601 "engines": { 2241 2602 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 2245 2606 "url": "https://opencollective.com/typescript-eslint" 2246 2607 } 2247 2608 }, 2248 - "node_modules/@vitejs/plugin-react": { 2249 - "version": "5.1.2", 2250 - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz", 2251 - "integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==", 2609 + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 2610 + "version": "5.0.1", 2611 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", 2612 + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", 2252 2613 "dev": true, 2253 - "license": "MIT", 2254 - "dependencies": { 2255 - "@babel/core": "^7.28.5", 2256 - "@babel/plugin-transform-react-jsx-self": "^7.27.1", 2257 - "@babel/plugin-transform-react-jsx-source": "^7.27.1", 2258 - "@rolldown/pluginutils": "1.0.0-beta.53", 2259 - "@types/babel__core": "^7.20.5", 2260 - "react-refresh": "^0.18.0" 2261 - }, 2614 + "license": "Apache-2.0", 2262 2615 "engines": { 2263 - "node": "^20.19.0 || >=22.12.0" 2616 + "node": "^20.19.0 || ^22.13.0 || >=24" 2264 2617 }, 2265 - "peerDependencies": { 2266 - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" 2618 + "funding": { 2619 + "url": "https://opencollective.com/eslint" 2267 2620 } 2268 2621 }, 2622 + "node_modules/@ungap/structured-clone": { 2623 + "version": "1.3.1", 2624 + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", 2625 + "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", 2626 + "license": "ISC" 2627 + }, 2269 2628 "node_modules/acorn": { 2270 - "version": "8.15.0", 2271 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", 2272 - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", 2629 + "version": "8.17.0", 2630 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", 2631 + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", 2273 2632 "dev": true, 2274 2633 "license": "MIT", 2275 2634 "bin": { ··· 2290 2649 } 2291 2650 }, 2292 2651 "node_modules/ajv": { 2293 - "version": "6.12.6", 2294 - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 2295 - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 2652 + "version": "6.15.0", 2653 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", 2654 + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", 2296 2655 "dev": true, 2297 2656 "license": "MIT", 2298 2657 "dependencies": { ··· 2306 2665 "url": "https://github.com/sponsors/epoberezkin" 2307 2666 } 2308 2667 }, 2668 + "node_modules/am-i-vibing": { 2669 + "version": "0.3.0", 2670 + "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.3.0.tgz", 2671 + "integrity": "sha512-JTg9e3qPmVP6x8PG9/J4+eCVP6sGx9oS1pSbgf7fpPVlkHzQdRPSNMb6dBlp9BrdBNxDkctMzehPVYSnt16k4w==", 2672 + "license": "MIT", 2673 + "dependencies": { 2674 + "process-ancestry": "^0.1.0" 2675 + }, 2676 + "bin": { 2677 + "am-i-vibing": "dist/cli.mjs" 2678 + } 2679 + }, 2309 2680 "node_modules/ansi-styles": { 2310 2681 "version": "4.3.0", 2311 2682 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", ··· 2322 2693 "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2323 2694 } 2324 2695 }, 2696 + "node_modules/anymatch": { 2697 + "version": "3.1.3", 2698 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 2699 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 2700 + "license": "ISC", 2701 + "dependencies": { 2702 + "normalize-path": "^3.0.0", 2703 + "picomatch": "^2.0.4" 2704 + }, 2705 + "engines": { 2706 + "node": ">= 8" 2707 + } 2708 + }, 2709 + "node_modules/anymatch/node_modules/picomatch": { 2710 + "version": "2.3.2", 2711 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", 2712 + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", 2713 + "license": "MIT", 2714 + "engines": { 2715 + "node": ">=8.6" 2716 + }, 2717 + "funding": { 2718 + "url": "https://github.com/sponsors/jonschlinkert" 2719 + } 2720 + }, 2721 + "node_modules/arg": { 2722 + "version": "5.0.2", 2723 + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 2724 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 2725 + "license": "MIT" 2726 + }, 2325 2727 "node_modules/argparse": { 2326 2728 "version": "2.0.1", 2327 2729 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2328 2730 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 2329 - "dev": true, 2330 2731 "license": "Python-2.0" 2331 2732 }, 2733 + "node_modules/aria-query": { 2734 + "version": "5.3.2", 2735 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 2736 + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 2737 + "license": "Apache-2.0", 2738 + "engines": { 2739 + "node": ">= 0.4" 2740 + } 2741 + }, 2742 + "node_modules/astro": { 2743 + "version": "7.0.0", 2744 + "resolved": "https://registry.npmjs.org/astro/-/astro-7.0.0.tgz", 2745 + "integrity": "sha512-ZhsKmnS1V4Bik3Rupl2GA3fRNNVEgQW1Twif7MjKBjGC2qkJFMdAaCVaEwFXlhy9NFRTwcQZlUevWCK+2G2PBQ==", 2746 + "license": "MIT", 2747 + "dependencies": { 2748 + "@astrojs/compiler-rs": "^0.2.2", 2749 + "@astrojs/internal-helpers": "0.10.0", 2750 + "@astrojs/markdown-satteri": "0.3.1", 2751 + "@astrojs/telemetry": "3.3.2", 2752 + "@capsizecss/unpack": "^4.0.0", 2753 + "@clack/prompts": "^1.1.0", 2754 + "@oslojs/encoding": "^1.1.0", 2755 + "@rollup/pluginutils": "^5.3.0", 2756 + "am-i-vibing": "^0.3.0", 2757 + "aria-query": "^5.3.2", 2758 + "axobject-query": "^4.1.0", 2759 + "ci-info": "^4.4.0", 2760 + "clsx": "^2.1.1", 2761 + "common-ancestor-path": "^2.0.0", 2762 + "cookie": "^1.1.1", 2763 + "devalue": "^5.8.1", 2764 + "diff": "^8.0.3", 2765 + "dset": "^3.1.4", 2766 + "es-module-lexer": "^2.0.0", 2767 + "esbuild": "^0.28.0", 2768 + "flattie": "^1.1.1", 2769 + "fontace": "~0.4.1", 2770 + "get-tsconfig": "5.0.0-beta.4", 2771 + "github-slugger": "^2.0.0", 2772 + "html-escaper": "3.0.3", 2773 + "http-cache-semantics": "^4.2.0", 2774 + "js-yaml": "^4.1.1", 2775 + "jsonc-parser": "^3.3.1", 2776 + "magic-string": "^0.30.21", 2777 + "magicast": "^0.5.2", 2778 + "mrmime": "^2.0.1", 2779 + "neotraverse": "^0.6.18", 2780 + "obug": "^2.1.1", 2781 + "p-limit": "^7.3.0", 2782 + "p-queue": "^9.1.0", 2783 + "package-manager-detector": "^1.6.0", 2784 + "piccolore": "^0.1.3", 2785 + "picomatch": "^4.0.4", 2786 + "rehype": "^13.0.2", 2787 + "semver": "^7.7.4", 2788 + "shiki": "^4.0.2", 2789 + "smol-toml": "^1.6.0", 2790 + "svgo": "^4.0.1", 2791 + "tinyclip": "^0.1.12", 2792 + "tinyexec": "^1.0.4", 2793 + "tinyglobby": "^0.2.15", 2794 + "ultrahtml": "^1.6.0", 2795 + "unifont": "~0.7.4", 2796 + "unist-util-visit": "^5.1.0", 2797 + "unstorage": "^1.17.5", 2798 + "vfile": "^6.0.3", 2799 + "vite": "^8.0.13", 2800 + "vitefu": "^1.1.2", 2801 + "xxhash-wasm": "^1.1.0", 2802 + "yargs-parser": "^22.0.0", 2803 + "zod": "^4.3.6" 2804 + }, 2805 + "bin": { 2806 + "astro": "bin/astro.mjs" 2807 + }, 2808 + "engines": { 2809 + "node": ">=22.12.0", 2810 + "npm": ">=9.6.5", 2811 + "pnpm": ">=7.1.0" 2812 + }, 2813 + "funding": { 2814 + "type": "opencollective", 2815 + "url": "https://opencollective.com/astrodotbuild" 2816 + }, 2817 + "optionalDependencies": { 2818 + "sharp": "^0.34.0" 2819 + }, 2820 + "peerDependencies": { 2821 + "@astrojs/markdown-remark": "7.2.0" 2822 + }, 2823 + "peerDependenciesMeta": { 2824 + "@astrojs/markdown-remark": { 2825 + "optional": true 2826 + } 2827 + } 2828 + }, 2829 + "node_modules/astro/node_modules/@esbuild/aix-ppc64": { 2830 + "version": "0.28.1", 2831 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", 2832 + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", 2833 + "cpu": [ 2834 + "ppc64" 2835 + ], 2836 + "license": "MIT", 2837 + "optional": true, 2838 + "os": [ 2839 + "aix" 2840 + ], 2841 + "engines": { 2842 + "node": ">=18" 2843 + } 2844 + }, 2845 + "node_modules/astro/node_modules/@esbuild/android-arm": { 2846 + "version": "0.28.1", 2847 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", 2848 + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", 2849 + "cpu": [ 2850 + "arm" 2851 + ], 2852 + "license": "MIT", 2853 + "optional": true, 2854 + "os": [ 2855 + "android" 2856 + ], 2857 + "engines": { 2858 + "node": ">=18" 2859 + } 2860 + }, 2861 + "node_modules/astro/node_modules/@esbuild/android-arm64": { 2862 + "version": "0.28.1", 2863 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", 2864 + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", 2865 + "cpu": [ 2866 + "arm64" 2867 + ], 2868 + "license": "MIT", 2869 + "optional": true, 2870 + "os": [ 2871 + "android" 2872 + ], 2873 + "engines": { 2874 + "node": ">=18" 2875 + } 2876 + }, 2877 + "node_modules/astro/node_modules/@esbuild/android-x64": { 2878 + "version": "0.28.1", 2879 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", 2880 + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", 2881 + "cpu": [ 2882 + "x64" 2883 + ], 2884 + "license": "MIT", 2885 + "optional": true, 2886 + "os": [ 2887 + "android" 2888 + ], 2889 + "engines": { 2890 + "node": ">=18" 2891 + } 2892 + }, 2893 + "node_modules/astro/node_modules/@esbuild/darwin-arm64": { 2894 + "version": "0.28.1", 2895 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", 2896 + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", 2897 + "cpu": [ 2898 + "arm64" 2899 + ], 2900 + "license": "MIT", 2901 + "optional": true, 2902 + "os": [ 2903 + "darwin" 2904 + ], 2905 + "engines": { 2906 + "node": ">=18" 2907 + } 2908 + }, 2909 + "node_modules/astro/node_modules/@esbuild/darwin-x64": { 2910 + "version": "0.28.1", 2911 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", 2912 + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", 2913 + "cpu": [ 2914 + "x64" 2915 + ], 2916 + "license": "MIT", 2917 + "optional": true, 2918 + "os": [ 2919 + "darwin" 2920 + ], 2921 + "engines": { 2922 + "node": ">=18" 2923 + } 2924 + }, 2925 + "node_modules/astro/node_modules/@esbuild/freebsd-arm64": { 2926 + "version": "0.28.1", 2927 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", 2928 + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", 2929 + "cpu": [ 2930 + "arm64" 2931 + ], 2932 + "license": "MIT", 2933 + "optional": true, 2934 + "os": [ 2935 + "freebsd" 2936 + ], 2937 + "engines": { 2938 + "node": ">=18" 2939 + } 2940 + }, 2941 + "node_modules/astro/node_modules/@esbuild/freebsd-x64": { 2942 + "version": "0.28.1", 2943 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", 2944 + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", 2945 + "cpu": [ 2946 + "x64" 2947 + ], 2948 + "license": "MIT", 2949 + "optional": true, 2950 + "os": [ 2951 + "freebsd" 2952 + ], 2953 + "engines": { 2954 + "node": ">=18" 2955 + } 2956 + }, 2957 + "node_modules/astro/node_modules/@esbuild/linux-arm": { 2958 + "version": "0.28.1", 2959 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", 2960 + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", 2961 + "cpu": [ 2962 + "arm" 2963 + ], 2964 + "license": "MIT", 2965 + "optional": true, 2966 + "os": [ 2967 + "linux" 2968 + ], 2969 + "engines": { 2970 + "node": ">=18" 2971 + } 2972 + }, 2973 + "node_modules/astro/node_modules/@esbuild/linux-arm64": { 2974 + "version": "0.28.1", 2975 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", 2976 + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", 2977 + "cpu": [ 2978 + "arm64" 2979 + ], 2980 + "license": "MIT", 2981 + "optional": true, 2982 + "os": [ 2983 + "linux" 2984 + ], 2985 + "engines": { 2986 + "node": ">=18" 2987 + } 2988 + }, 2989 + "node_modules/astro/node_modules/@esbuild/linux-ia32": { 2990 + "version": "0.28.1", 2991 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", 2992 + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", 2993 + "cpu": [ 2994 + "ia32" 2995 + ], 2996 + "license": "MIT", 2997 + "optional": true, 2998 + "os": [ 2999 + "linux" 3000 + ], 3001 + "engines": { 3002 + "node": ">=18" 3003 + } 3004 + }, 3005 + "node_modules/astro/node_modules/@esbuild/linux-loong64": { 3006 + "version": "0.28.1", 3007 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", 3008 + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", 3009 + "cpu": [ 3010 + "loong64" 3011 + ], 3012 + "license": "MIT", 3013 + "optional": true, 3014 + "os": [ 3015 + "linux" 3016 + ], 3017 + "engines": { 3018 + "node": ">=18" 3019 + } 3020 + }, 3021 + "node_modules/astro/node_modules/@esbuild/linux-mips64el": { 3022 + "version": "0.28.1", 3023 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", 3024 + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", 3025 + "cpu": [ 3026 + "mips64el" 3027 + ], 3028 + "license": "MIT", 3029 + "optional": true, 3030 + "os": [ 3031 + "linux" 3032 + ], 3033 + "engines": { 3034 + "node": ">=18" 3035 + } 3036 + }, 3037 + "node_modules/astro/node_modules/@esbuild/linux-ppc64": { 3038 + "version": "0.28.1", 3039 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", 3040 + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", 3041 + "cpu": [ 3042 + "ppc64" 3043 + ], 3044 + "license": "MIT", 3045 + "optional": true, 3046 + "os": [ 3047 + "linux" 3048 + ], 3049 + "engines": { 3050 + "node": ">=18" 3051 + } 3052 + }, 3053 + "node_modules/astro/node_modules/@esbuild/linux-riscv64": { 3054 + "version": "0.28.1", 3055 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", 3056 + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", 3057 + "cpu": [ 3058 + "riscv64" 3059 + ], 3060 + "license": "MIT", 3061 + "optional": true, 3062 + "os": [ 3063 + "linux" 3064 + ], 3065 + "engines": { 3066 + "node": ">=18" 3067 + } 3068 + }, 3069 + "node_modules/astro/node_modules/@esbuild/linux-s390x": { 3070 + "version": "0.28.1", 3071 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", 3072 + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", 3073 + "cpu": [ 3074 + "s390x" 3075 + ], 3076 + "license": "MIT", 3077 + "optional": true, 3078 + "os": [ 3079 + "linux" 3080 + ], 3081 + "engines": { 3082 + "node": ">=18" 3083 + } 3084 + }, 3085 + "node_modules/astro/node_modules/@esbuild/linux-x64": { 3086 + "version": "0.28.1", 3087 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", 3088 + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", 3089 + "cpu": [ 3090 + "x64" 3091 + ], 3092 + "license": "MIT", 3093 + "optional": true, 3094 + "os": [ 3095 + "linux" 3096 + ], 3097 + "engines": { 3098 + "node": ">=18" 3099 + } 3100 + }, 3101 + "node_modules/astro/node_modules/@esbuild/netbsd-arm64": { 3102 + "version": "0.28.1", 3103 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", 3104 + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", 3105 + "cpu": [ 3106 + "arm64" 3107 + ], 3108 + "license": "MIT", 3109 + "optional": true, 3110 + "os": [ 3111 + "netbsd" 3112 + ], 3113 + "engines": { 3114 + "node": ">=18" 3115 + } 3116 + }, 3117 + "node_modules/astro/node_modules/@esbuild/netbsd-x64": { 3118 + "version": "0.28.1", 3119 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", 3120 + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", 3121 + "cpu": [ 3122 + "x64" 3123 + ], 3124 + "license": "MIT", 3125 + "optional": true, 3126 + "os": [ 3127 + "netbsd" 3128 + ], 3129 + "engines": { 3130 + "node": ">=18" 3131 + } 3132 + }, 3133 + "node_modules/astro/node_modules/@esbuild/openbsd-arm64": { 3134 + "version": "0.28.1", 3135 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", 3136 + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", 3137 + "cpu": [ 3138 + "arm64" 3139 + ], 3140 + "license": "MIT", 3141 + "optional": true, 3142 + "os": [ 3143 + "openbsd" 3144 + ], 3145 + "engines": { 3146 + "node": ">=18" 3147 + } 3148 + }, 3149 + "node_modules/astro/node_modules/@esbuild/openbsd-x64": { 3150 + "version": "0.28.1", 3151 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", 3152 + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", 3153 + "cpu": [ 3154 + "x64" 3155 + ], 3156 + "license": "MIT", 3157 + "optional": true, 3158 + "os": [ 3159 + "openbsd" 3160 + ], 3161 + "engines": { 3162 + "node": ">=18" 3163 + } 3164 + }, 3165 + "node_modules/astro/node_modules/@esbuild/openharmony-arm64": { 3166 + "version": "0.28.1", 3167 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", 3168 + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", 3169 + "cpu": [ 3170 + "arm64" 3171 + ], 3172 + "license": "MIT", 3173 + "optional": true, 3174 + "os": [ 3175 + "openharmony" 3176 + ], 3177 + "engines": { 3178 + "node": ">=18" 3179 + } 3180 + }, 3181 + "node_modules/astro/node_modules/@esbuild/sunos-x64": { 3182 + "version": "0.28.1", 3183 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", 3184 + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", 3185 + "cpu": [ 3186 + "x64" 3187 + ], 3188 + "license": "MIT", 3189 + "optional": true, 3190 + "os": [ 3191 + "sunos" 3192 + ], 3193 + "engines": { 3194 + "node": ">=18" 3195 + } 3196 + }, 3197 + "node_modules/astro/node_modules/@esbuild/win32-arm64": { 3198 + "version": "0.28.1", 3199 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", 3200 + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", 3201 + "cpu": [ 3202 + "arm64" 3203 + ], 3204 + "license": "MIT", 3205 + "optional": true, 3206 + "os": [ 3207 + "win32" 3208 + ], 3209 + "engines": { 3210 + "node": ">=18" 3211 + } 3212 + }, 3213 + "node_modules/astro/node_modules/@esbuild/win32-ia32": { 3214 + "version": "0.28.1", 3215 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", 3216 + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", 3217 + "cpu": [ 3218 + "ia32" 3219 + ], 3220 + "license": "MIT", 3221 + "optional": true, 3222 + "os": [ 3223 + "win32" 3224 + ], 3225 + "engines": { 3226 + "node": ">=18" 3227 + } 3228 + }, 3229 + "node_modules/astro/node_modules/@esbuild/win32-x64": { 3230 + "version": "0.28.1", 3231 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", 3232 + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", 3233 + "cpu": [ 3234 + "x64" 3235 + ], 3236 + "license": "MIT", 3237 + "optional": true, 3238 + "os": [ 3239 + "win32" 3240 + ], 3241 + "engines": { 3242 + "node": ">=18" 3243 + } 3244 + }, 3245 + "node_modules/astro/node_modules/esbuild": { 3246 + "version": "0.28.1", 3247 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", 3248 + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", 3249 + "hasInstallScript": true, 3250 + "license": "MIT", 3251 + "bin": { 3252 + "esbuild": "bin/esbuild" 3253 + }, 3254 + "engines": { 3255 + "node": ">=18" 3256 + }, 3257 + "optionalDependencies": { 3258 + "@esbuild/aix-ppc64": "0.28.1", 3259 + "@esbuild/android-arm": "0.28.1", 3260 + "@esbuild/android-arm64": "0.28.1", 3261 + "@esbuild/android-x64": "0.28.1", 3262 + "@esbuild/darwin-arm64": "0.28.1", 3263 + "@esbuild/darwin-x64": "0.28.1", 3264 + "@esbuild/freebsd-arm64": "0.28.1", 3265 + "@esbuild/freebsd-x64": "0.28.1", 3266 + "@esbuild/linux-arm": "0.28.1", 3267 + "@esbuild/linux-arm64": "0.28.1", 3268 + "@esbuild/linux-ia32": "0.28.1", 3269 + "@esbuild/linux-loong64": "0.28.1", 3270 + "@esbuild/linux-mips64el": "0.28.1", 3271 + "@esbuild/linux-ppc64": "0.28.1", 3272 + "@esbuild/linux-riscv64": "0.28.1", 3273 + "@esbuild/linux-s390x": "0.28.1", 3274 + "@esbuild/linux-x64": "0.28.1", 3275 + "@esbuild/netbsd-arm64": "0.28.1", 3276 + "@esbuild/netbsd-x64": "0.28.1", 3277 + "@esbuild/openbsd-arm64": "0.28.1", 3278 + "@esbuild/openbsd-x64": "0.28.1", 3279 + "@esbuild/openharmony-arm64": "0.28.1", 3280 + "@esbuild/sunos-x64": "0.28.1", 3281 + "@esbuild/win32-arm64": "0.28.1", 3282 + "@esbuild/win32-ia32": "0.28.1", 3283 + "@esbuild/win32-x64": "0.28.1" 3284 + } 3285 + }, 3286 + "node_modules/astro/node_modules/p-limit": { 3287 + "version": "7.3.0", 3288 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.0.tgz", 3289 + "integrity": "sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==", 3290 + "license": "MIT", 3291 + "dependencies": { 3292 + "yocto-queue": "^1.2.1" 3293 + }, 3294 + "engines": { 3295 + "node": ">=20" 3296 + }, 3297 + "funding": { 3298 + "url": "https://github.com/sponsors/sindresorhus" 3299 + } 3300 + }, 3301 + "node_modules/astro/node_modules/yocto-queue": { 3302 + "version": "1.2.2", 3303 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", 3304 + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", 3305 + "license": "MIT", 3306 + "engines": { 3307 + "node": ">=12.20" 3308 + }, 3309 + "funding": { 3310 + "url": "https://github.com/sponsors/sindresorhus" 3311 + } 3312 + }, 3313 + "node_modules/axobject-query": { 3314 + "version": "4.1.0", 3315 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 3316 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 3317 + "license": "Apache-2.0", 3318 + "engines": { 3319 + "node": ">= 0.4" 3320 + } 3321 + }, 3322 + "node_modules/bail": { 3323 + "version": "2.0.2", 3324 + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", 3325 + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", 3326 + "license": "MIT", 3327 + "funding": { 3328 + "type": "github", 3329 + "url": "https://github.com/sponsors/wooorm" 3330 + } 3331 + }, 2332 3332 "node_modules/balanced-match": { 2333 3333 "version": "1.0.2", 2334 3334 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", ··· 2346 3346 "node": ">= 0.4" 2347 3347 } 2348 3348 }, 2349 - "node_modules/baseline-browser-mapping": { 2350 - "version": "2.9.16", 2351 - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.16.tgz", 2352 - "integrity": "sha512-KeUZdBuxngy825i8xvzaK1Ncnkx0tBmb3k8DkEuqjKRkmtvNTjey2ZsNeh8Dw4lfKvbCOu9oeNx2TKm2vHqcRw==", 2353 - "dev": true, 2354 - "license": "Apache-2.0", 2355 - "bin": { 2356 - "baseline-browser-mapping": "dist/cli.js" 2357 - } 3349 + "node_modules/boolbase": { 3350 + "version": "1.0.0", 3351 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 3352 + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", 3353 + "license": "ISC" 2358 3354 }, 2359 3355 "node_modules/brace-expansion": { 2360 - "version": "1.1.12", 2361 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", 2362 - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", 3356 + "version": "1.1.15", 3357 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", 3358 + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", 2363 3359 "dev": true, 2364 3360 "license": "MIT", 2365 3361 "dependencies": { ··· 2367 3363 "concat-map": "0.0.1" 2368 3364 } 2369 3365 }, 2370 - "node_modules/browserslist": { 2371 - "version": "4.28.1", 2372 - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", 2373 - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", 2374 - "dev": true, 2375 - "funding": [ 2376 - { 2377 - "type": "opencollective", 2378 - "url": "https://opencollective.com/browserslist" 2379 - }, 2380 - { 2381 - "type": "tidelift", 2382 - "url": "https://tidelift.com/funding/github/npm/browserslist" 2383 - }, 2384 - { 2385 - "type": "github", 2386 - "url": "https://github.com/sponsors/ai" 2387 - } 2388 - ], 2389 - "license": "MIT", 2390 - "dependencies": { 2391 - "baseline-browser-mapping": "^2.9.0", 2392 - "caniuse-lite": "^1.0.30001759", 2393 - "electron-to-chromium": "^1.5.263", 2394 - "node-releases": "^2.0.27", 2395 - "update-browserslist-db": "^1.2.0" 2396 - }, 2397 - "bin": { 2398 - "browserslist": "cli.js" 2399 - }, 2400 - "engines": { 2401 - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 2402 - } 2403 - }, 2404 3366 "node_modules/callsites": { 2405 3367 "version": "3.1.0", 2406 3368 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", ··· 2421 3383 "url": "https://github.com/sponsors/ljharb" 2422 3384 } 2423 3385 }, 2424 - "node_modules/caniuse-lite": { 2425 - "version": "1.0.30001765", 2426 - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001765.tgz", 2427 - "integrity": "sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==", 2428 - "dev": true, 2429 - "funding": [ 2430 - { 2431 - "type": "opencollective", 2432 - "url": "https://opencollective.com/browserslist" 2433 - }, 2434 - { 2435 - "type": "tidelift", 2436 - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 2437 - }, 2438 - { 2439 - "type": "github", 2440 - "url": "https://github.com/sponsors/ai" 2441 - } 2442 - ], 2443 - "license": "CC-BY-4.0" 3386 + "node_modules/ccount": { 3387 + "version": "2.0.1", 3388 + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", 3389 + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", 3390 + "license": "MIT", 3391 + "funding": { 3392 + "type": "github", 3393 + "url": "https://github.com/sponsors/wooorm" 3394 + } 2444 3395 }, 2445 3396 "node_modules/chalk": { 2446 3397 "version": "4.1.2", ··· 2459 3410 "url": "https://github.com/chalk/chalk?sponsor=1" 2460 3411 } 2461 3412 }, 3413 + "node_modules/character-entities-html4": { 3414 + "version": "2.1.0", 3415 + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", 3416 + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", 3417 + "license": "MIT", 3418 + "funding": { 3419 + "type": "github", 3420 + "url": "https://github.com/sponsors/wooorm" 3421 + } 3422 + }, 3423 + "node_modules/character-entities-legacy": { 3424 + "version": "3.0.0", 3425 + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", 3426 + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", 3427 + "license": "MIT", 3428 + "funding": { 3429 + "type": "github", 3430 + "url": "https://github.com/sponsors/wooorm" 3431 + } 3432 + }, 3433 + "node_modules/chokidar": { 3434 + "version": "5.0.0", 3435 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", 3436 + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", 3437 + "license": "MIT", 3438 + "dependencies": { 3439 + "readdirp": "^5.0.0" 3440 + }, 3441 + "engines": { 3442 + "node": ">= 20.19.0" 3443 + }, 3444 + "funding": { 3445 + "url": "https://paulmillr.com/funding/" 3446 + } 3447 + }, 3448 + "node_modules/ci-info": { 3449 + "version": "4.4.0", 3450 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", 3451 + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", 3452 + "funding": [ 3453 + { 3454 + "type": "github", 3455 + "url": "https://github.com/sponsors/sibiraj-s" 3456 + } 3457 + ], 3458 + "license": "MIT", 3459 + "engines": { 3460 + "node": ">=8" 3461 + } 3462 + }, 3463 + "node_modules/clsx": { 3464 + "version": "2.1.1", 3465 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 3466 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 3467 + "license": "MIT", 3468 + "engines": { 3469 + "node": ">=6" 3470 + } 3471 + }, 2462 3472 "node_modules/color-convert": { 2463 3473 "version": "2.0.1", 2464 3474 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", ··· 2479 3489 "dev": true, 2480 3490 "license": "MIT" 2481 3491 }, 3492 + "node_modules/comma-separated-tokens": { 3493 + "version": "2.0.3", 3494 + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", 3495 + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", 3496 + "license": "MIT", 3497 + "funding": { 3498 + "type": "github", 3499 + "url": "https://github.com/sponsors/wooorm" 3500 + } 3501 + }, 3502 + "node_modules/commander": { 3503 + "version": "11.1.0", 3504 + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", 3505 + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", 3506 + "license": "MIT", 3507 + "engines": { 3508 + "node": ">=16" 3509 + } 3510 + }, 3511 + "node_modules/common-ancestor-path": { 3512 + "version": "2.0.0", 3513 + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", 3514 + "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", 3515 + "license": "BlueOak-1.0.0", 3516 + "engines": { 3517 + "node": ">= 18" 3518 + } 3519 + }, 2482 3520 "node_modules/concat-map": { 2483 3521 "version": "0.0.1", 2484 3522 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", ··· 2486 3524 "dev": true, 2487 3525 "license": "MIT" 2488 3526 }, 2489 - "node_modules/convert-source-map": { 2490 - "version": "2.0.0", 2491 - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 2492 - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", 2493 - "dev": true, 3527 + "node_modules/cookie": { 3528 + "version": "1.1.1", 3529 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 3530 + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 3531 + "license": "MIT", 3532 + "engines": { 3533 + "node": ">=18" 3534 + }, 3535 + "funding": { 3536 + "type": "opencollective", 3537 + "url": "https://opencollective.com/express" 3538 + } 3539 + }, 3540 + "node_modules/cookie-es": { 3541 + "version": "1.2.3", 3542 + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", 3543 + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", 2494 3544 "license": "MIT" 2495 3545 }, 2496 3546 "node_modules/cross-spawn": { ··· 2508 3558 "node": ">= 8" 2509 3559 } 2510 3560 }, 3561 + "node_modules/crossws": { 3562 + "version": "0.3.5", 3563 + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", 3564 + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", 3565 + "license": "MIT", 3566 + "dependencies": { 3567 + "uncrypto": "^0.1.3" 3568 + } 3569 + }, 2511 3570 "node_modules/css-background-parser": { 2512 3571 "version": "0.1.0", 2513 3572 "resolved": "https://registry.npmjs.org/css-background-parser/-/css-background-parser-0.1.0.tgz", ··· 2542 3601 "node": ">=16" 2543 3602 } 2544 3603 }, 3604 + "node_modules/css-select": { 3605 + "version": "5.2.2", 3606 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", 3607 + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", 3608 + "license": "BSD-2-Clause", 3609 + "dependencies": { 3610 + "boolbase": "^1.0.0", 3611 + "css-what": "^6.1.0", 3612 + "domhandler": "^5.0.2", 3613 + "domutils": "^3.0.1", 3614 + "nth-check": "^2.0.1" 3615 + }, 3616 + "funding": { 3617 + "url": "https://github.com/sponsors/fb55" 3618 + } 3619 + }, 2545 3620 "node_modules/css-to-react-native": { 2546 3621 "version": "3.2.0", 2547 3622 "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", ··· 2554 3629 "postcss-value-parser": "^4.0.2" 2555 3630 } 2556 3631 }, 2557 - "node_modules/csstype": { 2558 - "version": "3.2.3", 2559 - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", 2560 - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", 2561 - "dev": true, 2562 - "license": "MIT" 3632 + "node_modules/css-tree": { 3633 + "version": "3.2.1", 3634 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", 3635 + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", 3636 + "license": "MIT", 3637 + "dependencies": { 3638 + "mdn-data": "2.27.1", 3639 + "source-map-js": "^1.2.1" 3640 + }, 3641 + "engines": { 3642 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 3643 + } 3644 + }, 3645 + "node_modules/css-what": { 3646 + "version": "6.2.2", 3647 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", 3648 + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", 3649 + "license": "BSD-2-Clause", 3650 + "engines": { 3651 + "node": ">= 6" 3652 + }, 3653 + "funding": { 3654 + "url": "https://github.com/sponsors/fb55" 3655 + } 3656 + }, 3657 + "node_modules/csso": { 3658 + "version": "5.0.5", 3659 + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", 3660 + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", 3661 + "license": "MIT", 3662 + "dependencies": { 3663 + "css-tree": "~2.2.0" 3664 + }, 3665 + "engines": { 3666 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 3667 + "npm": ">=7.0.0" 3668 + } 3669 + }, 3670 + "node_modules/csso/node_modules/css-tree": { 3671 + "version": "2.2.1", 3672 + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", 3673 + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", 3674 + "license": "MIT", 3675 + "dependencies": { 3676 + "mdn-data": "2.0.28", 3677 + "source-map-js": "^1.0.1" 3678 + }, 3679 + "engines": { 3680 + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", 3681 + "npm": ">=7.0.0" 3682 + } 3683 + }, 3684 + "node_modules/csso/node_modules/mdn-data": { 3685 + "version": "2.0.28", 3686 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", 3687 + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", 3688 + "license": "CC0-1.0" 2563 3689 }, 2564 3690 "node_modules/debug": { 2565 3691 "version": "4.4.3", ··· 2586 3712 "dev": true, 2587 3713 "license": "MIT" 2588 3714 }, 3715 + "node_modules/defu": { 3716 + "version": "6.1.7", 3717 + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", 3718 + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", 3719 + "license": "MIT" 3720 + }, 3721 + "node_modules/dequal": { 3722 + "version": "2.0.3", 3723 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 3724 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 3725 + "license": "MIT", 3726 + "engines": { 3727 + "node": ">=6" 3728 + } 3729 + }, 3730 + "node_modules/destr": { 3731 + "version": "2.0.5", 3732 + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", 3733 + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", 3734 + "license": "MIT" 3735 + }, 2589 3736 "node_modules/detect-libc": { 2590 3737 "version": "2.1.2", 2591 3738 "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 2592 3739 "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 2593 - "dev": true, 2594 3740 "license": "Apache-2.0", 2595 3741 "engines": { 2596 3742 "node": ">=8" 2597 3743 } 2598 3744 }, 2599 - "node_modules/electron-to-chromium": { 2600 - "version": "1.5.267", 2601 - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", 2602 - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", 2603 - "dev": true, 2604 - "license": "ISC" 3745 + "node_modules/devalue": { 3746 + "version": "5.8.1", 3747 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", 3748 + "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", 3749 + "license": "MIT" 3750 + }, 3751 + "node_modules/devlop": { 3752 + "version": "1.1.0", 3753 + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", 3754 + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", 3755 + "license": "MIT", 3756 + "dependencies": { 3757 + "dequal": "^2.0.0" 3758 + }, 3759 + "funding": { 3760 + "type": "github", 3761 + "url": "https://github.com/sponsors/wooorm" 3762 + } 3763 + }, 3764 + "node_modules/diff": { 3765 + "version": "8.0.4", 3766 + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", 3767 + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", 3768 + "license": "BSD-3-Clause", 3769 + "engines": { 3770 + "node": ">=0.3.1" 3771 + } 3772 + }, 3773 + "node_modules/dom-serializer": { 3774 + "version": "2.0.0", 3775 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 3776 + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 3777 + "license": "MIT", 3778 + "dependencies": { 3779 + "domelementtype": "^2.3.0", 3780 + "domhandler": "^5.0.2", 3781 + "entities": "^4.2.0" 3782 + }, 3783 + "funding": { 3784 + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 3785 + } 3786 + }, 3787 + "node_modules/dom-serializer/node_modules/entities": { 3788 + "version": "4.5.0", 3789 + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 3790 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 3791 + "license": "BSD-2-Clause", 3792 + "engines": { 3793 + "node": ">=0.12" 3794 + }, 3795 + "funding": { 3796 + "url": "https://github.com/fb55/entities?sponsor=1" 3797 + } 3798 + }, 3799 + "node_modules/domelementtype": { 3800 + "version": "2.3.0", 3801 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 3802 + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 3803 + "funding": [ 3804 + { 3805 + "type": "github", 3806 + "url": "https://github.com/sponsors/fb55" 3807 + } 3808 + ], 3809 + "license": "BSD-2-Clause" 3810 + }, 3811 + "node_modules/domhandler": { 3812 + "version": "5.0.3", 3813 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 3814 + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 3815 + "license": "BSD-2-Clause", 3816 + "dependencies": { 3817 + "domelementtype": "^2.3.0" 3818 + }, 3819 + "engines": { 3820 + "node": ">= 4" 3821 + }, 3822 + "funding": { 3823 + "url": "https://github.com/fb55/domhandler?sponsor=1" 3824 + } 3825 + }, 3826 + "node_modules/domutils": { 3827 + "version": "3.2.2", 3828 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", 3829 + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", 3830 + "license": "BSD-2-Clause", 3831 + "dependencies": { 3832 + "dom-serializer": "^2.0.0", 3833 + "domelementtype": "^2.3.0", 3834 + "domhandler": "^5.0.3" 3835 + }, 3836 + "funding": { 3837 + "url": "https://github.com/fb55/domutils?sponsor=1" 3838 + } 3839 + }, 3840 + "node_modules/dset": { 3841 + "version": "3.1.4", 3842 + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", 3843 + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", 3844 + "license": "MIT", 3845 + "engines": { 3846 + "node": ">=4" 3847 + } 2605 3848 }, 2606 3849 "node_modules/emoji-regex-xs": { 2607 3850 "version": "2.0.1", ··· 2614 3857 } 2615 3858 }, 2616 3859 "node_modules/enhanced-resolve": { 2617 - "version": "5.18.4", 2618 - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", 2619 - "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", 3860 + "version": "5.21.6", 3861 + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", 3862 + "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", 2620 3863 "dev": true, 2621 3864 "license": "MIT", 2622 3865 "dependencies": { 2623 3866 "graceful-fs": "^4.2.4", 2624 - "tapable": "^2.2.0" 3867 + "tapable": "^2.3.3" 2625 3868 }, 2626 3869 "engines": { 2627 3870 "node": ">=10.13.0" 2628 3871 } 2629 3872 }, 2630 - "node_modules/esbuild": { 2631 - "version": "0.27.2", 2632 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", 2633 - "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", 2634 - "dev": true, 2635 - "hasInstallScript": true, 2636 - "license": "MIT", 2637 - "bin": { 2638 - "esbuild": "bin/esbuild" 2639 - }, 3873 + "node_modules/entities": { 3874 + "version": "6.0.1", 3875 + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", 3876 + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", 3877 + "license": "BSD-2-Clause", 2640 3878 "engines": { 2641 - "node": ">=18" 3879 + "node": ">=0.12" 2642 3880 }, 2643 - "optionalDependencies": { 2644 - "@esbuild/aix-ppc64": "0.27.2", 2645 - "@esbuild/android-arm": "0.27.2", 2646 - "@esbuild/android-arm64": "0.27.2", 2647 - "@esbuild/android-x64": "0.27.2", 2648 - "@esbuild/darwin-arm64": "0.27.2", 2649 - "@esbuild/darwin-x64": "0.27.2", 2650 - "@esbuild/freebsd-arm64": "0.27.2", 2651 - "@esbuild/freebsd-x64": "0.27.2", 2652 - "@esbuild/linux-arm": "0.27.2", 2653 - "@esbuild/linux-arm64": "0.27.2", 2654 - "@esbuild/linux-ia32": "0.27.2", 2655 - "@esbuild/linux-loong64": "0.27.2", 2656 - "@esbuild/linux-mips64el": "0.27.2", 2657 - "@esbuild/linux-ppc64": "0.27.2", 2658 - "@esbuild/linux-riscv64": "0.27.2", 2659 - "@esbuild/linux-s390x": "0.27.2", 2660 - "@esbuild/linux-x64": "0.27.2", 2661 - "@esbuild/netbsd-arm64": "0.27.2", 2662 - "@esbuild/netbsd-x64": "0.27.2", 2663 - "@esbuild/openbsd-arm64": "0.27.2", 2664 - "@esbuild/openbsd-x64": "0.27.2", 2665 - "@esbuild/openharmony-arm64": "0.27.2", 2666 - "@esbuild/sunos-x64": "0.27.2", 2667 - "@esbuild/win32-arm64": "0.27.2", 2668 - "@esbuild/win32-ia32": "0.27.2", 2669 - "@esbuild/win32-x64": "0.27.2" 3881 + "funding": { 3882 + "url": "https://github.com/fb55/entities?sponsor=1" 2670 3883 } 2671 3884 }, 2672 - "node_modules/escalade": { 2673 - "version": "3.2.0", 2674 - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 2675 - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 2676 - "dev": true, 2677 - "license": "MIT", 2678 - "engines": { 2679 - "node": ">=6" 2680 - } 3885 + "node_modules/es-module-lexer": { 3886 + "version": "2.1.0", 3887 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", 3888 + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", 3889 + "license": "MIT" 2681 3890 }, 2682 3891 "node_modules/escape-html": { 2683 3892 "version": "1.0.3", ··· 2700 3909 } 2701 3910 }, 2702 3911 "node_modules/eslint": { 2703 - "version": "9.39.2", 2704 - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", 2705 - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", 3912 + "version": "9.39.4", 3913 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", 3914 + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", 2706 3915 "dev": true, 2707 3916 "license": "MIT", 2708 3917 "dependencies": { 2709 3918 "@eslint-community/eslint-utils": "^4.8.0", 2710 3919 "@eslint-community/regexpp": "^4.12.1", 2711 - "@eslint/config-array": "^0.21.1", 3920 + "@eslint/config-array": "^0.21.2", 2712 3921 "@eslint/config-helpers": "^0.4.2", 2713 3922 "@eslint/core": "^0.17.0", 2714 - "@eslint/eslintrc": "^3.3.1", 2715 - "@eslint/js": "9.39.2", 3923 + "@eslint/eslintrc": "^3.3.5", 3924 + "@eslint/js": "9.39.4", 2716 3925 "@eslint/plugin-kit": "^0.4.1", 2717 3926 "@humanfs/node": "^0.16.6", 2718 3927 "@humanwhocodes/module-importer": "^1.0.1", 2719 3928 "@humanwhocodes/retry": "^0.4.2", 2720 3929 "@types/estree": "^1.0.6", 2721 - "ajv": "^6.12.4", 3930 + "ajv": "^6.14.0", 2722 3931 "chalk": "^4.0.0", 2723 3932 "cross-spawn": "^7.0.6", 2724 3933 "debug": "^4.3.2", ··· 2737 3946 "is-glob": "^4.0.0", 2738 3947 "json-stable-stringify-without-jsonify": "^1.0.1", 2739 3948 "lodash.merge": "^4.6.2", 2740 - "minimatch": "^3.1.2", 3949 + "minimatch": "^3.1.5", 2741 3950 "natural-compare": "^1.4.0", 2742 3951 "optionator": "^0.9.3" 2743 3952 }, ··· 2759 3968 } 2760 3969 } 2761 3970 }, 2762 - "node_modules/eslint-plugin-react-hooks": { 2763 - "version": "7.0.1", 2764 - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", 2765 - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", 2766 - "dev": true, 2767 - "license": "MIT", 2768 - "dependencies": { 2769 - "@babel/core": "^7.24.4", 2770 - "@babel/parser": "^7.24.4", 2771 - "hermes-parser": "^0.25.1", 2772 - "zod": "^3.25.0 || ^4.0.0", 2773 - "zod-validation-error": "^3.5.0 || ^4.0.0" 2774 - }, 2775 - "engines": { 2776 - "node": ">=18" 2777 - }, 2778 - "peerDependencies": { 2779 - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" 2780 - } 2781 - }, 2782 - "node_modules/eslint-plugin-react-refresh": { 2783 - "version": "0.4.26", 2784 - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz", 2785 - "integrity": "sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==", 2786 - "dev": true, 2787 - "license": "MIT", 2788 - "peerDependencies": { 2789 - "eslint": ">=8.40" 2790 - } 2791 - }, 2792 3971 "node_modules/eslint-scope": { 2793 3972 "version": "8.4.0", 2794 3973 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", ··· 2873 4052 "node": ">=4.0" 2874 4053 } 2875 4054 }, 4055 + "node_modules/estree-walker": { 4056 + "version": "2.0.2", 4057 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 4058 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 4059 + "license": "MIT" 4060 + }, 2876 4061 "node_modules/esutils": { 2877 4062 "version": "2.0.3", 2878 4063 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", ··· 2883 4068 "node": ">=0.10.0" 2884 4069 } 2885 4070 }, 4071 + "node_modules/eventemitter3": { 4072 + "version": "5.0.4", 4073 + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", 4074 + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", 4075 + "license": "MIT" 4076 + }, 4077 + "node_modules/extend": { 4078 + "version": "3.0.2", 4079 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 4080 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 4081 + "license": "MIT" 4082 + }, 2886 4083 "node_modules/fast-deep-equal": { 2887 4084 "version": "3.1.3", 2888 4085 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", ··· 2904 4101 "dev": true, 2905 4102 "license": "MIT" 2906 4103 }, 4104 + "node_modules/fast-string-truncated-width": { 4105 + "version": "3.0.3", 4106 + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", 4107 + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", 4108 + "license": "MIT" 4109 + }, 4110 + "node_modules/fast-string-width": { 4111 + "version": "3.0.2", 4112 + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", 4113 + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", 4114 + "license": "MIT", 4115 + "dependencies": { 4116 + "fast-string-truncated-width": "^3.0.2" 4117 + } 4118 + }, 4119 + "node_modules/fast-wrap-ansi": { 4120 + "version": "0.2.2", 4121 + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", 4122 + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", 4123 + "license": "MIT", 4124 + "dependencies": { 4125 + "fast-string-width": "^3.0.2" 4126 + } 4127 + }, 2907 4128 "node_modules/fdir": { 2908 4129 "version": "6.5.0", 2909 4130 "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", 2910 4131 "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", 2911 - "dev": true, 2912 4132 "license": "MIT", 2913 4133 "engines": { 2914 4134 "node": ">=12.0.0" ··· 2980 4200 "dev": true, 2981 4201 "license": "ISC" 2982 4202 }, 4203 + "node_modules/flattie": { 4204 + "version": "1.1.1", 4205 + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", 4206 + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", 4207 + "license": "MIT", 4208 + "engines": { 4209 + "node": ">=8" 4210 + } 4211 + }, 4212 + "node_modules/fontace": { 4213 + "version": "0.4.1", 4214 + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", 4215 + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", 4216 + "license": "MIT", 4217 + "dependencies": { 4218 + "fontkitten": "^1.0.2" 4219 + } 4220 + }, 4221 + "node_modules/fontkitten": { 4222 + "version": "1.0.3", 4223 + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", 4224 + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", 4225 + "license": "MIT", 4226 + "dependencies": { 4227 + "tiny-inflate": "^1.0.3" 4228 + }, 4229 + "engines": { 4230 + "node": ">=20" 4231 + } 4232 + }, 2983 4233 "node_modules/fsevents": { 2984 4234 "version": "2.3.3", 2985 4235 "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 2986 4236 "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 2987 - "dev": true, 2988 4237 "hasInstallScript": true, 2989 4238 "license": "MIT", 2990 4239 "optional": true, ··· 2995 4244 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2996 4245 } 2997 4246 }, 2998 - "node_modules/gensync": { 2999 - "version": "1.0.0-beta.2", 3000 - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 3001 - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 3002 - "dev": true, 4247 + "node_modules/get-tsconfig": { 4248 + "version": "5.0.0-beta.4", 4249 + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", 4250 + "integrity": "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==", 3003 4251 "license": "MIT", 4252 + "dependencies": { 4253 + "resolve-pkg-maps": "^1.0.0" 4254 + }, 3004 4255 "engines": { 3005 - "node": ">=6.9.0" 4256 + "node": ">=20.20.0" 4257 + }, 4258 + "funding": { 4259 + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" 3006 4260 } 3007 4261 }, 4262 + "node_modules/github-slugger": { 4263 + "version": "2.0.0", 4264 + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", 4265 + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", 4266 + "license": "ISC" 4267 + }, 3008 4268 "node_modules/glob-parent": { 3009 4269 "version": "6.0.2", 3010 4270 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", ··· 3019 4279 } 3020 4280 }, 3021 4281 "node_modules/globals": { 3022 - "version": "16.5.0", 3023 - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", 3024 - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", 4282 + "version": "17.6.0", 4283 + "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", 4284 + "integrity": "sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==", 3025 4285 "dev": true, 3026 4286 "license": "MIT", 3027 4287 "engines": { ··· 3038 4298 "dev": true, 3039 4299 "license": "ISC" 3040 4300 }, 4301 + "node_modules/h3": { 4302 + "version": "1.15.11", 4303 + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", 4304 + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", 4305 + "license": "MIT", 4306 + "dependencies": { 4307 + "cookie-es": "^1.2.3", 4308 + "crossws": "^0.3.5", 4309 + "defu": "^6.1.6", 4310 + "destr": "^2.0.5", 4311 + "iron-webcrypto": "^1.2.1", 4312 + "node-mock-http": "^1.0.4", 4313 + "radix3": "^1.1.2", 4314 + "ufo": "^1.6.3", 4315 + "uncrypto": "^0.1.3" 4316 + } 4317 + }, 3041 4318 "node_modules/has-flag": { 3042 4319 "version": "4.0.0", 3043 4320 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", ··· 3048 4325 "node": ">=8" 3049 4326 } 3050 4327 }, 3051 - "node_modules/hermes-estree": { 3052 - "version": "0.25.1", 3053 - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", 3054 - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", 3055 - "dev": true, 3056 - "license": "MIT" 4328 + "node_modules/hast-util-from-html": { 4329 + "version": "2.0.3", 4330 + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", 4331 + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", 4332 + "license": "MIT", 4333 + "dependencies": { 4334 + "@types/hast": "^3.0.0", 4335 + "devlop": "^1.1.0", 4336 + "hast-util-from-parse5": "^8.0.0", 4337 + "parse5": "^7.0.0", 4338 + "vfile": "^6.0.0", 4339 + "vfile-message": "^4.0.0" 4340 + }, 4341 + "funding": { 4342 + "type": "opencollective", 4343 + "url": "https://opencollective.com/unified" 4344 + } 4345 + }, 4346 + "node_modules/hast-util-from-parse5": { 4347 + "version": "8.0.3", 4348 + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", 4349 + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", 4350 + "license": "MIT", 4351 + "dependencies": { 4352 + "@types/hast": "^3.0.0", 4353 + "@types/unist": "^3.0.0", 4354 + "devlop": "^1.0.0", 4355 + "hastscript": "^9.0.0", 4356 + "property-information": "^7.0.0", 4357 + "vfile": "^6.0.0", 4358 + "vfile-location": "^5.0.0", 4359 + "web-namespaces": "^2.0.0" 4360 + }, 4361 + "funding": { 4362 + "type": "opencollective", 4363 + "url": "https://opencollective.com/unified" 4364 + } 4365 + }, 4366 + "node_modules/hast-util-parse-selector": { 4367 + "version": "4.0.0", 4368 + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", 4369 + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", 4370 + "license": "MIT", 4371 + "dependencies": { 4372 + "@types/hast": "^3.0.0" 4373 + }, 4374 + "funding": { 4375 + "type": "opencollective", 4376 + "url": "https://opencollective.com/unified" 4377 + } 4378 + }, 4379 + "node_modules/hast-util-to-html": { 4380 + "version": "9.0.5", 4381 + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", 4382 + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", 4383 + "license": "MIT", 4384 + "dependencies": { 4385 + "@types/hast": "^3.0.0", 4386 + "@types/unist": "^3.0.0", 4387 + "ccount": "^2.0.0", 4388 + "comma-separated-tokens": "^2.0.0", 4389 + "hast-util-whitespace": "^3.0.0", 4390 + "html-void-elements": "^3.0.0", 4391 + "mdast-util-to-hast": "^13.0.0", 4392 + "property-information": "^7.0.0", 4393 + "space-separated-tokens": "^2.0.0", 4394 + "stringify-entities": "^4.0.0", 4395 + "zwitch": "^2.0.4" 4396 + }, 4397 + "funding": { 4398 + "type": "opencollective", 4399 + "url": "https://opencollective.com/unified" 4400 + } 4401 + }, 4402 + "node_modules/hast-util-whitespace": { 4403 + "version": "3.0.0", 4404 + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", 4405 + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", 4406 + "license": "MIT", 4407 + "dependencies": { 4408 + "@types/hast": "^3.0.0" 4409 + }, 4410 + "funding": { 4411 + "type": "opencollective", 4412 + "url": "https://opencollective.com/unified" 4413 + } 3057 4414 }, 3058 - "node_modules/hermes-parser": { 3059 - "version": "0.25.1", 3060 - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", 3061 - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", 3062 - "dev": true, 4415 + "node_modules/hastscript": { 4416 + "version": "9.0.1", 4417 + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", 4418 + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", 3063 4419 "license": "MIT", 3064 4420 "dependencies": { 3065 - "hermes-estree": "0.25.1" 4421 + "@types/hast": "^3.0.0", 4422 + "comma-separated-tokens": "^2.0.0", 4423 + "hast-util-parse-selector": "^4.0.0", 4424 + "property-information": "^7.0.0", 4425 + "space-separated-tokens": "^2.0.0" 4426 + }, 4427 + "funding": { 4428 + "type": "opencollective", 4429 + "url": "https://opencollective.com/unified" 3066 4430 } 3067 4431 }, 3068 4432 "node_modules/hex-rgb": { ··· 3078 4442 "url": "https://github.com/sponsors/sindresorhus" 3079 4443 } 3080 4444 }, 4445 + "node_modules/html-escaper": { 4446 + "version": "3.0.3", 4447 + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", 4448 + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", 4449 + "license": "MIT" 4450 + }, 4451 + "node_modules/html-void-elements": { 4452 + "version": "3.0.0", 4453 + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", 4454 + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", 4455 + "license": "MIT", 4456 + "funding": { 4457 + "type": "github", 4458 + "url": "https://github.com/sponsors/wooorm" 4459 + } 4460 + }, 4461 + "node_modules/http-cache-semantics": { 4462 + "version": "4.2.0", 4463 + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", 4464 + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", 4465 + "license": "BSD-2-Clause" 4466 + }, 3081 4467 "node_modules/ignore": { 3082 4468 "version": "5.3.2", 3083 4469 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", ··· 3115 4501 "node": ">=0.8.19" 3116 4502 } 3117 4503 }, 4504 + "node_modules/iron-webcrypto": { 4505 + "version": "1.2.1", 4506 + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", 4507 + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", 4508 + "license": "MIT", 4509 + "funding": { 4510 + "url": "https://github.com/sponsors/brc-dd" 4511 + } 4512 + }, 4513 + "node_modules/is-docker": { 4514 + "version": "4.0.0", 4515 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", 4516 + "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", 4517 + "license": "MIT", 4518 + "bin": { 4519 + "is-docker": "cli.js" 4520 + }, 4521 + "engines": { 4522 + "node": ">=20" 4523 + }, 4524 + "funding": { 4525 + "url": "https://github.com/sponsors/sindresorhus" 4526 + } 4527 + }, 3118 4528 "node_modules/is-extglob": { 3119 4529 "version": "2.1.1", 3120 4530 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 3138 4548 "node": ">=0.10.0" 3139 4549 } 3140 4550 }, 4551 + "node_modules/is-inside-container": { 4552 + "version": "1.0.0", 4553 + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 4554 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 4555 + "license": "MIT", 4556 + "dependencies": { 4557 + "is-docker": "^3.0.0" 4558 + }, 4559 + "bin": { 4560 + "is-inside-container": "cli.js" 4561 + }, 4562 + "engines": { 4563 + "node": ">=14.16" 4564 + }, 4565 + "funding": { 4566 + "url": "https://github.com/sponsors/sindresorhus" 4567 + } 4568 + }, 4569 + "node_modules/is-inside-container/node_modules/is-docker": { 4570 + "version": "3.0.0", 4571 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 4572 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 4573 + "license": "MIT", 4574 + "bin": { 4575 + "is-docker": "cli.js" 4576 + }, 4577 + "engines": { 4578 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4579 + }, 4580 + "funding": { 4581 + "url": "https://github.com/sponsors/sindresorhus" 4582 + } 4583 + }, 4584 + "node_modules/is-plain-obj": { 4585 + "version": "4.1.0", 4586 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 4587 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 4588 + "license": "MIT", 4589 + "engines": { 4590 + "node": ">=12" 4591 + }, 4592 + "funding": { 4593 + "url": "https://github.com/sponsors/sindresorhus" 4594 + } 4595 + }, 4596 + "node_modules/is-wsl": { 4597 + "version": "3.1.1", 4598 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", 4599 + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", 4600 + "license": "MIT", 4601 + "dependencies": { 4602 + "is-inside-container": "^1.0.0" 4603 + }, 4604 + "engines": { 4605 + "node": ">=16" 4606 + }, 4607 + "funding": { 4608 + "url": "https://github.com/sponsors/sindresorhus" 4609 + } 4610 + }, 3141 4611 "node_modules/isexe": { 3142 4612 "version": "2.0.0", 3143 4613 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", ··· 3146 4616 "license": "ISC" 3147 4617 }, 3148 4618 "node_modules/jiti": { 3149 - "version": "2.6.1", 3150 - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", 3151 - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", 3152 - "dev": true, 4619 + "version": "2.7.0", 4620 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", 4621 + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", 4622 + "devOptional": true, 3153 4623 "license": "MIT", 3154 4624 "bin": { 3155 4625 "jiti": "lib/jiti-cli.mjs" 3156 4626 } 3157 4627 }, 3158 - "node_modules/js-tokens": { 3159 - "version": "4.0.0", 3160 - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3161 - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 3162 - "dev": true, 3163 - "license": "MIT" 3164 - }, 3165 4628 "node_modules/js-yaml": { 3166 4629 "version": "4.1.1", 3167 4630 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", 3168 4631 "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", 3169 - "dev": true, 3170 4632 "license": "MIT", 3171 4633 "dependencies": { 3172 4634 "argparse": "^2.0.1" ··· 3175 4637 "js-yaml": "bin/js-yaml.js" 3176 4638 } 3177 4639 }, 3178 - "node_modules/jsesc": { 3179 - "version": "3.1.0", 3180 - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 3181 - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 3182 - "dev": true, 3183 - "license": "MIT", 3184 - "bin": { 3185 - "jsesc": "bin/jsesc" 3186 - }, 3187 - "engines": { 3188 - "node": ">=6" 3189 - } 3190 - }, 3191 4640 "node_modules/json-buffer": { 3192 4641 "version": "3.0.1", 3193 4642 "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", ··· 3209 4658 "dev": true, 3210 4659 "license": "MIT" 3211 4660 }, 3212 - "node_modules/json5": { 3213 - "version": "2.2.3", 3214 - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 3215 - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 3216 - "dev": true, 3217 - "license": "MIT", 3218 - "bin": { 3219 - "json5": "lib/cli.js" 3220 - }, 3221 - "engines": { 3222 - "node": ">=6" 3223 - } 4661 + "node_modules/jsonc-parser": { 4662 + "version": "3.3.1", 4663 + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", 4664 + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", 4665 + "license": "MIT" 3224 4666 }, 3225 4667 "node_modules/keyv": { 3226 4668 "version": "4.5.4", ··· 3247 4689 } 3248 4690 }, 3249 4691 "node_modules/lightningcss": { 3250 - "version": "1.30.2", 3251 - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", 3252 - "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", 3253 - "dev": true, 4692 + "version": "1.32.0", 4693 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", 4694 + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", 3254 4695 "license": "MPL-2.0", 3255 4696 "dependencies": { 3256 4697 "detect-libc": "^2.0.3" ··· 3263 4704 "url": "https://opencollective.com/parcel" 3264 4705 }, 3265 4706 "optionalDependencies": { 3266 - "lightningcss-android-arm64": "1.30.2", 3267 - "lightningcss-darwin-arm64": "1.30.2", 3268 - "lightningcss-darwin-x64": "1.30.2", 3269 - "lightningcss-freebsd-x64": "1.30.2", 3270 - "lightningcss-linux-arm-gnueabihf": "1.30.2", 3271 - "lightningcss-linux-arm64-gnu": "1.30.2", 3272 - "lightningcss-linux-arm64-musl": "1.30.2", 3273 - "lightningcss-linux-x64-gnu": "1.30.2", 3274 - "lightningcss-linux-x64-musl": "1.30.2", 3275 - "lightningcss-win32-arm64-msvc": "1.30.2", 3276 - "lightningcss-win32-x64-msvc": "1.30.2" 4707 + "lightningcss-android-arm64": "1.32.0", 4708 + "lightningcss-darwin-arm64": "1.32.0", 4709 + "lightningcss-darwin-x64": "1.32.0", 4710 + "lightningcss-freebsd-x64": "1.32.0", 4711 + "lightningcss-linux-arm-gnueabihf": "1.32.0", 4712 + "lightningcss-linux-arm64-gnu": "1.32.0", 4713 + "lightningcss-linux-arm64-musl": "1.32.0", 4714 + "lightningcss-linux-x64-gnu": "1.32.0", 4715 + "lightningcss-linux-x64-musl": "1.32.0", 4716 + "lightningcss-win32-arm64-msvc": "1.32.0", 4717 + "lightningcss-win32-x64-msvc": "1.32.0" 3277 4718 } 3278 4719 }, 3279 4720 "node_modules/lightningcss-android-arm64": { 3280 - "version": "1.30.2", 3281 - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", 3282 - "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", 4721 + "version": "1.32.0", 4722 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", 4723 + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", 3283 4724 "cpu": [ 3284 4725 "arm64" 3285 4726 ], 3286 - "dev": true, 3287 4727 "license": "MPL-2.0", 3288 4728 "optional": true, 3289 4729 "os": [ ··· 3298 4738 } 3299 4739 }, 3300 4740 "node_modules/lightningcss-darwin-arm64": { 3301 - "version": "1.30.2", 3302 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", 3303 - "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", 4741 + "version": "1.32.0", 4742 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", 4743 + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", 3304 4744 "cpu": [ 3305 4745 "arm64" 3306 4746 ], 3307 - "dev": true, 3308 4747 "license": "MPL-2.0", 3309 4748 "optional": true, 3310 4749 "os": [ ··· 3319 4758 } 3320 4759 }, 3321 4760 "node_modules/lightningcss-darwin-x64": { 3322 - "version": "1.30.2", 3323 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", 3324 - "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", 4761 + "version": "1.32.0", 4762 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", 4763 + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", 3325 4764 "cpu": [ 3326 4765 "x64" 3327 4766 ], 3328 - "dev": true, 3329 4767 "license": "MPL-2.0", 3330 4768 "optional": true, 3331 4769 "os": [ ··· 3340 4778 } 3341 4779 }, 3342 4780 "node_modules/lightningcss-freebsd-x64": { 3343 - "version": "1.30.2", 3344 - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", 3345 - "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", 4781 + "version": "1.32.0", 4782 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", 4783 + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", 3346 4784 "cpu": [ 3347 4785 "x64" 3348 4786 ], 3349 - "dev": true, 3350 4787 "license": "MPL-2.0", 3351 4788 "optional": true, 3352 4789 "os": [ ··· 3361 4798 } 3362 4799 }, 3363 4800 "node_modules/lightningcss-linux-arm-gnueabihf": { 3364 - "version": "1.30.2", 3365 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", 3366 - "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", 4801 + "version": "1.32.0", 4802 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", 4803 + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", 3367 4804 "cpu": [ 3368 4805 "arm" 3369 4806 ], 3370 - "dev": true, 3371 4807 "license": "MPL-2.0", 3372 4808 "optional": true, 3373 4809 "os": [ ··· 3382 4818 } 3383 4819 }, 3384 4820 "node_modules/lightningcss-linux-arm64-gnu": { 3385 - "version": "1.30.2", 3386 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", 3387 - "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", 4821 + "version": "1.32.0", 4822 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", 4823 + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", 3388 4824 "cpu": [ 3389 4825 "arm64" 3390 4826 ], 3391 - "dev": true, 4827 + "libc": [ 4828 + "glibc" 4829 + ], 3392 4830 "license": "MPL-2.0", 3393 4831 "optional": true, 3394 4832 "os": [ ··· 3403 4841 } 3404 4842 }, 3405 4843 "node_modules/lightningcss-linux-arm64-musl": { 3406 - "version": "1.30.2", 3407 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", 3408 - "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", 4844 + "version": "1.32.0", 4845 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", 4846 + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", 3409 4847 "cpu": [ 3410 4848 "arm64" 3411 4849 ], 3412 - "dev": true, 4850 + "libc": [ 4851 + "musl" 4852 + ], 3413 4853 "license": "MPL-2.0", 3414 4854 "optional": true, 3415 4855 "os": [ ··· 3424 4864 } 3425 4865 }, 3426 4866 "node_modules/lightningcss-linux-x64-gnu": { 3427 - "version": "1.30.2", 3428 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", 3429 - "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", 4867 + "version": "1.32.0", 4868 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", 4869 + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", 3430 4870 "cpu": [ 3431 4871 "x64" 3432 4872 ], 3433 - "dev": true, 4873 + "libc": [ 4874 + "glibc" 4875 + ], 3434 4876 "license": "MPL-2.0", 3435 4877 "optional": true, 3436 4878 "os": [ ··· 3445 4887 } 3446 4888 }, 3447 4889 "node_modules/lightningcss-linux-x64-musl": { 3448 - "version": "1.30.2", 3449 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", 3450 - "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", 4890 + "version": "1.32.0", 4891 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", 4892 + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", 3451 4893 "cpu": [ 3452 4894 "x64" 3453 4895 ], 3454 - "dev": true, 4896 + "libc": [ 4897 + "musl" 4898 + ], 3455 4899 "license": "MPL-2.0", 3456 4900 "optional": true, 3457 4901 "os": [ ··· 3466 4910 } 3467 4911 }, 3468 4912 "node_modules/lightningcss-win32-arm64-msvc": { 3469 - "version": "1.30.2", 3470 - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", 3471 - "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", 4913 + "version": "1.32.0", 4914 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", 4915 + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", 3472 4916 "cpu": [ 3473 4917 "arm64" 3474 4918 ], 3475 - "dev": true, 3476 4919 "license": "MPL-2.0", 3477 4920 "optional": true, 3478 4921 "os": [ ··· 3487 4930 } 3488 4931 }, 3489 4932 "node_modules/lightningcss-win32-x64-msvc": { 3490 - "version": "1.30.2", 3491 - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", 3492 - "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", 4933 + "version": "1.32.0", 4934 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", 4935 + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", 3493 4936 "cpu": [ 3494 4937 "x64" 3495 4938 ], 3496 - "dev": true, 3497 4939 "license": "MPL-2.0", 3498 4940 "optional": true, 3499 4941 "os": [ ··· 3541 4983 "dev": true, 3542 4984 "license": "MIT" 3543 4985 }, 3544 - "node_modules/lru-cache": { 3545 - "version": "5.1.1", 3546 - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 3547 - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 3548 - "dev": true, 3549 - "license": "ISC", 3550 - "dependencies": { 3551 - "yallist": "^3.0.2" 3552 - } 3553 - }, 3554 4986 "node_modules/magic-string": { 3555 4987 "version": "0.30.21", 3556 4988 "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 3557 4989 "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 3558 - "dev": true, 3559 4990 "license": "MIT", 3560 4991 "dependencies": { 3561 4992 "@jridgewell/sourcemap-codec": "^1.5.5" 3562 4993 } 3563 4994 }, 4995 + "node_modules/magicast": { 4996 + "version": "0.5.3", 4997 + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", 4998 + "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", 4999 + "license": "MIT", 5000 + "dependencies": { 5001 + "@babel/parser": "^7.29.3", 5002 + "@babel/types": "^7.29.0", 5003 + "source-map-js": "^1.2.1" 5004 + } 5005 + }, 5006 + "node_modules/mdast-util-to-hast": { 5007 + "version": "13.2.1", 5008 + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", 5009 + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", 5010 + "license": "MIT", 5011 + "dependencies": { 5012 + "@types/hast": "^3.0.0", 5013 + "@types/mdast": "^4.0.0", 5014 + "@ungap/structured-clone": "^1.0.0", 5015 + "devlop": "^1.0.0", 5016 + "micromark-util-sanitize-uri": "^2.0.0", 5017 + "trim-lines": "^3.0.0", 5018 + "unist-util-position": "^5.0.0", 5019 + "unist-util-visit": "^5.0.0", 5020 + "vfile": "^6.0.0" 5021 + }, 5022 + "funding": { 5023 + "type": "opencollective", 5024 + "url": "https://opencollective.com/unified" 5025 + } 5026 + }, 5027 + "node_modules/mdn-data": { 5028 + "version": "2.27.1", 5029 + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", 5030 + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", 5031 + "license": "CC0-1.0" 5032 + }, 5033 + "node_modules/micromark-util-character": { 5034 + "version": "2.1.1", 5035 + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", 5036 + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", 5037 + "funding": [ 5038 + { 5039 + "type": "GitHub Sponsors", 5040 + "url": "https://github.com/sponsors/unifiedjs" 5041 + }, 5042 + { 5043 + "type": "OpenCollective", 5044 + "url": "https://opencollective.com/unified" 5045 + } 5046 + ], 5047 + "license": "MIT", 5048 + "dependencies": { 5049 + "micromark-util-symbol": "^2.0.0", 5050 + "micromark-util-types": "^2.0.0" 5051 + } 5052 + }, 5053 + "node_modules/micromark-util-encode": { 5054 + "version": "2.0.1", 5055 + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", 5056 + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", 5057 + "funding": [ 5058 + { 5059 + "type": "GitHub Sponsors", 5060 + "url": "https://github.com/sponsors/unifiedjs" 5061 + }, 5062 + { 5063 + "type": "OpenCollective", 5064 + "url": "https://opencollective.com/unified" 5065 + } 5066 + ], 5067 + "license": "MIT" 5068 + }, 5069 + "node_modules/micromark-util-sanitize-uri": { 5070 + "version": "2.0.1", 5071 + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", 5072 + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", 5073 + "funding": [ 5074 + { 5075 + "type": "GitHub Sponsors", 5076 + "url": "https://github.com/sponsors/unifiedjs" 5077 + }, 5078 + { 5079 + "type": "OpenCollective", 5080 + "url": "https://opencollective.com/unified" 5081 + } 5082 + ], 5083 + "license": "MIT", 5084 + "dependencies": { 5085 + "micromark-util-character": "^2.0.0", 5086 + "micromark-util-encode": "^2.0.0", 5087 + "micromark-util-symbol": "^2.0.0" 5088 + } 5089 + }, 5090 + "node_modules/micromark-util-symbol": { 5091 + "version": "2.0.1", 5092 + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", 5093 + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", 5094 + "funding": [ 5095 + { 5096 + "type": "GitHub Sponsors", 5097 + "url": "https://github.com/sponsors/unifiedjs" 5098 + }, 5099 + { 5100 + "type": "OpenCollective", 5101 + "url": "https://opencollective.com/unified" 5102 + } 5103 + ], 5104 + "license": "MIT" 5105 + }, 5106 + "node_modules/micromark-util-types": { 5107 + "version": "2.0.2", 5108 + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", 5109 + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", 5110 + "funding": [ 5111 + { 5112 + "type": "GitHub Sponsors", 5113 + "url": "https://github.com/sponsors/unifiedjs" 5114 + }, 5115 + { 5116 + "type": "OpenCollective", 5117 + "url": "https://opencollective.com/unified" 5118 + } 5119 + ], 5120 + "license": "MIT" 5121 + }, 3564 5122 "node_modules/minimatch": { 3565 - "version": "3.1.2", 3566 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 3567 - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 5123 + "version": "3.1.5", 5124 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", 5125 + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", 3568 5126 "dev": true, 3569 5127 "license": "ISC", 3570 5128 "dependencies": { ··· 3574 5132 "node": "*" 3575 5133 } 3576 5134 }, 5135 + "node_modules/mrmime": { 5136 + "version": "2.0.1", 5137 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 5138 + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 5139 + "license": "MIT", 5140 + "engines": { 5141 + "node": ">=10" 5142 + } 5143 + }, 3577 5144 "node_modules/ms": { 3578 5145 "version": "2.1.3", 3579 5146 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", ··· 3582 5149 "license": "MIT" 3583 5150 }, 3584 5151 "node_modules/nanoid": { 3585 - "version": "3.3.11", 3586 - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", 3587 - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", 3588 - "dev": true, 5152 + "version": "3.3.15", 5153 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", 5154 + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", 3589 5155 "funding": [ 3590 5156 { 3591 5157 "type": "github", ··· 3607 5173 "dev": true, 3608 5174 "license": "MIT" 3609 5175 }, 3610 - "node_modules/node-releases": { 3611 - "version": "2.0.27", 3612 - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", 3613 - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", 3614 - "dev": true, 5176 + "node_modules/neotraverse": { 5177 + "version": "0.6.18", 5178 + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", 5179 + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", 5180 + "license": "MIT", 5181 + "engines": { 5182 + "node": ">= 10" 5183 + } 5184 + }, 5185 + "node_modules/nlcst-to-string": { 5186 + "version": "4.0.0", 5187 + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", 5188 + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", 5189 + "license": "MIT", 5190 + "dependencies": { 5191 + "@types/nlcst": "^2.0.0" 5192 + }, 5193 + "funding": { 5194 + "type": "opencollective", 5195 + "url": "https://opencollective.com/unified" 5196 + } 5197 + }, 5198 + "node_modules/node-fetch-native": { 5199 + "version": "1.6.7", 5200 + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", 5201 + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", 5202 + "license": "MIT" 5203 + }, 5204 + "node_modules/node-mock-http": { 5205 + "version": "1.0.4", 5206 + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", 5207 + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", 5208 + "license": "MIT" 5209 + }, 5210 + "node_modules/normalize-path": { 5211 + "version": "3.0.0", 5212 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 5213 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 5214 + "license": "MIT", 5215 + "engines": { 5216 + "node": ">=0.10.0" 5217 + } 5218 + }, 5219 + "node_modules/nth-check": { 5220 + "version": "2.1.1", 5221 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 5222 + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 5223 + "license": "BSD-2-Clause", 5224 + "dependencies": { 5225 + "boolbase": "^1.0.0" 5226 + }, 5227 + "funding": { 5228 + "url": "https://github.com/fb55/nth-check?sponsor=1" 5229 + } 5230 + }, 5231 + "node_modules/obug": { 5232 + "version": "2.1.3", 5233 + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", 5234 + "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", 5235 + "funding": [ 5236 + "https://github.com/sponsors/sxzz", 5237 + "https://opencollective.com/debug" 5238 + ], 5239 + "license": "MIT", 5240 + "engines": { 5241 + "node": ">=12.20.0" 5242 + } 5243 + }, 5244 + "node_modules/ofetch": { 5245 + "version": "1.5.1", 5246 + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", 5247 + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", 5248 + "license": "MIT", 5249 + "dependencies": { 5250 + "destr": "^2.0.5", 5251 + "node-fetch-native": "^1.6.7", 5252 + "ufo": "^1.6.1" 5253 + } 5254 + }, 5255 + "node_modules/ohash": { 5256 + "version": "2.0.11", 5257 + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", 5258 + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", 5259 + "license": "MIT" 5260 + }, 5261 + "node_modules/oniguruma-parser": { 5262 + "version": "0.12.2", 5263 + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", 5264 + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", 3615 5265 "license": "MIT" 5266 + }, 5267 + "node_modules/oniguruma-to-es": { 5268 + "version": "4.3.6", 5269 + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", 5270 + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", 5271 + "license": "MIT", 5272 + "dependencies": { 5273 + "oniguruma-parser": "^0.12.2", 5274 + "regex": "^6.1.0", 5275 + "regex-recursion": "^6.0.2" 5276 + } 3616 5277 }, 3617 5278 "node_modules/optionator": { 3618 5279 "version": "0.9.4", ··· 3664 5325 "url": "https://github.com/sponsors/sindresorhus" 3665 5326 } 3666 5327 }, 5328 + "node_modules/p-queue": { 5329 + "version": "9.3.0", 5330 + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", 5331 + "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", 5332 + "license": "MIT", 5333 + "dependencies": { 5334 + "eventemitter3": "^5.0.4", 5335 + "p-timeout": "^7.0.0" 5336 + }, 5337 + "engines": { 5338 + "node": ">=20" 5339 + }, 5340 + "funding": { 5341 + "url": "https://github.com/sponsors/sindresorhus" 5342 + } 5343 + }, 5344 + "node_modules/p-timeout": { 5345 + "version": "7.0.1", 5346 + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", 5347 + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", 5348 + "license": "MIT", 5349 + "engines": { 5350 + "node": ">=20" 5351 + }, 5352 + "funding": { 5353 + "url": "https://github.com/sponsors/sindresorhus" 5354 + } 5355 + }, 5356 + "node_modules/package-manager-detector": { 5357 + "version": "1.6.0", 5358 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.6.0.tgz", 5359 + "integrity": "sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==", 5360 + "license": "MIT" 5361 + }, 3667 5362 "node_modules/pako": { 3668 5363 "version": "0.2.9", 3669 5364 "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", ··· 3695 5390 "hex-rgb": "^4.1.0" 3696 5391 } 3697 5392 }, 5393 + "node_modules/parse5": { 5394 + "version": "7.3.0", 5395 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", 5396 + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", 5397 + "license": "MIT", 5398 + "dependencies": { 5399 + "entities": "^6.0.0" 5400 + }, 5401 + "funding": { 5402 + "url": "https://github.com/inikulin/parse5?sponsor=1" 5403 + } 5404 + }, 3698 5405 "node_modules/path-exists": { 3699 5406 "version": "4.0.0", 3700 5407 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", ··· 3715 5422 "node": ">=8" 3716 5423 } 3717 5424 }, 5425 + "node_modules/piccolore": { 5426 + "version": "0.1.3", 5427 + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", 5428 + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", 5429 + "license": "ISC" 5430 + }, 3718 5431 "node_modules/picocolors": { 3719 5432 "version": "1.1.1", 3720 5433 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 3721 5434 "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 3722 - "dev": true, 3723 5435 "license": "ISC" 3724 5436 }, 3725 5437 "node_modules/picomatch": { 3726 - "version": "4.0.3", 3727 - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", 3728 - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", 3729 - "dev": true, 5438 + "version": "4.0.4", 5439 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", 5440 + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", 3730 5441 "license": "MIT", 3731 5442 "engines": { 3732 5443 "node": ">=12" ··· 3736 5447 } 3737 5448 }, 3738 5449 "node_modules/postcss": { 3739 - "version": "8.5.6", 3740 - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", 3741 - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", 3742 - "dev": true, 5450 + "version": "8.5.15", 5451 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", 5452 + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", 3743 5453 "funding": [ 3744 5454 { 3745 5455 "type": "opencollective", ··· 3756 5466 ], 3757 5467 "license": "MIT", 3758 5468 "dependencies": { 3759 - "nanoid": "^3.3.11", 5469 + "nanoid": "^3.3.12", 3760 5470 "picocolors": "^1.1.1", 3761 5471 "source-map-js": "^1.2.1" 3762 5472 }, ··· 3781 5491 "node": ">= 0.8.0" 3782 5492 } 3783 5493 }, 5494 + "node_modules/prettier": { 5495 + "version": "3.8.4", 5496 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", 5497 + "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", 5498 + "dev": true, 5499 + "license": "MIT", 5500 + "bin": { 5501 + "prettier": "bin/prettier.cjs" 5502 + }, 5503 + "engines": { 5504 + "node": ">=14" 5505 + }, 5506 + "funding": { 5507 + "url": "https://github.com/prettier/prettier?sponsor=1" 5508 + } 5509 + }, 5510 + "node_modules/prettier-plugin-astro": { 5511 + "version": "0.14.1", 5512 + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz", 5513 + "integrity": "sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==", 5514 + "dev": true, 5515 + "license": "MIT", 5516 + "dependencies": { 5517 + "@astrojs/compiler": "^2.9.1", 5518 + "prettier": "^3.0.0", 5519 + "sass-formatter": "^0.7.6" 5520 + }, 5521 + "engines": { 5522 + "node": "^14.15.0 || >=16.0.0" 5523 + } 5524 + }, 5525 + "node_modules/prismjs": { 5526 + "version": "1.30.0", 5527 + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", 5528 + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", 5529 + "license": "MIT", 5530 + "engines": { 5531 + "node": ">=6" 5532 + } 5533 + }, 5534 + "node_modules/process-ancestry": { 5535 + "version": "0.1.0", 5536 + "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", 5537 + "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", 5538 + "license": "MIT", 5539 + "engines": { 5540 + "node": ">=18.0.0" 5541 + } 5542 + }, 5543 + "node_modules/property-information": { 5544 + "version": "7.2.0", 5545 + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", 5546 + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", 5547 + "license": "MIT", 5548 + "funding": { 5549 + "type": "github", 5550 + "url": "https://github.com/sponsors/wooorm" 5551 + } 5552 + }, 3784 5553 "node_modules/punycode": { 3785 5554 "version": "2.3.1", 3786 5555 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", ··· 3791 5560 "node": ">=6" 3792 5561 } 3793 5562 }, 3794 - "node_modules/react": { 3795 - "version": "19.2.3", 3796 - "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", 3797 - "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", 5563 + "node_modules/radix3": { 5564 + "version": "1.1.2", 5565 + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", 5566 + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", 5567 + "license": "MIT" 5568 + }, 5569 + "node_modules/readdirp": { 5570 + "version": "5.0.0", 5571 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", 5572 + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", 3798 5573 "license": "MIT", 3799 5574 "engines": { 3800 - "node": ">=0.10.0" 5575 + "node": ">= 20.19.0" 5576 + }, 5577 + "funding": { 5578 + "type": "individual", 5579 + "url": "https://paulmillr.com/funding/" 5580 + } 5581 + }, 5582 + "node_modules/regex": { 5583 + "version": "6.1.0", 5584 + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", 5585 + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", 5586 + "license": "MIT", 5587 + "dependencies": { 5588 + "regex-utilities": "^2.3.0" 3801 5589 } 3802 5590 }, 3803 - "node_modules/react-dom": { 3804 - "version": "19.2.3", 3805 - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", 3806 - "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", 5591 + "node_modules/regex-recursion": { 5592 + "version": "6.0.2", 5593 + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", 5594 + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", 3807 5595 "license": "MIT", 3808 5596 "dependencies": { 3809 - "scheduler": "^0.27.0" 5597 + "regex-utilities": "^2.3.0" 5598 + } 5599 + }, 5600 + "node_modules/regex-utilities": { 5601 + "version": "2.3.0", 5602 + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", 5603 + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", 5604 + "license": "MIT" 5605 + }, 5606 + "node_modules/rehype": { 5607 + "version": "13.0.2", 5608 + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", 5609 + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", 5610 + "license": "MIT", 5611 + "dependencies": { 5612 + "@types/hast": "^3.0.0", 5613 + "rehype-parse": "^9.0.0", 5614 + "rehype-stringify": "^10.0.0", 5615 + "unified": "^11.0.0" 3810 5616 }, 3811 - "peerDependencies": { 3812 - "react": "^19.2.3" 5617 + "funding": { 5618 + "type": "opencollective", 5619 + "url": "https://opencollective.com/unified" 3813 5620 } 3814 5621 }, 3815 - "node_modules/react-refresh": { 3816 - "version": "0.18.0", 3817 - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", 3818 - "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", 3819 - "dev": true, 5622 + "node_modules/rehype-parse": { 5623 + "version": "9.0.1", 5624 + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", 5625 + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", 5626 + "license": "MIT", 5627 + "dependencies": { 5628 + "@types/hast": "^3.0.0", 5629 + "hast-util-from-html": "^2.0.0", 5630 + "unified": "^11.0.0" 5631 + }, 5632 + "funding": { 5633 + "type": "opencollective", 5634 + "url": "https://opencollective.com/unified" 5635 + } 5636 + }, 5637 + "node_modules/rehype-stringify": { 5638 + "version": "10.0.1", 5639 + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", 5640 + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", 3820 5641 "license": "MIT", 3821 - "engines": { 3822 - "node": ">=0.10.0" 5642 + "dependencies": { 5643 + "@types/hast": "^3.0.0", 5644 + "hast-util-to-html": "^9.0.0", 5645 + "unified": "^11.0.0" 5646 + }, 5647 + "funding": { 5648 + "type": "opencollective", 5649 + "url": "https://opencollective.com/unified" 3823 5650 } 3824 5651 }, 3825 5652 "node_modules/resolve-from": { ··· 3832 5659 "node": ">=4" 3833 5660 } 3834 5661 }, 3835 - "node_modules/rollup": { 3836 - "version": "4.55.3", 3837 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.3.tgz", 3838 - "integrity": "sha512-y9yUpfQvetAjiDLtNMf1hL9NXchIJgWt6zIKeoB+tCd3npX08Eqfzg60V9DhIGVMtQ0AlMkFw5xa+AQ37zxnAA==", 3839 - "dev": true, 5662 + "node_modules/resolve-pkg-maps": { 5663 + "version": "1.0.0", 5664 + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", 5665 + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", 5666 + "license": "MIT", 5667 + "funding": { 5668 + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" 5669 + } 5670 + }, 5671 + "node_modules/retext-smartypants": { 5672 + "version": "6.2.0", 5673 + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", 5674 + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", 5675 + "license": "MIT", 5676 + "dependencies": { 5677 + "@types/nlcst": "^2.0.0", 5678 + "nlcst-to-string": "^4.0.0", 5679 + "unist-util-visit": "^5.0.0" 5680 + }, 5681 + "funding": { 5682 + "type": "opencollective", 5683 + "url": "https://opencollective.com/unified" 5684 + } 5685 + }, 5686 + "node_modules/rolldown": { 5687 + "version": "1.0.3", 5688 + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", 5689 + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", 3840 5690 "license": "MIT", 3841 5691 "dependencies": { 3842 - "@types/estree": "1.0.8" 5692 + "@oxc-project/types": "=0.133.0", 5693 + "@rolldown/pluginutils": "^1.0.0" 3843 5694 }, 3844 5695 "bin": { 3845 - "rollup": "dist/bin/rollup" 5696 + "rolldown": "bin/cli.mjs" 3846 5697 }, 3847 5698 "engines": { 3848 - "node": ">=18.0.0", 3849 - "npm": ">=8.0.0" 5699 + "node": "^20.19.0 || >=22.12.0" 3850 5700 }, 3851 5701 "optionalDependencies": { 3852 - "@rollup/rollup-android-arm-eabi": "4.55.3", 3853 - "@rollup/rollup-android-arm64": "4.55.3", 3854 - "@rollup/rollup-darwin-arm64": "4.55.3", 3855 - "@rollup/rollup-darwin-x64": "4.55.3", 3856 - "@rollup/rollup-freebsd-arm64": "4.55.3", 3857 - "@rollup/rollup-freebsd-x64": "4.55.3", 3858 - "@rollup/rollup-linux-arm-gnueabihf": "4.55.3", 3859 - "@rollup/rollup-linux-arm-musleabihf": "4.55.3", 3860 - "@rollup/rollup-linux-arm64-gnu": "4.55.3", 3861 - "@rollup/rollup-linux-arm64-musl": "4.55.3", 3862 - "@rollup/rollup-linux-loong64-gnu": "4.55.3", 3863 - "@rollup/rollup-linux-loong64-musl": "4.55.3", 3864 - "@rollup/rollup-linux-ppc64-gnu": "4.55.3", 3865 - "@rollup/rollup-linux-ppc64-musl": "4.55.3", 3866 - "@rollup/rollup-linux-riscv64-gnu": "4.55.3", 3867 - "@rollup/rollup-linux-riscv64-musl": "4.55.3", 3868 - "@rollup/rollup-linux-s390x-gnu": "4.55.3", 3869 - "@rollup/rollup-linux-x64-gnu": "4.55.3", 3870 - "@rollup/rollup-linux-x64-musl": "4.55.3", 3871 - "@rollup/rollup-openbsd-x64": "4.55.3", 3872 - "@rollup/rollup-openharmony-arm64": "4.55.3", 3873 - "@rollup/rollup-win32-arm64-msvc": "4.55.3", 3874 - "@rollup/rollup-win32-ia32-msvc": "4.55.3", 3875 - "@rollup/rollup-win32-x64-gnu": "4.55.3", 3876 - "@rollup/rollup-win32-x64-msvc": "4.55.3", 3877 - "fsevents": "~2.3.2" 5702 + "@rolldown/binding-android-arm64": "1.0.3", 5703 + "@rolldown/binding-darwin-arm64": "1.0.3", 5704 + "@rolldown/binding-darwin-x64": "1.0.3", 5705 + "@rolldown/binding-freebsd-x64": "1.0.3", 5706 + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", 5707 + "@rolldown/binding-linux-arm64-gnu": "1.0.3", 5708 + "@rolldown/binding-linux-arm64-musl": "1.0.3", 5709 + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", 5710 + "@rolldown/binding-linux-s390x-gnu": "1.0.3", 5711 + "@rolldown/binding-linux-x64-gnu": "1.0.3", 5712 + "@rolldown/binding-linux-x64-musl": "1.0.3", 5713 + "@rolldown/binding-openharmony-arm64": "1.0.3", 5714 + "@rolldown/binding-wasm32-wasi": "1.0.3", 5715 + "@rolldown/binding-win32-arm64-msvc": "1.0.3", 5716 + "@rolldown/binding-win32-x64-msvc": "1.0.3" 5717 + } 5718 + }, 5719 + "node_modules/s.color": { 5720 + "version": "0.0.15", 5721 + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", 5722 + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", 5723 + "dev": true, 5724 + "license": "MIT" 5725 + }, 5726 + "node_modules/sass-formatter": { 5727 + "version": "0.7.9", 5728 + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", 5729 + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", 5730 + "dev": true, 5731 + "license": "MIT", 5732 + "dependencies": { 5733 + "suf-log": "^2.5.3" 3878 5734 } 3879 5735 }, 3880 5736 "node_modules/satori": { 3881 - "version": "0.19.1", 3882 - "resolved": "https://registry.npmjs.org/satori/-/satori-0.19.1.tgz", 3883 - "integrity": "sha512-/XaT/JiWLfNlgjlQdde4wXB1/6F+FEze9c3OW2QIH0ywsfOrY57YOetgESWyOFHW3JfEQ6dJAo2U9Xwb7+DDAw==", 5737 + "version": "0.26.0", 5738 + "resolved": "https://registry.npmjs.org/satori/-/satori-0.26.0.tgz", 5739 + "integrity": "sha512-tkMFrfIs3l2mQ2JEcyW0ADTy3zGggFRFzi6Ef8YozQSFsFKEqaSO1Y8F9wJg4//PJGQauMalHGTUEkPrFwhVPA==", 3884 5740 "dev": true, 3885 5741 "license": "MPL-2.0", 3886 5742 "dependencies": { ··· 3900 5756 "node": ">=16" 3901 5757 } 3902 5758 }, 3903 - "node_modules/scheduler": { 3904 - "version": "0.27.0", 3905 - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", 3906 - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", 3907 - "license": "MIT" 5759 + "node_modules/satteri": { 5760 + "version": "0.9.1", 5761 + "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.9.1.tgz", 5762 + "integrity": "sha512-0oIBjwDxWvz8ePRSBxv8vEdZ0GI25/UcSq11y4651tJztUAmZlIdPjFx8luqBAM22g8YKVr5R17KaaZ2kIfLrw==", 5763 + "dependencies": { 5764 + "@types/estree-jsx": "^1.0.5", 5765 + "@types/hast": "^3.0.4", 5766 + "@types/mdast": "^4.0.4", 5767 + "@types/unist": "^3.0.3" 5768 + }, 5769 + "optionalDependencies": { 5770 + "@bruits/satteri-darwin-arm64": "0.9.1", 5771 + "@bruits/satteri-darwin-x64": "0.9.1", 5772 + "@bruits/satteri-linux-x64-gnu": "0.9.1", 5773 + "@bruits/satteri-wasm32-wasi": "0.9.1", 5774 + "@bruits/satteri-win32-x64-msvc": "0.9.1" 5775 + } 5776 + }, 5777 + "node_modules/sax": { 5778 + "version": "1.6.0", 5779 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", 5780 + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", 5781 + "license": "BlueOak-1.0.0", 5782 + "engines": { 5783 + "node": ">=11.0.0" 5784 + } 3908 5785 }, 3909 5786 "node_modules/semver": { 3910 - "version": "6.3.1", 3911 - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 3912 - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 3913 - "dev": true, 5787 + "version": "7.8.5", 5788 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", 5789 + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", 3914 5790 "license": "ISC", 3915 5791 "bin": { 3916 5792 "semver": "bin/semver.js" 5793 + }, 5794 + "engines": { 5795 + "node": ">=10" 5796 + } 5797 + }, 5798 + "node_modules/sharp": { 5799 + "version": "0.34.5", 5800 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", 5801 + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", 5802 + "hasInstallScript": true, 5803 + "license": "Apache-2.0", 5804 + "optional": true, 5805 + "dependencies": { 5806 + "@img/colour": "^1.0.0", 5807 + "detect-libc": "^2.1.2", 5808 + "semver": "^7.7.3" 5809 + }, 5810 + "engines": { 5811 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 5812 + }, 5813 + "funding": { 5814 + "url": "https://opencollective.com/libvips" 5815 + }, 5816 + "optionalDependencies": { 5817 + "@img/sharp-darwin-arm64": "0.34.5", 5818 + "@img/sharp-darwin-x64": "0.34.5", 5819 + "@img/sharp-libvips-darwin-arm64": "1.2.4", 5820 + "@img/sharp-libvips-darwin-x64": "1.2.4", 5821 + "@img/sharp-libvips-linux-arm": "1.2.4", 5822 + "@img/sharp-libvips-linux-arm64": "1.2.4", 5823 + "@img/sharp-libvips-linux-ppc64": "1.2.4", 5824 + "@img/sharp-libvips-linux-riscv64": "1.2.4", 5825 + "@img/sharp-libvips-linux-s390x": "1.2.4", 5826 + "@img/sharp-libvips-linux-x64": "1.2.4", 5827 + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", 5828 + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", 5829 + "@img/sharp-linux-arm": "0.34.5", 5830 + "@img/sharp-linux-arm64": "0.34.5", 5831 + "@img/sharp-linux-ppc64": "0.34.5", 5832 + "@img/sharp-linux-riscv64": "0.34.5", 5833 + "@img/sharp-linux-s390x": "0.34.5", 5834 + "@img/sharp-linux-x64": "0.34.5", 5835 + "@img/sharp-linuxmusl-arm64": "0.34.5", 5836 + "@img/sharp-linuxmusl-x64": "0.34.5", 5837 + "@img/sharp-wasm32": "0.34.5", 5838 + "@img/sharp-win32-arm64": "0.34.5", 5839 + "@img/sharp-win32-ia32": "0.34.5", 5840 + "@img/sharp-win32-x64": "0.34.5" 3917 5841 } 3918 5842 }, 3919 5843 "node_modules/shebang-command": { ··· 3939 5863 "node": ">=8" 3940 5864 } 3941 5865 }, 5866 + "node_modules/shiki": { 5867 + "version": "4.2.0", 5868 + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.2.0.tgz", 5869 + "integrity": "sha512-hjNax6o/ylDy9lefQEaSDtzaT3iVNtZ3WmpQnbuQNoG4xvnSKf2kSKbihZVO4JRG1TTMejs7CmNRYlWgAL66pQ==", 5870 + "license": "MIT", 5871 + "dependencies": { 5872 + "@shikijs/core": "4.2.0", 5873 + "@shikijs/engine-javascript": "4.2.0", 5874 + "@shikijs/engine-oniguruma": "4.2.0", 5875 + "@shikijs/langs": "4.2.0", 5876 + "@shikijs/themes": "4.2.0", 5877 + "@shikijs/types": "4.2.0", 5878 + "@shikijs/vscode-textmate": "^10.0.2", 5879 + "@types/hast": "^3.0.4" 5880 + }, 5881 + "engines": { 5882 + "node": ">=20" 5883 + } 5884 + }, 5885 + "node_modules/sisteransi": { 5886 + "version": "1.0.5", 5887 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 5888 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", 5889 + "license": "MIT" 5890 + }, 5891 + "node_modules/sitemap": { 5892 + "version": "9.0.1", 5893 + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", 5894 + "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", 5895 + "license": "MIT", 5896 + "dependencies": { 5897 + "@types/node": "^24.9.2", 5898 + "@types/sax": "^1.2.1", 5899 + "arg": "^5.0.0", 5900 + "sax": "^1.4.1" 5901 + }, 5902 + "bin": { 5903 + "sitemap": "dist/esm/cli.js" 5904 + }, 5905 + "engines": { 5906 + "node": ">=20.19.5", 5907 + "npm": ">=10.8.2" 5908 + } 5909 + }, 5910 + "node_modules/sitemap/node_modules/@types/node": { 5911 + "version": "24.13.2", 5912 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", 5913 + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", 5914 + "license": "MIT", 5915 + "dependencies": { 5916 + "undici-types": "~7.18.0" 5917 + } 5918 + }, 5919 + "node_modules/sitemap/node_modules/undici-types": { 5920 + "version": "7.18.2", 5921 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", 5922 + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", 5923 + "license": "MIT" 5924 + }, 5925 + "node_modules/smol-toml": { 5926 + "version": "1.6.1", 5927 + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", 5928 + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", 5929 + "license": "BSD-3-Clause", 5930 + "engines": { 5931 + "node": ">= 18" 5932 + }, 5933 + "funding": { 5934 + "url": "https://github.com/sponsors/cyyynthia" 5935 + } 5936 + }, 3942 5937 "node_modules/source-map-js": { 3943 5938 "version": "1.2.1", 3944 5939 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 3945 5940 "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 3946 - "dev": true, 3947 5941 "license": "BSD-3-Clause", 3948 5942 "engines": { 3949 5943 "node": ">=0.10.0" 3950 5944 } 3951 5945 }, 5946 + "node_modules/space-separated-tokens": { 5947 + "version": "2.0.2", 5948 + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", 5949 + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", 5950 + "license": "MIT", 5951 + "funding": { 5952 + "type": "github", 5953 + "url": "https://github.com/sponsors/wooorm" 5954 + } 5955 + }, 5956 + "node_modules/stream-replace-string": { 5957 + "version": "2.0.0", 5958 + "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", 5959 + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", 5960 + "license": "MIT" 5961 + }, 3952 5962 "node_modules/string.prototype.codepointat": { 3953 5963 "version": "0.2.1", 3954 5964 "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", ··· 3956 5966 "dev": true, 3957 5967 "license": "MIT" 3958 5968 }, 5969 + "node_modules/stringify-entities": { 5970 + "version": "4.0.4", 5971 + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", 5972 + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", 5973 + "license": "MIT", 5974 + "dependencies": { 5975 + "character-entities-html4": "^2.0.0", 5976 + "character-entities-legacy": "^3.0.0" 5977 + }, 5978 + "funding": { 5979 + "type": "github", 5980 + "url": "https://github.com/sponsors/wooorm" 5981 + } 5982 + }, 3959 5983 "node_modules/strip-json-comments": { 3960 5984 "version": "3.1.1", 3961 5985 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", ··· 3969 5993 "url": "https://github.com/sponsors/sindresorhus" 3970 5994 } 3971 5995 }, 5996 + "node_modules/suf-log": { 5997 + "version": "2.5.3", 5998 + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", 5999 + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", 6000 + "dev": true, 6001 + "license": "MIT", 6002 + "dependencies": { 6003 + "s.color": "0.0.15" 6004 + } 6005 + }, 3972 6006 "node_modules/supports-color": { 3973 6007 "version": "7.2.0", 3974 6008 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", ··· 3982 6016 "node": ">=8" 3983 6017 } 3984 6018 }, 6019 + "node_modules/svgo": { 6020 + "version": "4.0.1", 6021 + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", 6022 + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", 6023 + "license": "MIT", 6024 + "dependencies": { 6025 + "commander": "^11.1.0", 6026 + "css-select": "^5.1.0", 6027 + "css-tree": "^3.0.1", 6028 + "css-what": "^6.1.0", 6029 + "csso": "^5.0.5", 6030 + "picocolors": "^1.1.1", 6031 + "sax": "^1.5.0" 6032 + }, 6033 + "bin": { 6034 + "svgo": "bin/svgo.js" 6035 + }, 6036 + "engines": { 6037 + "node": ">=16" 6038 + }, 6039 + "funding": { 6040 + "type": "opencollective", 6041 + "url": "https://opencollective.com/svgo" 6042 + } 6043 + }, 3985 6044 "node_modules/tailwindcss": { 3986 - "version": "4.1.18", 3987 - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", 3988 - "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", 6045 + "version": "4.3.1", 6046 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", 6047 + "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", 3989 6048 "dev": true, 3990 6049 "license": "MIT" 3991 6050 }, 3992 6051 "node_modules/tapable": { 3993 - "version": "2.3.0", 3994 - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", 3995 - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", 6052 + "version": "2.3.3", 6053 + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", 6054 + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", 3996 6055 "dev": true, 3997 6056 "license": "MIT", 3998 6057 "engines": { ··· 4007 6066 "version": "1.0.3", 4008 6067 "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", 4009 6068 "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", 4010 - "dev": true, 4011 6069 "license": "MIT" 4012 6070 }, 6071 + "node_modules/tinyclip": { 6072 + "version": "0.1.14", 6073 + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.14.tgz", 6074 + "integrity": "sha512-F1oWdz8tjT17qe1d5JgDK6z03WGOhYYAN0lK3/D/fzNiy93xswLLEw7pk+3g05onhAy6Bsc6PLNUGhdgVjemMQ==", 6075 + "license": "MIT", 6076 + "engines": { 6077 + "node": "^16.14.0 || >= 17.3.0" 6078 + } 6079 + }, 6080 + "node_modules/tinyexec": { 6081 + "version": "1.2.4", 6082 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", 6083 + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", 6084 + "license": "MIT", 6085 + "engines": { 6086 + "node": ">=18" 6087 + } 6088 + }, 4013 6089 "node_modules/tinyglobby": { 4014 - "version": "0.2.15", 4015 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 4016 - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 4017 - "dev": true, 6090 + "version": "0.2.17", 6091 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", 6092 + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", 4018 6093 "license": "MIT", 4019 6094 "dependencies": { 4020 6095 "fdir": "^6.5.0", 4021 - "picomatch": "^4.0.3" 6096 + "picomatch": "^4.0.4" 4022 6097 }, 4023 6098 "engines": { 4024 6099 "node": ">=12.0.0" ··· 4027 6102 "url": "https://github.com/sponsors/SuperchupuDev" 4028 6103 } 4029 6104 }, 6105 + "node_modules/trim-lines": { 6106 + "version": "3.0.1", 6107 + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", 6108 + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", 6109 + "license": "MIT", 6110 + "funding": { 6111 + "type": "github", 6112 + "url": "https://github.com/sponsors/wooorm" 6113 + } 6114 + }, 6115 + "node_modules/trough": { 6116 + "version": "2.2.0", 6117 + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", 6118 + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", 6119 + "license": "MIT", 6120 + "funding": { 6121 + "type": "github", 6122 + "url": "https://github.com/sponsors/wooorm" 6123 + } 6124 + }, 4030 6125 "node_modules/ts-api-utils": { 4031 - "version": "2.4.0", 4032 - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", 4033 - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", 6126 + "version": "2.5.0", 6127 + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", 6128 + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", 4034 6129 "dev": true, 4035 6130 "license": "MIT", 4036 6131 "engines": { ··· 4040 6135 "typescript": ">=4.8.4" 4041 6136 } 4042 6137 }, 6138 + "node_modules/tslib": { 6139 + "version": "2.8.1", 6140 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 6141 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 6142 + "license": "0BSD", 6143 + "optional": true 6144 + }, 4043 6145 "node_modules/type-check": { 4044 6146 "version": "0.4.0", 4045 6147 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", ··· 4054 6156 } 4055 6157 }, 4056 6158 "node_modules/typescript": { 4057 - "version": "5.9.3", 4058 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 4059 - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 6159 + "version": "6.0.3", 6160 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", 6161 + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", 4060 6162 "dev": true, 4061 6163 "license": "Apache-2.0", 4062 6164 "bin": { ··· 4068 6170 } 4069 6171 }, 4070 6172 "node_modules/typescript-eslint": { 4071 - "version": "8.53.1", 4072 - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.1.tgz", 4073 - "integrity": "sha512-gB+EVQfP5RDElh9ittfXlhZJdjSU4jUSTyE2+ia8CYyNvet4ElfaLlAIqDvQV9JPknKx0jQH1racTYe/4LaLSg==", 6173 + "version": "8.61.1", 6174 + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.61.1.tgz", 6175 + "integrity": "sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==", 4074 6176 "dev": true, 4075 6177 "license": "MIT", 4076 6178 "dependencies": { 4077 - "@typescript-eslint/eslint-plugin": "8.53.1", 4078 - "@typescript-eslint/parser": "8.53.1", 4079 - "@typescript-eslint/typescript-estree": "8.53.1", 4080 - "@typescript-eslint/utils": "8.53.1" 6179 + "@typescript-eslint/eslint-plugin": "8.61.1", 6180 + "@typescript-eslint/parser": "8.61.1", 6181 + "@typescript-eslint/typescript-estree": "8.61.1", 6182 + "@typescript-eslint/utils": "8.61.1" 4081 6183 }, 4082 6184 "engines": { 4083 6185 "node": "^18.18.0 || ^20.9.0 || >=21.1.0" ··· 4087 6189 "url": "https://opencollective.com/typescript-eslint" 4088 6190 }, 4089 6191 "peerDependencies": { 4090 - "eslint": "^8.57.0 || ^9.0.0", 4091 - "typescript": ">=4.8.4 <6.0.0" 6192 + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", 6193 + "typescript": ">=4.8.4 <6.1.0" 4092 6194 } 4093 6195 }, 6196 + "node_modules/ufo": { 6197 + "version": "1.6.4", 6198 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", 6199 + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", 6200 + "license": "MIT" 6201 + }, 6202 + "node_modules/ultrahtml": { 6203 + "version": "1.6.0", 6204 + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", 6205 + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", 6206 + "license": "MIT" 6207 + }, 6208 + "node_modules/uncrypto": { 6209 + "version": "0.1.3", 6210 + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", 6211 + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", 6212 + "license": "MIT" 6213 + }, 4094 6214 "node_modules/undici-types": { 4095 - "version": "7.16.0", 4096 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 4097 - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 4098 - "dev": true, 6215 + "version": "8.3.0", 6216 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", 6217 + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", 4099 6218 "license": "MIT" 4100 6219 }, 4101 6220 "node_modules/unicode-trie": { ··· 4109 6228 "tiny-inflate": "^1.0.0" 4110 6229 } 4111 6230 }, 4112 - "node_modules/update-browserslist-db": { 4113 - "version": "1.2.3", 4114 - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", 4115 - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", 4116 - "dev": true, 4117 - "funding": [ 4118 - { 4119 - "type": "opencollective", 4120 - "url": "https://opencollective.com/browserslist" 4121 - }, 4122 - { 4123 - "type": "tidelift", 4124 - "url": "https://tidelift.com/funding/github/npm/browserslist" 4125 - }, 4126 - { 4127 - "type": "github", 4128 - "url": "https://github.com/sponsors/ai" 4129 - } 4130 - ], 6231 + "node_modules/unified": { 6232 + "version": "11.0.5", 6233 + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", 6234 + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", 6235 + "license": "MIT", 6236 + "dependencies": { 6237 + "@types/unist": "^3.0.0", 6238 + "bail": "^2.0.0", 6239 + "devlop": "^1.0.0", 6240 + "extend": "^3.0.0", 6241 + "is-plain-obj": "^4.0.0", 6242 + "trough": "^2.0.0", 6243 + "vfile": "^6.0.0" 6244 + }, 6245 + "funding": { 6246 + "type": "opencollective", 6247 + "url": "https://opencollective.com/unified" 6248 + } 6249 + }, 6250 + "node_modules/unifont": { 6251 + "version": "0.7.4", 6252 + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.4.tgz", 6253 + "integrity": "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==", 6254 + "license": "MIT", 6255 + "dependencies": { 6256 + "css-tree": "^3.1.0", 6257 + "ofetch": "^1.5.1", 6258 + "ohash": "^2.0.11" 6259 + } 6260 + }, 6261 + "node_modules/unist-util-is": { 6262 + "version": "6.0.1", 6263 + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", 6264 + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", 6265 + "license": "MIT", 6266 + "dependencies": { 6267 + "@types/unist": "^3.0.0" 6268 + }, 6269 + "funding": { 6270 + "type": "opencollective", 6271 + "url": "https://opencollective.com/unified" 6272 + } 6273 + }, 6274 + "node_modules/unist-util-position": { 6275 + "version": "5.0.0", 6276 + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", 6277 + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", 4131 6278 "license": "MIT", 4132 6279 "dependencies": { 4133 - "escalade": "^3.2.0", 4134 - "picocolors": "^1.1.1" 6280 + "@types/unist": "^3.0.0" 4135 6281 }, 4136 - "bin": { 4137 - "update-browserslist-db": "cli.js" 6282 + "funding": { 6283 + "type": "opencollective", 6284 + "url": "https://opencollective.com/unified" 6285 + } 6286 + }, 6287 + "node_modules/unist-util-stringify-position": { 6288 + "version": "4.0.0", 6289 + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", 6290 + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", 6291 + "license": "MIT", 6292 + "dependencies": { 6293 + "@types/unist": "^3.0.0" 6294 + }, 6295 + "funding": { 6296 + "type": "opencollective", 6297 + "url": "https://opencollective.com/unified" 6298 + } 6299 + }, 6300 + "node_modules/unist-util-visit": { 6301 + "version": "5.1.0", 6302 + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", 6303 + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", 6304 + "license": "MIT", 6305 + "dependencies": { 6306 + "@types/unist": "^3.0.0", 6307 + "unist-util-is": "^6.0.0", 6308 + "unist-util-visit-parents": "^6.0.0" 6309 + }, 6310 + "funding": { 6311 + "type": "opencollective", 6312 + "url": "https://opencollective.com/unified" 6313 + } 6314 + }, 6315 + "node_modules/unist-util-visit-parents": { 6316 + "version": "6.0.2", 6317 + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", 6318 + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", 6319 + "license": "MIT", 6320 + "dependencies": { 6321 + "@types/unist": "^3.0.0", 6322 + "unist-util-is": "^6.0.0" 6323 + }, 6324 + "funding": { 6325 + "type": "opencollective", 6326 + "url": "https://opencollective.com/unified" 6327 + } 6328 + }, 6329 + "node_modules/unstorage": { 6330 + "version": "1.17.5", 6331 + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", 6332 + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", 6333 + "license": "MIT", 6334 + "dependencies": { 6335 + "anymatch": "^3.1.3", 6336 + "chokidar": "^5.0.0", 6337 + "destr": "^2.0.5", 6338 + "h3": "^1.15.10", 6339 + "lru-cache": "^11.2.7", 6340 + "node-fetch-native": "^1.6.7", 6341 + "ofetch": "^1.5.1", 6342 + "ufo": "^1.6.3" 4138 6343 }, 4139 6344 "peerDependencies": { 4140 - "browserslist": ">= 4.21.0" 6345 + "@azure/app-configuration": "^1.8.0", 6346 + "@azure/cosmos": "^4.2.0", 6347 + "@azure/data-tables": "^13.3.0", 6348 + "@azure/identity": "^4.6.0", 6349 + "@azure/keyvault-secrets": "^4.9.0", 6350 + "@azure/storage-blob": "^12.26.0", 6351 + "@capacitor/preferences": "^6 || ^7 || ^8", 6352 + "@deno/kv": ">=0.9.0", 6353 + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", 6354 + "@planetscale/database": "^1.19.0", 6355 + "@upstash/redis": "^1.34.3", 6356 + "@vercel/blob": ">=0.27.1", 6357 + "@vercel/functions": "^2.2.12 || ^3.0.0", 6358 + "@vercel/kv": "^1 || ^2 || ^3", 6359 + "aws4fetch": "^1.0.20", 6360 + "db0": ">=0.2.1", 6361 + "idb-keyval": "^6.2.1", 6362 + "ioredis": "^5.4.2", 6363 + "uploadthing": "^7.4.4" 6364 + }, 6365 + "peerDependenciesMeta": { 6366 + "@azure/app-configuration": { 6367 + "optional": true 6368 + }, 6369 + "@azure/cosmos": { 6370 + "optional": true 6371 + }, 6372 + "@azure/data-tables": { 6373 + "optional": true 6374 + }, 6375 + "@azure/identity": { 6376 + "optional": true 6377 + }, 6378 + "@azure/keyvault-secrets": { 6379 + "optional": true 6380 + }, 6381 + "@azure/storage-blob": { 6382 + "optional": true 6383 + }, 6384 + "@capacitor/preferences": { 6385 + "optional": true 6386 + }, 6387 + "@deno/kv": { 6388 + "optional": true 6389 + }, 6390 + "@netlify/blobs": { 6391 + "optional": true 6392 + }, 6393 + "@planetscale/database": { 6394 + "optional": true 6395 + }, 6396 + "@upstash/redis": { 6397 + "optional": true 6398 + }, 6399 + "@vercel/blob": { 6400 + "optional": true 6401 + }, 6402 + "@vercel/functions": { 6403 + "optional": true 6404 + }, 6405 + "@vercel/kv": { 6406 + "optional": true 6407 + }, 6408 + "aws4fetch": { 6409 + "optional": true 6410 + }, 6411 + "db0": { 6412 + "optional": true 6413 + }, 6414 + "idb-keyval": { 6415 + "optional": true 6416 + }, 6417 + "ioredis": { 6418 + "optional": true 6419 + }, 6420 + "uploadthing": { 6421 + "optional": true 6422 + } 6423 + } 6424 + }, 6425 + "node_modules/unstorage/node_modules/lru-cache": { 6426 + "version": "11.5.1", 6427 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", 6428 + "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", 6429 + "license": "BlueOak-1.0.0", 6430 + "engines": { 6431 + "node": "20 || >=22" 4141 6432 } 4142 6433 }, 4143 6434 "node_modules/uri-js": { ··· 4150 6441 "punycode": "^2.1.0" 4151 6442 } 4152 6443 }, 6444 + "node_modules/vfile": { 6445 + "version": "6.0.3", 6446 + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", 6447 + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", 6448 + "license": "MIT", 6449 + "dependencies": { 6450 + "@types/unist": "^3.0.0", 6451 + "vfile-message": "^4.0.0" 6452 + }, 6453 + "funding": { 6454 + "type": "opencollective", 6455 + "url": "https://opencollective.com/unified" 6456 + } 6457 + }, 6458 + "node_modules/vfile-location": { 6459 + "version": "5.0.3", 6460 + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", 6461 + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", 6462 + "license": "MIT", 6463 + "dependencies": { 6464 + "@types/unist": "^3.0.0", 6465 + "vfile": "^6.0.0" 6466 + }, 6467 + "funding": { 6468 + "type": "opencollective", 6469 + "url": "https://opencollective.com/unified" 6470 + } 6471 + }, 6472 + "node_modules/vfile-message": { 6473 + "version": "4.0.3", 6474 + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", 6475 + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", 6476 + "license": "MIT", 6477 + "dependencies": { 6478 + "@types/unist": "^3.0.0", 6479 + "unist-util-stringify-position": "^4.0.0" 6480 + }, 6481 + "funding": { 6482 + "type": "opencollective", 6483 + "url": "https://opencollective.com/unified" 6484 + } 6485 + }, 4153 6486 "node_modules/vite": { 4154 - "version": "7.3.1", 4155 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", 4156 - "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", 4157 - "dev": true, 6487 + "version": "8.0.16", 6488 + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", 6489 + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", 4158 6490 "license": "MIT", 4159 6491 "dependencies": { 4160 - "esbuild": "^0.27.0", 4161 - "fdir": "^6.5.0", 4162 - "picomatch": "^4.0.3", 4163 - "postcss": "^8.5.6", 4164 - "rollup": "^4.43.0", 4165 - "tinyglobby": "^0.2.15" 6492 + "lightningcss": "^1.32.0", 6493 + "picomatch": "^4.0.4", 6494 + "postcss": "^8.5.15", 6495 + "rolldown": "1.0.3", 6496 + "tinyglobby": "^0.2.17" 4166 6497 }, 4167 6498 "bin": { 4168 6499 "vite": "bin/vite.js" ··· 4178 6509 }, 4179 6510 "peerDependencies": { 4180 6511 "@types/node": "^20.19.0 || >=22.12.0", 6512 + "@vitejs/devtools": "^0.1.18", 6513 + "esbuild": "^0.27.0 || ^0.28.0", 4181 6514 "jiti": ">=1.21.0", 4182 6515 "less": "^4.0.0", 4183 - "lightningcss": "^1.21.0", 4184 6516 "sass": "^1.70.0", 4185 6517 "sass-embedded": "^1.70.0", 4186 6518 "stylus": ">=0.54.8", ··· 4191 6523 }, 4192 6524 "peerDependenciesMeta": { 4193 6525 "@types/node": { 6526 + "optional": true 6527 + }, 6528 + "@vitejs/devtools": { 6529 + "optional": true 6530 + }, 6531 + "esbuild": { 4194 6532 "optional": true 4195 6533 }, 4196 6534 "jiti": { ··· 4199 6537 "less": { 4200 6538 "optional": true 4201 6539 }, 4202 - "lightningcss": { 4203 - "optional": true 4204 - }, 4205 6540 "sass": { 4206 6541 "optional": true 4207 6542 }, ··· 4225 6560 } 4226 6561 } 4227 6562 }, 6563 + "node_modules/vitefu": { 6564 + "version": "1.1.3", 6565 + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", 6566 + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", 6567 + "license": "MIT", 6568 + "workspaces": [ 6569 + "tests/deps/*", 6570 + "tests/projects/*", 6571 + "tests/projects/workspace/packages/*" 6572 + ], 6573 + "peerDependencies": { 6574 + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 6575 + }, 6576 + "peerDependenciesMeta": { 6577 + "vite": { 6578 + "optional": true 6579 + } 6580 + } 6581 + }, 6582 + "node_modules/web-namespaces": { 6583 + "version": "2.0.1", 6584 + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", 6585 + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", 6586 + "license": "MIT", 6587 + "funding": { 6588 + "type": "github", 6589 + "url": "https://github.com/sponsors/wooorm" 6590 + } 6591 + }, 4228 6592 "node_modules/which": { 4229 6593 "version": "2.0.2", 4230 6594 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", ··· 4241 6605 "node": ">= 8" 4242 6606 } 4243 6607 }, 6608 + "node_modules/which-pm-runs": { 6609 + "version": "1.1.0", 6610 + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", 6611 + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", 6612 + "license": "MIT", 6613 + "engines": { 6614 + "node": ">=4" 6615 + } 6616 + }, 4244 6617 "node_modules/word-wrap": { 4245 6618 "version": "1.2.5", 4246 6619 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", ··· 4251 6624 "node": ">=0.10.0" 4252 6625 } 4253 6626 }, 4254 - "node_modules/yallist": { 4255 - "version": "3.1.1", 4256 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 4257 - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 4258 - "dev": true, 4259 - "license": "ISC" 6627 + "node_modules/xxhash-wasm": { 6628 + "version": "1.1.0", 6629 + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", 6630 + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", 6631 + "license": "MIT" 6632 + }, 6633 + "node_modules/yargs-parser": { 6634 + "version": "22.0.0", 6635 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", 6636 + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", 6637 + "license": "ISC", 6638 + "engines": { 6639 + "node": "^20.19.0 || ^22.12.0 || >=23" 6640 + } 4260 6641 }, 4261 6642 "node_modules/yocto-queue": { 4262 6643 "version": "0.1.0", ··· 4279 6660 "license": "MIT" 4280 6661 }, 4281 6662 "node_modules/zod": { 4282 - "version": "4.3.5", 4283 - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", 4284 - "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", 4285 - "dev": true, 6663 + "version": "4.4.3", 6664 + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", 6665 + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", 4286 6666 "license": "MIT", 4287 6667 "funding": { 4288 6668 "url": "https://github.com/sponsors/colinhacks" 4289 6669 } 4290 6670 }, 4291 - "node_modules/zod-validation-error": { 4292 - "version": "4.0.2", 4293 - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", 4294 - "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", 4295 - "dev": true, 6671 + "node_modules/zwitch": { 6672 + "version": "2.0.4", 6673 + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", 6674 + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", 4296 6675 "license": "MIT", 4297 - "engines": { 4298 - "node": ">=18.0.0" 4299 - }, 4300 - "peerDependencies": { 4301 - "zod": "^3.25.0 || ^4.0.0" 6676 + "funding": { 6677 + "type": "github", 6678 + "url": "https://github.com/sponsors/wooorm" 4302 6679 } 4303 6680 } 4304 6681 }
+19 -21
website/package.json
··· 4 4 "version": "0.0.0", 5 5 "type": "module", 6 6 "scripts": { 7 - "dev": "vite", 8 - "build": "npx tsx scripts/generate-og-image.tsx && tsc -b && vite build", 7 + "dev": "astro dev", 8 + "build": "node scripts/generate-og-image.mjs && astro build", 9 9 "lint": "eslint .", 10 - "preview": "vite preview", 11 - "generate-og": "npx tsx scripts/generate-og-image.tsx" 10 + "preview": "astro preview", 11 + "generate-og": "node scripts/generate-og-image.mjs", 12 + "typecheck": "tsc", 13 + "format": "prettier --write ." 12 14 }, 13 15 "dependencies": { 14 - "react": "^19.2.0", 15 - "react-dom": "^19.2.0" 16 + "@astrojs/sitemap": "^3.7.3", 17 + "astro": "^7.0.0" 16 18 }, 17 19 "devDependencies": { 18 - "@eslint/js": "^9.39.1", 20 + "@eslint/js": "^9.39.4", 19 21 "@resvg/resvg-js": "^2.6.2", 20 - "@tailwindcss/vite": "^4.1.18", 21 - "@types/node": "^24.10.1", 22 - "@types/react": "^19.2.5", 23 - "@types/react-dom": "^19.2.3", 24 - "@vitejs/plugin-react": "^5.1.1", 25 - "eslint": "^9.39.1", 26 - "eslint-plugin-react-hooks": "^7.0.1", 27 - "eslint-plugin-react-refresh": "^0.4.24", 28 - "globals": "^16.5.0", 29 - "satori": "^0.19.1", 30 - "tailwindcss": "^4.1.18", 31 - "typescript": "~5.9.3", 32 - "typescript-eslint": "^8.46.4", 33 - "vite": "^7.2.4" 22 + "@tailwindcss/vite": "^4.3.1", 23 + "@types/node": "^26.0.0", 24 + "eslint": "^9.39.4", 25 + "globals": "^17.6.0", 26 + "prettier": "^3.8.4", 27 + "prettier-plugin-astro": "^0.14.1", 28 + "satori": "^0.26.0", 29 + "tailwindcss": "^4.3.1", 30 + "typescript": "^6.0.3", 31 + "typescript-eslint": "^8.61.1" 34 32 } 35 33 }
+139
website/scripts/generate-og-image.mjs
··· 1 + import { Resvg } from "@resvg/resvg-js"; 2 + import { existsSync, readFileSync, writeFileSync } from "node:fs"; 3 + import { dirname, join } from "node:path"; 4 + import { fileURLToPath } from "node:url"; 5 + import satori from "satori"; 6 + 7 + const __dirname = dirname(fileURLToPath(import.meta.url)); 8 + const rootDir = join(__dirname, ".."); 9 + 10 + const colors = { 11 + primary: "#6ab377", 12 + bg: "#0f1410", 13 + bgAlt: "#151c17", 14 + text: "#e8ebe9", 15 + textMuted: "#a0a8a2", 16 + }; 17 + 18 + async function loadFont(url) { 19 + const response = await fetch(url); 20 + if (!response.ok) 21 + throw new Error( 22 + `Failed to fetch font: ${response.status} ${response.statusText}`, 23 + ); 24 + return response.arrayBuffer(); 25 + } 26 + 27 + function element(type, props, ...children) { 28 + return { type, props: { ...props, children } }; 29 + } 30 + 31 + async function generateOgImage() { 32 + const outputPath = join(rootDir, "public/og-image.png"); 33 + if (existsSync(outputPath)) { 34 + console.log("Skipping og-image.png generation (already exists)"); 35 + return; 36 + } 37 + 38 + const [fontRegular, fontBold] = await Promise.all([ 39 + loadFont( 40 + "https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hjp-Ek-_EeA.woff", 41 + ), 42 + loadFont( 43 + "https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hjp-Ek-_EeA.woff", 44 + ), 45 + ]); 46 + 47 + const iconSrc = `data:image/svg+xml,${encodeURIComponent( 48 + readFileSync(join(rootDir, "public/icon.svg"), "utf-8"), 49 + )}`; 50 + 51 + const svg = await satori( 52 + element( 53 + "div", 54 + { 55 + style: { 56 + height: "100%", 57 + width: "100%", 58 + display: "flex", 59 + flexDirection: "column", 60 + alignItems: "center", 61 + justifyContent: "center", 62 + background: `linear-gradient(135deg, ${colors.bg} 0%, ${colors.bgAlt} 100%)`, 63 + fontFamily: "Inter", 64 + }, 65 + }, 66 + element( 67 + "div", 68 + { 69 + style: { 70 + display: "flex", 71 + alignItems: "center", 72 + gap: "24px", 73 + marginBottom: "24px", 74 + }, 75 + }, 76 + element("img", { src: iconSrc, width: 100, height: 100 }), 77 + element( 78 + "span", 79 + { 80 + style: { 81 + fontSize: 80, 82 + fontWeight: 700, 83 + color: colors.text, 84 + letterSpacing: "-0.02em", 85 + }, 86 + }, 87 + "Switchyard", 88 + ), 89 + ), 90 + element( 91 + "div", 92 + { 93 + style: { 94 + display: "flex", 95 + fontSize: 36, 96 + fontWeight: 500, 97 + color: colors.textMuted, 98 + marginBottom: "32px", 99 + }, 100 + }, 101 + "A rules-based browser launcher for Linux.", 102 + ), 103 + element( 104 + "div", 105 + { 106 + style: { 107 + display: "flex", 108 + padding: "12px 28px", 109 + background: colors.primary, 110 + color: "#ffffff", 111 + borderRadius: "12px", 112 + fontSize: 24, 113 + fontWeight: 600, 114 + }, 115 + }, 116 + "Download Now", 117 + ), 118 + ), 119 + { 120 + width: 1200, 121 + height: 630, 122 + fonts: [ 123 + { name: "Inter", data: fontRegular, weight: 400, style: "normal" }, 124 + { name: "Inter", data: fontBold, weight: 700, style: "normal" }, 125 + ], 126 + }, 127 + ); 128 + 129 + const resvg = new Resvg(svg, { fitTo: { mode: "width", value: 1200 } }); 130 + const pngBuffer = resvg.render().asPng(); 131 + 132 + writeFileSync(outputPath, pngBuffer); 133 + console.log("Generated public/og-image.png"); 134 + } 135 + 136 + generateOgImage().catch((error) => { 137 + console.error(error); 138 + process.exitCode = 1; 139 + });
-114
website/scripts/generate-og-image.tsx
··· 1 - import React from "react"; 2 - import satori from "satori"; 3 - import { Resvg } from "@resvg/resvg-js"; 4 - import { readFileSync, writeFileSync } from "fs"; 5 - import { join, dirname } from "path"; 6 - import { fileURLToPath } from "url"; 7 - 8 - const __dirname = dirname(fileURLToPath(import.meta.url)); 9 - const rootDir = join(__dirname, ".."); 10 - 11 - // Dark mode colors from index.css 12 - const colors = { 13 - primary: "#6ab377", 14 - bg: "#0f1410", 15 - bgAlt: "#151c17", 16 - text: "#e8ebe9", 17 - textMuted: "#a0a8a2", 18 - }; 19 - 20 - async function loadFont(url: string): Promise<ArrayBuffer> { 21 - const response = await fetch(url); 22 - return response.arrayBuffer(); 23 - } 24 - 25 - async function generateOgImage() { 26 - const [fontRegular, fontBold] = await Promise.all([ 27 - loadFont( 28 - "https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hjp-Ek-_EeA.woff", 29 - ), 30 - loadFont( 31 - "https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hjp-Ek-_EeA.woff", 32 - ), 33 - ]); 34 - 35 - const iconSrc = `data:image/svg+xml,${encodeURIComponent( 36 - readFileSync(join(rootDir, "public/icon.svg"), "utf-8"), 37 - )}`; 38 - 39 - const svg = await satori( 40 - <div 41 - style={{ 42 - height: "100%", 43 - width: "100%", 44 - display: "flex", 45 - flexDirection: "column", 46 - alignItems: "center", 47 - justifyContent: "center", 48 - background: `linear-gradient(135deg, ${colors.bg} 0%, ${colors.bgAlt} 100%)`, 49 - fontFamily: "Inter", 50 - }} 51 - > 52 - <div 53 - style={{ 54 - display: "flex", 55 - alignItems: "center", 56 - gap: "24px", 57 - marginBottom: "24px", 58 - }} 59 - > 60 - <img src={iconSrc} width={100} height={100} /> 61 - <span 62 - style={{ 63 - fontSize: 80, 64 - fontWeight: 700, 65 - color: colors.text, 66 - letterSpacing: "-0.02em", 67 - }} 68 - > 69 - Switchyard 70 - </span> 71 - </div> 72 - <div 73 - style={{ 74 - fontSize: 36, 75 - fontWeight: 500, 76 - color: colors.textMuted, 77 - marginBottom: "32px", 78 - }} 79 - > 80 - A rules-based browser launcher for Linux. 81 - </div> 82 - <div 83 - style={{ 84 - display: "flex", 85 - padding: "12px 28px", 86 - background: colors.primary, 87 - color: "#ffffff", 88 - borderRadius: "12px", 89 - fontSize: 24, 90 - fontWeight: 600, 91 - }} 92 - > 93 - Download Now 94 - </div> 95 - </div>, 96 - { 97 - width: 1200, 98 - height: 630, 99 - fonts: [ 100 - { name: "Inter", data: fontRegular, weight: 400, style: "normal" }, 101 - { name: "Inter", data: fontRegular, weight: 500, style: "normal" }, 102 - { name: "Inter", data: fontBold, weight: 700, style: "normal" }, 103 - ], 104 - }, 105 - ); 106 - 107 - const resvg = new Resvg(svg, { fitTo: { mode: "width", value: 1200 } }); 108 - const pngBuffer = resvg.render().asPng(); 109 - 110 - writeFileSync(join(rootDir, "public/og-image.png"), pngBuffer); 111 - console.log("Generated public/og-image.png"); 112 - } 113 - 114 - generateOgImage().catch(console.error);
-255
website/src/App.tsx
··· 1 - import { useState, useEffect } from "react"; 2 - import icon from "/icon.svg"; 3 - import { Icon } from "./components/Icon"; 4 - import { screenshots } from "./data/screenshots"; 5 - import { features } from "./data/features"; 6 - import { heroButtons } from "./data/heroButtons"; 7 - import { showcases } from "./data/showcases"; 8 - import { installOptions } from "./data/installOptions"; 9 - import { footerLinks } from "./data/footerLinks"; 10 - import { DEV_URL } from "./data/urls"; 11 - 12 - function App() { 13 - const [lightboxSrc, setLightboxSrc] = useState<string | null>(null); 14 - 15 - // Close lightbox on Escape key 16 - useEffect(() => { 17 - const handleKeyDown = (e: KeyboardEvent) => { 18 - if (e.key === "Escape") setLightboxSrc(null); 19 - }; 20 - if (lightboxSrc) { 21 - document.addEventListener("keydown", handleKeyDown); 22 - return () => document.removeEventListener("keydown", handleKeyDown); 23 - } 24 - }, [lightboxSrc]); 25 - 26 - const openLightbox = (src: string) => setLightboxSrc(src); 27 - 28 - return ( 29 - <> 30 - {/* Hero */} 31 - <section className="min-h-screen flex items-center bg-gradient-to-br from-bg to-bg-alt relative overflow-hidden"> 32 - {/* Background decoration */} 33 - <div className="absolute -top-1/2 -right-1/5 w-4/5 h-[200%] bg-[radial-gradient(ellipse,rgba(79,137,93,0.08)_0%,transparent_70%)] pointer-events-none" /> 34 - 35 - <div className="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8 py-8 md:py-16 relative z-10"> 36 - <div className="contents md:block text-center md:text-left"> 37 - <div className="flex items-center gap-3 md:gap-4 justify-center md:justify-start mb-4 order-1"> 38 - <img 39 - src={icon} 40 - alt="" 41 - className="w-14 h-14 md:w-[72px] md:h-[72px] shrink-0" 42 - /> 43 - <h1 className="text-3xl md:text-[3.5rem] font-bold leading-tight tracking-tight bg-gradient-to-br from-text to-text-muted bg-clip-text text-transparent"> 44 - Switchyard 45 - </h1> 46 - </div> 47 - <p className="text-lg md:text-xl text-text-muted font-medium mb-4 order-3"> 48 - A rules-based browser launcher for Linux. 49 - </p> 50 - <p className="text-base md:text-lg text-text-muted leading-relaxed mb-4 max-w-[480px] mx-auto md:mx-0 order-4"> 51 - Work links in Chrome. Personal links in Firefox. 52 - </p> 53 - <div className="inline-block px-3 py-2 md:px-4 md:py-2 bg-primary/10 text-primary rounded-full text-sm font-semibold mb-4 md:mb-8 order-5"> 54 - 100% Free & Open Source 55 - </div> 56 - <div className="flex flex-col md:flex-row gap-3 md:gap-4 items-center md:items-start justify-center md:justify-start order-6"> 57 - {heroButtons.map((btn) => ( 58 - <a 59 - key={btn.label} 60 - href={btn.href} 61 - className={`inline-flex items-center gap-2.5 px-6 py-3.5 rounded-xl font-semibold text-base transition-all duration-200 w-full md:w-auto max-w-[260px] justify-center focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 ${ 62 - btn.primary 63 - ? "bg-primary text-white shadow-primary hover:bg-primary-light hover:-translate-y-0.5 hover:shadow-primary-hover" 64 - : "bg-transparent text-text border-2 border-border hover:border-primary hover:text-primary" 65 - }`} 66 - > 67 - {btn.icon && ( 68 - <Icon name={btn.icon} filled className="w-5 h-5" /> 69 - )} 70 - {btn.label} 71 - </a> 72 - ))} 73 - </div> 74 - </div> 75 - <div className="order-2 md:order-none"> 76 - <img 77 - src={screenshots[0].src} 78 - alt={screenshots[0].alt} 79 - onClick={() => openLightbox(screenshots[0].src)} 80 - role="button" 81 - tabIndex={0} 82 - onKeyDown={(e) => 83 - e.key === "Enter" && openLightbox(screenshots[0].src) 84 - } 85 - className="w-full max-w-[280px] md:max-w-[480px] h-auto rounded-xl md:rounded-2xl shadow-lg border border-border cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto" 86 - /> 87 - </div> 88 - </div> 89 - </section> 90 - 91 - {/* Features */} 92 - <section className="py-12 md:py-20 bg-bg"> 93 - <div className="max-w-[1100px] mx-auto px-4 md:px-8"> 94 - <h2 className="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight"> 95 - Key Features 96 - </h2> 97 - <div className="grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-10 max-w-[400px] md:max-w-none mx-auto"> 98 - {features.map((feature) => ( 99 - <div key={feature.title} className="text-center p-4 md:p-8"> 100 - <div className="w-11 h-11 md:w-12 md:h-12 mx-auto mb-4 bg-gradient-to-br from-primary to-primary-dark rounded-xl flex items-center justify-center text-white"> 101 - <Icon name={feature.icon} className="w-5 h-5 md:w-6 md:h-6" /> 102 - </div> 103 - <h3 className="text-base md:text-lg font-bold mb-2"> 104 - {feature.title} 105 - </h3> 106 - <p className="text-text-muted text-sm leading-relaxed"> 107 - {feature.description} 108 - </p> 109 - </div> 110 - ))} 111 - </div> 112 - </div> 113 - </section> 114 - 115 - {/* Showcases */} 116 - {showcases.map((showcase, index) => ( 117 - <section 118 - key={showcase.title} 119 - className={`py-12 md:py-20 ${index % 2 === 0 ? "bg-bg-alt" : "bg-bg"}`} 120 - > 121 - <div 122 - className={`grid grid-cols-1 md:grid-cols-[1.2fr_1fr] gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8 ${ 123 - index % 2 !== 0 124 - ? "md:[direction:rtl] md:[&>*]:[direction:ltr]" 125 - : "" 126 - }`} 127 - > 128 - {showcase.screenshot && ( 129 - <img 130 - src={showcase.screenshot.src} 131 - alt={showcase.screenshot.alt} 132 - onClick={() => openLightbox(showcase.screenshot!.src)} 133 - role="button" 134 - tabIndex={0} 135 - onKeyDown={(e) => 136 - e.key === "Enter" && openLightbox(showcase.screenshot!.src) 137 - } 138 - className="w-full max-w-[600px] h-auto rounded-xl md:rounded-2xl border border-border shadow-lg cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto order-first md:order-none" 139 - /> 140 - )} 141 - {showcase.code && ( 142 - <pre className="bg-bg-alt rounded-xl p-4 md:p-6 overflow-x-auto shadow-default border border-border"> 143 - <code className="font-mono text-xs md:text-sm leading-relaxed text-text"> 144 - {showcase.code} 145 - </code> 146 - </pre> 147 - )} 148 - <div className="text-center md:text-left"> 149 - <h2 className="text-xl md:text-2xl font-bold mb-4 tracking-tight"> 150 - {showcase.title} 151 - </h2> 152 - <p className="text-text-muted text-base leading-relaxed max-w-[400px] mx-auto md:mx-0"> 153 - {showcase.description} 154 - </p> 155 - </div> 156 - </div> 157 - </section> 158 - ))} 159 - 160 - {/* Installation */} 161 - <section 162 - className={`py-12 md:py-20 ${(showcases.length - 1) % 2 === 0 ? "bg-bg" : "bg-bg-alt"}`} 163 - id="install" 164 - > 165 - <div className="max-w-[1100px] mx-auto px-4 md:px-8"> 166 - <h2 className="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight"> 167 - Get Started 168 - </h2> 169 - <div className="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-[400px] md:max-w-[900px] mx-auto"> 170 - {installOptions.map((option) => ( 171 - <div 172 - key={option.title} 173 - className="bg-bg p-5 md:p-8 rounded-2xl border border-border transition-all duration-300 hover:shadow-default hover:-translate-y-0.5" 174 - > 175 - <div className="w-9 h-9 md:w-10 md:h-10 mb-4 text-primary"> 176 - <Icon name={option.icon} filled className="w-full h-full" /> 177 - </div> 178 - <h3 className="text-base md:text-lg font-bold mb-1"> 179 - {option.title} 180 - </h3> 181 - <p className="text-text-muted text-sm mb-4"> 182 - {option.description} 183 - </p> 184 - {"command" in option ? ( 185 - <code className="block bg-bg-alt px-3 py-3 md:px-4 rounded-xl text-xs font-mono overflow-x-auto border border-border"> 186 - {option.command} 187 - </code> 188 - ) : ( 189 - <a 190 - href={option.link} 191 - className="block bg-primary text-white px-4 py-3 rounded-xl text-sm font-semibold text-center transition-colors duration-200 hover:bg-primary-light hover:text-white focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2" 192 - > 193 - {option.linkText} 194 - </a> 195 - )} 196 - </div> 197 - ))} 198 - </div> 199 - </div> 200 - </section> 201 - 202 - {/* Footer */} 203 - <footer 204 - className={`py-8 md:py-12 ${(showcases.length - 1) % 2 === 0 ? "bg-bg-alt" : "bg-bg"}`} 205 - > 206 - <div className="max-w-[1100px] mx-auto px-4 md:px-8 flex flex-col items-center gap-5"> 207 - <div className="flex items-center gap-3 font-semibold text-lg"> 208 - <img src={icon} alt="Switchyard" className="w-8 h-8" /> 209 - <span>Switchyard</span> 210 - </div> 211 - <nav className="flex gap-6 md:gap-8"> 212 - {footerLinks.map((link) => ( 213 - <a 214 - key={link.label} 215 - href={link.href} 216 - className="text-text-muted text-sm hover:text-primary" 217 - > 218 - {link.label} 219 - </a> 220 - ))} 221 - </nav> 222 - <p className="text-text-light text-sm"> 223 - Made by{" "} 224 - <a 225 - href={DEV_URL} 226 - className="text-text-muted hover:text-primary transition-colors" 227 - > 228 - Aly Raffauf 229 - </a>{" "} 230 - · GPL-3.0-or-later 231 - </p> 232 - </div> 233 - </footer> 234 - 235 - {/* Lightbox */} 236 - {lightboxSrc && ( 237 - <div 238 - className="fixed inset-0 bg-black/90 flex items-center justify-center z-[1000] cursor-pointer backdrop-blur-sm" 239 - onClick={() => setLightboxSrc(null)} 240 - role="dialog" 241 - aria-modal="true" 242 - aria-label="Image preview" 243 - > 244 - <img 245 - src={lightboxSrc} 246 - alt="Screenshot preview" 247 - className="max-w-[90vw] md:max-w-[90vw] max-h-[85vh] md:max-h-[90vh] rounded-lg md:rounded-xl shadow-lg" 248 - /> 249 - </div> 250 - )} 251 - </> 252 - ); 253 - } 254 - 255 - export default App;
website/src/assets/screenshots/launcher.png

This is a binary file and will not be displayed.

+22
website/src/components/Icon.astro
··· 1 + --- 2 + import { getIconPath } from "../icons"; 3 + import type { IconName } from "../icons"; 4 + 5 + interface Props { 6 + name: IconName; 7 + filled?: boolean; 8 + class?: string; 9 + } 10 + 11 + const { name, filled = false, class: className } = Astro.props; 12 + --- 13 + 14 + <svg 15 + class={className} 16 + viewBox="0 0 24 24" 17 + fill={filled ? "currentColor" : "none"} 18 + stroke={filled ? undefined : "currentColor"} 19 + stroke-width={filled ? undefined : "2"} 20 + > 21 + <path d={getIconPath(name)}></path> 22 + </svg>
-56
website/src/components/Icon.tsx
··· 1 - const icons = { 2 - github: ( 3 - <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" /> 4 - ), 5 - heart: ( 6 - <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" /> 7 - ), 8 - checkCircle: <path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />, 9 - bolt: <path d="M13 10V3L4 14h7v7l9-11h-7z" />, 10 - sliders: ( 11 - <path d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4" /> 12 - ), 13 - nixos: ( 14 - <path d="M7.352 1.592l-1.364.002L5.32 2.75l1.557 2.713-3.137-.008-1.32 2.34H14.11l-1.353-2.332-3.192-.006-2.214-3.865zm6.175 0l-2.687.025 5.846 10.127 1.341-2.34-1.59-2.765 2.24-3.85-.683-1.182h-1.336l-1.57 2.705-1.56-2.72zm6.887 4.195l-5.846 10.125 2.696-.008 1.601-2.76 4.453.016.682-1.183-.666-1.157-3.13-.008L21.778 8.1l-1.365-2.313zM9.432 8.086l-2.696.008-1.601 2.76-4.453-.016L0 12.02l.666 1.157 3.13.008-1.575 2.71 1.365 2.315L9.432 8.086zM7.33 12.25l-.006.01-.002-.004-1.342 2.34 1.59 2.765-2.24 3.85.684 1.182H7.35l.004-.006h.001l1.567-2.698 1.558 2.72 2.688-.026-.004-.006h.01L7.33 12.25zm2.55 3.93l1.354 2.332 3.192.006 2.215 3.865 1.363-.002.668-1.156-1.557-2.713 3.137.008 1.32-2.34H9.881Z" /> 15 - ), 16 - flatpak: ( 17 - <path d="M12 0c-.556 0-1.111.144-1.61.432l-7.603 4.39a3.217 3.217 0 0 0-1.61 2.788v8.78c0 1.151.612 2.212 1.61 2.788l7.603 4.39a3.217 3.217 0 0 0 3.22 0l7.603-4.39a3.217 3.217 0 0 0 1.61-2.788V7.61a3.217 3.217 0 0 0-1.61-2.788L13.61.432A3.218 3.218 0 0 0 12 0Zm0 2.358c.15 0 .299.039.431.115l7.604 4.39c.132.077.24.187.315.316L12 12v9.642a.863.863 0 0 1-.431-.116l-7.604-4.39a.866.866 0 0 1-.431-.746V7.61c0-.153.041-.302.116-.43L12 12Z" /> 18 - ), 19 - download: ( 20 - <path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 14l-4-4h2.5V8h3v4H16l-4 4z" /> 21 - ), 22 - link: ( 23 - <path d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1" /> 24 - ), 25 - shuffle: ( 26 - <path d="M16 3h5v5m0-5l-6 6m-2 8l8 8m0-5v5h-5M4 4l5 5m11 11l-5-5M4 20l5-5" /> 27 - ), 28 - star: ( 29 - <path d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" /> 30 - ), 31 - zap: <path d="M13 10V3L4 14h7v7l9-11h-7z" />, 32 - } as const; 33 - 34 - export type IconName = keyof typeof icons; 35 - 36 - export function Icon({ 37 - name, 38 - filled = false, 39 - className, 40 - }: { 41 - name: IconName; 42 - filled?: boolean; 43 - className?: string; 44 - }) { 45 - return ( 46 - <svg 47 - className={className} 48 - viewBox="0 0 24 24" 49 - fill={filled ? "currentColor" : "none"} 50 - stroke={filled ? undefined : "currentColor"} 51 - strokeWidth={filled ? undefined : 2} 52 - > 53 - {icons[name]} 54 - </svg> 55 - ); 56 - }
-40
website/src/data/features.ts
··· 1 - import type { Feature } from "../types"; 2 - 3 - export const features: Feature[] = [ 4 - { 5 - icon: "checkCircle", 6 - title: "Automatic Routing", 7 - description: 8 - "Create rules by domain or regex. Links open in the right browser automatically.", 9 - }, 10 - { 11 - icon: "sliders", 12 - title: "Browser Launcher", 13 - description: 14 - "No matching rule? Launch a browser with a quick keystroke or mouse click.", 15 - }, 16 - { 17 - icon: "shuffle", 18 - title: "Link Redirections", 19 - description: 20 - "Rewrite URLs before they open. Strip trackers, swap domains, and more.", 21 - }, 22 - { 23 - icon: "link", 24 - title: "Custom URLs", 25 - description: 26 - "Encode rules directly with switchyard:// links. Perfect for notes and to-dos.", 27 - }, 28 - { 29 - icon: "star", 30 - title: "Favorite Browser", 31 - description: 32 - "Pin your favorite browser to appear first and act as fallback.", 33 - }, 34 - { 35 - icon: "zap", 36 - title: "Fast & Native", 37 - description: 38 - "A native GNOME app that launches instantly. No background services.", 39 - }, 40 - ];
-8
website/src/data/footerLinks.ts
··· 1 - import type { FooterLink } from "../types"; 2 - import { DONATE_URL, REPO_URL } from "./urls"; 3 - 4 - export const footerLinks: FooterLink[] = [ 5 - { href: REPO_URL, label: "GitHub" }, 6 - { href: `${REPO_URL}/issues`, label: "Issues" }, 7 - { href: DONATE_URL, label: "Donate" }, 8 - ];
-22
website/src/data/heroButtons.ts
··· 1 - import type { HeroButton } from "../types"; 2 - import { DONATE_URL, FLATHUB_URL, REPO_URL } from "./urls"; 3 - 4 - export const heroButtons: HeroButton[] = [ 5 - { 6 - href: FLATHUB_URL, 7 - label: "Flathub", 8 - icon: "flatpak", 9 - primary: true, 10 - }, 11 - { 12 - href: REPO_URL, 13 - label: "GitHub", 14 - icon: "github", 15 - primary: true, 16 - }, 17 - { 18 - href: DONATE_URL, 19 - label: "Donate", 20 - icon: "heart", 21 - }, 22 - ];
-27
website/src/data/installOptions.ts
··· 1 - import type { InstallOption } from "../types"; 2 - 3 - const REPO_URL = "https://github.com/alyraffauf/switchyard"; 4 - const FLATHUB_URL = "https://flathub.org/apps/io.github.alyraffauf.Switchyard"; 5 - 6 - export const installOptions: InstallOption[] = [ 7 - { 8 - icon: "flatpak", 9 - title: "Flatpak", 10 - description: "Recommended for most users", 11 - link: FLATHUB_URL, 12 - linkText: "View on Flathub", 13 - }, 14 - { 15 - icon: "nixos", 16 - title: "Nix Flake", 17 - description: "Run directly or add to your config", 18 - command: "nix run github:alyraffauf/switchyard", 19 - }, 20 - { 21 - icon: "github", 22 - title: "Build from Source", 23 - description: "Requires Go 1.24+ and GTK4", 24 - link: REPO_URL, 25 - linkText: "View on GitHub", 26 - }, 27 - ];
-22
website/src/data/screenshots.ts
··· 1 - import type { Screenshot } from "../types"; 2 - 3 - const SCREENSHOTS_BASE = `https://raw.githubusercontent.com/alyraffauf/switchyard/master/data/screenshots`; 4 - 5 - export const screenshots: Screenshot[] = [ 6 - { 7 - src: `${SCREENSHOTS_BASE}/launcher.png`, 8 - alt: "Browser launcher", 9 - }, 10 - { 11 - src: `${SCREENSHOTS_BASE}/browser-rules.png`, 12 - alt: "Browser rules panel", 13 - }, 14 - { 15 - src: `${SCREENSHOTS_BASE}/link-redirections.png`, 16 - alt: "Link redirections panel", 17 - }, 18 - { 19 - src: `${SCREENSHOTS_BASE}/edit-rules.png`, 20 - alt: "Rule editor", 21 - }, 22 - ];
-34
website/src/data/showcases.ts
··· 1 - import type { Showcase } from "../types"; 2 - import { screenshots } from "./screenshots"; 3 - 4 - export const showcases: Showcase[] = [ 5 - { 6 - screenshot: screenshots[1], 7 - title: "Point-and-Click Setup", 8 - description: 9 - "Create and manage rules with a clean, native interface. No config files required—just point and click.", 10 - }, 11 - { 12 - screenshot: screenshots[2], 13 - title: "Your Links, Your Way", 14 - description: 15 - "Take control of every link you open. Strip tracking parameters and enforce privacy-friendly frontends automatically.", 16 - }, 17 - { 18 - code: `[[rules]] 19 - name = "Video Sites" 20 - logic = "any" 21 - browser = "brave-browser.desktop" 22 - 23 - [[rules.conditions]] 24 - type = "domain" 25 - pattern = "youtube.com" 26 - 27 - [[rules.conditions]] 28 - type = "domain" 29 - pattern = "twitch.tv"`, 30 - title: "Plain Text Configuration", 31 - description: 32 - "Prefer text editors? Define rules in a simple TOML file. Easy to version control, share, and back up.", 33 - }, 34 - ];
-5
website/src/data/urls.ts
··· 1 - export const REPO_URL = "https://github.com/alyraffauf/switchyard"; 2 - export const DONATE_URL = "https://ko-fi.com/alyraffauf"; 3 - export const FLATHUB_URL = 4 - "https://flathub.org/apps/io.github.alyraffauf.Switchyard"; 5 - export const DEV_URL = "https://aly.codes";
+26
website/src/icons.ts
··· 1 + const iconPaths = { 2 + github: 3 + "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z", 4 + heart: 5 + "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z", 6 + checkCircle: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z", 7 + sliders: 8 + "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4", 9 + nixos: 10 + "M7.352 1.592l-1.364.002L5.32 2.75l1.557 2.713-3.137-.008-1.32 2.34H14.11l-1.353-2.332-3.192-.006-2.214-3.865zm6.175 0l-2.687.025 5.846 10.127 1.341-2.34-1.59-2.765 2.24-3.85-.683-1.182h-1.336l-1.57 2.705-1.56-2.72zm6.887 4.195l-5.846 10.125 2.696-.008 1.601-2.76 4.453.016.682-1.183-.666-1.157-3.13-.008L21.778 8.1l-1.365-2.313zM9.432 8.086l-2.696.008-1.601 2.76-4.453-.016L0 12.02l.666 1.157 3.13.008-1.575 2.71 1.365 2.315L9.432 8.086zM7.33 12.25l-.006.01-.002-.004-1.342 2.34 1.59 2.765-2.24 3.85.684 1.182H7.35l.004-.006h.001l1.567-2.698 1.558 2.72 2.688-.026-.004-.006h.01L7.33 12.25zm2.55 3.93l1.354 2.332 3.192.006 2.215 3.865 1.363-.002.668-1.156-1.557-2.713 3.137.008 1.32-2.34H9.881Z", 11 + flatpak: 12 + "M12 0c-.556 0-1.111.144-1.61.432l-7.603 4.39a3.217 3.217 0 0 0-1.61 2.788v8.78c0 1.151.612 2.212 1.61 2.788l7.603 4.39a3.217 3.217 0 0 0 3.22 0l7.603-4.39a3.217 3.217 0 0 0 1.61-2.788V7.61a3.217 3.217 0 0 0-1.61-2.788L13.61.432A3.218 3.218 0 0 0 12 0Zm0 2.358c.15 0 .299.039.431.115l7.604 4.39c.132.077.24.187.315.316L12 12v9.642a.863.863 0 0 1-.431-.116l-7.604-4.39a.866.866 0 0 1-.431-.746V7.61c0-.153.041-.302.116-.43L12 12Z", 13 + download: 14 + "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 14l-4-4h2.5V8h3v4H16l-4 4z", 15 + link: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1", 16 + shuffle: "M16 3h5v5m0-5l-6 6m-2 8l8 8m0-5v5h-5M4 4l5 5m11 11l-5-5M4 20l5-5", 17 + star: "M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z", 18 + zap: "M13 10V3L4 14h7v7l9-11h-7z", 19 + rose: "M17 10h-1a4 4 0 1 1 4-4v.534 M17 6h1a4 4 0 0 1 1.42 7.74l-2.29.87a6 6 0 0 1-5.339-10.68l2.069-1.31 M4.5 17c2.8-.5 4.4 0 5.5.8s1.8 2.2 2.3 3.7c-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 M9.77 12C4 15 2 22 2 22 M15 8a2 2 0 1 0 4 0a2 2 0 1 0-4 0", 20 + } as const; 21 + 22 + export type IconName = keyof typeof iconPaths; 23 + 24 + export function getIconPath(name: IconName): string { 25 + return iconPaths[name]; 26 + }
-46
website/src/index.css
··· 1 - @import "tailwindcss"; 2 - 3 - @theme { 4 - --color-primary: #4f895d; 5 - --color-primary-light: #5a9d6a; 6 - --color-primary-dark: #3d6b48; 7 - --color-bg: #ffffff; 8 - --color-bg-alt: #f8faf8; 9 - --color-text: #1a1a1a; 10 - --color-text-muted: #555555; 11 - --color-text-light: #888888; 12 - --color-border: #e0e0e0; 13 - --shadow-default: 0 4px 24px rgba(0, 0, 0, 0.08); 14 - --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.12); 15 - --shadow-primary: 0 4px 14px rgba(79, 137, 93, 0.35); 16 - --shadow-primary-hover: 0 6px 20px rgba(79, 137, 93, 0.4); 17 - --font-sans: 18 - -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", 19 - Arial, sans-serif; 20 - --font-mono: "SF Mono", Monaco, "Cascadia Code", "Fira Code", monospace; 21 - } 22 - 23 - @media (prefers-color-scheme: dark) { 24 - @theme { 25 - --color-primary: #6ab377; 26 - --color-primary-light: #7ec48a; 27 - --color-primary-dark: #5a9d6a; 28 - --color-bg: #0f1410; 29 - --color-bg-alt: #151c17; 30 - --color-text: #e8ebe9; 31 - --color-text-muted: #a0a8a2; 32 - --color-text-light: #6a726c; 33 - --color-border: #2a3530; 34 - } 35 - } 36 - 37 - html { 38 - scroll-behavior: smooth; 39 - } 40 - 41 - body { 42 - font-family: var(--font-sans); 43 - background: var(--color-bg); 44 - color: var(--color-text); 45 - -webkit-font-smoothing: antialiased; 46 - }
-10
website/src/main.tsx
··· 1 - import { StrictMode } from "react"; 2 - import { createRoot } from "react-dom/client"; 3 - import "./index.css"; 4 - import App from "./App.tsx"; 5 - 6 - createRoot(document.getElementById("root")!).render( 7 - <StrictMode> 8 - <App /> 9 - </StrictMode>, 10 - );
+475
website/src/pages/index.astro
··· 1 + --- 2 + import "../styles/index.css"; 3 + import Icon from "../components/Icon.astro"; 4 + import { Image } from "astro:assets"; 5 + import imgLauncher from "../assets/screenshots/launcher.png"; 6 + import imgBrowserRules from "../assets/screenshots/browser-rules.png"; 7 + import imgLinkRedirections from "../assets/screenshots/link-redirections.png"; 8 + 9 + const REPO_URL = "https://github.com/alyraffauf/switchyard"; 10 + const DONATE_URL = "https://ko-fi.com/alyraffauf"; 11 + const FLATHUB_URL = "https://flathub.org/apps/io.github.alyraffauf.Switchyard"; 12 + const DEV_URL = "https://aly.codes"; 13 + 14 + const screenshots = [ 15 + { src: imgLauncher, alt: "Browser launcher" }, 16 + { src: imgBrowserRules, alt: "Browser rules panel" }, 17 + { src: imgLinkRedirections, alt: "Link redirections panel" }, 18 + ] as const; 19 + 20 + const heroButtons = [ 21 + { href: FLATHUB_URL, label: "Flathub", icon: "flatpak", primary: true }, 22 + { href: REPO_URL, label: "GitHub", icon: "github", primary: true }, 23 + { href: DONATE_URL, label: "Donate", icon: "heart" }, 24 + ] as const; 25 + 26 + const features = [ 27 + { 28 + icon: "checkCircle", 29 + title: "Automatic Routing", 30 + description: 31 + "Create rules by domain or regex. Links open in the right browser automatically.", 32 + }, 33 + { 34 + icon: "sliders", 35 + title: "Browser Launcher", 36 + description: 37 + "No matching rule? Launch a browser with a quick keystroke or mouse click.", 38 + }, 39 + { 40 + icon: "shuffle", 41 + title: "Link Redirections", 42 + description: 43 + "Rewrite URLs before they open. Strip trackers, swap domains, and more.", 44 + }, 45 + { 46 + icon: "link", 47 + title: "Custom URLs", 48 + description: 49 + "Encode rules directly with switchyard:// links. Perfect for notes and to-dos.", 50 + }, 51 + { 52 + icon: "star", 53 + title: "Favorite Browser", 54 + description: 55 + "Pin your favorite browser to appear first and act as fallback.", 56 + }, 57 + { 58 + icon: "zap", 59 + title: "Fast & Native", 60 + description: 61 + "A native GNOME app that launches instantly. No background services.", 62 + }, 63 + ] as const; 64 + 65 + const showcases = [ 66 + { 67 + screenshot: screenshots[1], 68 + title: "Point-and-Click Setup", 69 + description: 70 + "Create and manage rules with a clean, native interface. No config files required—just point and click.", 71 + }, 72 + { 73 + screenshot: screenshots[2], 74 + title: "Your Links, Your Way", 75 + description: 76 + "Take control of every link you open. Strip tracking parameters and enforce privacy-friendly frontends automatically.", 77 + }, 78 + { 79 + code: `[[rules]] 80 + name = "Video Sites" 81 + logic = "any" 82 + browser = "brave-browser.desktop" 83 + 84 + [[rules.conditions]] 85 + type = "domain" 86 + pattern = "youtube.com" 87 + 88 + [[rules.conditions]] 89 + type = "domain" 90 + pattern = "twitch.tv"`, 91 + title: "Plain Text Configuration", 92 + description: 93 + "Prefer text editors? Define rules in a simple TOML file. Easy to version control, share, and back up.", 94 + }, 95 + ] as const; 96 + 97 + const installOptions = [ 98 + { 99 + icon: "flatpak", 100 + title: "Flatpak", 101 + description: "Recommended for most users", 102 + link: FLATHUB_URL, 103 + linkText: "View on Flathub", 104 + }, 105 + { 106 + icon: "nixos", 107 + title: "Nix Flake", 108 + description: "Run directly or add to your config", 109 + command: "nix run github:alyraffauf/switchyard", 110 + }, 111 + { 112 + icon: "github", 113 + title: "Build from Source", 114 + description: "Requires Go 1.24+ and GTK4", 115 + link: REPO_URL, 116 + linkText: "View on GitHub", 117 + }, 118 + ] as const; 119 + 120 + const footerLinks = [ 121 + { href: REPO_URL, label: "GitHub" }, 122 + { href: `${REPO_URL}/issues`, label: "Issues" }, 123 + { href: DONATE_URL, label: "Donate" }, 124 + ] as const; 125 + 126 + const installBg = "bg-bg"; 127 + const footerBg = "bg-bg-alt"; 128 + --- 129 + 130 + <!doctype html> 131 + <html lang="en"> 132 + <head> 133 + <meta charset="UTF-8" /> 134 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 135 + <title>Switchyard - A Rules-Based Browser Launcher for Linux</title> 136 + <meta 137 + name="description" 138 + content="Switchyard is a rules-based browser launcher for Linux. Automatically open links in the right browser using domain rules, regex patterns, and URL redirections. Free and open source." 139 + /> 140 + 141 + <link rel="icon" type="image/svg+xml" href="/icon.svg" /> 142 + <link rel="apple-touch-icon" href="/icon.svg" /> 143 + 144 + <meta property="og:type" content="website" /> 145 + <meta property="og:url" content="https://switchyard.aly.codes/" /> 146 + <meta 147 + property="og:title" 148 + content="Switchyard - A Rules-Based Browser Launcher for Linux" 149 + /> 150 + <meta 151 + property="og:description" 152 + content="Switchyard is a rules-based browser launcher for Linux. Automatically open links in the right browser using domain rules, regex patterns, and URL redirections. Free and open source." 153 + /> 154 + <meta 155 + property="og:image" 156 + content="https://switchyard.aly.codes/og-image.png" 157 + /> 158 + <meta name="twitter:card" content="summary_large_image" /> 159 + 160 + <meta name="theme-color" content="#4f895d" /> 161 + <link rel="canonical" href="https://switchyard.aly.codes/" /> 162 + <script 163 + type="application/ld+json" 164 + set:html={JSON.stringify({ 165 + "@context": "https://schema.org", 166 + "@type": "SoftwareApplication", 167 + name: "Switchyard", 168 + operatingSystem: "Linux", 169 + applicationCategory: "UtilitiesApplication", 170 + description: 171 + "A rules-based browser launcher for Linux. Automatically open links in the right browser using domain rules, regex patterns, and URL redirections.", 172 + url: "https://switchyard.aly.codes", 173 + downloadUrl: FLATHUB_URL, 174 + license: "https://www.gnu.org/licenses/gpl-3.0.html", 175 + offers: { "@type": "Offer", price: "0", priceCurrency: "USD" }, 176 + author: { "@type": "Person", name: "Aly Raffauf", url: DEV_URL }, 177 + })} 178 + /> 179 + </head> 180 + <body> 181 + <!-- Breadcrumb nav --> 182 + <header 183 + class="sticky top-0 z-50 bg-bg/95 backdrop-blur-sm border-b border-border" 184 + > 185 + <div 186 + class="max-w-[1200px] mx-auto px-4 md:px-8 py-2.5 flex items-center gap-2 text-sm" 187 + > 188 + <a 189 + href={DEV_URL} 190 + class="flex items-center gap-1.5 text-text-muted hover:text-text transition-colors" 191 + > 192 + <Icon 193 + name="rose" 194 + class="w-4 h-4 shrink-0 text-rose-700" 195 + aria-hidden="true" 196 + /> 197 + Aly Raffauf 198 + </a> 199 + <span class="text-text-muted/40">›</span> 200 + <span class="text-text flex items-center gap-1.5"> 201 + <img src="/icon.svg" alt="" class="w-4 h-4" /> 202 + Switchyard 203 + </span> 204 + </div> 205 + </header> 206 + 207 + <!-- Hero --> 208 + <section 209 + class="min-h-screen flex items-center bg-gradient-to-br from-bg to-bg-alt relative overflow-hidden" 210 + > 211 + <div 212 + class="absolute -top-1/2 -right-1/5 w-4/5 h-[200%] hero-bg-glow pointer-events-none" 213 + > 214 + </div> 215 + 216 + <div 217 + class="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8 py-8 md:py-16 relative z-10" 218 + > 219 + <div class="contents md:block text-center md:text-left"> 220 + <div 221 + class="flex items-center gap-3 md:gap-4 justify-center md:justify-start mb-4 order-1" 222 + > 223 + <img 224 + src="/icon.svg" 225 + alt="" 226 + class="w-14 h-14 md:w-[72px] md:h-[72px] shrink-0" 227 + /> 228 + <h1 229 + class="text-3xl md:text-[3.5rem] font-bold leading-tight tracking-tight bg-gradient-to-br from-text to-text-muted bg-clip-text text-transparent" 230 + > 231 + Switchyard 232 + </h1> 233 + </div> 234 + <p 235 + class="text-lg md:text-xl text-text-muted font-medium mb-4 order-3" 236 + > 237 + A rules-based browser launcher for Linux. 238 + </p> 239 + <p 240 + class="text-base md:text-lg text-text-muted leading-relaxed mb-4 max-w-[480px] mx-auto md:mx-0 order-4" 241 + > 242 + Work links in Chrome. Personal links in Firefox. 243 + </p> 244 + <div 245 + class="inline-block px-3 py-2 md:px-4 md:py-2 bg-primary/10 text-primary rounded-full text-sm font-semibold mb-4 md:mb-8 order-5" 246 + > 247 + 100% Free & Open Source 248 + </div> 249 + <div 250 + class="flex flex-col md:flex-row gap-3 md:gap-4 items-center md:items-start justify-center md:justify-start order-6" 251 + > 252 + { 253 + heroButtons.map((btn) => ( 254 + <a 255 + href={btn.href} 256 + class={`inline-flex items-center gap-2.5 px-6 py-3.5 rounded-xl font-semibold text-base transition-all duration-200 w-full md:w-auto max-w-[260px] justify-center focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 ${ 257 + btn.primary 258 + ? "bg-primary text-white shadow-primary hover:bg-primary-light hover:-translate-y-0.5 hover:shadow-primary-hover" 259 + : "bg-transparent text-text border-2 border-border hover:border-primary hover:text-primary" 260 + }`} 261 + > 262 + {btn.icon && <Icon name={btn.icon} filled class="w-5 h-5" />} 263 + {btn.label} 264 + </a> 265 + )) 266 + } 267 + </div> 268 + </div> 269 + <div class="order-2 md:order-none"> 270 + <Image 271 + src={screenshots[0].src} 272 + alt={screenshots[0].alt} 273 + data-lightbox="true" 274 + role="button" 275 + tabindex="0" 276 + loading="eager" 277 + class="w-full max-w-[280px] md:max-w-[480px] h-auto rounded-xl md:rounded-2xl shadow-lg border border-border cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto" 278 + /> 279 + </div> 280 + </div> 281 + </section> 282 + 283 + <!-- Features --> 284 + <section class="py-12 md:py-20 bg-bg"> 285 + <div class="max-w-[1100px] mx-auto px-4 md:px-8"> 286 + <h2 287 + class="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight" 288 + > 289 + Key Features 290 + </h2> 291 + <div 292 + class="grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-10 max-w-[400px] md:max-w-none mx-auto" 293 + > 294 + { 295 + features.map((feature) => ( 296 + <div class="text-center p-4 md:p-8"> 297 + <div class="w-11 h-11 md:w-12 md:h-12 mx-auto mb-4 bg-gradient-to-br from-primary to-primary-dark rounded-xl flex items-center justify-center text-white"> 298 + <Icon name={feature.icon} class="w-5 h-5 md:w-6 md:h-6" /> 299 + </div> 300 + <h3 class="text-base md:text-lg font-bold mb-2"> 301 + {feature.title} 302 + </h3> 303 + <p class="text-text-muted text-sm leading-relaxed"> 304 + {feature.description} 305 + </p> 306 + </div> 307 + )) 308 + } 309 + </div> 310 + </div> 311 + </section> 312 + 313 + <!-- Showcases --> 314 + { 315 + showcases.map((showcase, index) => ( 316 + <section 317 + class={`py-12 md:py-20 ${index % 2 === 0 ? "bg-bg-alt" : "bg-bg"}`} 318 + > 319 + <div class="grid grid-cols-1 md:grid-cols-[1.2fr_1fr] gap-6 md:gap-16 items-center max-w-[1200px] mx-auto px-4 md:px-8"> 320 + {showcase.screenshot && ( 321 + <Image 322 + src={showcase.screenshot.src} 323 + alt={showcase.screenshot.alt} 324 + loading="lazy" 325 + data-lightbox="true" 326 + role="button" 327 + tabindex="0" 328 + class="w-full max-w-[600px] h-auto rounded-xl md:rounded-2xl border border-border shadow-lg cursor-pointer transition-transform duration-300 hover:scale-[1.02] focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2 mx-auto order-first md:order-none" 329 + /> 330 + )} 331 + {showcase.code && ( 332 + <pre class="bg-bg-alt rounded-xl px-4 py-3 md:px-5 md:py-4 overflow-x-auto shadow-default border border-border text-left"> 333 + <code class="block font-mono text-xs md:text-sm leading-relaxed text-text whitespace-pre"> 334 + {showcase.code} 335 + </code> 336 + </pre> 337 + )} 338 + <div 339 + class:list={[ 340 + "text-center md:text-left", 341 + { "md:order-first": index % 2 !== 0 }, 342 + ]} 343 + > 344 + <h2 class="text-xl md:text-2xl font-bold mb-4 tracking-tight"> 345 + {showcase.title} 346 + </h2> 347 + <p class="text-text-muted text-base leading-relaxed max-w-[400px] mx-auto md:mx-0"> 348 + {showcase.description} 349 + </p> 350 + </div> 351 + </div> 352 + </section> 353 + )) 354 + } 355 + 356 + <!-- Installation --> 357 + <section class={`py-12 md:py-20 ${installBg}`} id="install"> 358 + <div class="max-w-[1100px] mx-auto px-4 md:px-8"> 359 + <h2 360 + class="text-2xl md:text-3xl font-bold text-center mb-8 md:mb-10 tracking-tight" 361 + > 362 + Get Started 363 + </h2> 364 + <div 365 + class="grid grid-cols-1 md:grid-cols-3 gap-6 max-w-[400px] md:max-w-[900px] mx-auto" 366 + > 367 + { 368 + installOptions.map((option) => ( 369 + <div class="bg-bg p-5 md:p-8 rounded-2xl border border-border transition-all duration-300 hover:shadow-default hover:-translate-y-0.5"> 370 + <div class="w-9 h-9 md:w-10 md:h-10 mb-4 text-primary"> 371 + <Icon name={option.icon} filled class="w-full h-full" /> 372 + </div> 373 + <h3 class="text-base md:text-lg font-bold mb-1"> 374 + {option.title} 375 + </h3> 376 + <p class="text-text-muted text-sm mb-4">{option.description}</p> 377 + {"command" in option ? ( 378 + <code class="block bg-bg-alt px-3 py-3 md:px-4 rounded-xl text-xs font-mono overflow-x-auto border border-border"> 379 + {option.command} 380 + </code> 381 + ) : ( 382 + <a 383 + href={option.link} 384 + class="block bg-primary text-white px-4 py-3 rounded-xl text-sm font-semibold text-center transition-colors duration-200 hover:bg-primary-light hover:text-white focus-visible:outline-2 focus-visible:outline-primary focus-visible:outline-offset-2" 385 + > 386 + {option.linkText} 387 + </a> 388 + )} 389 + </div> 390 + )) 391 + } 392 + </div> 393 + </div> 394 + </section> 395 + 396 + <!-- Footer --> 397 + <footer class={`py-8 md:py-12 ${footerBg}`}> 398 + <div 399 + class="max-w-[1100px] mx-auto px-4 md:px-8 flex flex-col items-center gap-5" 400 + > 401 + <div class="flex items-center gap-3 font-semibold text-lg"> 402 + <img 403 + src="/icon.svg" 404 + alt="Switchyard" 405 + class="w-8 h-8" 406 + loading="lazy" 407 + /> 408 + <span>Switchyard</span> 409 + </div> 410 + <nav class="flex gap-6 md:gap-8"> 411 + { 412 + footerLinks.map((link) => ( 413 + <a 414 + href={link.href} 415 + class="text-text-muted text-sm hover:text-primary" 416 + > 417 + {link.label} 418 + </a> 419 + )) 420 + } 421 + </nav> 422 + <p class="text-text-light text-sm"> 423 + Made by{" "} 424 + <a 425 + href={DEV_URL} 426 + class="text-text-muted hover:text-primary transition-colors" 427 + > 428 + Aly Raffauf 429 + </a>{" "} 430 + &middot; GPL-3.0-or-later 431 + </p> 432 + </div> 433 + </footer> 434 + 435 + <script is:inline> 436 + function closeLightbox() { 437 + document.querySelector('[role="dialog"]')?.remove(); 438 + } 439 + 440 + function openLightbox(src, alt) { 441 + const overlay = document.createElement("div"); 442 + overlay.className = 443 + "fixed inset-0 bg-black/90 flex items-center justify-center z-[1000] cursor-pointer backdrop-blur-sm"; 444 + overlay.setAttribute("role", "dialog"); 445 + overlay.setAttribute("aria-modal", "true"); 446 + overlay.setAttribute("aria-label", "Image preview"); 447 + const img = document.createElement("img"); 448 + img.src = src; 449 + img.alt = alt; 450 + img.className = 451 + "max-w-[90vw] max-h-[85vh] md:max-h-[90vh] rounded-lg md:rounded-xl shadow-lg"; 452 + img.addEventListener("click", (e) => e.stopPropagation()); 453 + overlay.appendChild(img); 454 + overlay.addEventListener("click", closeLightbox); 455 + document.body.appendChild(overlay); 456 + } 457 + 458 + document.addEventListener("click", (e) => { 459 + const img = e.target.closest("[data-lightbox]"); 460 + if (!img) return; 461 + openLightbox(img.src, img.alt); 462 + }); 463 + document.addEventListener("keydown", (e) => { 464 + if (e.key === "Escape") { 465 + closeLightbox(); 466 + return; 467 + } 468 + if (e.key !== "Enter") return; 469 + const img = e.target.closest("[data-lightbox]"); 470 + if (!img) return; 471 + openLightbox(img.src, img.alt); 472 + }); 473 + </script> 474 + </body> 475 + </html>
+40
website/src/styles/index.css
··· 1 + @import "tailwindcss"; 2 + 3 + @theme { 4 + --color-primary: #4f895d; 5 + --color-primary-light: #5a9d6a; 6 + --color-primary-dark: #3d6b48; 7 + --color-bg: #ffffff; 8 + --color-bg-alt: #f8faf8; 9 + --color-text: #1a1a1a; 10 + --color-text-muted: #555555; 11 + --color-text-light: #888888; 12 + --color-border: #e0e0e0; 13 + --shadow-default: 0 4px 24px rgba(0, 0, 0, 0.08); 14 + --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.12); 15 + --shadow-primary: 0 4px 14px rgba(79, 137, 93, 0.35); 16 + --shadow-primary-hover: 0 6px 20px rgba(79, 137, 93, 0.4); 17 + --font-sans: 18 + -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", 19 + Arial, sans-serif; 20 + --font-mono: "SF Mono", Monaco, "Cascadia Code", "Fira Code", monospace; 21 + } 22 + 23 + html { 24 + scroll-behavior: smooth; 25 + } 26 + 27 + body { 28 + font-family: var(--font-sans); 29 + background: var(--color-bg); 30 + color: var(--color-text); 31 + -webkit-font-smoothing: antialiased; 32 + } 33 + 34 + .hero-bg-glow { 35 + background: radial-gradient( 36 + ellipse, 37 + color-mix(in srgb, var(--color-primary) 8%, transparent) 0%, 38 + transparent 70% 39 + ); 40 + }
-48
website/src/types.ts
··· 1 - import type { IconName } from "./components/Icon"; 2 - 3 - export interface Screenshot { 4 - src: string; 5 - alt: string; 6 - } 7 - 8 - export interface Feature { 9 - icon: IconName; 10 - title: string; 11 - description: string; 12 - } 13 - 14 - export interface HeroButton { 15 - href: string; 16 - label: string; 17 - icon?: IconName; 18 - primary?: boolean; 19 - } 20 - 21 - interface InstallOptionCommand { 22 - icon: IconName; 23 - title: string; 24 - description: string; 25 - command: string; 26 - } 27 - 28 - interface InstallOptionLink { 29 - icon: IconName; 30 - title: string; 31 - description: string; 32 - link: string; 33 - linkText: string; 34 - } 35 - 36 - export type InstallOption = InstallOptionCommand | InstallOptionLink; 37 - 38 - export interface Showcase { 39 - screenshot?: Screenshot; 40 - code?: string; 41 - title: string; 42 - description: string; 43 - } 44 - 45 - export interface FooterLink { 46 - href: string; 47 - label: string; 48 - }
-28
website/tsconfig.app.json
··· 1 - { 2 - "compilerOptions": { 3 - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 4 - "target": "ES2022", 5 - "useDefineForClassFields": true, 6 - "lib": ["ES2022", "DOM", "DOM.Iterable"], 7 - "module": "ESNext", 8 - "types": ["vite/client"], 9 - "skipLibCheck": true, 10 - 11 - /* Bundler mode */ 12 - "moduleResolution": "bundler", 13 - "allowImportingTsExtensions": true, 14 - "verbatimModuleSyntax": true, 15 - "moduleDetection": "force", 16 - "noEmit": true, 17 - "jsx": "react-jsx", 18 - 19 - /* Linting */ 20 - "strict": true, 21 - "noUnusedLocals": true, 22 - "noUnusedParameters": true, 23 - "erasableSyntaxOnly": true, 24 - "noFallthroughCasesInSwitch": true, 25 - "noUncheckedSideEffectImports": true 26 - }, 27 - "include": ["src"] 28 - }
+19 -5
website/tsconfig.json
··· 1 1 { 2 - "files": [], 3 - "references": [ 4 - { "path": "./tsconfig.app.json" }, 5 - { "path": "./tsconfig.node.json" } 6 - ] 2 + "compilerOptions": { 3 + "target": "ES2022", 4 + "lib": ["ES2023", "DOM", "DOM.Iterable"], 5 + "module": "ESNext", 6 + "moduleResolution": "bundler", 7 + "allowImportingTsExtensions": true, 8 + "verbatimModuleSyntax": true, 9 + "moduleDetection": "force", 10 + "noEmit": true, 11 + "strict": true, 12 + "noUnusedLocals": true, 13 + "noUnusedParameters": true, 14 + "erasableSyntaxOnly": true, 15 + "noFallthroughCasesInSwitch": true, 16 + "noUncheckedSideEffectImports": true, 17 + "skipLibCheck": true, 18 + "types": ["astro/client"] 19 + }, 20 + "include": ["src", "astro.config.mjs"] 7 21 }
-26
website/tsconfig.node.json
··· 1 - { 2 - "compilerOptions": { 3 - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 4 - "target": "ES2023", 5 - "lib": ["ES2023"], 6 - "module": "ESNext", 7 - "types": ["node"], 8 - "skipLibCheck": true, 9 - 10 - /* Bundler mode */ 11 - "moduleResolution": "bundler", 12 - "allowImportingTsExtensions": true, 13 - "verbatimModuleSyntax": true, 14 - "moduleDetection": "force", 15 - "noEmit": true, 16 - 17 - /* Linting */ 18 - "strict": true, 19 - "noUnusedLocals": true, 20 - "noUnusedParameters": true, 21 - "erasableSyntaxOnly": true, 22 - "noFallthroughCasesInSwitch": true, 23 - "noUncheckedSideEffectImports": true 24 - }, 25 - "include": ["vite.config.ts"] 26 - }
-9
website/vite.config.ts
··· 1 - import { defineConfig } from "vite"; 2 - import react from "@vitejs/plugin-react"; 3 - import tailwindcss from "@tailwindcss/vite"; 4 - 5 - // https://vite.dev/config/ 6 - export default defineConfig({ 7 - plugins: [react(), tailwindcss()], 8 - base: "/", 9 - });