[READ-ONLY] Mirror of https://github.com/flo-bit/dogumentation. Simple, minimalistic documentation template using astro flo-bit.dev/dogumentation/
0

Configure Feed

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

first commit

author
Florian
date (Feb 23, 2025, 3:53 PM +0100) commit 62b8b34f
+12522
+32
.github/workflows/deploy.yml
··· 1 + name: Deploy to GitHub Pages 2 + 3 + on: 4 + push: 5 + branches: [main] 6 + workflow_dispatch: 7 + 8 + permissions: 9 + contents: read 10 + pages: write 11 + id-token: write 12 + 13 + jobs: 14 + build: 15 + runs-on: ubuntu-latest 16 + steps: 17 + - name: Checkout your repository using git 18 + uses: actions/checkout@v4 19 + 20 + - name: Install, build, and upload your site 21 + uses: withastro/action@v3 22 + 23 + deploy: 24 + needs: build 25 + runs-on: ubuntu-latest 26 + environment: 27 + name: github-pages 28 + url: ${{ steps.deployment.outputs.page_url }} 29 + steps: 30 + - name: Deploy to GitHub Pages 31 + id: deployment 32 + uses: actions/deploy-pages@v4
+26
.gitignore
··· 1 + # build output 2 + dist/ 3 + # generated types 4 + .astro/ 5 + 6 + # dependencies 7 + node_modules/ 8 + 9 + # logs 10 + npm-debug.log* 11 + yarn-debug.log* 12 + yarn-error.log* 13 + pnpm-debug.log* 14 + 15 + 16 + # environment variables 17 + .env 18 + .env.production 19 + 20 + # macOS-specific files 21 + .DS_Store 22 + 23 + # jetbrains setting folder 24 + .idea/ 25 + 26 + public/pagefind/
+4
.vscode/extensions.json
··· 1 + { 2 + "recommendations": ["astro-build.astro-vscode", "unifiedjs.vscode-mdx"], 3 + "unwantedRecommendations": [] 4 + }
+11
.vscode/launch.json
··· 1 + { 2 + "version": "0.2.0", 3 + "configurations": [ 4 + { 5 + "command": "./node_modules/.bin/astro dev", 6 + "name": "Development server", 7 + "request": "launch", 8 + "type": "node-terminal" 9 + } 10 + ] 11 + }
+21
LICENSE
··· 1 + MIT License Copyright (c) 2024 flo-bit 2 + 3 + Permission is hereby granted, free of 4 + charge, to any person obtaining a copy of this software and associated 5 + documentation files (the "Software"), to deal in the Software without 6 + restriction, including without limitation the rights to use, copy, modify, merge, 7 + publish, distribute, sublicense, and/or sell copies of the Software, and to 8 + permit persons to whom the Software is furnished to do so, subject to the 9 + following conditions: 10 + 11 + The above copyright notice and this permission notice 12 + (including the next paragraph) shall be included in all copies or substantial 13 + portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 16 + ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 18 + EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 + THE SOFTWARE.
README.md

This is a binary file and will not be displayed.

+74
astro.config.ts
··· 1 + // @ts-check 2 + import { defineConfig } from "astro/config"; 3 + import { resolve } from "path"; 4 + import remarkMath from "remark-math" 5 + import rehypeMathjax from "rehype-mathjax" 6 + 7 + import mdx from "@astrojs/mdx"; 8 + import sitemap from "@astrojs/sitemap"; 9 + import tailwind from "@astrojs/tailwind"; 10 + import svelte from "@astrojs/svelte"; 11 + 12 + import pagefind from "astro-pagefind"; 13 + import customEmbeds from 'astro-custom-embeds'; 14 + 15 + import { transformerMetaHighlight, transformerNotationHighlight } from '@shikijs/transformers' 16 + 17 + import LinkCardEmbed from './src/embeds/link-card/embed' 18 + import YoutubeEmbed from './src/embeds/youtube/embed' 19 + import ExcalidrawEmbed from "./src/embeds/excalidraw/embed"; 20 + import GithubEmbed from "./src/embeds/github/embed"; 21 + 22 + import react from "@astrojs/react"; 23 + 24 + import config from "./src/config"; 25 + 26 + // https://astro.build/config 27 + export default defineConfig({ 28 + vite: { 29 + resolve: { 30 + alias: { 31 + $components: resolve("./src/components"), 32 + $layouts: resolve("./src/layouts"), 33 + $pages: resolve("./src/pages"), 34 + $assets: resolve("./src/assets"), 35 + $content: resolve("./src/content"), 36 + }, 37 + }, 38 + }, 39 + 40 + integrations: [pagefind(), customEmbeds({ 41 + embeds: [ 42 + ExcalidrawEmbed, 43 + YoutubeEmbed, 44 + GithubEmbed, 45 + LinkCardEmbed, 46 + ] 47 + }), mdx(), sitemap(), tailwind(), svelte(), react()], 48 + 49 + markdown: { 50 + shikiConfig: { 51 + themes: { 52 + light: "github-light", 53 + dark: "github-dark", 54 + }, 55 + defaultColor: false, 56 + transformers: [transformerMetaHighlight(), transformerNotationHighlight()], 57 + wrap: true 58 + }, 59 + 60 + remarkPlugins: [ 61 + remarkMath 62 + ], 63 + rehypePlugins: [ 64 + rehypeMathjax 65 + ] 66 + }, 67 + 68 + prefetch: { 69 + prefetchAll: true, 70 + }, 71 + site: config.SITE, 72 + base: config.BASE, 73 + output: "static", 74 + });
+9324
package-lock.json
··· 1 + { 2 + "name": "blog-template", 3 + "version": "0.0.1", 4 + "lockfileVersion": 3, 5 + "requires": true, 6 + "packages": { 7 + "": { 8 + "name": "blog-template", 9 + "version": "0.0.1", 10 + "license": "MIT", 11 + "dependencies": { 12 + "@ascorbic/bluesky-loader": "^0.0.3", 13 + "@astro-community/astro-embed-utils": "^0.1.3", 14 + "@astrojs/check": "^0.9.4", 15 + "@astrojs/mdx": "^4.0.8", 16 + "@astrojs/react": "^4.2.0", 17 + "@astrojs/rss": "^4.0.11", 18 + "@astrojs/sitemap": "^3.2.1", 19 + "@astrojs/svelte": "^7.0.4", 20 + "@astrojs/tailwind": "^6.0.0", 21 + "@codesandbox/sandpack-react": "^2.20.0", 22 + "@codesandbox/sandpack-themes": "^2.0.21", 23 + "@shikijs/transformers": "^1.24.2", 24 + "@tailwindcss/forms": "^0.5.9", 25 + "@types/react": "^19.0.10", 26 + "@types/react-dom": "^19.0.4", 27 + "astro": "^5.3.0", 28 + "astro-custom-embeds": "^0.0.1", 29 + "astro-og-canvas": "^0.7.0", 30 + "astro-pagefind": "^1.8.0", 31 + "cheerio": "^1.0.0", 32 + "lite-youtube-embed": "^0.3.3", 33 + "react": "^19.0.0", 34 + "react-dom": "^19.0.0", 35 + "rehype-mathjax": "^7.1.0", 36 + "remark-math": "^6.0.0", 37 + "svelte": "^5.1.1", 38 + "tailwind-merge": "^2.5.4", 39 + "tailwindcss": "^3.4.14", 40 + "typescript": "^5.6.3" 41 + }, 42 + "devDependencies": { 43 + "@sveltejs/vite-plugin-svelte": "^5.0.3", 44 + "@tailwindcss/typography": "^0.5.15", 45 + "pagefind": "^1.3.0", 46 + "vite-plugin-pagefind": "^1.0.5" 47 + } 48 + }, 49 + "node_modules/@alloc/quick-lru": { 50 + "version": "5.2.0", 51 + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 52 + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 53 + "engines": { 54 + "node": ">=10" 55 + }, 56 + "funding": { 57 + "url": "https://github.com/sponsors/sindresorhus" 58 + } 59 + }, 60 + "node_modules/@ampproject/remapping": { 61 + "version": "2.3.0", 62 + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 63 + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 64 + "dependencies": { 65 + "@jridgewell/gen-mapping": "^0.3.5", 66 + "@jridgewell/trace-mapping": "^0.3.24" 67 + }, 68 + "engines": { 69 + "node": ">=6.0.0" 70 + } 71 + }, 72 + "node_modules/@ascorbic/bluesky-loader": { 73 + "version": "0.0.3", 74 + "resolved": "https://registry.npmjs.org/@ascorbic/bluesky-loader/-/bluesky-loader-0.0.3.tgz", 75 + "integrity": "sha512-jOO+BnjL5Bxw7ak3d88EsE29TeXrsyP/FFJEp8js3RKZ9EdgTxcEQPIcP6XMTQlkkmLfr4kNkUCnozEYpv69GQ==", 76 + "dependencies": { 77 + "@ascorbic/loader-utils": "^1.0.2", 78 + "@atproto/api": "^0.13.14" 79 + }, 80 + "peerDependencies": { 81 + "astro": "^4.14.0 || ^5.0.0-beta.0" 82 + } 83 + }, 84 + "node_modules/@ascorbic/loader-utils": { 85 + "version": "1.0.2", 86 + "resolved": "https://registry.npmjs.org/@ascorbic/loader-utils/-/loader-utils-1.0.2.tgz", 87 + "integrity": "sha512-pg43g83gojVtEsAkXfjWuzJhuXneJp4wM/leBftGkCPV3yxKgB92EWA+nWu735BgbBMph3P7DrVqVc3ikt+dJA==", 88 + "peerDependencies": { 89 + "astro": "^4.14.0 || ^5.0.0-beta.0" 90 + } 91 + }, 92 + "node_modules/@astro-community/astro-embed-utils": { 93 + "version": "0.1.3", 94 + "resolved": "https://registry.npmjs.org/@astro-community/astro-embed-utils/-/astro-embed-utils-0.1.3.tgz", 95 + "integrity": "sha512-eiMO+vfCdE9GtW6qE7X5Xl6YCKZDCoXJEWqRofQcoC3GHjqN2/WhJlnaxNVRq3demSO03UNtho57Em5p7o7AOA==", 96 + "dependencies": { 97 + "linkedom": "^0.14.26" 98 + } 99 + }, 100 + "node_modules/@astrojs/check": { 101 + "version": "0.9.4", 102 + "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.4.tgz", 103 + "integrity": "sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==", 104 + "dependencies": { 105 + "@astrojs/language-server": "^2.15.0", 106 + "chokidar": "^4.0.1", 107 + "kleur": "^4.1.5", 108 + "yargs": "^17.7.2" 109 + }, 110 + "bin": { 111 + "astro-check": "dist/bin.js" 112 + }, 113 + "peerDependencies": { 114 + "typescript": "^5.0.0" 115 + } 116 + }, 117 + "node_modules/@astrojs/compiler": { 118 + "version": "2.10.4", 119 + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.4.tgz", 120 + "integrity": "sha512-86B3QGagP99MvSNwuJGiYSBHnh8nLvm2Q1IFI15wIUJJsPeQTO3eb2uwBmrqRsXykeR/mBzH8XCgz5AAt1BJrQ==" 121 + }, 122 + "node_modules/@astrojs/internal-helpers": { 123 + "version": "0.5.1", 124 + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.5.1.tgz", 125 + "integrity": "sha512-M7rAge1n2+aOSxNvKUFa0u/KFn0W+sZy7EW91KOSERotm2Ti8qs+1K0xx3zbOxtAVrmJb5/J98eohVvvEqtNkw==" 126 + }, 127 + "node_modules/@astrojs/language-server": { 128 + "version": "2.15.4", 129 + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.15.4.tgz", 130 + "integrity": "sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==", 131 + "dependencies": { 132 + "@astrojs/compiler": "^2.10.3", 133 + "@astrojs/yaml2ts": "^0.2.2", 134 + "@jridgewell/sourcemap-codec": "^1.4.15", 135 + "@volar/kit": "~2.4.7", 136 + "@volar/language-core": "~2.4.7", 137 + "@volar/language-server": "~2.4.7", 138 + "@volar/language-service": "~2.4.7", 139 + "fast-glob": "^3.2.12", 140 + "muggle-string": "^0.4.1", 141 + "volar-service-css": "0.0.62", 142 + "volar-service-emmet": "0.0.62", 143 + "volar-service-html": "0.0.62", 144 + "volar-service-prettier": "0.0.62", 145 + "volar-service-typescript": "0.0.62", 146 + "volar-service-typescript-twoslash-queries": "0.0.62", 147 + "volar-service-yaml": "0.0.62", 148 + "vscode-html-languageservice": "^5.2.0", 149 + "vscode-uri": "^3.0.8" 150 + }, 151 + "bin": { 152 + "astro-ls": "bin/nodeServer.js" 153 + }, 154 + "peerDependencies": { 155 + "prettier": "^3.0.0", 156 + "prettier-plugin-astro": ">=0.11.0" 157 + }, 158 + "peerDependenciesMeta": { 159 + "prettier": { 160 + "optional": true 161 + }, 162 + "prettier-plugin-astro": { 163 + "optional": true 164 + } 165 + } 166 + }, 167 + "node_modules/@astrojs/markdown-remark": { 168 + "version": "6.1.0", 169 + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.1.0.tgz", 170 + "integrity": "sha512-emZNNSTPGgPc3V399Cazpp5+snogjaF04ocOSQn9vy3Kw/eIC4vTQjXOrWDEoSEy+AwPDZX9bQ4wd3bxhpmGgQ==", 171 + "dependencies": { 172 + "@astrojs/prism": "3.2.0", 173 + "github-slugger": "^2.0.0", 174 + "hast-util-from-html": "^2.0.3", 175 + "hast-util-to-text": "^4.0.2", 176 + "import-meta-resolve": "^4.1.0", 177 + "js-yaml": "^4.1.0", 178 + "mdast-util-definitions": "^6.0.0", 179 + "rehype-raw": "^7.0.0", 180 + "rehype-stringify": "^10.0.1", 181 + "remark-gfm": "^4.0.0", 182 + "remark-parse": "^11.0.0", 183 + "remark-rehype": "^11.1.1", 184 + "remark-smartypants": "^3.0.2", 185 + "shiki": "^1.29.1", 186 + "smol-toml": "^1.3.1", 187 + "unified": "^11.0.5", 188 + "unist-util-remove-position": "^5.0.0", 189 + "unist-util-visit": "^5.0.0", 190 + "unist-util-visit-parents": "^6.0.1", 191 + "vfile": "^6.0.3" 192 + } 193 + }, 194 + "node_modules/@astrojs/mdx": { 195 + "version": "4.0.8", 196 + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.0.8.tgz", 197 + "integrity": "sha512-/aiLr2yQ55W9AbpyOgfMtFXk7g2t7XoWdC2Avps/NqxAx4aYONDLneX43D79QwgqdjFhin7o3cIPp/vVppMbaA==", 198 + "dependencies": { 199 + "@astrojs/markdown-remark": "6.1.0", 200 + "@mdx-js/mdx": "^3.1.0", 201 + "acorn": "^8.14.0", 202 + "es-module-lexer": "^1.6.0", 203 + "estree-util-visit": "^2.0.0", 204 + "hast-util-to-html": "^9.0.4", 205 + "kleur": "^4.1.5", 206 + "rehype-raw": "^7.0.0", 207 + "remark-gfm": "^4.0.0", 208 + "remark-smartypants": "^3.0.2", 209 + "source-map": "^0.7.4", 210 + "unist-util-visit": "^5.0.0", 211 + "vfile": "^6.0.3" 212 + }, 213 + "engines": { 214 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" 215 + }, 216 + "peerDependencies": { 217 + "astro": "^5.0.0" 218 + } 219 + }, 220 + "node_modules/@astrojs/prism": { 221 + "version": "3.2.0", 222 + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.2.0.tgz", 223 + "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", 224 + "dependencies": { 225 + "prismjs": "^1.29.0" 226 + }, 227 + "engines": { 228 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" 229 + } 230 + }, 231 + "node_modules/@astrojs/react": { 232 + "version": "4.2.0", 233 + "resolved": "https://registry.npmjs.org/@astrojs/react/-/react-4.2.0.tgz", 234 + "integrity": "sha512-2OccnYFK+mLuy9GpJqPM3BQGvvemnXNeww+nBVYFuiH04L7YIdfg4Gq0LT7v/BraiuADV5uTl9VhTDL/ZQPAhw==", 235 + "dependencies": { 236 + "@vitejs/plugin-react": "^4.3.4", 237 + "ultrahtml": "^1.5.3", 238 + "vite": "^6.0.9" 239 + }, 240 + "engines": { 241 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" 242 + }, 243 + "peerDependencies": { 244 + "@types/react": "^17.0.50 || ^18.0.21 || ^19.0.0", 245 + "@types/react-dom": "^17.0.17 || ^18.0.6 || ^19.0.0", 246 + "react": "^17.0.2 || ^18.0.0 || ^19.0.0", 247 + "react-dom": "^17.0.2 || ^18.0.0 || ^19.0.0" 248 + } 249 + }, 250 + "node_modules/@astrojs/rss": { 251 + "version": "4.0.11", 252 + "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.11.tgz", 253 + "integrity": "sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==", 254 + "dependencies": { 255 + "fast-xml-parser": "^4.5.0", 256 + "kleur": "^4.1.5" 257 + } 258 + }, 259 + "node_modules/@astrojs/sitemap": { 260 + "version": "3.2.1", 261 + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.2.1.tgz", 262 + "integrity": "sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==", 263 + "dependencies": { 264 + "sitemap": "^8.0.0", 265 + "stream-replace-string": "^2.0.0", 266 + "zod": "^3.23.8" 267 + } 268 + }, 269 + "node_modules/@astrojs/svelte": { 270 + "version": "7.0.4", 271 + "resolved": "https://registry.npmjs.org/@astrojs/svelte/-/svelte-7.0.4.tgz", 272 + "integrity": "sha512-vTFhHhYNr1GkrpR63Talv8ba1HHUWoHNzBs4eJNZz4bQCihAdxw+xz/CWcWM1bfAzH3Jfc7jAKXPNAZSwN4oFg==", 273 + "dependencies": { 274 + "@sveltejs/vite-plugin-svelte": "^5.0.3", 275 + "svelte2tsx": "^0.7.34", 276 + "vite": "^6.0.9" 277 + }, 278 + "engines": { 279 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" 280 + }, 281 + "peerDependencies": { 282 + "astro": "^5.0.0", 283 + "svelte": "^5.1.16", 284 + "typescript": "^5.3.3" 285 + } 286 + }, 287 + "node_modules/@astrojs/tailwind": { 288 + "version": "6.0.0", 289 + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-6.0.0.tgz", 290 + "integrity": "sha512-GbEK2/h0nvY8i6g1GZT5ddHAgj71lQIf34/j7+jPLhUti3xDxKcWElApDe2jWvqAaKl2oKEh045ITSm8mU9BVQ==", 291 + "dependencies": { 292 + "autoprefixer": "^10.4.20", 293 + "postcss": "^8.5.1", 294 + "postcss-load-config": "^4.0.2" 295 + }, 296 + "peerDependencies": { 297 + "astro": "^3.0.0 || ^4.0.0 || ^5.0.0", 298 + "tailwindcss": "^3.0.24" 299 + } 300 + }, 301 + "node_modules/@astrojs/telemetry": { 302 + "version": "3.2.0", 303 + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.2.0.tgz", 304 + "integrity": "sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==", 305 + "dependencies": { 306 + "ci-info": "^4.1.0", 307 + "debug": "^4.3.7", 308 + "dlv": "^1.1.3", 309 + "dset": "^3.1.4", 310 + "is-docker": "^3.0.0", 311 + "is-wsl": "^3.1.0", 312 + "which-pm-runs": "^1.1.0" 313 + }, 314 + "engines": { 315 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" 316 + } 317 + }, 318 + "node_modules/@astrojs/yaml2ts": { 319 + "version": "0.2.2", 320 + "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.2.tgz", 321 + "integrity": "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==", 322 + "dependencies": { 323 + "yaml": "^2.5.0" 324 + } 325 + }, 326 + "node_modules/@atproto/api": { 327 + "version": "0.13.35", 328 + "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.35.tgz", 329 + "integrity": "sha512-vsEfBj0C333TLjDppvTdTE0IdKlXuljKSveAeI4PPx/l6eUKNnDTsYxvILtXUVzwUlTDmSRqy5O4Ryh78n1b7g==", 330 + "dependencies": { 331 + "@atproto/common-web": "^0.4.0", 332 + "@atproto/lexicon": "^0.4.6", 333 + "@atproto/syntax": "^0.3.2", 334 + "@atproto/xrpc": "^0.6.8", 335 + "await-lock": "^2.2.2", 336 + "multiformats": "^9.9.0", 337 + "tlds": "^1.234.0", 338 + "zod": "^3.23.8" 339 + } 340 + }, 341 + "node_modules/@atproto/common-web": { 342 + "version": "0.4.0", 343 + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.0.tgz", 344 + "integrity": "sha512-ZYL0P9myHybNgwh/hBY0HaBzqiLR1B5/ie5bJpLQAg0whRzNA28t8/nU2vh99tbsWcAF0LOD29M8++LyENJLNQ==", 345 + "dependencies": { 346 + "graphemer": "^1.4.0", 347 + "multiformats": "^9.9.0", 348 + "uint8arrays": "3.0.0", 349 + "zod": "^3.23.8" 350 + } 351 + }, 352 + "node_modules/@atproto/lexicon": { 353 + "version": "0.4.7", 354 + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.7.tgz", 355 + "integrity": "sha512-/x6h3tAiDNzSi4eXtC8ke65B7UzsagtlGRHmUD95698x5lBRpDnpizj0fZWTZVYed5qnOmz/ZEue+v3wDmO61g==", 356 + "dependencies": { 357 + "@atproto/common-web": "^0.4.0", 358 + "@atproto/syntax": "^0.3.3", 359 + "iso-datestring-validator": "^2.2.2", 360 + "multiformats": "^9.9.0", 361 + "zod": "^3.23.8" 362 + } 363 + }, 364 + "node_modules/@atproto/syntax": { 365 + "version": "0.3.3", 366 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.3.tgz", 367 + "integrity": "sha512-F1LZweesNYdBbZBXVa72N/cSvchG8Q1tG4/209ZXbIuM3FwQtkgn+zgmmV4P4ORmhOeXPBNXvMBpcqiwx/gEQQ==" 368 + }, 369 + "node_modules/@atproto/xrpc": { 370 + "version": "0.6.9", 371 + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.9.tgz", 372 + "integrity": "sha512-vQGA7++DYMNaHx3C7vEjT+2X6hYYLG7JNbBnDLWu0km1/1KYXgRkAz4h+FfYqg1mvzvIorHU7DAs5wevkJDDlw==", 373 + "dependencies": { 374 + "@atproto/lexicon": "^0.4.7", 375 + "zod": "^3.23.8" 376 + } 377 + }, 378 + "node_modules/@babel/code-frame": { 379 + "version": "7.26.2", 380 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 381 + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 382 + "dependencies": { 383 + "@babel/helper-validator-identifier": "^7.25.9", 384 + "js-tokens": "^4.0.0", 385 + "picocolors": "^1.0.0" 386 + }, 387 + "engines": { 388 + "node": ">=6.9.0" 389 + } 390 + }, 391 + "node_modules/@babel/compat-data": { 392 + "version": "7.26.8", 393 + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", 394 + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", 395 + "engines": { 396 + "node": ">=6.9.0" 397 + } 398 + }, 399 + "node_modules/@babel/core": { 400 + "version": "7.26.9", 401 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", 402 + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", 403 + "dependencies": { 404 + "@ampproject/remapping": "^2.2.0", 405 + "@babel/code-frame": "^7.26.2", 406 + "@babel/generator": "^7.26.9", 407 + "@babel/helper-compilation-targets": "^7.26.5", 408 + "@babel/helper-module-transforms": "^7.26.0", 409 + "@babel/helpers": "^7.26.9", 410 + "@babel/parser": "^7.26.9", 411 + "@babel/template": "^7.26.9", 412 + "@babel/traverse": "^7.26.9", 413 + "@babel/types": "^7.26.9", 414 + "convert-source-map": "^2.0.0", 415 + "debug": "^4.1.0", 416 + "gensync": "^1.0.0-beta.2", 417 + "json5": "^2.2.3", 418 + "semver": "^6.3.1" 419 + }, 420 + "engines": { 421 + "node": ">=6.9.0" 422 + }, 423 + "funding": { 424 + "type": "opencollective", 425 + "url": "https://opencollective.com/babel" 426 + } 427 + }, 428 + "node_modules/@babel/core/node_modules/semver": { 429 + "version": "6.3.1", 430 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 431 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 432 + "bin": { 433 + "semver": "bin/semver.js" 434 + } 435 + }, 436 + "node_modules/@babel/generator": { 437 + "version": "7.26.9", 438 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", 439 + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", 440 + "dependencies": { 441 + "@babel/parser": "^7.26.9", 442 + "@babel/types": "^7.26.9", 443 + "@jridgewell/gen-mapping": "^0.3.5", 444 + "@jridgewell/trace-mapping": "^0.3.25", 445 + "jsesc": "^3.0.2" 446 + }, 447 + "engines": { 448 + "node": ">=6.9.0" 449 + } 450 + }, 451 + "node_modules/@babel/helper-compilation-targets": { 452 + "version": "7.26.5", 453 + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", 454 + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", 455 + "dependencies": { 456 + "@babel/compat-data": "^7.26.5", 457 + "@babel/helper-validator-option": "^7.25.9", 458 + "browserslist": "^4.24.0", 459 + "lru-cache": "^5.1.1", 460 + "semver": "^6.3.1" 461 + }, 462 + "engines": { 463 + "node": ">=6.9.0" 464 + } 465 + }, 466 + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { 467 + "version": "5.1.1", 468 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 469 + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 470 + "dependencies": { 471 + "yallist": "^3.0.2" 472 + } 473 + }, 474 + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { 475 + "version": "6.3.1", 476 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", 477 + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", 478 + "bin": { 479 + "semver": "bin/semver.js" 480 + } 481 + }, 482 + "node_modules/@babel/helper-module-imports": { 483 + "version": "7.25.9", 484 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", 485 + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", 486 + "dependencies": { 487 + "@babel/traverse": "^7.25.9", 488 + "@babel/types": "^7.25.9" 489 + }, 490 + "engines": { 491 + "node": ">=6.9.0" 492 + } 493 + }, 494 + "node_modules/@babel/helper-module-transforms": { 495 + "version": "7.26.0", 496 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", 497 + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", 498 + "dependencies": { 499 + "@babel/helper-module-imports": "^7.25.9", 500 + "@babel/helper-validator-identifier": "^7.25.9", 501 + "@babel/traverse": "^7.25.9" 502 + }, 503 + "engines": { 504 + "node": ">=6.9.0" 505 + }, 506 + "peerDependencies": { 507 + "@babel/core": "^7.0.0" 508 + } 509 + }, 510 + "node_modules/@babel/helper-plugin-utils": { 511 + "version": "7.26.5", 512 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", 513 + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", 514 + "engines": { 515 + "node": ">=6.9.0" 516 + } 517 + }, 518 + "node_modules/@babel/helper-string-parser": { 519 + "version": "7.25.9", 520 + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", 521 + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", 522 + "engines": { 523 + "node": ">=6.9.0" 524 + } 525 + }, 526 + "node_modules/@babel/helper-validator-identifier": { 527 + "version": "7.25.9", 528 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 529 + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 530 + "engines": { 531 + "node": ">=6.9.0" 532 + } 533 + }, 534 + "node_modules/@babel/helper-validator-option": { 535 + "version": "7.25.9", 536 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", 537 + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", 538 + "engines": { 539 + "node": ">=6.9.0" 540 + } 541 + }, 542 + "node_modules/@babel/helpers": { 543 + "version": "7.26.9", 544 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", 545 + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", 546 + "dependencies": { 547 + "@babel/template": "^7.26.9", 548 + "@babel/types": "^7.26.9" 549 + }, 550 + "engines": { 551 + "node": ">=6.9.0" 552 + } 553 + }, 554 + "node_modules/@babel/parser": { 555 + "version": "7.26.9", 556 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", 557 + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", 558 + "dependencies": { 559 + "@babel/types": "^7.26.9" 560 + }, 561 + "bin": { 562 + "parser": "bin/babel-parser.js" 563 + }, 564 + "engines": { 565 + "node": ">=6.0.0" 566 + } 567 + }, 568 + "node_modules/@babel/plugin-transform-react-jsx-self": { 569 + "version": "7.25.9", 570 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", 571 + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", 572 + "dependencies": { 573 + "@babel/helper-plugin-utils": "^7.25.9" 574 + }, 575 + "engines": { 576 + "node": ">=6.9.0" 577 + }, 578 + "peerDependencies": { 579 + "@babel/core": "^7.0.0-0" 580 + } 581 + }, 582 + "node_modules/@babel/plugin-transform-react-jsx-source": { 583 + "version": "7.25.9", 584 + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", 585 + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", 586 + "dependencies": { 587 + "@babel/helper-plugin-utils": "^7.25.9" 588 + }, 589 + "engines": { 590 + "node": ">=6.9.0" 591 + }, 592 + "peerDependencies": { 593 + "@babel/core": "^7.0.0-0" 594 + } 595 + }, 596 + "node_modules/@babel/template": { 597 + "version": "7.26.9", 598 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", 599 + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", 600 + "dependencies": { 601 + "@babel/code-frame": "^7.26.2", 602 + "@babel/parser": "^7.26.9", 603 + "@babel/types": "^7.26.9" 604 + }, 605 + "engines": { 606 + "node": ">=6.9.0" 607 + } 608 + }, 609 + "node_modules/@babel/traverse": { 610 + "version": "7.26.9", 611 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", 612 + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", 613 + "dependencies": { 614 + "@babel/code-frame": "^7.26.2", 615 + "@babel/generator": "^7.26.9", 616 + "@babel/parser": "^7.26.9", 617 + "@babel/template": "^7.26.9", 618 + "@babel/types": "^7.26.9", 619 + "debug": "^4.3.1", 620 + "globals": "^11.1.0" 621 + }, 622 + "engines": { 623 + "node": ">=6.9.0" 624 + } 625 + }, 626 + "node_modules/@babel/types": { 627 + "version": "7.26.9", 628 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", 629 + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", 630 + "dependencies": { 631 + "@babel/helper-string-parser": "^7.25.9", 632 + "@babel/helper-validator-identifier": "^7.25.9" 633 + }, 634 + "engines": { 635 + "node": ">=6.9.0" 636 + } 637 + }, 638 + "node_modules/@codemirror/autocomplete": { 639 + "version": "6.18.6", 640 + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz", 641 + "integrity": "sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==", 642 + "dependencies": { 643 + "@codemirror/language": "^6.0.0", 644 + "@codemirror/state": "^6.0.0", 645 + "@codemirror/view": "^6.17.0", 646 + "@lezer/common": "^1.0.0" 647 + } 648 + }, 649 + "node_modules/@codemirror/commands": { 650 + "version": "6.8.0", 651 + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.8.0.tgz", 652 + "integrity": "sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==", 653 + "dependencies": { 654 + "@codemirror/language": "^6.0.0", 655 + "@codemirror/state": "^6.4.0", 656 + "@codemirror/view": "^6.27.0", 657 + "@lezer/common": "^1.1.0" 658 + } 659 + }, 660 + "node_modules/@codemirror/lang-css": { 661 + "version": "6.3.1", 662 + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.3.1.tgz", 663 + "integrity": "sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==", 664 + "dependencies": { 665 + "@codemirror/autocomplete": "^6.0.0", 666 + "@codemirror/language": "^6.0.0", 667 + "@codemirror/state": "^6.0.0", 668 + "@lezer/common": "^1.0.2", 669 + "@lezer/css": "^1.1.7" 670 + } 671 + }, 672 + "node_modules/@codemirror/lang-html": { 673 + "version": "6.4.9", 674 + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", 675 + "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", 676 + "dependencies": { 677 + "@codemirror/autocomplete": "^6.0.0", 678 + "@codemirror/lang-css": "^6.0.0", 679 + "@codemirror/lang-javascript": "^6.0.0", 680 + "@codemirror/language": "^6.4.0", 681 + "@codemirror/state": "^6.0.0", 682 + "@codemirror/view": "^6.17.0", 683 + "@lezer/common": "^1.0.0", 684 + "@lezer/css": "^1.1.0", 685 + "@lezer/html": "^1.3.0" 686 + } 687 + }, 688 + "node_modules/@codemirror/lang-javascript": { 689 + "version": "6.2.3", 690 + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.3.tgz", 691 + "integrity": "sha512-8PR3vIWg7pSu7ur8A07pGiYHgy3hHj+mRYRCSG8q+mPIrl0F02rgpGv+DsQTHRTc30rydOsf5PZ7yjKFg2Ackw==", 692 + "dependencies": { 693 + "@codemirror/autocomplete": "^6.0.0", 694 + "@codemirror/language": "^6.6.0", 695 + "@codemirror/lint": "^6.0.0", 696 + "@codemirror/state": "^6.0.0", 697 + "@codemirror/view": "^6.17.0", 698 + "@lezer/common": "^1.0.0", 699 + "@lezer/javascript": "^1.0.0" 700 + } 701 + }, 702 + "node_modules/@codemirror/language": { 703 + "version": "6.10.8", 704 + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.8.tgz", 705 + "integrity": "sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==", 706 + "dependencies": { 707 + "@codemirror/state": "^6.0.0", 708 + "@codemirror/view": "^6.23.0", 709 + "@lezer/common": "^1.1.0", 710 + "@lezer/highlight": "^1.0.0", 711 + "@lezer/lr": "^1.0.0", 712 + "style-mod": "^4.0.0" 713 + } 714 + }, 715 + "node_modules/@codemirror/lint": { 716 + "version": "6.8.4", 717 + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.4.tgz", 718 + "integrity": "sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==", 719 + "dependencies": { 720 + "@codemirror/state": "^6.0.0", 721 + "@codemirror/view": "^6.35.0", 722 + "crelt": "^1.0.5" 723 + } 724 + }, 725 + "node_modules/@codemirror/state": { 726 + "version": "6.5.2", 727 + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", 728 + "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", 729 + "dependencies": { 730 + "@marijn/find-cluster-break": "^1.0.0" 731 + } 732 + }, 733 + "node_modules/@codemirror/view": { 734 + "version": "6.36.3", 735 + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.36.3.tgz", 736 + "integrity": "sha512-N2bilM47QWC8Hnx0rMdDxO2x2ImJ1FvZWXubwKgjeoOrWwEiFrtpA7SFHcuZ+o2Ze2VzbkgbzWVj4+V18LVkeg==", 737 + "dependencies": { 738 + "@codemirror/state": "^6.5.0", 739 + "style-mod": "^4.1.0", 740 + "w3c-keyname": "^2.2.4" 741 + } 742 + }, 743 + "node_modules/@codesandbox/nodebox": { 744 + "version": "0.1.8", 745 + "resolved": "https://registry.npmjs.org/@codesandbox/nodebox/-/nodebox-0.1.8.tgz", 746 + "integrity": "sha512-2VRS6JDSk+M+pg56GA6CryyUSGPjBEe8Pnae0QL3jJF1mJZJVMDKr93gJRtBbLkfZN6LD/DwMtf+2L0bpWrjqg==", 747 + "dependencies": { 748 + "outvariant": "^1.4.0", 749 + "strict-event-emitter": "^0.4.3" 750 + } 751 + }, 752 + "node_modules/@codesandbox/sandpack-client": { 753 + "version": "2.19.8", 754 + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-client/-/sandpack-client-2.19.8.tgz", 755 + "integrity": "sha512-CMV4nr1zgKzVpx4I3FYvGRM5YT0VaQhALMW9vy4wZRhEyWAtJITQIqZzrTGWqB1JvV7V72dVEUCUPLfYz5hgJQ==", 756 + "dependencies": { 757 + "@codesandbox/nodebox": "0.1.8", 758 + "buffer": "^6.0.3", 759 + "dequal": "^2.0.2", 760 + "mime-db": "^1.52.0", 761 + "outvariant": "1.4.0", 762 + "static-browser-server": "1.0.3" 763 + } 764 + }, 765 + "node_modules/@codesandbox/sandpack-react": { 766 + "version": "2.20.0", 767 + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-react/-/sandpack-react-2.20.0.tgz", 768 + "integrity": "sha512-takd1YpW/PMQ6KPQfvseWLHWklJovGY8QYj8MtWnskGKbjOGJ6uZfyZbcJ6aCFLQMpNyjTqz9AKNbvhCOZ1TUQ==", 769 + "dependencies": { 770 + "@codemirror/autocomplete": "^6.4.0", 771 + "@codemirror/commands": "^6.1.3", 772 + "@codemirror/lang-css": "^6.0.1", 773 + "@codemirror/lang-html": "^6.4.0", 774 + "@codemirror/lang-javascript": "^6.1.2", 775 + "@codemirror/language": "^6.3.2", 776 + "@codemirror/state": "^6.2.0", 777 + "@codemirror/view": "^6.7.1", 778 + "@codesandbox/sandpack-client": "^2.19.8", 779 + "@lezer/highlight": "^1.1.3", 780 + "@react-hook/intersection-observer": "^3.1.1", 781 + "@stitches/core": "^1.2.6", 782 + "anser": "^2.1.1", 783 + "clean-set": "^1.1.2", 784 + "dequal": "^2.0.2", 785 + "escape-carriage": "^1.3.1", 786 + "lz-string": "^1.4.4", 787 + "react-devtools-inline": "4.4.0", 788 + "react-is": "^17.0.2" 789 + }, 790 + "peerDependencies": { 791 + "react": "^16.8.0 || ^17 || ^18 || ^19", 792 + "react-dom": "^16.8.0 || ^17 || ^18 || ^19" 793 + } 794 + }, 795 + "node_modules/@codesandbox/sandpack-themes": { 796 + "version": "2.0.21", 797 + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-themes/-/sandpack-themes-2.0.21.tgz", 798 + "integrity": "sha512-CMH/MO/dh6foPYb/3eSn2Cu/J3+1+/81Fsaj7VggICkCrmRk0qG5dmgjGAearPTnRkOGORIPHuRqwNXgw0E6YQ==" 799 + }, 800 + "node_modules/@emmetio/abbreviation": { 801 + "version": "2.3.3", 802 + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", 803 + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", 804 + "dependencies": { 805 + "@emmetio/scanner": "^1.0.4" 806 + } 807 + }, 808 + "node_modules/@emmetio/css-abbreviation": { 809 + "version": "2.1.8", 810 + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", 811 + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", 812 + "dependencies": { 813 + "@emmetio/scanner": "^1.0.4" 814 + } 815 + }, 816 + "node_modules/@emmetio/css-parser": { 817 + "version": "0.4.0", 818 + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.0.tgz", 819 + "integrity": "sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==", 820 + "dependencies": { 821 + "@emmetio/stream-reader": "^2.2.0", 822 + "@emmetio/stream-reader-utils": "^0.1.0" 823 + } 824 + }, 825 + "node_modules/@emmetio/html-matcher": { 826 + "version": "1.3.0", 827 + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", 828 + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", 829 + "dependencies": { 830 + "@emmetio/scanner": "^1.0.0" 831 + } 832 + }, 833 + "node_modules/@emmetio/scanner": { 834 + "version": "1.0.4", 835 + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", 836 + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==" 837 + }, 838 + "node_modules/@emmetio/stream-reader": { 839 + "version": "2.2.0", 840 + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", 841 + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==" 842 + }, 843 + "node_modules/@emmetio/stream-reader-utils": { 844 + "version": "0.1.0", 845 + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", 846 + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==" 847 + }, 848 + "node_modules/@emnapi/runtime": { 849 + "version": "1.3.1", 850 + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", 851 + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", 852 + "optional": true, 853 + "dependencies": { 854 + "tslib": "^2.4.0" 855 + } 856 + }, 857 + "node_modules/@esbuild/aix-ppc64": { 858 + "version": "0.24.2", 859 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", 860 + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", 861 + "cpu": [ 862 + "ppc64" 863 + ], 864 + "optional": true, 865 + "os": [ 866 + "aix" 867 + ], 868 + "engines": { 869 + "node": ">=18" 870 + } 871 + }, 872 + "node_modules/@esbuild/android-arm": { 873 + "version": "0.24.2", 874 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", 875 + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", 876 + "cpu": [ 877 + "arm" 878 + ], 879 + "optional": true, 880 + "os": [ 881 + "android" 882 + ], 883 + "engines": { 884 + "node": ">=18" 885 + } 886 + }, 887 + "node_modules/@esbuild/android-arm64": { 888 + "version": "0.24.2", 889 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", 890 + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", 891 + "cpu": [ 892 + "arm64" 893 + ], 894 + "optional": true, 895 + "os": [ 896 + "android" 897 + ], 898 + "engines": { 899 + "node": ">=18" 900 + } 901 + }, 902 + "node_modules/@esbuild/android-x64": { 903 + "version": "0.24.2", 904 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", 905 + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", 906 + "cpu": [ 907 + "x64" 908 + ], 909 + "optional": true, 910 + "os": [ 911 + "android" 912 + ], 913 + "engines": { 914 + "node": ">=18" 915 + } 916 + }, 917 + "node_modules/@esbuild/darwin-arm64": { 918 + "version": "0.24.2", 919 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", 920 + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", 921 + "cpu": [ 922 + "arm64" 923 + ], 924 + "optional": true, 925 + "os": [ 926 + "darwin" 927 + ], 928 + "engines": { 929 + "node": ">=18" 930 + } 931 + }, 932 + "node_modules/@esbuild/darwin-x64": { 933 + "version": "0.24.2", 934 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", 935 + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", 936 + "cpu": [ 937 + "x64" 938 + ], 939 + "optional": true, 940 + "os": [ 941 + "darwin" 942 + ], 943 + "engines": { 944 + "node": ">=18" 945 + } 946 + }, 947 + "node_modules/@esbuild/freebsd-arm64": { 948 + "version": "0.24.2", 949 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", 950 + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", 951 + "cpu": [ 952 + "arm64" 953 + ], 954 + "optional": true, 955 + "os": [ 956 + "freebsd" 957 + ], 958 + "engines": { 959 + "node": ">=18" 960 + } 961 + }, 962 + "node_modules/@esbuild/freebsd-x64": { 963 + "version": "0.24.2", 964 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", 965 + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", 966 + "cpu": [ 967 + "x64" 968 + ], 969 + "optional": true, 970 + "os": [ 971 + "freebsd" 972 + ], 973 + "engines": { 974 + "node": ">=18" 975 + } 976 + }, 977 + "node_modules/@esbuild/linux-arm": { 978 + "version": "0.24.2", 979 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", 980 + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", 981 + "cpu": [ 982 + "arm" 983 + ], 984 + "optional": true, 985 + "os": [ 986 + "linux" 987 + ], 988 + "engines": { 989 + "node": ">=18" 990 + } 991 + }, 992 + "node_modules/@esbuild/linux-arm64": { 993 + "version": "0.24.2", 994 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", 995 + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", 996 + "cpu": [ 997 + "arm64" 998 + ], 999 + "optional": true, 1000 + "os": [ 1001 + "linux" 1002 + ], 1003 + "engines": { 1004 + "node": ">=18" 1005 + } 1006 + }, 1007 + "node_modules/@esbuild/linux-ia32": { 1008 + "version": "0.24.2", 1009 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", 1010 + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", 1011 + "cpu": [ 1012 + "ia32" 1013 + ], 1014 + "optional": true, 1015 + "os": [ 1016 + "linux" 1017 + ], 1018 + "engines": { 1019 + "node": ">=18" 1020 + } 1021 + }, 1022 + "node_modules/@esbuild/linux-loong64": { 1023 + "version": "0.24.2", 1024 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", 1025 + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", 1026 + "cpu": [ 1027 + "loong64" 1028 + ], 1029 + "optional": true, 1030 + "os": [ 1031 + "linux" 1032 + ], 1033 + "engines": { 1034 + "node": ">=18" 1035 + } 1036 + }, 1037 + "node_modules/@esbuild/linux-mips64el": { 1038 + "version": "0.24.2", 1039 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", 1040 + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", 1041 + "cpu": [ 1042 + "mips64el" 1043 + ], 1044 + "optional": true, 1045 + "os": [ 1046 + "linux" 1047 + ], 1048 + "engines": { 1049 + "node": ">=18" 1050 + } 1051 + }, 1052 + "node_modules/@esbuild/linux-ppc64": { 1053 + "version": "0.24.2", 1054 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", 1055 + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", 1056 + "cpu": [ 1057 + "ppc64" 1058 + ], 1059 + "optional": true, 1060 + "os": [ 1061 + "linux" 1062 + ], 1063 + "engines": { 1064 + "node": ">=18" 1065 + } 1066 + }, 1067 + "node_modules/@esbuild/linux-riscv64": { 1068 + "version": "0.24.2", 1069 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", 1070 + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", 1071 + "cpu": [ 1072 + "riscv64" 1073 + ], 1074 + "optional": true, 1075 + "os": [ 1076 + "linux" 1077 + ], 1078 + "engines": { 1079 + "node": ">=18" 1080 + } 1081 + }, 1082 + "node_modules/@esbuild/linux-s390x": { 1083 + "version": "0.24.2", 1084 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", 1085 + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", 1086 + "cpu": [ 1087 + "s390x" 1088 + ], 1089 + "optional": true, 1090 + "os": [ 1091 + "linux" 1092 + ], 1093 + "engines": { 1094 + "node": ">=18" 1095 + } 1096 + }, 1097 + "node_modules/@esbuild/linux-x64": { 1098 + "version": "0.24.2", 1099 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", 1100 + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", 1101 + "cpu": [ 1102 + "x64" 1103 + ], 1104 + "optional": true, 1105 + "os": [ 1106 + "linux" 1107 + ], 1108 + "engines": { 1109 + "node": ">=18" 1110 + } 1111 + }, 1112 + "node_modules/@esbuild/netbsd-arm64": { 1113 + "version": "0.24.2", 1114 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", 1115 + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", 1116 + "cpu": [ 1117 + "arm64" 1118 + ], 1119 + "optional": true, 1120 + "os": [ 1121 + "netbsd" 1122 + ], 1123 + "engines": { 1124 + "node": ">=18" 1125 + } 1126 + }, 1127 + "node_modules/@esbuild/netbsd-x64": { 1128 + "version": "0.24.2", 1129 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", 1130 + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", 1131 + "cpu": [ 1132 + "x64" 1133 + ], 1134 + "optional": true, 1135 + "os": [ 1136 + "netbsd" 1137 + ], 1138 + "engines": { 1139 + "node": ">=18" 1140 + } 1141 + }, 1142 + "node_modules/@esbuild/openbsd-arm64": { 1143 + "version": "0.24.2", 1144 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", 1145 + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", 1146 + "cpu": [ 1147 + "arm64" 1148 + ], 1149 + "optional": true, 1150 + "os": [ 1151 + "openbsd" 1152 + ], 1153 + "engines": { 1154 + "node": ">=18" 1155 + } 1156 + }, 1157 + "node_modules/@esbuild/openbsd-x64": { 1158 + "version": "0.24.2", 1159 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", 1160 + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", 1161 + "cpu": [ 1162 + "x64" 1163 + ], 1164 + "optional": true, 1165 + "os": [ 1166 + "openbsd" 1167 + ], 1168 + "engines": { 1169 + "node": ">=18" 1170 + } 1171 + }, 1172 + "node_modules/@esbuild/sunos-x64": { 1173 + "version": "0.24.2", 1174 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", 1175 + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", 1176 + "cpu": [ 1177 + "x64" 1178 + ], 1179 + "optional": true, 1180 + "os": [ 1181 + "sunos" 1182 + ], 1183 + "engines": { 1184 + "node": ">=18" 1185 + } 1186 + }, 1187 + "node_modules/@esbuild/win32-arm64": { 1188 + "version": "0.24.2", 1189 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", 1190 + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", 1191 + "cpu": [ 1192 + "arm64" 1193 + ], 1194 + "optional": true, 1195 + "os": [ 1196 + "win32" 1197 + ], 1198 + "engines": { 1199 + "node": ">=18" 1200 + } 1201 + }, 1202 + "node_modules/@esbuild/win32-ia32": { 1203 + "version": "0.24.2", 1204 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", 1205 + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", 1206 + "cpu": [ 1207 + "ia32" 1208 + ], 1209 + "optional": true, 1210 + "os": [ 1211 + "win32" 1212 + ], 1213 + "engines": { 1214 + "node": ">=18" 1215 + } 1216 + }, 1217 + "node_modules/@esbuild/win32-x64": { 1218 + "version": "0.24.2", 1219 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", 1220 + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", 1221 + "cpu": [ 1222 + "x64" 1223 + ], 1224 + "optional": true, 1225 + "os": [ 1226 + "win32" 1227 + ], 1228 + "engines": { 1229 + "node": ">=18" 1230 + } 1231 + }, 1232 + "node_modules/@img/sharp-darwin-arm64": { 1233 + "version": "0.33.5", 1234 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 1235 + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 1236 + "cpu": [ 1237 + "arm64" 1238 + ], 1239 + "optional": true, 1240 + "os": [ 1241 + "darwin" 1242 + ], 1243 + "engines": { 1244 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1245 + }, 1246 + "funding": { 1247 + "url": "https://opencollective.com/libvips" 1248 + }, 1249 + "optionalDependencies": { 1250 + "@img/sharp-libvips-darwin-arm64": "1.0.4" 1251 + } 1252 + }, 1253 + "node_modules/@img/sharp-darwin-x64": { 1254 + "version": "0.33.5", 1255 + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 1256 + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 1257 + "cpu": [ 1258 + "x64" 1259 + ], 1260 + "optional": true, 1261 + "os": [ 1262 + "darwin" 1263 + ], 1264 + "engines": { 1265 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1266 + }, 1267 + "funding": { 1268 + "url": "https://opencollective.com/libvips" 1269 + }, 1270 + "optionalDependencies": { 1271 + "@img/sharp-libvips-darwin-x64": "1.0.4" 1272 + } 1273 + }, 1274 + "node_modules/@img/sharp-libvips-darwin-arm64": { 1275 + "version": "1.0.4", 1276 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 1277 + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 1278 + "cpu": [ 1279 + "arm64" 1280 + ], 1281 + "optional": true, 1282 + "os": [ 1283 + "darwin" 1284 + ], 1285 + "funding": { 1286 + "url": "https://opencollective.com/libvips" 1287 + } 1288 + }, 1289 + "node_modules/@img/sharp-libvips-darwin-x64": { 1290 + "version": "1.0.4", 1291 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 1292 + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 1293 + "cpu": [ 1294 + "x64" 1295 + ], 1296 + "optional": true, 1297 + "os": [ 1298 + "darwin" 1299 + ], 1300 + "funding": { 1301 + "url": "https://opencollective.com/libvips" 1302 + } 1303 + }, 1304 + "node_modules/@img/sharp-libvips-linux-arm": { 1305 + "version": "1.0.5", 1306 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 1307 + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 1308 + "cpu": [ 1309 + "arm" 1310 + ], 1311 + "optional": true, 1312 + "os": [ 1313 + "linux" 1314 + ], 1315 + "funding": { 1316 + "url": "https://opencollective.com/libvips" 1317 + } 1318 + }, 1319 + "node_modules/@img/sharp-libvips-linux-arm64": { 1320 + "version": "1.0.4", 1321 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 1322 + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 1323 + "cpu": [ 1324 + "arm64" 1325 + ], 1326 + "optional": true, 1327 + "os": [ 1328 + "linux" 1329 + ], 1330 + "funding": { 1331 + "url": "https://opencollective.com/libvips" 1332 + } 1333 + }, 1334 + "node_modules/@img/sharp-libvips-linux-s390x": { 1335 + "version": "1.0.4", 1336 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 1337 + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 1338 + "cpu": [ 1339 + "s390x" 1340 + ], 1341 + "optional": true, 1342 + "os": [ 1343 + "linux" 1344 + ], 1345 + "funding": { 1346 + "url": "https://opencollective.com/libvips" 1347 + } 1348 + }, 1349 + "node_modules/@img/sharp-libvips-linux-x64": { 1350 + "version": "1.0.4", 1351 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 1352 + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 1353 + "cpu": [ 1354 + "x64" 1355 + ], 1356 + "optional": true, 1357 + "os": [ 1358 + "linux" 1359 + ], 1360 + "funding": { 1361 + "url": "https://opencollective.com/libvips" 1362 + } 1363 + }, 1364 + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 1365 + "version": "1.0.4", 1366 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 1367 + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 1368 + "cpu": [ 1369 + "arm64" 1370 + ], 1371 + "optional": true, 1372 + "os": [ 1373 + "linux" 1374 + ], 1375 + "funding": { 1376 + "url": "https://opencollective.com/libvips" 1377 + } 1378 + }, 1379 + "node_modules/@img/sharp-libvips-linuxmusl-x64": { 1380 + "version": "1.0.4", 1381 + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 1382 + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 1383 + "cpu": [ 1384 + "x64" 1385 + ], 1386 + "optional": true, 1387 + "os": [ 1388 + "linux" 1389 + ], 1390 + "funding": { 1391 + "url": "https://opencollective.com/libvips" 1392 + } 1393 + }, 1394 + "node_modules/@img/sharp-linux-arm": { 1395 + "version": "0.33.5", 1396 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 1397 + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 1398 + "cpu": [ 1399 + "arm" 1400 + ], 1401 + "optional": true, 1402 + "os": [ 1403 + "linux" 1404 + ], 1405 + "engines": { 1406 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1407 + }, 1408 + "funding": { 1409 + "url": "https://opencollective.com/libvips" 1410 + }, 1411 + "optionalDependencies": { 1412 + "@img/sharp-libvips-linux-arm": "1.0.5" 1413 + } 1414 + }, 1415 + "node_modules/@img/sharp-linux-arm64": { 1416 + "version": "0.33.5", 1417 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 1418 + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 1419 + "cpu": [ 1420 + "arm64" 1421 + ], 1422 + "optional": true, 1423 + "os": [ 1424 + "linux" 1425 + ], 1426 + "engines": { 1427 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1428 + }, 1429 + "funding": { 1430 + "url": "https://opencollective.com/libvips" 1431 + }, 1432 + "optionalDependencies": { 1433 + "@img/sharp-libvips-linux-arm64": "1.0.4" 1434 + } 1435 + }, 1436 + "node_modules/@img/sharp-linux-s390x": { 1437 + "version": "0.33.5", 1438 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 1439 + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 1440 + "cpu": [ 1441 + "s390x" 1442 + ], 1443 + "optional": true, 1444 + "os": [ 1445 + "linux" 1446 + ], 1447 + "engines": { 1448 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1449 + }, 1450 + "funding": { 1451 + "url": "https://opencollective.com/libvips" 1452 + }, 1453 + "optionalDependencies": { 1454 + "@img/sharp-libvips-linux-s390x": "1.0.4" 1455 + } 1456 + }, 1457 + "node_modules/@img/sharp-linux-x64": { 1458 + "version": "0.33.5", 1459 + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 1460 + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 1461 + "cpu": [ 1462 + "x64" 1463 + ], 1464 + "optional": true, 1465 + "os": [ 1466 + "linux" 1467 + ], 1468 + "engines": { 1469 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1470 + }, 1471 + "funding": { 1472 + "url": "https://opencollective.com/libvips" 1473 + }, 1474 + "optionalDependencies": { 1475 + "@img/sharp-libvips-linux-x64": "1.0.4" 1476 + } 1477 + }, 1478 + "node_modules/@img/sharp-linuxmusl-arm64": { 1479 + "version": "0.33.5", 1480 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 1481 + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 1482 + "cpu": [ 1483 + "arm64" 1484 + ], 1485 + "optional": true, 1486 + "os": [ 1487 + "linux" 1488 + ], 1489 + "engines": { 1490 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1491 + }, 1492 + "funding": { 1493 + "url": "https://opencollective.com/libvips" 1494 + }, 1495 + "optionalDependencies": { 1496 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 1497 + } 1498 + }, 1499 + "node_modules/@img/sharp-linuxmusl-x64": { 1500 + "version": "0.33.5", 1501 + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 1502 + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 1503 + "cpu": [ 1504 + "x64" 1505 + ], 1506 + "optional": true, 1507 + "os": [ 1508 + "linux" 1509 + ], 1510 + "engines": { 1511 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1512 + }, 1513 + "funding": { 1514 + "url": "https://opencollective.com/libvips" 1515 + }, 1516 + "optionalDependencies": { 1517 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 1518 + } 1519 + }, 1520 + "node_modules/@img/sharp-wasm32": { 1521 + "version": "0.33.5", 1522 + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 1523 + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 1524 + "cpu": [ 1525 + "wasm32" 1526 + ], 1527 + "optional": true, 1528 + "dependencies": { 1529 + "@emnapi/runtime": "^1.2.0" 1530 + }, 1531 + "engines": { 1532 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1533 + }, 1534 + "funding": { 1535 + "url": "https://opencollective.com/libvips" 1536 + } 1537 + }, 1538 + "node_modules/@img/sharp-win32-ia32": { 1539 + "version": "0.33.5", 1540 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 1541 + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 1542 + "cpu": [ 1543 + "ia32" 1544 + ], 1545 + "optional": true, 1546 + "os": [ 1547 + "win32" 1548 + ], 1549 + "engines": { 1550 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1551 + }, 1552 + "funding": { 1553 + "url": "https://opencollective.com/libvips" 1554 + } 1555 + }, 1556 + "node_modules/@img/sharp-win32-x64": { 1557 + "version": "0.33.5", 1558 + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 1559 + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 1560 + "cpu": [ 1561 + "x64" 1562 + ], 1563 + "optional": true, 1564 + "os": [ 1565 + "win32" 1566 + ], 1567 + "engines": { 1568 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1569 + }, 1570 + "funding": { 1571 + "url": "https://opencollective.com/libvips" 1572 + } 1573 + }, 1574 + "node_modules/@isaacs/cliui": { 1575 + "version": "8.0.2", 1576 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 1577 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 1578 + "dependencies": { 1579 + "string-width": "^5.1.2", 1580 + "string-width-cjs": "npm:string-width@^4.2.0", 1581 + "strip-ansi": "^7.0.1", 1582 + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 1583 + "wrap-ansi": "^8.1.0", 1584 + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 1585 + }, 1586 + "engines": { 1587 + "node": ">=12" 1588 + } 1589 + }, 1590 + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { 1591 + "version": "9.2.2", 1592 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1593 + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" 1594 + }, 1595 + "node_modules/@isaacs/cliui/node_modules/string-width": { 1596 + "version": "5.1.2", 1597 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 1598 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 1599 + "dependencies": { 1600 + "eastasianwidth": "^0.2.0", 1601 + "emoji-regex": "^9.2.2", 1602 + "strip-ansi": "^7.0.1" 1603 + }, 1604 + "engines": { 1605 + "node": ">=12" 1606 + }, 1607 + "funding": { 1608 + "url": "https://github.com/sponsors/sindresorhus" 1609 + } 1610 + }, 1611 + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { 1612 + "version": "8.1.0", 1613 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 1614 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 1615 + "dependencies": { 1616 + "ansi-styles": "^6.1.0", 1617 + "string-width": "^5.0.1", 1618 + "strip-ansi": "^7.0.1" 1619 + }, 1620 + "engines": { 1621 + "node": ">=12" 1622 + }, 1623 + "funding": { 1624 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1625 + } 1626 + }, 1627 + "node_modules/@jridgewell/gen-mapping": { 1628 + "version": "0.3.8", 1629 + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", 1630 + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", 1631 + "dependencies": { 1632 + "@jridgewell/set-array": "^1.2.1", 1633 + "@jridgewell/sourcemap-codec": "^1.4.10", 1634 + "@jridgewell/trace-mapping": "^0.3.24" 1635 + }, 1636 + "engines": { 1637 + "node": ">=6.0.0" 1638 + } 1639 + }, 1640 + "node_modules/@jridgewell/resolve-uri": { 1641 + "version": "3.1.2", 1642 + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1643 + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1644 + "engines": { 1645 + "node": ">=6.0.0" 1646 + } 1647 + }, 1648 + "node_modules/@jridgewell/set-array": { 1649 + "version": "1.2.1", 1650 + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 1651 + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 1652 + "engines": { 1653 + "node": ">=6.0.0" 1654 + } 1655 + }, 1656 + "node_modules/@jridgewell/sourcemap-codec": { 1657 + "version": "1.5.0", 1658 + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 1659 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 1660 + }, 1661 + "node_modules/@jridgewell/trace-mapping": { 1662 + "version": "0.3.25", 1663 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 1664 + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 1665 + "dependencies": { 1666 + "@jridgewell/resolve-uri": "^3.1.0", 1667 + "@jridgewell/sourcemap-codec": "^1.4.14" 1668 + } 1669 + }, 1670 + "node_modules/@lezer/common": { 1671 + "version": "1.2.3", 1672 + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", 1673 + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==" 1674 + }, 1675 + "node_modules/@lezer/css": { 1676 + "version": "1.1.10", 1677 + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.10.tgz", 1678 + "integrity": "sha512-V5/89eDapjeAkWPBpWEfQjZ1Hag3aYUUJOL8213X0dFRuXJ4BXa5NKl9USzOnaLod4AOpmVCkduir2oKwZYZtg==", 1679 + "dependencies": { 1680 + "@lezer/common": "^1.2.0", 1681 + "@lezer/highlight": "^1.0.0", 1682 + "@lezer/lr": "^1.0.0" 1683 + } 1684 + }, 1685 + "node_modules/@lezer/highlight": { 1686 + "version": "1.2.1", 1687 + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", 1688 + "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", 1689 + "dependencies": { 1690 + "@lezer/common": "^1.0.0" 1691 + } 1692 + }, 1693 + "node_modules/@lezer/html": { 1694 + "version": "1.3.10", 1695 + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", 1696 + "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", 1697 + "dependencies": { 1698 + "@lezer/common": "^1.2.0", 1699 + "@lezer/highlight": "^1.0.0", 1700 + "@lezer/lr": "^1.0.0" 1701 + } 1702 + }, 1703 + "node_modules/@lezer/javascript": { 1704 + "version": "1.4.21", 1705 + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.21.tgz", 1706 + "integrity": "sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==", 1707 + "dependencies": { 1708 + "@lezer/common": "^1.2.0", 1709 + "@lezer/highlight": "^1.1.3", 1710 + "@lezer/lr": "^1.3.0" 1711 + } 1712 + }, 1713 + "node_modules/@lezer/lr": { 1714 + "version": "1.4.2", 1715 + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", 1716 + "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", 1717 + "dependencies": { 1718 + "@lezer/common": "^1.0.0" 1719 + } 1720 + }, 1721 + "node_modules/@marijn/find-cluster-break": { 1722 + "version": "1.0.2", 1723 + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", 1724 + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==" 1725 + }, 1726 + "node_modules/@mdx-js/mdx": { 1727 + "version": "3.1.0", 1728 + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", 1729 + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", 1730 + "dependencies": { 1731 + "@types/estree": "^1.0.0", 1732 + "@types/estree-jsx": "^1.0.0", 1733 + "@types/hast": "^3.0.0", 1734 + "@types/mdx": "^2.0.0", 1735 + "collapse-white-space": "^2.0.0", 1736 + "devlop": "^1.0.0", 1737 + "estree-util-is-identifier-name": "^3.0.0", 1738 + "estree-util-scope": "^1.0.0", 1739 + "estree-walker": "^3.0.0", 1740 + "hast-util-to-jsx-runtime": "^2.0.0", 1741 + "markdown-extensions": "^2.0.0", 1742 + "recma-build-jsx": "^1.0.0", 1743 + "recma-jsx": "^1.0.0", 1744 + "recma-stringify": "^1.0.0", 1745 + "rehype-recma": "^1.0.0", 1746 + "remark-mdx": "^3.0.0", 1747 + "remark-parse": "^11.0.0", 1748 + "remark-rehype": "^11.0.0", 1749 + "source-map": "^0.7.0", 1750 + "unified": "^11.0.0", 1751 + "unist-util-position-from-estree": "^2.0.0", 1752 + "unist-util-stringify-position": "^4.0.0", 1753 + "unist-util-visit": "^5.0.0", 1754 + "vfile": "^6.0.0" 1755 + }, 1756 + "funding": { 1757 + "type": "opencollective", 1758 + "url": "https://opencollective.com/unified" 1759 + } 1760 + }, 1761 + "node_modules/@nodelib/fs.scandir": { 1762 + "version": "2.1.5", 1763 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1764 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1765 + "dependencies": { 1766 + "@nodelib/fs.stat": "2.0.5", 1767 + "run-parallel": "^1.1.9" 1768 + }, 1769 + "engines": { 1770 + "node": ">= 8" 1771 + } 1772 + }, 1773 + "node_modules/@nodelib/fs.stat": { 1774 + "version": "2.0.5", 1775 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1776 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1777 + "engines": { 1778 + "node": ">= 8" 1779 + } 1780 + }, 1781 + "node_modules/@nodelib/fs.walk": { 1782 + "version": "1.2.8", 1783 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1784 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1785 + "dependencies": { 1786 + "@nodelib/fs.scandir": "2.1.5", 1787 + "fastq": "^1.6.0" 1788 + }, 1789 + "engines": { 1790 + "node": ">= 8" 1791 + } 1792 + }, 1793 + "node_modules/@open-draft/deferred-promise": { 1794 + "version": "2.2.0", 1795 + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", 1796 + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==" 1797 + }, 1798 + "node_modules/@oslojs/encoding": { 1799 + "version": "1.1.0", 1800 + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", 1801 + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==" 1802 + }, 1803 + "node_modules/@pagefind/darwin-arm64": { 1804 + "version": "1.3.0", 1805 + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.3.0.tgz", 1806 + "integrity": "sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==", 1807 + "cpu": [ 1808 + "arm64" 1809 + ], 1810 + "optional": true, 1811 + "os": [ 1812 + "darwin" 1813 + ] 1814 + }, 1815 + "node_modules/@pagefind/darwin-x64": { 1816 + "version": "1.3.0", 1817 + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.3.0.tgz", 1818 + "integrity": "sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==", 1819 + "cpu": [ 1820 + "x64" 1821 + ], 1822 + "optional": true, 1823 + "os": [ 1824 + "darwin" 1825 + ] 1826 + }, 1827 + "node_modules/@pagefind/default-ui": { 1828 + "version": "1.3.0", 1829 + "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.3.0.tgz", 1830 + "integrity": "sha512-CGKT9ccd3+oRK6STXGgfH+m0DbOKayX6QGlq38TfE1ZfUcPc5+ulTuzDbZUnMo+bubsEOIypm4Pl2iEyzZ1cNg==" 1831 + }, 1832 + "node_modules/@pagefind/linux-arm64": { 1833 + "version": "1.3.0", 1834 + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.3.0.tgz", 1835 + "integrity": "sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==", 1836 + "cpu": [ 1837 + "arm64" 1838 + ], 1839 + "optional": true, 1840 + "os": [ 1841 + "linux" 1842 + ] 1843 + }, 1844 + "node_modules/@pagefind/linux-x64": { 1845 + "version": "1.3.0", 1846 + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.3.0.tgz", 1847 + "integrity": "sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==", 1848 + "cpu": [ 1849 + "x64" 1850 + ], 1851 + "optional": true, 1852 + "os": [ 1853 + "linux" 1854 + ] 1855 + }, 1856 + "node_modules/@pagefind/windows-x64": { 1857 + "version": "1.3.0", 1858 + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.3.0.tgz", 1859 + "integrity": "sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==", 1860 + "cpu": [ 1861 + "x64" 1862 + ], 1863 + "optional": true, 1864 + "os": [ 1865 + "win32" 1866 + ] 1867 + }, 1868 + "node_modules/@pkgjs/parseargs": { 1869 + "version": "0.11.0", 1870 + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 1871 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 1872 + "optional": true, 1873 + "engines": { 1874 + "node": ">=14" 1875 + } 1876 + }, 1877 + "node_modules/@polka/url": { 1878 + "version": "1.0.0-next.28", 1879 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", 1880 + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" 1881 + }, 1882 + "node_modules/@react-hook/intersection-observer": { 1883 + "version": "3.1.2", 1884 + "resolved": "https://registry.npmjs.org/@react-hook/intersection-observer/-/intersection-observer-3.1.2.tgz", 1885 + "integrity": "sha512-mWU3BMkmmzyYMSuhO9wu3eJVP21N8TcgYm9bZnTrMwuM818bEk+0NRM3hP+c/TqA9Ln5C7qE53p1H0QMtzYdvQ==", 1886 + "dependencies": { 1887 + "@react-hook/passive-layout-effect": "^1.2.0", 1888 + "intersection-observer": "^0.10.0" 1889 + }, 1890 + "peerDependencies": { 1891 + "react": ">=16.8" 1892 + } 1893 + }, 1894 + "node_modules/@react-hook/passive-layout-effect": { 1895 + "version": "1.2.1", 1896 + "resolved": "https://registry.npmjs.org/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz", 1897 + "integrity": "sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg==", 1898 + "peerDependencies": { 1899 + "react": ">=16.8" 1900 + } 1901 + }, 1902 + "node_modules/@rollup/pluginutils": { 1903 + "version": "5.1.4", 1904 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", 1905 + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", 1906 + "dependencies": { 1907 + "@types/estree": "^1.0.0", 1908 + "estree-walker": "^2.0.2", 1909 + "picomatch": "^4.0.2" 1910 + }, 1911 + "engines": { 1912 + "node": ">=14.0.0" 1913 + }, 1914 + "peerDependencies": { 1915 + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 1916 + }, 1917 + "peerDependenciesMeta": { 1918 + "rollup": { 1919 + "optional": true 1920 + } 1921 + } 1922 + }, 1923 + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { 1924 + "version": "2.0.2", 1925 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1926 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 1927 + }, 1928 + "node_modules/@rollup/rollup-android-arm-eabi": { 1929 + "version": "4.34.8", 1930 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", 1931 + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", 1932 + "cpu": [ 1933 + "arm" 1934 + ], 1935 + "optional": true, 1936 + "os": [ 1937 + "android" 1938 + ] 1939 + }, 1940 + "node_modules/@rollup/rollup-android-arm64": { 1941 + "version": "4.34.8", 1942 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", 1943 + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", 1944 + "cpu": [ 1945 + "arm64" 1946 + ], 1947 + "optional": true, 1948 + "os": [ 1949 + "android" 1950 + ] 1951 + }, 1952 + "node_modules/@rollup/rollup-darwin-arm64": { 1953 + "version": "4.34.8", 1954 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", 1955 + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", 1956 + "cpu": [ 1957 + "arm64" 1958 + ], 1959 + "optional": true, 1960 + "os": [ 1961 + "darwin" 1962 + ] 1963 + }, 1964 + "node_modules/@rollup/rollup-darwin-x64": { 1965 + "version": "4.34.8", 1966 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", 1967 + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", 1968 + "cpu": [ 1969 + "x64" 1970 + ], 1971 + "optional": true, 1972 + "os": [ 1973 + "darwin" 1974 + ] 1975 + }, 1976 + "node_modules/@rollup/rollup-freebsd-arm64": { 1977 + "version": "4.34.8", 1978 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", 1979 + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", 1980 + "cpu": [ 1981 + "arm64" 1982 + ], 1983 + "optional": true, 1984 + "os": [ 1985 + "freebsd" 1986 + ] 1987 + }, 1988 + "node_modules/@rollup/rollup-freebsd-x64": { 1989 + "version": "4.34.8", 1990 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", 1991 + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", 1992 + "cpu": [ 1993 + "x64" 1994 + ], 1995 + "optional": true, 1996 + "os": [ 1997 + "freebsd" 1998 + ] 1999 + }, 2000 + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 2001 + "version": "4.34.8", 2002 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", 2003 + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", 2004 + "cpu": [ 2005 + "arm" 2006 + ], 2007 + "optional": true, 2008 + "os": [ 2009 + "linux" 2010 + ] 2011 + }, 2012 + "node_modules/@rollup/rollup-linux-arm-musleabihf": { 2013 + "version": "4.34.8", 2014 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", 2015 + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", 2016 + "cpu": [ 2017 + "arm" 2018 + ], 2019 + "optional": true, 2020 + "os": [ 2021 + "linux" 2022 + ] 2023 + }, 2024 + "node_modules/@rollup/rollup-linux-arm64-gnu": { 2025 + "version": "4.34.8", 2026 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", 2027 + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", 2028 + "cpu": [ 2029 + "arm64" 2030 + ], 2031 + "optional": true, 2032 + "os": [ 2033 + "linux" 2034 + ] 2035 + }, 2036 + "node_modules/@rollup/rollup-linux-arm64-musl": { 2037 + "version": "4.34.8", 2038 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", 2039 + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", 2040 + "cpu": [ 2041 + "arm64" 2042 + ], 2043 + "optional": true, 2044 + "os": [ 2045 + "linux" 2046 + ] 2047 + }, 2048 + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 2049 + "version": "4.34.8", 2050 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", 2051 + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", 2052 + "cpu": [ 2053 + "loong64" 2054 + ], 2055 + "optional": true, 2056 + "os": [ 2057 + "linux" 2058 + ] 2059 + }, 2060 + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 2061 + "version": "4.34.8", 2062 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", 2063 + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", 2064 + "cpu": [ 2065 + "ppc64" 2066 + ], 2067 + "optional": true, 2068 + "os": [ 2069 + "linux" 2070 + ] 2071 + }, 2072 + "node_modules/@rollup/rollup-linux-riscv64-gnu": { 2073 + "version": "4.34.8", 2074 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", 2075 + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", 2076 + "cpu": [ 2077 + "riscv64" 2078 + ], 2079 + "optional": true, 2080 + "os": [ 2081 + "linux" 2082 + ] 2083 + }, 2084 + "node_modules/@rollup/rollup-linux-s390x-gnu": { 2085 + "version": "4.34.8", 2086 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", 2087 + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", 2088 + "cpu": [ 2089 + "s390x" 2090 + ], 2091 + "optional": true, 2092 + "os": [ 2093 + "linux" 2094 + ] 2095 + }, 2096 + "node_modules/@rollup/rollup-linux-x64-gnu": { 2097 + "version": "4.34.8", 2098 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", 2099 + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", 2100 + "cpu": [ 2101 + "x64" 2102 + ], 2103 + "optional": true, 2104 + "os": [ 2105 + "linux" 2106 + ] 2107 + }, 2108 + "node_modules/@rollup/rollup-linux-x64-musl": { 2109 + "version": "4.34.8", 2110 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", 2111 + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", 2112 + "cpu": [ 2113 + "x64" 2114 + ], 2115 + "optional": true, 2116 + "os": [ 2117 + "linux" 2118 + ] 2119 + }, 2120 + "node_modules/@rollup/rollup-win32-arm64-msvc": { 2121 + "version": "4.34.8", 2122 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", 2123 + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", 2124 + "cpu": [ 2125 + "arm64" 2126 + ], 2127 + "optional": true, 2128 + "os": [ 2129 + "win32" 2130 + ] 2131 + }, 2132 + "node_modules/@rollup/rollup-win32-ia32-msvc": { 2133 + "version": "4.34.8", 2134 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", 2135 + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", 2136 + "cpu": [ 2137 + "ia32" 2138 + ], 2139 + "optional": true, 2140 + "os": [ 2141 + "win32" 2142 + ] 2143 + }, 2144 + "node_modules/@rollup/rollup-win32-x64-msvc": { 2145 + "version": "4.34.8", 2146 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", 2147 + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", 2148 + "cpu": [ 2149 + "x64" 2150 + ], 2151 + "optional": true, 2152 + "os": [ 2153 + "win32" 2154 + ] 2155 + }, 2156 + "node_modules/@shikijs/core": { 2157 + "version": "1.29.2", 2158 + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz", 2159 + "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==", 2160 + "dependencies": { 2161 + "@shikijs/engine-javascript": "1.29.2", 2162 + "@shikijs/engine-oniguruma": "1.29.2", 2163 + "@shikijs/types": "1.29.2", 2164 + "@shikijs/vscode-textmate": "^10.0.1", 2165 + "@types/hast": "^3.0.4", 2166 + "hast-util-to-html": "^9.0.4" 2167 + } 2168 + }, 2169 + "node_modules/@shikijs/engine-javascript": { 2170 + "version": "1.29.2", 2171 + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz", 2172 + "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==", 2173 + "dependencies": { 2174 + "@shikijs/types": "1.29.2", 2175 + "@shikijs/vscode-textmate": "^10.0.1", 2176 + "oniguruma-to-es": "^2.2.0" 2177 + } 2178 + }, 2179 + "node_modules/@shikijs/engine-oniguruma": { 2180 + "version": "1.29.2", 2181 + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz", 2182 + "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==", 2183 + "dependencies": { 2184 + "@shikijs/types": "1.29.2", 2185 + "@shikijs/vscode-textmate": "^10.0.1" 2186 + } 2187 + }, 2188 + "node_modules/@shikijs/langs": { 2189 + "version": "1.29.2", 2190 + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz", 2191 + "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==", 2192 + "dependencies": { 2193 + "@shikijs/types": "1.29.2" 2194 + } 2195 + }, 2196 + "node_modules/@shikijs/themes": { 2197 + "version": "1.29.2", 2198 + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz", 2199 + "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==", 2200 + "dependencies": { 2201 + "@shikijs/types": "1.29.2" 2202 + } 2203 + }, 2204 + "node_modules/@shikijs/transformers": { 2205 + "version": "1.29.2", 2206 + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-1.29.2.tgz", 2207 + "integrity": "sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==", 2208 + "dependencies": { 2209 + "@shikijs/core": "1.29.2", 2210 + "@shikijs/types": "1.29.2" 2211 + } 2212 + }, 2213 + "node_modules/@shikijs/types": { 2214 + "version": "1.29.2", 2215 + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz", 2216 + "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==", 2217 + "dependencies": { 2218 + "@shikijs/vscode-textmate": "^10.0.1", 2219 + "@types/hast": "^3.0.4" 2220 + } 2221 + }, 2222 + "node_modules/@shikijs/vscode-textmate": { 2223 + "version": "10.0.2", 2224 + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", 2225 + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==" 2226 + }, 2227 + "node_modules/@stitches/core": { 2228 + "version": "1.2.8", 2229 + "resolved": "https://registry.npmjs.org/@stitches/core/-/core-1.2.8.tgz", 2230 + "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==" 2231 + }, 2232 + "node_modules/@sveltejs/vite-plugin-svelte": { 2233 + "version": "5.0.3", 2234 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.0.3.tgz", 2235 + "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", 2236 + "dependencies": { 2237 + "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", 2238 + "debug": "^4.4.0", 2239 + "deepmerge": "^4.3.1", 2240 + "kleur": "^4.1.5", 2241 + "magic-string": "^0.30.15", 2242 + "vitefu": "^1.0.4" 2243 + }, 2244 + "engines": { 2245 + "node": "^18.0.0 || ^20.0.0 || >=22" 2246 + }, 2247 + "peerDependencies": { 2248 + "svelte": "^5.0.0", 2249 + "vite": "^6.0.0" 2250 + } 2251 + }, 2252 + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 2253 + "version": "4.0.1", 2254 + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", 2255 + "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", 2256 + "dependencies": { 2257 + "debug": "^4.3.7" 2258 + }, 2259 + "engines": { 2260 + "node": "^18.0.0 || ^20.0.0 || >=22" 2261 + }, 2262 + "peerDependencies": { 2263 + "@sveltejs/vite-plugin-svelte": "^5.0.0", 2264 + "svelte": "^5.0.0", 2265 + "vite": "^6.0.0" 2266 + } 2267 + }, 2268 + "node_modules/@tailwindcss/forms": { 2269 + "version": "0.5.10", 2270 + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.10.tgz", 2271 + "integrity": "sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==", 2272 + "dependencies": { 2273 + "mini-svg-data-uri": "^1.2.3" 2274 + }, 2275 + "peerDependencies": { 2276 + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" 2277 + } 2278 + }, 2279 + "node_modules/@tailwindcss/typography": { 2280 + "version": "0.5.16", 2281 + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", 2282 + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", 2283 + "dev": true, 2284 + "dependencies": { 2285 + "lodash.castarray": "^4.4.0", 2286 + "lodash.isplainobject": "^4.0.6", 2287 + "lodash.merge": "^4.6.2", 2288 + "postcss-selector-parser": "6.0.10" 2289 + }, 2290 + "peerDependencies": { 2291 + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" 2292 + } 2293 + }, 2294 + "node_modules/@types/acorn": { 2295 + "version": "4.0.6", 2296 + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", 2297 + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", 2298 + "dependencies": { 2299 + "@types/estree": "*" 2300 + } 2301 + }, 2302 + "node_modules/@types/babel__core": { 2303 + "version": "7.20.5", 2304 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", 2305 + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", 2306 + "dependencies": { 2307 + "@babel/parser": "^7.20.7", 2308 + "@babel/types": "^7.20.7", 2309 + "@types/babel__generator": "*", 2310 + "@types/babel__template": "*", 2311 + "@types/babel__traverse": "*" 2312 + } 2313 + }, 2314 + "node_modules/@types/babel__generator": { 2315 + "version": "7.6.8", 2316 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", 2317 + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", 2318 + "dependencies": { 2319 + "@babel/types": "^7.0.0" 2320 + } 2321 + }, 2322 + "node_modules/@types/babel__template": { 2323 + "version": "7.4.4", 2324 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", 2325 + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", 2326 + "dependencies": { 2327 + "@babel/parser": "^7.1.0", 2328 + "@babel/types": "^7.0.0" 2329 + } 2330 + }, 2331 + "node_modules/@types/babel__traverse": { 2332 + "version": "7.20.6", 2333 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", 2334 + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", 2335 + "dependencies": { 2336 + "@babel/types": "^7.20.7" 2337 + } 2338 + }, 2339 + "node_modules/@types/cookie": { 2340 + "version": "0.6.0", 2341 + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 2342 + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" 2343 + }, 2344 + "node_modules/@types/debug": { 2345 + "version": "4.1.12", 2346 + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", 2347 + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", 2348 + "dependencies": { 2349 + "@types/ms": "*" 2350 + } 2351 + }, 2352 + "node_modules/@types/estree": { 2353 + "version": "1.0.6", 2354 + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 2355 + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" 2356 + }, 2357 + "node_modules/@types/estree-jsx": { 2358 + "version": "1.0.5", 2359 + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", 2360 + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", 2361 + "dependencies": { 2362 + "@types/estree": "*" 2363 + } 2364 + }, 2365 + "node_modules/@types/hast": { 2366 + "version": "3.0.4", 2367 + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", 2368 + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", 2369 + "dependencies": { 2370 + "@types/unist": "*" 2371 + } 2372 + }, 2373 + "node_modules/@types/katex": { 2374 + "version": "0.16.7", 2375 + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", 2376 + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" 2377 + }, 2378 + "node_modules/@types/mathjax": { 2379 + "version": "0.0.40", 2380 + "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.40.tgz", 2381 + "integrity": "sha512-rHusx08LCg92WJxrsM3SPjvLTSvK5C+gealtSuhKbEOcUZfWlwigaFoPLf6Dfxhg4oryN5qP9Sj7zOQ4HYXINw==" 2382 + }, 2383 + "node_modules/@types/mdast": { 2384 + "version": "4.0.4", 2385 + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", 2386 + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", 2387 + "dependencies": { 2388 + "@types/unist": "*" 2389 + } 2390 + }, 2391 + "node_modules/@types/mdx": { 2392 + "version": "2.0.13", 2393 + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", 2394 + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" 2395 + }, 2396 + "node_modules/@types/ms": { 2397 + "version": "2.1.0", 2398 + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", 2399 + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" 2400 + }, 2401 + "node_modules/@types/nlcst": { 2402 + "version": "2.0.3", 2403 + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", 2404 + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", 2405 + "dependencies": { 2406 + "@types/unist": "*" 2407 + } 2408 + }, 2409 + "node_modules/@types/node": { 2410 + "version": "18.19.76", 2411 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.76.tgz", 2412 + "integrity": "sha512-yvR7Q9LdPz2vGpmpJX5LolrgRdWvB67MJKDPSgIIzpFbaf9a1j/f5DnLp5VDyHGMR0QZHlTr1afsD87QCXFHKw==", 2413 + "dependencies": { 2414 + "undici-types": "~5.26.4" 2415 + } 2416 + }, 2417 + "node_modules/@types/react": { 2418 + "version": "19.0.10", 2419 + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", 2420 + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", 2421 + "dependencies": { 2422 + "csstype": "^3.0.2" 2423 + } 2424 + }, 2425 + "node_modules/@types/react-dom": { 2426 + "version": "19.0.4", 2427 + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", 2428 + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", 2429 + "peerDependencies": { 2430 + "@types/react": "^19.0.0" 2431 + } 2432 + }, 2433 + "node_modules/@types/sax": { 2434 + "version": "1.2.7", 2435 + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", 2436 + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", 2437 + "dependencies": { 2438 + "@types/node": "*" 2439 + } 2440 + }, 2441 + "node_modules/@types/unist": { 2442 + "version": "3.0.3", 2443 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", 2444 + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" 2445 + }, 2446 + "node_modules/@ungap/structured-clone": { 2447 + "version": "1.3.0", 2448 + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", 2449 + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" 2450 + }, 2451 + "node_modules/@vitejs/plugin-react": { 2452 + "version": "4.3.4", 2453 + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", 2454 + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", 2455 + "dependencies": { 2456 + "@babel/core": "^7.26.0", 2457 + "@babel/plugin-transform-react-jsx-self": "^7.25.9", 2458 + "@babel/plugin-transform-react-jsx-source": "^7.25.9", 2459 + "@types/babel__core": "^7.20.5", 2460 + "react-refresh": "^0.14.2" 2461 + }, 2462 + "engines": { 2463 + "node": "^14.18.0 || >=16.0.0" 2464 + }, 2465 + "peerDependencies": { 2466 + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" 2467 + } 2468 + }, 2469 + "node_modules/@volar/kit": { 2470 + "version": "2.4.11", 2471 + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.11.tgz", 2472 + "integrity": "sha512-ups5RKbMzMCr6RKafcCqDRnJhJDNWqo2vfekwOAj6psZ15v5TlcQFQAyokQJ3wZxVkzxrQM+TqTRDENfQEXpmA==", 2473 + "dependencies": { 2474 + "@volar/language-service": "2.4.11", 2475 + "@volar/typescript": "2.4.11", 2476 + "typesafe-path": "^0.2.2", 2477 + "vscode-languageserver-textdocument": "^1.0.11", 2478 + "vscode-uri": "^3.0.8" 2479 + }, 2480 + "peerDependencies": { 2481 + "typescript": "*" 2482 + } 2483 + }, 2484 + "node_modules/@volar/language-core": { 2485 + "version": "2.4.11", 2486 + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.11.tgz", 2487 + "integrity": "sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==", 2488 + "dependencies": { 2489 + "@volar/source-map": "2.4.11" 2490 + } 2491 + }, 2492 + "node_modules/@volar/language-server": { 2493 + "version": "2.4.11", 2494 + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.11.tgz", 2495 + "integrity": "sha512-W9P8glH1M8LGREJ7yHRCANI5vOvTrRO15EMLdmh5WNF9sZYSEbQxiHKckZhvGIkbeR1WAlTl3ORTrJXUghjk7g==", 2496 + "dependencies": { 2497 + "@volar/language-core": "2.4.11", 2498 + "@volar/language-service": "2.4.11", 2499 + "@volar/typescript": "2.4.11", 2500 + "path-browserify": "^1.0.1", 2501 + "request-light": "^0.7.0", 2502 + "vscode-languageserver": "^9.0.1", 2503 + "vscode-languageserver-protocol": "^3.17.5", 2504 + "vscode-languageserver-textdocument": "^1.0.11", 2505 + "vscode-uri": "^3.0.8" 2506 + } 2507 + }, 2508 + "node_modules/@volar/language-service": { 2509 + "version": "2.4.11", 2510 + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.11.tgz", 2511 + "integrity": "sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==", 2512 + "dependencies": { 2513 + "@volar/language-core": "2.4.11", 2514 + "vscode-languageserver-protocol": "^3.17.5", 2515 + "vscode-languageserver-textdocument": "^1.0.11", 2516 + "vscode-uri": "^3.0.8" 2517 + } 2518 + }, 2519 + "node_modules/@volar/source-map": { 2520 + "version": "2.4.11", 2521 + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.11.tgz", 2522 + "integrity": "sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==" 2523 + }, 2524 + "node_modules/@volar/typescript": { 2525 + "version": "2.4.11", 2526 + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.11.tgz", 2527 + "integrity": "sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==", 2528 + "dependencies": { 2529 + "@volar/language-core": "2.4.11", 2530 + "path-browserify": "^1.0.1", 2531 + "vscode-uri": "^3.0.8" 2532 + } 2533 + }, 2534 + "node_modules/@vscode/emmet-helper": { 2535 + "version": "2.11.0", 2536 + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz", 2537 + "integrity": "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==", 2538 + "dependencies": { 2539 + "emmet": "^2.4.3", 2540 + "jsonc-parser": "^2.3.0", 2541 + "vscode-languageserver-textdocument": "^1.0.1", 2542 + "vscode-languageserver-types": "^3.15.1", 2543 + "vscode-uri": "^3.0.8" 2544 + } 2545 + }, 2546 + "node_modules/@vscode/l10n": { 2547 + "version": "0.0.18", 2548 + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", 2549 + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==" 2550 + }, 2551 + "node_modules/@webgpu/types": { 2552 + "version": "0.1.21", 2553 + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.21.tgz", 2554 + "integrity": "sha512-pUrWq3V5PiSGFLeLxoGqReTZmiiXwY3jRkIG5sLLKjyqNxrwm/04b4nw7LSmGWJcKk59XOM/YRTUwOzo4MMlow==" 2555 + }, 2556 + "node_modules/acorn": { 2557 + "version": "8.14.0", 2558 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 2559 + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 2560 + "bin": { 2561 + "acorn": "bin/acorn" 2562 + }, 2563 + "engines": { 2564 + "node": ">=0.4.0" 2565 + } 2566 + }, 2567 + "node_modules/acorn-jsx": { 2568 + "version": "5.3.2", 2569 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 2570 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 2571 + "peerDependencies": { 2572 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 2573 + } 2574 + }, 2575 + "node_modules/acorn-typescript": { 2576 + "version": "1.4.13", 2577 + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", 2578 + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", 2579 + "peerDependencies": { 2580 + "acorn": ">=8.9.0" 2581 + } 2582 + }, 2583 + "node_modules/ajv": { 2584 + "version": "8.17.1", 2585 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", 2586 + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 2587 + "dependencies": { 2588 + "fast-deep-equal": "^3.1.3", 2589 + "fast-uri": "^3.0.1", 2590 + "json-schema-traverse": "^1.0.0", 2591 + "require-from-string": "^2.0.2" 2592 + }, 2593 + "funding": { 2594 + "type": "github", 2595 + "url": "https://github.com/sponsors/epoberezkin" 2596 + } 2597 + }, 2598 + "node_modules/anser": { 2599 + "version": "2.3.2", 2600 + "resolved": "https://registry.npmjs.org/anser/-/anser-2.3.2.tgz", 2601 + "integrity": "sha512-PMqBCBvrOVDRqLGooQb+z+t1Q0PiPyurUQeZRR5uHBOVZcW8B04KMmnT12USnhpNX2wCPagWzLVppQMUG3u0Dw==" 2602 + }, 2603 + "node_modules/ansi-align": { 2604 + "version": "3.0.1", 2605 + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 2606 + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 2607 + "dependencies": { 2608 + "string-width": "^4.1.0" 2609 + } 2610 + }, 2611 + "node_modules/ansi-align/node_modules/ansi-regex": { 2612 + "version": "5.0.1", 2613 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 2614 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 2615 + "engines": { 2616 + "node": ">=8" 2617 + } 2618 + }, 2619 + "node_modules/ansi-align/node_modules/emoji-regex": { 2620 + "version": "8.0.0", 2621 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 2622 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 2623 + }, 2624 + "node_modules/ansi-align/node_modules/string-width": { 2625 + "version": "4.2.3", 2626 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 2627 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 2628 + "dependencies": { 2629 + "emoji-regex": "^8.0.0", 2630 + "is-fullwidth-code-point": "^3.0.0", 2631 + "strip-ansi": "^6.0.1" 2632 + }, 2633 + "engines": { 2634 + "node": ">=8" 2635 + } 2636 + }, 2637 + "node_modules/ansi-align/node_modules/strip-ansi": { 2638 + "version": "6.0.1", 2639 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 2640 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 2641 + "dependencies": { 2642 + "ansi-regex": "^5.0.1" 2643 + }, 2644 + "engines": { 2645 + "node": ">=8" 2646 + } 2647 + }, 2648 + "node_modules/ansi-regex": { 2649 + "version": "6.1.0", 2650 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 2651 + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 2652 + "engines": { 2653 + "node": ">=12" 2654 + }, 2655 + "funding": { 2656 + "url": "https://github.com/chalk/ansi-regex?sponsor=1" 2657 + } 2658 + }, 2659 + "node_modules/ansi-styles": { 2660 + "version": "6.2.1", 2661 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 2662 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 2663 + "engines": { 2664 + "node": ">=12" 2665 + }, 2666 + "funding": { 2667 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 2668 + } 2669 + }, 2670 + "node_modules/any-promise": { 2671 + "version": "1.3.0", 2672 + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 2673 + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" 2674 + }, 2675 + "node_modules/anymatch": { 2676 + "version": "3.1.3", 2677 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 2678 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 2679 + "dependencies": { 2680 + "normalize-path": "^3.0.0", 2681 + "picomatch": "^2.0.4" 2682 + }, 2683 + "engines": { 2684 + "node": ">= 8" 2685 + } 2686 + }, 2687 + "node_modules/anymatch/node_modules/picomatch": { 2688 + "version": "2.3.1", 2689 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2690 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2691 + "engines": { 2692 + "node": ">=8.6" 2693 + }, 2694 + "funding": { 2695 + "url": "https://github.com/sponsors/jonschlinkert" 2696 + } 2697 + }, 2698 + "node_modules/arg": { 2699 + "version": "5.0.2", 2700 + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 2701 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 2702 + }, 2703 + "node_modules/argparse": { 2704 + "version": "2.0.1", 2705 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 2706 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 2707 + }, 2708 + "node_modules/aria-query": { 2709 + "version": "5.3.2", 2710 + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", 2711 + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", 2712 + "engines": { 2713 + "node": ">= 0.4" 2714 + } 2715 + }, 2716 + "node_modules/array-iterate": { 2717 + "version": "2.0.1", 2718 + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", 2719 + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", 2720 + "funding": { 2721 + "type": "github", 2722 + "url": "https://github.com/sponsors/wooorm" 2723 + } 2724 + }, 2725 + "node_modules/astring": { 2726 + "version": "1.9.0", 2727 + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", 2728 + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", 2729 + "bin": { 2730 + "astring": "bin/astring" 2731 + } 2732 + }, 2733 + "node_modules/astro": { 2734 + "version": "5.3.0", 2735 + "resolved": "https://registry.npmjs.org/astro/-/astro-5.3.0.tgz", 2736 + "integrity": "sha512-e88l/Yk/6enR/ZDddLbqtM+oblBFk5mneNSmNesyVYGL/6Dj4UA67GPAZOk79VxT5dbLlclZSyyw/wlxN1aj3A==", 2737 + "dependencies": { 2738 + "@astrojs/compiler": "^2.10.3", 2739 + "@astrojs/internal-helpers": "0.5.1", 2740 + "@astrojs/markdown-remark": "6.1.0", 2741 + "@astrojs/telemetry": "3.2.0", 2742 + "@oslojs/encoding": "^1.1.0", 2743 + "@rollup/pluginutils": "^5.1.4", 2744 + "@types/cookie": "^0.6.0", 2745 + "acorn": "^8.14.0", 2746 + "aria-query": "^5.3.2", 2747 + "axobject-query": "^4.1.0", 2748 + "boxen": "8.0.1", 2749 + "ci-info": "^4.1.0", 2750 + "clsx": "^2.1.1", 2751 + "common-ancestor-path": "^1.0.1", 2752 + "cookie": "^0.7.2", 2753 + "cssesc": "^3.0.0", 2754 + "debug": "^4.4.0", 2755 + "deterministic-object-hash": "^2.0.2", 2756 + "devalue": "^5.1.1", 2757 + "diff": "^5.2.0", 2758 + "dlv": "^1.1.3", 2759 + "dset": "^3.1.4", 2760 + "es-module-lexer": "^1.6.0", 2761 + "esbuild": "^0.24.2", 2762 + "estree-walker": "^3.0.3", 2763 + "fast-glob": "^3.3.3", 2764 + "flattie": "^1.1.1", 2765 + "github-slugger": "^2.0.0", 2766 + "html-escaper": "3.0.3", 2767 + "http-cache-semantics": "^4.1.1", 2768 + "js-yaml": "^4.1.0", 2769 + "kleur": "^4.1.5", 2770 + "magic-string": "^0.30.17", 2771 + "magicast": "^0.3.5", 2772 + "micromatch": "^4.0.8", 2773 + "mrmime": "^2.0.0", 2774 + "neotraverse": "^0.6.18", 2775 + "p-limit": "^6.2.0", 2776 + "p-queue": "^8.1.0", 2777 + "preferred-pm": "^4.1.1", 2778 + "prompts": "^2.4.2", 2779 + "rehype": "^13.0.2", 2780 + "semver": "^7.7.1", 2781 + "shiki": "^1.29.2", 2782 + "tinyexec": "^0.3.2", 2783 + "tsconfck": "^3.1.4", 2784 + "ultrahtml": "^1.5.3", 2785 + "unist-util-visit": "^5.0.0", 2786 + "unstorage": "^1.14.4", 2787 + "vfile": "^6.0.3", 2788 + "vite": "^6.0.11", 2789 + "vitefu": "^1.0.5", 2790 + "which-pm": "^3.0.1", 2791 + "xxhash-wasm": "^1.1.0", 2792 + "yargs-parser": "^21.1.1", 2793 + "yocto-spinner": "^0.2.0", 2794 + "zod": "^3.24.1", 2795 + "zod-to-json-schema": "^3.24.1", 2796 + "zod-to-ts": "^1.2.0" 2797 + }, 2798 + "bin": { 2799 + "astro": "astro.js" 2800 + }, 2801 + "engines": { 2802 + "node": "^18.17.1 || ^20.3.0 || >=22.0.0", 2803 + "npm": ">=9.6.5", 2804 + "pnpm": ">=7.1.0" 2805 + }, 2806 + "funding": { 2807 + "type": "opencollective", 2808 + "url": "https://opencollective.com/astrodotbuild" 2809 + }, 2810 + "optionalDependencies": { 2811 + "sharp": "^0.33.3" 2812 + } 2813 + }, 2814 + "node_modules/astro-auto-import": { 2815 + "version": "0.4.4", 2816 + "resolved": "https://registry.npmjs.org/astro-auto-import/-/astro-auto-import-0.4.4.tgz", 2817 + "integrity": "sha512-tiYe1hp+VusdiyaD3INgZgbvXEPamDFiURnQR5Niz+E9fWa6IHYjJ99TwGlHh/evfaXE/U/86jp9MRKWTuJU1A==", 2818 + "dependencies": { 2819 + "@types/node": "^18.0.0", 2820 + "acorn": "^8.8.0" 2821 + }, 2822 + "engines": { 2823 + "node": ">=16.0.0" 2824 + }, 2825 + "peerDependencies": { 2826 + "astro": "^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta" 2827 + } 2828 + }, 2829 + "node_modules/astro-custom-embeds": { 2830 + "version": "0.0.1", 2831 + "resolved": "https://registry.npmjs.org/astro-custom-embeds/-/astro-custom-embeds-0.0.1.tgz", 2832 + "integrity": "sha512-8f5lYAImE38VC1ZAAQ8S2BCEa6vSBIeph+aPEW+uX10FIfvgAJ7Na+Q2cmMGoMG+p0dQ+1mEDtzvzlIAO04MSg==", 2833 + "dependencies": { 2834 + "@types/unist": "^2.0.0", 2835 + "astro-auto-import": "^0.4.2", 2836 + "remark-directive": "^3.0.0", 2837 + "unist-util-select": "^4.0.1", 2838 + "unist-util-visit": "^5.0.0" 2839 + }, 2840 + "peerDependencies": { 2841 + "astro": "^4.0.0 || ^5.0.0-beta" 2842 + } 2843 + }, 2844 + "node_modules/astro-custom-embeds/node_modules/@types/unist": { 2845 + "version": "2.0.11", 2846 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", 2847 + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" 2848 + }, 2849 + "node_modules/astro-og-canvas": { 2850 + "version": "0.7.0", 2851 + "resolved": "https://registry.npmjs.org/astro-og-canvas/-/astro-og-canvas-0.7.0.tgz", 2852 + "integrity": "sha512-aamARDNDORPxXlPt+VJakzj4WpNUDjQqUZ06eE82pGMad4aTR/KMm8Ho12qvprgJcM8K7fgSOMg5OHa7KcX0pw==", 2853 + "dependencies": { 2854 + "canvaskit-wasm": "^0.39.1", 2855 + "deterministic-object-hash": "^2.0.2", 2856 + "entities": "^4.4.0" 2857 + }, 2858 + "engines": { 2859 + "node": ">=18.14.1" 2860 + }, 2861 + "peerDependencies": { 2862 + "astro": "^3.0.0 || ^4.0.0 || ^5.0.0" 2863 + } 2864 + }, 2865 + "node_modules/astro-pagefind": { 2866 + "version": "1.8.0", 2867 + "resolved": "https://registry.npmjs.org/astro-pagefind/-/astro-pagefind-1.8.0.tgz", 2868 + "integrity": "sha512-sbVIpoRFQ0mhivvE1CRznH0/B79i5KbCbgpWjE3fJKqmO/405IGxtKO27HDzw5fB+atzdXq/NEFHn93qdW75+g==", 2869 + "dependencies": { 2870 + "@pagefind/default-ui": "^1.2.0", 2871 + "pagefind": "^1.2.0", 2872 + "sirv": "^3.0.0" 2873 + }, 2874 + "peerDependencies": { 2875 + "astro": "^2.0.4 || ^3 || ^4 || ^5" 2876 + } 2877 + }, 2878 + "node_modules/autoprefixer": { 2879 + "version": "10.4.20", 2880 + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", 2881 + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", 2882 + "funding": [ 2883 + { 2884 + "type": "opencollective", 2885 + "url": "https://opencollective.com/postcss/" 2886 + }, 2887 + { 2888 + "type": "tidelift", 2889 + "url": "https://tidelift.com/funding/github/npm/autoprefixer" 2890 + }, 2891 + { 2892 + "type": "github", 2893 + "url": "https://github.com/sponsors/ai" 2894 + } 2895 + ], 2896 + "dependencies": { 2897 + "browserslist": "^4.23.3", 2898 + "caniuse-lite": "^1.0.30001646", 2899 + "fraction.js": "^4.3.7", 2900 + "normalize-range": "^0.1.2", 2901 + "picocolors": "^1.0.1", 2902 + "postcss-value-parser": "^4.2.0" 2903 + }, 2904 + "bin": { 2905 + "autoprefixer": "bin/autoprefixer" 2906 + }, 2907 + "engines": { 2908 + "node": "^10 || ^12 || >=14" 2909 + }, 2910 + "peerDependencies": { 2911 + "postcss": "^8.1.0" 2912 + } 2913 + }, 2914 + "node_modules/await-lock": { 2915 + "version": "2.2.2", 2916 + "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", 2917 + "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==" 2918 + }, 2919 + "node_modules/axobject-query": { 2920 + "version": "4.1.0", 2921 + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", 2922 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", 2923 + "engines": { 2924 + "node": ">= 0.4" 2925 + } 2926 + }, 2927 + "node_modules/bail": { 2928 + "version": "2.0.2", 2929 + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", 2930 + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", 2931 + "funding": { 2932 + "type": "github", 2933 + "url": "https://github.com/sponsors/wooorm" 2934 + } 2935 + }, 2936 + "node_modules/balanced-match": { 2937 + "version": "1.0.2", 2938 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 2939 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 2940 + }, 2941 + "node_modules/base-64": { 2942 + "version": "1.0.0", 2943 + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", 2944 + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" 2945 + }, 2946 + "node_modules/base64-js": { 2947 + "version": "1.5.1", 2948 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 2949 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 2950 + "funding": [ 2951 + { 2952 + "type": "github", 2953 + "url": "https://github.com/sponsors/feross" 2954 + }, 2955 + { 2956 + "type": "patreon", 2957 + "url": "https://www.patreon.com/feross" 2958 + }, 2959 + { 2960 + "type": "consulting", 2961 + "url": "https://feross.org/support" 2962 + } 2963 + ] 2964 + }, 2965 + "node_modules/binary-extensions": { 2966 + "version": "2.3.0", 2967 + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 2968 + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 2969 + "engines": { 2970 + "node": ">=8" 2971 + }, 2972 + "funding": { 2973 + "url": "https://github.com/sponsors/sindresorhus" 2974 + } 2975 + }, 2976 + "node_modules/boolbase": { 2977 + "version": "1.0.0", 2978 + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 2979 + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" 2980 + }, 2981 + "node_modules/boxen": { 2982 + "version": "8.0.1", 2983 + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", 2984 + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", 2985 + "dependencies": { 2986 + "ansi-align": "^3.0.1", 2987 + "camelcase": "^8.0.0", 2988 + "chalk": "^5.3.0", 2989 + "cli-boxes": "^3.0.0", 2990 + "string-width": "^7.2.0", 2991 + "type-fest": "^4.21.0", 2992 + "widest-line": "^5.0.0", 2993 + "wrap-ansi": "^9.0.0" 2994 + }, 2995 + "engines": { 2996 + "node": ">=18" 2997 + }, 2998 + "funding": { 2999 + "url": "https://github.com/sponsors/sindresorhus" 3000 + } 3001 + }, 3002 + "node_modules/brace-expansion": { 3003 + "version": "2.0.1", 3004 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 3005 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 3006 + "dependencies": { 3007 + "balanced-match": "^1.0.0" 3008 + } 3009 + }, 3010 + "node_modules/braces": { 3011 + "version": "3.0.3", 3012 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 3013 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 3014 + "dependencies": { 3015 + "fill-range": "^7.1.1" 3016 + }, 3017 + "engines": { 3018 + "node": ">=8" 3019 + } 3020 + }, 3021 + "node_modules/browserslist": { 3022 + "version": "4.24.4", 3023 + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", 3024 + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", 3025 + "funding": [ 3026 + { 3027 + "type": "opencollective", 3028 + "url": "https://opencollective.com/browserslist" 3029 + }, 3030 + { 3031 + "type": "tidelift", 3032 + "url": "https://tidelift.com/funding/github/npm/browserslist" 3033 + }, 3034 + { 3035 + "type": "github", 3036 + "url": "https://github.com/sponsors/ai" 3037 + } 3038 + ], 3039 + "dependencies": { 3040 + "caniuse-lite": "^1.0.30001688", 3041 + "electron-to-chromium": "^1.5.73", 3042 + "node-releases": "^2.0.19", 3043 + "update-browserslist-db": "^1.1.1" 3044 + }, 3045 + "bin": { 3046 + "browserslist": "cli.js" 3047 + }, 3048 + "engines": { 3049 + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 3050 + } 3051 + }, 3052 + "node_modules/buffer": { 3053 + "version": "6.0.3", 3054 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 3055 + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 3056 + "funding": [ 3057 + { 3058 + "type": "github", 3059 + "url": "https://github.com/sponsors/feross" 3060 + }, 3061 + { 3062 + "type": "patreon", 3063 + "url": "https://www.patreon.com/feross" 3064 + }, 3065 + { 3066 + "type": "consulting", 3067 + "url": "https://feross.org/support" 3068 + } 3069 + ], 3070 + "dependencies": { 3071 + "base64-js": "^1.3.1", 3072 + "ieee754": "^1.2.1" 3073 + } 3074 + }, 3075 + "node_modules/camelcase": { 3076 + "version": "8.0.0", 3077 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", 3078 + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", 3079 + "engines": { 3080 + "node": ">=16" 3081 + }, 3082 + "funding": { 3083 + "url": "https://github.com/sponsors/sindresorhus" 3084 + } 3085 + }, 3086 + "node_modules/camelcase-css": { 3087 + "version": "2.0.1", 3088 + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 3089 + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 3090 + "engines": { 3091 + "node": ">= 6" 3092 + } 3093 + }, 3094 + "node_modules/caniuse-lite": { 3095 + "version": "1.0.30001700", 3096 + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", 3097 + "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", 3098 + "funding": [ 3099 + { 3100 + "type": "opencollective", 3101 + "url": "https://opencollective.com/browserslist" 3102 + }, 3103 + { 3104 + "type": "tidelift", 3105 + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 3106 + }, 3107 + { 3108 + "type": "github", 3109 + "url": "https://github.com/sponsors/ai" 3110 + } 3111 + ] 3112 + }, 3113 + "node_modules/canvaskit-wasm": { 3114 + "version": "0.39.1", 3115 + "resolved": "https://registry.npmjs.org/canvaskit-wasm/-/canvaskit-wasm-0.39.1.tgz", 3116 + "integrity": "sha512-Gy3lCmhUdKq+8bvDrs9t8+qf7RvcjuQn+we7vTVVyqgOVO1UVfHpsnBxkTZw+R4ApEJ3D5fKySl9TU11hmjl/A==", 3117 + "dependencies": { 3118 + "@webgpu/types": "0.1.21" 3119 + } 3120 + }, 3121 + "node_modules/ccount": { 3122 + "version": "2.0.1", 3123 + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", 3124 + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", 3125 + "funding": { 3126 + "type": "github", 3127 + "url": "https://github.com/sponsors/wooorm" 3128 + } 3129 + }, 3130 + "node_modules/chalk": { 3131 + "version": "5.4.1", 3132 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", 3133 + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", 3134 + "engines": { 3135 + "node": "^12.17.0 || ^14.13 || >=16.0.0" 3136 + }, 3137 + "funding": { 3138 + "url": "https://github.com/chalk/chalk?sponsor=1" 3139 + } 3140 + }, 3141 + "node_modules/character-entities": { 3142 + "version": "2.0.2", 3143 + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", 3144 + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", 3145 + "funding": { 3146 + "type": "github", 3147 + "url": "https://github.com/sponsors/wooorm" 3148 + } 3149 + }, 3150 + "node_modules/character-entities-html4": { 3151 + "version": "2.1.0", 3152 + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", 3153 + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", 3154 + "funding": { 3155 + "type": "github", 3156 + "url": "https://github.com/sponsors/wooorm" 3157 + } 3158 + }, 3159 + "node_modules/character-entities-legacy": { 3160 + "version": "3.0.0", 3161 + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", 3162 + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", 3163 + "funding": { 3164 + "type": "github", 3165 + "url": "https://github.com/sponsors/wooorm" 3166 + } 3167 + }, 3168 + "node_modules/character-reference-invalid": { 3169 + "version": "2.0.1", 3170 + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", 3171 + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", 3172 + "funding": { 3173 + "type": "github", 3174 + "url": "https://github.com/sponsors/wooorm" 3175 + } 3176 + }, 3177 + "node_modules/cheerio": { 3178 + "version": "1.0.0", 3179 + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", 3180 + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", 3181 + "dependencies": { 3182 + "cheerio-select": "^2.1.0", 3183 + "dom-serializer": "^2.0.0", 3184 + "domhandler": "^5.0.3", 3185 + "domutils": "^3.1.0", 3186 + "encoding-sniffer": "^0.2.0", 3187 + "htmlparser2": "^9.1.0", 3188 + "parse5": "^7.1.2", 3189 + "parse5-htmlparser2-tree-adapter": "^7.0.0", 3190 + "parse5-parser-stream": "^7.1.2", 3191 + "undici": "^6.19.5", 3192 + "whatwg-mimetype": "^4.0.0" 3193 + }, 3194 + "engines": { 3195 + "node": ">=18.17" 3196 + }, 3197 + "funding": { 3198 + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" 3199 + } 3200 + }, 3201 + "node_modules/cheerio-select": { 3202 + "version": "2.1.0", 3203 + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", 3204 + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", 3205 + "dependencies": { 3206 + "boolbase": "^1.0.0", 3207 + "css-select": "^5.1.0", 3208 + "css-what": "^6.1.0", 3209 + "domelementtype": "^2.3.0", 3210 + "domhandler": "^5.0.3", 3211 + "domutils": "^3.0.1" 3212 + }, 3213 + "funding": { 3214 + "url": "https://github.com/sponsors/fb55" 3215 + } 3216 + }, 3217 + "node_modules/cheerio/node_modules/htmlparser2": { 3218 + "version": "9.1.0", 3219 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", 3220 + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", 3221 + "funding": [ 3222 + "https://github.com/fb55/htmlparser2?sponsor=1", 3223 + { 3224 + "type": "github", 3225 + "url": "https://github.com/sponsors/fb55" 3226 + } 3227 + ], 3228 + "dependencies": { 3229 + "domelementtype": "^2.3.0", 3230 + "domhandler": "^5.0.3", 3231 + "domutils": "^3.1.0", 3232 + "entities": "^4.5.0" 3233 + } 3234 + }, 3235 + "node_modules/chokidar": { 3236 + "version": "4.0.3", 3237 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", 3238 + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", 3239 + "dependencies": { 3240 + "readdirp": "^4.0.1" 3241 + }, 3242 + "engines": { 3243 + "node": ">= 14.16.0" 3244 + }, 3245 + "funding": { 3246 + "url": "https://paulmillr.com/funding/" 3247 + } 3248 + }, 3249 + "node_modules/ci-info": { 3250 + "version": "4.1.0", 3251 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz", 3252 + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==", 3253 + "funding": [ 3254 + { 3255 + "type": "github", 3256 + "url": "https://github.com/sponsors/sibiraj-s" 3257 + } 3258 + ], 3259 + "engines": { 3260 + "node": ">=8" 3261 + } 3262 + }, 3263 + "node_modules/clean-set": { 3264 + "version": "1.1.2", 3265 + "resolved": "https://registry.npmjs.org/clean-set/-/clean-set-1.1.2.tgz", 3266 + "integrity": "sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==" 3267 + }, 3268 + "node_modules/cli-boxes": { 3269 + "version": "3.0.0", 3270 + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", 3271 + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", 3272 + "engines": { 3273 + "node": ">=10" 3274 + }, 3275 + "funding": { 3276 + "url": "https://github.com/sponsors/sindresorhus" 3277 + } 3278 + }, 3279 + "node_modules/cliui": { 3280 + "version": "8.0.1", 3281 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 3282 + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 3283 + "dependencies": { 3284 + "string-width": "^4.2.0", 3285 + "strip-ansi": "^6.0.1", 3286 + "wrap-ansi": "^7.0.0" 3287 + }, 3288 + "engines": { 3289 + "node": ">=12" 3290 + } 3291 + }, 3292 + "node_modules/cliui/node_modules/ansi-regex": { 3293 + "version": "5.0.1", 3294 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3295 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3296 + "engines": { 3297 + "node": ">=8" 3298 + } 3299 + }, 3300 + "node_modules/cliui/node_modules/ansi-styles": { 3301 + "version": "4.3.0", 3302 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3303 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3304 + "dependencies": { 3305 + "color-convert": "^2.0.1" 3306 + }, 3307 + "engines": { 3308 + "node": ">=8" 3309 + }, 3310 + "funding": { 3311 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3312 + } 3313 + }, 3314 + "node_modules/cliui/node_modules/emoji-regex": { 3315 + "version": "8.0.0", 3316 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3317 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 3318 + }, 3319 + "node_modules/cliui/node_modules/string-width": { 3320 + "version": "4.2.3", 3321 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3322 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3323 + "dependencies": { 3324 + "emoji-regex": "^8.0.0", 3325 + "is-fullwidth-code-point": "^3.0.0", 3326 + "strip-ansi": "^6.0.1" 3327 + }, 3328 + "engines": { 3329 + "node": ">=8" 3330 + } 3331 + }, 3332 + "node_modules/cliui/node_modules/strip-ansi": { 3333 + "version": "6.0.1", 3334 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3335 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3336 + "dependencies": { 3337 + "ansi-regex": "^5.0.1" 3338 + }, 3339 + "engines": { 3340 + "node": ">=8" 3341 + } 3342 + }, 3343 + "node_modules/cliui/node_modules/wrap-ansi": { 3344 + "version": "7.0.0", 3345 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 3346 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 3347 + "dependencies": { 3348 + "ansi-styles": "^4.0.0", 3349 + "string-width": "^4.1.0", 3350 + "strip-ansi": "^6.0.0" 3351 + }, 3352 + "engines": { 3353 + "node": ">=10" 3354 + }, 3355 + "funding": { 3356 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3357 + } 3358 + }, 3359 + "node_modules/clsx": { 3360 + "version": "2.1.1", 3361 + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", 3362 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", 3363 + "engines": { 3364 + "node": ">=6" 3365 + } 3366 + }, 3367 + "node_modules/collapse-white-space": { 3368 + "version": "2.1.0", 3369 + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", 3370 + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", 3371 + "funding": { 3372 + "type": "github", 3373 + "url": "https://github.com/sponsors/wooorm" 3374 + } 3375 + }, 3376 + "node_modules/color": { 3377 + "version": "4.2.3", 3378 + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 3379 + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 3380 + "optional": true, 3381 + "dependencies": { 3382 + "color-convert": "^2.0.1", 3383 + "color-string": "^1.9.0" 3384 + }, 3385 + "engines": { 3386 + "node": ">=12.5.0" 3387 + } 3388 + }, 3389 + "node_modules/color-convert": { 3390 + "version": "2.0.1", 3391 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3392 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3393 + "dependencies": { 3394 + "color-name": "~1.1.4" 3395 + }, 3396 + "engines": { 3397 + "node": ">=7.0.0" 3398 + } 3399 + }, 3400 + "node_modules/color-name": { 3401 + "version": "1.1.4", 3402 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3403 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 3404 + }, 3405 + "node_modules/color-string": { 3406 + "version": "1.9.1", 3407 + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 3408 + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 3409 + "optional": true, 3410 + "dependencies": { 3411 + "color-name": "^1.0.0", 3412 + "simple-swizzle": "^0.2.2" 3413 + } 3414 + }, 3415 + "node_modules/colorette": { 3416 + "version": "2.0.20", 3417 + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", 3418 + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", 3419 + "dev": true 3420 + }, 3421 + "node_modules/comma-separated-tokens": { 3422 + "version": "2.0.3", 3423 + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", 3424 + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", 3425 + "funding": { 3426 + "type": "github", 3427 + "url": "https://github.com/sponsors/wooorm" 3428 + } 3429 + }, 3430 + "node_modules/commander": { 3431 + "version": "8.3.0", 3432 + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", 3433 + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", 3434 + "engines": { 3435 + "node": ">= 12" 3436 + } 3437 + }, 3438 + "node_modules/common-ancestor-path": { 3439 + "version": "1.0.1", 3440 + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", 3441 + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" 3442 + }, 3443 + "node_modules/convert-source-map": { 3444 + "version": "2.0.0", 3445 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", 3446 + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" 3447 + }, 3448 + "node_modules/cookie": { 3449 + "version": "0.7.2", 3450 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 3451 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 3452 + "engines": { 3453 + "node": ">= 0.6" 3454 + } 3455 + }, 3456 + "node_modules/cookie-es": { 3457 + "version": "1.2.2", 3458 + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", 3459 + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" 3460 + }, 3461 + "node_modules/crelt": { 3462 + "version": "1.0.6", 3463 + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", 3464 + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" 3465 + }, 3466 + "node_modules/cross-spawn": { 3467 + "version": "7.0.6", 3468 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 3469 + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 3470 + "dependencies": { 3471 + "path-key": "^3.1.0", 3472 + "shebang-command": "^2.0.0", 3473 + "which": "^2.0.1" 3474 + }, 3475 + "engines": { 3476 + "node": ">= 8" 3477 + } 3478 + }, 3479 + "node_modules/crossws": { 3480 + "version": "0.3.4", 3481 + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.4.tgz", 3482 + "integrity": "sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==", 3483 + "dependencies": { 3484 + "uncrypto": "^0.1.3" 3485 + } 3486 + }, 3487 + "node_modules/css-select": { 3488 + "version": "5.1.0", 3489 + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", 3490 + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", 3491 + "dependencies": { 3492 + "boolbase": "^1.0.0", 3493 + "css-what": "^6.1.0", 3494 + "domhandler": "^5.0.2", 3495 + "domutils": "^3.0.1", 3496 + "nth-check": "^2.0.1" 3497 + }, 3498 + "funding": { 3499 + "url": "https://github.com/sponsors/fb55" 3500 + } 3501 + }, 3502 + "node_modules/css-selector-parser": { 3503 + "version": "1.4.1", 3504 + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", 3505 + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" 3506 + }, 3507 + "node_modules/css-what": { 3508 + "version": "6.1.0", 3509 + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", 3510 + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", 3511 + "engines": { 3512 + "node": ">= 6" 3513 + }, 3514 + "funding": { 3515 + "url": "https://github.com/sponsors/fb55" 3516 + } 3517 + }, 3518 + "node_modules/cssesc": { 3519 + "version": "3.0.0", 3520 + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 3521 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 3522 + "bin": { 3523 + "cssesc": "bin/cssesc" 3524 + }, 3525 + "engines": { 3526 + "node": ">=4" 3527 + } 3528 + }, 3529 + "node_modules/cssom": { 3530 + "version": "0.5.0", 3531 + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", 3532 + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" 3533 + }, 3534 + "node_modules/csstype": { 3535 + "version": "3.1.3", 3536 + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", 3537 + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" 3538 + }, 3539 + "node_modules/d": { 3540 + "version": "1.0.2", 3541 + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", 3542 + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", 3543 + "dependencies": { 3544 + "es5-ext": "^0.10.64", 3545 + "type": "^2.7.2" 3546 + }, 3547 + "engines": { 3548 + "node": ">=0.12" 3549 + } 3550 + }, 3551 + "node_modules/debug": { 3552 + "version": "4.4.0", 3553 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 3554 + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 3555 + "dependencies": { 3556 + "ms": "^2.1.3" 3557 + }, 3558 + "engines": { 3559 + "node": ">=6.0" 3560 + }, 3561 + "peerDependenciesMeta": { 3562 + "supports-color": { 3563 + "optional": true 3564 + } 3565 + } 3566 + }, 3567 + "node_modules/decode-named-character-reference": { 3568 + "version": "1.0.2", 3569 + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", 3570 + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", 3571 + "dependencies": { 3572 + "character-entities": "^2.0.0" 3573 + }, 3574 + "funding": { 3575 + "type": "github", 3576 + "url": "https://github.com/sponsors/wooorm" 3577 + } 3578 + }, 3579 + "node_modules/dedent-js": { 3580 + "version": "1.0.1", 3581 + "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz", 3582 + "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==" 3583 + }, 3584 + "node_modules/deepmerge": { 3585 + "version": "4.3.1", 3586 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 3587 + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 3588 + "engines": { 3589 + "node": ">=0.10.0" 3590 + } 3591 + }, 3592 + "node_modules/defu": { 3593 + "version": "6.1.4", 3594 + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", 3595 + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" 3596 + }, 3597 + "node_modules/dequal": { 3598 + "version": "2.0.3", 3599 + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 3600 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 3601 + "engines": { 3602 + "node": ">=6" 3603 + } 3604 + }, 3605 + "node_modules/destr": { 3606 + "version": "2.0.3", 3607 + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", 3608 + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==" 3609 + }, 3610 + "node_modules/detect-libc": { 3611 + "version": "2.0.3", 3612 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 3613 + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 3614 + "optional": true, 3615 + "engines": { 3616 + "node": ">=8" 3617 + } 3618 + }, 3619 + "node_modules/deterministic-object-hash": { 3620 + "version": "2.0.2", 3621 + "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", 3622 + "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", 3623 + "dependencies": { 3624 + "base-64": "^1.0.0" 3625 + }, 3626 + "engines": { 3627 + "node": ">=18" 3628 + } 3629 + }, 3630 + "node_modules/devalue": { 3631 + "version": "5.1.1", 3632 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", 3633 + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==" 3634 + }, 3635 + "node_modules/devlop": { 3636 + "version": "1.1.0", 3637 + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", 3638 + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", 3639 + "dependencies": { 3640 + "dequal": "^2.0.0" 3641 + }, 3642 + "funding": { 3643 + "type": "github", 3644 + "url": "https://github.com/sponsors/wooorm" 3645 + } 3646 + }, 3647 + "node_modules/didyoumean": { 3648 + "version": "1.2.2", 3649 + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 3650 + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" 3651 + }, 3652 + "node_modules/diff": { 3653 + "version": "5.2.0", 3654 + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", 3655 + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", 3656 + "engines": { 3657 + "node": ">=0.3.1" 3658 + } 3659 + }, 3660 + "node_modules/dlv": { 3661 + "version": "1.1.3", 3662 + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 3663 + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" 3664 + }, 3665 + "node_modules/dom-serializer": { 3666 + "version": "2.0.0", 3667 + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", 3668 + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", 3669 + "dependencies": { 3670 + "domelementtype": "^2.3.0", 3671 + "domhandler": "^5.0.2", 3672 + "entities": "^4.2.0" 3673 + }, 3674 + "funding": { 3675 + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" 3676 + } 3677 + }, 3678 + "node_modules/domelementtype": { 3679 + "version": "2.3.0", 3680 + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", 3681 + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", 3682 + "funding": [ 3683 + { 3684 + "type": "github", 3685 + "url": "https://github.com/sponsors/fb55" 3686 + } 3687 + ] 3688 + }, 3689 + "node_modules/domhandler": { 3690 + "version": "5.0.3", 3691 + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", 3692 + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", 3693 + "dependencies": { 3694 + "domelementtype": "^2.3.0" 3695 + }, 3696 + "engines": { 3697 + "node": ">= 4" 3698 + }, 3699 + "funding": { 3700 + "url": "https://github.com/fb55/domhandler?sponsor=1" 3701 + } 3702 + }, 3703 + "node_modules/domutils": { 3704 + "version": "3.2.2", 3705 + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", 3706 + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", 3707 + "dependencies": { 3708 + "dom-serializer": "^2.0.0", 3709 + "domelementtype": "^2.3.0", 3710 + "domhandler": "^5.0.3" 3711 + }, 3712 + "funding": { 3713 + "url": "https://github.com/fb55/domutils?sponsor=1" 3714 + } 3715 + }, 3716 + "node_modules/dotenv": { 3717 + "version": "16.4.7", 3718 + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", 3719 + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", 3720 + "engines": { 3721 + "node": ">=12" 3722 + }, 3723 + "funding": { 3724 + "url": "https://dotenvx.com" 3725 + } 3726 + }, 3727 + "node_modules/dset": { 3728 + "version": "3.1.4", 3729 + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", 3730 + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", 3731 + "engines": { 3732 + "node": ">=4" 3733 + } 3734 + }, 3735 + "node_modules/eastasianwidth": { 3736 + "version": "0.2.0", 3737 + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 3738 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" 3739 + }, 3740 + "node_modules/electron-to-chromium": { 3741 + "version": "1.5.102", 3742 + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz", 3743 + "integrity": "sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==" 3744 + }, 3745 + "node_modules/emmet": { 3746 + "version": "2.4.11", 3747 + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", 3748 + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", 3749 + "dependencies": { 3750 + "@emmetio/abbreviation": "^2.3.3", 3751 + "@emmetio/css-abbreviation": "^2.1.8" 3752 + } 3753 + }, 3754 + "node_modules/emoji-regex": { 3755 + "version": "10.4.0", 3756 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", 3757 + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" 3758 + }, 3759 + "node_modules/emoji-regex-xs": { 3760 + "version": "1.0.0", 3761 + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", 3762 + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==" 3763 + }, 3764 + "node_modules/encoding-sniffer": { 3765 + "version": "0.2.0", 3766 + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", 3767 + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", 3768 + "dependencies": { 3769 + "iconv-lite": "^0.6.3", 3770 + "whatwg-encoding": "^3.1.1" 3771 + }, 3772 + "funding": { 3773 + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" 3774 + } 3775 + }, 3776 + "node_modules/entities": { 3777 + "version": "4.5.0", 3778 + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", 3779 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", 3780 + "engines": { 3781 + "node": ">=0.12" 3782 + }, 3783 + "funding": { 3784 + "url": "https://github.com/fb55/entities?sponsor=1" 3785 + } 3786 + }, 3787 + "node_modules/es-module-lexer": { 3788 + "version": "1.6.0", 3789 + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", 3790 + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" 3791 + }, 3792 + "node_modules/es5-ext": { 3793 + "version": "0.10.64", 3794 + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", 3795 + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", 3796 + "hasInstallScript": true, 3797 + "dependencies": { 3798 + "es6-iterator": "^2.0.3", 3799 + "es6-symbol": "^3.1.3", 3800 + "esniff": "^2.0.1", 3801 + "next-tick": "^1.1.0" 3802 + }, 3803 + "engines": { 3804 + "node": ">=0.10" 3805 + } 3806 + }, 3807 + "node_modules/es6-iterator": { 3808 + "version": "2.0.3", 3809 + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 3810 + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", 3811 + "dependencies": { 3812 + "d": "1", 3813 + "es5-ext": "^0.10.35", 3814 + "es6-symbol": "^3.1.1" 3815 + } 3816 + }, 3817 + "node_modules/es6-symbol": { 3818 + "version": "3.1.4", 3819 + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", 3820 + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", 3821 + "dependencies": { 3822 + "d": "^1.0.2", 3823 + "ext": "^1.7.0" 3824 + }, 3825 + "engines": { 3826 + "node": ">=0.12" 3827 + } 3828 + }, 3829 + "node_modules/esast-util-from-estree": { 3830 + "version": "2.0.0", 3831 + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", 3832 + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", 3833 + "dependencies": { 3834 + "@types/estree-jsx": "^1.0.0", 3835 + "devlop": "^1.0.0", 3836 + "estree-util-visit": "^2.0.0", 3837 + "unist-util-position-from-estree": "^2.0.0" 3838 + }, 3839 + "funding": { 3840 + "type": "opencollective", 3841 + "url": "https://opencollective.com/unified" 3842 + } 3843 + }, 3844 + "node_modules/esast-util-from-js": { 3845 + "version": "2.0.1", 3846 + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", 3847 + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", 3848 + "dependencies": { 3849 + "@types/estree-jsx": "^1.0.0", 3850 + "acorn": "^8.0.0", 3851 + "esast-util-from-estree": "^2.0.0", 3852 + "vfile-message": "^4.0.0" 3853 + }, 3854 + "funding": { 3855 + "type": "opencollective", 3856 + "url": "https://opencollective.com/unified" 3857 + } 3858 + }, 3859 + "node_modules/esbuild": { 3860 + "version": "0.24.2", 3861 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", 3862 + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", 3863 + "hasInstallScript": true, 3864 + "bin": { 3865 + "esbuild": "bin/esbuild" 3866 + }, 3867 + "engines": { 3868 + "node": ">=18" 3869 + }, 3870 + "optionalDependencies": { 3871 + "@esbuild/aix-ppc64": "0.24.2", 3872 + "@esbuild/android-arm": "0.24.2", 3873 + "@esbuild/android-arm64": "0.24.2", 3874 + "@esbuild/android-x64": "0.24.2", 3875 + "@esbuild/darwin-arm64": "0.24.2", 3876 + "@esbuild/darwin-x64": "0.24.2", 3877 + "@esbuild/freebsd-arm64": "0.24.2", 3878 + "@esbuild/freebsd-x64": "0.24.2", 3879 + "@esbuild/linux-arm": "0.24.2", 3880 + "@esbuild/linux-arm64": "0.24.2", 3881 + "@esbuild/linux-ia32": "0.24.2", 3882 + "@esbuild/linux-loong64": "0.24.2", 3883 + "@esbuild/linux-mips64el": "0.24.2", 3884 + "@esbuild/linux-ppc64": "0.24.2", 3885 + "@esbuild/linux-riscv64": "0.24.2", 3886 + "@esbuild/linux-s390x": "0.24.2", 3887 + "@esbuild/linux-x64": "0.24.2", 3888 + "@esbuild/netbsd-arm64": "0.24.2", 3889 + "@esbuild/netbsd-x64": "0.24.2", 3890 + "@esbuild/openbsd-arm64": "0.24.2", 3891 + "@esbuild/openbsd-x64": "0.24.2", 3892 + "@esbuild/sunos-x64": "0.24.2", 3893 + "@esbuild/win32-arm64": "0.24.2", 3894 + "@esbuild/win32-ia32": "0.24.2", 3895 + "@esbuild/win32-x64": "0.24.2" 3896 + } 3897 + }, 3898 + "node_modules/escalade": { 3899 + "version": "3.2.0", 3900 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 3901 + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 3902 + "engines": { 3903 + "node": ">=6" 3904 + } 3905 + }, 3906 + "node_modules/escape-carriage": { 3907 + "version": "1.3.1", 3908 + "resolved": "https://registry.npmjs.org/escape-carriage/-/escape-carriage-1.3.1.tgz", 3909 + "integrity": "sha512-GwBr6yViW3ttx1kb7/Oh+gKQ1/TrhYwxKqVmg5gS+BK+Qe2KrOa/Vh7w3HPBvgGf0LfcDGoY9I6NHKoA5Hozhw==" 3910 + }, 3911 + "node_modules/escape-string-regexp": { 3912 + "version": "5.0.0", 3913 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", 3914 + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", 3915 + "engines": { 3916 + "node": ">=12" 3917 + }, 3918 + "funding": { 3919 + "url": "https://github.com/sponsors/sindresorhus" 3920 + } 3921 + }, 3922 + "node_modules/esm": { 3923 + "version": "3.2.25", 3924 + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", 3925 + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", 3926 + "engines": { 3927 + "node": ">=6" 3928 + } 3929 + }, 3930 + "node_modules/esm-env": { 3931 + "version": "1.2.2", 3932 + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", 3933 + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==" 3934 + }, 3935 + "node_modules/esniff": { 3936 + "version": "2.0.1", 3937 + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", 3938 + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", 3939 + "dependencies": { 3940 + "d": "^1.0.1", 3941 + "es5-ext": "^0.10.62", 3942 + "event-emitter": "^0.3.5", 3943 + "type": "^2.7.2" 3944 + }, 3945 + "engines": { 3946 + "node": ">=0.10" 3947 + } 3948 + }, 3949 + "node_modules/esprima": { 3950 + "version": "4.0.1", 3951 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 3952 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 3953 + "bin": { 3954 + "esparse": "bin/esparse.js", 3955 + "esvalidate": "bin/esvalidate.js" 3956 + }, 3957 + "engines": { 3958 + "node": ">=4" 3959 + } 3960 + }, 3961 + "node_modules/esrap": { 3962 + "version": "1.4.5", 3963 + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.4.5.tgz", 3964 + "integrity": "sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==", 3965 + "dependencies": { 3966 + "@jridgewell/sourcemap-codec": "^1.4.15" 3967 + } 3968 + }, 3969 + "node_modules/estree-util-attach-comments": { 3970 + "version": "3.0.0", 3971 + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", 3972 + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", 3973 + "dependencies": { 3974 + "@types/estree": "^1.0.0" 3975 + }, 3976 + "funding": { 3977 + "type": "opencollective", 3978 + "url": "https://opencollective.com/unified" 3979 + } 3980 + }, 3981 + "node_modules/estree-util-build-jsx": { 3982 + "version": "3.0.1", 3983 + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", 3984 + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", 3985 + "dependencies": { 3986 + "@types/estree-jsx": "^1.0.0", 3987 + "devlop": "^1.0.0", 3988 + "estree-util-is-identifier-name": "^3.0.0", 3989 + "estree-walker": "^3.0.0" 3990 + }, 3991 + "funding": { 3992 + "type": "opencollective", 3993 + "url": "https://opencollective.com/unified" 3994 + } 3995 + }, 3996 + "node_modules/estree-util-is-identifier-name": { 3997 + "version": "3.0.0", 3998 + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", 3999 + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", 4000 + "funding": { 4001 + "type": "opencollective", 4002 + "url": "https://opencollective.com/unified" 4003 + } 4004 + }, 4005 + "node_modules/estree-util-scope": { 4006 + "version": "1.0.0", 4007 + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", 4008 + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", 4009 + "dependencies": { 4010 + "@types/estree": "^1.0.0", 4011 + "devlop": "^1.0.0" 4012 + }, 4013 + "funding": { 4014 + "type": "opencollective", 4015 + "url": "https://opencollective.com/unified" 4016 + } 4017 + }, 4018 + "node_modules/estree-util-to-js": { 4019 + "version": "2.0.0", 4020 + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", 4021 + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", 4022 + "dependencies": { 4023 + "@types/estree-jsx": "^1.0.0", 4024 + "astring": "^1.8.0", 4025 + "source-map": "^0.7.0" 4026 + }, 4027 + "funding": { 4028 + "type": "opencollective", 4029 + "url": "https://opencollective.com/unified" 4030 + } 4031 + }, 4032 + "node_modules/estree-util-visit": { 4033 + "version": "2.0.0", 4034 + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", 4035 + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", 4036 + "dependencies": { 4037 + "@types/estree-jsx": "^1.0.0", 4038 + "@types/unist": "^3.0.0" 4039 + }, 4040 + "funding": { 4041 + "type": "opencollective", 4042 + "url": "https://opencollective.com/unified" 4043 + } 4044 + }, 4045 + "node_modules/estree-walker": { 4046 + "version": "3.0.3", 4047 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 4048 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 4049 + "dependencies": { 4050 + "@types/estree": "^1.0.0" 4051 + } 4052 + }, 4053 + "node_modules/event-emitter": { 4054 + "version": "0.3.5", 4055 + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", 4056 + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", 4057 + "dependencies": { 4058 + "d": "1", 4059 + "es5-ext": "~0.10.14" 4060 + } 4061 + }, 4062 + "node_modules/eventemitter3": { 4063 + "version": "5.0.1", 4064 + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", 4065 + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" 4066 + }, 4067 + "node_modules/ext": { 4068 + "version": "1.7.0", 4069 + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", 4070 + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", 4071 + "dependencies": { 4072 + "type": "^2.7.2" 4073 + } 4074 + }, 4075 + "node_modules/extend": { 4076 + "version": "3.0.2", 4077 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 4078 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 4079 + }, 4080 + "node_modules/fast-deep-equal": { 4081 + "version": "3.1.3", 4082 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 4083 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 4084 + }, 4085 + "node_modules/fast-glob": { 4086 + "version": "3.3.3", 4087 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 4088 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 4089 + "dependencies": { 4090 + "@nodelib/fs.stat": "^2.0.2", 4091 + "@nodelib/fs.walk": "^1.2.3", 4092 + "glob-parent": "^5.1.2", 4093 + "merge2": "^1.3.0", 4094 + "micromatch": "^4.0.8" 4095 + }, 4096 + "engines": { 4097 + "node": ">=8.6.0" 4098 + } 4099 + }, 4100 + "node_modules/fast-uri": { 4101 + "version": "3.0.6", 4102 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", 4103 + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", 4104 + "funding": [ 4105 + { 4106 + "type": "github", 4107 + "url": "https://github.com/sponsors/fastify" 4108 + }, 4109 + { 4110 + "type": "opencollective", 4111 + "url": "https://opencollective.com/fastify" 4112 + } 4113 + ] 4114 + }, 4115 + "node_modules/fast-xml-parser": { 4116 + "version": "4.5.3", 4117 + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", 4118 + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", 4119 + "funding": [ 4120 + { 4121 + "type": "github", 4122 + "url": "https://github.com/sponsors/NaturalIntelligence" 4123 + } 4124 + ], 4125 + "dependencies": { 4126 + "strnum": "^1.1.1" 4127 + }, 4128 + "bin": { 4129 + "fxparser": "src/cli/cli.js" 4130 + } 4131 + }, 4132 + "node_modules/fastq": { 4133 + "version": "1.19.0", 4134 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", 4135 + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", 4136 + "dependencies": { 4137 + "reusify": "^1.0.4" 4138 + } 4139 + }, 4140 + "node_modules/fill-range": { 4141 + "version": "7.1.1", 4142 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 4143 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 4144 + "dependencies": { 4145 + "to-regex-range": "^5.0.1" 4146 + }, 4147 + "engines": { 4148 + "node": ">=8" 4149 + } 4150 + }, 4151 + "node_modules/find-up": { 4152 + "version": "4.1.0", 4153 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 4154 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 4155 + "dependencies": { 4156 + "locate-path": "^5.0.0", 4157 + "path-exists": "^4.0.0" 4158 + }, 4159 + "engines": { 4160 + "node": ">=8" 4161 + } 4162 + }, 4163 + "node_modules/find-up-simple": { 4164 + "version": "1.0.0", 4165 + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", 4166 + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", 4167 + "engines": { 4168 + "node": ">=18" 4169 + }, 4170 + "funding": { 4171 + "url": "https://github.com/sponsors/sindresorhus" 4172 + } 4173 + }, 4174 + "node_modules/find-yarn-workspace-root2": { 4175 + "version": "1.2.16", 4176 + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", 4177 + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", 4178 + "dependencies": { 4179 + "micromatch": "^4.0.2", 4180 + "pkg-dir": "^4.2.0" 4181 + } 4182 + }, 4183 + "node_modules/flattie": { 4184 + "version": "1.1.1", 4185 + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", 4186 + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", 4187 + "engines": { 4188 + "node": ">=8" 4189 + } 4190 + }, 4191 + "node_modules/foreground-child": { 4192 + "version": "3.3.0", 4193 + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", 4194 + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", 4195 + "dependencies": { 4196 + "cross-spawn": "^7.0.0", 4197 + "signal-exit": "^4.0.1" 4198 + }, 4199 + "engines": { 4200 + "node": ">=14" 4201 + }, 4202 + "funding": { 4203 + "url": "https://github.com/sponsors/isaacs" 4204 + } 4205 + }, 4206 + "node_modules/fraction.js": { 4207 + "version": "4.3.7", 4208 + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", 4209 + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", 4210 + "engines": { 4211 + "node": "*" 4212 + }, 4213 + "funding": { 4214 + "type": "patreon", 4215 + "url": "https://github.com/sponsors/rawify" 4216 + } 4217 + }, 4218 + "node_modules/fsevents": { 4219 + "version": "2.3.3", 4220 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 4221 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 4222 + "hasInstallScript": true, 4223 + "optional": true, 4224 + "os": [ 4225 + "darwin" 4226 + ], 4227 + "engines": { 4228 + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 4229 + } 4230 + }, 4231 + "node_modules/function-bind": { 4232 + "version": "1.1.2", 4233 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 4234 + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 4235 + "funding": { 4236 + "url": "https://github.com/sponsors/ljharb" 4237 + } 4238 + }, 4239 + "node_modules/gensync": { 4240 + "version": "1.0.0-beta.2", 4241 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 4242 + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 4243 + "engines": { 4244 + "node": ">=6.9.0" 4245 + } 4246 + }, 4247 + "node_modules/get-caller-file": { 4248 + "version": "2.0.5", 4249 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 4250 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 4251 + "engines": { 4252 + "node": "6.* || 8.* || >= 10.*" 4253 + } 4254 + }, 4255 + "node_modules/get-east-asian-width": { 4256 + "version": "1.3.0", 4257 + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", 4258 + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", 4259 + "engines": { 4260 + "node": ">=18" 4261 + }, 4262 + "funding": { 4263 + "url": "https://github.com/sponsors/sindresorhus" 4264 + } 4265 + }, 4266 + "node_modules/github-slugger": { 4267 + "version": "2.0.0", 4268 + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", 4269 + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" 4270 + }, 4271 + "node_modules/glob": { 4272 + "version": "10.4.5", 4273 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 4274 + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 4275 + "dependencies": { 4276 + "foreground-child": "^3.1.0", 4277 + "jackspeak": "^3.1.2", 4278 + "minimatch": "^9.0.4", 4279 + "minipass": "^7.1.2", 4280 + "package-json-from-dist": "^1.0.0", 4281 + "path-scurry": "^1.11.1" 4282 + }, 4283 + "bin": { 4284 + "glob": "dist/esm/bin.mjs" 4285 + }, 4286 + "funding": { 4287 + "url": "https://github.com/sponsors/isaacs" 4288 + } 4289 + }, 4290 + "node_modules/glob-parent": { 4291 + "version": "5.1.2", 4292 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 4293 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 4294 + "dependencies": { 4295 + "is-glob": "^4.0.1" 4296 + }, 4297 + "engines": { 4298 + "node": ">= 6" 4299 + } 4300 + }, 4301 + "node_modules/globals": { 4302 + "version": "11.12.0", 4303 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 4304 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 4305 + "engines": { 4306 + "node": ">=4" 4307 + } 4308 + }, 4309 + "node_modules/graceful-fs": { 4310 + "version": "4.2.11", 4311 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 4312 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 4313 + }, 4314 + "node_modules/graphemer": { 4315 + "version": "1.4.0", 4316 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 4317 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" 4318 + }, 4319 + "node_modules/h3": { 4320 + "version": "1.15.0", 4321 + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.0.tgz", 4322 + "integrity": "sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ==", 4323 + "dependencies": { 4324 + "cookie-es": "^1.2.2", 4325 + "crossws": "^0.3.3", 4326 + "defu": "^6.1.4", 4327 + "destr": "^2.0.3", 4328 + "iron-webcrypto": "^1.2.1", 4329 + "node-mock-http": "^1.0.0", 4330 + "ohash": "^1.1.4", 4331 + "radix3": "^1.1.2", 4332 + "ufo": "^1.5.4", 4333 + "uncrypto": "^0.1.3" 4334 + } 4335 + }, 4336 + "node_modules/hasown": { 4337 + "version": "2.0.2", 4338 + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 4339 + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 4340 + "dependencies": { 4341 + "function-bind": "^1.1.2" 4342 + }, 4343 + "engines": { 4344 + "node": ">= 0.4" 4345 + } 4346 + }, 4347 + "node_modules/hast-util-from-html": { 4348 + "version": "2.0.3", 4349 + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", 4350 + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", 4351 + "dependencies": { 4352 + "@types/hast": "^3.0.0", 4353 + "devlop": "^1.1.0", 4354 + "hast-util-from-parse5": "^8.0.0", 4355 + "parse5": "^7.0.0", 4356 + "vfile": "^6.0.0", 4357 + "vfile-message": "^4.0.0" 4358 + }, 4359 + "funding": { 4360 + "type": "opencollective", 4361 + "url": "https://opencollective.com/unified" 4362 + } 4363 + }, 4364 + "node_modules/hast-util-from-parse5": { 4365 + "version": "8.0.3", 4366 + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", 4367 + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", 4368 + "dependencies": { 4369 + "@types/hast": "^3.0.0", 4370 + "@types/unist": "^3.0.0", 4371 + "devlop": "^1.0.0", 4372 + "hastscript": "^9.0.0", 4373 + "property-information": "^7.0.0", 4374 + "vfile": "^6.0.0", 4375 + "vfile-location": "^5.0.0", 4376 + "web-namespaces": "^2.0.0" 4377 + }, 4378 + "funding": { 4379 + "type": "opencollective", 4380 + "url": "https://opencollective.com/unified" 4381 + } 4382 + }, 4383 + "node_modules/hast-util-is-element": { 4384 + "version": "3.0.0", 4385 + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", 4386 + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", 4387 + "dependencies": { 4388 + "@types/hast": "^3.0.0" 4389 + }, 4390 + "funding": { 4391 + "type": "opencollective", 4392 + "url": "https://opencollective.com/unified" 4393 + } 4394 + }, 4395 + "node_modules/hast-util-parse-selector": { 4396 + "version": "4.0.0", 4397 + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", 4398 + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", 4399 + "dependencies": { 4400 + "@types/hast": "^3.0.0" 4401 + }, 4402 + "funding": { 4403 + "type": "opencollective", 4404 + "url": "https://opencollective.com/unified" 4405 + } 4406 + }, 4407 + "node_modules/hast-util-raw": { 4408 + "version": "9.1.0", 4409 + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", 4410 + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", 4411 + "dependencies": { 4412 + "@types/hast": "^3.0.0", 4413 + "@types/unist": "^3.0.0", 4414 + "@ungap/structured-clone": "^1.0.0", 4415 + "hast-util-from-parse5": "^8.0.0", 4416 + "hast-util-to-parse5": "^8.0.0", 4417 + "html-void-elements": "^3.0.0", 4418 + "mdast-util-to-hast": "^13.0.0", 4419 + "parse5": "^7.0.0", 4420 + "unist-util-position": "^5.0.0", 4421 + "unist-util-visit": "^5.0.0", 4422 + "vfile": "^6.0.0", 4423 + "web-namespaces": "^2.0.0", 4424 + "zwitch": "^2.0.0" 4425 + }, 4426 + "funding": { 4427 + "type": "opencollective", 4428 + "url": "https://opencollective.com/unified" 4429 + } 4430 + }, 4431 + "node_modules/hast-util-to-estree": { 4432 + "version": "3.1.2", 4433 + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.2.tgz", 4434 + "integrity": "sha512-94SDoKOfop5gP8RHyw4vV1aj+oChuD42g08BONGAaWFbbO6iaWUqxk7SWfGybgcVzhK16KifZr3zD2dqQgx3jQ==", 4435 + "dependencies": { 4436 + "@types/estree": "^1.0.0", 4437 + "@types/estree-jsx": "^1.0.0", 4438 + "@types/hast": "^3.0.0", 4439 + "comma-separated-tokens": "^2.0.0", 4440 + "devlop": "^1.0.0", 4441 + "estree-util-attach-comments": "^3.0.0", 4442 + "estree-util-is-identifier-name": "^3.0.0", 4443 + "hast-util-whitespace": "^3.0.0", 4444 + "mdast-util-mdx-expression": "^2.0.0", 4445 + "mdast-util-mdx-jsx": "^3.0.0", 4446 + "mdast-util-mdxjs-esm": "^2.0.0", 4447 + "property-information": "^7.0.0", 4448 + "space-separated-tokens": "^2.0.0", 4449 + "style-to-object": "^1.0.0", 4450 + "unist-util-position": "^5.0.0", 4451 + "zwitch": "^2.0.0" 4452 + }, 4453 + "funding": { 4454 + "type": "opencollective", 4455 + "url": "https://opencollective.com/unified" 4456 + } 4457 + }, 4458 + "node_modules/hast-util-to-html": { 4459 + "version": "9.0.5", 4460 + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", 4461 + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", 4462 + "dependencies": { 4463 + "@types/hast": "^3.0.0", 4464 + "@types/unist": "^3.0.0", 4465 + "ccount": "^2.0.0", 4466 + "comma-separated-tokens": "^2.0.0", 4467 + "hast-util-whitespace": "^3.0.0", 4468 + "html-void-elements": "^3.0.0", 4469 + "mdast-util-to-hast": "^13.0.0", 4470 + "property-information": "^7.0.0", 4471 + "space-separated-tokens": "^2.0.0", 4472 + "stringify-entities": "^4.0.0", 4473 + "zwitch": "^2.0.4" 4474 + }, 4475 + "funding": { 4476 + "type": "opencollective", 4477 + "url": "https://opencollective.com/unified" 4478 + } 4479 + }, 4480 + "node_modules/hast-util-to-jsx-runtime": { 4481 + "version": "2.3.3", 4482 + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.3.tgz", 4483 + "integrity": "sha512-pdpkP8YD4v+qMKn2lnKSiJvZvb3FunDmFYQvVOsoO08+eTNWdaWKPMrC5wwNICtU3dQWHhElj5Sf5jPEnv4qJg==", 4484 + "dependencies": { 4485 + "@types/estree": "^1.0.0", 4486 + "@types/hast": "^3.0.0", 4487 + "@types/unist": "^3.0.0", 4488 + "comma-separated-tokens": "^2.0.0", 4489 + "devlop": "^1.0.0", 4490 + "estree-util-is-identifier-name": "^3.0.0", 4491 + "hast-util-whitespace": "^3.0.0", 4492 + "mdast-util-mdx-expression": "^2.0.0", 4493 + "mdast-util-mdx-jsx": "^3.0.0", 4494 + "mdast-util-mdxjs-esm": "^2.0.0", 4495 + "property-information": "^7.0.0", 4496 + "space-separated-tokens": "^2.0.0", 4497 + "style-to-object": "^1.0.0", 4498 + "unist-util-position": "^5.0.0", 4499 + "vfile-message": "^4.0.0" 4500 + }, 4501 + "funding": { 4502 + "type": "opencollective", 4503 + "url": "https://opencollective.com/unified" 4504 + } 4505 + }, 4506 + "node_modules/hast-util-to-parse5": { 4507 + "version": "8.0.0", 4508 + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", 4509 + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", 4510 + "dependencies": { 4511 + "@types/hast": "^3.0.0", 4512 + "comma-separated-tokens": "^2.0.0", 4513 + "devlop": "^1.0.0", 4514 + "property-information": "^6.0.0", 4515 + "space-separated-tokens": "^2.0.0", 4516 + "web-namespaces": "^2.0.0", 4517 + "zwitch": "^2.0.0" 4518 + }, 4519 + "funding": { 4520 + "type": "opencollective", 4521 + "url": "https://opencollective.com/unified" 4522 + } 4523 + }, 4524 + "node_modules/hast-util-to-parse5/node_modules/property-information": { 4525 + "version": "6.5.0", 4526 + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", 4527 + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", 4528 + "funding": { 4529 + "type": "github", 4530 + "url": "https://github.com/sponsors/wooorm" 4531 + } 4532 + }, 4533 + "node_modules/hast-util-to-text": { 4534 + "version": "4.0.2", 4535 + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", 4536 + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", 4537 + "dependencies": { 4538 + "@types/hast": "^3.0.0", 4539 + "@types/unist": "^3.0.0", 4540 + "hast-util-is-element": "^3.0.0", 4541 + "unist-util-find-after": "^5.0.0" 4542 + }, 4543 + "funding": { 4544 + "type": "opencollective", 4545 + "url": "https://opencollective.com/unified" 4546 + } 4547 + }, 4548 + "node_modules/hast-util-whitespace": { 4549 + "version": "3.0.0", 4550 + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", 4551 + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", 4552 + "dependencies": { 4553 + "@types/hast": "^3.0.0" 4554 + }, 4555 + "funding": { 4556 + "type": "opencollective", 4557 + "url": "https://opencollective.com/unified" 4558 + } 4559 + }, 4560 + "node_modules/hastscript": { 4561 + "version": "9.0.1", 4562 + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", 4563 + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", 4564 + "dependencies": { 4565 + "@types/hast": "^3.0.0", 4566 + "comma-separated-tokens": "^2.0.0", 4567 + "hast-util-parse-selector": "^4.0.0", 4568 + "property-information": "^7.0.0", 4569 + "space-separated-tokens": "^2.0.0" 4570 + }, 4571 + "funding": { 4572 + "type": "opencollective", 4573 + "url": "https://opencollective.com/unified" 4574 + } 4575 + }, 4576 + "node_modules/html-escaper": { 4577 + "version": "3.0.3", 4578 + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", 4579 + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==" 4580 + }, 4581 + "node_modules/html-void-elements": { 4582 + "version": "3.0.0", 4583 + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", 4584 + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", 4585 + "funding": { 4586 + "type": "github", 4587 + "url": "https://github.com/sponsors/wooorm" 4588 + } 4589 + }, 4590 + "node_modules/htmlparser2": { 4591 + "version": "8.0.2", 4592 + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", 4593 + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", 4594 + "funding": [ 4595 + "https://github.com/fb55/htmlparser2?sponsor=1", 4596 + { 4597 + "type": "github", 4598 + "url": "https://github.com/sponsors/fb55" 4599 + } 4600 + ], 4601 + "dependencies": { 4602 + "domelementtype": "^2.3.0", 4603 + "domhandler": "^5.0.3", 4604 + "domutils": "^3.0.1", 4605 + "entities": "^4.4.0" 4606 + } 4607 + }, 4608 + "node_modules/http-cache-semantics": { 4609 + "version": "4.1.1", 4610 + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", 4611 + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" 4612 + }, 4613 + "node_modules/iconv-lite": { 4614 + "version": "0.6.3", 4615 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 4616 + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 4617 + "dependencies": { 4618 + "safer-buffer": ">= 2.1.2 < 3.0.0" 4619 + }, 4620 + "engines": { 4621 + "node": ">=0.10.0" 4622 + } 4623 + }, 4624 + "node_modules/ieee754": { 4625 + "version": "1.2.1", 4626 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 4627 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 4628 + "funding": [ 4629 + { 4630 + "type": "github", 4631 + "url": "https://github.com/sponsors/feross" 4632 + }, 4633 + { 4634 + "type": "patreon", 4635 + "url": "https://www.patreon.com/feross" 4636 + }, 4637 + { 4638 + "type": "consulting", 4639 + "url": "https://feross.org/support" 4640 + } 4641 + ] 4642 + }, 4643 + "node_modules/import-meta-resolve": { 4644 + "version": "4.1.0", 4645 + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", 4646 + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", 4647 + "funding": { 4648 + "type": "github", 4649 + "url": "https://github.com/sponsors/wooorm" 4650 + } 4651 + }, 4652 + "node_modules/inline-style-parser": { 4653 + "version": "0.2.4", 4654 + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", 4655 + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" 4656 + }, 4657 + "node_modules/intersection-observer": { 4658 + "version": "0.10.0", 4659 + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.10.0.tgz", 4660 + "integrity": "sha512-fn4bQ0Xq8FTej09YC/jqKZwtijpvARlRp6wxL5WTA6yPe2YWSJ5RJh7Nm79rK2qB0wr6iDQzH60XGq5V/7u8YQ==" 4661 + }, 4662 + "node_modules/iron-webcrypto": { 4663 + "version": "1.2.1", 4664 + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", 4665 + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", 4666 + "funding": { 4667 + "url": "https://github.com/sponsors/brc-dd" 4668 + } 4669 + }, 4670 + "node_modules/is-alphabetical": { 4671 + "version": "2.0.1", 4672 + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", 4673 + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", 4674 + "funding": { 4675 + "type": "github", 4676 + "url": "https://github.com/sponsors/wooorm" 4677 + } 4678 + }, 4679 + "node_modules/is-alphanumerical": { 4680 + "version": "2.0.1", 4681 + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", 4682 + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", 4683 + "dependencies": { 4684 + "is-alphabetical": "^2.0.0", 4685 + "is-decimal": "^2.0.0" 4686 + }, 4687 + "funding": { 4688 + "type": "github", 4689 + "url": "https://github.com/sponsors/wooorm" 4690 + } 4691 + }, 4692 + "node_modules/is-arrayish": { 4693 + "version": "0.3.2", 4694 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 4695 + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 4696 + "optional": true 4697 + }, 4698 + "node_modules/is-binary-path": { 4699 + "version": "2.1.0", 4700 + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 4701 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 4702 + "dependencies": { 4703 + "binary-extensions": "^2.0.0" 4704 + }, 4705 + "engines": { 4706 + "node": ">=8" 4707 + } 4708 + }, 4709 + "node_modules/is-core-module": { 4710 + "version": "2.16.1", 4711 + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", 4712 + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", 4713 + "dependencies": { 4714 + "hasown": "^2.0.2" 4715 + }, 4716 + "engines": { 4717 + "node": ">= 0.4" 4718 + }, 4719 + "funding": { 4720 + "url": "https://github.com/sponsors/ljharb" 4721 + } 4722 + }, 4723 + "node_modules/is-decimal": { 4724 + "version": "2.0.1", 4725 + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", 4726 + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", 4727 + "funding": { 4728 + "type": "github", 4729 + "url": "https://github.com/sponsors/wooorm" 4730 + } 4731 + }, 4732 + "node_modules/is-docker": { 4733 + "version": "3.0.0", 4734 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 4735 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 4736 + "bin": { 4737 + "is-docker": "cli.js" 4738 + }, 4739 + "engines": { 4740 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 4741 + }, 4742 + "funding": { 4743 + "url": "https://github.com/sponsors/sindresorhus" 4744 + } 4745 + }, 4746 + "node_modules/is-extglob": { 4747 + "version": "2.1.1", 4748 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 4749 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 4750 + "engines": { 4751 + "node": ">=0.10.0" 4752 + } 4753 + }, 4754 + "node_modules/is-fullwidth-code-point": { 4755 + "version": "3.0.0", 4756 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 4757 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 4758 + "engines": { 4759 + "node": ">=8" 4760 + } 4761 + }, 4762 + "node_modules/is-glob": { 4763 + "version": "4.0.3", 4764 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 4765 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 4766 + "dependencies": { 4767 + "is-extglob": "^2.1.1" 4768 + }, 4769 + "engines": { 4770 + "node": ">=0.10.0" 4771 + } 4772 + }, 4773 + "node_modules/is-hexadecimal": { 4774 + "version": "2.0.1", 4775 + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", 4776 + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", 4777 + "funding": { 4778 + "type": "github", 4779 + "url": "https://github.com/sponsors/wooorm" 4780 + } 4781 + }, 4782 + "node_modules/is-inside-container": { 4783 + "version": "1.0.0", 4784 + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 4785 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 4786 + "dependencies": { 4787 + "is-docker": "^3.0.0" 4788 + }, 4789 + "bin": { 4790 + "is-inside-container": "cli.js" 4791 + }, 4792 + "engines": { 4793 + "node": ">=14.16" 4794 + }, 4795 + "funding": { 4796 + "url": "https://github.com/sponsors/sindresorhus" 4797 + } 4798 + }, 4799 + "node_modules/is-number": { 4800 + "version": "7.0.0", 4801 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 4802 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 4803 + "engines": { 4804 + "node": ">=0.12.0" 4805 + } 4806 + }, 4807 + "node_modules/is-plain-obj": { 4808 + "version": "4.1.0", 4809 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", 4810 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", 4811 + "engines": { 4812 + "node": ">=12" 4813 + }, 4814 + "funding": { 4815 + "url": "https://github.com/sponsors/sindresorhus" 4816 + } 4817 + }, 4818 + "node_modules/is-reference": { 4819 + "version": "3.0.3", 4820 + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", 4821 + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", 4822 + "dependencies": { 4823 + "@types/estree": "^1.0.6" 4824 + } 4825 + }, 4826 + "node_modules/is-wsl": { 4827 + "version": "3.1.0", 4828 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", 4829 + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", 4830 + "dependencies": { 4831 + "is-inside-container": "^1.0.0" 4832 + }, 4833 + "engines": { 4834 + "node": ">=16" 4835 + }, 4836 + "funding": { 4837 + "url": "https://github.com/sponsors/sindresorhus" 4838 + } 4839 + }, 4840 + "node_modules/isexe": { 4841 + "version": "2.0.0", 4842 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 4843 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" 4844 + }, 4845 + "node_modules/iso-datestring-validator": { 4846 + "version": "2.2.2", 4847 + "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", 4848 + "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==" 4849 + }, 4850 + "node_modules/jackspeak": { 4851 + "version": "3.4.3", 4852 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", 4853 + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 4854 + "dependencies": { 4855 + "@isaacs/cliui": "^8.0.2" 4856 + }, 4857 + "funding": { 4858 + "url": "https://github.com/sponsors/isaacs" 4859 + }, 4860 + "optionalDependencies": { 4861 + "@pkgjs/parseargs": "^0.11.0" 4862 + } 4863 + }, 4864 + "node_modules/jiti": { 4865 + "version": "1.21.7", 4866 + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", 4867 + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", 4868 + "bin": { 4869 + "jiti": "bin/jiti.js" 4870 + } 4871 + }, 4872 + "node_modules/js-tokens": { 4873 + "version": "4.0.0", 4874 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 4875 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 4876 + }, 4877 + "node_modules/js-yaml": { 4878 + "version": "4.1.0", 4879 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 4880 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 4881 + "dependencies": { 4882 + "argparse": "^2.0.1" 4883 + }, 4884 + "bin": { 4885 + "js-yaml": "bin/js-yaml.js" 4886 + } 4887 + }, 4888 + "node_modules/jsesc": { 4889 + "version": "3.1.0", 4890 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", 4891 + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", 4892 + "bin": { 4893 + "jsesc": "bin/jsesc" 4894 + }, 4895 + "engines": { 4896 + "node": ">=6" 4897 + } 4898 + }, 4899 + "node_modules/json-schema-traverse": { 4900 + "version": "1.0.0", 4901 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 4902 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" 4903 + }, 4904 + "node_modules/json5": { 4905 + "version": "2.2.3", 4906 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 4907 + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 4908 + "bin": { 4909 + "json5": "lib/cli.js" 4910 + }, 4911 + "engines": { 4912 + "node": ">=6" 4913 + } 4914 + }, 4915 + "node_modules/jsonc-parser": { 4916 + "version": "2.3.1", 4917 + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", 4918 + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" 4919 + }, 4920 + "node_modules/katex": { 4921 + "version": "0.16.21", 4922 + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", 4923 + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", 4924 + "funding": [ 4925 + "https://opencollective.com/katex", 4926 + "https://github.com/sponsors/katex" 4927 + ], 4928 + "dependencies": { 4929 + "commander": "^8.3.0" 4930 + }, 4931 + "bin": { 4932 + "katex": "cli.js" 4933 + } 4934 + }, 4935 + "node_modules/kleur": { 4936 + "version": "4.1.5", 4937 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 4938 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 4939 + "engines": { 4940 + "node": ">=6" 4941 + } 4942 + }, 4943 + "node_modules/lilconfig": { 4944 + "version": "3.1.3", 4945 + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", 4946 + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", 4947 + "engines": { 4948 + "node": ">=14" 4949 + }, 4950 + "funding": { 4951 + "url": "https://github.com/sponsors/antonk52" 4952 + } 4953 + }, 4954 + "node_modules/lines-and-columns": { 4955 + "version": "1.2.4", 4956 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 4957 + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 4958 + }, 4959 + "node_modules/linkedom": { 4960 + "version": "0.14.26", 4961 + "resolved": "https://registry.npmjs.org/linkedom/-/linkedom-0.14.26.tgz", 4962 + "integrity": "sha512-mK6TrydfFA7phrnp+1j57ycBwFI5bGSW6YXlw9acHoqF+mP/y+FooEYYyniOt5Ot57FSKB3iwmnuQ1UUyNLm5A==", 4963 + "dependencies": { 4964 + "css-select": "^5.1.0", 4965 + "cssom": "^0.5.0", 4966 + "html-escaper": "^3.0.3", 4967 + "htmlparser2": "^8.0.1", 4968 + "uhyphen": "^0.2.0" 4969 + } 4970 + }, 4971 + "node_modules/lite-youtube-embed": { 4972 + "version": "0.3.3", 4973 + "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.3.3.tgz", 4974 + "integrity": "sha512-gFfVVnj6NRjxVfJKo3qoLtpi0v5mn3AcR4eKD45wrxQuxzveFJUb+7Cr6uV6n+DjO8X3p0UzPPquhGt0H/y+NA==" 4975 + }, 4976 + "node_modules/load-yaml-file": { 4977 + "version": "0.2.0", 4978 + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", 4979 + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", 4980 + "dependencies": { 4981 + "graceful-fs": "^4.1.5", 4982 + "js-yaml": "^3.13.0", 4983 + "pify": "^4.0.1", 4984 + "strip-bom": "^3.0.0" 4985 + }, 4986 + "engines": { 4987 + "node": ">=6" 4988 + } 4989 + }, 4990 + "node_modules/load-yaml-file/node_modules/argparse": { 4991 + "version": "1.0.10", 4992 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 4993 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 4994 + "dependencies": { 4995 + "sprintf-js": "~1.0.2" 4996 + } 4997 + }, 4998 + "node_modules/load-yaml-file/node_modules/js-yaml": { 4999 + "version": "3.14.1", 5000 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", 5001 + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 5002 + "dependencies": { 5003 + "argparse": "^1.0.7", 5004 + "esprima": "^4.0.0" 5005 + }, 5006 + "bin": { 5007 + "js-yaml": "bin/js-yaml.js" 5008 + } 5009 + }, 5010 + "node_modules/load-yaml-file/node_modules/pify": { 5011 + "version": "4.0.1", 5012 + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", 5013 + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", 5014 + "engines": { 5015 + "node": ">=6" 5016 + } 5017 + }, 5018 + "node_modules/locate-character": { 5019 + "version": "3.0.0", 5020 + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 5021 + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" 5022 + }, 5023 + "node_modules/locate-path": { 5024 + "version": "5.0.0", 5025 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 5026 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 5027 + "dependencies": { 5028 + "p-locate": "^4.1.0" 5029 + }, 5030 + "engines": { 5031 + "node": ">=8" 5032 + } 5033 + }, 5034 + "node_modules/lodash": { 5035 + "version": "4.17.21", 5036 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 5037 + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 5038 + }, 5039 + "node_modules/lodash.castarray": { 5040 + "version": "4.4.0", 5041 + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", 5042 + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", 5043 + "dev": true 5044 + }, 5045 + "node_modules/lodash.isplainobject": { 5046 + "version": "4.0.6", 5047 + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 5048 + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", 5049 + "dev": true 5050 + }, 5051 + "node_modules/lodash.merge": { 5052 + "version": "4.6.2", 5053 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 5054 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 5055 + "dev": true 5056 + }, 5057 + "node_modules/longest-streak": { 5058 + "version": "3.1.0", 5059 + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", 5060 + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", 5061 + "funding": { 5062 + "type": "github", 5063 + "url": "https://github.com/sponsors/wooorm" 5064 + } 5065 + }, 5066 + "node_modules/lower-case": { 5067 + "version": "2.0.2", 5068 + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", 5069 + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", 5070 + "dependencies": { 5071 + "tslib": "^2.0.3" 5072 + } 5073 + }, 5074 + "node_modules/lru-cache": { 5075 + "version": "10.4.3", 5076 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 5077 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" 5078 + }, 5079 + "node_modules/lz-string": { 5080 + "version": "1.5.0", 5081 + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", 5082 + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", 5083 + "bin": { 5084 + "lz-string": "bin/bin.js" 5085 + } 5086 + }, 5087 + "node_modules/magic-string": { 5088 + "version": "0.30.17", 5089 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", 5090 + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 5091 + "dependencies": { 5092 + "@jridgewell/sourcemap-codec": "^1.5.0" 5093 + } 5094 + }, 5095 + "node_modules/magicast": { 5096 + "version": "0.3.5", 5097 + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", 5098 + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", 5099 + "dependencies": { 5100 + "@babel/parser": "^7.25.4", 5101 + "@babel/types": "^7.25.4", 5102 + "source-map-js": "^1.2.0" 5103 + } 5104 + }, 5105 + "node_modules/markdown-extensions": { 5106 + "version": "2.0.0", 5107 + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", 5108 + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", 5109 + "engines": { 5110 + "node": ">=16" 5111 + }, 5112 + "funding": { 5113 + "url": "https://github.com/sponsors/sindresorhus" 5114 + } 5115 + }, 5116 + "node_modules/markdown-table": { 5117 + "version": "3.0.4", 5118 + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", 5119 + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", 5120 + "funding": { 5121 + "type": "github", 5122 + "url": "https://github.com/sponsors/wooorm" 5123 + } 5124 + }, 5125 + "node_modules/mathjax-full": { 5126 + "version": "3.2.2", 5127 + "resolved": "https://registry.npmjs.org/mathjax-full/-/mathjax-full-3.2.2.tgz", 5128 + "integrity": "sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==", 5129 + "dependencies": { 5130 + "esm": "^3.2.25", 5131 + "mhchemparser": "^4.1.0", 5132 + "mj-context-menu": "^0.6.1", 5133 + "speech-rule-engine": "^4.0.6" 5134 + } 5135 + }, 5136 + "node_modules/mdast-util-definitions": { 5137 + "version": "6.0.0", 5138 + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", 5139 + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", 5140 + "dependencies": { 5141 + "@types/mdast": "^4.0.0", 5142 + "@types/unist": "^3.0.0", 5143 + "unist-util-visit": "^5.0.0" 5144 + }, 5145 + "funding": { 5146 + "type": "opencollective", 5147 + "url": "https://opencollective.com/unified" 5148 + } 5149 + }, 5150 + "node_modules/mdast-util-directive": { 5151 + "version": "3.1.0", 5152 + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", 5153 + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", 5154 + "dependencies": { 5155 + "@types/mdast": "^4.0.0", 5156 + "@types/unist": "^3.0.0", 5157 + "ccount": "^2.0.0", 5158 + "devlop": "^1.0.0", 5159 + "mdast-util-from-markdown": "^2.0.0", 5160 + "mdast-util-to-markdown": "^2.0.0", 5161 + "parse-entities": "^4.0.0", 5162 + "stringify-entities": "^4.0.0", 5163 + "unist-util-visit-parents": "^6.0.0" 5164 + }, 5165 + "funding": { 5166 + "type": "opencollective", 5167 + "url": "https://opencollective.com/unified" 5168 + } 5169 + }, 5170 + "node_modules/mdast-util-find-and-replace": { 5171 + "version": "3.0.2", 5172 + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", 5173 + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", 5174 + "dependencies": { 5175 + "@types/mdast": "^4.0.0", 5176 + "escape-string-regexp": "^5.0.0", 5177 + "unist-util-is": "^6.0.0", 5178 + "unist-util-visit-parents": "^6.0.0" 5179 + }, 5180 + "funding": { 5181 + "type": "opencollective", 5182 + "url": "https://opencollective.com/unified" 5183 + } 5184 + }, 5185 + "node_modules/mdast-util-from-markdown": { 5186 + "version": "2.0.2", 5187 + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", 5188 + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", 5189 + "dependencies": { 5190 + "@types/mdast": "^4.0.0", 5191 + "@types/unist": "^3.0.0", 5192 + "decode-named-character-reference": "^1.0.0", 5193 + "devlop": "^1.0.0", 5194 + "mdast-util-to-string": "^4.0.0", 5195 + "micromark": "^4.0.0", 5196 + "micromark-util-decode-numeric-character-reference": "^2.0.0", 5197 + "micromark-util-decode-string": "^2.0.0", 5198 + "micromark-util-normalize-identifier": "^2.0.0", 5199 + "micromark-util-symbol": "^2.0.0", 5200 + "micromark-util-types": "^2.0.0", 5201 + "unist-util-stringify-position": "^4.0.0" 5202 + }, 5203 + "funding": { 5204 + "type": "opencollective", 5205 + "url": "https://opencollective.com/unified" 5206 + } 5207 + }, 5208 + "node_modules/mdast-util-gfm": { 5209 + "version": "3.1.0", 5210 + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", 5211 + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", 5212 + "dependencies": { 5213 + "mdast-util-from-markdown": "^2.0.0", 5214 + "mdast-util-gfm-autolink-literal": "^2.0.0", 5215 + "mdast-util-gfm-footnote": "^2.0.0", 5216 + "mdast-util-gfm-strikethrough": "^2.0.0", 5217 + "mdast-util-gfm-table": "^2.0.0", 5218 + "mdast-util-gfm-task-list-item": "^2.0.0", 5219 + "mdast-util-to-markdown": "^2.0.0" 5220 + }, 5221 + "funding": { 5222 + "type": "opencollective", 5223 + "url": "https://opencollective.com/unified" 5224 + } 5225 + }, 5226 + "node_modules/mdast-util-gfm-autolink-literal": { 5227 + "version": "2.0.1", 5228 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", 5229 + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", 5230 + "dependencies": { 5231 + "@types/mdast": "^4.0.0", 5232 + "ccount": "^2.0.0", 5233 + "devlop": "^1.0.0", 5234 + "mdast-util-find-and-replace": "^3.0.0", 5235 + "micromark-util-character": "^2.0.0" 5236 + }, 5237 + "funding": { 5238 + "type": "opencollective", 5239 + "url": "https://opencollective.com/unified" 5240 + } 5241 + }, 5242 + "node_modules/mdast-util-gfm-footnote": { 5243 + "version": "2.1.0", 5244 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", 5245 + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", 5246 + "dependencies": { 5247 + "@types/mdast": "^4.0.0", 5248 + "devlop": "^1.1.0", 5249 + "mdast-util-from-markdown": "^2.0.0", 5250 + "mdast-util-to-markdown": "^2.0.0", 5251 + "micromark-util-normalize-identifier": "^2.0.0" 5252 + }, 5253 + "funding": { 5254 + "type": "opencollective", 5255 + "url": "https://opencollective.com/unified" 5256 + } 5257 + }, 5258 + "node_modules/mdast-util-gfm-strikethrough": { 5259 + "version": "2.0.0", 5260 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", 5261 + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", 5262 + "dependencies": { 5263 + "@types/mdast": "^4.0.0", 5264 + "mdast-util-from-markdown": "^2.0.0", 5265 + "mdast-util-to-markdown": "^2.0.0" 5266 + }, 5267 + "funding": { 5268 + "type": "opencollective", 5269 + "url": "https://opencollective.com/unified" 5270 + } 5271 + }, 5272 + "node_modules/mdast-util-gfm-table": { 5273 + "version": "2.0.0", 5274 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", 5275 + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", 5276 + "dependencies": { 5277 + "@types/mdast": "^4.0.0", 5278 + "devlop": "^1.0.0", 5279 + "markdown-table": "^3.0.0", 5280 + "mdast-util-from-markdown": "^2.0.0", 5281 + "mdast-util-to-markdown": "^2.0.0" 5282 + }, 5283 + "funding": { 5284 + "type": "opencollective", 5285 + "url": "https://opencollective.com/unified" 5286 + } 5287 + }, 5288 + "node_modules/mdast-util-gfm-task-list-item": { 5289 + "version": "2.0.0", 5290 + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", 5291 + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", 5292 + "dependencies": { 5293 + "@types/mdast": "^4.0.0", 5294 + "devlop": "^1.0.0", 5295 + "mdast-util-from-markdown": "^2.0.0", 5296 + "mdast-util-to-markdown": "^2.0.0" 5297 + }, 5298 + "funding": { 5299 + "type": "opencollective", 5300 + "url": "https://opencollective.com/unified" 5301 + } 5302 + }, 5303 + "node_modules/mdast-util-math": { 5304 + "version": "3.0.0", 5305 + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", 5306 + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", 5307 + "dependencies": { 5308 + "@types/hast": "^3.0.0", 5309 + "@types/mdast": "^4.0.0", 5310 + "devlop": "^1.0.0", 5311 + "longest-streak": "^3.0.0", 5312 + "mdast-util-from-markdown": "^2.0.0", 5313 + "mdast-util-to-markdown": "^2.1.0", 5314 + "unist-util-remove-position": "^5.0.0" 5315 + }, 5316 + "funding": { 5317 + "type": "opencollective", 5318 + "url": "https://opencollective.com/unified" 5319 + } 5320 + }, 5321 + "node_modules/mdast-util-mdx": { 5322 + "version": "3.0.0", 5323 + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", 5324 + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", 5325 + "dependencies": { 5326 + "mdast-util-from-markdown": "^2.0.0", 5327 + "mdast-util-mdx-expression": "^2.0.0", 5328 + "mdast-util-mdx-jsx": "^3.0.0", 5329 + "mdast-util-mdxjs-esm": "^2.0.0", 5330 + "mdast-util-to-markdown": "^2.0.0" 5331 + }, 5332 + "funding": { 5333 + "type": "opencollective", 5334 + "url": "https://opencollective.com/unified" 5335 + } 5336 + }, 5337 + "node_modules/mdast-util-mdx-expression": { 5338 + "version": "2.0.1", 5339 + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", 5340 + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", 5341 + "dependencies": { 5342 + "@types/estree-jsx": "^1.0.0", 5343 + "@types/hast": "^3.0.0", 5344 + "@types/mdast": "^4.0.0", 5345 + "devlop": "^1.0.0", 5346 + "mdast-util-from-markdown": "^2.0.0", 5347 + "mdast-util-to-markdown": "^2.0.0" 5348 + }, 5349 + "funding": { 5350 + "type": "opencollective", 5351 + "url": "https://opencollective.com/unified" 5352 + } 5353 + }, 5354 + "node_modules/mdast-util-mdx-jsx": { 5355 + "version": "3.2.0", 5356 + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", 5357 + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", 5358 + "dependencies": { 5359 + "@types/estree-jsx": "^1.0.0", 5360 + "@types/hast": "^3.0.0", 5361 + "@types/mdast": "^4.0.0", 5362 + "@types/unist": "^3.0.0", 5363 + "ccount": "^2.0.0", 5364 + "devlop": "^1.1.0", 5365 + "mdast-util-from-markdown": "^2.0.0", 5366 + "mdast-util-to-markdown": "^2.0.0", 5367 + "parse-entities": "^4.0.0", 5368 + "stringify-entities": "^4.0.0", 5369 + "unist-util-stringify-position": "^4.0.0", 5370 + "vfile-message": "^4.0.0" 5371 + }, 5372 + "funding": { 5373 + "type": "opencollective", 5374 + "url": "https://opencollective.com/unified" 5375 + } 5376 + }, 5377 + "node_modules/mdast-util-mdxjs-esm": { 5378 + "version": "2.0.1", 5379 + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", 5380 + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", 5381 + "dependencies": { 5382 + "@types/estree-jsx": "^1.0.0", 5383 + "@types/hast": "^3.0.0", 5384 + "@types/mdast": "^4.0.0", 5385 + "devlop": "^1.0.0", 5386 + "mdast-util-from-markdown": "^2.0.0", 5387 + "mdast-util-to-markdown": "^2.0.0" 5388 + }, 5389 + "funding": { 5390 + "type": "opencollective", 5391 + "url": "https://opencollective.com/unified" 5392 + } 5393 + }, 5394 + "node_modules/mdast-util-phrasing": { 5395 + "version": "4.1.0", 5396 + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", 5397 + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", 5398 + "dependencies": { 5399 + "@types/mdast": "^4.0.0", 5400 + "unist-util-is": "^6.0.0" 5401 + }, 5402 + "funding": { 5403 + "type": "opencollective", 5404 + "url": "https://opencollective.com/unified" 5405 + } 5406 + }, 5407 + "node_modules/mdast-util-to-hast": { 5408 + "version": "13.2.0", 5409 + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", 5410 + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", 5411 + "dependencies": { 5412 + "@types/hast": "^3.0.0", 5413 + "@types/mdast": "^4.0.0", 5414 + "@ungap/structured-clone": "^1.0.0", 5415 + "devlop": "^1.0.0", 5416 + "micromark-util-sanitize-uri": "^2.0.0", 5417 + "trim-lines": "^3.0.0", 5418 + "unist-util-position": "^5.0.0", 5419 + "unist-util-visit": "^5.0.0", 5420 + "vfile": "^6.0.0" 5421 + }, 5422 + "funding": { 5423 + "type": "opencollective", 5424 + "url": "https://opencollective.com/unified" 5425 + } 5426 + }, 5427 + "node_modules/mdast-util-to-markdown": { 5428 + "version": "2.1.2", 5429 + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", 5430 + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", 5431 + "dependencies": { 5432 + "@types/mdast": "^4.0.0", 5433 + "@types/unist": "^3.0.0", 5434 + "longest-streak": "^3.0.0", 5435 + "mdast-util-phrasing": "^4.0.0", 5436 + "mdast-util-to-string": "^4.0.0", 5437 + "micromark-util-classify-character": "^2.0.0", 5438 + "micromark-util-decode-string": "^2.0.0", 5439 + "unist-util-visit": "^5.0.0", 5440 + "zwitch": "^2.0.0" 5441 + }, 5442 + "funding": { 5443 + "type": "opencollective", 5444 + "url": "https://opencollective.com/unified" 5445 + } 5446 + }, 5447 + "node_modules/mdast-util-to-string": { 5448 + "version": "4.0.0", 5449 + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", 5450 + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", 5451 + "dependencies": { 5452 + "@types/mdast": "^4.0.0" 5453 + }, 5454 + "funding": { 5455 + "type": "opencollective", 5456 + "url": "https://opencollective.com/unified" 5457 + } 5458 + }, 5459 + "node_modules/merge2": { 5460 + "version": "1.4.1", 5461 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 5462 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 5463 + "engines": { 5464 + "node": ">= 8" 5465 + } 5466 + }, 5467 + "node_modules/mhchemparser": { 5468 + "version": "4.2.1", 5469 + "resolved": "https://registry.npmjs.org/mhchemparser/-/mhchemparser-4.2.1.tgz", 5470 + "integrity": "sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==" 5471 + }, 5472 + "node_modules/micromark": { 5473 + "version": "4.0.1", 5474 + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", 5475 + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", 5476 + "funding": [ 5477 + { 5478 + "type": "GitHub Sponsors", 5479 + "url": "https://github.com/sponsors/unifiedjs" 5480 + }, 5481 + { 5482 + "type": "OpenCollective", 5483 + "url": "https://opencollective.com/unified" 5484 + } 5485 + ], 5486 + "dependencies": { 5487 + "@types/debug": "^4.0.0", 5488 + "debug": "^4.0.0", 5489 + "decode-named-character-reference": "^1.0.0", 5490 + "devlop": "^1.0.0", 5491 + "micromark-core-commonmark": "^2.0.0", 5492 + "micromark-factory-space": "^2.0.0", 5493 + "micromark-util-character": "^2.0.0", 5494 + "micromark-util-chunked": "^2.0.0", 5495 + "micromark-util-combine-extensions": "^2.0.0", 5496 + "micromark-util-decode-numeric-character-reference": "^2.0.0", 5497 + "micromark-util-encode": "^2.0.0", 5498 + "micromark-util-normalize-identifier": "^2.0.0", 5499 + "micromark-util-resolve-all": "^2.0.0", 5500 + "micromark-util-sanitize-uri": "^2.0.0", 5501 + "micromark-util-subtokenize": "^2.0.0", 5502 + "micromark-util-symbol": "^2.0.0", 5503 + "micromark-util-types": "^2.0.0" 5504 + } 5505 + }, 5506 + "node_modules/micromark-core-commonmark": { 5507 + "version": "2.0.2", 5508 + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", 5509 + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", 5510 + "funding": [ 5511 + { 5512 + "type": "GitHub Sponsors", 5513 + "url": "https://github.com/sponsors/unifiedjs" 5514 + }, 5515 + { 5516 + "type": "OpenCollective", 5517 + "url": "https://opencollective.com/unified" 5518 + } 5519 + ], 5520 + "dependencies": { 5521 + "decode-named-character-reference": "^1.0.0", 5522 + "devlop": "^1.0.0", 5523 + "micromark-factory-destination": "^2.0.0", 5524 + "micromark-factory-label": "^2.0.0", 5525 + "micromark-factory-space": "^2.0.0", 5526 + "micromark-factory-title": "^2.0.0", 5527 + "micromark-factory-whitespace": "^2.0.0", 5528 + "micromark-util-character": "^2.0.0", 5529 + "micromark-util-chunked": "^2.0.0", 5530 + "micromark-util-classify-character": "^2.0.0", 5531 + "micromark-util-html-tag-name": "^2.0.0", 5532 + "micromark-util-normalize-identifier": "^2.0.0", 5533 + "micromark-util-resolve-all": "^2.0.0", 5534 + "micromark-util-subtokenize": "^2.0.0", 5535 + "micromark-util-symbol": "^2.0.0", 5536 + "micromark-util-types": "^2.0.0" 5537 + } 5538 + }, 5539 + "node_modules/micromark-extension-directive": { 5540 + "version": "3.0.2", 5541 + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", 5542 + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", 5543 + "dependencies": { 5544 + "devlop": "^1.0.0", 5545 + "micromark-factory-space": "^2.0.0", 5546 + "micromark-factory-whitespace": "^2.0.0", 5547 + "micromark-util-character": "^2.0.0", 5548 + "micromark-util-symbol": "^2.0.0", 5549 + "micromark-util-types": "^2.0.0", 5550 + "parse-entities": "^4.0.0" 5551 + }, 5552 + "funding": { 5553 + "type": "opencollective", 5554 + "url": "https://opencollective.com/unified" 5555 + } 5556 + }, 5557 + "node_modules/micromark-extension-gfm": { 5558 + "version": "3.0.0", 5559 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", 5560 + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", 5561 + "dependencies": { 5562 + "micromark-extension-gfm-autolink-literal": "^2.0.0", 5563 + "micromark-extension-gfm-footnote": "^2.0.0", 5564 + "micromark-extension-gfm-strikethrough": "^2.0.0", 5565 + "micromark-extension-gfm-table": "^2.0.0", 5566 + "micromark-extension-gfm-tagfilter": "^2.0.0", 5567 + "micromark-extension-gfm-task-list-item": "^2.0.0", 5568 + "micromark-util-combine-extensions": "^2.0.0", 5569 + "micromark-util-types": "^2.0.0" 5570 + }, 5571 + "funding": { 5572 + "type": "opencollective", 5573 + "url": "https://opencollective.com/unified" 5574 + } 5575 + }, 5576 + "node_modules/micromark-extension-gfm-autolink-literal": { 5577 + "version": "2.1.0", 5578 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", 5579 + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", 5580 + "dependencies": { 5581 + "micromark-util-character": "^2.0.0", 5582 + "micromark-util-sanitize-uri": "^2.0.0", 5583 + "micromark-util-symbol": "^2.0.0", 5584 + "micromark-util-types": "^2.0.0" 5585 + }, 5586 + "funding": { 5587 + "type": "opencollective", 5588 + "url": "https://opencollective.com/unified" 5589 + } 5590 + }, 5591 + "node_modules/micromark-extension-gfm-footnote": { 5592 + "version": "2.1.0", 5593 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", 5594 + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", 5595 + "dependencies": { 5596 + "devlop": "^1.0.0", 5597 + "micromark-core-commonmark": "^2.0.0", 5598 + "micromark-factory-space": "^2.0.0", 5599 + "micromark-util-character": "^2.0.0", 5600 + "micromark-util-normalize-identifier": "^2.0.0", 5601 + "micromark-util-sanitize-uri": "^2.0.0", 5602 + "micromark-util-symbol": "^2.0.0", 5603 + "micromark-util-types": "^2.0.0" 5604 + }, 5605 + "funding": { 5606 + "type": "opencollective", 5607 + "url": "https://opencollective.com/unified" 5608 + } 5609 + }, 5610 + "node_modules/micromark-extension-gfm-strikethrough": { 5611 + "version": "2.1.0", 5612 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", 5613 + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", 5614 + "dependencies": { 5615 + "devlop": "^1.0.0", 5616 + "micromark-util-chunked": "^2.0.0", 5617 + "micromark-util-classify-character": "^2.0.0", 5618 + "micromark-util-resolve-all": "^2.0.0", 5619 + "micromark-util-symbol": "^2.0.0", 5620 + "micromark-util-types": "^2.0.0" 5621 + }, 5622 + "funding": { 5623 + "type": "opencollective", 5624 + "url": "https://opencollective.com/unified" 5625 + } 5626 + }, 5627 + "node_modules/micromark-extension-gfm-table": { 5628 + "version": "2.1.1", 5629 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", 5630 + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", 5631 + "dependencies": { 5632 + "devlop": "^1.0.0", 5633 + "micromark-factory-space": "^2.0.0", 5634 + "micromark-util-character": "^2.0.0", 5635 + "micromark-util-symbol": "^2.0.0", 5636 + "micromark-util-types": "^2.0.0" 5637 + }, 5638 + "funding": { 5639 + "type": "opencollective", 5640 + "url": "https://opencollective.com/unified" 5641 + } 5642 + }, 5643 + "node_modules/micromark-extension-gfm-tagfilter": { 5644 + "version": "2.0.0", 5645 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", 5646 + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", 5647 + "dependencies": { 5648 + "micromark-util-types": "^2.0.0" 5649 + }, 5650 + "funding": { 5651 + "type": "opencollective", 5652 + "url": "https://opencollective.com/unified" 5653 + } 5654 + }, 5655 + "node_modules/micromark-extension-gfm-task-list-item": { 5656 + "version": "2.1.0", 5657 + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", 5658 + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", 5659 + "dependencies": { 5660 + "devlop": "^1.0.0", 5661 + "micromark-factory-space": "^2.0.0", 5662 + "micromark-util-character": "^2.0.0", 5663 + "micromark-util-symbol": "^2.0.0", 5664 + "micromark-util-types": "^2.0.0" 5665 + }, 5666 + "funding": { 5667 + "type": "opencollective", 5668 + "url": "https://opencollective.com/unified" 5669 + } 5670 + }, 5671 + "node_modules/micromark-extension-math": { 5672 + "version": "3.1.0", 5673 + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", 5674 + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", 5675 + "dependencies": { 5676 + "@types/katex": "^0.16.0", 5677 + "devlop": "^1.0.0", 5678 + "katex": "^0.16.0", 5679 + "micromark-factory-space": "^2.0.0", 5680 + "micromark-util-character": "^2.0.0", 5681 + "micromark-util-symbol": "^2.0.0", 5682 + "micromark-util-types": "^2.0.0" 5683 + }, 5684 + "funding": { 5685 + "type": "opencollective", 5686 + "url": "https://opencollective.com/unified" 5687 + } 5688 + }, 5689 + "node_modules/micromark-extension-mdx-expression": { 5690 + "version": "3.0.0", 5691 + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", 5692 + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", 5693 + "funding": [ 5694 + { 5695 + "type": "GitHub Sponsors", 5696 + "url": "https://github.com/sponsors/unifiedjs" 5697 + }, 5698 + { 5699 + "type": "OpenCollective", 5700 + "url": "https://opencollective.com/unified" 5701 + } 5702 + ], 5703 + "dependencies": { 5704 + "@types/estree": "^1.0.0", 5705 + "devlop": "^1.0.0", 5706 + "micromark-factory-mdx-expression": "^2.0.0", 5707 + "micromark-factory-space": "^2.0.0", 5708 + "micromark-util-character": "^2.0.0", 5709 + "micromark-util-events-to-acorn": "^2.0.0", 5710 + "micromark-util-symbol": "^2.0.0", 5711 + "micromark-util-types": "^2.0.0" 5712 + } 5713 + }, 5714 + "node_modules/micromark-extension-mdx-jsx": { 5715 + "version": "3.0.1", 5716 + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", 5717 + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", 5718 + "dependencies": { 5719 + "@types/acorn": "^4.0.0", 5720 + "@types/estree": "^1.0.0", 5721 + "devlop": "^1.0.0", 5722 + "estree-util-is-identifier-name": "^3.0.0", 5723 + "micromark-factory-mdx-expression": "^2.0.0", 5724 + "micromark-factory-space": "^2.0.0", 5725 + "micromark-util-character": "^2.0.0", 5726 + "micromark-util-events-to-acorn": "^2.0.0", 5727 + "micromark-util-symbol": "^2.0.0", 5728 + "micromark-util-types": "^2.0.0", 5729 + "vfile-message": "^4.0.0" 5730 + }, 5731 + "funding": { 5732 + "type": "opencollective", 5733 + "url": "https://opencollective.com/unified" 5734 + } 5735 + }, 5736 + "node_modules/micromark-extension-mdx-md": { 5737 + "version": "2.0.0", 5738 + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", 5739 + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", 5740 + "dependencies": { 5741 + "micromark-util-types": "^2.0.0" 5742 + }, 5743 + "funding": { 5744 + "type": "opencollective", 5745 + "url": "https://opencollective.com/unified" 5746 + } 5747 + }, 5748 + "node_modules/micromark-extension-mdxjs": { 5749 + "version": "3.0.0", 5750 + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", 5751 + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", 5752 + "dependencies": { 5753 + "acorn": "^8.0.0", 5754 + "acorn-jsx": "^5.0.0", 5755 + "micromark-extension-mdx-expression": "^3.0.0", 5756 + "micromark-extension-mdx-jsx": "^3.0.0", 5757 + "micromark-extension-mdx-md": "^2.0.0", 5758 + "micromark-extension-mdxjs-esm": "^3.0.0", 5759 + "micromark-util-combine-extensions": "^2.0.0", 5760 + "micromark-util-types": "^2.0.0" 5761 + }, 5762 + "funding": { 5763 + "type": "opencollective", 5764 + "url": "https://opencollective.com/unified" 5765 + } 5766 + }, 5767 + "node_modules/micromark-extension-mdxjs-esm": { 5768 + "version": "3.0.0", 5769 + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", 5770 + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", 5771 + "dependencies": { 5772 + "@types/estree": "^1.0.0", 5773 + "devlop": "^1.0.0", 5774 + "micromark-core-commonmark": "^2.0.0", 5775 + "micromark-util-character": "^2.0.0", 5776 + "micromark-util-events-to-acorn": "^2.0.0", 5777 + "micromark-util-symbol": "^2.0.0", 5778 + "micromark-util-types": "^2.0.0", 5779 + "unist-util-position-from-estree": "^2.0.0", 5780 + "vfile-message": "^4.0.0" 5781 + }, 5782 + "funding": { 5783 + "type": "opencollective", 5784 + "url": "https://opencollective.com/unified" 5785 + } 5786 + }, 5787 + "node_modules/micromark-factory-destination": { 5788 + "version": "2.0.1", 5789 + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", 5790 + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", 5791 + "funding": [ 5792 + { 5793 + "type": "GitHub Sponsors", 5794 + "url": "https://github.com/sponsors/unifiedjs" 5795 + }, 5796 + { 5797 + "type": "OpenCollective", 5798 + "url": "https://opencollective.com/unified" 5799 + } 5800 + ], 5801 + "dependencies": { 5802 + "micromark-util-character": "^2.0.0", 5803 + "micromark-util-symbol": "^2.0.0", 5804 + "micromark-util-types": "^2.0.0" 5805 + } 5806 + }, 5807 + "node_modules/micromark-factory-label": { 5808 + "version": "2.0.1", 5809 + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", 5810 + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", 5811 + "funding": [ 5812 + { 5813 + "type": "GitHub Sponsors", 5814 + "url": "https://github.com/sponsors/unifiedjs" 5815 + }, 5816 + { 5817 + "type": "OpenCollective", 5818 + "url": "https://opencollective.com/unified" 5819 + } 5820 + ], 5821 + "dependencies": { 5822 + "devlop": "^1.0.0", 5823 + "micromark-util-character": "^2.0.0", 5824 + "micromark-util-symbol": "^2.0.0", 5825 + "micromark-util-types": "^2.0.0" 5826 + } 5827 + }, 5828 + "node_modules/micromark-factory-mdx-expression": { 5829 + "version": "2.0.2", 5830 + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", 5831 + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", 5832 + "funding": [ 5833 + { 5834 + "type": "GitHub Sponsors", 5835 + "url": "https://github.com/sponsors/unifiedjs" 5836 + }, 5837 + { 5838 + "type": "OpenCollective", 5839 + "url": "https://opencollective.com/unified" 5840 + } 5841 + ], 5842 + "dependencies": { 5843 + "@types/estree": "^1.0.0", 5844 + "devlop": "^1.0.0", 5845 + "micromark-factory-space": "^2.0.0", 5846 + "micromark-util-character": "^2.0.0", 5847 + "micromark-util-events-to-acorn": "^2.0.0", 5848 + "micromark-util-symbol": "^2.0.0", 5849 + "micromark-util-types": "^2.0.0", 5850 + "unist-util-position-from-estree": "^2.0.0", 5851 + "vfile-message": "^4.0.0" 5852 + } 5853 + }, 5854 + "node_modules/micromark-factory-space": { 5855 + "version": "2.0.1", 5856 + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", 5857 + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", 5858 + "funding": [ 5859 + { 5860 + "type": "GitHub Sponsors", 5861 + "url": "https://github.com/sponsors/unifiedjs" 5862 + }, 5863 + { 5864 + "type": "OpenCollective", 5865 + "url": "https://opencollective.com/unified" 5866 + } 5867 + ], 5868 + "dependencies": { 5869 + "micromark-util-character": "^2.0.0", 5870 + "micromark-util-types": "^2.0.0" 5871 + } 5872 + }, 5873 + "node_modules/micromark-factory-title": { 5874 + "version": "2.0.1", 5875 + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", 5876 + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", 5877 + "funding": [ 5878 + { 5879 + "type": "GitHub Sponsors", 5880 + "url": "https://github.com/sponsors/unifiedjs" 5881 + }, 5882 + { 5883 + "type": "OpenCollective", 5884 + "url": "https://opencollective.com/unified" 5885 + } 5886 + ], 5887 + "dependencies": { 5888 + "micromark-factory-space": "^2.0.0", 5889 + "micromark-util-character": "^2.0.0", 5890 + "micromark-util-symbol": "^2.0.0", 5891 + "micromark-util-types": "^2.0.0" 5892 + } 5893 + }, 5894 + "node_modules/micromark-factory-whitespace": { 5895 + "version": "2.0.1", 5896 + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", 5897 + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", 5898 + "funding": [ 5899 + { 5900 + "type": "GitHub Sponsors", 5901 + "url": "https://github.com/sponsors/unifiedjs" 5902 + }, 5903 + { 5904 + "type": "OpenCollective", 5905 + "url": "https://opencollective.com/unified" 5906 + } 5907 + ], 5908 + "dependencies": { 5909 + "micromark-factory-space": "^2.0.0", 5910 + "micromark-util-character": "^2.0.0", 5911 + "micromark-util-symbol": "^2.0.0", 5912 + "micromark-util-types": "^2.0.0" 5913 + } 5914 + }, 5915 + "node_modules/micromark-util-character": { 5916 + "version": "2.1.1", 5917 + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", 5918 + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", 5919 + "funding": [ 5920 + { 5921 + "type": "GitHub Sponsors", 5922 + "url": "https://github.com/sponsors/unifiedjs" 5923 + }, 5924 + { 5925 + "type": "OpenCollective", 5926 + "url": "https://opencollective.com/unified" 5927 + } 5928 + ], 5929 + "dependencies": { 5930 + "micromark-util-symbol": "^2.0.0", 5931 + "micromark-util-types": "^2.0.0" 5932 + } 5933 + }, 5934 + "node_modules/micromark-util-chunked": { 5935 + "version": "2.0.1", 5936 + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", 5937 + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", 5938 + "funding": [ 5939 + { 5940 + "type": "GitHub Sponsors", 5941 + "url": "https://github.com/sponsors/unifiedjs" 5942 + }, 5943 + { 5944 + "type": "OpenCollective", 5945 + "url": "https://opencollective.com/unified" 5946 + } 5947 + ], 5948 + "dependencies": { 5949 + "micromark-util-symbol": "^2.0.0" 5950 + } 5951 + }, 5952 + "node_modules/micromark-util-classify-character": { 5953 + "version": "2.0.1", 5954 + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", 5955 + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", 5956 + "funding": [ 5957 + { 5958 + "type": "GitHub Sponsors", 5959 + "url": "https://github.com/sponsors/unifiedjs" 5960 + }, 5961 + { 5962 + "type": "OpenCollective", 5963 + "url": "https://opencollective.com/unified" 5964 + } 5965 + ], 5966 + "dependencies": { 5967 + "micromark-util-character": "^2.0.0", 5968 + "micromark-util-symbol": "^2.0.0", 5969 + "micromark-util-types": "^2.0.0" 5970 + } 5971 + }, 5972 + "node_modules/micromark-util-combine-extensions": { 5973 + "version": "2.0.1", 5974 + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", 5975 + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", 5976 + "funding": [ 5977 + { 5978 + "type": "GitHub Sponsors", 5979 + "url": "https://github.com/sponsors/unifiedjs" 5980 + }, 5981 + { 5982 + "type": "OpenCollective", 5983 + "url": "https://opencollective.com/unified" 5984 + } 5985 + ], 5986 + "dependencies": { 5987 + "micromark-util-chunked": "^2.0.0", 5988 + "micromark-util-types": "^2.0.0" 5989 + } 5990 + }, 5991 + "node_modules/micromark-util-decode-numeric-character-reference": { 5992 + "version": "2.0.2", 5993 + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", 5994 + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", 5995 + "funding": [ 5996 + { 5997 + "type": "GitHub Sponsors", 5998 + "url": "https://github.com/sponsors/unifiedjs" 5999 + }, 6000 + { 6001 + "type": "OpenCollective", 6002 + "url": "https://opencollective.com/unified" 6003 + } 6004 + ], 6005 + "dependencies": { 6006 + "micromark-util-symbol": "^2.0.0" 6007 + } 6008 + }, 6009 + "node_modules/micromark-util-decode-string": { 6010 + "version": "2.0.1", 6011 + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", 6012 + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", 6013 + "funding": [ 6014 + { 6015 + "type": "GitHub Sponsors", 6016 + "url": "https://github.com/sponsors/unifiedjs" 6017 + }, 6018 + { 6019 + "type": "OpenCollective", 6020 + "url": "https://opencollective.com/unified" 6021 + } 6022 + ], 6023 + "dependencies": { 6024 + "decode-named-character-reference": "^1.0.0", 6025 + "micromark-util-character": "^2.0.0", 6026 + "micromark-util-decode-numeric-character-reference": "^2.0.0", 6027 + "micromark-util-symbol": "^2.0.0" 6028 + } 6029 + }, 6030 + "node_modules/micromark-util-encode": { 6031 + "version": "2.0.1", 6032 + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", 6033 + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", 6034 + "funding": [ 6035 + { 6036 + "type": "GitHub Sponsors", 6037 + "url": "https://github.com/sponsors/unifiedjs" 6038 + }, 6039 + { 6040 + "type": "OpenCollective", 6041 + "url": "https://opencollective.com/unified" 6042 + } 6043 + ] 6044 + }, 6045 + "node_modules/micromark-util-events-to-acorn": { 6046 + "version": "2.0.2", 6047 + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", 6048 + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", 6049 + "funding": [ 6050 + { 6051 + "type": "GitHub Sponsors", 6052 + "url": "https://github.com/sponsors/unifiedjs" 6053 + }, 6054 + { 6055 + "type": "OpenCollective", 6056 + "url": "https://opencollective.com/unified" 6057 + } 6058 + ], 6059 + "dependencies": { 6060 + "@types/acorn": "^4.0.0", 6061 + "@types/estree": "^1.0.0", 6062 + "@types/unist": "^3.0.0", 6063 + "devlop": "^1.0.0", 6064 + "estree-util-visit": "^2.0.0", 6065 + "micromark-util-symbol": "^2.0.0", 6066 + "micromark-util-types": "^2.0.0", 6067 + "vfile-message": "^4.0.0" 6068 + } 6069 + }, 6070 + "node_modules/micromark-util-html-tag-name": { 6071 + "version": "2.0.1", 6072 + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", 6073 + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", 6074 + "funding": [ 6075 + { 6076 + "type": "GitHub Sponsors", 6077 + "url": "https://github.com/sponsors/unifiedjs" 6078 + }, 6079 + { 6080 + "type": "OpenCollective", 6081 + "url": "https://opencollective.com/unified" 6082 + } 6083 + ] 6084 + }, 6085 + "node_modules/micromark-util-normalize-identifier": { 6086 + "version": "2.0.1", 6087 + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", 6088 + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", 6089 + "funding": [ 6090 + { 6091 + "type": "GitHub Sponsors", 6092 + "url": "https://github.com/sponsors/unifiedjs" 6093 + }, 6094 + { 6095 + "type": "OpenCollective", 6096 + "url": "https://opencollective.com/unified" 6097 + } 6098 + ], 6099 + "dependencies": { 6100 + "micromark-util-symbol": "^2.0.0" 6101 + } 6102 + }, 6103 + "node_modules/micromark-util-resolve-all": { 6104 + "version": "2.0.1", 6105 + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", 6106 + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", 6107 + "funding": [ 6108 + { 6109 + "type": "GitHub Sponsors", 6110 + "url": "https://github.com/sponsors/unifiedjs" 6111 + }, 6112 + { 6113 + "type": "OpenCollective", 6114 + "url": "https://opencollective.com/unified" 6115 + } 6116 + ], 6117 + "dependencies": { 6118 + "micromark-util-types": "^2.0.0" 6119 + } 6120 + }, 6121 + "node_modules/micromark-util-sanitize-uri": { 6122 + "version": "2.0.1", 6123 + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", 6124 + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", 6125 + "funding": [ 6126 + { 6127 + "type": "GitHub Sponsors", 6128 + "url": "https://github.com/sponsors/unifiedjs" 6129 + }, 6130 + { 6131 + "type": "OpenCollective", 6132 + "url": "https://opencollective.com/unified" 6133 + } 6134 + ], 6135 + "dependencies": { 6136 + "micromark-util-character": "^2.0.0", 6137 + "micromark-util-encode": "^2.0.0", 6138 + "micromark-util-symbol": "^2.0.0" 6139 + } 6140 + }, 6141 + "node_modules/micromark-util-subtokenize": { 6142 + "version": "2.0.4", 6143 + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", 6144 + "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", 6145 + "funding": [ 6146 + { 6147 + "type": "GitHub Sponsors", 6148 + "url": "https://github.com/sponsors/unifiedjs" 6149 + }, 6150 + { 6151 + "type": "OpenCollective", 6152 + "url": "https://opencollective.com/unified" 6153 + } 6154 + ], 6155 + "dependencies": { 6156 + "devlop": "^1.0.0", 6157 + "micromark-util-chunked": "^2.0.0", 6158 + "micromark-util-symbol": "^2.0.0", 6159 + "micromark-util-types": "^2.0.0" 6160 + } 6161 + }, 6162 + "node_modules/micromark-util-symbol": { 6163 + "version": "2.0.1", 6164 + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", 6165 + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", 6166 + "funding": [ 6167 + { 6168 + "type": "GitHub Sponsors", 6169 + "url": "https://github.com/sponsors/unifiedjs" 6170 + }, 6171 + { 6172 + "type": "OpenCollective", 6173 + "url": "https://opencollective.com/unified" 6174 + } 6175 + ] 6176 + }, 6177 + "node_modules/micromark-util-types": { 6178 + "version": "2.0.1", 6179 + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", 6180 + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", 6181 + "funding": [ 6182 + { 6183 + "type": "GitHub Sponsors", 6184 + "url": "https://github.com/sponsors/unifiedjs" 6185 + }, 6186 + { 6187 + "type": "OpenCollective", 6188 + "url": "https://opencollective.com/unified" 6189 + } 6190 + ] 6191 + }, 6192 + "node_modules/micromatch": { 6193 + "version": "4.0.8", 6194 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 6195 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 6196 + "dependencies": { 6197 + "braces": "^3.0.3", 6198 + "picomatch": "^2.3.1" 6199 + }, 6200 + "engines": { 6201 + "node": ">=8.6" 6202 + } 6203 + }, 6204 + "node_modules/micromatch/node_modules/picomatch": { 6205 + "version": "2.3.1", 6206 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 6207 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 6208 + "engines": { 6209 + "node": ">=8.6" 6210 + }, 6211 + "funding": { 6212 + "url": "https://github.com/sponsors/jonschlinkert" 6213 + } 6214 + }, 6215 + "node_modules/mime-db": { 6216 + "version": "1.53.0", 6217 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", 6218 + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", 6219 + "engines": { 6220 + "node": ">= 0.6" 6221 + } 6222 + }, 6223 + "node_modules/mini-svg-data-uri": { 6224 + "version": "1.4.4", 6225 + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", 6226 + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", 6227 + "bin": { 6228 + "mini-svg-data-uri": "cli.js" 6229 + } 6230 + }, 6231 + "node_modules/minimatch": { 6232 + "version": "9.0.5", 6233 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 6234 + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 6235 + "dependencies": { 6236 + "brace-expansion": "^2.0.1" 6237 + }, 6238 + "engines": { 6239 + "node": ">=16 || 14 >=14.17" 6240 + }, 6241 + "funding": { 6242 + "url": "https://github.com/sponsors/isaacs" 6243 + } 6244 + }, 6245 + "node_modules/minipass": { 6246 + "version": "7.1.2", 6247 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 6248 + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 6249 + "engines": { 6250 + "node": ">=16 || 14 >=14.17" 6251 + } 6252 + }, 6253 + "node_modules/mj-context-menu": { 6254 + "version": "0.6.1", 6255 + "resolved": "https://registry.npmjs.org/mj-context-menu/-/mj-context-menu-0.6.1.tgz", 6256 + "integrity": "sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==" 6257 + }, 6258 + "node_modules/mrmime": { 6259 + "version": "2.0.1", 6260 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 6261 + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 6262 + "engines": { 6263 + "node": ">=10" 6264 + } 6265 + }, 6266 + "node_modules/ms": { 6267 + "version": "2.1.3", 6268 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 6269 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 6270 + }, 6271 + "node_modules/muggle-string": { 6272 + "version": "0.4.1", 6273 + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", 6274 + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==" 6275 + }, 6276 + "node_modules/multiformats": { 6277 + "version": "9.9.0", 6278 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 6279 + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" 6280 + }, 6281 + "node_modules/mz": { 6282 + "version": "2.7.0", 6283 + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 6284 + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 6285 + "dependencies": { 6286 + "any-promise": "^1.0.0", 6287 + "object-assign": "^4.0.1", 6288 + "thenify-all": "^1.0.0" 6289 + } 6290 + }, 6291 + "node_modules/nanoid": { 6292 + "version": "3.3.8", 6293 + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", 6294 + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", 6295 + "funding": [ 6296 + { 6297 + "type": "github", 6298 + "url": "https://github.com/sponsors/ai" 6299 + } 6300 + ], 6301 + "bin": { 6302 + "nanoid": "bin/nanoid.cjs" 6303 + }, 6304 + "engines": { 6305 + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 6306 + } 6307 + }, 6308 + "node_modules/neotraverse": { 6309 + "version": "0.6.18", 6310 + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", 6311 + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", 6312 + "engines": { 6313 + "node": ">= 10" 6314 + } 6315 + }, 6316 + "node_modules/next-tick": { 6317 + "version": "1.1.0", 6318 + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", 6319 + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" 6320 + }, 6321 + "node_modules/nlcst-to-string": { 6322 + "version": "4.0.0", 6323 + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", 6324 + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", 6325 + "dependencies": { 6326 + "@types/nlcst": "^2.0.0" 6327 + }, 6328 + "funding": { 6329 + "type": "opencollective", 6330 + "url": "https://opencollective.com/unified" 6331 + } 6332 + }, 6333 + "node_modules/no-case": { 6334 + "version": "3.0.4", 6335 + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", 6336 + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", 6337 + "dependencies": { 6338 + "lower-case": "^2.0.2", 6339 + "tslib": "^2.0.3" 6340 + } 6341 + }, 6342 + "node_modules/node-fetch-native": { 6343 + "version": "1.6.6", 6344 + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", 6345 + "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==" 6346 + }, 6347 + "node_modules/node-mock-http": { 6348 + "version": "1.0.0", 6349 + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", 6350 + "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==" 6351 + }, 6352 + "node_modules/node-releases": { 6353 + "version": "2.0.19", 6354 + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", 6355 + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" 6356 + }, 6357 + "node_modules/normalize-path": { 6358 + "version": "3.0.0", 6359 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 6360 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 6361 + "engines": { 6362 + "node": ">=0.10.0" 6363 + } 6364 + }, 6365 + "node_modules/normalize-range": { 6366 + "version": "0.1.2", 6367 + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 6368 + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 6369 + "engines": { 6370 + "node": ">=0.10.0" 6371 + } 6372 + }, 6373 + "node_modules/nth-check": { 6374 + "version": "2.1.1", 6375 + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", 6376 + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", 6377 + "dependencies": { 6378 + "boolbase": "^1.0.0" 6379 + }, 6380 + "funding": { 6381 + "url": "https://github.com/fb55/nth-check?sponsor=1" 6382 + } 6383 + }, 6384 + "node_modules/object-assign": { 6385 + "version": "4.1.1", 6386 + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 6387 + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 6388 + "engines": { 6389 + "node": ">=0.10.0" 6390 + } 6391 + }, 6392 + "node_modules/object-hash": { 6393 + "version": "3.0.0", 6394 + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 6395 + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 6396 + "engines": { 6397 + "node": ">= 6" 6398 + } 6399 + }, 6400 + "node_modules/ofetch": { 6401 + "version": "1.4.1", 6402 + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", 6403 + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", 6404 + "dependencies": { 6405 + "destr": "^2.0.3", 6406 + "node-fetch-native": "^1.6.4", 6407 + "ufo": "^1.5.4" 6408 + } 6409 + }, 6410 + "node_modules/ohash": { 6411 + "version": "1.1.4", 6412 + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz", 6413 + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==" 6414 + }, 6415 + "node_modules/oniguruma-to-es": { 6416 + "version": "2.3.0", 6417 + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz", 6418 + "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==", 6419 + "dependencies": { 6420 + "emoji-regex-xs": "^1.0.0", 6421 + "regex": "^5.1.1", 6422 + "regex-recursion": "^5.1.1" 6423 + } 6424 + }, 6425 + "node_modules/outvariant": { 6426 + "version": "1.4.0", 6427 + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", 6428 + "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==" 6429 + }, 6430 + "node_modules/p-limit": { 6431 + "version": "6.2.0", 6432 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", 6433 + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", 6434 + "dependencies": { 6435 + "yocto-queue": "^1.1.1" 6436 + }, 6437 + "engines": { 6438 + "node": ">=18" 6439 + }, 6440 + "funding": { 6441 + "url": "https://github.com/sponsors/sindresorhus" 6442 + } 6443 + }, 6444 + "node_modules/p-locate": { 6445 + "version": "4.1.0", 6446 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 6447 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 6448 + "dependencies": { 6449 + "p-limit": "^2.2.0" 6450 + }, 6451 + "engines": { 6452 + "node": ">=8" 6453 + } 6454 + }, 6455 + "node_modules/p-locate/node_modules/p-limit": { 6456 + "version": "2.3.0", 6457 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 6458 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 6459 + "dependencies": { 6460 + "p-try": "^2.0.0" 6461 + }, 6462 + "engines": { 6463 + "node": ">=6" 6464 + }, 6465 + "funding": { 6466 + "url": "https://github.com/sponsors/sindresorhus" 6467 + } 6468 + }, 6469 + "node_modules/p-queue": { 6470 + "version": "8.1.0", 6471 + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", 6472 + "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", 6473 + "dependencies": { 6474 + "eventemitter3": "^5.0.1", 6475 + "p-timeout": "^6.1.2" 6476 + }, 6477 + "engines": { 6478 + "node": ">=18" 6479 + }, 6480 + "funding": { 6481 + "url": "https://github.com/sponsors/sindresorhus" 6482 + } 6483 + }, 6484 + "node_modules/p-timeout": { 6485 + "version": "6.1.4", 6486 + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", 6487 + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", 6488 + "engines": { 6489 + "node": ">=14.16" 6490 + }, 6491 + "funding": { 6492 + "url": "https://github.com/sponsors/sindresorhus" 6493 + } 6494 + }, 6495 + "node_modules/p-try": { 6496 + "version": "2.2.0", 6497 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 6498 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 6499 + "engines": { 6500 + "node": ">=6" 6501 + } 6502 + }, 6503 + "node_modules/package-json-from-dist": { 6504 + "version": "1.0.1", 6505 + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", 6506 + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" 6507 + }, 6508 + "node_modules/package-manager-detector": { 6509 + "version": "0.2.9", 6510 + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.9.tgz", 6511 + "integrity": "sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==", 6512 + "dev": true 6513 + }, 6514 + "node_modules/pagefind": { 6515 + "version": "1.3.0", 6516 + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.3.0.tgz", 6517 + "integrity": "sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==", 6518 + "bin": { 6519 + "pagefind": "lib/runner/bin.cjs" 6520 + }, 6521 + "optionalDependencies": { 6522 + "@pagefind/darwin-arm64": "1.3.0", 6523 + "@pagefind/darwin-x64": "1.3.0", 6524 + "@pagefind/linux-arm64": "1.3.0", 6525 + "@pagefind/linux-x64": "1.3.0", 6526 + "@pagefind/windows-x64": "1.3.0" 6527 + } 6528 + }, 6529 + "node_modules/parse-entities": { 6530 + "version": "4.0.2", 6531 + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", 6532 + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", 6533 + "dependencies": { 6534 + "@types/unist": "^2.0.0", 6535 + "character-entities-legacy": "^3.0.0", 6536 + "character-reference-invalid": "^2.0.0", 6537 + "decode-named-character-reference": "^1.0.0", 6538 + "is-alphanumerical": "^2.0.0", 6539 + "is-decimal": "^2.0.0", 6540 + "is-hexadecimal": "^2.0.0" 6541 + }, 6542 + "funding": { 6543 + "type": "github", 6544 + "url": "https://github.com/sponsors/wooorm" 6545 + } 6546 + }, 6547 + "node_modules/parse-entities/node_modules/@types/unist": { 6548 + "version": "2.0.11", 6549 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", 6550 + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" 6551 + }, 6552 + "node_modules/parse-latin": { 6553 + "version": "7.0.0", 6554 + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", 6555 + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", 6556 + "dependencies": { 6557 + "@types/nlcst": "^2.0.0", 6558 + "@types/unist": "^3.0.0", 6559 + "nlcst-to-string": "^4.0.0", 6560 + "unist-util-modify-children": "^4.0.0", 6561 + "unist-util-visit-children": "^3.0.0", 6562 + "vfile": "^6.0.0" 6563 + }, 6564 + "funding": { 6565 + "type": "github", 6566 + "url": "https://github.com/sponsors/wooorm" 6567 + } 6568 + }, 6569 + "node_modules/parse5": { 6570 + "version": "7.2.1", 6571 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", 6572 + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", 6573 + "dependencies": { 6574 + "entities": "^4.5.0" 6575 + }, 6576 + "funding": { 6577 + "url": "https://github.com/inikulin/parse5?sponsor=1" 6578 + } 6579 + }, 6580 + "node_modules/parse5-htmlparser2-tree-adapter": { 6581 + "version": "7.1.0", 6582 + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", 6583 + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", 6584 + "dependencies": { 6585 + "domhandler": "^5.0.3", 6586 + "parse5": "^7.0.0" 6587 + }, 6588 + "funding": { 6589 + "url": "https://github.com/inikulin/parse5?sponsor=1" 6590 + } 6591 + }, 6592 + "node_modules/parse5-parser-stream": { 6593 + "version": "7.1.2", 6594 + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", 6595 + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", 6596 + "dependencies": { 6597 + "parse5": "^7.0.0" 6598 + }, 6599 + "funding": { 6600 + "url": "https://github.com/inikulin/parse5?sponsor=1" 6601 + } 6602 + }, 6603 + "node_modules/pascal-case": { 6604 + "version": "3.1.2", 6605 + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", 6606 + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", 6607 + "dependencies": { 6608 + "no-case": "^3.0.4", 6609 + "tslib": "^2.0.3" 6610 + } 6611 + }, 6612 + "node_modules/path-browserify": { 6613 + "version": "1.0.1", 6614 + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", 6615 + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" 6616 + }, 6617 + "node_modules/path-exists": { 6618 + "version": "4.0.0", 6619 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 6620 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 6621 + "engines": { 6622 + "node": ">=8" 6623 + } 6624 + }, 6625 + "node_modules/path-key": { 6626 + "version": "3.1.1", 6627 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 6628 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 6629 + "engines": { 6630 + "node": ">=8" 6631 + } 6632 + }, 6633 + "node_modules/path-parse": { 6634 + "version": "1.0.7", 6635 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 6636 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 6637 + }, 6638 + "node_modules/path-scurry": { 6639 + "version": "1.11.1", 6640 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 6641 + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 6642 + "dependencies": { 6643 + "lru-cache": "^10.2.0", 6644 + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 6645 + }, 6646 + "engines": { 6647 + "node": ">=16 || 14 >=14.18" 6648 + }, 6649 + "funding": { 6650 + "url": "https://github.com/sponsors/isaacs" 6651 + } 6652 + }, 6653 + "node_modules/picocolors": { 6654 + "version": "1.1.1", 6655 + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 6656 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 6657 + }, 6658 + "node_modules/picomatch": { 6659 + "version": "4.0.2", 6660 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 6661 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 6662 + "engines": { 6663 + "node": ">=12" 6664 + }, 6665 + "funding": { 6666 + "url": "https://github.com/sponsors/jonschlinkert" 6667 + } 6668 + }, 6669 + "node_modules/pify": { 6670 + "version": "2.3.0", 6671 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 6672 + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 6673 + "engines": { 6674 + "node": ">=0.10.0" 6675 + } 6676 + }, 6677 + "node_modules/pirates": { 6678 + "version": "4.0.6", 6679 + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", 6680 + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 6681 + "engines": { 6682 + "node": ">= 6" 6683 + } 6684 + }, 6685 + "node_modules/pkg-dir": { 6686 + "version": "4.2.0", 6687 + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 6688 + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 6689 + "dependencies": { 6690 + "find-up": "^4.0.0" 6691 + }, 6692 + "engines": { 6693 + "node": ">=8" 6694 + } 6695 + }, 6696 + "node_modules/postcss": { 6697 + "version": "8.5.3", 6698 + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", 6699 + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", 6700 + "funding": [ 6701 + { 6702 + "type": "opencollective", 6703 + "url": "https://opencollective.com/postcss/" 6704 + }, 6705 + { 6706 + "type": "tidelift", 6707 + "url": "https://tidelift.com/funding/github/npm/postcss" 6708 + }, 6709 + { 6710 + "type": "github", 6711 + "url": "https://github.com/sponsors/ai" 6712 + } 6713 + ], 6714 + "dependencies": { 6715 + "nanoid": "^3.3.8", 6716 + "picocolors": "^1.1.1", 6717 + "source-map-js": "^1.2.1" 6718 + }, 6719 + "engines": { 6720 + "node": "^10 || ^12 || >=14" 6721 + } 6722 + }, 6723 + "node_modules/postcss-import": { 6724 + "version": "15.1.0", 6725 + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", 6726 + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", 6727 + "dependencies": { 6728 + "postcss-value-parser": "^4.0.0", 6729 + "read-cache": "^1.0.0", 6730 + "resolve": "^1.1.7" 6731 + }, 6732 + "engines": { 6733 + "node": ">=14.0.0" 6734 + }, 6735 + "peerDependencies": { 6736 + "postcss": "^8.0.0" 6737 + } 6738 + }, 6739 + "node_modules/postcss-js": { 6740 + "version": "4.0.1", 6741 + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", 6742 + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", 6743 + "dependencies": { 6744 + "camelcase-css": "^2.0.1" 6745 + }, 6746 + "engines": { 6747 + "node": "^12 || ^14 || >= 16" 6748 + }, 6749 + "funding": { 6750 + "type": "opencollective", 6751 + "url": "https://opencollective.com/postcss/" 6752 + }, 6753 + "peerDependencies": { 6754 + "postcss": "^8.4.21" 6755 + } 6756 + }, 6757 + "node_modules/postcss-load-config": { 6758 + "version": "4.0.2", 6759 + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", 6760 + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", 6761 + "funding": [ 6762 + { 6763 + "type": "opencollective", 6764 + "url": "https://opencollective.com/postcss/" 6765 + }, 6766 + { 6767 + "type": "github", 6768 + "url": "https://github.com/sponsors/ai" 6769 + } 6770 + ], 6771 + "dependencies": { 6772 + "lilconfig": "^3.0.0", 6773 + "yaml": "^2.3.4" 6774 + }, 6775 + "engines": { 6776 + "node": ">= 14" 6777 + }, 6778 + "peerDependencies": { 6779 + "postcss": ">=8.0.9", 6780 + "ts-node": ">=9.0.0" 6781 + }, 6782 + "peerDependenciesMeta": { 6783 + "postcss": { 6784 + "optional": true 6785 + }, 6786 + "ts-node": { 6787 + "optional": true 6788 + } 6789 + } 6790 + }, 6791 + "node_modules/postcss-nested": { 6792 + "version": "6.2.0", 6793 + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", 6794 + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", 6795 + "funding": [ 6796 + { 6797 + "type": "opencollective", 6798 + "url": "https://opencollective.com/postcss/" 6799 + }, 6800 + { 6801 + "type": "github", 6802 + "url": "https://github.com/sponsors/ai" 6803 + } 6804 + ], 6805 + "dependencies": { 6806 + "postcss-selector-parser": "^6.1.1" 6807 + }, 6808 + "engines": { 6809 + "node": ">=12.0" 6810 + }, 6811 + "peerDependencies": { 6812 + "postcss": "^8.2.14" 6813 + } 6814 + }, 6815 + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { 6816 + "version": "6.1.2", 6817 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", 6818 + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", 6819 + "dependencies": { 6820 + "cssesc": "^3.0.0", 6821 + "util-deprecate": "^1.0.2" 6822 + }, 6823 + "engines": { 6824 + "node": ">=4" 6825 + } 6826 + }, 6827 + "node_modules/postcss-selector-parser": { 6828 + "version": "6.0.10", 6829 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 6830 + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 6831 + "dev": true, 6832 + "dependencies": { 6833 + "cssesc": "^3.0.0", 6834 + "util-deprecate": "^1.0.2" 6835 + }, 6836 + "engines": { 6837 + "node": ">=4" 6838 + } 6839 + }, 6840 + "node_modules/postcss-value-parser": { 6841 + "version": "4.2.0", 6842 + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 6843 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" 6844 + }, 6845 + "node_modules/preferred-pm": { 6846 + "version": "4.1.1", 6847 + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-4.1.1.tgz", 6848 + "integrity": "sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==", 6849 + "dependencies": { 6850 + "find-up-simple": "^1.0.0", 6851 + "find-yarn-workspace-root2": "1.2.16", 6852 + "which-pm": "^3.0.1" 6853 + }, 6854 + "engines": { 6855 + "node": ">=18.12" 6856 + } 6857 + }, 6858 + "node_modules/prettier": { 6859 + "version": "3.5.1", 6860 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.1.tgz", 6861 + "integrity": "sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==", 6862 + "optional": true, 6863 + "peer": true, 6864 + "bin": { 6865 + "prettier": "bin/prettier.cjs" 6866 + }, 6867 + "engines": { 6868 + "node": ">=14" 6869 + }, 6870 + "funding": { 6871 + "url": "https://github.com/prettier/prettier?sponsor=1" 6872 + } 6873 + }, 6874 + "node_modules/prismjs": { 6875 + "version": "1.29.0", 6876 + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", 6877 + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", 6878 + "engines": { 6879 + "node": ">=6" 6880 + } 6881 + }, 6882 + "node_modules/prompts": { 6883 + "version": "2.4.2", 6884 + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", 6885 + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", 6886 + "dependencies": { 6887 + "kleur": "^3.0.3", 6888 + "sisteransi": "^1.0.5" 6889 + }, 6890 + "engines": { 6891 + "node": ">= 6" 6892 + } 6893 + }, 6894 + "node_modules/prompts/node_modules/kleur": { 6895 + "version": "3.0.3", 6896 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 6897 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 6898 + "engines": { 6899 + "node": ">=6" 6900 + } 6901 + }, 6902 + "node_modules/property-information": { 6903 + "version": "7.0.0", 6904 + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", 6905 + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", 6906 + "funding": { 6907 + "type": "github", 6908 + "url": "https://github.com/sponsors/wooorm" 6909 + } 6910 + }, 6911 + "node_modules/queue-microtask": { 6912 + "version": "1.2.3", 6913 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 6914 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 6915 + "funding": [ 6916 + { 6917 + "type": "github", 6918 + "url": "https://github.com/sponsors/feross" 6919 + }, 6920 + { 6921 + "type": "patreon", 6922 + "url": "https://www.patreon.com/feross" 6923 + }, 6924 + { 6925 + "type": "consulting", 6926 + "url": "https://feross.org/support" 6927 + } 6928 + ] 6929 + }, 6930 + "node_modules/radix3": { 6931 + "version": "1.1.2", 6932 + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", 6933 + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" 6934 + }, 6935 + "node_modules/react": { 6936 + "version": "19.0.0", 6937 + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", 6938 + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", 6939 + "engines": { 6940 + "node": ">=0.10.0" 6941 + } 6942 + }, 6943 + "node_modules/react-devtools-inline": { 6944 + "version": "4.4.0", 6945 + "resolved": "https://registry.npmjs.org/react-devtools-inline/-/react-devtools-inline-4.4.0.tgz", 6946 + "integrity": "sha512-ES0GolSrKO8wsKbsEkVeiR/ZAaHQTY4zDh1UW8DImVmm8oaGLl3ijJDvSGe+qDRKPZdPRnDtWWnSvvrgxXdThQ==", 6947 + "dependencies": { 6948 + "es6-symbol": "^3" 6949 + } 6950 + }, 6951 + "node_modules/react-dom": { 6952 + "version": "19.0.0", 6953 + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", 6954 + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", 6955 + "dependencies": { 6956 + "scheduler": "^0.25.0" 6957 + }, 6958 + "peerDependencies": { 6959 + "react": "^19.0.0" 6960 + } 6961 + }, 6962 + "node_modules/react-is": { 6963 + "version": "17.0.2", 6964 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 6965 + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 6966 + }, 6967 + "node_modules/react-refresh": { 6968 + "version": "0.14.2", 6969 + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", 6970 + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", 6971 + "engines": { 6972 + "node": ">=0.10.0" 6973 + } 6974 + }, 6975 + "node_modules/read-cache": { 6976 + "version": "1.0.0", 6977 + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 6978 + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 6979 + "dependencies": { 6980 + "pify": "^2.3.0" 6981 + } 6982 + }, 6983 + "node_modules/readdirp": { 6984 + "version": "4.1.2", 6985 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", 6986 + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", 6987 + "engines": { 6988 + "node": ">= 14.18.0" 6989 + }, 6990 + "funding": { 6991 + "type": "individual", 6992 + "url": "https://paulmillr.com/funding/" 6993 + } 6994 + }, 6995 + "node_modules/recma-build-jsx": { 6996 + "version": "1.0.0", 6997 + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", 6998 + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", 6999 + "dependencies": { 7000 + "@types/estree": "^1.0.0", 7001 + "estree-util-build-jsx": "^3.0.0", 7002 + "vfile": "^6.0.0" 7003 + }, 7004 + "funding": { 7005 + "type": "opencollective", 7006 + "url": "https://opencollective.com/unified" 7007 + } 7008 + }, 7009 + "node_modules/recma-jsx": { 7010 + "version": "1.0.0", 7011 + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", 7012 + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", 7013 + "dependencies": { 7014 + "acorn-jsx": "^5.0.0", 7015 + "estree-util-to-js": "^2.0.0", 7016 + "recma-parse": "^1.0.0", 7017 + "recma-stringify": "^1.0.0", 7018 + "unified": "^11.0.0" 7019 + }, 7020 + "funding": { 7021 + "type": "opencollective", 7022 + "url": "https://opencollective.com/unified" 7023 + } 7024 + }, 7025 + "node_modules/recma-parse": { 7026 + "version": "1.0.0", 7027 + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", 7028 + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", 7029 + "dependencies": { 7030 + "@types/estree": "^1.0.0", 7031 + "esast-util-from-js": "^2.0.0", 7032 + "unified": "^11.0.0", 7033 + "vfile": "^6.0.0" 7034 + }, 7035 + "funding": { 7036 + "type": "opencollective", 7037 + "url": "https://opencollective.com/unified" 7038 + } 7039 + }, 7040 + "node_modules/recma-stringify": { 7041 + "version": "1.0.0", 7042 + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", 7043 + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", 7044 + "dependencies": { 7045 + "@types/estree": "^1.0.0", 7046 + "estree-util-to-js": "^2.0.0", 7047 + "unified": "^11.0.0", 7048 + "vfile": "^6.0.0" 7049 + }, 7050 + "funding": { 7051 + "type": "opencollective", 7052 + "url": "https://opencollective.com/unified" 7053 + } 7054 + }, 7055 + "node_modules/regex": { 7056 + "version": "5.1.1", 7057 + "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", 7058 + "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==", 7059 + "dependencies": { 7060 + "regex-utilities": "^2.3.0" 7061 + } 7062 + }, 7063 + "node_modules/regex-recursion": { 7064 + "version": "5.1.1", 7065 + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz", 7066 + "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==", 7067 + "dependencies": { 7068 + "regex": "^5.1.1", 7069 + "regex-utilities": "^2.3.0" 7070 + } 7071 + }, 7072 + "node_modules/regex-utilities": { 7073 + "version": "2.3.0", 7074 + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", 7075 + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" 7076 + }, 7077 + "node_modules/rehype": { 7078 + "version": "13.0.2", 7079 + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", 7080 + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", 7081 + "dependencies": { 7082 + "@types/hast": "^3.0.0", 7083 + "rehype-parse": "^9.0.0", 7084 + "rehype-stringify": "^10.0.0", 7085 + "unified": "^11.0.0" 7086 + }, 7087 + "funding": { 7088 + "type": "opencollective", 7089 + "url": "https://opencollective.com/unified" 7090 + } 7091 + }, 7092 + "node_modules/rehype-mathjax": { 7093 + "version": "7.1.0", 7094 + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-7.1.0.tgz", 7095 + "integrity": "sha512-mJHNpoqCC5UZ24OKx0wNjlzV18qeJz/Q/LtEjxXzt8vqrZ1Z3GxQnVrHcF5/PogcXUK8cWwJ4U/LWOQWEiABHw==", 7096 + "dependencies": { 7097 + "@types/hast": "^3.0.0", 7098 + "@types/mathjax": "^0.0.40", 7099 + "hast-util-to-text": "^4.0.0", 7100 + "hastscript": "^9.0.0", 7101 + "mathjax-full": "^3.0.0", 7102 + "unified": "^11.0.0", 7103 + "unist-util-visit-parents": "^6.0.0", 7104 + "vfile": "^6.0.0" 7105 + }, 7106 + "funding": { 7107 + "type": "opencollective", 7108 + "url": "https://opencollective.com/unified" 7109 + } 7110 + }, 7111 + "node_modules/rehype-parse": { 7112 + "version": "9.0.1", 7113 + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", 7114 + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", 7115 + "dependencies": { 7116 + "@types/hast": "^3.0.0", 7117 + "hast-util-from-html": "^2.0.0", 7118 + "unified": "^11.0.0" 7119 + }, 7120 + "funding": { 7121 + "type": "opencollective", 7122 + "url": "https://opencollective.com/unified" 7123 + } 7124 + }, 7125 + "node_modules/rehype-raw": { 7126 + "version": "7.0.0", 7127 + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", 7128 + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", 7129 + "dependencies": { 7130 + "@types/hast": "^3.0.0", 7131 + "hast-util-raw": "^9.0.0", 7132 + "vfile": "^6.0.0" 7133 + }, 7134 + "funding": { 7135 + "type": "opencollective", 7136 + "url": "https://opencollective.com/unified" 7137 + } 7138 + }, 7139 + "node_modules/rehype-recma": { 7140 + "version": "1.0.0", 7141 + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", 7142 + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", 7143 + "dependencies": { 7144 + "@types/estree": "^1.0.0", 7145 + "@types/hast": "^3.0.0", 7146 + "hast-util-to-estree": "^3.0.0" 7147 + }, 7148 + "funding": { 7149 + "type": "opencollective", 7150 + "url": "https://opencollective.com/unified" 7151 + } 7152 + }, 7153 + "node_modules/rehype-stringify": { 7154 + "version": "10.0.1", 7155 + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", 7156 + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", 7157 + "dependencies": { 7158 + "@types/hast": "^3.0.0", 7159 + "hast-util-to-html": "^9.0.0", 7160 + "unified": "^11.0.0" 7161 + }, 7162 + "funding": { 7163 + "type": "opencollective", 7164 + "url": "https://opencollective.com/unified" 7165 + } 7166 + }, 7167 + "node_modules/remark-directive": { 7168 + "version": "3.0.1", 7169 + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", 7170 + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", 7171 + "dependencies": { 7172 + "@types/mdast": "^4.0.0", 7173 + "mdast-util-directive": "^3.0.0", 7174 + "micromark-extension-directive": "^3.0.0", 7175 + "unified": "^11.0.0" 7176 + }, 7177 + "funding": { 7178 + "type": "opencollective", 7179 + "url": "https://opencollective.com/unified" 7180 + } 7181 + }, 7182 + "node_modules/remark-gfm": { 7183 + "version": "4.0.1", 7184 + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", 7185 + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", 7186 + "dependencies": { 7187 + "@types/mdast": "^4.0.0", 7188 + "mdast-util-gfm": "^3.0.0", 7189 + "micromark-extension-gfm": "^3.0.0", 7190 + "remark-parse": "^11.0.0", 7191 + "remark-stringify": "^11.0.0", 7192 + "unified": "^11.0.0" 7193 + }, 7194 + "funding": { 7195 + "type": "opencollective", 7196 + "url": "https://opencollective.com/unified" 7197 + } 7198 + }, 7199 + "node_modules/remark-math": { 7200 + "version": "6.0.0", 7201 + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", 7202 + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", 7203 + "dependencies": { 7204 + "@types/mdast": "^4.0.0", 7205 + "mdast-util-math": "^3.0.0", 7206 + "micromark-extension-math": "^3.0.0", 7207 + "unified": "^11.0.0" 7208 + }, 7209 + "funding": { 7210 + "type": "opencollective", 7211 + "url": "https://opencollective.com/unified" 7212 + } 7213 + }, 7214 + "node_modules/remark-mdx": { 7215 + "version": "3.1.0", 7216 + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", 7217 + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", 7218 + "dependencies": { 7219 + "mdast-util-mdx": "^3.0.0", 7220 + "micromark-extension-mdxjs": "^3.0.0" 7221 + }, 7222 + "funding": { 7223 + "type": "opencollective", 7224 + "url": "https://opencollective.com/unified" 7225 + } 7226 + }, 7227 + "node_modules/remark-parse": { 7228 + "version": "11.0.0", 7229 + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", 7230 + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", 7231 + "dependencies": { 7232 + "@types/mdast": "^4.0.0", 7233 + "mdast-util-from-markdown": "^2.0.0", 7234 + "micromark-util-types": "^2.0.0", 7235 + "unified": "^11.0.0" 7236 + }, 7237 + "funding": { 7238 + "type": "opencollective", 7239 + "url": "https://opencollective.com/unified" 7240 + } 7241 + }, 7242 + "node_modules/remark-rehype": { 7243 + "version": "11.1.1", 7244 + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", 7245 + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", 7246 + "dependencies": { 7247 + "@types/hast": "^3.0.0", 7248 + "@types/mdast": "^4.0.0", 7249 + "mdast-util-to-hast": "^13.0.0", 7250 + "unified": "^11.0.0", 7251 + "vfile": "^6.0.0" 7252 + }, 7253 + "funding": { 7254 + "type": "opencollective", 7255 + "url": "https://opencollective.com/unified" 7256 + } 7257 + }, 7258 + "node_modules/remark-smartypants": { 7259 + "version": "3.0.2", 7260 + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", 7261 + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", 7262 + "dependencies": { 7263 + "retext": "^9.0.0", 7264 + "retext-smartypants": "^6.0.0", 7265 + "unified": "^11.0.4", 7266 + "unist-util-visit": "^5.0.0" 7267 + }, 7268 + "engines": { 7269 + "node": ">=16.0.0" 7270 + } 7271 + }, 7272 + "node_modules/remark-stringify": { 7273 + "version": "11.0.0", 7274 + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", 7275 + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", 7276 + "dependencies": { 7277 + "@types/mdast": "^4.0.0", 7278 + "mdast-util-to-markdown": "^2.0.0", 7279 + "unified": "^11.0.0" 7280 + }, 7281 + "funding": { 7282 + "type": "opencollective", 7283 + "url": "https://opencollective.com/unified" 7284 + } 7285 + }, 7286 + "node_modules/request-light": { 7287 + "version": "0.7.0", 7288 + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", 7289 + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==" 7290 + }, 7291 + "node_modules/require-directory": { 7292 + "version": "2.1.1", 7293 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 7294 + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 7295 + "engines": { 7296 + "node": ">=0.10.0" 7297 + } 7298 + }, 7299 + "node_modules/require-from-string": { 7300 + "version": "2.0.2", 7301 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 7302 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 7303 + "engines": { 7304 + "node": ">=0.10.0" 7305 + } 7306 + }, 7307 + "node_modules/resolve": { 7308 + "version": "1.22.10", 7309 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", 7310 + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", 7311 + "dependencies": { 7312 + "is-core-module": "^2.16.0", 7313 + "path-parse": "^1.0.7", 7314 + "supports-preserve-symlinks-flag": "^1.0.0" 7315 + }, 7316 + "bin": { 7317 + "resolve": "bin/resolve" 7318 + }, 7319 + "engines": { 7320 + "node": ">= 0.4" 7321 + }, 7322 + "funding": { 7323 + "url": "https://github.com/sponsors/ljharb" 7324 + } 7325 + }, 7326 + "node_modules/retext": { 7327 + "version": "9.0.0", 7328 + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", 7329 + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", 7330 + "dependencies": { 7331 + "@types/nlcst": "^2.0.0", 7332 + "retext-latin": "^4.0.0", 7333 + "retext-stringify": "^4.0.0", 7334 + "unified": "^11.0.0" 7335 + }, 7336 + "funding": { 7337 + "type": "opencollective", 7338 + "url": "https://opencollective.com/unified" 7339 + } 7340 + }, 7341 + "node_modules/retext-latin": { 7342 + "version": "4.0.0", 7343 + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", 7344 + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", 7345 + "dependencies": { 7346 + "@types/nlcst": "^2.0.0", 7347 + "parse-latin": "^7.0.0", 7348 + "unified": "^11.0.0" 7349 + }, 7350 + "funding": { 7351 + "type": "opencollective", 7352 + "url": "https://opencollective.com/unified" 7353 + } 7354 + }, 7355 + "node_modules/retext-smartypants": { 7356 + "version": "6.2.0", 7357 + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", 7358 + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", 7359 + "dependencies": { 7360 + "@types/nlcst": "^2.0.0", 7361 + "nlcst-to-string": "^4.0.0", 7362 + "unist-util-visit": "^5.0.0" 7363 + }, 7364 + "funding": { 7365 + "type": "opencollective", 7366 + "url": "https://opencollective.com/unified" 7367 + } 7368 + }, 7369 + "node_modules/retext-stringify": { 7370 + "version": "4.0.0", 7371 + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", 7372 + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", 7373 + "dependencies": { 7374 + "@types/nlcst": "^2.0.0", 7375 + "nlcst-to-string": "^4.0.0", 7376 + "unified": "^11.0.0" 7377 + }, 7378 + "funding": { 7379 + "type": "opencollective", 7380 + "url": "https://opencollective.com/unified" 7381 + } 7382 + }, 7383 + "node_modules/reusify": { 7384 + "version": "1.0.4", 7385 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 7386 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 7387 + "engines": { 7388 + "iojs": ">=1.0.0", 7389 + "node": ">=0.10.0" 7390 + } 7391 + }, 7392 + "node_modules/rollup": { 7393 + "version": "4.34.8", 7394 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", 7395 + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", 7396 + "dependencies": { 7397 + "@types/estree": "1.0.6" 7398 + }, 7399 + "bin": { 7400 + "rollup": "dist/bin/rollup" 7401 + }, 7402 + "engines": { 7403 + "node": ">=18.0.0", 7404 + "npm": ">=8.0.0" 7405 + }, 7406 + "optionalDependencies": { 7407 + "@rollup/rollup-android-arm-eabi": "4.34.8", 7408 + "@rollup/rollup-android-arm64": "4.34.8", 7409 + "@rollup/rollup-darwin-arm64": "4.34.8", 7410 + "@rollup/rollup-darwin-x64": "4.34.8", 7411 + "@rollup/rollup-freebsd-arm64": "4.34.8", 7412 + "@rollup/rollup-freebsd-x64": "4.34.8", 7413 + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", 7414 + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", 7415 + "@rollup/rollup-linux-arm64-gnu": "4.34.8", 7416 + "@rollup/rollup-linux-arm64-musl": "4.34.8", 7417 + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", 7418 + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", 7419 + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", 7420 + "@rollup/rollup-linux-s390x-gnu": "4.34.8", 7421 + "@rollup/rollup-linux-x64-gnu": "4.34.8", 7422 + "@rollup/rollup-linux-x64-musl": "4.34.8", 7423 + "@rollup/rollup-win32-arm64-msvc": "4.34.8", 7424 + "@rollup/rollup-win32-ia32-msvc": "4.34.8", 7425 + "@rollup/rollup-win32-x64-msvc": "4.34.8", 7426 + "fsevents": "~2.3.2" 7427 + } 7428 + }, 7429 + "node_modules/run-parallel": { 7430 + "version": "1.2.0", 7431 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 7432 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 7433 + "funding": [ 7434 + { 7435 + "type": "github", 7436 + "url": "https://github.com/sponsors/feross" 7437 + }, 7438 + { 7439 + "type": "patreon", 7440 + "url": "https://www.patreon.com/feross" 7441 + }, 7442 + { 7443 + "type": "consulting", 7444 + "url": "https://feross.org/support" 7445 + } 7446 + ], 7447 + "dependencies": { 7448 + "queue-microtask": "^1.2.2" 7449 + } 7450 + }, 7451 + "node_modules/safer-buffer": { 7452 + "version": "2.1.2", 7453 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 7454 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 7455 + }, 7456 + "node_modules/sax": { 7457 + "version": "1.4.1", 7458 + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", 7459 + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" 7460 + }, 7461 + "node_modules/scheduler": { 7462 + "version": "0.25.0", 7463 + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", 7464 + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" 7465 + }, 7466 + "node_modules/semver": { 7467 + "version": "7.7.1", 7468 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 7469 + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 7470 + "bin": { 7471 + "semver": "bin/semver.js" 7472 + }, 7473 + "engines": { 7474 + "node": ">=10" 7475 + } 7476 + }, 7477 + "node_modules/sharp": { 7478 + "version": "0.33.5", 7479 + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 7480 + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 7481 + "hasInstallScript": true, 7482 + "optional": true, 7483 + "dependencies": { 7484 + "color": "^4.2.3", 7485 + "detect-libc": "^2.0.3", 7486 + "semver": "^7.6.3" 7487 + }, 7488 + "engines": { 7489 + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 7490 + }, 7491 + "funding": { 7492 + "url": "https://opencollective.com/libvips" 7493 + }, 7494 + "optionalDependencies": { 7495 + "@img/sharp-darwin-arm64": "0.33.5", 7496 + "@img/sharp-darwin-x64": "0.33.5", 7497 + "@img/sharp-libvips-darwin-arm64": "1.0.4", 7498 + "@img/sharp-libvips-darwin-x64": "1.0.4", 7499 + "@img/sharp-libvips-linux-arm": "1.0.5", 7500 + "@img/sharp-libvips-linux-arm64": "1.0.4", 7501 + "@img/sharp-libvips-linux-s390x": "1.0.4", 7502 + "@img/sharp-libvips-linux-x64": "1.0.4", 7503 + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 7504 + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 7505 + "@img/sharp-linux-arm": "0.33.5", 7506 + "@img/sharp-linux-arm64": "0.33.5", 7507 + "@img/sharp-linux-s390x": "0.33.5", 7508 + "@img/sharp-linux-x64": "0.33.5", 7509 + "@img/sharp-linuxmusl-arm64": "0.33.5", 7510 + "@img/sharp-linuxmusl-x64": "0.33.5", 7511 + "@img/sharp-wasm32": "0.33.5", 7512 + "@img/sharp-win32-ia32": "0.33.5", 7513 + "@img/sharp-win32-x64": "0.33.5" 7514 + } 7515 + }, 7516 + "node_modules/shebang-command": { 7517 + "version": "2.0.0", 7518 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 7519 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 7520 + "dependencies": { 7521 + "shebang-regex": "^3.0.0" 7522 + }, 7523 + "engines": { 7524 + "node": ">=8" 7525 + } 7526 + }, 7527 + "node_modules/shebang-regex": { 7528 + "version": "3.0.0", 7529 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 7530 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 7531 + "engines": { 7532 + "node": ">=8" 7533 + } 7534 + }, 7535 + "node_modules/shiki": { 7536 + "version": "1.29.2", 7537 + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.29.2.tgz", 7538 + "integrity": "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==", 7539 + "dependencies": { 7540 + "@shikijs/core": "1.29.2", 7541 + "@shikijs/engine-javascript": "1.29.2", 7542 + "@shikijs/engine-oniguruma": "1.29.2", 7543 + "@shikijs/langs": "1.29.2", 7544 + "@shikijs/themes": "1.29.2", 7545 + "@shikijs/types": "1.29.2", 7546 + "@shikijs/vscode-textmate": "^10.0.1", 7547 + "@types/hast": "^3.0.4" 7548 + } 7549 + }, 7550 + "node_modules/signal-exit": { 7551 + "version": "4.1.0", 7552 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 7553 + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 7554 + "engines": { 7555 + "node": ">=14" 7556 + }, 7557 + "funding": { 7558 + "url": "https://github.com/sponsors/isaacs" 7559 + } 7560 + }, 7561 + "node_modules/simple-swizzle": { 7562 + "version": "0.2.2", 7563 + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 7564 + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 7565 + "optional": true, 7566 + "dependencies": { 7567 + "is-arrayish": "^0.3.1" 7568 + } 7569 + }, 7570 + "node_modules/sirv": { 7571 + "version": "3.0.1", 7572 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", 7573 + "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", 7574 + "dependencies": { 7575 + "@polka/url": "^1.0.0-next.24", 7576 + "mrmime": "^2.0.0", 7577 + "totalist": "^3.0.0" 7578 + }, 7579 + "engines": { 7580 + "node": ">=18" 7581 + } 7582 + }, 7583 + "node_modules/sisteransi": { 7584 + "version": "1.0.5", 7585 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 7586 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" 7587 + }, 7588 + "node_modules/sitemap": { 7589 + "version": "8.0.0", 7590 + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz", 7591 + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", 7592 + "dependencies": { 7593 + "@types/node": "^17.0.5", 7594 + "@types/sax": "^1.2.1", 7595 + "arg": "^5.0.0", 7596 + "sax": "^1.2.4" 7597 + }, 7598 + "bin": { 7599 + "sitemap": "dist/cli.js" 7600 + }, 7601 + "engines": { 7602 + "node": ">=14.0.0", 7603 + "npm": ">=6.0.0" 7604 + } 7605 + }, 7606 + "node_modules/sitemap/node_modules/@types/node": { 7607 + "version": "17.0.45", 7608 + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", 7609 + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" 7610 + }, 7611 + "node_modules/smol-toml": { 7612 + "version": "1.3.1", 7613 + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz", 7614 + "integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==", 7615 + "engines": { 7616 + "node": ">= 18" 7617 + }, 7618 + "funding": { 7619 + "url": "https://github.com/sponsors/cyyynthia" 7620 + } 7621 + }, 7622 + "node_modules/source-map": { 7623 + "version": "0.7.4", 7624 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", 7625 + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", 7626 + "engines": { 7627 + "node": ">= 8" 7628 + } 7629 + }, 7630 + "node_modules/source-map-js": { 7631 + "version": "1.2.1", 7632 + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", 7633 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", 7634 + "engines": { 7635 + "node": ">=0.10.0" 7636 + } 7637 + }, 7638 + "node_modules/space-separated-tokens": { 7639 + "version": "2.0.2", 7640 + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", 7641 + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", 7642 + "funding": { 7643 + "type": "github", 7644 + "url": "https://github.com/sponsors/wooorm" 7645 + } 7646 + }, 7647 + "node_modules/speech-rule-engine": { 7648 + "version": "4.0.7", 7649 + "resolved": "https://registry.npmjs.org/speech-rule-engine/-/speech-rule-engine-4.0.7.tgz", 7650 + "integrity": "sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==", 7651 + "dependencies": { 7652 + "commander": "9.2.0", 7653 + "wicked-good-xpath": "1.3.0", 7654 + "xmldom-sre": "0.1.31" 7655 + }, 7656 + "bin": { 7657 + "sre": "bin/sre" 7658 + } 7659 + }, 7660 + "node_modules/speech-rule-engine/node_modules/commander": { 7661 + "version": "9.2.0", 7662 + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", 7663 + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", 7664 + "engines": { 7665 + "node": "^12.20.0 || >=14" 7666 + } 7667 + }, 7668 + "node_modules/sprintf-js": { 7669 + "version": "1.0.3", 7670 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 7671 + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 7672 + }, 7673 + "node_modules/static-browser-server": { 7674 + "version": "1.0.3", 7675 + "resolved": "https://registry.npmjs.org/static-browser-server/-/static-browser-server-1.0.3.tgz", 7676 + "integrity": "sha512-ZUyfgGDdFRbZGGJQ1YhiM930Yczz5VlbJObrQLlk24+qNHVQx4OlLcYswEUo3bIyNAbQUIUR9Yr5/Hqjzqb4zA==", 7677 + "dependencies": { 7678 + "@open-draft/deferred-promise": "^2.1.0", 7679 + "dotenv": "^16.0.3", 7680 + "mime-db": "^1.52.0", 7681 + "outvariant": "^1.3.0" 7682 + } 7683 + }, 7684 + "node_modules/stream-replace-string": { 7685 + "version": "2.0.0", 7686 + "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", 7687 + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==" 7688 + }, 7689 + "node_modules/strict-event-emitter": { 7690 + "version": "0.4.6", 7691 + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", 7692 + "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==" 7693 + }, 7694 + "node_modules/string-width": { 7695 + "version": "7.2.0", 7696 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", 7697 + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", 7698 + "dependencies": { 7699 + "emoji-regex": "^10.3.0", 7700 + "get-east-asian-width": "^1.0.0", 7701 + "strip-ansi": "^7.1.0" 7702 + }, 7703 + "engines": { 7704 + "node": ">=18" 7705 + }, 7706 + "funding": { 7707 + "url": "https://github.com/sponsors/sindresorhus" 7708 + } 7709 + }, 7710 + "node_modules/string-width-cjs": { 7711 + "name": "string-width", 7712 + "version": "4.2.3", 7713 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 7714 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 7715 + "dependencies": { 7716 + "emoji-regex": "^8.0.0", 7717 + "is-fullwidth-code-point": "^3.0.0", 7718 + "strip-ansi": "^6.0.1" 7719 + }, 7720 + "engines": { 7721 + "node": ">=8" 7722 + } 7723 + }, 7724 + "node_modules/string-width-cjs/node_modules/ansi-regex": { 7725 + "version": "5.0.1", 7726 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7727 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7728 + "engines": { 7729 + "node": ">=8" 7730 + } 7731 + }, 7732 + "node_modules/string-width-cjs/node_modules/emoji-regex": { 7733 + "version": "8.0.0", 7734 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 7735 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 7736 + }, 7737 + "node_modules/string-width-cjs/node_modules/strip-ansi": { 7738 + "version": "6.0.1", 7739 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7740 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7741 + "dependencies": { 7742 + "ansi-regex": "^5.0.1" 7743 + }, 7744 + "engines": { 7745 + "node": ">=8" 7746 + } 7747 + }, 7748 + "node_modules/stringify-entities": { 7749 + "version": "4.0.4", 7750 + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", 7751 + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", 7752 + "dependencies": { 7753 + "character-entities-html4": "^2.0.0", 7754 + "character-entities-legacy": "^3.0.0" 7755 + }, 7756 + "funding": { 7757 + "type": "github", 7758 + "url": "https://github.com/sponsors/wooorm" 7759 + } 7760 + }, 7761 + "node_modules/strip-ansi": { 7762 + "version": "7.1.0", 7763 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 7764 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 7765 + "dependencies": { 7766 + "ansi-regex": "^6.0.1" 7767 + }, 7768 + "engines": { 7769 + "node": ">=12" 7770 + }, 7771 + "funding": { 7772 + "url": "https://github.com/chalk/strip-ansi?sponsor=1" 7773 + } 7774 + }, 7775 + "node_modules/strip-ansi-cjs": { 7776 + "name": "strip-ansi", 7777 + "version": "6.0.1", 7778 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 7779 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 7780 + "dependencies": { 7781 + "ansi-regex": "^5.0.1" 7782 + }, 7783 + "engines": { 7784 + "node": ">=8" 7785 + } 7786 + }, 7787 + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 7788 + "version": "5.0.1", 7789 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 7790 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 7791 + "engines": { 7792 + "node": ">=8" 7793 + } 7794 + }, 7795 + "node_modules/strip-bom": { 7796 + "version": "3.0.0", 7797 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 7798 + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 7799 + "engines": { 7800 + "node": ">=4" 7801 + } 7802 + }, 7803 + "node_modules/strnum": { 7804 + "version": "1.1.1", 7805 + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.1.tgz", 7806 + "integrity": "sha512-O7aCHfYCamLCctjAiaucmE+fHf2DYHkus2OKCn4Wv03sykfFtgeECn505X6K4mPl8CRNd/qurC9guq+ynoN4pw==", 7807 + "funding": [ 7808 + { 7809 + "type": "github", 7810 + "url": "https://github.com/sponsors/NaturalIntelligence" 7811 + } 7812 + ] 7813 + }, 7814 + "node_modules/style-mod": { 7815 + "version": "4.1.2", 7816 + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", 7817 + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" 7818 + }, 7819 + "node_modules/style-to-object": { 7820 + "version": "1.0.8", 7821 + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", 7822 + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", 7823 + "dependencies": { 7824 + "inline-style-parser": "0.2.4" 7825 + } 7826 + }, 7827 + "node_modules/sucrase": { 7828 + "version": "3.35.0", 7829 + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 7830 + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 7831 + "dependencies": { 7832 + "@jridgewell/gen-mapping": "^0.3.2", 7833 + "commander": "^4.0.0", 7834 + "glob": "^10.3.10", 7835 + "lines-and-columns": "^1.1.6", 7836 + "mz": "^2.7.0", 7837 + "pirates": "^4.0.1", 7838 + "ts-interface-checker": "^0.1.9" 7839 + }, 7840 + "bin": { 7841 + "sucrase": "bin/sucrase", 7842 + "sucrase-node": "bin/sucrase-node" 7843 + }, 7844 + "engines": { 7845 + "node": ">=16 || 14 >=14.17" 7846 + } 7847 + }, 7848 + "node_modules/sucrase/node_modules/commander": { 7849 + "version": "4.1.1", 7850 + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 7851 + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 7852 + "engines": { 7853 + "node": ">= 6" 7854 + } 7855 + }, 7856 + "node_modules/supports-preserve-symlinks-flag": { 7857 + "version": "1.0.0", 7858 + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 7859 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 7860 + "engines": { 7861 + "node": ">= 0.4" 7862 + }, 7863 + "funding": { 7864 + "url": "https://github.com/sponsors/ljharb" 7865 + } 7866 + }, 7867 + "node_modules/svelte": { 7868 + "version": "5.20.2", 7869 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.20.2.tgz", 7870 + "integrity": "sha512-aYXJreNUiyTob0QOzRZeBXZMGeFZDch6SrSRV8QTncZb6zj0O3BEdUzPpojuHQ1pTvk+KX7I6rZCXPUf8pTPxA==", 7871 + "dependencies": { 7872 + "@ampproject/remapping": "^2.3.0", 7873 + "@jridgewell/sourcemap-codec": "^1.5.0", 7874 + "@types/estree": "^1.0.5", 7875 + "acorn": "^8.12.1", 7876 + "acorn-typescript": "^1.4.13", 7877 + "aria-query": "^5.3.1", 7878 + "axobject-query": "^4.1.0", 7879 + "clsx": "^2.1.1", 7880 + "esm-env": "^1.2.1", 7881 + "esrap": "^1.4.3", 7882 + "is-reference": "^3.0.3", 7883 + "locate-character": "^3.0.0", 7884 + "magic-string": "^0.30.11", 7885 + "zimmerframe": "^1.1.2" 7886 + }, 7887 + "engines": { 7888 + "node": ">=18" 7889 + } 7890 + }, 7891 + "node_modules/svelte2tsx": { 7892 + "version": "0.7.34", 7893 + "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.34.tgz", 7894 + "integrity": "sha512-WTMhpNhFf8/h3SMtR5dkdSy2qfveomkhYei/QW9gSPccb0/b82tjHvLop6vT303ZkGswU/da1s6XvrLgthQPCw==", 7895 + "dependencies": { 7896 + "dedent-js": "^1.0.1", 7897 + "pascal-case": "^3.1.1" 7898 + }, 7899 + "peerDependencies": { 7900 + "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0", 7901 + "typescript": "^4.9.4 || ^5.0.0" 7902 + } 7903 + }, 7904 + "node_modules/tailwind-merge": { 7905 + "version": "2.6.0", 7906 + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", 7907 + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", 7908 + "funding": { 7909 + "type": "github", 7910 + "url": "https://github.com/sponsors/dcastil" 7911 + } 7912 + }, 7913 + "node_modules/tailwindcss": { 7914 + "version": "3.4.17", 7915 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", 7916 + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", 7917 + "dependencies": { 7918 + "@alloc/quick-lru": "^5.2.0", 7919 + "arg": "^5.0.2", 7920 + "chokidar": "^3.6.0", 7921 + "didyoumean": "^1.2.2", 7922 + "dlv": "^1.1.3", 7923 + "fast-glob": "^3.3.2", 7924 + "glob-parent": "^6.0.2", 7925 + "is-glob": "^4.0.3", 7926 + "jiti": "^1.21.6", 7927 + "lilconfig": "^3.1.3", 7928 + "micromatch": "^4.0.8", 7929 + "normalize-path": "^3.0.0", 7930 + "object-hash": "^3.0.0", 7931 + "picocolors": "^1.1.1", 7932 + "postcss": "^8.4.47", 7933 + "postcss-import": "^15.1.0", 7934 + "postcss-js": "^4.0.1", 7935 + "postcss-load-config": "^4.0.2", 7936 + "postcss-nested": "^6.2.0", 7937 + "postcss-selector-parser": "^6.1.2", 7938 + "resolve": "^1.22.8", 7939 + "sucrase": "^3.35.0" 7940 + }, 7941 + "bin": { 7942 + "tailwind": "lib/cli.js", 7943 + "tailwindcss": "lib/cli.js" 7944 + }, 7945 + "engines": { 7946 + "node": ">=14.0.0" 7947 + } 7948 + }, 7949 + "node_modules/tailwindcss/node_modules/chokidar": { 7950 + "version": "3.6.0", 7951 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 7952 + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 7953 + "dependencies": { 7954 + "anymatch": "~3.1.2", 7955 + "braces": "~3.0.2", 7956 + "glob-parent": "~5.1.2", 7957 + "is-binary-path": "~2.1.0", 7958 + "is-glob": "~4.0.1", 7959 + "normalize-path": "~3.0.0", 7960 + "readdirp": "~3.6.0" 7961 + }, 7962 + "engines": { 7963 + "node": ">= 8.10.0" 7964 + }, 7965 + "funding": { 7966 + "url": "https://paulmillr.com/funding/" 7967 + }, 7968 + "optionalDependencies": { 7969 + "fsevents": "~2.3.2" 7970 + } 7971 + }, 7972 + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { 7973 + "version": "5.1.2", 7974 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 7975 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 7976 + "dependencies": { 7977 + "is-glob": "^4.0.1" 7978 + }, 7979 + "engines": { 7980 + "node": ">= 6" 7981 + } 7982 + }, 7983 + "node_modules/tailwindcss/node_modules/glob-parent": { 7984 + "version": "6.0.2", 7985 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 7986 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 7987 + "dependencies": { 7988 + "is-glob": "^4.0.3" 7989 + }, 7990 + "engines": { 7991 + "node": ">=10.13.0" 7992 + } 7993 + }, 7994 + "node_modules/tailwindcss/node_modules/picomatch": { 7995 + "version": "2.3.1", 7996 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 7997 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 7998 + "engines": { 7999 + "node": ">=8.6" 8000 + }, 8001 + "funding": { 8002 + "url": "https://github.com/sponsors/jonschlinkert" 8003 + } 8004 + }, 8005 + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { 8006 + "version": "6.1.2", 8007 + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", 8008 + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", 8009 + "dependencies": { 8010 + "cssesc": "^3.0.0", 8011 + "util-deprecate": "^1.0.2" 8012 + }, 8013 + "engines": { 8014 + "node": ">=4" 8015 + } 8016 + }, 8017 + "node_modules/tailwindcss/node_modules/readdirp": { 8018 + "version": "3.6.0", 8019 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 8020 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 8021 + "dependencies": { 8022 + "picomatch": "^2.2.1" 8023 + }, 8024 + "engines": { 8025 + "node": ">=8.10.0" 8026 + } 8027 + }, 8028 + "node_modules/thenify": { 8029 + "version": "3.3.1", 8030 + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 8031 + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 8032 + "dependencies": { 8033 + "any-promise": "^1.0.0" 8034 + } 8035 + }, 8036 + "node_modules/thenify-all": { 8037 + "version": "1.6.0", 8038 + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 8039 + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 8040 + "dependencies": { 8041 + "thenify": ">= 3.1.0 < 4" 8042 + }, 8043 + "engines": { 8044 + "node": ">=0.8" 8045 + } 8046 + }, 8047 + "node_modules/tinyexec": { 8048 + "version": "0.3.2", 8049 + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", 8050 + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" 8051 + }, 8052 + "node_modules/tlds": { 8053 + "version": "1.255.0", 8054 + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.255.0.tgz", 8055 + "integrity": "sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==", 8056 + "bin": { 8057 + "tlds": "bin.js" 8058 + } 8059 + }, 8060 + "node_modules/to-regex-range": { 8061 + "version": "5.0.1", 8062 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 8063 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 8064 + "dependencies": { 8065 + "is-number": "^7.0.0" 8066 + }, 8067 + "engines": { 8068 + "node": ">=8.0" 8069 + } 8070 + }, 8071 + "node_modules/totalist": { 8072 + "version": "3.0.1", 8073 + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 8074 + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 8075 + "engines": { 8076 + "node": ">=6" 8077 + } 8078 + }, 8079 + "node_modules/trim-lines": { 8080 + "version": "3.0.1", 8081 + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", 8082 + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", 8083 + "funding": { 8084 + "type": "github", 8085 + "url": "https://github.com/sponsors/wooorm" 8086 + } 8087 + }, 8088 + "node_modules/trough": { 8089 + "version": "2.2.0", 8090 + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", 8091 + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", 8092 + "funding": { 8093 + "type": "github", 8094 + "url": "https://github.com/sponsors/wooorm" 8095 + } 8096 + }, 8097 + "node_modules/ts-interface-checker": { 8098 + "version": "0.1.13", 8099 + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 8100 + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" 8101 + }, 8102 + "node_modules/tsconfck": { 8103 + "version": "3.1.5", 8104 + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.5.tgz", 8105 + "integrity": "sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==", 8106 + "bin": { 8107 + "tsconfck": "bin/tsconfck.js" 8108 + }, 8109 + "engines": { 8110 + "node": "^18 || >=20" 8111 + }, 8112 + "peerDependencies": { 8113 + "typescript": "^5.0.0" 8114 + }, 8115 + "peerDependenciesMeta": { 8116 + "typescript": { 8117 + "optional": true 8118 + } 8119 + } 8120 + }, 8121 + "node_modules/tslib": { 8122 + "version": "2.8.1", 8123 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 8124 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" 8125 + }, 8126 + "node_modules/type": { 8127 + "version": "2.7.3", 8128 + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", 8129 + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==" 8130 + }, 8131 + "node_modules/type-fest": { 8132 + "version": "4.35.0", 8133 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", 8134 + "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", 8135 + "engines": { 8136 + "node": ">=16" 8137 + }, 8138 + "funding": { 8139 + "url": "https://github.com/sponsors/sindresorhus" 8140 + } 8141 + }, 8142 + "node_modules/typesafe-path": { 8143 + "version": "0.2.2", 8144 + "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", 8145 + "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==" 8146 + }, 8147 + "node_modules/typescript": { 8148 + "version": "5.7.3", 8149 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", 8150 + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", 8151 + "bin": { 8152 + "tsc": "bin/tsc", 8153 + "tsserver": "bin/tsserver" 8154 + }, 8155 + "engines": { 8156 + "node": ">=14.17" 8157 + } 8158 + }, 8159 + "node_modules/typescript-auto-import-cache": { 8160 + "version": "0.3.5", 8161 + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.5.tgz", 8162 + "integrity": "sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==", 8163 + "dependencies": { 8164 + "semver": "^7.3.8" 8165 + } 8166 + }, 8167 + "node_modules/ufo": { 8168 + "version": "1.5.4", 8169 + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", 8170 + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" 8171 + }, 8172 + "node_modules/uhyphen": { 8173 + "version": "0.2.0", 8174 + "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.2.0.tgz", 8175 + "integrity": "sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==" 8176 + }, 8177 + "node_modules/uint8arrays": { 8178 + "version": "3.0.0", 8179 + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", 8180 + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", 8181 + "dependencies": { 8182 + "multiformats": "^9.4.2" 8183 + } 8184 + }, 8185 + "node_modules/ultrahtml": { 8186 + "version": "1.5.3", 8187 + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", 8188 + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==" 8189 + }, 8190 + "node_modules/uncrypto": { 8191 + "version": "0.1.3", 8192 + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", 8193 + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" 8194 + }, 8195 + "node_modules/undici": { 8196 + "version": "6.21.1", 8197 + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", 8198 + "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", 8199 + "engines": { 8200 + "node": ">=18.17" 8201 + } 8202 + }, 8203 + "node_modules/undici-types": { 8204 + "version": "5.26.5", 8205 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 8206 + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" 8207 + }, 8208 + "node_modules/unified": { 8209 + "version": "11.0.5", 8210 + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", 8211 + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", 8212 + "dependencies": { 8213 + "@types/unist": "^3.0.0", 8214 + "bail": "^2.0.0", 8215 + "devlop": "^1.0.0", 8216 + "extend": "^3.0.0", 8217 + "is-plain-obj": "^4.0.0", 8218 + "trough": "^2.0.0", 8219 + "vfile": "^6.0.0" 8220 + }, 8221 + "funding": { 8222 + "type": "opencollective", 8223 + "url": "https://opencollective.com/unified" 8224 + } 8225 + }, 8226 + "node_modules/unist-util-find-after": { 8227 + "version": "5.0.0", 8228 + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", 8229 + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", 8230 + "dependencies": { 8231 + "@types/unist": "^3.0.0", 8232 + "unist-util-is": "^6.0.0" 8233 + }, 8234 + "funding": { 8235 + "type": "opencollective", 8236 + "url": "https://opencollective.com/unified" 8237 + } 8238 + }, 8239 + "node_modules/unist-util-is": { 8240 + "version": "6.0.0", 8241 + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", 8242 + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", 8243 + "dependencies": { 8244 + "@types/unist": "^3.0.0" 8245 + }, 8246 + "funding": { 8247 + "type": "opencollective", 8248 + "url": "https://opencollective.com/unified" 8249 + } 8250 + }, 8251 + "node_modules/unist-util-modify-children": { 8252 + "version": "4.0.0", 8253 + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", 8254 + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", 8255 + "dependencies": { 8256 + "@types/unist": "^3.0.0", 8257 + "array-iterate": "^2.0.0" 8258 + }, 8259 + "funding": { 8260 + "type": "opencollective", 8261 + "url": "https://opencollective.com/unified" 8262 + } 8263 + }, 8264 + "node_modules/unist-util-position": { 8265 + "version": "5.0.0", 8266 + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", 8267 + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", 8268 + "dependencies": { 8269 + "@types/unist": "^3.0.0" 8270 + }, 8271 + "funding": { 8272 + "type": "opencollective", 8273 + "url": "https://opencollective.com/unified" 8274 + } 8275 + }, 8276 + "node_modules/unist-util-position-from-estree": { 8277 + "version": "2.0.0", 8278 + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", 8279 + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", 8280 + "dependencies": { 8281 + "@types/unist": "^3.0.0" 8282 + }, 8283 + "funding": { 8284 + "type": "opencollective", 8285 + "url": "https://opencollective.com/unified" 8286 + } 8287 + }, 8288 + "node_modules/unist-util-remove-position": { 8289 + "version": "5.0.0", 8290 + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", 8291 + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", 8292 + "dependencies": { 8293 + "@types/unist": "^3.0.0", 8294 + "unist-util-visit": "^5.0.0" 8295 + }, 8296 + "funding": { 8297 + "type": "opencollective", 8298 + "url": "https://opencollective.com/unified" 8299 + } 8300 + }, 8301 + "node_modules/unist-util-select": { 8302 + "version": "4.0.3", 8303 + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.3.tgz", 8304 + "integrity": "sha512-1074+K9VyR3NyUz3lgNtHKm7ln+jSZXtLJM4E22uVuoFn88a/Go2pX8dusrt/W+KWH1ncn8jcd8uCQuvXb/fXA==", 8305 + "dependencies": { 8306 + "@types/unist": "^2.0.0", 8307 + "css-selector-parser": "^1.0.0", 8308 + "nth-check": "^2.0.0", 8309 + "zwitch": "^2.0.0" 8310 + }, 8311 + "funding": { 8312 + "type": "opencollective", 8313 + "url": "https://opencollective.com/unified" 8314 + } 8315 + }, 8316 + "node_modules/unist-util-select/node_modules/@types/unist": { 8317 + "version": "2.0.11", 8318 + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", 8319 + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" 8320 + }, 8321 + "node_modules/unist-util-stringify-position": { 8322 + "version": "4.0.0", 8323 + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", 8324 + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", 8325 + "dependencies": { 8326 + "@types/unist": "^3.0.0" 8327 + }, 8328 + "funding": { 8329 + "type": "opencollective", 8330 + "url": "https://opencollective.com/unified" 8331 + } 8332 + }, 8333 + "node_modules/unist-util-visit": { 8334 + "version": "5.0.0", 8335 + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", 8336 + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", 8337 + "dependencies": { 8338 + "@types/unist": "^3.0.0", 8339 + "unist-util-is": "^6.0.0", 8340 + "unist-util-visit-parents": "^6.0.0" 8341 + }, 8342 + "funding": { 8343 + "type": "opencollective", 8344 + "url": "https://opencollective.com/unified" 8345 + } 8346 + }, 8347 + "node_modules/unist-util-visit-children": { 8348 + "version": "3.0.0", 8349 + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", 8350 + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", 8351 + "dependencies": { 8352 + "@types/unist": "^3.0.0" 8353 + }, 8354 + "funding": { 8355 + "type": "opencollective", 8356 + "url": "https://opencollective.com/unified" 8357 + } 8358 + }, 8359 + "node_modules/unist-util-visit-parents": { 8360 + "version": "6.0.1", 8361 + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", 8362 + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", 8363 + "dependencies": { 8364 + "@types/unist": "^3.0.0", 8365 + "unist-util-is": "^6.0.0" 8366 + }, 8367 + "funding": { 8368 + "type": "opencollective", 8369 + "url": "https://opencollective.com/unified" 8370 + } 8371 + }, 8372 + "node_modules/unstorage": { 8373 + "version": "1.14.4", 8374 + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.14.4.tgz", 8375 + "integrity": "sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==", 8376 + "dependencies": { 8377 + "anymatch": "^3.1.3", 8378 + "chokidar": "^3.6.0", 8379 + "destr": "^2.0.3", 8380 + "h3": "^1.13.0", 8381 + "lru-cache": "^10.4.3", 8382 + "node-fetch-native": "^1.6.4", 8383 + "ofetch": "^1.4.1", 8384 + "ufo": "^1.5.4" 8385 + }, 8386 + "peerDependencies": { 8387 + "@azure/app-configuration": "^1.8.0", 8388 + "@azure/cosmos": "^4.2.0", 8389 + "@azure/data-tables": "^13.3.0", 8390 + "@azure/identity": "^4.5.0", 8391 + "@azure/keyvault-secrets": "^4.9.0", 8392 + "@azure/storage-blob": "^12.26.0", 8393 + "@capacitor/preferences": "^6.0.3", 8394 + "@deno/kv": ">=0.8.4", 8395 + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", 8396 + "@planetscale/database": "^1.19.0", 8397 + "@upstash/redis": "^1.34.3", 8398 + "@vercel/blob": ">=0.27.0", 8399 + "@vercel/kv": "^1.0.1", 8400 + "aws4fetch": "^1.0.20", 8401 + "db0": ">=0.2.1", 8402 + "idb-keyval": "^6.2.1", 8403 + "ioredis": "^5.4.2", 8404 + "uploadthing": "^7.4.1" 8405 + }, 8406 + "peerDependenciesMeta": { 8407 + "@azure/app-configuration": { 8408 + "optional": true 8409 + }, 8410 + "@azure/cosmos": { 8411 + "optional": true 8412 + }, 8413 + "@azure/data-tables": { 8414 + "optional": true 8415 + }, 8416 + "@azure/identity": { 8417 + "optional": true 8418 + }, 8419 + "@azure/keyvault-secrets": { 8420 + "optional": true 8421 + }, 8422 + "@azure/storage-blob": { 8423 + "optional": true 8424 + }, 8425 + "@capacitor/preferences": { 8426 + "optional": true 8427 + }, 8428 + "@deno/kv": { 8429 + "optional": true 8430 + }, 8431 + "@netlify/blobs": { 8432 + "optional": true 8433 + }, 8434 + "@planetscale/database": { 8435 + "optional": true 8436 + }, 8437 + "@upstash/redis": { 8438 + "optional": true 8439 + }, 8440 + "@vercel/blob": { 8441 + "optional": true 8442 + }, 8443 + "@vercel/kv": { 8444 + "optional": true 8445 + }, 8446 + "aws4fetch": { 8447 + "optional": true 8448 + }, 8449 + "db0": { 8450 + "optional": true 8451 + }, 8452 + "idb-keyval": { 8453 + "optional": true 8454 + }, 8455 + "ioredis": { 8456 + "optional": true 8457 + }, 8458 + "uploadthing": { 8459 + "optional": true 8460 + } 8461 + } 8462 + }, 8463 + "node_modules/unstorage/node_modules/chokidar": { 8464 + "version": "3.6.0", 8465 + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 8466 + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 8467 + "dependencies": { 8468 + "anymatch": "~3.1.2", 8469 + "braces": "~3.0.2", 8470 + "glob-parent": "~5.1.2", 8471 + "is-binary-path": "~2.1.0", 8472 + "is-glob": "~4.0.1", 8473 + "normalize-path": "~3.0.0", 8474 + "readdirp": "~3.6.0" 8475 + }, 8476 + "engines": { 8477 + "node": ">= 8.10.0" 8478 + }, 8479 + "funding": { 8480 + "url": "https://paulmillr.com/funding/" 8481 + }, 8482 + "optionalDependencies": { 8483 + "fsevents": "~2.3.2" 8484 + } 8485 + }, 8486 + "node_modules/unstorage/node_modules/picomatch": { 8487 + "version": "2.3.1", 8488 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 8489 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 8490 + "engines": { 8491 + "node": ">=8.6" 8492 + }, 8493 + "funding": { 8494 + "url": "https://github.com/sponsors/jonschlinkert" 8495 + } 8496 + }, 8497 + "node_modules/unstorage/node_modules/readdirp": { 8498 + "version": "3.6.0", 8499 + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 8500 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 8501 + "dependencies": { 8502 + "picomatch": "^2.2.1" 8503 + }, 8504 + "engines": { 8505 + "node": ">=8.10.0" 8506 + } 8507 + }, 8508 + "node_modules/update-browserslist-db": { 8509 + "version": "1.1.2", 8510 + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", 8511 + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", 8512 + "funding": [ 8513 + { 8514 + "type": "opencollective", 8515 + "url": "https://opencollective.com/browserslist" 8516 + }, 8517 + { 8518 + "type": "tidelift", 8519 + "url": "https://tidelift.com/funding/github/npm/browserslist" 8520 + }, 8521 + { 8522 + "type": "github", 8523 + "url": "https://github.com/sponsors/ai" 8524 + } 8525 + ], 8526 + "dependencies": { 8527 + "escalade": "^3.2.0", 8528 + "picocolors": "^1.1.1" 8529 + }, 8530 + "bin": { 8531 + "update-browserslist-db": "cli.js" 8532 + }, 8533 + "peerDependencies": { 8534 + "browserslist": ">= 4.21.0" 8535 + } 8536 + }, 8537 + "node_modules/util-deprecate": { 8538 + "version": "1.0.2", 8539 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 8540 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 8541 + }, 8542 + "node_modules/vfile": { 8543 + "version": "6.0.3", 8544 + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", 8545 + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", 8546 + "dependencies": { 8547 + "@types/unist": "^3.0.0", 8548 + "vfile-message": "^4.0.0" 8549 + }, 8550 + "funding": { 8551 + "type": "opencollective", 8552 + "url": "https://opencollective.com/unified" 8553 + } 8554 + }, 8555 + "node_modules/vfile-location": { 8556 + "version": "5.0.3", 8557 + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", 8558 + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", 8559 + "dependencies": { 8560 + "@types/unist": "^3.0.0", 8561 + "vfile": "^6.0.0" 8562 + }, 8563 + "funding": { 8564 + "type": "opencollective", 8565 + "url": "https://opencollective.com/unified" 8566 + } 8567 + }, 8568 + "node_modules/vfile-message": { 8569 + "version": "4.0.2", 8570 + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", 8571 + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", 8572 + "dependencies": { 8573 + "@types/unist": "^3.0.0", 8574 + "unist-util-stringify-position": "^4.0.0" 8575 + }, 8576 + "funding": { 8577 + "type": "opencollective", 8578 + "url": "https://opencollective.com/unified" 8579 + } 8580 + }, 8581 + "node_modules/vite": { 8582 + "version": "6.1.1", 8583 + "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", 8584 + "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", 8585 + "dependencies": { 8586 + "esbuild": "^0.24.2", 8587 + "postcss": "^8.5.2", 8588 + "rollup": "^4.30.1" 8589 + }, 8590 + "bin": { 8591 + "vite": "bin/vite.js" 8592 + }, 8593 + "engines": { 8594 + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" 8595 + }, 8596 + "funding": { 8597 + "url": "https://github.com/vitejs/vite?sponsor=1" 8598 + }, 8599 + "optionalDependencies": { 8600 + "fsevents": "~2.3.3" 8601 + }, 8602 + "peerDependencies": { 8603 + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", 8604 + "jiti": ">=1.21.0", 8605 + "less": "*", 8606 + "lightningcss": "^1.21.0", 8607 + "sass": "*", 8608 + "sass-embedded": "*", 8609 + "stylus": "*", 8610 + "sugarss": "*", 8611 + "terser": "^5.16.0", 8612 + "tsx": "^4.8.1", 8613 + "yaml": "^2.4.2" 8614 + }, 8615 + "peerDependenciesMeta": { 8616 + "@types/node": { 8617 + "optional": true 8618 + }, 8619 + "jiti": { 8620 + "optional": true 8621 + }, 8622 + "less": { 8623 + "optional": true 8624 + }, 8625 + "lightningcss": { 8626 + "optional": true 8627 + }, 8628 + "sass": { 8629 + "optional": true 8630 + }, 8631 + "sass-embedded": { 8632 + "optional": true 8633 + }, 8634 + "stylus": { 8635 + "optional": true 8636 + }, 8637 + "sugarss": { 8638 + "optional": true 8639 + }, 8640 + "terser": { 8641 + "optional": true 8642 + }, 8643 + "tsx": { 8644 + "optional": true 8645 + }, 8646 + "yaml": { 8647 + "optional": true 8648 + } 8649 + } 8650 + }, 8651 + "node_modules/vite-plugin-pagefind": { 8652 + "version": "1.0.5", 8653 + "resolved": "https://registry.npmjs.org/vite-plugin-pagefind/-/vite-plugin-pagefind-1.0.5.tgz", 8654 + "integrity": "sha512-Asq/3E7PgNeqraEVmaqAgieeREGdLBqDqwkUYlLp3FLTpumIFxmJftTvJWZGSKtYKsL5uTb6Jlepj76pNl9f3Q==", 8655 + "dev": true, 8656 + "dependencies": { 8657 + "colorette": "^2.0.20", 8658 + "package-manager-detector": "^0.2.8" 8659 + }, 8660 + "peerDependencies": { 8661 + "vite": "^6.0.0" 8662 + } 8663 + }, 8664 + "node_modules/vitefu": { 8665 + "version": "1.0.5", 8666 + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.5.tgz", 8667 + "integrity": "sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==", 8668 + "peerDependencies": { 8669 + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" 8670 + }, 8671 + "peerDependenciesMeta": { 8672 + "vite": { 8673 + "optional": true 8674 + } 8675 + } 8676 + }, 8677 + "node_modules/volar-service-css": { 8678 + "version": "0.0.62", 8679 + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.62.tgz", 8680 + "integrity": "sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==", 8681 + "dependencies": { 8682 + "vscode-css-languageservice": "^6.3.0", 8683 + "vscode-languageserver-textdocument": "^1.0.11", 8684 + "vscode-uri": "^3.0.8" 8685 + }, 8686 + "peerDependencies": { 8687 + "@volar/language-service": "~2.4.0" 8688 + }, 8689 + "peerDependenciesMeta": { 8690 + "@volar/language-service": { 8691 + "optional": true 8692 + } 8693 + } 8694 + }, 8695 + "node_modules/volar-service-emmet": { 8696 + "version": "0.0.62", 8697 + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.62.tgz", 8698 + "integrity": "sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==", 8699 + "dependencies": { 8700 + "@emmetio/css-parser": "^0.4.0", 8701 + "@emmetio/html-matcher": "^1.3.0", 8702 + "@vscode/emmet-helper": "^2.9.3", 8703 + "vscode-uri": "^3.0.8" 8704 + }, 8705 + "peerDependencies": { 8706 + "@volar/language-service": "~2.4.0" 8707 + }, 8708 + "peerDependenciesMeta": { 8709 + "@volar/language-service": { 8710 + "optional": true 8711 + } 8712 + } 8713 + }, 8714 + "node_modules/volar-service-html": { 8715 + "version": "0.0.62", 8716 + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.62.tgz", 8717 + "integrity": "sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==", 8718 + "dependencies": { 8719 + "vscode-html-languageservice": "^5.3.0", 8720 + "vscode-languageserver-textdocument": "^1.0.11", 8721 + "vscode-uri": "^3.0.8" 8722 + }, 8723 + "peerDependencies": { 8724 + "@volar/language-service": "~2.4.0" 8725 + }, 8726 + "peerDependenciesMeta": { 8727 + "@volar/language-service": { 8728 + "optional": true 8729 + } 8730 + } 8731 + }, 8732 + "node_modules/volar-service-prettier": { 8733 + "version": "0.0.62", 8734 + "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.62.tgz", 8735 + "integrity": "sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==", 8736 + "dependencies": { 8737 + "vscode-uri": "^3.0.8" 8738 + }, 8739 + "peerDependencies": { 8740 + "@volar/language-service": "~2.4.0", 8741 + "prettier": "^2.2 || ^3.0" 8742 + }, 8743 + "peerDependenciesMeta": { 8744 + "@volar/language-service": { 8745 + "optional": true 8746 + }, 8747 + "prettier": { 8748 + "optional": true 8749 + } 8750 + } 8751 + }, 8752 + "node_modules/volar-service-typescript": { 8753 + "version": "0.0.62", 8754 + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.62.tgz", 8755 + "integrity": "sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==", 8756 + "dependencies": { 8757 + "path-browserify": "^1.0.1", 8758 + "semver": "^7.6.2", 8759 + "typescript-auto-import-cache": "^0.3.3", 8760 + "vscode-languageserver-textdocument": "^1.0.11", 8761 + "vscode-nls": "^5.2.0", 8762 + "vscode-uri": "^3.0.8" 8763 + }, 8764 + "peerDependencies": { 8765 + "@volar/language-service": "~2.4.0" 8766 + }, 8767 + "peerDependenciesMeta": { 8768 + "@volar/language-service": { 8769 + "optional": true 8770 + } 8771 + } 8772 + }, 8773 + "node_modules/volar-service-typescript-twoslash-queries": { 8774 + "version": "0.0.62", 8775 + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.62.tgz", 8776 + "integrity": "sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==", 8777 + "dependencies": { 8778 + "vscode-uri": "^3.0.8" 8779 + }, 8780 + "peerDependencies": { 8781 + "@volar/language-service": "~2.4.0" 8782 + }, 8783 + "peerDependenciesMeta": { 8784 + "@volar/language-service": { 8785 + "optional": true 8786 + } 8787 + } 8788 + }, 8789 + "node_modules/volar-service-yaml": { 8790 + "version": "0.0.62", 8791 + "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.62.tgz", 8792 + "integrity": "sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==", 8793 + "dependencies": { 8794 + "vscode-uri": "^3.0.8", 8795 + "yaml-language-server": "~1.15.0" 8796 + }, 8797 + "peerDependencies": { 8798 + "@volar/language-service": "~2.4.0" 8799 + }, 8800 + "peerDependenciesMeta": { 8801 + "@volar/language-service": { 8802 + "optional": true 8803 + } 8804 + } 8805 + }, 8806 + "node_modules/vscode-css-languageservice": { 8807 + "version": "6.3.2", 8808 + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.2.tgz", 8809 + "integrity": "sha512-GEpPxrUTAeXWdZWHev1OJU9lz2Q2/PPBxQ2TIRmLGvQiH3WZbqaNoute0n0ewxlgtjzTW3AKZT+NHySk5Rf4Eg==", 8810 + "dependencies": { 8811 + "@vscode/l10n": "^0.0.18", 8812 + "vscode-languageserver-textdocument": "^1.0.12", 8813 + "vscode-languageserver-types": "3.17.5", 8814 + "vscode-uri": "^3.0.8" 8815 + } 8816 + }, 8817 + "node_modules/vscode-html-languageservice": { 8818 + "version": "5.3.1", 8819 + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", 8820 + "integrity": "sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==", 8821 + "dependencies": { 8822 + "@vscode/l10n": "^0.0.18", 8823 + "vscode-languageserver-textdocument": "^1.0.12", 8824 + "vscode-languageserver-types": "^3.17.5", 8825 + "vscode-uri": "^3.0.8" 8826 + } 8827 + }, 8828 + "node_modules/vscode-json-languageservice": { 8829 + "version": "4.1.8", 8830 + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", 8831 + "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", 8832 + "dependencies": { 8833 + "jsonc-parser": "^3.0.0", 8834 + "vscode-languageserver-textdocument": "^1.0.1", 8835 + "vscode-languageserver-types": "^3.16.0", 8836 + "vscode-nls": "^5.0.0", 8837 + "vscode-uri": "^3.0.2" 8838 + }, 8839 + "engines": { 8840 + "npm": ">=7.0.0" 8841 + } 8842 + }, 8843 + "node_modules/vscode-json-languageservice/node_modules/jsonc-parser": { 8844 + "version": "3.3.1", 8845 + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", 8846 + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" 8847 + }, 8848 + "node_modules/vscode-jsonrpc": { 8849 + "version": "8.2.0", 8850 + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", 8851 + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", 8852 + "engines": { 8853 + "node": ">=14.0.0" 8854 + } 8855 + }, 8856 + "node_modules/vscode-languageserver": { 8857 + "version": "9.0.1", 8858 + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", 8859 + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", 8860 + "dependencies": { 8861 + "vscode-languageserver-protocol": "3.17.5" 8862 + }, 8863 + "bin": { 8864 + "installServerIntoExtension": "bin/installServerIntoExtension" 8865 + } 8866 + }, 8867 + "node_modules/vscode-languageserver-protocol": { 8868 + "version": "3.17.5", 8869 + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", 8870 + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", 8871 + "dependencies": { 8872 + "vscode-jsonrpc": "8.2.0", 8873 + "vscode-languageserver-types": "3.17.5" 8874 + } 8875 + }, 8876 + "node_modules/vscode-languageserver-textdocument": { 8877 + "version": "1.0.12", 8878 + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", 8879 + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==" 8880 + }, 8881 + "node_modules/vscode-languageserver-types": { 8882 + "version": "3.17.5", 8883 + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", 8884 + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==" 8885 + }, 8886 + "node_modules/vscode-nls": { 8887 + "version": "5.2.0", 8888 + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", 8889 + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==" 8890 + }, 8891 + "node_modules/vscode-uri": { 8892 + "version": "3.1.0", 8893 + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", 8894 + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==" 8895 + }, 8896 + "node_modules/w3c-keyname": { 8897 + "version": "2.2.8", 8898 + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", 8899 + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" 8900 + }, 8901 + "node_modules/web-namespaces": { 8902 + "version": "2.0.1", 8903 + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", 8904 + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", 8905 + "funding": { 8906 + "type": "github", 8907 + "url": "https://github.com/sponsors/wooorm" 8908 + } 8909 + }, 8910 + "node_modules/whatwg-encoding": { 8911 + "version": "3.1.1", 8912 + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", 8913 + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", 8914 + "dependencies": { 8915 + "iconv-lite": "0.6.3" 8916 + }, 8917 + "engines": { 8918 + "node": ">=18" 8919 + } 8920 + }, 8921 + "node_modules/whatwg-mimetype": { 8922 + "version": "4.0.0", 8923 + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", 8924 + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", 8925 + "engines": { 8926 + "node": ">=18" 8927 + } 8928 + }, 8929 + "node_modules/which": { 8930 + "version": "2.0.2", 8931 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 8932 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 8933 + "dependencies": { 8934 + "isexe": "^2.0.0" 8935 + }, 8936 + "bin": { 8937 + "node-which": "bin/node-which" 8938 + }, 8939 + "engines": { 8940 + "node": ">= 8" 8941 + } 8942 + }, 8943 + "node_modules/which-pm": { 8944 + "version": "3.0.1", 8945 + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-3.0.1.tgz", 8946 + "integrity": "sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==", 8947 + "dependencies": { 8948 + "load-yaml-file": "^0.2.0" 8949 + }, 8950 + "engines": { 8951 + "node": ">=18.12" 8952 + } 8953 + }, 8954 + "node_modules/which-pm-runs": { 8955 + "version": "1.1.0", 8956 + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", 8957 + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", 8958 + "engines": { 8959 + "node": ">=4" 8960 + } 8961 + }, 8962 + "node_modules/wicked-good-xpath": { 8963 + "version": "1.3.0", 8964 + "resolved": "https://registry.npmjs.org/wicked-good-xpath/-/wicked-good-xpath-1.3.0.tgz", 8965 + "integrity": "sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==" 8966 + }, 8967 + "node_modules/widest-line": { 8968 + "version": "5.0.0", 8969 + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", 8970 + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", 8971 + "dependencies": { 8972 + "string-width": "^7.0.0" 8973 + }, 8974 + "engines": { 8975 + "node": ">=18" 8976 + }, 8977 + "funding": { 8978 + "url": "https://github.com/sponsors/sindresorhus" 8979 + } 8980 + }, 8981 + "node_modules/wrap-ansi": { 8982 + "version": "9.0.0", 8983 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", 8984 + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", 8985 + "dependencies": { 8986 + "ansi-styles": "^6.2.1", 8987 + "string-width": "^7.0.0", 8988 + "strip-ansi": "^7.1.0" 8989 + }, 8990 + "engines": { 8991 + "node": ">=18" 8992 + }, 8993 + "funding": { 8994 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 8995 + } 8996 + }, 8997 + "node_modules/wrap-ansi-cjs": { 8998 + "name": "wrap-ansi", 8999 + "version": "7.0.0", 9000 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 9001 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 9002 + "dependencies": { 9003 + "ansi-styles": "^4.0.0", 9004 + "string-width": "^4.1.0", 9005 + "strip-ansi": "^6.0.0" 9006 + }, 9007 + "engines": { 9008 + "node": ">=10" 9009 + }, 9010 + "funding": { 9011 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 9012 + } 9013 + }, 9014 + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 9015 + "version": "5.0.1", 9016 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 9017 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 9018 + "engines": { 9019 + "node": ">=8" 9020 + } 9021 + }, 9022 + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 9023 + "version": "4.3.0", 9024 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 9025 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 9026 + "dependencies": { 9027 + "color-convert": "^2.0.1" 9028 + }, 9029 + "engines": { 9030 + "node": ">=8" 9031 + }, 9032 + "funding": { 9033 + "url": "https://github.com/chalk/ansi-styles?sponsor=1" 9034 + } 9035 + }, 9036 + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 9037 + "version": "8.0.0", 9038 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 9039 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 9040 + }, 9041 + "node_modules/wrap-ansi-cjs/node_modules/string-width": { 9042 + "version": "4.2.3", 9043 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 9044 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 9045 + "dependencies": { 9046 + "emoji-regex": "^8.0.0", 9047 + "is-fullwidth-code-point": "^3.0.0", 9048 + "strip-ansi": "^6.0.1" 9049 + }, 9050 + "engines": { 9051 + "node": ">=8" 9052 + } 9053 + }, 9054 + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 9055 + "version": "6.0.1", 9056 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 9057 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 9058 + "dependencies": { 9059 + "ansi-regex": "^5.0.1" 9060 + }, 9061 + "engines": { 9062 + "node": ">=8" 9063 + } 9064 + }, 9065 + "node_modules/xmldom-sre": { 9066 + "version": "0.1.31", 9067 + "resolved": "https://registry.npmjs.org/xmldom-sre/-/xmldom-sre-0.1.31.tgz", 9068 + "integrity": "sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==", 9069 + "engines": { 9070 + "node": ">=0.1" 9071 + } 9072 + }, 9073 + "node_modules/xxhash-wasm": { 9074 + "version": "1.1.0", 9075 + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", 9076 + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==" 9077 + }, 9078 + "node_modules/y18n": { 9079 + "version": "5.0.8", 9080 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 9081 + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 9082 + "engines": { 9083 + "node": ">=10" 9084 + } 9085 + }, 9086 + "node_modules/yallist": { 9087 + "version": "3.1.1", 9088 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 9089 + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 9090 + }, 9091 + "node_modules/yaml": { 9092 + "version": "2.7.0", 9093 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", 9094 + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", 9095 + "bin": { 9096 + "yaml": "bin.mjs" 9097 + }, 9098 + "engines": { 9099 + "node": ">= 14" 9100 + } 9101 + }, 9102 + "node_modules/yaml-language-server": { 9103 + "version": "1.15.0", 9104 + "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.15.0.tgz", 9105 + "integrity": "sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==", 9106 + "dependencies": { 9107 + "ajv": "^8.11.0", 9108 + "lodash": "4.17.21", 9109 + "request-light": "^0.5.7", 9110 + "vscode-json-languageservice": "4.1.8", 9111 + "vscode-languageserver": "^7.0.0", 9112 + "vscode-languageserver-textdocument": "^1.0.1", 9113 + "vscode-languageserver-types": "^3.16.0", 9114 + "vscode-nls": "^5.0.0", 9115 + "vscode-uri": "^3.0.2", 9116 + "yaml": "2.2.2" 9117 + }, 9118 + "bin": { 9119 + "yaml-language-server": "bin/yaml-language-server" 9120 + }, 9121 + "optionalDependencies": { 9122 + "prettier": "2.8.7" 9123 + } 9124 + }, 9125 + "node_modules/yaml-language-server/node_modules/prettier": { 9126 + "version": "2.8.7", 9127 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", 9128 + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", 9129 + "optional": true, 9130 + "bin": { 9131 + "prettier": "bin-prettier.js" 9132 + }, 9133 + "engines": { 9134 + "node": ">=10.13.0" 9135 + }, 9136 + "funding": { 9137 + "url": "https://github.com/prettier/prettier?sponsor=1" 9138 + } 9139 + }, 9140 + "node_modules/yaml-language-server/node_modules/request-light": { 9141 + "version": "0.5.8", 9142 + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", 9143 + "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==" 9144 + }, 9145 + "node_modules/yaml-language-server/node_modules/vscode-jsonrpc": { 9146 + "version": "6.0.0", 9147 + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz", 9148 + "integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==", 9149 + "engines": { 9150 + "node": ">=8.0.0 || >=10.0.0" 9151 + } 9152 + }, 9153 + "node_modules/yaml-language-server/node_modules/vscode-languageserver": { 9154 + "version": "7.0.0", 9155 + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz", 9156 + "integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==", 9157 + "dependencies": { 9158 + "vscode-languageserver-protocol": "3.16.0" 9159 + }, 9160 + "bin": { 9161 + "installServerIntoExtension": "bin/installServerIntoExtension" 9162 + } 9163 + }, 9164 + "node_modules/yaml-language-server/node_modules/vscode-languageserver-protocol": { 9165 + "version": "3.16.0", 9166 + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz", 9167 + "integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==", 9168 + "dependencies": { 9169 + "vscode-jsonrpc": "6.0.0", 9170 + "vscode-languageserver-types": "3.16.0" 9171 + } 9172 + }, 9173 + "node_modules/yaml-language-server/node_modules/vscode-languageserver-types": { 9174 + "version": "3.16.0", 9175 + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz", 9176 + "integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==" 9177 + }, 9178 + "node_modules/yaml-language-server/node_modules/yaml": { 9179 + "version": "2.2.2", 9180 + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", 9181 + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", 9182 + "engines": { 9183 + "node": ">= 14" 9184 + } 9185 + }, 9186 + "node_modules/yargs": { 9187 + "version": "17.7.2", 9188 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 9189 + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 9190 + "dependencies": { 9191 + "cliui": "^8.0.1", 9192 + "escalade": "^3.1.1", 9193 + "get-caller-file": "^2.0.5", 9194 + "require-directory": "^2.1.1", 9195 + "string-width": "^4.2.3", 9196 + "y18n": "^5.0.5", 9197 + "yargs-parser": "^21.1.1" 9198 + }, 9199 + "engines": { 9200 + "node": ">=12" 9201 + } 9202 + }, 9203 + "node_modules/yargs-parser": { 9204 + "version": "21.1.1", 9205 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 9206 + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 9207 + "engines": { 9208 + "node": ">=12" 9209 + } 9210 + }, 9211 + "node_modules/yargs/node_modules/ansi-regex": { 9212 + "version": "5.0.1", 9213 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 9214 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 9215 + "engines": { 9216 + "node": ">=8" 9217 + } 9218 + }, 9219 + "node_modules/yargs/node_modules/emoji-regex": { 9220 + "version": "8.0.0", 9221 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 9222 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 9223 + }, 9224 + "node_modules/yargs/node_modules/string-width": { 9225 + "version": "4.2.3", 9226 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 9227 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 9228 + "dependencies": { 9229 + "emoji-regex": "^8.0.0", 9230 + "is-fullwidth-code-point": "^3.0.0", 9231 + "strip-ansi": "^6.0.1" 9232 + }, 9233 + "engines": { 9234 + "node": ">=8" 9235 + } 9236 + }, 9237 + "node_modules/yargs/node_modules/strip-ansi": { 9238 + "version": "6.0.1", 9239 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 9240 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 9241 + "dependencies": { 9242 + "ansi-regex": "^5.0.1" 9243 + }, 9244 + "engines": { 9245 + "node": ">=8" 9246 + } 9247 + }, 9248 + "node_modules/yocto-queue": { 9249 + "version": "1.1.1", 9250 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", 9251 + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", 9252 + "engines": { 9253 + "node": ">=12.20" 9254 + }, 9255 + "funding": { 9256 + "url": "https://github.com/sponsors/sindresorhus" 9257 + } 9258 + }, 9259 + "node_modules/yocto-spinner": { 9260 + "version": "0.2.0", 9261 + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.0.tgz", 9262 + "integrity": "sha512-Qu6WAqNLGleB687CCGcmgHIo8l+J19MX/32UrSMfbf/4L8gLoxjpOYoiHT1asiWyqvjRZbgvOhLlvne6E5Tbdw==", 9263 + "dependencies": { 9264 + "yoctocolors": "^2.1.1" 9265 + }, 9266 + "engines": { 9267 + "node": ">=18.19" 9268 + }, 9269 + "funding": { 9270 + "url": "https://github.com/sponsors/sindresorhus" 9271 + } 9272 + }, 9273 + "node_modules/yoctocolors": { 9274 + "version": "2.1.1", 9275 + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", 9276 + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", 9277 + "engines": { 9278 + "node": ">=18" 9279 + }, 9280 + "funding": { 9281 + "url": "https://github.com/sponsors/sindresorhus" 9282 + } 9283 + }, 9284 + "node_modules/zimmerframe": { 9285 + "version": "1.1.2", 9286 + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", 9287 + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==" 9288 + }, 9289 + "node_modules/zod": { 9290 + "version": "3.24.2", 9291 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", 9292 + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", 9293 + "funding": { 9294 + "url": "https://github.com/sponsors/colinhacks" 9295 + } 9296 + }, 9297 + "node_modules/zod-to-json-schema": { 9298 + "version": "3.24.2", 9299 + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.2.tgz", 9300 + "integrity": "sha512-pNUqrcSxuuB3/+jBbU8qKUbTbDqYUaG1vf5cXFjbhGgoUuA1amO/y4Q8lzfOhHU8HNPK6VFJ18lBDKj3OHyDsg==", 9301 + "peerDependencies": { 9302 + "zod": "^3.24.1" 9303 + } 9304 + }, 9305 + "node_modules/zod-to-ts": { 9306 + "version": "1.2.0", 9307 + "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz", 9308 + "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", 9309 + "peerDependencies": { 9310 + "typescript": "^4.9.4 || ^5.0.2", 9311 + "zod": "^3" 9312 + } 9313 + }, 9314 + "node_modules/zwitch": { 9315 + "version": "2.0.4", 9316 + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", 9317 + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", 9318 + "funding": { 9319 + "type": "github", 9320 + "url": "https://github.com/sponsors/wooorm" 9321 + } 9322 + } 9323 + } 9324 + }
+51
package.json
··· 1 + { 2 + "name": "blog-template", 3 + "type": "module", 4 + "version": "0.0.1", 5 + "scripts": { 6 + "dev": "astro dev", 7 + "start": "astro dev", 8 + "build": "astro check && astro build && pagefind", 9 + "preview": "astro preview", 10 + "astro": "astro", 11 + "format": "prettier --write ." 12 + }, 13 + "dependencies": { 14 + "@ascorbic/bluesky-loader": "^0.0.3", 15 + "@astro-community/astro-embed-utils": "^0.1.3", 16 + "@astrojs/check": "^0.9.4", 17 + "@astrojs/mdx": "^4.0.8", 18 + "@astrojs/react": "^4.2.0", 19 + "@astrojs/rss": "^4.0.11", 20 + "@astrojs/sitemap": "^3.2.1", 21 + "@astrojs/svelte": "^7.0.4", 22 + "@astrojs/tailwind": "^6.0.0", 23 + "@codesandbox/sandpack-react": "^2.20.0", 24 + "@codesandbox/sandpack-themes": "^2.0.21", 25 + "@shikijs/transformers": "^1.24.2", 26 + "@tailwindcss/forms": "^0.5.9", 27 + "@types/react": "^19.0.10", 28 + "@types/react-dom": "^19.0.4", 29 + "astro": "^5.3.0", 30 + "astro-custom-embeds": "^0.0.1", 31 + "astro-og-canvas": "^0.7.0", 32 + "astro-pagefind": "^1.8.0", 33 + "cheerio": "^1.0.0", 34 + "lite-youtube-embed": "^0.3.3", 35 + "react": "^19.0.0", 36 + "react-dom": "^19.0.0", 37 + "rehype-mathjax": "^7.1.0", 38 + "remark-math": "^6.0.0", 39 + "svelte": "^5.1.1", 40 + "tailwind-merge": "^2.5.4", 41 + "tailwindcss": "^3.4.14", 42 + "typescript": "^5.6.3" 43 + }, 44 + "devDependencies": { 45 + "@sveltejs/vite-plugin-svelte": "^5.0.3", 46 + "@tailwindcss/typography": "^0.5.15", 47 + "pagefind": "^1.3.0", 48 + "vite-plugin-pagefind": "^1.0.5" 49 + }, 50 + "license": "MIT" 51 + }
src/assets/backgrounds/background.jpg

This is a binary file and will not be displayed.

+10
src/assets/excalidraw-demo.svg
··· 1 + <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1939.1623859019862 600.0397711142972" width="3878.3247718039725" height="1200.0795422285944"> 2 + <!-- svg-source:excalidraw --> 3 + 4 + <defs> 5 + <style class="style-fonts"> 6 + @font-face { font-family: Virgil; src: url(data:font/woff2;base64,d09GMgABAAAAABM4AAsAAAAAHlAAABLsAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAXBEICrNIpggLRgABNgIkA4EIBCAFgxwHIBuJFlGUrVqS7OeBbUxtOBSDCcPoQodNK1gaQj5FLAYMOPM+iGiMNrsv4op5U0mfEI94I4l78gT1ueFpm//uDu6IOuLQJg0wa5MWBBWjA2ttrMpVtqsI9/eXP5ysacrtT3p1Kljw2QFDnCOgXe9cfQV+8zt+lUiLxiQ2Bw4YtKvC693/s83Ydx2UUatSnlVW9PHXp2pm2pn2ywr4KhByAkTMVnzoXtWMpWPhPA95TC4/82VuOoslHZPOugwKsul6v+taWjQ2lSZYQTEoXdStMpMU884yM2BycaKEpRqh6cAKoLvhDABooERMAvaCdP5IGGRr+LAtAkAAYV+LwQBUiOiwaP1/IlZWDNQKAC5dhoA81n8T8sycoiHhyQqQ7iRh7DlD4XooYjxRYyWTDmMQJfd7Q+Ffmq/mg7lpLphtEyIAJHZBmTkclVtDgsN2rmX3PrxiywcKJAxwdm+EOEn2mtWz/F3D2XbeQRmCcLEmkq8UBqT7C7MydHZOQo94qdXgKFLwvdjehmJrhDXXMjw3aIZlVkUmpWROP61teG/gC1AU8clR0+sYXhcPYnkKKuon7NkCT9ZqTJ5GBbQ9IACUPY9D1Stk1sn5ndi0seDwoNi9cgO3BcgJc/HtafqoEhcN6L+iz1Hi306pf6AHOVSOFtgRHSb9OwRFJi8j7+rVcDpUk9Aoil1whjc4h8rpxTalRnDYFSkXKprnV65geIJVrLxw40IuZDl7+rQua7SVZaS7ihAK1D1cqwuASDdt2ybIMazaKoQAK76HASpKC4ZpMg+h1fNtIWyzkQUjb4DAbWFVpC4V+7Sp29eRJphG5KHEpNMGfdvD7VW7ItVdcZkCDJ6vVOcj5x4+zOzHMqugzUBmue2224yLlHqtFu1HGdXiGMoYhCWlVqkmhslxKLWcwKnSNCEjKvtoh0QnQ9XKee0sS5ZZzDy7aROMrz6uK4k4CMWEijY/BuVV7HCjUXKC7jqkIq+vZXaCtNnx40MeSTbjVUSvaxN+ec4xLFO85bTocDP6IEI6+7DxIilrnXiFJ1PzwkKDOXKYXZcx0nOKQonNEY0MYYb07l4Yt050RuL8ZT5lQRO5b0+hJuntzIadWxkfqn3AuVW5vfFELg8udnPRgIlVw6H/KJ3D7pXOiCj7ZGv5nrmGPoYO7u5JV6RbOpaRSbP3Mi54C98vi83iVaRZZkl9w4llOtcmmZPFiwR9j8A4GDNMoeRsQMhnazokFgaoRqkXzARVCgLHuy7v357aUSGzbtBVOFgT21yoDjQh4VM1CS28377PdnYW2Ca5K9vgTuNMJs6n+bq0NMFm86ef0M1cDrrnTtSDzojgBaJp0u6n+SyTUcyWzK7NshbS6V4Y5rbKdP+Ae5y6mh2jiFKU8a/EY3OoFy6/y2EnBVBFtA9VKqeAcqgK3sA0TIymZutNuqub3bRmwWnJHKnn70C1Yz9KVOTaA6Q3C59zTDuuDeA2VInnz5fP9crKgg1vNDaGLaHERjyvnYLUfd5v9bTyx+6TjsDtVQCVRg4dlkHRZRU5EWlOpBtOm6TzIElchCBXYLk2QDp3FA4m8UHAAFWmsySl6fvcT3OOtx/C9ejjfOPcI+pXj1EUUVt3lqMqKv44EWUPfNxstPn+dlM0kBLsdoloUD+i/sxx57KsO02SQ01vIJWiSKM+2ZuTHKvN24Vqj//o0rM4v8YqUwnzQijtVFfrLA1KOic+BdWaxulgsahUiAUAsoPH7XaWL7ttpNM4jYHzBu5i5I3Gg1W50MRsQCIjXJFaDZms/zfkIJ0TZA2B+NvAcb9SIfilX6t5KigWxmDwJNnSDtLe/BzpS7ad7eX+mmY+QgUa1NcoqDoTMRtCBwJ48CcoA97h2G1Rihl5wrEBsKtREDM81v08Nj7Jaub33UgyScfDhbJPtGqBMQ+4rxn3+1sK0p8QN6dtNQFrogJ8DNPX/dEMTYeoSptUWQYVGV++zA6QDjcni2IDzjTuwetzl2YsnO5/qUxyMXBaNIUqBTjEU6I28bBC4/XeLlFIzDejKHZ0ow35MQFi01LC83yCOSzNy6goa9LEq5lUF1aCc2QdincN4fkf5+HJhdSnM9aPEqmV0Vc1vWnFGjk1YxNtToD/CLujaV7SacpbF7M3cqtyIMFLY7dQub3xAOnVyXrhc+yuoEstqn+u0cCDh4pVHlfR97gCK4ZcWlxiV+vx7NnmfaRXcukNWZXmqRfQ8tpprqWbq87nJaURdYefaTQweGQvXL33MlwVijPLLqM1fWtDDtk0XqXOUHICSjX248Ya2Wgtj1QMibZRcL+9/HsvHmL3jMCD7rJBUa+oYn5ENGMAw1zLSbOtjlVxu/NkF5yB/VE6VdXtiNLnQ5Up8HDEdpNYcTGvGOa2anC9VovuDx2Kbd1HvTX2TDWYjHHMoGHuMz6LPsiqB/SxwTbwTubuqzoru7v+bGmWyVKBS66LuKsmJk77XeKxbKkj5/Jy7IKxebEBHaGEgf/IHU6VQ5vXZhLpkJ0voygEWWsl20cSUfFxaBTnIGLJRpg7durz+aQECOrfloy3rnC7yaJ5scHZIewvmdnrqpHVAy+xJ2qaUQzmGu5a3stSp6BHzzXDnctI2zZZxDCHSLOCK7OZ9e3nQX9+gDAFovGgc0EBsoRpbNrEwiJFjRb1owz9CN3OFQwvsEsh0zlmOFLPksOEXahG7/N2cVLqFT8XIaUjVdN6muZ23+2z1ulasjPybPL5h41oU9sAD3CBi2KRWa4rZgp+pB2faMTY565O3CZhcoYkvx0SpoSFEhJSQUqgiZcFAWEjd2bw275wjf+mOS5GqxMdxo3hbKxlnXlEOyg6RIM4rTVEKTVAq4QR+xwf7+rAsXdojHpAvZ+5X2P8z/c7PLIqBOJDXE6AWtySGjx/rqyIH27MsEnaPAc7v9rT86iagu9XLl91FgFMS3DvVEVzW6S0ediGpOUXOTj4A1zdHu4WMLEVpAV3KVJtnCSpW5LmNJ5pNKjHILdCbhEzjlOxvy3Y4F0vbU4qNEs3npjPpzNeWAccKClZy1kn5Vlv5KX/sC3/e0mSXvubfxzqguobRiP8g8DaKtaOLXVBIQgucpjPgrkzTo6TQ3Ro/Wu/wDjcRKak8BacW81i7v7QYmJcu9UJtIo2iDTNd3aV+PmA9OTf4q0P/TIbgMeLWMepltdwssf+jrCwYAfm7tRFqegitJZXJJumNOQJdppBevWvFw/tSuo1simBdpZIIRA5odHmGTBoG/KGNKP/0BxjMG4z/kL1/eS3wl7ggKEtaisum+m7kqR+Fix9Chz9i8AsnSfIJkD5ExyXasGaxPozsVdDBWY5gevZdIRWONeeSbWmeB5pPM3q1UUFaNTu8YNzadODN3ae61+/oYzvg9gO5vMq9txg0GsrwdzfbCtMJbplL9R2blOq7iakChSQQr/fq0Qyw8hOwPDKBWEXHw7zL80NWhFkK/k93XUD7BEJLbFjdLkVRWr8e9LKFAIHGX4HGl5qRNqxoFhSYF/GzgYSEGbvpzkKPjMFVQ/xuTSnATJ7nBNnIkUjQpDvpaREFDcucPWxSsIaJsy1BBVAJTGesT7UHMhYo6KG7XAb0LPAn21J+M6OXev4PO3OuaVxgH1t6bQuIt/9rapfXFYX3X8M2fEqPGj1u8avtps1FqRQuepHVL2W225fepYc9e7vj6/W8GILXf/7g9VJjJrQ3RnPUK+EabuS/MS7SgOBdflusfBnVah+CQEhHRBBKVjMHNmFRe0bSHI0ewvZaB0qZ1TLXONkKgA3wL7pTo6qWJcPwRh523zFbtT6L/9+hCUwxnSyn+l/7v6W32giKAuMyU51LEOuDRi8SGnp2hBh0CsJ6i+GqDSVLUuN9BGIz0zvPqxwP1Ueplkx7cxrUTpi9TPJ3XPfu9d3CgTPe0hdFCkUzVCoHL+va7NzuFcGhYB4u861mYJRUlfO9IidKJQvROnZdN6OwYF3PHk/6y2qjLziXW4xYipZuuHiqtIvKXa6CFVqSXqc7O0ZK6uXVXnm3Bxe+o25Q5XgG9GrBcvchPatFDIlzGkUHXvYJJ7xa9xmz04BVwssHwqF3IO6mT8lbwKTG2oeGs6ymeiRAX7mcRFGWmRy2sn40BiA2jIOHtujfzHEpIuMNG0oO4A/kIk0/HzXSYsQzgu/neoemQGjkZzDKvTKKZzxaGrbQ6+3XJ4hNKt2ocoeRPw56FkdZKpgMm47EDO5C4NkCInpG+gHm7lINmxPbbQLp3c3gcFnVg6jqTTySioPbbW1lxGE2Mh3zVjqlKGQ8/E0OsXtplFooLG1gJmY9xyyzlidvDkgIz0cr6S1EbDnFA51lfGdI2bFMjAH53dup68IautveFMkvhDs61mlWQWckEZZCXqb7v/xp0cQhoWYghm9M9HsLfZynnE0cT/B6s1gQlUpRtfdk9x/sAKZOSzjJtavL0Gg7207IuFDVoDnqVI3Us/ezHiw5NdtxRBMgalFKxNG6Ps3BHofoNPKnTUKHnmq3x4ZrK7GsqUdxqZlvyrnkdV+r9cwcLQcQQ2/TnxtzS0EWvujSg6qbNY7z8i4NlLP0tyHq3yA+Tydft4GUB28OwgnVyYNiaExoVx+JRTLDFdUHFvK7OznC/shwZBE0BCa7/W142uG577v/JX5pdKouI67W2fFHqNkQulHnRe6MdpOpAwuPT3RezhcTPVP1rXjixO4eikUaPnUBz8sSadXwf5ANyrXTCKtKpAtgb/lU8YM4OGiDg1O4vnENy7XHXI10Wc7k5FwhEziaAdEt6uUVBpkA+mz8SH3DbePcSgrq6ZX73CJSeUmIsfF4b2oAqXZc8vKueocty3GmEIKcNpaU6WofN/2z5p90bHjo/sDDZuja0c4fS9t8KMoKo+Y4pW1AzsWKT3SCFOYgc46sd81KMXHiwjrmn++W8I+sIWc5egG/O0H7r6tZ2J9Nhc/43+MkZ/rhkruJwUtJlHhsWKsKqJk5vyQ7Q0N99MO4+4xtLUUUOYPJeVQdX25we3JZqcox3MOGu2Fe+NX9zmayFQxKKoivd70M2U37NHkKtFjbEuFIjGs06WbHtaVHNVpg+opaeW5el8XjFdIh79ebAxn9WLkYPJA7oq+loB8iwzqhX/Yv1jnsw1EOFQ/me0fbuhPCQpEhL7Wv1ktQfb3rlL8VLf2pEZPcB6qTKsmDscun8RkfVh/dwkoq+LdkocFfHBetV1FJ7z6Alu9l8RpSl3M4Yai645orVrL+50jSybDYuRr2mldq1GQ1EtOHNi15p87ovfnk9OJMInGMOU0WXg3Bt76QjxyJFh7GUp0Nqdp1SQR1Xl70YOn2nBeBsOvjFsOLaogVvnIofQy6Lv639+uvrZ6I9j04U8DZztnOt3AcCO0Wx38B6jXU79Zd6p79G2Vw2NINv6WY9ceJaoKhoXGWRtFI+nXBuTX98ghTEsB4LiqCru0GUNIBStZ4t+yN7xKqJY65bdwhJIz/ULndBrdHiFvXkdfh8q5BC2Vifr84A35j7kDN07wYSAkWCaP8PX8UfSHLoj9fmqoe/riYDIChGckA8WvaTf/b0bMDlUC1/Ob/5L+n1N3Z4dHATpeclzBRpWmLpVVn7fI+EmzBt8HzcZP+OM792ucOV/tdl0olKlcABGCMjjqQHV5we1xjyXUTHIdhqm4dgR2J00tyYZrddwQyr0Fp7n7BRd5a15qMjYZS/FSKFFVwMpoHmL00Rl0ooArtlJ7nXEBIqLfSF9GTVcOdXGCckCaZaW5K6FMEzYr82tp2tM+b6ItjUJq7OOM3xiVXKhCYD9ycZ62Iy8ilYQnifTcEAiBFTp1f7fG1dOha8iAgI7HO0RFNwP/eGm/jx3ummWJ1TlyaDBxeqI21e6B7/blCQvAunFGU+zpw/Zqw9Wroj0cl5Wl4uwadSHNKBztgf8cXYMqB5AChvH1thjrgU1B/Ms71pB0UVOSh9s5SeI65Upz0Gc4Qt5gt23o5oAxZTnBDrRXobPlADL/8LnQ9+lxU/LZUd8pdOQtwLtFtReOOt9OfF45uDn/x/K95QgAfrwVASL1865qJQtxmH4HwkMvXPRR8M//7bEgXGigWJYCe0kCuE4H9jobBCoJcHQh8JB/8ZYf2Gk4gFUKuPLafJPvOMtn/HiAlRgHd8ob81cwYNEOoJQb+KgCEPIJX5UMzssW4KOugKXBg081DLgrHXC0EAg1ALDlFu6VioTzGGsohQgCKAUstyELBMiSevVuBlcIBINdBIbFGoKQhpWQIIggZFxwAqoBxBlV0kT5frIGb5Io5UYbCiVUbiw1Nk/WU4cIPzH0x+fIo3YmkEwSMGCIX4mMs5VIbC+SAKZtEckHFkKvfJV41KSWehrouEelLqmgBREeFOOJCAZ/QVmviA4NmfFg0ygbJNBWsYKhgqWWM2w6SsJoPPjoPTU1Yq0o00LzHUqPxlK0aiiJ1UKAeFgB); } 7 + </style> 8 + 9 + </defs> 10 + <g stroke-linecap="round" transform="translate(10 194.83617716312494) rotate(0 179.22024490540377 115.07477526841058)"><path d="M-1.09 -1.3 C142.12 2.72, 286.86 2.78, 358.26 -2.02 M0.25 -0.76 C78.5 3.33, 156.39 2.73, 358.59 -0.47 M355.96 -2.43 C357.84 61.7, 358.11 131.1, 357.4 230.93 M359.29 1.12 C355.21 74.48, 354.62 151.54, 358.04 230.29 M359.44 230.93 C246.36 230.18, 132.02 229.81, -1.66 228.88 M358.41 230.99 C259.38 231.79, 159.82 231.97, 0.58 229.6 M0.41 232.19 C3.6 137.84, 3.51 46.94, -0.37 -3.18 M0.87 230.18 C0.77 153.91, 0.67 78.96, -0.63 -1.57" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(65.43427993958335 219.91095243153552) rotate(0 123.78596496582031 90)"><text x="123.78596496582031" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">You need a</text><text x="123.78596496582031" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">documentation</text><text x="123.78596496582031" y="121.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">website for</text><text x="123.78596496582031" y="166.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">project A</text></g><g stroke-linecap="round" transform="translate(510.27709470458035 43.85105008129756) rotate(0 193.3919304128458 108.03020491508858)"><path d="M-0.7 1.4 C77.78 1.58, 154.83 2.83, 387.41 -2.22 M-0.81 0.59 C133.28 2.98, 267.27 2.93, 386.07 0.24 M389.7 0.05 C391.24 54.97, 385.25 110.19, 386.44 216.83 M387.91 -0.66 C386.92 62.59, 386.39 127.16, 387.1 215.84 M384.99 217.27 C305.42 219.36, 224.11 217.79, -0.43 217.8 M386.76 215.61 C297.07 214.5, 205.97 214.23, 0.59 214.97 M2.15 212.58 C1.92 147.38, 0.98 76.67, 1.76 2.33 M0.19 215.18 C0.04 139.05, 1.99 60.45, 0.46 0.05" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(533.749072724848 61.88125499638613) rotate(0 169.91995239257812 90)"><text x="169.91995239257812" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">You choose one of </text><text x="169.91995239257812" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">the existing</text><text x="169.91995239257812" y="121.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">templates</text><text x="169.91995239257812" y="166.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">(like this one!)</text></g><g stroke-linecap="round" transform="translate(1007.754868157889 20.603283629724274) rotate(0 184.71698256818308 107.38954876119755)"><path d="M0.53 -0.74 C138.95 0.06, 284.9 -2.17, 368.46 0.71 M0 -0.04 C108.86 -0.81, 215.44 0.01, 369.69 0.52 M365.94 3.19 C373.16 45.54, 372.25 84.22, 366.67 217.65 M369.23 -1.32 C370.22 75.31, 369.29 146.84, 370.57 214.05 M370.85 214.54 C240.09 214.63, 113.64 213.61, 2.1 216.32 M369.95 214.07 C273.79 214.75, 179.09 216.29, 0.34 214.3 M1.95 218.27 C2.74 143.98, 2.73 74.28, -1 3.08 M0.62 214.76 C-3.75 157.28, -3.02 100.55, -0.63 -0.03" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1035.0439027280252 60.492832390921876) rotate(0 157.42794799804688 67.5)"><text x="157.42794799804688" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">You have a great</text><text x="157.42794799804688" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">documentation</text><text x="157.42794799804688" y="121.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">website quickly</text></g><g stroke-linecap="round" transform="translate(469.1168426366014 351.0166897216261) rotate(0 225.67391903783528 99.68321985642706)"><path d="M1.31 0.8 C103.07 2.82, 204.92 2.93, 452.03 1.68 M-0.22 -0.91 C148.41 -4.57, 297.64 -3.5, 451.48 0.51 M452.17 2.83 C446.23 61.47, 448.78 122.45, 453.46 197.51 M450.95 1.46 C450.15 60.77, 450.74 118.55, 450.64 198.57 M451.28 201.16 C276.67 194.04, 97.61 196.02, -0.69 198.95 M450.4 198.6 C313.22 200.41, 176.99 201.31, -0.38 198.88 M-1.27 201.15 C-4.62 130.4, -4.97 57.91, 0 0.91 M-1.25 197.62 C5.54 126.9, 5.49 54.32, 1.48 0.01" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(486.8548485884992 383.19990957805317) rotate(0 207.9359130859375 67.5)"><text x="207.9359130859375" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">You don't like any of </text><text x="207.9359130859375" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">the existing templates </text><text x="207.9359130859375" y="121.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">and build one yourself</text></g><g stroke-linecap="round" transform="translate(999.5305274352634 360.349581182336) rotate(0 218.5363697682103 104.54297579145384)"><path d="M0.57 -1.39 C150.57 -3.42, 297.63 -3.67, 438.16 0.34 M0.27 -0.49 C123.83 2.2, 247.14 1.06, 437.75 -0.4 M439.33 0.31 C438.25 64.37, 437.56 129, 439.29 210.11 M438.73 -1.32 C437.65 75.2, 437.93 149.18, 438.36 209.23 M437.45 207.15 C348.33 204.71, 262.54 206.77, 0.29 207.32 M437.07 208.67 C278.16 212.85, 120.3 212.44, -0.45 209.82 M2.09 206.38 C0.8 131.83, -0.49 48.6, -3.1 2.78 M-1.31 208.47 C3.29 145.08, 1.88 83.81, 1.73 -0.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1021.1829662930948 397.39255697378985) rotate(0 196.8839309103787 67.5)"><text x="196.8839309103787" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">After weeks of work</text><text x="196.8839309103787" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">you have built a nice</text><text x="196.8839309103787" y="121.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">documentation website</text></g><g stroke-linecap="round" transform="translate(1558.1960834617332 379.62982320914955) rotate(0 185.4831512201265 105.20497395257382)"><path d="M0.85 -0.2 C127.55 -0.86, 251.99 0.27, 370.47 0.45 M-0.74 -0.19 C98.45 -3.5, 195.19 -5.2, 371.36 -1.15 M367.69 0.48 C368.32 72.8, 374.14 142.9, 374.17 212.46 M372.22 1.61 C373.91 79.32, 373.52 157.97, 370.99 210.45 M371.66 210.37 C235.94 209.66, 97.06 211.37, -0.69 209.5 M371.88 209.82 C226.2 213.75, 84.34 213.58, -0.63 210.96 M2.9 210.64 C1.29 129.52, -1.35 47.67, -1.25 -0.73 M-0.86 211.05 C3.58 158.49, 2.66 107.35, -0.73 0.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1600.7232668085246 439.8347971617234) rotate(0 142.95596787333488 45)"><text x="142.95596787333488" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">You forget </text><text x="142.95596787333488" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">about project A</text></g><g stroke-linecap="round" transform="translate(1471.8436518609149 38.5578773449605) rotate(0 159.38087994888792 92.91624579444226)"><path d="M-1.63 -2.09 C125.73 -1.98, 250.63 1.68, 316.54 2.68 M0.71 -0.29 C78.4 3.94, 158.61 3.81, 319.06 -0.19 M318.59 2.91 C318.94 61.08, 317.04 128.84, 319.23 184.65 M319.2 -0.7 C318.2 44.63, 318.89 88.92, 317 183.93 M318.41 186.88 C210.08 183.23, 103.47 183.48, -0.3 187.15 M318.83 186.42 C233.43 185.16, 149.57 185.08, 0.64 184.74 M3.72 182.71 C1.58 127.59, -1.1 61.56, -2.79 2.82 M-1.25 187.02 C2.01 131.51, 3.81 72.46, 1.99 0.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1522.7925685448606 86.47412313940276) rotate(0 108.43196326494217 45)"><text x="108.43196326494217" y="31.716" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Project A is</text><text x="108.43196326494217" y="76.71600000000001" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">going strong</text></g><g stroke-linecap="round"><g transform="translate(1695.4116333483728 29.24422847006747) rotate(0 1.271083030533191 -7.6138505908550655)"><path d="M-1.29 -1.19 C1.17 -2.79, 1.83 -4.88, 3.88 -16.39 M-0.67 0.01 C0.67 -5.72, 2.6 -11.99, 2.19 -14.58" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1759.7878783773629 28.39683978304538) rotate(0 2.6322801565145255 -5.705645096012461)"><path d="M-0.65 0.2 C2.36 -3.44, 2.27 -4.87, 4.37 -12.07 M0.46 -0.59 C2 -4.08, 4.76 -9.03, 5.13 -11.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1801.6261138500352 92.63396129625596) rotate(0 4.630599746805274 -3.247269334222665)"><path d="M0.03 -0.5 C3.23 -2.71, 7.04 -5.04, 8.62 -6.95 M0.19 0.26 C3.2 -2.53, 7.2 -4.92, 8.97 -6.54" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1804.6899930952752 161.3261972125042) rotate(0 5.653473777595082 3.285212111253429)"><path d="M-0.2 0.65 C3.68 0.35, 5.33 3.48, 11.51 5.57 M-0.49 0.14 C3 1.78, 6.02 3.95, 11.4 5.98" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1738.4482281956023 241.78069400831248) rotate(0 -0.0015809490430456208 5.17444621758068)"><path d="M-0.24 -0.69 C0.92 3.01, -0.83 6.38, 0.87 11.37 M-0.05 0.04 C-0.11 3.14, 0.26 7.16, 0.25 10.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1656.2009351850863 238.95711901760092) rotate(0 0 6.90400447056976)"><path d="M1.36 0.65 C1.11 3.94, -0.19 6.24, -0.53 12.61 M0.02 0.49 C0.23 5.28, 0.57 9.78, 0.51 14.09" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1568.1515591869386 234.8909180791294) rotate(0 -1.3058639094781483 6.034482496946339)"><path d="M1.03 0.98 C-0.01 5, -2.02 10.01, -3.75 11.02 M-0.35 0.18 C-0.64 3.31, -0.93 5.43, -2.36 12.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1502.580116681477 243.2288433316562) rotate(0 -1.6710631383998589 8.458077379791234)"><path d="M0.71 0.62 C-2.6 7.12, -2.3 13.77, -3.84 18.6 M-0.75 0.39 C-0.82 6.01, -2.79 10.8, -3.14 17.73" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1455.8567486660847 203.51856527079724) rotate(0 -8.537124831938854 0.9786074575870316)"><path d="M0.91 -0.11 C-5.38 0.19, -9.31 2.75, -16.6 2.58 M0.49 -0.07 C-4.62 0.26, -8.58 0.63, -17.79 2.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1455.243340437419 99.24865209196548) rotate(0 -6.940366298557592 -1.1414452090110672)"><path d="M-0.67 -0.6 C-6.08 -0.76, -8.52 -1.66, -14.92 -1.91 M0.49 0.23 C-4.58 -0.23, -8.75 -1.77, -14.21 -2.86" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1455.1263502082409 150.9836285735147) rotate(0 -5.544388293631528 0)"><path d="M-0.91 -0.59 C-3.05 -0.23, -7.56 -0.74, -10.44 0.83 M-0.4 -0.49 C-3.22 -0.17, -6.07 0.35, -11.37 -0.17" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1503.0796965790494 19.733239027670493) rotate(0 -2.2907951632369077 -4.689094861394551)"><path d="M0.35 -0.5 C-2.32 -3.61, -3.71 -6.77, -4.21 -9.73 M-0.05 0.01 C-1.42 -2.86, -2.61 -5.07, -4.62 -9.36" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1563.0197985935176 19.644705881265168) rotate(0 -1.7643391319340935 -4.34760986811699)"><path d="M-0.32 -0.19 C-1.05 -2.73, -1.93 -4.48, -3.89 -9.24 M0.02 0.2 C-0.72 -2.29, -1.62 -4.63, -3.25 -8.45" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1623.1970429644282 25.168541837338125) rotate(0 0 -5.157055778108202)"><path d="M-0.67 -0.12 C-0.51 -3.83, 0.88 -6.69, -0.18 -10.99 M0.35 0.07 C0.22 -3.28, 0.42 -6.65, 0.46 -10.06" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(369.44048981080755 285.11014337341146) rotate(0 69.9183024468864 -71.58608914647323)"><path d="M0.03 0.28 C24 -24, 119.22 -119.26, 142.24 -143.36 M-3.4 -2.03 C20.55 -24.62, 116.72 -116.53, 141.31 -139.83" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(369.44048981080755 285.11014337341146) rotate(0 69.9183024468864 -71.58608914647323)"><path d="M130.4 -115.72 C132.58 -124.08, 134.61 -129.98, 140.65 -139.41 M129.43 -117.75 C133.26 -122.88, 134.8 -127.07, 142.11 -139.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(369.44048981080755 285.11014337341146) rotate(0 69.9183024468864 -71.58608914647323)"><path d="M118.6 -128.1 C123.78 -133.45, 128.68 -136.32, 140.65 -139.41 M117.64 -130.14 C124.15 -132.49, 128.34 -133.9, 142.11 -139.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(369.44048981080755 324.7166402430331) rotate(0 45.669186812119506 46.70846049041995)"><path d="M-2.29 -1.47 C12.52 14.42, 73.38 77.42, 88.84 93.59 M1.66 3.91 C17.32 20.45, 79.47 82.76, 93.89 97.31" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(369.44048981080755 324.7166402430331) rotate(0 45.669186812119506 46.70846049041995)"><path d="M70.22 84.89 C78.09 89.41, 86.26 95, 94.82 99.14 M70.44 85.76 C77.38 88.86, 82.23 92.87, 94.46 96.58" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(369.44048981080755 324.7166402430331) rotate(0 45.669186812119506 46.70846049041995)"><path d="M82.34 72.84 C86.51 80.86, 91.06 90.06, 94.82 99.14 M82.57 73.7 C86.25 79.91, 87.93 87.07, 94.46 96.58" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(898.0609555302719 150.00516664840507) rotate(0 54.346956313808505 -7.700450521252492)"><path d="M0.99 1.96 C19.19 0.01, 92.85 -10.44, 111.22 -13.39 M-1.92 0.55 C15.96 -2.02, 91.57 -15.08, 110.36 -17.31" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(898.0609555302719 150.00516664840507) rotate(0 54.346956313808505 -7.700450521252492)"><path d="M89.78 -3.57 C98.06 -8.07, 104.55 -15.96, 110.94 -17.01 M89.38 -5.7 C94.63 -8.43, 100.31 -11.7, 110.9 -16.57" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(898.0609555302719 150.00516664840507) rotate(0 54.346956313808505 -7.700450521252492)"><path d="M87.26 -20.49 C96.37 -18.71, 103.8 -20.31, 110.94 -17.01 M86.85 -22.61 C92.87 -20.42, 99.28 -18.78, 110.9 -16.57" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(925.0748409779574 466.54146783655426) rotate(0 36.727843228653 5.0427747980109245)"><path d="M1.15 -1.88 C13.02 -0.67, 60.79 6.54, 72.67 8.09 M-1.67 3.27 C9.62 4.71, 58.04 9.67, 70 10.63" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(925.0748409779574 466.54146783655426) rotate(0 36.727843228653 5.0427747980109245)"><path d="M44.47 16.39 C52.9 13.9, 60.93 14.26, 71.68 9.24 M45.57 16.75 C54.14 14.8, 61.7 13.22, 70.86 11.01" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(925.0748409779574 466.54146783655426) rotate(0 36.727843228653 5.0427747980109245)"><path d="M46.06 -0.63 C53.98 2.88, 61.45 9.24, 71.68 9.24 M47.16 -0.28 C55.13 3.66, 62.14 7.96, 70.86 11.01" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1378.8659370374578 133.99629525557953) rotate(0 46.422567382060606 -1.3020878326408365)"><path d="M2.64 1.95 C18.62 1.73, 79.75 -2.32, 94.73 -3.23 M0.63 0.54 C16.51 0.92, 78.52 0.29, 93.52 0.05" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1378.8659370374578 133.99629525557953) rotate(0 46.422567382060606 -1.3020878326408365)"><path d="M71.52 10.23 C75.79 6.18, 81.64 2.93, 91.78 -0.21 M69.38 9.53 C79.09 4.33, 88.87 1.81, 94.38 -0.06" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1378.8659370374578 133.99629525557953) rotate(0 46.422567382060606 -1.3020878326408365)"><path d="M71.32 -6.87 C75.52 -6.5, 81.42 -5.33, 91.78 -0.21 M69.18 -7.57 C79.11 -6.21, 88.97 -2.17, 94.38 -0.06" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1438.674268338941 484.47435977554386) rotate(0 59.653772916087746 0.08389565111096431)"><path d="M0.87 2.65 C21.01 3, 99.34 3.66, 118.87 2.8 M-2.1 1.62 C17.8 1.19, 96.79 -0.37, 116.39 -0.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1438.674268338941 484.47435977554386) rotate(0 59.653772916087746 0.08389565111096431)"><path d="M94.97 7.93 C100.32 5.18, 101.89 3.64, 115.58 -0.89 M92.48 7.44 C101.41 3.99, 110.43 1.21, 116.91 -1.51" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1438.674268338941 484.47435977554386) rotate(0 59.653772916087746 0.08389565111096431)"><path d="M94.62 -9.17 C100.09 -7.97, 101.74 -5.56, 115.58 -0.89 M92.13 -9.65 C101.07 -6.49, 110.23 -2.63, 116.91 -1.51" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(1845.5567040351832 553.0162959260879) rotate(0 11.366605788583456 -8.11690348680213)" stroke="none"><path fill="#1e1e1e" d="M -2.65,-0.28 Q -2.65,-0.28 -2.56,-1.36 -2.46,-2.44 -2.11,-3.99 -1.75,-5.54 -1.35,-6.79 -0.94,-8.03 -0.37,-9.15 0.19,-10.27 0.80,-11.60 1.40,-12.94 2.16,-14.02 2.92,-15.11 3.81,-16.12 4.71,-17.13 5.78,-18.10 6.85,-19.07 8.08,-19.36 9.31,-19.64 10.43,-19.69 11.55,-19.73 12.65,-19.76 13.76,-19.79 15.47,-19.25 17.19,-18.70 18.36,-17.68 19.54,-16.65 20.25,-15.72 20.97,-14.79 21.67,-13.69 22.36,-12.58 23.02,-11.53 23.68,-10.47 24.17,-9.25 24.66,-8.03 25.06,-6.80 25.46,-5.57 25.90,-3.71 26.34,-1.85 26.31,-1.26 26.27,-0.68 26.05,-0.13 25.83,0.40 25.45,0.85 25.07,1.30 24.57,1.60 24.06,1.90 23.49,2.03 22.92,2.15 22.33,2.09 21.75,2.02 21.22,1.77 20.68,1.52 20.26,1.12 19.83,0.71 19.56,0.19 19.28,-0.32 19.19,-0.90 19.10,-1.48 19.19,-2.05 19.29,-2.63 19.57,-3.15 19.84,-3.67 20.27,-4.07 20.70,-4.48 21.23,-4.72 21.77,-4.97 22.35,-5.03 22.93,-5.09 23.51,-4.96 24.08,-4.83 24.58,-4.53 25.09,-4.23 25.47,-3.78 25.84,-3.33 26.06,-2.78 26.28,-2.24 26.31,-1.65 26.34,-1.06 26.18,-0.50 26.02,0.06 25.69,0.54 25.36,1.03 24.89,1.38 24.42,1.74 23.86,1.92 23.31,2.11 22.72,2.11 22.13,2.11 21.57,1.92 21.02,1.73 20.55,1.37 20.09,1.01 19.76,0.53 19.43,0.04 19.27,-0.52 19.12,-1.08 19.12,-1.08 19.12,-1.08 18.90,-2.19 18.68,-3.30 18.21,-4.76 17.73,-6.23 17.11,-7.37 16.48,-8.52 15.62,-9.80 14.76,-11.08 13.89,-11.88 13.02,-12.69 11.94,-12.72 10.87,-12.75 9.70,-12.46 8.54,-12.17 7.79,-11.17 7.03,-10.18 6.41,-8.96 5.78,-7.73 4.96,-6.33 4.14,-4.93 3.53,-3.39 2.93,-1.85 2.79,-0.78 2.65,0.28 2.58,0.60 2.51,0.91 2.36,1.20 2.22,1.49 2.00,1.73 1.79,1.98 1.53,2.16 1.27,2.35 0.97,2.47 0.67,2.58 0.35,2.63 0.03,2.67 -0.28,2.64 -0.60,2.60 -0.91,2.49 -1.21,2.38 -1.48,2.20 -1.74,2.02 -1.96,1.78 -2.18,1.54 -2.33,1.26 -2.48,0.97 -2.57,0.66 -2.65,0.35 -2.65,0.03 -2.65,-0.28 -2.65,-0.28 L -2.65,-0.28 Z"></path></g><g transform="translate(1855.4969698994553 566.9169832984132) rotate(0 0 3.7447549902879587)" stroke="none"><path fill="#1e1e1e" d="M 2.54,0 Q 2.54,0 2.58,0.94 2.62,1.88 2.72,3.08 2.81,4.28 2.90,5.38 2.99,6.47 3.01,6.76 3.03,7.05 2.98,7.42 2.94,7.78 2.81,8.12 2.68,8.46 2.47,8.76 2.27,9.07 1.99,9.31 1.72,9.55 1.39,9.72 1.07,9.89 0.72,9.98 0.36,10.07 -0.00,10.07 -0.36,10.07 -0.72,9.98 -1.07,9.89 -1.39,9.72 -1.72,9.55 -1.99,9.31 -2.27,9.07 -2.47,8.76 -2.68,8.46 -2.81,8.12 -2.94,7.78 -2.98,7.42 -3.03,7.05 -2.80,3.52 -2.58,0 -2.51,-0.41 -2.44,-0.82 -2.25,-1.19 -2.05,-1.56 -1.75,-1.85 -1.44,-2.13 -1.07,-2.31 -0.69,-2.48 -0.27,-2.53 0.13,-2.57 0.54,-2.48 0.95,-2.39 1.31,-2.18 1.67,-1.96 1.94,-1.65 2.21,-1.33 2.36,-0.94 2.52,-0.55 2.54,-0.13 2.56,0.27 2.45,0.68 2.34,1.08 2.10,1.43 1.87,1.77 1.54,2.02 1.20,2.28 0.81,2.41 0.41,2.54 -0.00,2.54 -0.41,2.54 -0.81,2.41 -1.21,2.28 -1.54,2.02 -1.87,1.77 -2.10,1.43 -2.34,1.08 -2.45,0.68 -2.56,0.27 -2.54,-0.13 -2.52,-0.55 -2.36,-0.94 -2.21,-1.33 -1.94,-1.65 -1.67,-1.96 -1.31,-2.18 -0.95,-2.39 -0.54,-2.48 -0.13,-2.57 0.27,-2.53 0.69,-2.48 1.07,-2.31 1.45,-2.13 1.75,-1.85 2.05,-1.56 2.25,-1.19 2.44,-0.82 2.51,-0.41 2.58,0.00 2.58,0.00 2.58,0 2.80,3.52 3.03,7.05 2.98,7.42 2.94,7.78 2.81,8.12 2.68,8.46 2.47,8.76 2.27,9.07 1.99,9.31 1.72,9.55 1.39,9.72 1.07,9.89 0.72,9.98 0.36,10.07 0.00,10.07 -0.36,10.07 -0.72,9.98 -1.07,9.89 -1.39,9.72 -1.72,9.55 -1.99,9.31 -2.27,9.07 -2.47,8.76 -2.68,8.46 -2.81,8.12 -2.94,7.78 -2.98,7.42 -3.03,7.05 -3.01,6.76 -2.99,6.47 -2.90,5.38 -2.81,4.28 -2.72,3.08 -2.62,1.88 -2.58,0.94 -2.54,0 -2.50,-0.30 -2.47,-0.60 -2.36,-0.89 -2.25,-1.18 -2.08,-1.43 -1.90,-1.68 -1.67,-1.89 -1.44,-2.09 -1.17,-2.23 -0.90,-2.38 -0.60,-2.45 -0.30,-2.52 0.00,-2.52 0.30,-2.52 0.60,-2.45 0.90,-2.38 1.17,-2.23 1.44,-2.09 1.67,-1.89 1.90,-1.68 2.08,-1.43 2.25,-1.18 2.36,-0.89 2.47,-0.60 2.50,-0.30 2.54,0.00 2.54,0.00 L 2.54,0 Z"></path></g><g transform="translate(1865.1186374988472 565.7308174507043) rotate(0 0 3.5364407401737594)" stroke="none"><path fill="#1e1e1e" d="M 2.50,0 Q 2.50,0 2.54,0.74 2.59,1.49 2.69,2.55 2.79,3.61 2.89,4.74 2.99,5.86 3.03,6.35 3.07,6.83 3.02,7.20 2.98,7.57 2.84,7.91 2.71,8.26 2.50,8.56 2.29,8.87 2.02,9.11 1.74,9.36 1.41,9.53 1.08,9.70 0.72,9.79 0.36,9.88 -0.00,9.88 -0.37,9.88 -0.72,9.79 -1.08,9.70 -1.41,9.53 -1.74,9.36 -2.02,9.11 -2.29,8.87 -2.50,8.56 -2.71,8.26 -2.84,7.91 -2.98,7.57 -3.02,7.20 -3.07,6.83 -2.84,3.41 -2.62,0 -2.55,-0.41 -2.48,-0.83 -2.28,-1.21 -2.09,-1.58 -1.78,-1.88 -1.47,-2.17 -1.08,-2.35 -0.70,-2.52 -0.28,-2.57 0.14,-2.62 0.55,-2.53 0.97,-2.43 1.33,-2.21 1.69,-2.00 1.97,-1.67 2.24,-1.35 2.40,-0.95 2.56,-0.56 2.58,-0.14 2.61,0.28 2.49,0.69 2.38,1.10 2.14,1.45 1.90,1.80 1.56,2.06 1.22,2.31 0.82,2.45 0.42,2.59 -0.00,2.59 -0.42,2.59 -0.82,2.45 -1.23,2.31 -1.56,2.06 -1.90,1.80 -2.14,1.45 -2.38,1.10 -2.49,0.69 -2.61,0.28 -2.58,-0.14 -2.56,-0.56 -2.40,-0.95 -2.24,-1.35 -1.97,-1.67 -1.69,-2.00 -1.33,-2.22 -0.97,-2.43 -0.55,-2.53 -0.14,-2.62 0.28,-2.57 0.70,-2.52 1.08,-2.35 1.47,-2.17 1.78,-1.88 2.09,-1.58 2.28,-1.21 2.48,-0.83 2.55,-0.41 2.62,0.00 2.62,0.00 2.62,0 2.84,3.41 3.07,6.83 3.02,7.20 2.98,7.57 2.84,7.91 2.71,8.26 2.50,8.56 2.29,8.87 2.02,9.11 1.74,9.36 1.41,9.53 1.08,9.70 0.72,9.79 0.37,9.88 0.00,9.88 -0.36,9.88 -0.72,9.79 -1.08,9.70 -1.41,9.53 -1.74,9.36 -2.02,9.11 -2.29,8.87 -2.50,8.56 -2.71,8.26 -2.84,7.91 -2.98,7.57 -3.02,7.20 -3.07,6.83 -3.03,6.35 -2.99,5.86 -2.89,4.74 -2.79,3.61 -2.69,2.55 -2.59,1.49 -2.54,0.74 -2.50,0 -2.46,-0.29 -2.42,-0.59 -2.32,-0.88 -2.21,-1.16 -2.04,-1.41 -1.87,-1.65 -1.64,-1.85 -1.42,-2.05 -1.15,-2.19 -0.88,-2.33 -0.59,-2.41 -0.30,-2.48 0.00,-2.48 0.30,-2.48 0.59,-2.41 0.88,-2.33 1.15,-2.19 1.42,-2.05 1.64,-1.85 1.87,-1.65 2.04,-1.41 2.21,-1.16 2.32,-0.88 2.42,-0.59 2.46,-0.29 2.50,0.00 2.50,0.00 L 2.50,0 Z"></path></g></svg>
src/assets/fonts/InterVariable.ttf

This is a binary file and will not be displayed.

src/assets/screen-dark.png

This is a binary file and will not be displayed.

src/assets/screen-light.png

This is a binary file and will not be displayed.

+27
src/colors.ts
··· 1 + export const colorBaseClasses: Record<string, string> = { 2 + slate: "prose-slate", 3 + stone: "prose-stone", 4 + gray: "prose-gray", 5 + neutral: "prose-neutral", 6 + zinc: "prose-zinc", 7 + }; 8 + 9 + export const colorAccentClasses: Record<string, string> = { 10 + red: "prose-red", 11 + orange: "prose-orange", 12 + amber: "prose-amber", 13 + yellow: "prose-yellow", 14 + lime: "prose-lime", 15 + green: "prose-green", 16 + emerald: "prose-emerald", 17 + teal: "prose-teal", 18 + cyan: "prose-cyan", 19 + sky: "prose-sky", 20 + blue: "prose-blue", 21 + indigo: "prose-indigo", 22 + violet: "prose-violet", 23 + purple: "prose-purple", 24 + fuchsia: "prose-fuchsia", 25 + pink: "prose-pink", 26 + rose: "prose-rose", 27 + };
+51
src/components/BaseHead.astro
··· 1 + --- 2 + import config from "../config"; 3 + interface Props { 4 + title: string; 5 + description: string; 6 + image?: string; 7 + } 8 + 9 + const canonicalURL = new URL(Astro.url.pathname, Astro.site); 10 + 11 + const { title, description, image = "main.png" } = Astro.props; 12 + --- 13 + 14 + <!-- Global Metadata --> 15 + <meta charset="utf-8" /> 16 + <meta name="viewport" content="width=device-width,initial-scale=1" /> 17 + 18 + <link 19 + rel="icon" 20 + href=`data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>${config.SITE_FAVICON}</text></svg>` 21 + /> 22 + 23 + <meta name="generator" content={Astro.generator} /> 24 + 25 + <!-- Canonical URL --> 26 + <link rel="canonical" href={canonicalURL} /> 27 + 28 + <!-- Primary Meta Tags --> 29 + <title>{title}</title> 30 + <meta name="title" content={title} /> 31 + <meta name="description" content={description} /> 32 + 33 + <!-- Open Graph / Facebook --> 34 + <meta property="og:type" content="website" /> 35 + <meta property="og:url" content={Astro.url} /> 36 + <meta property="og:title" content={title} /> 37 + <meta property="og:description" content={description} /> 38 + <meta 39 + property="og:image" 40 + content={new URL(config.BASE + "/open-graph/" + image, Astro.url)} 41 + /> 42 + 43 + <!-- Twitter --> 44 + <meta property="twitter:card" content="summary_large_image" /> 45 + <meta property="twitter:url" content={Astro.url} /> 46 + <meta property="twitter:title" content={title} /> 47 + <meta property="twitter:description" content={description} /> 48 + <meta 49 + property="twitter:image" 50 + content={new URL(config.BASE + "/open-graph/" + image, Astro.url)} 51 + />
+52
src/components/CodeCopyButton.astro
··· 1 + <script is:inline> 2 + document.addEventListener("DOMContentLoaded", () => { 3 + let copyButtonLabel = "copy"; 4 + let codeBlocks = Array.from(document.querySelectorAll("pre")); 5 + for (let codeBlock of codeBlocks) { 6 + let wrapper = document.createElement("div"); 7 + wrapper.style.position = "relative"; 8 + 9 + let copyButton = document.createElement("button"); 10 + copyButton.className = 11 + "opacity-0 focus:opacity-100 focus:outline-base-600 dark:focus:outline-base-400 group-hover:opacity-100 w-16 transition-opacity duration-500 absolute top-3 right-3 text-xs bg-base-200 dark:bg-base-800 outline outline-base-400 dark:outline-base-800 py-1 px-2 rounded-xl dark:hover:bg-base-700 hover:bg-base-300"; 12 + copyButton.innerHTML = copyButtonLabel; 13 + 14 + // Add class 'group' to codeBlock 15 + codeBlock.classList.add("group"); 16 + 17 + codeBlock.setAttribute("tabindex", "0"); 18 + codeBlock.appendChild(copyButton); 19 + 20 + // Wrap the codeBlock with the wrapper div 21 + let parent = codeBlock.parentNode; 22 + if (parent) { 23 + parent.insertBefore(wrapper, codeBlock); 24 + wrapper.appendChild(codeBlock); 25 + } 26 + 27 + copyButton.addEventListener("click", async () => { 28 + await copyCode(codeBlock, copyButton); 29 + }); 30 + } 31 + 32 + async function copyCode(block, button) { 33 + let code = block.querySelector("code"); 34 + if (!code) return; 35 + 36 + let text = code.innerText; 37 + 38 + await navigator.clipboard.writeText(text); 39 + 40 + let oldLabel = button.innerText; 41 + let oldClassName = button.className; 42 + button.className = 43 + "opacity-100 transition-opacity duration-500 w-16 absolute top-3 right-3 text-xs bg-green-200 dark:bg-green-900 outline outline-green-300 dark:outline-green-700 text-green-800 dark:text-green-300 py-1 px-2 rounded-xl"; 44 + button.innerText = "copied"; 45 + 46 + setTimeout(() => { 47 + button.innerText = oldLabel; 48 + button.className = oldClassName; 49 + }, 2000); 50 + } 51 + }); 52 + </script>
+195
src/components/Footer.astro
··· 1 + --- 2 + import config from "../config"; 3 + 4 + const today = new Date(); 5 + --- 6 + 7 + <footer 8 + class="pt-6 pb-12 md:flex md:items-center md:justify-between border-t border-base-200 dark:border-base-800" 9 + > 10 + <div class="flex justify-center items-center gap-x-4 md:order-2"> 11 + { 12 + config.SOCIAL_LINKS.FACEBOOK_URL ? ( 13 + <a 14 + target="_blank" 15 + href={config.SOCIAL_LINKS.FACEBOOK_URL} 16 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 17 + > 18 + <span class="sr-only">Facebook</span> 19 + <svg 20 + class="h-5 w-5" 21 + fill="currentColor" 22 + viewBox="0 0 24 24" 23 + aria-hidden="true" 24 + > 25 + <path 26 + fill-rule="evenodd" 27 + d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" 28 + clip-rule="evenodd" 29 + /> 30 + </svg> 31 + </a> 32 + ) : null 33 + } 34 + { 35 + config.SOCIAL_LINKS.BLUESKY_URL ? ( 36 + <a 37 + target="_blank" 38 + href={config.SOCIAL_LINKS.BLUESKY_URL} 39 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 40 + > 41 + <span class="sr-only">Bluesky</span> 42 + 43 + <svg 44 + fill="currentColor" 45 + xmlns="http://www.w3.org/2000/svg" 46 + viewBox="-40 -40 680 620" 47 + version="1.1" 48 + class="h-5 w-5" 49 + aria-hidden="true" 50 + > 51 + <path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" /> 52 + </svg> 53 + </a> 54 + ) : null 55 + } 56 + 57 + { 58 + config.SOCIAL_LINKS.TWITTER_URL ? ( 59 + <a 60 + target="_blank" 61 + href={config.SOCIAL_LINKS.TWITTER_URL} 62 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 63 + > 64 + <span class="sr-only">X</span> 65 + <svg 66 + class="h-5 w-5" 67 + fill="currentColor" 68 + viewBox="0 0 24 24" 69 + aria-hidden="true" 70 + > 71 + <path d="M13.6823 10.6218L20.2391 3H18.6854L12.9921 9.61788L8.44486 3H3.2002L10.0765 13.0074L3.2002 21H4.75404L10.7663 14.0113L15.5685 21H20.8131L13.6819 10.6218H13.6823ZM11.5541 13.0956L10.8574 12.0991L5.31391 4.16971H7.70053L12.1742 10.5689L12.8709 11.5655L18.6861 19.8835H16.2995L11.5541 13.096V13.0956Z" /> 72 + </svg> 73 + </a> 74 + ) : null 75 + }{ 76 + config.SOCIAL_LINKS.LINKEDIN_URL ? ( 77 + <a 78 + target="_blank" 79 + href={config.SOCIAL_LINKS.LINKEDIN_URL} 80 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 81 + > 82 + <span class="sr-only">LinkedIn</span> 83 + <svg 84 + xmlns="http://www.w3.org/2000/svg" 85 + viewBox="-3 -3 30 30" 86 + fill="currentColor" 87 + class="h-5 w-5" 88 + > 89 + <path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z" /> 90 + </svg> 91 + </a> 92 + ) : null 93 + } 94 + 95 + { 96 + config.SOCIAL_LINKS.YOUTUBE_URL ? ( 97 + <a 98 + target="_blank" 99 + href={config.SOCIAL_LINKS.YOUTUBE_URL} 100 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 101 + > 102 + <span class="sr-only">YouTube</span> 103 + <svg 104 + class="h-5 w-5" 105 + fill="currentColor" 106 + viewBox="1 1 22 22" 107 + aria-hidden="true" 108 + > 109 + <path 110 + fill-rule="evenodd" 111 + d="M19.812 5.418c.861.23 1.538.907 1.768 1.768C21.998 8.746 22 12 22 12s0 3.255-.418 4.814a2.504 2.504 0 0 1-1.768 1.768c-1.56.419-7.814.419-7.814.419s-6.255 0-7.814-.419a2.505 2.505 0 0 1-1.768-1.768C2 15.255 2 12 2 12s0-3.255.417-4.814a2.507 2.507 0 0 1 1.768-1.768C5.744 5 11.998 5 11.998 5s6.255 0 7.814.418ZM15.194 12 10 15V9l5.194 3Z" 112 + clip-rule="evenodd" 113 + /> 114 + </svg> 115 + </a> 116 + ) : null 117 + } 118 + { 119 + config.SOCIAL_LINKS.EMAIL ? ( 120 + <a 121 + target="_blank" 122 + href={"mailto:" + config.SOCIAL_LINKS.EMAIL} 123 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 124 + > 125 + <span class="sr-only">{config.SOCIAL_LINKS.EMAIL}</span> 126 + <svg 127 + xmlns="http://www.w3.org/2000/svg" 128 + viewBox="-2 -2 28 28" 129 + fill="currentColor" 130 + class="h-5 w-5" 131 + > 132 + <path d="M1.5 8.67v8.58a3 3 0 003 3h15a3 3 0 003-3V8.67l-8.928 5.493a3 3 0 01-3.144 0L1.5 8.67z" /> 133 + <path d="M22.5 6.908V6.75a3 3 0 00-3-3h-15a3 3 0 00-3 3v.158l9.714 5.978a1.5 1.5 0 001.572 0L22.5 6.908z" /> 134 + </svg> 135 + </a> 136 + ) : null 137 + } 138 + { 139 + config.SOCIAL_LINKS.DISCORD_URL ? ( 140 + <a 141 + target="_blank" 142 + href={config.SOCIAL_LINKS.DISCORD_URL} 143 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 144 + > 145 + <span class="sr-only">Discord</span> 146 + 147 + <svg 148 + class="w-5 h-5" 149 + viewBox="0 -28.5 256 256" 150 + fill="currentColor" 151 + aria-hidden="true" 152 + preserveAspectRatio="xMidYMid" 153 + > 154 + <g> 155 + <path 156 + d="M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z" 157 + fill-rule="nonzero" 158 + /> 159 + </g> 160 + </svg> 161 + </a> 162 + ) : null 163 + } 164 + { 165 + config.SOCIAL_LINKS.GITHUB_URL ? ( 166 + <a 167 + target="_blank" 168 + href={config.SOCIAL_LINKS.GITHUB_URL} 169 + class="text-base-400 hover:text-base-600 dark:text-base-600 dark:hover:text-base-400" 170 + > 171 + <span class="sr-only">GitHub</span> 172 + 173 + <svg 174 + fill="currentColor" 175 + viewBox="0 0 24 24" 176 + aria-hidden="true" 177 + class="h-5 w-5" 178 + > 179 + <path 180 + fill-rule="evenodd" 181 + d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" 182 + clip-rule="evenodd" 183 + /> 184 + </svg> 185 + </a> 186 + ) : null 187 + } 188 + </div> 189 + <p 190 + class="mt-8 text-center text-xs text-base-600 dark:text-base-400 md:order-1 md:mt-0" 191 + > 192 + &copy; {today.getFullYear()} 193 + {config.SITE_NAME}. All rights reserved. 194 + </p> 195 + </footer>
+39
src/components/Header.astro
··· 1 + --- 2 + import config from "../config"; 3 + import ThemeToggle from "./ThemeToggle.astro"; 4 + import Search from "./search/Search.svelte"; 5 + import SocialIcons from "./SocialIcons.astro"; 6 + --- 7 + 8 + <header class="w-full"> 9 + <nav 10 + class="flex items-center h-16 justify-between lg:justify-end p-2 px-6 w-full" 11 + aria-label="Global" 12 + > 13 + <div class="lg:hidden"> 14 + <button popovertarget="mobile-menu"> 15 + <svg 16 + xmlns="http://www.w3.org/2000/svg" 17 + viewBox="0 0 24 24" 18 + fill="currentColor" 19 + class="size-6 text-base-900 dark:text-base-200" 20 + > 21 + <path 22 + fill-rule="evenodd" 23 + d="M3 9a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75A.75.75 0 0 1 3 9Zm0 6.75a.75.75 0 0 1 .75-.75h16.5a.75.75 0 0 1 0 1.5H3.75a.75.75 0 0 1-.75-.75Z" 24 + clip-rule="evenodd"></path> 25 + </svg> 26 + </button> 27 + </div> 28 + <div class="flex gap-x-8 items-center"> 29 + <div class="flex gap-x-4 items-center"> 30 + {config.SEARCH_ENABLED ? <Search client:visible /> : null} 31 + 32 + {config.SHOW_THEME_TOGGLE ? <ThemeToggle /> : null} 33 + </div> 34 + <div class="flex gap-x-4 items-center"> 35 + <SocialIcons /> 36 + </div> 37 + </div> 38 + </nav> 39 + </header>
+73
src/components/Sidebar.astro
··· 1 + --- 2 + import { config } from "../config"; 3 + import { getDocs } from "../utils"; 4 + 5 + const docs = await getDocs(); 6 + 7 + const { id, headings } = Astro.props; 8 + --- 9 + 10 + <div 11 + class="mx-8 mt-8 pb-16 text-xl text-base-950 dark:text-base-50 flex flex-col gap-8" 12 + > 13 + <a href={config.BASE} class="flex items-center gap-2"> 14 + <div class="text-2xl">🐶</div> 15 + <div class="text-xl font-bold">{config.SITE_NAME}</div> 16 + </a> 17 + 18 + { 19 + docs.map((category) => ( 20 + <div class="flex flex-col gap-3 relative"> 21 + {category.category ? ( 22 + <h2 class="text-sm font-bold"> 23 + {category.category[0].toUpperCase() + category.category.slice(1)} 24 + </h2> 25 + ) : null} 26 + 27 + <div class="flex flex-col gap-4"> 28 + {category.docs.map((doc) => ( 29 + <div 30 + class:list={[ 31 + "text-sm relative", 32 + category.category ? "ml-6" : "", 33 + id === doc.id 34 + ? "text-accent-600 dark:text-accent-400" 35 + : "text-base-800 dark:text-base-400 hover:text-base-950 dark:hover:text-base-50", 36 + ]} 37 + > 38 + <a href={config.BASE + "/docs/" + doc.id} class="w-full"> 39 + {doc.data.title} 40 + </a> 41 + 42 + {id === doc.id ? ( 43 + <div class="absolute -inset-2 -z-10 rounded-xl bg-base-200/40 dark:bg-base-900/50" /> 44 + ) : null} 45 + 46 + {id === doc.id ? ( 47 + <div class="flex flex-col"> 48 + {headings.map( 49 + (heading: { depth: number; text: string; slug: string }) => 50 + heading.depth === 2 && ( 51 + <a 52 + class="mt-2.5 text-sm ml-4 text-base-800 dark:text-base-300 hover:text-base-950 dark:hover:text-base-50" 53 + href={ 54 + config.BASE + "/docs/" + doc.id + "#" + heading.slug 55 + } 56 + > 57 + {heading.text} 58 + </a> 59 + ) 60 + )} 61 + </div> 62 + ) : null} 63 + </div> 64 + ))} 65 + </div> 66 + 67 + {category.category ? ( 68 + <div class="absolute top-8 left-1 bottom-0 w-0.5 border-l border-base-200 dark:border-base-800" /> 69 + ) : null} 70 + </div> 71 + )) 72 + } 73 + </div>
+143
src/components/SocialIcons.astro
··· 1 + --- 2 + import config from "../config"; 3 + --- 4 + 5 + { 6 + config.SOCIAL_LINKS.FACEBOOK_URL ? ( 7 + <a 8 + target="_blank" 9 + href={config.SOCIAL_LINKS.FACEBOOK_URL} 10 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 11 + > 12 + <span class="sr-only">Facebook</span> 13 + <svg 14 + class="h-6 w-6" 15 + fill="currentColor" 16 + viewBox="0 0 24 24" 17 + aria-hidden="true" 18 + > 19 + <path 20 + fill-rule="evenodd" 21 + d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" 22 + clip-rule="evenodd" 23 + /> 24 + </svg> 25 + </a> 26 + ) : null 27 + } 28 + { 29 + config.SOCIAL_LINKS.BLUESKY_URL ? ( 30 + <a 31 + target="_blank" 32 + href={config.SOCIAL_LINKS.BLUESKY_URL} 33 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 34 + > 35 + <span class="sr-only">Bluesky</span> 36 + 37 + <svg 38 + fill="currentColor" 39 + xmlns="http://www.w3.org/2000/svg" 40 + viewBox="-40 -40 680 620" 41 + version="1.1" 42 + class="h-6 w-6" 43 + aria-hidden="true" 44 + > 45 + <path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" /> 46 + </svg> 47 + </a> 48 + ) : null 49 + } 50 + { 51 + config.SOCIAL_LINKS.TWITTER_URL ? ( 52 + <a 53 + target="_blank" 54 + href={config.SOCIAL_LINKS.TWITTER_URL} 55 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 56 + > 57 + <span class="sr-only">X</span> 58 + <svg 59 + class="h-6 w-6" 60 + fill="currentColor" 61 + viewBox="0 0 24 24" 62 + aria-hidden="true" 63 + > 64 + <path d="M13.6823 10.6218L20.2391 3H18.6854L12.9921 9.61788L8.44486 3H3.2002L10.0765 13.0074L3.2002 21H4.75404L10.7663 14.0113L15.5685 21H20.8131L13.6819 10.6218H13.6823ZM11.5541 13.0956L10.8574 12.0991L5.31391 4.16971H7.70053L12.1742 10.5689L12.8709 11.5655L18.6861 19.8835H16.2995L11.5541 13.096V13.0956Z" /> 65 + </svg> 66 + </a> 67 + ) : null 68 + } 69 + { 70 + config.SOCIAL_LINKS.YOUTUBE_URL ? ( 71 + <a 72 + target="_blank" 73 + href={config.SOCIAL_LINKS.YOUTUBE_URL} 74 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 75 + > 76 + <span class="sr-only">YouTube</span> 77 + <svg 78 + class="h-7 w-7" 79 + fill="currentColor" 80 + viewBox="1 1 22 22" 81 + aria-hidden="true" 82 + > 83 + <path 84 + fill-rule="evenodd" 85 + d="M19.812 5.418c.861.23 1.538.907 1.768 1.768C21.998 8.746 22 12 22 12s0 3.255-.418 4.814a2.504 2.504 0 0 1-1.768 1.768c-1.56.419-7.814.419-7.814.419s-6.255 0-7.814-.419a2.505 2.505 0 0 1-1.768-1.768C2 15.255 2 12 2 12s0-3.255.417-4.814a2.507 2.507 0 0 1 1.768-1.768C5.744 5 11.998 5 11.998 5s6.255 0 7.814.418ZM15.194 12 10 15V9l5.194 3Z" 86 + clip-rule="evenodd" 87 + /> 88 + </svg> 89 + </a> 90 + ) : null 91 + } 92 + 93 + { 94 + config.SOCIAL_LINKS.DISCORD_URL ? ( 95 + <a 96 + target="_blank" 97 + href={config.SOCIAL_LINKS.DISCORD_URL} 98 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 99 + > 100 + <span class="sr-only">Discord</span> 101 + 102 + <svg 103 + class="w-6 h-6" 104 + viewBox="0 -28.5 256 256" 105 + fill="currentColor" 106 + aria-hidden="true" 107 + preserveAspectRatio="xMidYMid" 108 + > 109 + <g> 110 + <path 111 + d="M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z" 112 + fill-rule="nonzero" 113 + /> 114 + </g> 115 + </svg> 116 + </a> 117 + ) : null 118 + } 119 + 120 + { 121 + config.SOCIAL_LINKS.GITHUB_URL ? ( 122 + <a 123 + target="_blank" 124 + href={config.SOCIAL_LINKS.GITHUB_URL} 125 + class="text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200" 126 + > 127 + <span class="sr-only">GitHub</span> 128 + 129 + <svg 130 + fill="currentColor" 131 + viewBox="0 0 24 24" 132 + aria-hidden="true" 133 + class="w-6 h-6" 134 + > 135 + <path 136 + fill-rule="evenodd" 137 + d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" 138 + clip-rule="evenodd" 139 + /> 140 + </svg> 141 + </a> 142 + ) : null 143 + }
+131
src/components/ThemeToggle.astro
··· 1 + --- 2 + import type { HTMLAttributes } from "astro/types"; 3 + 4 + export type Props = HTMLAttributes<"button">; 5 + 6 + const { class: className, ...props } = Astro.props; 7 + --- 8 + 9 + <button 10 + class:list={[ 11 + "theme-toggle flex items-center justify-center text-base-500 hover:text-base-700 dark:text-base-500 dark:hover:text-base-300", 12 + className, 13 + ]} 14 + data-theme-toggle 15 + {...props} 16 + > 17 + <span class="sr-only">Theme Toggle</span> 18 + 19 + <!-- Dark Mode Icon --> 20 + <!-- <svg 21 + xmlns="http://www.w3.org/2000/svg" 22 + viewBox="0 0 24 24" 23 + fill="currentColor" 24 + class="w-5 h-5 hidden dark:block" 25 + > 26 + <path 27 + fill-rule="evenodd" 28 + d="M9.528 1.718a.75.75 0 0 1 .162.819A8.97 8.97 0 0 0 9 6a9 9 0 0 0 9 9 8.97 8.97 0 0 0 3.463-.69.75.75 0 0 1 .981.98 10.503 10.503 0 0 1-9.694 6.46c-5.799 0-10.5-4.7-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 0 1 .818.162Z" 29 + clip-rule="evenodd"></path> 30 + </svg> --> 31 + <svg 32 + xmlns="http://www.w3.org/2000/svg" 33 + fill="none" 34 + viewBox="0 0 24 24" 35 + stroke-width="1.5" 36 + stroke="currentColor" 37 + class="size-5 hidden dark:block" 38 + > 39 + <path 40 + stroke-linecap="round" 41 + stroke-linejoin="round" 42 + d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z" 43 + ></path> 44 + </svg> 45 + 46 + <!-- Light Mode Icon --> 47 + <!-- <svg 48 + xmlns="http://www.w3.org/2000/svg" 49 + viewBox="0 0 24 24" 50 + fill="currentColor" 51 + class="w-5 h-5 block dark:hidden" 52 + > 53 + <path 54 + d="M12 2.25a.75.75 0 0 1 .75.75v2.25a.75.75 0 0 1-1.5 0V3a.75.75 0 0 1 .75-.75ZM7.5 12a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM18.894 6.166a.75.75 0 0 0-1.06-1.06l-1.591 1.59a.75.75 0 1 0 1.06 1.061l1.591-1.59ZM21.75 12a.75.75 0 0 1-.75.75h-2.25a.75.75 0 0 1 0-1.5H21a.75.75 0 0 1 .75.75ZM17.834 18.894a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 1 0-1.061 1.06l1.59 1.591ZM12 18a.75.75 0 0 1 .75.75V21a.75.75 0 0 1-1.5 0v-2.25A.75.75 0 0 1 12 18ZM7.758 17.303a.75.75 0 0 0-1.061-1.06l-1.591 1.59a.75.75 0 0 0 1.06 1.061l1.591-1.59ZM6 12a.75.75 0 0 1-.75.75H3a.75.75 0 0 1 0-1.5h2.25A.75.75 0 0 1 6 12ZM6.697 7.757a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 0 0-1.061 1.06l1.59 1.591Z" 55 + ></path> 56 + </svg> --> 57 + <svg 58 + xmlns="http://www.w3.org/2000/svg" 59 + fill="none" 60 + viewBox="0 0 24 24" 61 + stroke-width="1.5" 62 + stroke="currentColor" 63 + class="size-5 block dark:hidden" 64 + > 65 + <path 66 + stroke-linecap="round" 67 + stroke-linejoin="round" 68 + d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" 69 + ></path> 70 + </svg> 71 + </button> 72 + 73 + <noscript> 74 + <style> 75 + .theme-toggle { 76 + display: none; 77 + } 78 + </style> 79 + </noscript> 80 + 81 + <script> 82 + (() => { 83 + let darkMode = false; 84 + 85 + function setTheme(dark: boolean) { 86 + const root = document.documentElement; 87 + if (dark) { 88 + root.classList.add("dark"); 89 + } else { 90 + root.classList.remove("dark"); 91 + } 92 + } 93 + 94 + function toggleTheme() { 95 + darkMode = !darkMode; 96 + localStorage.setItem("darkMode", JSON.stringify(darkMode)); 97 + setTheme(darkMode); 98 + 99 + // send event to everyone 100 + const event = new CustomEvent("theme-toggle", { 101 + detail: { 102 + darkMode, 103 + }, 104 + }); 105 + document.dispatchEvent(event); 106 + } 107 + 108 + // Initialize theme on page load 109 + const savedDarkMode = localStorage.getItem("darkMode"); 110 + if (savedDarkMode !== null) { 111 + darkMode = JSON.parse(savedDarkMode); 112 + } else { 113 + darkMode = window.matchMedia("(prefers-color-scheme: dark)").matches; 114 + } 115 + setTheme(darkMode); 116 + 117 + // Listen to system theme changes 118 + window 119 + .matchMedia("(prefers-color-scheme: dark)") 120 + .addEventListener("change", (e) => e.matches && toggleTheme()); 121 + 122 + window 123 + .matchMedia("(prefers-color-scheme: light)") 124 + .addEventListener("change", (e) => e.matches && toggleTheme()); 125 + 126 + // Add click event to toggle button 127 + document 128 + .querySelector("button[data-theme-toggle]") 129 + ?.addEventListener("click", toggleTheme); 130 + })(); 131 + </script>
+43
src/components/alerts/ErrorAlert.astro
··· 1 + --- 2 + interface Props { 3 + title: string; 4 + class?: string; 5 + } 6 + 7 + const { title, class: className } = Astro.props; 8 + --- 9 + 10 + <div 11 + class:list={[ 12 + "rounded-2xl bg-red-50 mb-6 dark:bg-red-500/5 p-4 dark:ring-1 dark:ring-red-500/10 not-prose max-w-full", 13 + className, 14 + ]} 15 + > 16 + <div class="flex"> 17 + <div class="flex-shrink-0"> 18 + <svg 19 + class="h-5 w-5 text-red-500" 20 + viewBox="0 0 20 20" 21 + fill="currentColor" 22 + aria-hidden="true" 23 + > 24 + <path 25 + fill-rule="evenodd" 26 + d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z" 27 + clip-rule="evenodd"></path> 28 + </svg> 29 + </div> 30 + <div class="ml-3"> 31 + <h3 class="text-sm font-medium text-red-800 dark:text-red-500"> 32 + {title ? title : <slot />} 33 + </h3> 34 + { 35 + title ? ( 36 + <div class="mt-2 text-sm text-red-700 dark:text-red-400"> 37 + <slot /> 38 + </div> 39 + ) : null 40 + } 41 + </div> 42 + </div> 43 + </div>
+43
src/components/alerts/InfoAlert.astro
··· 1 + --- 2 + interface Props { 3 + title: string; 4 + class?: string; 5 + } 6 + 7 + const { title, class: className } = Astro.props; 8 + --- 9 + 10 + <div 11 + class:list={[ 12 + "rounded-2xl bg-blue-50 dark:bg-blue-500/5 p-4 dark:ring-1 dark:ring-blue-500/10 not-prose max-w-full", 13 + className, 14 + ]} 15 + > 16 + <div class="flex"> 17 + <div class="flex-shrink-0"> 18 + <svg 19 + class="h-5 w-5 text-blue-500" 20 + viewBox="0 0 20 20" 21 + fill="currentColor" 22 + aria-hidden="true" 23 + > 24 + <path 25 + fill-rule="evenodd" 26 + d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z" 27 + clip-rule="evenodd"></path> 28 + </svg> 29 + </div> 30 + <div class="ml-3"> 31 + <h3 class="text-sm font-medium text-blue-800 dark:text-blue-500"> 32 + {title ? title : <slot />} 33 + </h3> 34 + { 35 + title ? ( 36 + <div class="mt-2 text-sm text-blue-700 dark:text-blue-400"> 37 + <slot /> 38 + </div> 39 + ) : null 40 + } 41 + </div> 42 + </div> 43 + </div>
+45
src/components/alerts/SuccessAlert.astro
··· 1 + --- 2 + interface Props { 3 + title: string; 4 + class?: string; 5 + } 6 + 7 + const { title, class: className } = Astro.props; 8 + --- 9 + 10 + <div 11 + class:list={[ 12 + "rounded-2xl bg-green-50 dark:bg-green-500/5 p-4 dark:ring-1 dark:ring-green-500/10 not-prose max-w-full", 13 + className, 14 + ]} 15 + > 16 + <div class="flex"> 17 + <div class="flex-shrink-0"> 18 + <svg 19 + class="h-5 w-5 text-green-500" 20 + viewBox="0 0 20 20" 21 + fill="currentColor" 22 + aria-hidden="true" 23 + > 24 + <path 25 + fill-rule="evenodd" 26 + d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" 27 + clip-rule="evenodd"></path> 28 + </svg> 29 + </div> 30 + <div class="ml-3"> 31 + <h3 class="text-sm font-medium text-green-800 dark:text-green-500"> 32 + {title ? title : <slot />} 33 + </h3> 34 + { 35 + title ? ( 36 + <div class="mt-2 text-sm text-green-700 dark:text-green-400"> 37 + <p> 38 + <slot /> 39 + </p> 40 + </div> 41 + ) : null 42 + } 43 + </div> 44 + </div> 45 + </div>
+45
src/components/alerts/WarningAlert.astro
··· 1 + --- 2 + interface Props { 3 + title: string; 4 + class?: string; 5 + } 6 + 7 + const { title, class: className } = Astro.props; 8 + --- 9 + 10 + <div 11 + class:list={[ 12 + "rounded-2xl bg-amber-50 dark:bg-amber-500/5 p-4 dark:ring-1 dark:ring-amber-500/10 not-prose max-w-full", 13 + className, 14 + ]} 15 + > 16 + <div class="flex"> 17 + <div class="flex-shrink-0"> 18 + <svg 19 + class="h-5 w-5 text-amber-500" 20 + viewBox="0 0 20 20" 21 + fill="currentColor" 22 + aria-hidden="true" 23 + > 24 + <path 25 + fill-rule="evenodd" 26 + d="M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" 27 + clip-rule="evenodd"></path> 28 + </svg> 29 + </div> 30 + <div class="ml-3"> 31 + <h3 class="text-sm font-medium text-amber-800 dark:text-amber-400"> 32 + {title ? title : <slot />} 33 + </h3> 34 + { 35 + title ? ( 36 + <div class="mt-2 text-sm text-amber-700 dark:text-amber-300"> 37 + <p> 38 + <slot /> 39 + </p> 40 + </div> 41 + ) : null 42 + } 43 + </div> 44 + </div> 45 + </div>
+25
src/components/buttons/PrimaryButton.astro
··· 1 + --- 2 + import type { HTMLAttributes } from "astro/types"; 3 + 4 + type Props = HTMLAttributes<"button"> & HTMLAttributes<"a">; 5 + 6 + const { class: className, ...props } = Astro.props; 7 + 8 + const classes = [ 9 + "not-prose inline-flex items-center gap-2 text-sm font-medium bg-accent-500/10 dark:bg-accent-500/10 text-accent-700 dark:text-accent-400 px-4 py-2 rounded-full", 10 + "border border-accent-500/20 dark:border-accent-500/20 hover:bg-accent-500/20 dark:hover:bg-accent-500/20 transition-colors duration-200", 11 + className, 12 + ]; 13 + --- 14 + 15 + { 16 + props.href ? ( 17 + <a class:list={classes} {...props}> 18 + <slot /> 19 + </a> 20 + ) : ( 21 + <button class:list={classes} {...props}> 22 + <slot /> 23 + </button> 24 + ) 25 + }
+25
src/components/buttons/SecondaryButton.astro
··· 1 + --- 2 + import type { HTMLAttributes } from "astro/types"; 3 + 4 + type Props = HTMLAttributes<"button"> & HTMLAttributes<"a">; 5 + 6 + const { class: className, ...props } = Astro.props; 7 + 8 + const classes = [ 9 + "not-prose inline-flex items-center gap-2 text-xs font-medium bg-base-100 dark:bg-base-900 text-base-950 dark:text-base-100 px-3 py-1.5 rounded-full", 10 + "border border-base-200 dark:border-base-800 hover:bg-base-200 dark:hover:bg-base-800 transition-colors duration-200", 11 + className, 12 + ]; 13 + --- 14 + 15 + { 16 + props.href ? ( 17 + <a class:list={classes} {...props}> 18 + <slot /> 19 + </a> 20 + ) : ( 21 + <button class:list={classes} {...props}> 22 + <slot /> 23 + </button> 24 + ) 25 + }
+34
src/components/sandbox/Sandbox.astro
··· 1 + --- 2 + import { SandpackCodeEditor } from "./SandpackCodeEditor"; 3 + 4 + const { folder, active } = Astro.props; 5 + 6 + const actualFolder = folder.startsWith("/") 7 + ? folder 8 + : `/src/examples/${folder}`; 9 + 10 + // import as raw 11 + const files = import.meta.glob(`/src/examples/**`, { as: "raw" }); 12 + 13 + let loadedFiles: Record<string, { code: string; active: boolean }> = {}; 14 + 15 + for (const file of Object.keys(files)) { 16 + if (!file.startsWith(actualFolder)) continue; 17 + console.log(file, active); 18 + loadedFiles[file.replace(actualFolder, "")] = { 19 + code: await files[file](), 20 + active: file.endsWith(active), 21 + }; 22 + } 23 + --- 24 + 25 + <div class="not-prose h-[600px] md:h-[300px]"> 26 + <SandpackCodeEditor client:only="react" files={loadedFiles} /> 27 + <noscript> 28 + <div 29 + class="text-base-800 dark:text-base-200 text-sm w-full h-full rounded-2xl border border-base-200 dark:border-base-800 p-4" 30 + > 31 + <p>Interactive code examples only work with JavaScript enabled.</p> 32 + </div> 33 + </noscript> 34 + </div>
+63
src/components/sandbox/SandpackCodeEditor.tsx
··· 1 + import { Sandpack } from "@codesandbox/sandpack-react"; 2 + import { useEffect, useState } from "react"; 3 + import colors from "tailwindcss/colors"; 4 + import config from "../../config"; 5 + 6 + function getColor(color: string, shade: '50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950') { 7 + return colors[color.toLowerCase() as keyof typeof colors][shade]; 8 + } 9 + 10 + function getStyling(isDark: boolean) { 11 + return `body { 12 + background-color: ${isDark ? getColor(config.BASE_COLOR, "950") : getColor(config.BASE_COLOR, "50")}; 13 + color: ${isDark ? getColor(config.BASE_COLOR, "50") : getColor(config.BASE_COLOR, "950")}; 14 + ${isDark ? "@apply dark;" : ""} 15 + }` 16 + } 17 + export const SandpackCodeEditor = ({ files }: { files: Record<string, { code: string; active: boolean }> }) => { 18 + const [isDark, setIsDark] = useState(true); 19 + 20 + const [stylingFile, setStylingFile] = useState<string | null>(); 21 + 22 + useEffect(() => { 23 + console.log("stylingFile", stylingFile); 24 + }, [stylingFile]); 25 + 26 + useEffect(() => { 27 + // Initial theme check 28 + const dark = document.documentElement.classList.contains("dark"); 29 + console.log("dark", dark); 30 + setIsDark(dark); 31 + setStylingFile(getStyling(dark)); 32 + 33 + // Listen for theme changes 34 + const handleThemeChange = (e: CustomEvent<{ darkMode: boolean }>) => { 35 + console.log("handleThemeChange", e.detail.darkMode); 36 + setIsDark(e.detail.darkMode); 37 + setStylingFile(getStyling(e.detail.darkMode)); 38 + }; 39 + 40 + document.addEventListener("theme-toggle", handleThemeChange as EventListener); 41 + 42 + return () => { 43 + document.removeEventListener("theme-toggle", handleThemeChange as EventListener); 44 + }; 45 + }, []); 46 + 47 + if (!stylingFile) return null; 48 + 49 + return <Sandpack template="react" 50 + options={{ 51 + classes: { 52 + "sp-layout": "!rounded-2xl", 53 + }, 54 + externalResources: ["https://cdn.tailwindcss.com"], 55 + showLineNumbers: true 56 + }} 57 + theme={isDark ? "dark" : "light"} 58 + files={{ 59 + "/styles.css": {code: stylingFile, hidden: true}, 60 + ...files 61 + }} 62 + /> 63 + }
+4
src/components/sandbox/index.ts
··· 1 + import Sandbox from "./Sandbox.astro"; 2 + 3 + export { Sandbox }; 4 + export default Sandbox;
+234
src/components/search/CommandPalette.svelte
··· 1 + <script lang="ts"> 2 + import config from "../../config"; 3 + 4 + import { fade, slide } from "svelte/transition"; 5 + import type { Pagefind } from "vite-plugin-pagefind/types"; 6 + import { showSearch } from "./CommandPaletteStore"; 7 + 8 + export let showResults = true; 9 + 10 + export let placeholder = "Search..."; 11 + 12 + export let results: { title: string; content: string; href: string }[] = [ 13 + { 14 + title: "Title", 15 + content: 16 + "This is some longer content that will probably have to be cut at some point, because it just wont fit but such is life, what can you do? nothing. i mean i guess you could scroll? but that would look ugly", 17 + href: "/", 18 + }, 19 + { title: "Title", content: "Content", href: "/" }, 20 + ]; 21 + 22 + export let noResults = "No results found"; 23 + 24 + let currentSelection = 0; 25 + 26 + let search = async () => { 27 + if (value.trim() == "") return; 28 + 29 + const search = await pagefind.debouncedSearch(value); 30 + if (!search) return; 31 + 32 + showResults = true; 33 + results = []; 34 + 35 + let newResults = []; 36 + 37 + for (let i = 0; i < search.results.length && i < 5; i++) { 38 + let result = await search.results[i].data(); 39 + 40 + let excerpt = result.excerpt; 41 + // replace <mark> tags with <span class="bg-pink-600/10"> 42 + excerpt = excerpt.replaceAll( 43 + "<mark>", 44 + '<span class="bg-accent-500/20 rounded-md p-0.5">' 45 + ); 46 + excerpt = excerpt.replaceAll("</mark>", "</span>"); 47 + 48 + newResults[i] = { 49 + title: result.meta.title, 50 + content: excerpt, 51 + href: result.url, 52 + }; 53 + } 54 + 55 + results = Object.values(newResults); 56 + }; 57 + 58 + export let value: string = ""; 59 + 60 + export const show = () => { 61 + $showSearch = true; 62 + setTimeout(() => { 63 + input.focus(); 64 + }, 200); 65 + }; 66 + 67 + let pagefind: Pagefind; 68 + async function setupSearch() { 69 + try { 70 + // @ts-ignore 71 + pagefind = await import(/* @vite-ignore */ 72 + config.BASE + "/pagefind/pagefind.js" 73 + ); 74 + } catch (error) { 75 + console.error("Pagefind module not found, will retry after build"); 76 + } 77 + } 78 + 79 + setupSearch(); 80 + 81 + let input: HTMLInputElement; 82 + 83 + $: if (value.trim() == "") { 84 + results = []; 85 + showResults = false; 86 + } else { 87 + search(); 88 + } 89 + 90 + $: if ($showSearch) { 91 + currentSelection = 0; 92 + 93 + setTimeout(() => { 94 + input.focus(); 95 + }, 200); 96 + } else { 97 + value = ""; 98 + } 99 + </script> 100 + 101 + <svelte:window 102 + on:keydown={(event) => { 103 + // show/hide on command + k 104 + if (event.key == "k" && event.metaKey) { 105 + $showSearch = !$showSearch; 106 + 107 + event.preventDefault(); 108 + } 109 + 110 + // close on escape 111 + if (event.key === "Escape" && $showSearch) { 112 + $showSearch = false; 113 + } 114 + }} 115 + /> 116 + 117 + {#if $showSearch} 118 + <div 119 + class="relative z-50" 120 + role="dialog" 121 + aria-modal="true" 122 + transition:fade={{ duration: 100 }} 123 + > 124 + <div class="fixed inset-0 z-10 w-screen overflow-y-auto p-4 pt-20 md:p-20"> 125 + <button 126 + on:click={() => ($showSearch = false)} 127 + class="fixed inset-0 bg-base-500/10 dark:bg-base-950/0 transition-opacity z-0 cursor-default backdrop-blur-sm" 128 + > 129 + <div class="sr-only">hide search</div> 130 + </button> 131 + 132 + <div 133 + class="mx-auto max-w-xl transform divide-y divide-base-100 dark:divide-white/10 overflow-hidden rounded-3xl bg-white dark:bg-base-900 shadow-2xl ring-1 ring-black dark:ring-white/20 ring-opacity-5 transition-all" 134 + > 135 + <div class="relative flex flex-grow items-stretch focus-within:z-10"> 136 + <input 137 + on:keydown={(event) => { 138 + if (event.key == "Enter") { 139 + if (value.trim() == "") { 140 + $showSearch = false; 141 + } 142 + 143 + // navigate to current selection 144 + if ( 145 + currentSelection >= 0 && 146 + currentSelection < results.length 147 + ) { 148 + window.location.href = results[currentSelection].href; 149 + } else { 150 + $showSearch = false; 151 + } 152 + } 153 + 154 + // on arrow down 155 + if (event.key == "ArrowDown") { 156 + currentSelection++; 157 + if (currentSelection >= results.length) currentSelection = 0; 158 + } 159 + // on arrow up 160 + if (event.key == "ArrowUp") { 161 + currentSelection--; 162 + if (currentSelection < 0) currentSelection = results.length - 1; 163 + } 164 + }} 165 + type="text" 166 + class="h-12 w-full border-0 bg-transparent pl-4 pr-4 text-base-900 dark:text-base-100 placeholder:text-base-400 focus:ring-0 sm:text-sm" 167 + {placeholder} 168 + role="combobox" 169 + aria-expanded="false" 170 + aria-controls="options" 171 + bind:value 172 + bind:this={input} 173 + /> 174 + <button 175 + on:click={() => { 176 + search(); 177 + }} 178 + type="button" 179 + class="relative -ml-px inline-flex items-center gap-x-1.5 rounded-r-md px-3 py-2 text-sm font-semibold text-base-900 dark:bg-base-900 dark:hover:bg-base-800 hover:bg-base-50" 180 + > 181 + <slot named="icon"> 182 + <svg 183 + class=" h-5 w-5 text-base-400" 184 + viewBox="0 0 20 20" 185 + fill="currentColor" 186 + aria-hidden="true" 187 + > 188 + <path 189 + fill-rule="evenodd" 190 + d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z" 191 + clip-rule="evenodd" 192 + /> 193 + </svg> 194 + </slot> 195 + <slot /> 196 + </button> 197 + </div> 198 + 199 + <!-- Results, show/hide based on command palette state --> 200 + {#if showResults && value.trim() != ""} 201 + <div transition:slide={{ duration: 100 }}> 202 + {#if results.length > 0} 203 + <div 204 + class="scroll-py-2 overflow-y-auto text-sm text-base-800 dark:text-base-200 divide-y divide-base-100 dark:divide-white/5 flex flex-col" 205 + > 206 + <!-- Active: "bg-indigo-600 text-white" --> 207 + {#each results as result, i} 208 + <a 209 + href={result.href} 210 + class="w-full {currentSelection === i 211 + ? 'bg-white/5' 212 + : 'hover:bg-white/5'} select-none px-4 py-2 text-left" 213 + > 214 + <div class="font-semibold"> 215 + {result.title} 216 + </div> 217 + <div class="text-xs mt-2 line-clamp-2"> 218 + {@html result.content} 219 + </div> 220 + </a> 221 + {/each} 222 + </div> 223 + {:else} 224 + <!-- Empty state, show/hide based on command palette state --> 225 + <p class="p-4 text-sm text-base-500 dark:text-base-400"> 226 + {noResults} 227 + </p> 228 + {/if} 229 + </div> 230 + {/if} 231 + </div> 232 + </div> 233 + </div> 234 + {/if}
+3
src/components/search/CommandPaletteStore.ts
··· 1 + import { writable } from "svelte/store"; 2 + 3 + export const showSearch = writable(false);
+39
src/components/search/Search.svelte
··· 1 + <script lang="ts"> 2 + import { showSearch } from "./CommandPaletteStore"; 3 + </script> 4 + 5 + <button 6 + class="search-button bg-base-100 dark:bg-base-900 rounded-full px-3 py-1.5 flex items-center gap-2 text-base-600 hover:text-base-800 dark:text-base-400 dark:hover:text-base-200 border border-base-200 dark:border-base-800" 7 + onclick={() => { 8 + $showSearch = true; 9 + }} 10 + > 11 + <svg 12 + xmlns="http://www.w3.org/2000/svg" 13 + fill="none" 14 + viewBox="0 0 24 24" 15 + stroke-width="1.5" 16 + stroke="currentColor" 17 + class="w-4 h-4" 18 + > 19 + <path 20 + stroke-linecap="round" 21 + stroke-linejoin="round" 22 + d="M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z" 23 + /> 24 + </svg> 25 + <div class="hidden md:block text-xs text-base-700 dark:text-base-300 hover:text-base-900 dark:hover:text-base-100">Search</div> 26 + <kbd class="text-xs flex gap-0.5 ml-2 md:ml-4"> 27 + <kbd class="font-sans">⌘</kbd> 28 + <kbd class="font-sans">K</kbd> 29 + </kbd> 30 + <div class="sr-only">search</div> 31 + </button> 32 + 33 + <noscript> 34 + <style> 35 + .search-button { 36 + display: none; 37 + } 38 + </style> 39 + </noscript>
+57
src/config.ts
··· 1 + 2 + export const config: Config = { 3 + SITE: "https://flo-bit.dev", 4 + BASE: "/dogumentation", 5 + 6 + SITE_NAME: "Dogumentation", 7 + SITE_DESCRIPTION: "Simple, minimalistic documentation template using astro", 8 + SITE_FAVICON: "🐶", 9 + 10 + SHOW_THEME_TOGGLE: true, 11 + SEARCH_ENABLED: true, 12 + 13 + BASE_COLOR: "zinc", 14 + ACCENT_COLOR: "cyan", 15 + 16 + SOCIAL_LINKS: { 17 + FACEBOOK_URL: "", 18 + TWITTER_URL: "", 19 + GITHUB_URL: "#", 20 + LINKEDIN_URL: "", 21 + YOUTUBE_URL: "", 22 + BLUESKY_URL: "", 23 + DISCORD_URL: "#", 24 + EMAIL: "" 25 + } 26 + }; 27 + 28 + type Config = { 29 + SITE: string; 30 + BASE: string; 31 + 32 + SITE_NAME: string; 33 + SITE_DESCRIPTION: string; 34 + SITE_FAVICON: string; 35 + 36 + SHOW_THEME_TOGGLE: boolean; 37 + SEARCH_ENABLED: boolean; 38 + 39 + BASE_COLOR: BASE_COLORS; 40 + ACCENT_COLOR: ACCENT_COLORS; 41 + 42 + SOCIAL_LINKS: Partial<{ 43 + FACEBOOK_URL: string; 44 + TWITTER_URL: string; 45 + GITHUB_URL: string; 46 + LINKEDIN_URL: string; 47 + YOUTUBE_URL: string; 48 + BLUESKY_URL: string; 49 + DISCORD_URL: string; 50 + EMAIL: string; 51 + }>; 52 + } 53 + 54 + type BASE_COLORS = "zinc" | "slate" | "neutral" | "stone" | "gray"; 55 + type ACCENT_COLORS = "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose"; 56 + 57 + export default config;
+33
src/content.config.ts
··· 1 + import { defineCollection, z } from "astro:content"; 2 + import { glob } from 'astro/loaders'; 3 + 4 + const docs = defineCollection({ 5 + loader: glob({ pattern: '**/[^_]*.{md,mdx}', base: "./src/content/docs/" }), 6 + // Type-check frontmatter using a schema 7 + schema: z.object({ 8 + // title of the blog post, don't repeat this in the markdown part 9 + title: z.string(), 10 + 11 + // will be shown in the blog post list 12 + description: z.string(), 13 + 14 + order: z.number().optional(), 15 + 16 + category: z.string().optional(), 17 + 18 + categoryOrder: z.number().optional(), 19 + 20 + // short description will be used for og image (fallback to description) 21 + shortDescription: z.string().optional(), 22 + 23 + // array of tags 24 + tags: z.array(z.string()).optional(), 25 + 26 + customOGImage: z.string().optional(), 27 + 28 + // wether to show title and short description in the og image 29 + noTextInOGImage: z.boolean().optional(), 30 + }), 31 + }); 32 + 33 + export const collections = { docs };
+67
src/content/docs/adding-content.mdx
··· 1 + --- 2 + title: "Adding content" 3 + description: "Add content to your docs" 4 + --- 5 + 6 + # Adding content 7 + 8 + Simply add markdown files ending with `.mdx` to the `/src/content/docs` folder to add content to your docs. 9 + 10 + ## Frontmatter 11 + 12 + All `.mdx` files support frontmatter and **must** have the following two properties: 13 + 14 + ```mdx 15 + --- 16 + title: "My Doc" 17 + description: "This is a doc" 18 + --- 19 + ``` 20 + 21 + ## Order 22 + 23 + Docs are ordered alphabetically by default. 24 + You can change the order by setting the `order` property to a number in the frontmatter. 25 + Files with a lower number will be shown first. All files with any order tag will be shown before the files without. 26 + 27 + ```mdx 28 + --- 29 + order: 1 30 + --- 31 + ``` 32 + 33 + ## Categories 34 + 35 + You can add a category to a doc by setting the `category` property in the frontmatter. 36 + 37 + ```mdx 38 + --- 39 + category: "My Category" 40 + --- 41 + ``` 42 + 43 + Categories are used to group docs together in the sidebar. 44 + They are also sorted alphabetically by default. 45 + You can also set a `categoryOrder` property to at least one file in that category to sort the categories. 46 + 47 + ```mdx 48 + --- 49 + categoryOrder: 1 50 + --- 51 + ``` 52 + 53 + Again categories with a lower number will be shown first and categories without any category order set will be shown last. 54 + 55 + Files without a category will be always be shown first. 56 + 57 + ## Links 58 + 59 + All relative links should start with `/BASE/docs/` 60 + (with the same `BASE` as the one set in `src/config.ts`). 61 + 62 + For example if you want to link to `/src/content/docs/quick-start.mdx` 63 + you should use the following link: 64 + 65 + ```mdx 66 + [Quick Start](/YOUR-BASE/docs/quick-start) 67 + ```
+56
src/content/docs/components/code.mdx
··· 1 + --- 2 + title: "Code and Math" 3 + description: "How to show inline and multiline code and math in your documentation" 4 + category: "Components" 5 + --- 6 + 7 + # Code 8 + 9 + ## Inline Code 10 + 11 + Write inline code like this: 12 + 13 + ```mdx 14 + this is some `inline code` 15 + ``` 16 + 17 + this is some `inline code` 18 + 19 + ## Multiline Code 20 + 21 + Write multiline code like this (specify the language for syntax highlighting): 22 + 23 + import { Code } from "astro:components"; 24 + 25 + <Code lang="mdx" code={`\`\`\`js 26 + console.log("this is some code"); 27 + \`\`\` 28 + `} /> 29 + 30 + ```js 31 + console.log("this is some code"); 32 + ``` 33 + 34 + ## Math 35 + 36 + Write inline math like this: 37 + 38 + ```mdx 39 + Inline math: $a_x = x^2$ 40 + ``` 41 + 42 + Inline math: $a_x = x^2$ 43 + 44 + Write block math like this: 45 + 46 + ```mdx 47 + $$ 48 + \int_0^\infty \frac{x^3}{e^x} \, dx 49 + $$ 50 + ``` 51 + 52 + $$ 53 + \int_0^\infty \frac{x^3}{e^x} \, dx 54 + $$ 55 + 56 +
+50
src/content/docs/components/embeds.mdx
··· 1 + --- 2 + title: "Embeds" 3 + description: "Show embeds in your documentation" 4 + category: "Components" 5 + --- 6 + 7 + # Embeds 8 + 9 + You can show youtube videos, link cards, excalidraw diagrams and github repos in your documentation. 10 + 11 + ## Youtube 12 + 13 + Simply write a youtube url in your markdown like this (with nothing else on the same line): 14 + 15 + ```mdx 16 + https://www.youtube.com/watch?v=dQw4w9WgXcQ 17 + ``` 18 + 19 + https://www.youtube.com/watch?v=dQw4w9WgXcQ 20 + 21 + ## Link Card 22 + 23 + Add any other url for a link card like this (again with nothing else on the same line): 24 + 25 + ```mdx 26 + https://flo-bit.dev 27 + ``` 28 + 29 + https://flo-bit.dev 30 + 31 + ## Excalidraw 32 + 33 + You can also show excalidraw diagrams, that will be rendered in the correct dark/light mode like this 34 + (they **must** be in the `src/assets` folder): 35 + 36 + ```mdx 37 + :excalidraw[$assets/excalidraw-demo.svg] 38 + ``` 39 + 40 + :excalidraw[$assets/excalidraw-demo.svg] 41 + 42 + ## Github 43 + 44 + You can show a github repo card by just writing the url like this (again with nothing else on the same line): 45 + 46 + ```mdx 47 + https://github.com/flo-bit/svelte-openai-realtime-api 48 + ``` 49 + 50 + https://github.com/flo-bit/svelte-openai-realtime-api
+29
src/content/docs/components/sandbox.mdx
··· 1 + --- 2 + title: "Interactive Sandbox" 3 + description: "Show interactive code examples in your documentation" 4 + category: "Components" 5 + --- 6 + 7 + # Interactive Sandbox 8 + 9 + You can show interactive code examples in your documentation with the sandbox component. 10 + 11 + 12 + ```astro 13 + import Sandbox from "$components/sandbox/"; 14 + 15 + <Sandbox folder="example1" active="Counter.js" /> 16 + ``` 17 + 18 + 19 + import Sandbox from "$components/sandbox/"; 20 + 21 + <Sandbox folder="example1" active="Counter.js" /> 22 + 23 + Your folder **must** be in the `src/examples` folder. 24 + 25 + The `active` file is the file that will be shown when the sandbox is opened. 26 + 27 + Sandboxes include tailwind and the previews background and text color is set to match the rest of your site 28 + (both in dark and light mode). If you add your own styles, be careful to always include a dark and 29 + light mode version of your styles by using the `dark:` prefix.
+85
src/content/docs/configuration.mdx
··· 1 + --- 2 + title: "Configuration" 3 + description: "Configure your documentation" 4 + --- 5 + 6 + # Configuration 7 + 8 + There are some configuration options that can be set in the `src/config.ts` file. 9 + 10 + Most importantly you **have** to set the `SITE` and `BASE` variables for deployment 11 + (see [Quick Start](/dogumentation/docs/quick-start) for more information). 12 + 13 + ## Basics 14 + 15 + Set your site name, description and favicon. 16 + 17 + ```ts 18 + const config = { 19 + //... 20 + 21 + SITE_NAME: "Dogumentation", 22 + SITE_DESCRIPTION: "Simple, minimalistic documentation template using astro", 23 + SITE_FAVICON: "🐶" 24 + 25 + // ... 26 + } 27 + ``` 28 + 29 + ## Colors 30 + 31 + Set the base and accent colors for your site. 32 + 33 + Base colors can be `zinc`, `slate`, `neutral`, `stone`, `gray`. 34 + 35 + Accent colors can be `red`, `orange`, `amber`, `yellow`, `lime`, `green`, `emerald`, `teal`, `cyan`, `sky`, `blue`, `indigo`, `violet`, `purple`, `fuchsia`, `pink`, `rose`. 36 + 37 + ```ts 38 + const config = { 39 + //... 40 + 41 + BASE_COLOR: "zinc", 42 + ACCENT_COLOR: "cyan" 43 + 44 + // ... 45 + } 46 + ``` 47 + 48 + ## Social Links 49 + 50 + Set the social links for your site. 51 + 52 + ```ts 53 + const config = { 54 + //... 55 + 56 + SOCIAL_LINKS: { 57 + FACEBOOK_URL: "https://facebook.com/your-page", 58 + TWITTER_URL: "https://twitter.com/your-page", 59 + GITHUB_URL: "https://github.com/your-page", 60 + LINKEDIN_URL: "https://linkedin.com/in/your-page", 61 + YOUTUBE_URL: "https://youtube.com/your-page", 62 + BLUESKY_URL: "https://bluesky.com/your-page", 63 + DISCORD_URL: "https://discord.com/your-page", 64 + EMAIL: "your-email@example.com" 65 + } 66 + } 67 + ``` 68 + 69 + Any of the links can be omitted if you don't have a page for that social link. 70 + 71 + All included social links will be shown in the header and footer of your site like this: 72 + 73 + import SocialIcons from "$components/SocialIcons.astro"; 74 + 75 + <div class="flex items-center justify-end gap-x-4 p-4 bg-base-100 dark:bg-base-900/50 border border-base-200 dark:border-base-800 rounded-2xl"> 76 + <SocialIcons /> 77 + </div> 78 + 79 + ## Start page 80 + 81 + The start page will show a button to the first doc in your `src/content/docs` folder (= the first one in the sidebar). 82 + 83 + It will also show your site name and description and a screenshot of your app. 84 + 85 + Set the screenshot by replacing `src/assets/screen-light.png` and `src/assets/screen-dark.png` with your own images.
+14
src/content/docs/features.mdx
··· 1 + --- 2 + title: "Features" 3 + description: "What this documentation template offers" 4 + --- 5 + 6 + # Features 7 + 8 + - Static site generation 9 + - Dark and light mode 10 + - Search 11 + - Code and math (with syntax highlighting) 12 + - Embeds 13 + - Interactive Sandboxes 14 + - Easy to use embeds (just paste a link)
+59
src/content/docs/quick-start.mdx
··· 1 + --- 2 + title: "Quick Start" 3 + description: "Learn how to install the template" 4 + order: 0 5 + --- 6 + 7 + # Quick Start 8 + 9 + Quick start guide using github pages. 10 + 11 + ## Fork the repo 12 + 13 + Fork the repo, naming it depending on where you want to it to show up. 14 + 15 + If you want to host it on `yourusername.github.io` then name the repo `yourusername.github.io`. 16 + 17 + Otherwise, name it something like `my-docs` and it will be hosted at `yourusername.github.io/my-docs`. 18 + 19 + Go to `/src/config.ts` and change the `SITE` and `BASE` variables. 20 + 21 + - `SITE` should be be `https://yourusername.github.io`. 22 + 23 + - `BASE` should either be empty if you named the repo `yourusername.github.io` or the name of the repo 24 + if you named it something else with a leading `/` (e.g. `/my-docs`). 25 + 26 + ## Enable github pages 27 + 28 + Enable github pages in the repo settings. Go to *SETTINGS &rarr; PAGES &rarr; SOURCE: Github Actions* 29 + 30 + Your site should be live after a few minutes. 31 + 32 + ## Development preview 33 + 34 + 1. Clone repo locally 35 + 36 + ```bash 37 + git clone https://github.com/yourusername/yourrepo.git 38 + ``` 39 + 40 + 2. Install dependencies 41 + 42 + ```bash 43 + npm install 44 + ``` 45 + 46 + 3. Start the development server 47 + 48 + ```bash 49 + npm run dev 50 + ``` 51 + 52 + 4. Open the development preview at `http://localhost:4321/BASE` 53 + 54 + Changes made to the docs will be reflected live. 55 + 56 + ### Next steps: 57 + 58 + - [Add some content](/dogumentation/docs/adding-content) 59 + - [Configure your template](/dogumentation/docs/configuration)
+114
src/embeds/excalidraw/Excalidraw.astro
··· 1 + --- 2 + import { load } from "cheerio"; 3 + 4 + interface Props { 5 + href: string; 6 + src: string; 7 + alt: string; 8 + caption?: string; 9 + class?: string; 10 + } 11 + 12 + const { href, src, alt, caption, class: className } = Astro.props; 13 + 14 + // Import all SVG files from /src/ as raw strings 15 + const svgFiles = import.meta.glob("/src/**/*.svg", { 16 + query: "?raw", 17 + import: "default", 18 + }); 19 + 20 + let svgContent = ""; 21 + 22 + if ((src || href).startsWith("<svg")) { 23 + // If src is an SVG string 24 + svgContent = src || href; 25 + } else { 26 + let file = svgFiles[(src || href).replace("$assets/", "/src/assets/")]; 27 + if (!file) { 28 + console.error(`SVG file not found: ${src || href}`); 29 + svgContent = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 20 120 50" width="100%" height="100%"> 30 + <text x="10" y="50">SVG not found</text> 31 + </svg>`; 32 + } else { 33 + svgContent = (await file()) as string; 34 + } 35 + } 36 + 37 + // Function to modify the SVG using cheerio 38 + function modifySvg(svgString: string): string { 39 + const $ = load(svgString, { xmlMode: true }); 40 + 41 + const svg = $("svg"); 42 + svg.attr("width", "100%"); 43 + svg.attr("height", "100%"); 44 + svg.addClass("w-full h-auto"); 45 + 46 + $("text").each((_, el) => { 47 + $(el).removeAttr("fill"); 48 + $(el).addClass("fill-skin-base"); 49 + }); 50 + 51 + $("rect").each((_, el) => { 52 + $(el).removeAttr("fill"); 53 + $(el).addClass("fill-skin-soft"); 54 + }); 55 + 56 + $("path").each((_, el) => { 57 + $(el).removeAttr("stroke"); 58 + $(el).addClass("stroke-skin-accent"); 59 + if ($(el).attr("fill") !== "none") { 60 + $(el).addClass("fill-skin-soft"); 61 + $(el).removeAttr("fill"); 62 + } 63 + }); 64 + 65 + $("g").each((_, el) => { 66 + $(el).addClass("excalidraw-element"); 67 + }); 68 + 69 + return $.html(); 70 + } 71 + 72 + let modifiedSvg = ""; 73 + 74 + try { 75 + modifiedSvg = modifySvg(svgContent); 76 + } catch (error) { 77 + console.error("Error processing SVG:", error); 78 + modifiedSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"> 79 + <text x="10" y="50" fill="red">Error loading SVG</text> 80 + </svg>`; 81 + } 82 + --- 83 + 84 + <figure class:list={["mx-auto max-w-full overflow-hidden my-8", className]}> 85 + <div class="excalidraw-svg" aria-label={alt} set:html={modifiedSvg} /> 86 + { 87 + caption && ( 88 + <figcaption class="text-center mt-4 text-sm text-base-700 dark:text-base-300 italic"> 89 + {caption} 90 + </figcaption> 91 + ) 92 + } 93 + </figure> 94 + 95 + <style> 96 + .excalidraw-svg { 97 + @apply w-full max-w-full overflow-hidden; 98 + } 99 + :global(.excalidraw-svg svg) { 100 + @apply w-full h-auto; 101 + } 102 + :global(.excalidraw-svg .fill-skin-base) { 103 + @apply fill-base-800 dark:fill-base-100; 104 + } 105 + :global(.excalidraw-svg .fill-skin-soft) { 106 + @apply fill-accent-600 dark:fill-accent-500; 107 + } 108 + :global(.excalidraw-svg .stroke-skin-accent) { 109 + @apply stroke-accent-600 dark:stroke-accent-500; 110 + } 111 + :global(.excalidraw-svg .excalidraw-element) { 112 + @apply transition-all duration-300; 113 + } 114 + </style>
+12
src/embeds/excalidraw/embed.ts
··· 1 + import type { EmbedsOption } from "astro-custom-embeds"; 2 + import ExcalidrawMatcher from "./matcher"; 3 + 4 + const ExcalidrawEmbed: EmbedsOption = { 5 + componentName: "Excalidraw", 6 + urlArgument: "src", 7 + urlMatcher: ExcalidrawMatcher, 8 + directiveName: "excalidraw", 9 + importPath: "src/embeds", 10 + }; 11 + 12 + export default ExcalidrawEmbed;
+7
src/embeds/excalidraw/matcher.ts
··· 1 + export default function urlMatcher(url: string): string | undefined { 2 + // should be an absolute path to an svg file 3 + if ((url.startsWith("/src/") || url.startsWith("$assets")) && url.endsWith(".svg")) { 4 + return url; 5 + } 6 + return undefined; 7 + }
+92
src/embeds/github/Github.astro
··· 1 + --- 2 + import { load } from "cheerio"; 3 + 4 + interface Props { 5 + href: string; 6 + src: string; 7 + alt: string; 8 + target?: string; 9 + props?: any; 10 + class?: string; 11 + } 12 + 13 + const { 14 + href, 15 + src, 16 + alt, 17 + class: className, 18 + target = "_blank", 19 + props, 20 + } = Astro.props; 21 + 22 + console.log(href, src); 23 + 24 + const url = href || src; 25 + // get repo name from href 26 + // https://github.com/vitest-dev/vitest 27 + // get repo name and owner from href starting from beginning of href 28 + const split = url.split("github.com/"); 29 + const repoName = split[1].split("/")[1]; 30 + const owner = split[1].split("/")[0]; 31 + console.log(repoName, owner); 32 + const response = await fetch( 33 + `https://api.github.com/repos/${owner}/${repoName}` 34 + ); 35 + const data = await response.json(); 36 + 37 + console.log(data); 38 + 39 + const description = data.description; 40 + const stars = data.stargazers_count; 41 + const forks = data.forks_count; 42 + 43 + const avatarUrl = data.owner?.avatar_url; 44 + --- 45 + 46 + <article 47 + class:list={[ 48 + "not-prose group max-w-lg my-6 relative isolate flex items-end justify-between rounded-2xl border border-base-400 dark:border-base-800 bg-base-200/50 dark:bg-base-900/50 p-4", 49 + className, 50 + ]} 51 + {...Astro.props} 52 + > 53 + <svg 54 + fill="currentColor" 55 + viewBox="0 0 24 24" 56 + aria-hidden="true" 57 + class="size-8 absolute top-4 right-4 text-base-500 dark:text-base-500 group-hover:text-base-700 dark:group-hover:text-base-300 transition-colors duration-200" 58 + > 59 + <path 60 + fill-rule="evenodd" 61 + d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" 62 + clip-rule="evenodd"></path> 63 + </svg> 64 + 65 + <div class="flex flex-col gap-4"> 66 + <div class="flex flex-col sm:flex-row items-start gap-2 text-2xl font-bold"> 67 + <img 68 + src={avatarUrl} 69 + alt={owner} 70 + class="size-8 rounded-full bg-base-300 dark:bg-base-800 border border-base-400 dark:border-base-700" 71 + /> 72 + <a 73 + href={href || src} 74 + class="flex items-center gap-1 flex-wrap" 75 + {...props} 76 + {target} 77 + > 78 + <span class="absolute inset-0"></span> 79 + <p> 80 + {owner} 81 + </p> 82 + / 83 + <p class="text-accent-600 dark:text-accent-400"> 84 + {repoName} 85 + </p> 86 + </a> 87 + </div> 88 + <p class="text-sm text-base-600 dark:text-base-400">{description}</p> 89 + </div> 90 + <!-- <p>{stars} stars</p> 91 + <p>{forks} forks</p> --> 92 + </article>
+12
src/embeds/github/embed.ts
··· 1 + import type { EmbedsOption } from "astro-custom-embeds"; 2 + import GithubMatcher from "./matcher"; 3 + 4 + const GithubEmbed: EmbedsOption = { 5 + componentName: "Github", 6 + urlArgument: "href", 7 + urlMatcher: GithubMatcher, 8 + directiveName: "github", 9 + importPath: "src/embeds", 10 + }; 11 + 12 + export default GithubEmbed;
+6
src/embeds/github/matcher.ts
··· 1 + export default function urlMatcher(url: string): string | undefined { 2 + if (url.startsWith("https://github.com/") || url.startsWith("https://www.github.com/")) { 3 + return url; 4 + } 5 + return undefined; 6 + }
+7
src/embeds/index.ts
··· 1 + 2 + import LinkCard from "./link-card/LinkCard.astro"; 3 + import YouTube from "./youtube/YouTube.astro"; 4 + import Excalidraw from "./excalidraw/Excalidraw.astro"; 5 + import Github from "./github/Github.astro"; 6 + 7 + export { LinkCard, YouTube, Excalidraw, Github };
+6
src/embeds/matcher.ts
··· 1 + import YoutubeMatcher from './youtube/matcher.ts'; 2 + import LinkMatcher from './link-card/matcher.ts'; 3 + import GithubMatcher from './github/matcher.ts'; 4 + import ExcalidrawMatcher from './excalidraw/matcher.ts'; 5 + 6 + export { YoutubeMatcher, LinkMatcher, GithubMatcher, ExcalidrawMatcher };
+64
src/embeds/youtube/YouTube.astro
··· 1 + --- 2 + import "lite-youtube-embed/src/lite-yt-embed.css"; 3 + import urlMatcher from "./matcher"; 4 + 5 + export interface Props extends astroHTML.JSX.HTMLAttributes { 6 + id: string; 7 + poster?: string; 8 + posterQuality?: "max" | "high" | "default" | "low"; 9 + params?: string; 10 + playlabel?: string; 11 + } 12 + 13 + const { 14 + id, 15 + poster, 16 + posterQuality = "default", 17 + title, 18 + ...attrs 19 + } = Astro.props as Props; 20 + 21 + const idRegExp = /^[A-Za-z0-9-_]+$/; 22 + 23 + function extractID(idOrUrl: string) { 24 + if (idRegExp.test(idOrUrl)) return idOrUrl; 25 + return urlMatcher(idOrUrl); 26 + } 27 + 28 + const videoid = extractID(id); 29 + const posterFile = 30 + { 31 + max: "maxresdefault", 32 + high: "sddefault", 33 + default: "hqdefault", 34 + low: "default", 35 + }[posterQuality] || "hqdefault"; 36 + const posterURL = 37 + poster || `https://i.ytimg.com/vi/${videoid}/${posterFile}.jpg`; 38 + const href = `https://youtube.com/watch?v=${videoid}`; 39 + --- 40 + 41 + <lite-youtube 42 + {videoid} 43 + {title} 44 + data-title={title} 45 + {...attrs} 46 + style={`background-image: url('${posterURL}');`} 47 + > 48 + <a {href} class="lty-playbtn"> 49 + <span class="lyt-visually-hidden">{attrs.playlabel}</span> 50 + </a> 51 + </lite-youtube> 52 + 53 + <script src="lite-youtube-embed"></script> 54 + 55 + <style is:global> 56 + lite-youtube > iframe { 57 + all: unset !important; 58 + width: 100% !important; 59 + height: 100% !important; 60 + position: absolute !important; 61 + inset: 0 !important; 62 + border: 0 !important; 63 + } 64 + </style>
+12
src/embeds/youtube/embed.ts
··· 1 + import type { EmbedsOption } from "astro-custom-embeds"; 2 + import YoutubeMatcher from "./matcher"; 3 + 4 + const YoutubeEmbed: EmbedsOption = { 5 + componentName: 'YouTube', 6 + urlArgument: 'id', 7 + urlMatcher: YoutubeMatcher, 8 + directiveName: 'youtube', 9 + importPath: 'src/embeds', 10 + } 11 + 12 + export default YoutubeEmbed;
+14
src/embeds/youtube/matcher.ts
··· 1 + // Thanks to eleventy-plugin-youtube-embed 2 + // https://github.com/gfscott/eleventy-plugin-youtube-embed/blob/main/lib/extractMatches.js 3 + const urlPattern = 4 + /(?=(\s*))\1(?:<a [^>]*?>)??(?=(\s*))\2(?:https?:\/\/)??(?:w{3}\.)??(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/|shorts\/)??([A-Za-z0-9-_]{11})(?:[^\s<>]*)(?=(\s*))\4(?:<\/a>)??(?=(\s*))\5/; 5 + 6 + /** 7 + * Extract a YouTube ID from a URL if it matches the pattern. 8 + * @param url URL to test 9 + * @returns A YouTube video ID or undefined if none matched 10 + */ 11 + export default function matcher(url: string): string | undefined { 12 + const match = url.match(urlPattern); 13 + return match?.[3]; 14 + }
+1
src/env.d.ts
··· 1 + /// <reference path="../.astro/types.d.ts" />
+9
src/examples/example1/App.js
··· 1 + import Counter from "./Counter"; 2 + 3 + export default function App() { 4 + return ( 5 + <div className="text-sm h-screen w-full flex items-center justify-center"> 6 + <Counter /> 7 + </div> 8 + ); 9 + }
+29
src/examples/example1/Counter.js
··· 1 + import { useState } from "react"; 2 + 3 + export default function Counter() { 4 + const [count, setCount] = useState(0); 5 + 6 + const increment = () => { 7 + setCount(count + 1); 8 + }; 9 + 10 + const decrement = () => { 11 + setCount(count - 1); 12 + }; 13 + 14 + return ( 15 + <div className="flex items-center justify-center gap-2"> 16 + <button 17 + className="block bg-red-500/10 px-2 py-1 rounded-md text-red-400" 18 + onClick={decrement}> 19 + - 20 + </button> 21 + <span>Count: {count}</span> 22 + <button 23 + className="inline-flex bg-blue-500/10 text-blue-400 px-2 py-1 rounded-md" 24 + onClick={increment}> 25 + + 26 + </button> 27 + </div> 28 + ); 29 + }
+128
src/layouts/BaseLayout.astro
··· 1 + --- 2 + import BaseHead from "../components/BaseHead.astro"; 3 + import Sidebar from "../components/Sidebar.astro"; 4 + 5 + const { title, description, image, id, headings } = Astro.props; 6 + --- 7 + 8 + <!doctype html> 9 + <html lang="en" class="h-full antialiased dark"> 10 + <head> 11 + <BaseHead title={title} description={description} image={image} /> 12 + 13 + <script is:inline> 14 + let dark = false; 15 + if (localStorage.getItem("darkMode")) { 16 + dark = JSON.parse(localStorage.getItem("darkMode") ?? "false"); 17 + } else { 18 + dark = window.matchMedia("(prefers-color-scheme: dark)").matches; 19 + } 20 + 21 + var root = document.getElementsByTagName("html")[0]; 22 + if (dark) { 23 + root.classList.add("dark"); 24 + } else { 25 + root.classList.remove("dark"); 26 + } 27 + </script> 28 + 29 + <style is:global> 30 + html.dark .astro-code, 31 + html.dark .astro-code span { 32 + color: var(--shiki-dark); 33 + } 34 + 35 + html:not(dark) .astro-code, 36 + html:not(dark) .astro-code span { 37 + color: var(--shiki-light); 38 + } 39 + 40 + pre { 41 + @apply overflow-hidden !important; 42 + @apply border border-base-300 dark:border-base-800 bg-base-200/50 dark:bg-base-900/50 rounded-2xl !important; 43 + } 44 + 45 + .line.highlighted { 46 + margin: 0 -24px; 47 + padding: 0 24px; 48 + position: relative; 49 + 50 + display: inline-block; 51 + width: calc(100% + 48px); 52 + } 53 + .line.highlighted { 54 + @apply bg-accent-500/20 dark:bg-accent-700/20; 55 + } 56 + 57 + ::selection { 58 + @apply bg-accent-300/50 dark:bg-accent-900/40; 59 + } 60 + 61 + lite-youtube { 62 + @apply rounded-2xl border border-base-300 dark:border-base-800; 63 + } 64 + 65 + .prose mark { 66 + @apply bg-accent-200 dark:bg-accent-900 text-black dark:text-white; 67 + } 68 + .MathJax svg { 69 + display: inline !important; 70 + } 71 + :target { 72 + scroll-margin-top: 80px; 73 + } 74 + 75 + .mobileMenuPopover { 76 + /* Closed state transformed off the screen */ 77 + transform: translateX(-110%); 78 + transition: 79 + transform 0.1s, 80 + overlay 0.1s ease-out; 81 + inset: unset; 82 + 83 + /* Styles while the menu is open */ 84 + &:popover-open { 85 + transform: translateX(0); 86 + } 87 + 88 + /* Backdrop that overlays other content */ 89 + &::backdrop { 90 + background-color: rgba(0, 0, 0, 0.5); 91 + } 92 + } 93 + </style> 94 + </head> 95 + 96 + <body 97 + class="bg-base-50 dark:bg-base-950 transition-all duration-150 h-[100dvh]" 98 + > 99 + <slot /> 100 + 101 + <div 102 + popover 103 + id="mobile-menu" 104 + class="mobileMenuPopover bg-base-100 dark:bg-base-900 left-0 top-0 h-[100dvh] w-72 block shadow-lg border-r border-base-300 dark:border-base-800" 105 + > 106 + <button 107 + popovertarget="mobile-menu" 108 + popovertargetaction="hide" 109 + class="absolute top-4 right-4 text-base-600 dark:text-base-400 hover:text-base-800 dark:hover:text-base-200" 110 + > 111 + <span class="sr-only">Close Menu</span> 112 + <svg 113 + xmlns="http://www.w3.org/2000/svg" 114 + viewBox="0 0 24 24" 115 + fill="currentColor" 116 + class="size-6" 117 + > 118 + <path 119 + fill-rule="evenodd" 120 + d="M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z" 121 + clip-rule="evenodd"></path> 122 + </svg> 123 + </button> 124 + 125 + <Sidebar {id} {headings} /> 126 + </div> 127 + </body> 128 + </html>
+35
src/layouts/DocumentationLayout.astro
··· 1 + --- 2 + import BaseHead from "../components/BaseHead.astro"; 3 + import Sidebar from "../components/Sidebar.astro"; 4 + import Header from "../components/Header.astro"; 5 + import CommandPalette from "../components/search/CommandPalette.svelte"; 6 + import CodeCopyButton from "../components/CodeCopyButton.astro"; 7 + import BaseLayout from "./BaseLayout.astro"; 8 + 9 + const { title, description, image, id, headings } = Astro.props; 10 + --- 11 + 12 + <BaseLayout {title} {description} {image} {id} {headings}> 13 + <div class="flex mx-1 sm:mx-4"> 14 + <div class="w-full my-1 sm:my-8 lg:ml-72 xl:ml-80"> 15 + <div class="mx-auto max-w-5xl"> 16 + <slot /> 17 + </div> 18 + </div> 19 + 20 + <CommandPalette client:load /> 21 + <CodeCopyButton /> 22 + 23 + <div 24 + class="fixed overflow-y-auto top-0 bottom-0 left-0 h-full -translate-x-72 lg:translate-x-0 lg:w-72 xl:w-80 z-40 border-r border-base-200 dark:border-base-300/10" 25 + > 26 + <Sidebar {id} {headings} /> 27 + </div> 28 + 29 + <div 30 + class="fixed top-0 left-0 right-0 lg:left-72 xl:left-80 h-16 z-30 border-b border-base-200 dark:border-base-300/10 backdrop-blur-sm" 31 + > 32 + <Header /> 33 + </div> 34 + </div> 35 + </BaseLayout>
+21
src/layouts/ProseWrapper.astro
··· 1 + --- 2 + import { colorBaseClasses, colorAccentClasses } from "src/colors"; 3 + import config from "../config"; 4 + 5 + const { class: className } = Astro.props; 6 + --- 7 + 8 + <div 9 + class:list={[ 10 + "prose prose-img:rounded-2xl dark:prose-invert prose-a:no-underline", 11 + "prose-inline-code:font-semibold prose-inline-code:text-accent-600 dark:prose-inline-code:text-accent-400 prose-inline-code:bg-accent-300/20 dark:prose-inline-code:bg-accent-600/10 prose-inline-code:p-1 prose-inline-code:rounded-md", 12 + "prose-h1:text-3xl prose-h1:pb-0 prose-headings:mt-8", 13 + colorBaseClasses[config.BASE_COLOR], 14 + colorAccentClasses[config.ACCENT_COLOR], 15 + className, 16 + ]} 17 + > 18 + <main data-pagefind-body> 19 + <slot /> 20 + </main> 21 + </div>
+80
src/pages/docs/[...slug].astro
··· 1 + --- 2 + import { type CollectionEntry, render } from "astro:content"; 3 + import DocumentationLayout from "$layouts/DocumentationLayout.astro"; 4 + import ProseWrapper from "$layouts/ProseWrapper.astro"; 5 + import { getSortedDocs, getNextAndPreviousDocs } from "src/utils"; 6 + import config from "src/config"; 7 + import SecondaryButton from "$components/buttons/SecondaryButton.astro"; 8 + import Footer from "$components/Footer.astro"; 9 + 10 + export async function getStaticPaths() { 11 + const posts = await getSortedDocs(); 12 + return posts.map((post: any) => ({ 13 + params: { slug: post.id }, 14 + props: post, 15 + })); 16 + } 17 + type Props = CollectionEntry<"docs">; 18 + 19 + const post = Astro.props; 20 + const { Content, headings } = await render(post); 21 + 22 + // get next and previous posts 23 + const { next, previous } = await getNextAndPreviousDocs(post); 24 + --- 25 + 26 + <DocumentationLayout 27 + {...post.data} 28 + title={post.data.title + " | " + config.SITE_NAME} 29 + image={post.id + ".png"} 30 + id={post.id} 31 + headings={headings} 32 + > 33 + <div class="max-w-3xl lg:max-w-4xl ml-2 h-full p-4 mt-8 mb-16"> 34 + <ProseWrapper> 35 + <Content /> 36 + </ProseWrapper> 37 + 38 + <div class="flex justify-between my-16"> 39 + <div> 40 + { 41 + previous ? ( 42 + <div class="flex flex-col gap-3 items-start"> 43 + <SecondaryButton href={config.BASE + "/docs/" + previous.id}> 44 + <span aria-hidden="true">&larr;</span> 45 + Previous 46 + </SecondaryButton> 47 + <a 48 + href={config.BASE + "/docs/" + previous.id} 49 + class="text-lg dark:text-base-300 font-semibold" 50 + > 51 + {previous.data.title} 52 + </a> 53 + </div> 54 + ) : null 55 + } 56 + </div> 57 + 58 + <div> 59 + { 60 + next ? ( 61 + <div class="flex flex-col gap-3 items-end"> 62 + <SecondaryButton href={config.BASE + "/docs/" + next.id}> 63 + <span aria-hidden="true">&rarr;</span> 64 + Next 65 + </SecondaryButton> 66 + <a 67 + href={config.BASE + "/docs/" + next.id} 68 + class="text-lg dark:text-base-300 font-semibold" 69 + > 70 + {next.data.title} 71 + </a> 72 + </div> 73 + ) : null 74 + } 75 + </div> 76 + </div> 77 + 78 + <Footer /> 79 + </div> 80 + </DocumentationLayout>
+106
src/pages/index.astro
··· 1 + --- 2 + import { Image } from "astro:assets"; 3 + 4 + import BaseLayout from "$layouts/BaseLayout.astro"; 5 + import config from "../config"; 6 + 7 + import Header from "$components/Header.astro"; 8 + import CommandPalette from "$components/search/CommandPalette.svelte"; 9 + 10 + import screenlight from "$assets/screen-light.png"; 11 + import screendark from "$assets/screen-dark.png"; 12 + import { getSortedDocs } from "src/utils"; 13 + import PrimaryButton from "$components/buttons/PrimaryButton.astro"; 14 + 15 + const docs = await getSortedDocs(); 16 + --- 17 + 18 + <BaseLayout title={config.SITE_NAME} description={config.SITE_DESCRIPTION}> 19 + <div class="fixed top-0 left-0 right-0 h-16 z-30"> 20 + <Header /> 21 + </div> 22 + 23 + <CommandPalette client:load /> 24 + 25 + <div 26 + class="relative isolate overflow-hidden bg-base-50 dark:bg-base-950 w-full" 27 + > 28 + <div 29 + class="absolute left-[calc(50%-4rem)] top-10 -z-10 transform-gpu blur-3xl sm:left-[calc(50%-18rem)] lg:left-48 lg:top-[calc(50%-30rem)] xl:left-[calc(50%-24rem)]" 30 + aria-hidden="true" 31 + > 32 + <div 33 + class="aspect-[1108/632] w-[69.25rem] bg-gradient-to-r from-accent-300 to-accent-600 opacity-20" 34 + style="clip-path: polygon(73.6% 51.7%, 91.7% 11.8%, 100% 46.4%, 97.4% 82.2%, 92.5% 84.9%, 75.7% 64%, 55.3% 47.5%, 46.5% 49.4%, 45% 62.9%, 50.3% 87.2%, 21.3% 64.1%, 0.1% 100%, 5.4% 51.1%, 21.4% 63.9%, 58.9% 0.2%, 73.6% 51.7%)" 35 + > 36 + </div> 37 + </div> 38 + <div 39 + class="mx-auto max-w-7xl px-6 pb-24 pt-10 sm:pb-32 lg:flex lg:px-8 lg:py-40" 40 + > 41 + <div class="mx-auto max-w-2xl shrink-0 lg:mx-0 lg:pt-8"> 42 + <div class="mt-32 sm:mt-44 lg:mt-24"> 43 + <!-- <a href="#" class="inline-flex space-x-6"> 44 + <span 45 + class="rounded-full bg-accent-400/10 dark:bg-accent-500/10 px-3 py-1 text-sm/6 font-semibold text-accent-600 dark:text-accent-400 ring-1 ring-inset ring-accent-500/20" 46 + >What's new</span 47 + > 48 + <span 49 + class="inline-flex items-center space-x-2 text-sm/6 font-medium text-base-700 dark:text-base-300" 50 + > 51 + <span>Just shipped v1.0</span> 52 + <svg 53 + class="size-5 text-base-500" 54 + viewBox="0 0 20 20" 55 + fill="currentColor" 56 + aria-hidden="true" 57 + data-slot="icon" 58 + > 59 + <path 60 + fill-rule="evenodd" 61 + d="M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z" 62 + clip-rule="evenodd"></path> 63 + </svg> 64 + </span> 65 + </a> --> 66 + </div> 67 + <h1 68 + class="mt-10 text-pretty text-4xl sm:text-5xl font-semibold tracking-tight text-base-900 dark:text-white md:text-7xl" 69 + > 70 + {config.SITE_FAVICON} 71 + {config.SITE_NAME} 72 + </h1> 73 + <p 74 + class="mt-8 text-pretty text-lg font-medium text-base-600 dark:text-base-400 sm:text-xl/8" 75 + > 76 + {config.SITE_DESCRIPTION} 77 + </p> 78 + <div class="mt-10 flex items-center gap-x-6"> 79 + <PrimaryButton href={`${config.BASE}/docs/${docs[0].id}`}> 80 + {docs[0].data.title} 81 + </PrimaryButton> 82 + </div> 83 + </div> 84 + <div 85 + class="mx-auto mt-16 flex max-w-2xl sm:mt-24 lg:ml-10 lg:mr-0 lg:mt-0 lg:max-w-none lg:flex-none xl:ml-32" 86 + > 87 + <div class="max-w-3xl flex-none sm:max-w-5xl lg:max-w-none"> 88 + <Image 89 + src={screenlight} 90 + alt="App screenshot" 91 + width="2432" 92 + height="1442" 93 + class="w-[76rem] rounded-2xl bg-base-900/5 shadow-2xl ring-1 ring-base-800/10 dark:hidden" 94 + /> 95 + <Image 96 + src={screendark} 97 + alt="App screenshot" 98 + width="2432" 99 + height="1442" 100 + class="w-[76rem] rounded-2xl bg-white/5 shadow-2xl ring-1 ring-white/10 dark:block hidden" 101 + /> 102 + </div> 103 + </div> 104 + </div> 105 + </div> 106 + </BaseLayout>
+16
src/pages/llm-full.txt.ts
··· 1 + import type { APIRoute } from "astro"; 2 + import config from "src/config"; 3 + import { getSortedDocs } from "src/utils"; 4 + 5 + const docs = await getSortedDocs(); 6 + 7 + export const GET: APIRoute = async () => { 8 + return new Response( 9 + `# ${config.SITE_NAME} Full Documentation\n\n${docs 10 + .map((doc) => { 11 + return `${doc.body}\n\n`; 12 + }) 13 + .join("")}`, 14 + { headers: { "Content-Type": "text/plain; charset=utf-8" } } 15 + ); 16 + };
+20
src/pages/llm.txt.ts
··· 1 + import type { APIRoute } from "astro"; 2 + import config from "src/config"; 3 + import { getSortedDocs, getDocs } from "src/utils"; 4 + 5 + const docs = await getDocs(); 6 + 7 + export const GET: APIRoute = async () => { 8 + return new Response( 9 + `# ${config.SITE_NAME} Documentation Overview\n\n${docs 10 + .map((category) => { 11 + return `${category.category}\n\n${category.docs 12 + .map((doc) => { 13 + return `${doc.data.title}:\n${config.SITE}${config.BASE}/${doc.id}\n\n`; 14 + }) 15 + .join("")}`; 16 + }) 17 + .join("\n\n")}`, 18 + { headers: { "Content-Type": "text/plain; charset=utf-8" } } 19 + ); 20 + };
+69
src/pages/open-graph/[...route].ts
··· 1 + import { OGImageRoute } from "astro-og-canvas"; 2 + import config from "../../config"; 3 + import { getSortedDocs } from "src/utils"; 4 + 5 + const posts = await getSortedDocs(); 6 + 7 + // turn posts into an object with slugs as keys, and title and description as values 8 + // { slug: { title, description } } 9 + 10 + const pages = posts.reduce( 11 + (acc, post) => { 12 + acc[post.id] = { 13 + title: post.data.noTextInOGImage ? "" : post.data.title, 14 + description: post.data.noTextInOGImage 15 + ? "" 16 + : (post.data.shortDescription ?? post.data.description ?? ""), 17 + customOGImage: post.data.customOGImage, 18 + }; 19 + return acc; 20 + }, 21 + {} as Record< 22 + string, 23 + { title: string; description: string; customOGImage?: string } 24 + >, 25 + ); 26 + 27 + export const { getStaticPaths, GET } = OGImageRoute({ 28 + // Tell us the name of your dynamic route segment. 29 + // In this case it’s `route`, because the file is named `[...route].ts`. 30 + param: "route", 31 + 32 + // A collection of pages to generate images for. 33 + // The keys of this object are used to generate the path for that image. 34 + // In this example, we generate one image at `/open-graph/example.png`. 35 + pages: { 36 + main: { 37 + title: config.SITE_NAME, 38 + description: config.SITE_DESCRIPTION, 39 + }, 40 + ...pages, 41 + }, 42 + 43 + // For each page, this callback will be used to customize the OpenGraph image. 44 + getImageOptions: (_, page) => ({ 45 + title: page.title, 46 + description: page.description, 47 + bgImage: { 48 + path: page.customOGImage 49 + ? "." + page.customOGImage 50 + : "./src/assets/backgrounds/background.jpg", 51 + fit: "cover", 52 + }, 53 + font: { 54 + /** Font style for the page title. */ 55 + title: { 56 + families: ["Inter"], 57 + color: [255, 255, 255], 58 + size: 80, 59 + weight: "SemiBold", 60 + }, 61 + description: { 62 + families: ["Inter"], 63 + color: [255, 255, 255], 64 + }, 65 + }, 66 + padding: 80, 67 + fonts: ["./src/assets/fonts/InterVariable.ttf"], 68 + }), 69 + });
+56
src/utils.ts
··· 1 + import { getCollection } from "astro:content"; 2 + 3 + function sortByCategory(a: any, b: any): number | undefined { 4 + if(a.data.category !== undefined && b.data.category === undefined) return 1; 5 + if(a.data.category === undefined && b.data.category !== undefined) return -1; 6 + if(a.data.category !== undefined && b.data.category !== undefined && a.data.category !== b.data.category) { 7 + if(a.data.categoryOrder !== undefined && b.data.categoryOrder === undefined) return -1; 8 + if(a.data.categoryOrder === undefined && b.data.categoryOrder !== undefined) return 1; 9 + if(a.data.categoryOrder !== undefined && b.data.categoryOrder !== undefined) return a.data.categoryOrder - b.data.categoryOrder; 10 + 11 + return a.data.category.localeCompare(b.data.category); 12 + } 13 + } 14 + 15 + export const getSortedDocs = async () => { 16 + return (await getCollection("docs")).sort((a, b) => { 17 + let categorySort = sortByCategory(a, b); 18 + if(categorySort !== undefined) return categorySort; 19 + 20 + // if a has order but b doesnt, a comes first and vice versa 21 + if (a.data.order !== undefined && b.data.order === undefined) return -1; 22 + if (a.data.order === undefined && b.data.order !== undefined) return 1; 23 + if (a.data.order !== undefined && b.data.order !== undefined) return a.data.order - b.data.order; 24 + 25 + return a.data.title.localeCompare(b.data.title); 26 + }); 27 + }; 28 + 29 + export const getDocs = async () => { 30 + const docs = await getSortedDocs(); 31 + 32 + const categories = docs.map((doc) => doc.data.category).filter((category) => category !== undefined); 33 + const uniqueCategories = [...new Set(categories)]; 34 + 35 + uniqueCategories.unshift(""); 36 + 37 + // turn into array of objects with category names and docs for each category 38 + const sortedDocs = uniqueCategories.map((category) => { 39 + return { 40 + category: category, 41 + docs: docs.filter((doc) => (doc.data.category ?? "") === category) 42 + }; 43 + }); 44 + return sortedDocs; 45 + }; 46 + 47 + 48 + export const getNextAndPreviousDocs = async (doc: any) => { 49 + const docs = await getSortedDocs(); 50 + console.log(docs.map((d) => d.id)); 51 + const index = docs.findIndex((d) => d.id === doc.id); 52 + return { 53 + previous: index > 0 ? docs[index - 1] : null, 54 + next: index < docs.length - 1 ? docs[index + 1] : null, 55 + }; 56 + };
+5
svelte.config.js
··· 1 + import { vitePreprocess } from "@astrojs/svelte"; 2 + 3 + export default { 4 + preprocess: vitePreprocess(), 5 + };
+47
tailwind.config.mjs
··· 1 + import prose from "@tailwindcss/typography"; 2 + import forms from "@tailwindcss/forms"; 3 + import plugin from "tailwindcss/plugin"; 4 + import colors from "tailwindcss/colors"; 5 + import config from "./src/config"; 6 + 7 + /** @type {import('tailwindcss').Config} */ 8 + export default { 9 + content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], 10 + theme: { 11 + extend: { 12 + colors: { 13 + accent: colors[config.ACCENT_COLOR.toLowerCase()], 14 + base: colors[config.BASE_COLOR.toLowerCase()], 15 + }, 16 + typography: { 17 + DEFAULT: { 18 + css: { 19 + "code::before": { 20 + content: "none", 21 + }, 22 + "code::after": { 23 + content: "none", 24 + }, 25 + "blockquote p:first-of-type::before": { 26 + content: "none", 27 + }, 28 + "blockquote p:first-of-type::after": { 29 + content: "none", 30 + }, 31 + }, 32 + }, 33 + }, 34 + }, 35 + }, 36 + darkMode: config.SHOW_THEME_TOGGLE ? "class" : "media", 37 + plugins: [ 38 + prose, 39 + forms, 40 + plugin(function ({ addVariant }) { 41 + addVariant( 42 + "prose-inline-code", 43 + '&.prose :where(:not(pre)>code):not(:where([class~="not-prose"] *))', 44 + ); 45 + }), 46 + ], 47 + };
+36
todo.md
··· 1 + - [x] show mobile sidebar 2 + - [x] add next and previous buttons 3 + - [x] start page 4 + - fix click in sidebar 5 + - alerts as custom embeds (+ github flavored markdown alerts) 6 + - edit on github link 7 + - ignore numbers in ids before - 8 + - ally: add skip to content button 9 + - change categories to use frontmatter instead of folder structure 10 + 11 + ## components 12 + 13 + - [x] sandbox 14 + - [x] excalidraw graphs 15 + - [ ] mermaid graphs (convert to excalidraw -> svg) 16 + - [ ] code block/tabs 17 + - [ ] card 18 + - [ ] button 19 + - [ ] badge 20 + - [ ] collapse 21 + - [ ] filetree 22 + - [ ] graphs 23 + - [ ] steps 24 + - [ ] table 25 + - [ ] graphs 26 + 27 + 28 + ## later 29 + - rest api stuff 30 + - improve search design 31 + - switch search to use vanilla js instead of svelte 32 + - openapi 33 + - animate search bar 34 + - animation copy code button 35 + - animate sidebar stuff (move background) 36 + - allow setting favicon + logo in config (instead of just emoji + title)
+36
tsconfig.json
··· 1 + { 2 + "extends": "astro/tsconfigs/strict", 3 + "compilerOptions": { 4 + "strictNullChecks": true, 5 + "baseUrl": ".", 6 + "paths": { 7 + "$lib/*": [ 8 + "src/lib/*" 9 + ], 10 + "$components/*": [ 11 + "src/components/*" 12 + ], 13 + "$layouts/*": [ 14 + "src/layouts/*" 15 + ], 16 + "$pages/*": [ 17 + "src/pages/*" 18 + ], 19 + "$styles/*": [ 20 + "src/styles/*" 21 + ], 22 + "$assets/*": [ 23 + "src/assets/*" 24 + ], 25 + "$examples/*": [ 26 + "src/examples/*" 27 + ] 28 + }, 29 + "jsx": "react-jsx", 30 + "jsxImportSource": "react" 31 + }, 32 + "exclude": [ 33 + "public/pagefind", 34 + "dist" 35 + ] 36 + }