[READ-ONLY] Mirror of https://github.com/jmrplens/jmrplens.github.io. José M. Requena Plens — open-source projects & documentation hub
0

Configure Feed

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

feat: redesign hub with Astro + 'Lab' design system, SEO/GEO

Replace the single static index.html with an Astro site that reuses the
beta.jmrp.io 'Lab / Engineering' design system (dark-first, amber + teal,
Space Grotesk / IBM Plex Sans / IBM Plex Mono, terminal-prompt logo, ambient
grid, hairline surfaces, mono kickers, status pills).

- jmrp.io is surfaced as the primary destination throughout (nav, hero lead,
primary CTA, preference banner, footer) while still listing each repo's docs.
- Data-driven: src/data/site.ts is the single source for identity + projects,
feeding the page, JSON-LD @graph, and llms.txt.
- SEO/GEO: canonical, OG/Twitter with a generated 1200x630 image, JSON-LD
@graph (Person -> jmrp.io, WebSite, ProfilePage, ItemList of SoftwareSourceCode),
Bing verification meta at host root, self-hosted fonts (CSP-friendly),
theme-color per scheme, favicon/apple-touch-icon/manifest, llms.txt.
- Static assets (robots.txt, sitemap.xml with the two doc sites, IndexNow key)
move to public/ and ship at the domain root unchanged.
- Deploy via GitHub Actions (Pages build type switched to 'workflow'); the
workflow also pings IndexNow for the hub + doc URLs.
- Accessibility: AA light theme, :focus-visible, prefers-reduced-motion,
skip-link, real <button>/<a> controls.

Claude-Session: https://claude.ai/code/session_01PuVd2s3rFHhCb1HSz5vACK

José M. Requena Plens (Jul 1, 2026, 4:39 PM +0200) c6af3c7c d44d7ab6

+5212 -232
+82
.github/workflows/pages.yml
··· 1 + name: 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 + # Only one Pages deploy at a time; newer pushes supersede older runs. 14 + concurrency: 15 + group: pages 16 + cancel-in-progress: true 17 + 18 + jobs: 19 + build: 20 + name: Build site 21 + runs-on: ubuntu-latest 22 + steps: 23 + - uses: actions/checkout@v4 24 + 25 + - uses: pnpm/action-setup@v4 26 + 27 + - name: Setup Node 28 + uses: actions/setup-node@v4 29 + with: 30 + node-version: 22 31 + cache: pnpm 32 + 33 + - name: Install dependencies 34 + run: pnpm install --frozen-lockfile 35 + 36 + - name: Build 37 + run: pnpm build 38 + 39 + - uses: actions/configure-pages@v5 40 + 41 + - name: Upload artifact 42 + uses: actions/upload-pages-artifact@v3 43 + with: 44 + path: dist 45 + 46 + deploy: 47 + name: Deploy 48 + needs: build 49 + runs-on: ubuntu-latest 50 + environment: 51 + name: github-pages 52 + url: ${{ steps.deployment.outputs.page_url }} 53 + outputs: 54 + page_url: ${{ steps.deployment.outputs.page_url }} 55 + steps: 56 + - name: Deploy to GitHub Pages 57 + id: deployment 58 + uses: actions/deploy-pages@v4 59 + 60 + indexnow: 61 + name: Submit to IndexNow 62 + needs: deploy 63 + runs-on: ubuntu-latest 64 + steps: 65 + - name: Ping IndexNow 66 + env: 67 + PAGE_URL: ${{ needs.deploy.outputs.page_url }} 68 + INDEXNOW_KEY: dc7e97bcf6a14edea77efc1983e3e751 69 + run: | 70 + set -euo pipefail 71 + HOST="$(printf '%s' "$PAGE_URL" | sed -E 's#https?://([^/]+)/?.*#\1#')" 72 + [ -n "$HOST" ] || HOST="jmrplens.github.io" 73 + url_json="$(printf '"https://%s/","https://%s/gitlab-mcp-server/","https://%s/cs-routeros-bouncer/"' "$HOST" "$HOST" "$HOST")" 74 + body="$(printf '{"host":"%s","key":"%s","keyLocation":"https://%s/%s.txt","urlList":[%s]}' \ 75 + "$HOST" "$INDEXNOW_KEY" "$HOST" "$INDEXNOW_KEY" "$url_json")" 76 + code="$(curl -s -o /dev/null -w '%{http_code}' \ 77 + -H 'Content-Type: application/json; charset=utf-8' \ 78 + -d "$body" 'https://api.indexnow.org/indexnow' || true)" 79 + case "$code" in 80 + 200|202) echo "IndexNow accepted (HTTP $code)";; 81 + *) echo "::warning::IndexNow returned HTTP $code (non-fatal)";; 82 + esac
+11
.gitignore
··· 1 + # build output 2 + dist/ 3 + # generated types 4 + .astro/ 5 + # deps 6 + node_modules/ 7 + # env / logs / os 8 + .env 9 + .env.production 10 + *.log 11 + .DS_Store
+29
README.md
··· 1 + # jmrplens.github.io 2 + 3 + Documentation hub for my open-source projects. My primary website is 4 + **[jmrp.io](https://jmrp.io)** — this GitHub Pages site only indexes the 5 + technical documentation of individual repositories. 6 + 7 + Built with [Astro](https://astro.build) using the jmrp.io "Lab / Engineering" 8 + design system (dark-first, amber + teal, self-hosted fonts). 9 + 10 + ## Develop 11 + 12 + ```bash 13 + pnpm install 14 + pnpm dev # local dev server 15 + pnpm check # astro type/diagnostics check 16 + pnpm build # static build → dist/ 17 + ``` 18 + 19 + ## Structure 20 + 21 + - `src/data/site.ts` — single source of truth (identity + project list). Add a 22 + project here and it flows into the page, JSON-LD, and `llms.txt`. 23 + - `src/pages/index.astro` — the hub page. 24 + - `src/layouts/Base.astro` — head, SEO/OG, JSON-LD `@graph`, theme handling. 25 + - `public/` — `robots.txt`, `sitemap.xml`, `llms.txt`, icons, OG image, and the 26 + IndexNow key served at the domain root. 27 + 28 + Deploys automatically to GitHub Pages on push to `main` 29 + (`.github/workflows/pages.yml`), which also pings IndexNow.
+11
astro.config.mjs
··· 1 + // @ts-check 2 + import { defineConfig } from "astro/config"; 3 + 4 + // User site (jmrplens.github.io) → served from the domain root, base "/". 5 + export default defineConfig({ 6 + site: "https://jmrplens.github.io", 7 + base: "/", 8 + trailingSlash: "ignore", 9 + build: { assets: "assets" }, 10 + devToolbar: { enabled: false }, 11 + });
dc7e97bcf6a14edea77efc1983e3e751.txt public/dc7e97bcf6a14edea77efc1983e3e751.txt
-232
index.html
··· 1 - <!doctype html> 2 - <html lang="en"> 3 - <head> 4 - <meta charset="utf-8" /> 5 - <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 - <title>José M. Requena Plens — Open-source projects & docs</title> 7 - <meta 8 - name="description" 9 - content="Open-source projects by José M. Requena Plens (jmrplens) and their documentation, including GitLab MCP Server." 10 - /> 11 - <link rel="canonical" href="https://jmrplens.github.io/" /> 12 - <meta name="author" content="José M. Requena Plens" /> 13 - <!-- Bing Webmaster Tools site verification (host root; covers all sub-path doc sites). --> 14 - <meta name="msvalidate.01" content="7574EB3B44624C239F14920DBC34EE25" /> 15 - <meta name="theme-color" content="#A78BFA" /> 16 - 17 - <!-- Open Graph --> 18 - <meta property="og:type" content="profile" /> 19 - <meta property="og:title" content="José M. Requena Plens — Open-source projects & docs" /> 20 - <meta 21 - property="og:description" 22 - content="Open-source projects by jmrplens and their documentation, including GitLab MCP Server." 23 - /> 24 - <meta property="og:url" content="https://jmrplens.github.io/" /> 25 - <meta name="twitter:card" content="summary" /> 26 - 27 - <!-- rel=me identity --> 28 - <link rel="me" href="https://github.com/jmrplens" /> 29 - <link rel="me" href="https://jmrp.io" /> 30 - <link rel="me" href="https://linkedin.com/in/jmrplens" /> 31 - 32 - <script type="application/ld+json"> 33 - { 34 - "@context": "https://schema.org", 35 - "@type": "ProfilePage", 36 - "url": "https://jmrplens.github.io/", 37 - "mainEntity": { 38 - "@type": "Person", 39 - "@id": "https://jmrp.io/#person", 40 - "name": "José M. Requena Plens", 41 - "alternateName": "jmrplens", 42 - "url": "https://jmrp.io", 43 - "sameAs": [ 44 - "https://github.com/jmrplens", 45 - "https://linkedin.com/in/jmrplens", 46 - "https://scholar.google.com/citations?user=9b0kPaUAAAAJ", 47 - "https://mstdn.jmrp.io/@jmrplens", 48 - "https://keyoxide.org/0A993B268654DBBA52B7E8D3FCF653391E2C91FC" 49 - ] 50 - }, 51 - "about": { 52 - "@type": "SoftwareApplication", 53 - "name": "GitLab MCP Server", 54 - "url": "https://jmrplens.github.io/gitlab-mcp-server/", 55 - "sameAs": "https://www.wikidata.org/wiki/Q140389426" 56 - } 57 - } 58 - </script> 59 - 60 - <style> 61 - :root { 62 - color-scheme: light dark; 63 - --bg: #ffffff; 64 - --fg: #1a1a2e; 65 - --muted: #5b5b7a; 66 - --card: #f6f6fb; 67 - --border: #e6e6f0; 68 - --accent: #7c3aed; 69 - --accent-fg: #ffffff; 70 - } 71 - @media (prefers-color-scheme: dark) { 72 - :root { 73 - --bg: #0d0d17; 74 - --fg: #ececf5; 75 - --muted: #a0a0c0; 76 - --card: #16162a; 77 - --border: #26263f; 78 - --accent: #a78bfa; 79 - --accent-fg: #0d0d17; 80 - } 81 - } 82 - * { 83 - box-sizing: border-box; 84 - } 85 - body { 86 - margin: 0; 87 - background: var(--bg); 88 - color: var(--fg); 89 - font: 16px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, 90 - sans-serif; 91 - -webkit-font-smoothing: antialiased; 92 - } 93 - .wrap { 94 - max-width: 720px; 95 - margin: 0 auto; 96 - padding: 4rem 1.25rem 3rem; 97 - } 98 - header h1 { 99 - margin: 0 0 0.25rem; 100 - font-size: 2rem; 101 - letter-spacing: -0.02em; 102 - } 103 - header p { 104 - margin: 0; 105 - color: var(--muted); 106 - } 107 - .lead { 108 - margin: 1.75rem 0 2.5rem; 109 - font-size: 1.05rem; 110 - } 111 - h2 { 112 - font-size: 0.8rem; 113 - text-transform: uppercase; 114 - letter-spacing: 0.08em; 115 - color: var(--muted); 116 - margin: 2.5rem 0 1rem; 117 - } 118 - .card { 119 - display: block; 120 - border: 1px solid var(--border); 121 - background: var(--card); 122 - border-radius: 14px; 123 - padding: 1.25rem 1.4rem; 124 - margin-bottom: 1rem; 125 - text-decoration: none; 126 - color: inherit; 127 - transition: 128 - transform 0.12s ease, 129 - border-color 0.12s ease; 130 - } 131 - .card:hover { 132 - transform: translateY(-2px); 133 - border-color: var(--accent); 134 - } 135 - .card h3 { 136 - margin: 0 0 0.35rem; 137 - font-size: 1.15rem; 138 - } 139 - .card h3 a { 140 - color: inherit; 141 - text-decoration: none; 142 - } 143 - .card:hover h3 a { 144 - color: var(--accent); 145 - } 146 - .card p { 147 - margin: 0 0 0.6rem; 148 - color: var(--muted); 149 - } 150 - .links a { 151 - color: var(--accent); 152 - text-decoration: none; 153 - font-weight: 600; 154 - font-size: 0.92rem; 155 - margin-right: 1rem; 156 - } 157 - .links a:hover { 158 - text-decoration: underline; 159 - } 160 - .cta { 161 - display: inline-block; 162 - margin-top: 0.5rem; 163 - padding: 0.6rem 1.1rem; 164 - background: var(--accent); 165 - color: var(--accent-fg); 166 - border-radius: 10px; 167 - text-decoration: none; 168 - font-weight: 600; 169 - } 170 - footer { 171 - margin-top: 3rem; 172 - padding-top: 1.5rem; 173 - border-top: 1px solid var(--border); 174 - color: var(--muted); 175 - font-size: 0.9rem; 176 - } 177 - footer a { 178 - color: var(--muted); 179 - margin-right: 1rem; 180 - } 181 - </style> 182 - </head> 183 - <body> 184 - <main class="wrap"> 185 - <header> 186 - <h1>José M. Requena Plens</h1> 187 - <p>Open-source projects &amp; their documentation</p> 188 - </header> 189 - 190 - <p class="lead"> 191 - Documentation hub for my open-source work. My main site is 192 - <a href="https://jmrp.io">jmrp.io</a>. 193 - </p> 194 - 195 - <h2>Projects</h2> 196 - 197 - <article class="card"> 198 - <h3><a href="https://jmrplens.github.io/gitlab-mcp-server/">GitLab MCP Server</a></h3> 199 - <p> 200 - A Model Context Protocol (MCP) server that exposes GitLab's REST v4 and GraphQL APIs as 201 - 1,000+ tools for AI assistants — a single static Go binary over stdio or HTTP. 202 - </p> 203 - <span class="links" 204 - ><a href="https://jmrplens.github.io/gitlab-mcp-server/">Documentation →</a 205 - ><a href="https://github.com/jmrplens/gitlab-mcp-server">GitHub</a></span 206 - > 207 - </article> 208 - 209 - <article class="card"> 210 - <h3><a href="https://jmrplens.github.io/cs-routeros-bouncer/">CrowdSec RouterOS Bouncer</a></h3> 211 - <p> 212 - A CrowdSec bouncer for MikroTik RouterOS — manages address lists and firewall rules via the 213 - RouterOS API. Written in Go. 214 - </p> 215 - <span class="links" 216 - ><a href="https://jmrplens.github.io/cs-routeros-bouncer/">Documentation →</a 217 - ><a href="https://github.com/jmrplens/cs-routeros-bouncer">GitHub</a></span 218 - > 219 - </article> 220 - 221 - <h2>Elsewhere</h2> 222 - <p><a class="cta" href="https://jmrp.io">Visit jmrp.io →</a></p> 223 - 224 - <footer> 225 - <a href="https://github.com/jmrplens">GitHub</a> 226 - <a href="https://jmrp.io">jmrp.io</a> 227 - <a href="https://linkedin.com/in/jmrplens">LinkedIn</a> 228 - <a href="https://scholar.google.com/citations?user=9b0kPaUAAAAJ">Scholar</a> 229 - </footer> 230 - </main> 231 - </body> 232 - </html>
+24
package.json
··· 1 + { 2 + "name": "jmrplens-github-io", 3 + "type": "module", 4 + "version": "1.0.0", 5 + "private": true, 6 + "packageManager": "pnpm@11.8.0", 7 + "description": "Documentation hub for open-source projects by José M. Requena Plens (jmrplens).", 8 + "scripts": { 9 + "dev": "astro dev", 10 + "build": "astro build", 11 + "preview": "astro preview", 12 + "check": "astro check" 13 + }, 14 + "dependencies": { 15 + "@fontsource/ibm-plex-mono": "^5.1.1", 16 + "@fontsource/ibm-plex-sans": "^5.1.1", 17 + "@fontsource/space-grotesk": "^5.1.1", 18 + "astro": "^5.7.0" 19 + }, 20 + "devDependencies": { 21 + "@astrojs/check": "^0.9.4", 22 + "typescript": "^5.7.0" 23 + } 24 + }
+4092
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + dependencies: 11 + '@fontsource/ibm-plex-mono': 12 + specifier: ^5.1.1 13 + version: 5.2.7 14 + '@fontsource/ibm-plex-sans': 15 + specifier: ^5.1.1 16 + version: 5.2.8 17 + '@fontsource/space-grotesk': 18 + specifier: ^5.1.1 19 + version: 5.2.10 20 + astro: 21 + specifier: ^5.7.0 22 + version: 5.18.2(rollup@4.62.2)(typescript@5.9.3)(yaml@2.9.0) 23 + devDependencies: 24 + '@astrojs/check': 25 + specifier: ^0.9.4 26 + version: 0.9.9(prettier@3.9.4)(typescript@5.9.3) 27 + typescript: 28 + specifier: ^5.7.0 29 + version: 5.9.3 30 + 31 + packages: 32 + 33 + '@astrojs/check@0.9.9': 34 + resolution: {integrity: sha512-A5UW8uIuErLWEoRQvzgXpO1gTjUFtK8r7nU2Z7GewAMxUb7bPvpk11qaKKgxqXlHJWlAvaaxy+Xg28A6bmQ1Tg==} 35 + hasBin: true 36 + peerDependencies: 37 + typescript: ^5.0.0 || ^6.0.0 38 + 39 + '@astrojs/compiler@2.13.1': 40 + resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} 41 + 42 + '@astrojs/internal-helpers@0.7.6': 43 + resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} 44 + 45 + '@astrojs/language-server@2.16.10': 46 + resolution: {integrity: sha512-87VQ/5GSdHlRnUA+hGuerYyIGAj+9RbZmATyuKLEUePinUXhQ5YkRnRrHhOD9sSi5JOErLjrLkHnfZFEvGrV8w==} 47 + hasBin: true 48 + peerDependencies: 49 + prettier: ^3.0.0 50 + prettier-plugin-astro: '>=0.11.0' 51 + peerDependenciesMeta: 52 + prettier: 53 + optional: true 54 + prettier-plugin-astro: 55 + optional: true 56 + 57 + '@astrojs/markdown-remark@6.3.11': 58 + resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} 59 + 60 + '@astrojs/prism@3.3.0': 61 + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} 62 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 63 + 64 + '@astrojs/telemetry@3.3.0': 65 + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} 66 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 67 + 68 + '@astrojs/yaml2ts@0.2.4': 69 + resolution: {integrity: sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==} 70 + 71 + '@babel/helper-string-parser@7.29.7': 72 + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} 73 + engines: {node: '>=6.9.0'} 74 + 75 + '@babel/helper-validator-identifier@7.29.7': 76 + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} 77 + engines: {node: '>=6.9.0'} 78 + 79 + '@babel/parser@7.29.7': 80 + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} 81 + engines: {node: '>=6.0.0'} 82 + hasBin: true 83 + 84 + '@babel/types@7.29.7': 85 + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} 86 + engines: {node: '>=6.9.0'} 87 + 88 + '@capsizecss/unpack@4.0.1': 89 + resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} 90 + engines: {node: '>=18'} 91 + 92 + '@emmetio/abbreviation@2.3.3': 93 + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} 94 + 95 + '@emmetio/css-abbreviation@2.1.8': 96 + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} 97 + 98 + '@emmetio/css-parser@0.4.1': 99 + resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} 100 + 101 + '@emmetio/html-matcher@1.3.0': 102 + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} 103 + 104 + '@emmetio/scanner@1.0.4': 105 + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} 106 + 107 + '@emmetio/stream-reader-utils@0.1.0': 108 + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} 109 + 110 + '@emmetio/stream-reader@2.2.0': 111 + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} 112 + 113 + '@emnapi/runtime@1.11.1': 114 + resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} 115 + 116 + '@esbuild/aix-ppc64@0.25.12': 117 + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} 118 + engines: {node: '>=18'} 119 + cpu: [ppc64] 120 + os: [aix] 121 + 122 + '@esbuild/aix-ppc64@0.27.7': 123 + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} 124 + engines: {node: '>=18'} 125 + cpu: [ppc64] 126 + os: [aix] 127 + 128 + '@esbuild/android-arm64@0.25.12': 129 + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} 130 + engines: {node: '>=18'} 131 + cpu: [arm64] 132 + os: [android] 133 + 134 + '@esbuild/android-arm64@0.27.7': 135 + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} 136 + engines: {node: '>=18'} 137 + cpu: [arm64] 138 + os: [android] 139 + 140 + '@esbuild/android-arm@0.25.12': 141 + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} 142 + engines: {node: '>=18'} 143 + cpu: [arm] 144 + os: [android] 145 + 146 + '@esbuild/android-arm@0.27.7': 147 + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} 148 + engines: {node: '>=18'} 149 + cpu: [arm] 150 + os: [android] 151 + 152 + '@esbuild/android-x64@0.25.12': 153 + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} 154 + engines: {node: '>=18'} 155 + cpu: [x64] 156 + os: [android] 157 + 158 + '@esbuild/android-x64@0.27.7': 159 + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} 160 + engines: {node: '>=18'} 161 + cpu: [x64] 162 + os: [android] 163 + 164 + '@esbuild/darwin-arm64@0.25.12': 165 + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} 166 + engines: {node: '>=18'} 167 + cpu: [arm64] 168 + os: [darwin] 169 + 170 + '@esbuild/darwin-arm64@0.27.7': 171 + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} 172 + engines: {node: '>=18'} 173 + cpu: [arm64] 174 + os: [darwin] 175 + 176 + '@esbuild/darwin-x64@0.25.12': 177 + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} 178 + engines: {node: '>=18'} 179 + cpu: [x64] 180 + os: [darwin] 181 + 182 + '@esbuild/darwin-x64@0.27.7': 183 + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} 184 + engines: {node: '>=18'} 185 + cpu: [x64] 186 + os: [darwin] 187 + 188 + '@esbuild/freebsd-arm64@0.25.12': 189 + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} 190 + engines: {node: '>=18'} 191 + cpu: [arm64] 192 + os: [freebsd] 193 + 194 + '@esbuild/freebsd-arm64@0.27.7': 195 + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} 196 + engines: {node: '>=18'} 197 + cpu: [arm64] 198 + os: [freebsd] 199 + 200 + '@esbuild/freebsd-x64@0.25.12': 201 + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} 202 + engines: {node: '>=18'} 203 + cpu: [x64] 204 + os: [freebsd] 205 + 206 + '@esbuild/freebsd-x64@0.27.7': 207 + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} 208 + engines: {node: '>=18'} 209 + cpu: [x64] 210 + os: [freebsd] 211 + 212 + '@esbuild/linux-arm64@0.25.12': 213 + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} 214 + engines: {node: '>=18'} 215 + cpu: [arm64] 216 + os: [linux] 217 + 218 + '@esbuild/linux-arm64@0.27.7': 219 + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} 220 + engines: {node: '>=18'} 221 + cpu: [arm64] 222 + os: [linux] 223 + 224 + '@esbuild/linux-arm@0.25.12': 225 + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} 226 + engines: {node: '>=18'} 227 + cpu: [arm] 228 + os: [linux] 229 + 230 + '@esbuild/linux-arm@0.27.7': 231 + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} 232 + engines: {node: '>=18'} 233 + cpu: [arm] 234 + os: [linux] 235 + 236 + '@esbuild/linux-ia32@0.25.12': 237 + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} 238 + engines: {node: '>=18'} 239 + cpu: [ia32] 240 + os: [linux] 241 + 242 + '@esbuild/linux-ia32@0.27.7': 243 + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} 244 + engines: {node: '>=18'} 245 + cpu: [ia32] 246 + os: [linux] 247 + 248 + '@esbuild/linux-loong64@0.25.12': 249 + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} 250 + engines: {node: '>=18'} 251 + cpu: [loong64] 252 + os: [linux] 253 + 254 + '@esbuild/linux-loong64@0.27.7': 255 + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} 256 + engines: {node: '>=18'} 257 + cpu: [loong64] 258 + os: [linux] 259 + 260 + '@esbuild/linux-mips64el@0.25.12': 261 + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} 262 + engines: {node: '>=18'} 263 + cpu: [mips64el] 264 + os: [linux] 265 + 266 + '@esbuild/linux-mips64el@0.27.7': 267 + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} 268 + engines: {node: '>=18'} 269 + cpu: [mips64el] 270 + os: [linux] 271 + 272 + '@esbuild/linux-ppc64@0.25.12': 273 + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} 274 + engines: {node: '>=18'} 275 + cpu: [ppc64] 276 + os: [linux] 277 + 278 + '@esbuild/linux-ppc64@0.27.7': 279 + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} 280 + engines: {node: '>=18'} 281 + cpu: [ppc64] 282 + os: [linux] 283 + 284 + '@esbuild/linux-riscv64@0.25.12': 285 + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} 286 + engines: {node: '>=18'} 287 + cpu: [riscv64] 288 + os: [linux] 289 + 290 + '@esbuild/linux-riscv64@0.27.7': 291 + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} 292 + engines: {node: '>=18'} 293 + cpu: [riscv64] 294 + os: [linux] 295 + 296 + '@esbuild/linux-s390x@0.25.12': 297 + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} 298 + engines: {node: '>=18'} 299 + cpu: [s390x] 300 + os: [linux] 301 + 302 + '@esbuild/linux-s390x@0.27.7': 303 + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} 304 + engines: {node: '>=18'} 305 + cpu: [s390x] 306 + os: [linux] 307 + 308 + '@esbuild/linux-x64@0.25.12': 309 + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} 310 + engines: {node: '>=18'} 311 + cpu: [x64] 312 + os: [linux] 313 + 314 + '@esbuild/linux-x64@0.27.7': 315 + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} 316 + engines: {node: '>=18'} 317 + cpu: [x64] 318 + os: [linux] 319 + 320 + '@esbuild/netbsd-arm64@0.25.12': 321 + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} 322 + engines: {node: '>=18'} 323 + cpu: [arm64] 324 + os: [netbsd] 325 + 326 + '@esbuild/netbsd-arm64@0.27.7': 327 + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} 328 + engines: {node: '>=18'} 329 + cpu: [arm64] 330 + os: [netbsd] 331 + 332 + '@esbuild/netbsd-x64@0.25.12': 333 + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} 334 + engines: {node: '>=18'} 335 + cpu: [x64] 336 + os: [netbsd] 337 + 338 + '@esbuild/netbsd-x64@0.27.7': 339 + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} 340 + engines: {node: '>=18'} 341 + cpu: [x64] 342 + os: [netbsd] 343 + 344 + '@esbuild/openbsd-arm64@0.25.12': 345 + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} 346 + engines: {node: '>=18'} 347 + cpu: [arm64] 348 + os: [openbsd] 349 + 350 + '@esbuild/openbsd-arm64@0.27.7': 351 + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} 352 + engines: {node: '>=18'} 353 + cpu: [arm64] 354 + os: [openbsd] 355 + 356 + '@esbuild/openbsd-x64@0.25.12': 357 + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} 358 + engines: {node: '>=18'} 359 + cpu: [x64] 360 + os: [openbsd] 361 + 362 + '@esbuild/openbsd-x64@0.27.7': 363 + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} 364 + engines: {node: '>=18'} 365 + cpu: [x64] 366 + os: [openbsd] 367 + 368 + '@esbuild/openharmony-arm64@0.25.12': 369 + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} 370 + engines: {node: '>=18'} 371 + cpu: [arm64] 372 + os: [openharmony] 373 + 374 + '@esbuild/openharmony-arm64@0.27.7': 375 + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} 376 + engines: {node: '>=18'} 377 + cpu: [arm64] 378 + os: [openharmony] 379 + 380 + '@esbuild/sunos-x64@0.25.12': 381 + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} 382 + engines: {node: '>=18'} 383 + cpu: [x64] 384 + os: [sunos] 385 + 386 + '@esbuild/sunos-x64@0.27.7': 387 + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} 388 + engines: {node: '>=18'} 389 + cpu: [x64] 390 + os: [sunos] 391 + 392 + '@esbuild/win32-arm64@0.25.12': 393 + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} 394 + engines: {node: '>=18'} 395 + cpu: [arm64] 396 + os: [win32] 397 + 398 + '@esbuild/win32-arm64@0.27.7': 399 + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} 400 + engines: {node: '>=18'} 401 + cpu: [arm64] 402 + os: [win32] 403 + 404 + '@esbuild/win32-ia32@0.25.12': 405 + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} 406 + engines: {node: '>=18'} 407 + cpu: [ia32] 408 + os: [win32] 409 + 410 + '@esbuild/win32-ia32@0.27.7': 411 + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} 412 + engines: {node: '>=18'} 413 + cpu: [ia32] 414 + os: [win32] 415 + 416 + '@esbuild/win32-x64@0.25.12': 417 + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} 418 + engines: {node: '>=18'} 419 + cpu: [x64] 420 + os: [win32] 421 + 422 + '@esbuild/win32-x64@0.27.7': 423 + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} 424 + engines: {node: '>=18'} 425 + cpu: [x64] 426 + os: [win32] 427 + 428 + '@fontsource/ibm-plex-mono@5.2.7': 429 + resolution: {integrity: sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==} 430 + 431 + '@fontsource/ibm-plex-sans@5.2.8': 432 + resolution: {integrity: sha512-eztSXjDhPhcpxNIiGTgMebdLP9qS4rWkysuE1V7c+DjOR0qiezaiDaTwQE7bTnG5HxAY/8M43XKDvs3cYq6ZYQ==} 433 + 434 + '@fontsource/space-grotesk@5.2.10': 435 + resolution: {integrity: sha512-XNXEbT74OIITPqw2H6HXwPDp85fy43uxfBwFR5PU+9sLnjuLj12KlhVM9nZVN6q6dlKjkuN8JisW/OBxwxgUew==} 436 + 437 + '@img/colour@1.1.0': 438 + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} 439 + engines: {node: '>=18'} 440 + 441 + '@img/sharp-darwin-arm64@0.34.5': 442 + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 443 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 444 + cpu: [arm64] 445 + os: [darwin] 446 + 447 + '@img/sharp-darwin-x64@0.34.5': 448 + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 449 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 450 + cpu: [x64] 451 + os: [darwin] 452 + 453 + '@img/sharp-libvips-darwin-arm64@1.2.4': 454 + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 455 + cpu: [arm64] 456 + os: [darwin] 457 + 458 + '@img/sharp-libvips-darwin-x64@1.2.4': 459 + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 460 + cpu: [x64] 461 + os: [darwin] 462 + 463 + '@img/sharp-libvips-linux-arm64@1.2.4': 464 + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 465 + cpu: [arm64] 466 + os: [linux] 467 + libc: [glibc] 468 + 469 + '@img/sharp-libvips-linux-arm@1.2.4': 470 + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 471 + cpu: [arm] 472 + os: [linux] 473 + libc: [glibc] 474 + 475 + '@img/sharp-libvips-linux-ppc64@1.2.4': 476 + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 477 + cpu: [ppc64] 478 + os: [linux] 479 + libc: [glibc] 480 + 481 + '@img/sharp-libvips-linux-riscv64@1.2.4': 482 + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 483 + cpu: [riscv64] 484 + os: [linux] 485 + libc: [glibc] 486 + 487 + '@img/sharp-libvips-linux-s390x@1.2.4': 488 + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 489 + cpu: [s390x] 490 + os: [linux] 491 + libc: [glibc] 492 + 493 + '@img/sharp-libvips-linux-x64@1.2.4': 494 + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 495 + cpu: [x64] 496 + os: [linux] 497 + libc: [glibc] 498 + 499 + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 500 + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 501 + cpu: [arm64] 502 + os: [linux] 503 + libc: [musl] 504 + 505 + '@img/sharp-libvips-linuxmusl-x64@1.2.4': 506 + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 507 + cpu: [x64] 508 + os: [linux] 509 + libc: [musl] 510 + 511 + '@img/sharp-linux-arm64@0.34.5': 512 + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 513 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 514 + cpu: [arm64] 515 + os: [linux] 516 + libc: [glibc] 517 + 518 + '@img/sharp-linux-arm@0.34.5': 519 + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 520 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 521 + cpu: [arm] 522 + os: [linux] 523 + libc: [glibc] 524 + 525 + '@img/sharp-linux-ppc64@0.34.5': 526 + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 527 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 528 + cpu: [ppc64] 529 + os: [linux] 530 + libc: [glibc] 531 + 532 + '@img/sharp-linux-riscv64@0.34.5': 533 + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 534 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 535 + cpu: [riscv64] 536 + os: [linux] 537 + libc: [glibc] 538 + 539 + '@img/sharp-linux-s390x@0.34.5': 540 + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 541 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 542 + cpu: [s390x] 543 + os: [linux] 544 + libc: [glibc] 545 + 546 + '@img/sharp-linux-x64@0.34.5': 547 + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 548 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 549 + cpu: [x64] 550 + os: [linux] 551 + libc: [glibc] 552 + 553 + '@img/sharp-linuxmusl-arm64@0.34.5': 554 + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 555 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 556 + cpu: [arm64] 557 + os: [linux] 558 + libc: [musl] 559 + 560 + '@img/sharp-linuxmusl-x64@0.34.5': 561 + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 562 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 563 + cpu: [x64] 564 + os: [linux] 565 + libc: [musl] 566 + 567 + '@img/sharp-wasm32@0.34.5': 568 + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 569 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 570 + cpu: [wasm32] 571 + 572 + '@img/sharp-win32-arm64@0.34.5': 573 + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 574 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 575 + cpu: [arm64] 576 + os: [win32] 577 + 578 + '@img/sharp-win32-ia32@0.34.5': 579 + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 580 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 581 + cpu: [ia32] 582 + os: [win32] 583 + 584 + '@img/sharp-win32-x64@0.34.5': 585 + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 586 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 587 + cpu: [x64] 588 + os: [win32] 589 + 590 + '@jridgewell/sourcemap-codec@1.5.5': 591 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 592 + 593 + '@oslojs/encoding@1.1.0': 594 + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} 595 + 596 + '@rollup/pluginutils@5.4.0': 597 + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} 598 + engines: {node: '>=14.0.0'} 599 + peerDependencies: 600 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 601 + peerDependenciesMeta: 602 + rollup: 603 + optional: true 604 + 605 + '@rollup/rollup-android-arm-eabi@4.62.2': 606 + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} 607 + cpu: [arm] 608 + os: [android] 609 + 610 + '@rollup/rollup-android-arm64@4.62.2': 611 + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} 612 + cpu: [arm64] 613 + os: [android] 614 + 615 + '@rollup/rollup-darwin-arm64@4.62.2': 616 + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} 617 + cpu: [arm64] 618 + os: [darwin] 619 + 620 + '@rollup/rollup-darwin-x64@4.62.2': 621 + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} 622 + cpu: [x64] 623 + os: [darwin] 624 + 625 + '@rollup/rollup-freebsd-arm64@4.62.2': 626 + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} 627 + cpu: [arm64] 628 + os: [freebsd] 629 + 630 + '@rollup/rollup-freebsd-x64@4.62.2': 631 + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} 632 + cpu: [x64] 633 + os: [freebsd] 634 + 635 + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': 636 + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} 637 + cpu: [arm] 638 + os: [linux] 639 + libc: [glibc] 640 + 641 + '@rollup/rollup-linux-arm-musleabihf@4.62.2': 642 + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} 643 + cpu: [arm] 644 + os: [linux] 645 + libc: [musl] 646 + 647 + '@rollup/rollup-linux-arm64-gnu@4.62.2': 648 + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} 649 + cpu: [arm64] 650 + os: [linux] 651 + libc: [glibc] 652 + 653 + '@rollup/rollup-linux-arm64-musl@4.62.2': 654 + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} 655 + cpu: [arm64] 656 + os: [linux] 657 + libc: [musl] 658 + 659 + '@rollup/rollup-linux-loong64-gnu@4.62.2': 660 + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} 661 + cpu: [loong64] 662 + os: [linux] 663 + libc: [glibc] 664 + 665 + '@rollup/rollup-linux-loong64-musl@4.62.2': 666 + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} 667 + cpu: [loong64] 668 + os: [linux] 669 + libc: [musl] 670 + 671 + '@rollup/rollup-linux-ppc64-gnu@4.62.2': 672 + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} 673 + cpu: [ppc64] 674 + os: [linux] 675 + libc: [glibc] 676 + 677 + '@rollup/rollup-linux-ppc64-musl@4.62.2': 678 + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} 679 + cpu: [ppc64] 680 + os: [linux] 681 + libc: [musl] 682 + 683 + '@rollup/rollup-linux-riscv64-gnu@4.62.2': 684 + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} 685 + cpu: [riscv64] 686 + os: [linux] 687 + libc: [glibc] 688 + 689 + '@rollup/rollup-linux-riscv64-musl@4.62.2': 690 + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} 691 + cpu: [riscv64] 692 + os: [linux] 693 + libc: [musl] 694 + 695 + '@rollup/rollup-linux-s390x-gnu@4.62.2': 696 + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} 697 + cpu: [s390x] 698 + os: [linux] 699 + libc: [glibc] 700 + 701 + '@rollup/rollup-linux-x64-gnu@4.62.2': 702 + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} 703 + cpu: [x64] 704 + os: [linux] 705 + libc: [glibc] 706 + 707 + '@rollup/rollup-linux-x64-musl@4.62.2': 708 + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} 709 + cpu: [x64] 710 + os: [linux] 711 + libc: [musl] 712 + 713 + '@rollup/rollup-openbsd-x64@4.62.2': 714 + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} 715 + cpu: [x64] 716 + os: [openbsd] 717 + 718 + '@rollup/rollup-openharmony-arm64@4.62.2': 719 + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} 720 + cpu: [arm64] 721 + os: [openharmony] 722 + 723 + '@rollup/rollup-win32-arm64-msvc@4.62.2': 724 + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} 725 + cpu: [arm64] 726 + os: [win32] 727 + 728 + '@rollup/rollup-win32-ia32-msvc@4.62.2': 729 + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} 730 + cpu: [ia32] 731 + os: [win32] 732 + 733 + '@rollup/rollup-win32-x64-gnu@4.62.2': 734 + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} 735 + cpu: [x64] 736 + os: [win32] 737 + 738 + '@rollup/rollup-win32-x64-msvc@4.62.2': 739 + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} 740 + cpu: [x64] 741 + os: [win32] 742 + 743 + '@shikijs/core@3.23.0': 744 + resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} 745 + 746 + '@shikijs/engine-javascript@3.23.0': 747 + resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} 748 + 749 + '@shikijs/engine-oniguruma@3.23.0': 750 + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} 751 + 752 + '@shikijs/langs@3.23.0': 753 + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} 754 + 755 + '@shikijs/themes@3.23.0': 756 + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} 757 + 758 + '@shikijs/types@3.23.0': 759 + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} 760 + 761 + '@shikijs/vscode-textmate@10.0.2': 762 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 763 + 764 + '@types/debug@4.1.13': 765 + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} 766 + 767 + '@types/estree@1.0.9': 768 + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} 769 + 770 + '@types/hast@3.0.4': 771 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 772 + 773 + '@types/mdast@4.0.4': 774 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 775 + 776 + '@types/ms@2.1.0': 777 + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 778 + 779 + '@types/nlcst@2.0.3': 780 + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} 781 + 782 + '@types/unist@3.0.3': 783 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 784 + 785 + '@ungap/structured-clone@1.3.2': 786 + resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} 787 + 788 + '@volar/kit@2.4.28': 789 + resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==} 790 + peerDependencies: 791 + typescript: '*' 792 + 793 + '@volar/language-core@2.4.28': 794 + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} 795 + 796 + '@volar/language-server@2.4.28': 797 + resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==} 798 + 799 + '@volar/language-service@2.4.28': 800 + resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==} 801 + 802 + '@volar/source-map@2.4.28': 803 + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} 804 + 805 + '@volar/typescript@2.4.28': 806 + resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} 807 + 808 + '@vscode/emmet-helper@2.11.0': 809 + resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} 810 + 811 + '@vscode/l10n@0.0.18': 812 + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} 813 + 814 + acorn@8.17.0: 815 + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} 816 + engines: {node: '>=0.4.0'} 817 + hasBin: true 818 + 819 + ajv-draft-04@1.0.0: 820 + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} 821 + peerDependencies: 822 + ajv: ^8.5.0 823 + peerDependenciesMeta: 824 + ajv: 825 + optional: true 826 + 827 + ajv@8.20.0: 828 + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} 829 + 830 + ansi-align@3.0.1: 831 + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 832 + 833 + ansi-regex@5.0.1: 834 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 835 + engines: {node: '>=8'} 836 + 837 + ansi-regex@6.2.2: 838 + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 839 + engines: {node: '>=12'} 840 + 841 + ansi-styles@4.3.0: 842 + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 843 + engines: {node: '>=8'} 844 + 845 + ansi-styles@6.2.3: 846 + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 847 + engines: {node: '>=12'} 848 + 849 + anymatch@3.1.3: 850 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 851 + engines: {node: '>= 8'} 852 + 853 + argparse@2.0.1: 854 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 855 + 856 + aria-query@5.3.2: 857 + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 858 + engines: {node: '>= 0.4'} 859 + 860 + array-iterate@2.0.1: 861 + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} 862 + 863 + astro@5.18.2: 864 + resolution: {integrity: sha512-TnFwLnAXty5MXKPDGuKXqK4AMBXG+FH6RUdK7Oyc3gyfNoFIthT+4eRbzOK43bdRlLaZuxgciDSjgtggZ3OtGQ==} 865 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 866 + hasBin: true 867 + 868 + axobject-query@4.1.0: 869 + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 870 + engines: {node: '>= 0.4'} 871 + 872 + bail@2.0.2: 873 + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 874 + 875 + base-64@1.0.0: 876 + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} 877 + 878 + boolbase@1.0.0: 879 + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 880 + 881 + boxen@8.0.1: 882 + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 883 + engines: {node: '>=18'} 884 + 885 + camelcase@8.0.0: 886 + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 887 + engines: {node: '>=16'} 888 + 889 + ccount@2.0.1: 890 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 891 + 892 + chalk@5.6.2: 893 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 894 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 895 + 896 + character-entities-html4@2.1.0: 897 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 898 + 899 + character-entities-legacy@3.0.0: 900 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 901 + 902 + character-entities@2.0.2: 903 + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 904 + 905 + chokidar@4.0.3: 906 + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 907 + engines: {node: '>= 14.16.0'} 908 + 909 + chokidar@5.0.0: 910 + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} 911 + engines: {node: '>= 20.19.0'} 912 + 913 + ci-info@4.4.0: 914 + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} 915 + engines: {node: '>=8'} 916 + 917 + cli-boxes@3.0.0: 918 + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 919 + engines: {node: '>=10'} 920 + 921 + cliui@8.0.1: 922 + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 923 + engines: {node: '>=12'} 924 + 925 + clsx@2.1.1: 926 + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 927 + engines: {node: '>=6'} 928 + 929 + color-convert@2.0.1: 930 + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 931 + engines: {node: '>=7.0.0'} 932 + 933 + color-name@1.1.4: 934 + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 935 + 936 + comma-separated-tokens@2.0.3: 937 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 938 + 939 + commander@11.1.0: 940 + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 941 + engines: {node: '>=16'} 942 + 943 + common-ancestor-path@1.0.1: 944 + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 945 + 946 + cookie-es@1.2.3: 947 + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} 948 + 949 + cookie@1.1.1: 950 + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 951 + engines: {node: '>=18'} 952 + 953 + crossws@0.3.5: 954 + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 955 + 956 + css-select@5.2.2: 957 + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} 958 + 959 + css-tree@2.2.1: 960 + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} 961 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 962 + 963 + css-tree@3.2.1: 964 + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} 965 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 966 + 967 + css-what@6.2.2: 968 + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} 969 + engines: {node: '>= 6'} 970 + 971 + cssesc@3.0.0: 972 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 973 + engines: {node: '>=4'} 974 + hasBin: true 975 + 976 + csso@5.0.5: 977 + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} 978 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 979 + 980 + debug@4.4.3: 981 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 982 + engines: {node: '>=6.0'} 983 + peerDependencies: 984 + supports-color: '*' 985 + peerDependenciesMeta: 986 + supports-color: 987 + optional: true 988 + 989 + decode-named-character-reference@1.3.0: 990 + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} 991 + 992 + defu@6.1.7: 993 + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} 994 + 995 + dequal@2.0.3: 996 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 997 + engines: {node: '>=6'} 998 + 999 + destr@2.0.5: 1000 + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 1001 + 1002 + detect-libc@2.1.2: 1003 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 1004 + engines: {node: '>=8'} 1005 + 1006 + deterministic-object-hash@2.0.2: 1007 + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} 1008 + engines: {node: '>=18'} 1009 + 1010 + devalue@5.8.1: 1011 + resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} 1012 + 1013 + devlop@1.1.0: 1014 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 1015 + 1016 + diff@8.0.4: 1017 + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} 1018 + engines: {node: '>=0.3.1'} 1019 + 1020 + dlv@1.1.3: 1021 + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1022 + 1023 + dom-serializer@2.0.0: 1024 + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1025 + 1026 + domelementtype@2.3.0: 1027 + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1028 + 1029 + domhandler@5.0.3: 1030 + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1031 + engines: {node: '>= 4'} 1032 + 1033 + domutils@3.2.2: 1034 + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} 1035 + 1036 + dset@3.1.4: 1037 + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} 1038 + engines: {node: '>=4'} 1039 + 1040 + emmet@2.4.11: 1041 + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} 1042 + 1043 + emoji-regex@10.6.0: 1044 + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} 1045 + 1046 + emoji-regex@8.0.0: 1047 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1048 + 1049 + entities@4.5.0: 1050 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1051 + engines: {node: '>=0.12'} 1052 + 1053 + entities@6.0.1: 1054 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 1055 + engines: {node: '>=0.12'} 1056 + 1057 + es-module-lexer@1.7.0: 1058 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1059 + 1060 + esbuild@0.25.12: 1061 + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} 1062 + engines: {node: '>=18'} 1063 + hasBin: true 1064 + 1065 + esbuild@0.27.7: 1066 + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} 1067 + engines: {node: '>=18'} 1068 + hasBin: true 1069 + 1070 + escalade@3.2.0: 1071 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1072 + engines: {node: '>=6'} 1073 + 1074 + escape-string-regexp@5.0.0: 1075 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1076 + engines: {node: '>=12'} 1077 + 1078 + estree-walker@2.0.2: 1079 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1080 + 1081 + estree-walker@3.0.3: 1082 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1083 + 1084 + eventemitter3@5.0.4: 1085 + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} 1086 + 1087 + extend@3.0.2: 1088 + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1089 + 1090 + fast-deep-equal@3.1.3: 1091 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1092 + 1093 + fast-uri@3.1.3: 1094 + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} 1095 + 1096 + fdir@6.5.0: 1097 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1098 + engines: {node: '>=12.0.0'} 1099 + peerDependencies: 1100 + picomatch: ^3 || ^4 1101 + peerDependenciesMeta: 1102 + picomatch: 1103 + optional: true 1104 + 1105 + flattie@1.1.1: 1106 + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 1107 + engines: {node: '>=8'} 1108 + 1109 + fontace@0.4.1: 1110 + resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} 1111 + 1112 + fontkitten@1.0.3: 1113 + resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==} 1114 + engines: {node: '>=20'} 1115 + 1116 + fsevents@2.3.3: 1117 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1118 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1119 + os: [darwin] 1120 + 1121 + get-caller-file@2.0.5: 1122 + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1123 + engines: {node: 6.* || 8.* || >= 10.*} 1124 + 1125 + get-east-asian-width@1.6.0: 1126 + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} 1127 + engines: {node: '>=18'} 1128 + 1129 + github-slugger@2.0.0: 1130 + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} 1131 + 1132 + h3@1.15.11: 1133 + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} 1134 + 1135 + hast-util-from-html@2.0.3: 1136 + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} 1137 + 1138 + hast-util-from-parse5@8.0.3: 1139 + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} 1140 + 1141 + hast-util-is-element@3.0.0: 1142 + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 1143 + 1144 + hast-util-parse-selector@4.0.0: 1145 + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} 1146 + 1147 + hast-util-raw@9.1.0: 1148 + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} 1149 + 1150 + hast-util-to-html@9.0.5: 1151 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 1152 + 1153 + hast-util-to-parse5@8.0.1: 1154 + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} 1155 + 1156 + hast-util-to-text@4.0.2: 1157 + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} 1158 + 1159 + hast-util-whitespace@3.0.0: 1160 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 1161 + 1162 + hastscript@9.0.1: 1163 + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} 1164 + 1165 + html-escaper@3.0.3: 1166 + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} 1167 + 1168 + html-void-elements@3.0.0: 1169 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 1170 + 1171 + http-cache-semantics@4.2.0: 1172 + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} 1173 + 1174 + import-meta-resolve@4.2.0: 1175 + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} 1176 + 1177 + iron-webcrypto@1.2.1: 1178 + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} 1179 + 1180 + is-docker@3.0.0: 1181 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 1182 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1183 + hasBin: true 1184 + 1185 + is-fullwidth-code-point@3.0.0: 1186 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1187 + engines: {node: '>=8'} 1188 + 1189 + is-inside-container@1.0.0: 1190 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 1191 + engines: {node: '>=14.16'} 1192 + hasBin: true 1193 + 1194 + is-plain-obj@4.1.0: 1195 + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1196 + engines: {node: '>=12'} 1197 + 1198 + is-wsl@3.1.1: 1199 + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} 1200 + engines: {node: '>=16'} 1201 + 1202 + js-yaml@4.3.0: 1203 + resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} 1204 + hasBin: true 1205 + 1206 + json-schema-traverse@1.0.0: 1207 + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1208 + 1209 + jsonc-parser@2.3.1: 1210 + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} 1211 + 1212 + jsonc-parser@3.3.1: 1213 + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 1214 + 1215 + kleur@3.0.3: 1216 + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1217 + engines: {node: '>=6'} 1218 + 1219 + kleur@4.1.5: 1220 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1221 + engines: {node: '>=6'} 1222 + 1223 + longest-streak@3.1.0: 1224 + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 1225 + 1226 + lru-cache@11.5.1: 1227 + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} 1228 + engines: {node: 20 || >=22} 1229 + 1230 + magic-string@0.30.21: 1231 + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 1232 + 1233 + magicast@0.5.3: 1234 + resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} 1235 + 1236 + markdown-table@3.0.4: 1237 + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 1238 + 1239 + mdast-util-definitions@6.0.0: 1240 + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} 1241 + 1242 + mdast-util-find-and-replace@3.0.2: 1243 + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} 1244 + 1245 + mdast-util-from-markdown@2.0.3: 1246 + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} 1247 + 1248 + mdast-util-gfm-autolink-literal@2.0.1: 1249 + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} 1250 + 1251 + mdast-util-gfm-footnote@2.1.0: 1252 + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} 1253 + 1254 + mdast-util-gfm-strikethrough@2.0.0: 1255 + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} 1256 + 1257 + mdast-util-gfm-table@2.0.0: 1258 + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} 1259 + 1260 + mdast-util-gfm-task-list-item@2.0.0: 1261 + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} 1262 + 1263 + mdast-util-gfm@3.1.0: 1264 + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} 1265 + 1266 + mdast-util-phrasing@4.1.0: 1267 + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} 1268 + 1269 + mdast-util-to-hast@13.2.1: 1270 + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} 1271 + 1272 + mdast-util-to-markdown@2.1.2: 1273 + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} 1274 + 1275 + mdast-util-to-string@4.0.0: 1276 + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1277 + 1278 + mdn-data@2.0.28: 1279 + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} 1280 + 1281 + mdn-data@2.27.1: 1282 + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} 1283 + 1284 + micromark-core-commonmark@2.0.3: 1285 + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1286 + 1287 + micromark-extension-gfm-autolink-literal@2.1.0: 1288 + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} 1289 + 1290 + micromark-extension-gfm-footnote@2.1.0: 1291 + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} 1292 + 1293 + micromark-extension-gfm-strikethrough@2.1.0: 1294 + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} 1295 + 1296 + micromark-extension-gfm-table@2.1.1: 1297 + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} 1298 + 1299 + micromark-extension-gfm-tagfilter@2.0.0: 1300 + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} 1301 + 1302 + micromark-extension-gfm-task-list-item@2.1.0: 1303 + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} 1304 + 1305 + micromark-extension-gfm@3.0.0: 1306 + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} 1307 + 1308 + micromark-factory-destination@2.0.1: 1309 + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} 1310 + 1311 + micromark-factory-label@2.0.1: 1312 + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} 1313 + 1314 + micromark-factory-space@2.0.1: 1315 + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} 1316 + 1317 + micromark-factory-title@2.0.1: 1318 + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} 1319 + 1320 + micromark-factory-whitespace@2.0.1: 1321 + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} 1322 + 1323 + micromark-util-character@2.1.1: 1324 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1325 + 1326 + micromark-util-chunked@2.0.1: 1327 + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} 1328 + 1329 + micromark-util-classify-character@2.0.1: 1330 + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} 1331 + 1332 + micromark-util-combine-extensions@2.0.1: 1333 + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} 1334 + 1335 + micromark-util-decode-numeric-character-reference@2.0.2: 1336 + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} 1337 + 1338 + micromark-util-decode-string@2.0.1: 1339 + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} 1340 + 1341 + micromark-util-encode@2.0.1: 1342 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1343 + 1344 + micromark-util-html-tag-name@2.0.1: 1345 + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} 1346 + 1347 + micromark-util-normalize-identifier@2.0.1: 1348 + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} 1349 + 1350 + micromark-util-resolve-all@2.0.1: 1351 + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} 1352 + 1353 + micromark-util-sanitize-uri@2.0.1: 1354 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1355 + 1356 + micromark-util-subtokenize@2.1.0: 1357 + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} 1358 + 1359 + micromark-util-symbol@2.0.1: 1360 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1361 + 1362 + micromark-util-types@2.0.2: 1363 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1364 + 1365 + micromark@4.0.2: 1366 + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} 1367 + 1368 + mrmime@2.0.1: 1369 + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} 1370 + engines: {node: '>=10'} 1371 + 1372 + ms@2.1.3: 1373 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1374 + 1375 + muggle-string@0.4.1: 1376 + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 1377 + 1378 + nanoid@3.3.15: 1379 + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} 1380 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1381 + hasBin: true 1382 + 1383 + neotraverse@0.6.18: 1384 + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} 1385 + engines: {node: '>= 10'} 1386 + 1387 + nlcst-to-string@4.0.0: 1388 + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} 1389 + 1390 + node-fetch-native@1.6.7: 1391 + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 1392 + 1393 + node-mock-http@1.0.4: 1394 + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} 1395 + 1396 + normalize-path@3.0.0: 1397 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1398 + engines: {node: '>=0.10.0'} 1399 + 1400 + nth-check@2.1.1: 1401 + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1402 + 1403 + ofetch@1.5.1: 1404 + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} 1405 + 1406 + ohash@2.0.11: 1407 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1408 + 1409 + oniguruma-parser@0.12.2: 1410 + resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} 1411 + 1412 + oniguruma-to-es@4.3.6: 1413 + resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} 1414 + 1415 + p-limit@6.2.0: 1416 + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} 1417 + engines: {node: '>=18'} 1418 + 1419 + p-queue@8.1.1: 1420 + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} 1421 + engines: {node: '>=18'} 1422 + 1423 + p-timeout@6.1.4: 1424 + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} 1425 + engines: {node: '>=14.16'} 1426 + 1427 + package-manager-detector@1.6.0: 1428 + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} 1429 + 1430 + parse-latin@7.0.0: 1431 + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} 1432 + 1433 + parse5@7.3.0: 1434 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 1435 + 1436 + path-browserify@1.0.1: 1437 + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 1438 + 1439 + piccolore@0.1.3: 1440 + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} 1441 + 1442 + picocolors@1.1.1: 1443 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1444 + 1445 + picomatch@2.3.2: 1446 + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} 1447 + engines: {node: '>=8.6'} 1448 + 1449 + picomatch@4.0.4: 1450 + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} 1451 + engines: {node: '>=12'} 1452 + 1453 + postcss@8.5.16: 1454 + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} 1455 + engines: {node: ^10 || ^12 || >=14} 1456 + 1457 + prettier@3.9.4: 1458 + resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} 1459 + engines: {node: '>=14'} 1460 + hasBin: true 1461 + 1462 + prismjs@1.30.0: 1463 + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 1464 + engines: {node: '>=6'} 1465 + 1466 + prompts@2.4.2: 1467 + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1468 + engines: {node: '>= 6'} 1469 + 1470 + property-information@7.2.0: 1471 + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} 1472 + 1473 + radix3@1.1.2: 1474 + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} 1475 + 1476 + readdirp@4.1.2: 1477 + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1478 + engines: {node: '>= 14.18.0'} 1479 + 1480 + readdirp@5.0.0: 1481 + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} 1482 + engines: {node: '>= 20.19.0'} 1483 + 1484 + regex-recursion@6.0.2: 1485 + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} 1486 + 1487 + regex-utilities@2.3.0: 1488 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1489 + 1490 + regex@6.1.0: 1491 + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} 1492 + 1493 + rehype-parse@9.0.1: 1494 + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 1495 + 1496 + rehype-raw@7.0.0: 1497 + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} 1498 + 1499 + rehype-stringify@10.0.1: 1500 + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} 1501 + 1502 + rehype@13.0.2: 1503 + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} 1504 + 1505 + remark-gfm@4.0.1: 1506 + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} 1507 + 1508 + remark-parse@11.0.0: 1509 + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} 1510 + 1511 + remark-rehype@11.1.2: 1512 + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 1513 + 1514 + remark-smartypants@3.0.2: 1515 + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} 1516 + engines: {node: '>=16.0.0'} 1517 + 1518 + remark-stringify@11.0.0: 1519 + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 1520 + 1521 + request-light@0.5.8: 1522 + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} 1523 + 1524 + request-light@0.7.0: 1525 + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} 1526 + 1527 + require-directory@2.1.1: 1528 + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1529 + engines: {node: '>=0.10.0'} 1530 + 1531 + require-from-string@2.0.2: 1532 + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1533 + engines: {node: '>=0.10.0'} 1534 + 1535 + retext-latin@4.0.0: 1536 + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} 1537 + 1538 + retext-smartypants@6.2.0: 1539 + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} 1540 + 1541 + retext-stringify@4.0.0: 1542 + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} 1543 + 1544 + retext@9.0.0: 1545 + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} 1546 + 1547 + rollup@4.62.2: 1548 + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} 1549 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1550 + hasBin: true 1551 + 1552 + sax@1.6.0: 1553 + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} 1554 + engines: {node: '>=11.0.0'} 1555 + 1556 + semver@7.8.5: 1557 + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} 1558 + engines: {node: '>=10'} 1559 + hasBin: true 1560 + 1561 + sharp@0.34.5: 1562 + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} 1563 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1564 + 1565 + shiki@3.23.0: 1566 + resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} 1567 + 1568 + sisteransi@1.0.5: 1569 + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1570 + 1571 + smol-toml@1.7.0: 1572 + resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} 1573 + engines: {node: '>= 18'} 1574 + 1575 + source-map-js@1.2.1: 1576 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1577 + engines: {node: '>=0.10.0'} 1578 + 1579 + space-separated-tokens@2.0.2: 1580 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 1581 + 1582 + string-width@4.2.3: 1583 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1584 + engines: {node: '>=8'} 1585 + 1586 + string-width@7.2.0: 1587 + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1588 + engines: {node: '>=18'} 1589 + 1590 + stringify-entities@4.0.4: 1591 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 1592 + 1593 + strip-ansi@6.0.1: 1594 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1595 + engines: {node: '>=8'} 1596 + 1597 + strip-ansi@7.2.0: 1598 + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} 1599 + engines: {node: '>=12'} 1600 + 1601 + svgo@4.0.1: 1602 + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} 1603 + engines: {node: '>=16'} 1604 + hasBin: true 1605 + 1606 + tiny-inflate@1.0.3: 1607 + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} 1608 + 1609 + tinyexec@1.2.4: 1610 + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} 1611 + engines: {node: '>=18'} 1612 + 1613 + tinyglobby@0.2.17: 1614 + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} 1615 + engines: {node: '>=12.0.0'} 1616 + 1617 + trim-lines@3.0.1: 1618 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1619 + 1620 + trough@2.2.0: 1621 + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 1622 + 1623 + tsconfck@3.1.6: 1624 + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} 1625 + engines: {node: ^18 || >=20} 1626 + deprecated: unmaintained 1627 + hasBin: true 1628 + peerDependencies: 1629 + typescript: ^5.0.0 1630 + peerDependenciesMeta: 1631 + typescript: 1632 + optional: true 1633 + 1634 + tslib@2.8.1: 1635 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1636 + 1637 + type-fest@4.41.0: 1638 + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 1639 + engines: {node: '>=16'} 1640 + 1641 + typesafe-path@0.2.2: 1642 + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} 1643 + 1644 + typescript-auto-import-cache@0.3.6: 1645 + resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} 1646 + 1647 + typescript@5.9.3: 1648 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1649 + engines: {node: '>=14.17'} 1650 + hasBin: true 1651 + 1652 + ufo@1.6.4: 1653 + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} 1654 + 1655 + ultrahtml@1.6.0: 1656 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 1657 + 1658 + uncrypto@0.1.3: 1659 + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 1660 + 1661 + unified@11.0.5: 1662 + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 1663 + 1664 + unifont@0.7.4: 1665 + resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} 1666 + 1667 + unist-util-find-after@5.0.0: 1668 + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} 1669 + 1670 + unist-util-is@6.0.1: 1671 + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} 1672 + 1673 + unist-util-modify-children@4.0.0: 1674 + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} 1675 + 1676 + unist-util-position@5.0.0: 1677 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 1678 + 1679 + unist-util-remove-position@5.0.0: 1680 + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} 1681 + 1682 + unist-util-stringify-position@4.0.0: 1683 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1684 + 1685 + unist-util-visit-children@3.0.0: 1686 + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} 1687 + 1688 + unist-util-visit-parents@6.0.2: 1689 + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} 1690 + 1691 + unist-util-visit@5.1.0: 1692 + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} 1693 + 1694 + unstorage@1.17.5: 1695 + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} 1696 + peerDependencies: 1697 + '@azure/app-configuration': ^1.8.0 1698 + '@azure/cosmos': ^4.2.0 1699 + '@azure/data-tables': ^13.3.0 1700 + '@azure/identity': ^4.6.0 1701 + '@azure/keyvault-secrets': ^4.9.0 1702 + '@azure/storage-blob': ^12.26.0 1703 + '@capacitor/preferences': ^6 || ^7 || ^8 1704 + '@deno/kv': '>=0.9.0' 1705 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 1706 + '@planetscale/database': ^1.19.0 1707 + '@upstash/redis': ^1.34.3 1708 + '@vercel/blob': '>=0.27.1' 1709 + '@vercel/functions': ^2.2.12 || ^3.0.0 1710 + '@vercel/kv': ^1 || ^2 || ^3 1711 + aws4fetch: ^1.0.20 1712 + db0: '>=0.2.1' 1713 + idb-keyval: ^6.2.1 1714 + ioredis: ^5.4.2 1715 + uploadthing: ^7.4.4 1716 + peerDependenciesMeta: 1717 + '@azure/app-configuration': 1718 + optional: true 1719 + '@azure/cosmos': 1720 + optional: true 1721 + '@azure/data-tables': 1722 + optional: true 1723 + '@azure/identity': 1724 + optional: true 1725 + '@azure/keyvault-secrets': 1726 + optional: true 1727 + '@azure/storage-blob': 1728 + optional: true 1729 + '@capacitor/preferences': 1730 + optional: true 1731 + '@deno/kv': 1732 + optional: true 1733 + '@netlify/blobs': 1734 + optional: true 1735 + '@planetscale/database': 1736 + optional: true 1737 + '@upstash/redis': 1738 + optional: true 1739 + '@vercel/blob': 1740 + optional: true 1741 + '@vercel/functions': 1742 + optional: true 1743 + '@vercel/kv': 1744 + optional: true 1745 + aws4fetch: 1746 + optional: true 1747 + db0: 1748 + optional: true 1749 + idb-keyval: 1750 + optional: true 1751 + ioredis: 1752 + optional: true 1753 + uploadthing: 1754 + optional: true 1755 + 1756 + vfile-location@5.0.3: 1757 + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 1758 + 1759 + vfile-message@4.0.3: 1760 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 1761 + 1762 + vfile@6.0.3: 1763 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1764 + 1765 + vite@6.4.3: 1766 + resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} 1767 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1768 + hasBin: true 1769 + peerDependencies: 1770 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1771 + jiti: '>=1.21.0' 1772 + less: '*' 1773 + lightningcss: ^1.21.0 1774 + sass: '*' 1775 + sass-embedded: '*' 1776 + stylus: '*' 1777 + sugarss: '*' 1778 + terser: ^5.16.0 1779 + tsx: ^4.8.1 1780 + yaml: ^2.4.2 1781 + peerDependenciesMeta: 1782 + '@types/node': 1783 + optional: true 1784 + jiti: 1785 + optional: true 1786 + less: 1787 + optional: true 1788 + lightningcss: 1789 + optional: true 1790 + sass: 1791 + optional: true 1792 + sass-embedded: 1793 + optional: true 1794 + stylus: 1795 + optional: true 1796 + sugarss: 1797 + optional: true 1798 + terser: 1799 + optional: true 1800 + tsx: 1801 + optional: true 1802 + yaml: 1803 + optional: true 1804 + 1805 + vitefu@1.1.3: 1806 + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} 1807 + peerDependencies: 1808 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 1809 + peerDependenciesMeta: 1810 + vite: 1811 + optional: true 1812 + 1813 + volar-service-css@0.0.70: 1814 + resolution: {integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==} 1815 + peerDependencies: 1816 + '@volar/language-service': ~2.4.0 1817 + peerDependenciesMeta: 1818 + '@volar/language-service': 1819 + optional: true 1820 + 1821 + volar-service-emmet@0.0.70: 1822 + resolution: {integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==} 1823 + peerDependencies: 1824 + '@volar/language-service': ~2.4.0 1825 + peerDependenciesMeta: 1826 + '@volar/language-service': 1827 + optional: true 1828 + 1829 + volar-service-html@0.0.70: 1830 + resolution: {integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==} 1831 + peerDependencies: 1832 + '@volar/language-service': ~2.4.0 1833 + peerDependenciesMeta: 1834 + '@volar/language-service': 1835 + optional: true 1836 + 1837 + volar-service-prettier@0.0.70: 1838 + resolution: {integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==} 1839 + peerDependencies: 1840 + '@volar/language-service': ~2.4.0 1841 + prettier: ^2.2 || ^3.0 1842 + peerDependenciesMeta: 1843 + '@volar/language-service': 1844 + optional: true 1845 + prettier: 1846 + optional: true 1847 + 1848 + volar-service-typescript-twoslash-queries@0.0.70: 1849 + resolution: {integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==} 1850 + peerDependencies: 1851 + '@volar/language-service': ~2.4.0 1852 + peerDependenciesMeta: 1853 + '@volar/language-service': 1854 + optional: true 1855 + 1856 + volar-service-typescript@0.0.70: 1857 + resolution: {integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==} 1858 + peerDependencies: 1859 + '@volar/language-service': ~2.4.0 1860 + peerDependenciesMeta: 1861 + '@volar/language-service': 1862 + optional: true 1863 + 1864 + volar-service-yaml@0.0.70: 1865 + resolution: {integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==} 1866 + peerDependencies: 1867 + '@volar/language-service': ~2.4.0 1868 + peerDependenciesMeta: 1869 + '@volar/language-service': 1870 + optional: true 1871 + 1872 + vscode-css-languageservice@6.3.10: 1873 + resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==} 1874 + 1875 + vscode-html-languageservice@5.6.2: 1876 + resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==} 1877 + 1878 + vscode-json-languageservice@4.1.8: 1879 + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} 1880 + engines: {npm: '>=7.0.0'} 1881 + 1882 + vscode-jsonrpc@8.2.0: 1883 + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} 1884 + engines: {node: '>=14.0.0'} 1885 + 1886 + vscode-jsonrpc@9.0.0: 1887 + resolution: {integrity: sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==} 1888 + engines: {node: '>=14.0.0'} 1889 + 1890 + vscode-languageserver-protocol@3.17.5: 1891 + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} 1892 + 1893 + vscode-languageserver-protocol@3.18.1: 1894 + resolution: {integrity: sha512-RTiiVHdpxpYcJVI5sq6S5TLjQ4WDR/rBrIWru+kPXe6sGQ9PFQ3GamrTKLvPqbR4ylr1SoodhmcqbFII0WXVuw==} 1895 + 1896 + vscode-languageserver-textdocument@1.0.12: 1897 + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} 1898 + 1899 + vscode-languageserver-types@3.17.5: 1900 + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} 1901 + 1902 + vscode-languageserver-types@3.18.0: 1903 + resolution: {integrity: sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==} 1904 + 1905 + vscode-languageserver@9.0.1: 1906 + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} 1907 + hasBin: true 1908 + 1909 + vscode-nls@5.2.0: 1910 + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} 1911 + 1912 + vscode-uri@3.1.0: 1913 + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 1914 + 1915 + web-namespaces@2.0.1: 1916 + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 1917 + 1918 + which-pm-runs@1.1.0: 1919 + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 1920 + engines: {node: '>=4'} 1921 + 1922 + widest-line@5.0.0: 1923 + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 1924 + engines: {node: '>=18'} 1925 + 1926 + wrap-ansi@7.0.0: 1927 + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1928 + engines: {node: '>=10'} 1929 + 1930 + wrap-ansi@9.0.2: 1931 + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 1932 + engines: {node: '>=18'} 1933 + 1934 + xxhash-wasm@1.1.0: 1935 + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} 1936 + 1937 + y18n@5.0.8: 1938 + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1939 + engines: {node: '>=10'} 1940 + 1941 + yaml-language-server@1.20.0: 1942 + resolution: {integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==} 1943 + hasBin: true 1944 + 1945 + yaml@2.7.1: 1946 + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} 1947 + engines: {node: '>= 14'} 1948 + hasBin: true 1949 + 1950 + yaml@2.9.0: 1951 + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} 1952 + engines: {node: '>= 14.6'} 1953 + hasBin: true 1954 + 1955 + yargs-parser@21.1.1: 1956 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1957 + engines: {node: '>=12'} 1958 + 1959 + yargs@17.7.3: 1960 + resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} 1961 + engines: {node: '>=12'} 1962 + 1963 + yocto-queue@1.2.2: 1964 + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} 1965 + engines: {node: '>=12.20'} 1966 + 1967 + yocto-spinner@0.2.3: 1968 + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} 1969 + engines: {node: '>=18.19'} 1970 + 1971 + yoctocolors@2.1.2: 1972 + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} 1973 + engines: {node: '>=18'} 1974 + 1975 + zod-to-json-schema@3.25.2: 1976 + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} 1977 + peerDependencies: 1978 + zod: ^3.25.28 || ^4 1979 + 1980 + zod-to-ts@1.2.0: 1981 + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} 1982 + peerDependencies: 1983 + typescript: ^4.9.4 || ^5.0.2 1984 + zod: ^3 1985 + 1986 + zod@3.25.76: 1987 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 1988 + 1989 + zwitch@2.0.4: 1990 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1991 + 1992 + snapshots: 1993 + 1994 + '@astrojs/check@0.9.9(prettier@3.9.4)(typescript@5.9.3)': 1995 + dependencies: 1996 + '@astrojs/language-server': 2.16.10(prettier@3.9.4)(typescript@5.9.3) 1997 + chokidar: 4.0.3 1998 + kleur: 4.1.5 1999 + typescript: 5.9.3 2000 + yargs: 17.7.3 2001 + transitivePeerDependencies: 2002 + - prettier 2003 + - prettier-plugin-astro 2004 + 2005 + '@astrojs/compiler@2.13.1': {} 2006 + 2007 + '@astrojs/internal-helpers@0.7.6': {} 2008 + 2009 + '@astrojs/language-server@2.16.10(prettier@3.9.4)(typescript@5.9.3)': 2010 + dependencies: 2011 + '@astrojs/compiler': 2.13.1 2012 + '@astrojs/yaml2ts': 0.2.4 2013 + '@jridgewell/sourcemap-codec': 1.5.5 2014 + '@volar/kit': 2.4.28(typescript@5.9.3) 2015 + '@volar/language-core': 2.4.28 2016 + '@volar/language-server': 2.4.28 2017 + '@volar/language-service': 2.4.28 2018 + muggle-string: 0.4.1 2019 + tinyglobby: 0.2.17 2020 + volar-service-css: 0.0.70(@volar/language-service@2.4.28) 2021 + volar-service-emmet: 0.0.70(@volar/language-service@2.4.28) 2022 + volar-service-html: 0.0.70(@volar/language-service@2.4.28) 2023 + volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.9.4) 2024 + volar-service-typescript: 0.0.70(@volar/language-service@2.4.28) 2025 + volar-service-typescript-twoslash-queries: 0.0.70(@volar/language-service@2.4.28) 2026 + volar-service-yaml: 0.0.70(@volar/language-service@2.4.28) 2027 + vscode-html-languageservice: 5.6.2 2028 + vscode-uri: 3.1.0 2029 + optionalDependencies: 2030 + prettier: 3.9.4 2031 + transitivePeerDependencies: 2032 + - typescript 2033 + 2034 + '@astrojs/markdown-remark@6.3.11': 2035 + dependencies: 2036 + '@astrojs/internal-helpers': 0.7.6 2037 + '@astrojs/prism': 3.3.0 2038 + github-slugger: 2.0.0 2039 + hast-util-from-html: 2.0.3 2040 + hast-util-to-text: 4.0.2 2041 + import-meta-resolve: 4.2.0 2042 + js-yaml: 4.3.0 2043 + mdast-util-definitions: 6.0.0 2044 + rehype-raw: 7.0.0 2045 + rehype-stringify: 10.0.1 2046 + remark-gfm: 4.0.1 2047 + remark-parse: 11.0.0 2048 + remark-rehype: 11.1.2 2049 + remark-smartypants: 3.0.2 2050 + shiki: 3.23.0 2051 + smol-toml: 1.7.0 2052 + unified: 11.0.5 2053 + unist-util-remove-position: 5.0.0 2054 + unist-util-visit: 5.1.0 2055 + unist-util-visit-parents: 6.0.2 2056 + vfile: 6.0.3 2057 + transitivePeerDependencies: 2058 + - supports-color 2059 + 2060 + '@astrojs/prism@3.3.0': 2061 + dependencies: 2062 + prismjs: 1.30.0 2063 + 2064 + '@astrojs/telemetry@3.3.0': 2065 + dependencies: 2066 + ci-info: 4.4.0 2067 + debug: 4.4.3 2068 + dlv: 1.1.3 2069 + dset: 3.1.4 2070 + is-docker: 3.0.0 2071 + is-wsl: 3.1.1 2072 + which-pm-runs: 1.1.0 2073 + transitivePeerDependencies: 2074 + - supports-color 2075 + 2076 + '@astrojs/yaml2ts@0.2.4': 2077 + dependencies: 2078 + yaml: 2.9.0 2079 + 2080 + '@babel/helper-string-parser@7.29.7': {} 2081 + 2082 + '@babel/helper-validator-identifier@7.29.7': {} 2083 + 2084 + '@babel/parser@7.29.7': 2085 + dependencies: 2086 + '@babel/types': 7.29.7 2087 + 2088 + '@babel/types@7.29.7': 2089 + dependencies: 2090 + '@babel/helper-string-parser': 7.29.7 2091 + '@babel/helper-validator-identifier': 7.29.7 2092 + 2093 + '@capsizecss/unpack@4.0.1': 2094 + dependencies: 2095 + fontkitten: 1.0.3 2096 + 2097 + '@emmetio/abbreviation@2.3.3': 2098 + dependencies: 2099 + '@emmetio/scanner': 1.0.4 2100 + 2101 + '@emmetio/css-abbreviation@2.1.8': 2102 + dependencies: 2103 + '@emmetio/scanner': 1.0.4 2104 + 2105 + '@emmetio/css-parser@0.4.1': 2106 + dependencies: 2107 + '@emmetio/stream-reader': 2.2.0 2108 + '@emmetio/stream-reader-utils': 0.1.0 2109 + 2110 + '@emmetio/html-matcher@1.3.0': 2111 + dependencies: 2112 + '@emmetio/scanner': 1.0.4 2113 + 2114 + '@emmetio/scanner@1.0.4': {} 2115 + 2116 + '@emmetio/stream-reader-utils@0.1.0': {} 2117 + 2118 + '@emmetio/stream-reader@2.2.0': {} 2119 + 2120 + '@emnapi/runtime@1.11.1': 2121 + dependencies: 2122 + tslib: 2.8.1 2123 + optional: true 2124 + 2125 + '@esbuild/aix-ppc64@0.25.12': 2126 + optional: true 2127 + 2128 + '@esbuild/aix-ppc64@0.27.7': 2129 + optional: true 2130 + 2131 + '@esbuild/android-arm64@0.25.12': 2132 + optional: true 2133 + 2134 + '@esbuild/android-arm64@0.27.7': 2135 + optional: true 2136 + 2137 + '@esbuild/android-arm@0.25.12': 2138 + optional: true 2139 + 2140 + '@esbuild/android-arm@0.27.7': 2141 + optional: true 2142 + 2143 + '@esbuild/android-x64@0.25.12': 2144 + optional: true 2145 + 2146 + '@esbuild/android-x64@0.27.7': 2147 + optional: true 2148 + 2149 + '@esbuild/darwin-arm64@0.25.12': 2150 + optional: true 2151 + 2152 + '@esbuild/darwin-arm64@0.27.7': 2153 + optional: true 2154 + 2155 + '@esbuild/darwin-x64@0.25.12': 2156 + optional: true 2157 + 2158 + '@esbuild/darwin-x64@0.27.7': 2159 + optional: true 2160 + 2161 + '@esbuild/freebsd-arm64@0.25.12': 2162 + optional: true 2163 + 2164 + '@esbuild/freebsd-arm64@0.27.7': 2165 + optional: true 2166 + 2167 + '@esbuild/freebsd-x64@0.25.12': 2168 + optional: true 2169 + 2170 + '@esbuild/freebsd-x64@0.27.7': 2171 + optional: true 2172 + 2173 + '@esbuild/linux-arm64@0.25.12': 2174 + optional: true 2175 + 2176 + '@esbuild/linux-arm64@0.27.7': 2177 + optional: true 2178 + 2179 + '@esbuild/linux-arm@0.25.12': 2180 + optional: true 2181 + 2182 + '@esbuild/linux-arm@0.27.7': 2183 + optional: true 2184 + 2185 + '@esbuild/linux-ia32@0.25.12': 2186 + optional: true 2187 + 2188 + '@esbuild/linux-ia32@0.27.7': 2189 + optional: true 2190 + 2191 + '@esbuild/linux-loong64@0.25.12': 2192 + optional: true 2193 + 2194 + '@esbuild/linux-loong64@0.27.7': 2195 + optional: true 2196 + 2197 + '@esbuild/linux-mips64el@0.25.12': 2198 + optional: true 2199 + 2200 + '@esbuild/linux-mips64el@0.27.7': 2201 + optional: true 2202 + 2203 + '@esbuild/linux-ppc64@0.25.12': 2204 + optional: true 2205 + 2206 + '@esbuild/linux-ppc64@0.27.7': 2207 + optional: true 2208 + 2209 + '@esbuild/linux-riscv64@0.25.12': 2210 + optional: true 2211 + 2212 + '@esbuild/linux-riscv64@0.27.7': 2213 + optional: true 2214 + 2215 + '@esbuild/linux-s390x@0.25.12': 2216 + optional: true 2217 + 2218 + '@esbuild/linux-s390x@0.27.7': 2219 + optional: true 2220 + 2221 + '@esbuild/linux-x64@0.25.12': 2222 + optional: true 2223 + 2224 + '@esbuild/linux-x64@0.27.7': 2225 + optional: true 2226 + 2227 + '@esbuild/netbsd-arm64@0.25.12': 2228 + optional: true 2229 + 2230 + '@esbuild/netbsd-arm64@0.27.7': 2231 + optional: true 2232 + 2233 + '@esbuild/netbsd-x64@0.25.12': 2234 + optional: true 2235 + 2236 + '@esbuild/netbsd-x64@0.27.7': 2237 + optional: true 2238 + 2239 + '@esbuild/openbsd-arm64@0.25.12': 2240 + optional: true 2241 + 2242 + '@esbuild/openbsd-arm64@0.27.7': 2243 + optional: true 2244 + 2245 + '@esbuild/openbsd-x64@0.25.12': 2246 + optional: true 2247 + 2248 + '@esbuild/openbsd-x64@0.27.7': 2249 + optional: true 2250 + 2251 + '@esbuild/openharmony-arm64@0.25.12': 2252 + optional: true 2253 + 2254 + '@esbuild/openharmony-arm64@0.27.7': 2255 + optional: true 2256 + 2257 + '@esbuild/sunos-x64@0.25.12': 2258 + optional: true 2259 + 2260 + '@esbuild/sunos-x64@0.27.7': 2261 + optional: true 2262 + 2263 + '@esbuild/win32-arm64@0.25.12': 2264 + optional: true 2265 + 2266 + '@esbuild/win32-arm64@0.27.7': 2267 + optional: true 2268 + 2269 + '@esbuild/win32-ia32@0.25.12': 2270 + optional: true 2271 + 2272 + '@esbuild/win32-ia32@0.27.7': 2273 + optional: true 2274 + 2275 + '@esbuild/win32-x64@0.25.12': 2276 + optional: true 2277 + 2278 + '@esbuild/win32-x64@0.27.7': 2279 + optional: true 2280 + 2281 + '@fontsource/ibm-plex-mono@5.2.7': {} 2282 + 2283 + '@fontsource/ibm-plex-sans@5.2.8': {} 2284 + 2285 + '@fontsource/space-grotesk@5.2.10': {} 2286 + 2287 + '@img/colour@1.1.0': 2288 + optional: true 2289 + 2290 + '@img/sharp-darwin-arm64@0.34.5': 2291 + optionalDependencies: 2292 + '@img/sharp-libvips-darwin-arm64': 1.2.4 2293 + optional: true 2294 + 2295 + '@img/sharp-darwin-x64@0.34.5': 2296 + optionalDependencies: 2297 + '@img/sharp-libvips-darwin-x64': 1.2.4 2298 + optional: true 2299 + 2300 + '@img/sharp-libvips-darwin-arm64@1.2.4': 2301 + optional: true 2302 + 2303 + '@img/sharp-libvips-darwin-x64@1.2.4': 2304 + optional: true 2305 + 2306 + '@img/sharp-libvips-linux-arm64@1.2.4': 2307 + optional: true 2308 + 2309 + '@img/sharp-libvips-linux-arm@1.2.4': 2310 + optional: true 2311 + 2312 + '@img/sharp-libvips-linux-ppc64@1.2.4': 2313 + optional: true 2314 + 2315 + '@img/sharp-libvips-linux-riscv64@1.2.4': 2316 + optional: true 2317 + 2318 + '@img/sharp-libvips-linux-s390x@1.2.4': 2319 + optional: true 2320 + 2321 + '@img/sharp-libvips-linux-x64@1.2.4': 2322 + optional: true 2323 + 2324 + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': 2325 + optional: true 2326 + 2327 + '@img/sharp-libvips-linuxmusl-x64@1.2.4': 2328 + optional: true 2329 + 2330 + '@img/sharp-linux-arm64@0.34.5': 2331 + optionalDependencies: 2332 + '@img/sharp-libvips-linux-arm64': 1.2.4 2333 + optional: true 2334 + 2335 + '@img/sharp-linux-arm@0.34.5': 2336 + optionalDependencies: 2337 + '@img/sharp-libvips-linux-arm': 1.2.4 2338 + optional: true 2339 + 2340 + '@img/sharp-linux-ppc64@0.34.5': 2341 + optionalDependencies: 2342 + '@img/sharp-libvips-linux-ppc64': 1.2.4 2343 + optional: true 2344 + 2345 + '@img/sharp-linux-riscv64@0.34.5': 2346 + optionalDependencies: 2347 + '@img/sharp-libvips-linux-riscv64': 1.2.4 2348 + optional: true 2349 + 2350 + '@img/sharp-linux-s390x@0.34.5': 2351 + optionalDependencies: 2352 + '@img/sharp-libvips-linux-s390x': 1.2.4 2353 + optional: true 2354 + 2355 + '@img/sharp-linux-x64@0.34.5': 2356 + optionalDependencies: 2357 + '@img/sharp-libvips-linux-x64': 1.2.4 2358 + optional: true 2359 + 2360 + '@img/sharp-linuxmusl-arm64@0.34.5': 2361 + optionalDependencies: 2362 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 2363 + optional: true 2364 + 2365 + '@img/sharp-linuxmusl-x64@0.34.5': 2366 + optionalDependencies: 2367 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 2368 + optional: true 2369 + 2370 + '@img/sharp-wasm32@0.34.5': 2371 + dependencies: 2372 + '@emnapi/runtime': 1.11.1 2373 + optional: true 2374 + 2375 + '@img/sharp-win32-arm64@0.34.5': 2376 + optional: true 2377 + 2378 + '@img/sharp-win32-ia32@0.34.5': 2379 + optional: true 2380 + 2381 + '@img/sharp-win32-x64@0.34.5': 2382 + optional: true 2383 + 2384 + '@jridgewell/sourcemap-codec@1.5.5': {} 2385 + 2386 + '@oslojs/encoding@1.1.0': {} 2387 + 2388 + '@rollup/pluginutils@5.4.0(rollup@4.62.2)': 2389 + dependencies: 2390 + '@types/estree': 1.0.9 2391 + estree-walker: 2.0.2 2392 + picomatch: 4.0.4 2393 + optionalDependencies: 2394 + rollup: 4.62.2 2395 + 2396 + '@rollup/rollup-android-arm-eabi@4.62.2': 2397 + optional: true 2398 + 2399 + '@rollup/rollup-android-arm64@4.62.2': 2400 + optional: true 2401 + 2402 + '@rollup/rollup-darwin-arm64@4.62.2': 2403 + optional: true 2404 + 2405 + '@rollup/rollup-darwin-x64@4.62.2': 2406 + optional: true 2407 + 2408 + '@rollup/rollup-freebsd-arm64@4.62.2': 2409 + optional: true 2410 + 2411 + '@rollup/rollup-freebsd-x64@4.62.2': 2412 + optional: true 2413 + 2414 + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': 2415 + optional: true 2416 + 2417 + '@rollup/rollup-linux-arm-musleabihf@4.62.2': 2418 + optional: true 2419 + 2420 + '@rollup/rollup-linux-arm64-gnu@4.62.2': 2421 + optional: true 2422 + 2423 + '@rollup/rollup-linux-arm64-musl@4.62.2': 2424 + optional: true 2425 + 2426 + '@rollup/rollup-linux-loong64-gnu@4.62.2': 2427 + optional: true 2428 + 2429 + '@rollup/rollup-linux-loong64-musl@4.62.2': 2430 + optional: true 2431 + 2432 + '@rollup/rollup-linux-ppc64-gnu@4.62.2': 2433 + optional: true 2434 + 2435 + '@rollup/rollup-linux-ppc64-musl@4.62.2': 2436 + optional: true 2437 + 2438 + '@rollup/rollup-linux-riscv64-gnu@4.62.2': 2439 + optional: true 2440 + 2441 + '@rollup/rollup-linux-riscv64-musl@4.62.2': 2442 + optional: true 2443 + 2444 + '@rollup/rollup-linux-s390x-gnu@4.62.2': 2445 + optional: true 2446 + 2447 + '@rollup/rollup-linux-x64-gnu@4.62.2': 2448 + optional: true 2449 + 2450 + '@rollup/rollup-linux-x64-musl@4.62.2': 2451 + optional: true 2452 + 2453 + '@rollup/rollup-openbsd-x64@4.62.2': 2454 + optional: true 2455 + 2456 + '@rollup/rollup-openharmony-arm64@4.62.2': 2457 + optional: true 2458 + 2459 + '@rollup/rollup-win32-arm64-msvc@4.62.2': 2460 + optional: true 2461 + 2462 + '@rollup/rollup-win32-ia32-msvc@4.62.2': 2463 + optional: true 2464 + 2465 + '@rollup/rollup-win32-x64-gnu@4.62.2': 2466 + optional: true 2467 + 2468 + '@rollup/rollup-win32-x64-msvc@4.62.2': 2469 + optional: true 2470 + 2471 + '@shikijs/core@3.23.0': 2472 + dependencies: 2473 + '@shikijs/types': 3.23.0 2474 + '@shikijs/vscode-textmate': 10.0.2 2475 + '@types/hast': 3.0.4 2476 + hast-util-to-html: 9.0.5 2477 + 2478 + '@shikijs/engine-javascript@3.23.0': 2479 + dependencies: 2480 + '@shikijs/types': 3.23.0 2481 + '@shikijs/vscode-textmate': 10.0.2 2482 + oniguruma-to-es: 4.3.6 2483 + 2484 + '@shikijs/engine-oniguruma@3.23.0': 2485 + dependencies: 2486 + '@shikijs/types': 3.23.0 2487 + '@shikijs/vscode-textmate': 10.0.2 2488 + 2489 + '@shikijs/langs@3.23.0': 2490 + dependencies: 2491 + '@shikijs/types': 3.23.0 2492 + 2493 + '@shikijs/themes@3.23.0': 2494 + dependencies: 2495 + '@shikijs/types': 3.23.0 2496 + 2497 + '@shikijs/types@3.23.0': 2498 + dependencies: 2499 + '@shikijs/vscode-textmate': 10.0.2 2500 + '@types/hast': 3.0.4 2501 + 2502 + '@shikijs/vscode-textmate@10.0.2': {} 2503 + 2504 + '@types/debug@4.1.13': 2505 + dependencies: 2506 + '@types/ms': 2.1.0 2507 + 2508 + '@types/estree@1.0.9': {} 2509 + 2510 + '@types/hast@3.0.4': 2511 + dependencies: 2512 + '@types/unist': 3.0.3 2513 + 2514 + '@types/mdast@4.0.4': 2515 + dependencies: 2516 + '@types/unist': 3.0.3 2517 + 2518 + '@types/ms@2.1.0': {} 2519 + 2520 + '@types/nlcst@2.0.3': 2521 + dependencies: 2522 + '@types/unist': 3.0.3 2523 + 2524 + '@types/unist@3.0.3': {} 2525 + 2526 + '@ungap/structured-clone@1.3.2': {} 2527 + 2528 + '@volar/kit@2.4.28(typescript@5.9.3)': 2529 + dependencies: 2530 + '@volar/language-service': 2.4.28 2531 + '@volar/typescript': 2.4.28 2532 + typesafe-path: 0.2.2 2533 + typescript: 5.9.3 2534 + vscode-languageserver-textdocument: 1.0.12 2535 + vscode-uri: 3.1.0 2536 + 2537 + '@volar/language-core@2.4.28': 2538 + dependencies: 2539 + '@volar/source-map': 2.4.28 2540 + 2541 + '@volar/language-server@2.4.28': 2542 + dependencies: 2543 + '@volar/language-core': 2.4.28 2544 + '@volar/language-service': 2.4.28 2545 + '@volar/typescript': 2.4.28 2546 + path-browserify: 1.0.1 2547 + request-light: 0.7.0 2548 + vscode-languageserver: 9.0.1 2549 + vscode-languageserver-protocol: 3.18.1 2550 + vscode-languageserver-textdocument: 1.0.12 2551 + vscode-uri: 3.1.0 2552 + 2553 + '@volar/language-service@2.4.28': 2554 + dependencies: 2555 + '@volar/language-core': 2.4.28 2556 + vscode-languageserver-protocol: 3.18.1 2557 + vscode-languageserver-textdocument: 1.0.12 2558 + vscode-uri: 3.1.0 2559 + 2560 + '@volar/source-map@2.4.28': {} 2561 + 2562 + '@volar/typescript@2.4.28': 2563 + dependencies: 2564 + '@volar/language-core': 2.4.28 2565 + path-browserify: 1.0.1 2566 + vscode-uri: 3.1.0 2567 + 2568 + '@vscode/emmet-helper@2.11.0': 2569 + dependencies: 2570 + emmet: 2.4.11 2571 + jsonc-parser: 2.3.1 2572 + vscode-languageserver-textdocument: 1.0.12 2573 + vscode-languageserver-types: 3.18.0 2574 + vscode-uri: 3.1.0 2575 + 2576 + '@vscode/l10n@0.0.18': {} 2577 + 2578 + acorn@8.17.0: {} 2579 + 2580 + ajv-draft-04@1.0.0(ajv@8.20.0): 2581 + optionalDependencies: 2582 + ajv: 8.20.0 2583 + 2584 + ajv@8.20.0: 2585 + dependencies: 2586 + fast-deep-equal: 3.1.3 2587 + fast-uri: 3.1.3 2588 + json-schema-traverse: 1.0.0 2589 + require-from-string: 2.0.2 2590 + 2591 + ansi-align@3.0.1: 2592 + dependencies: 2593 + string-width: 4.2.3 2594 + 2595 + ansi-regex@5.0.1: {} 2596 + 2597 + ansi-regex@6.2.2: {} 2598 + 2599 + ansi-styles@4.3.0: 2600 + dependencies: 2601 + color-convert: 2.0.1 2602 + 2603 + ansi-styles@6.2.3: {} 2604 + 2605 + anymatch@3.1.3: 2606 + dependencies: 2607 + normalize-path: 3.0.0 2608 + picomatch: 2.3.2 2609 + 2610 + argparse@2.0.1: {} 2611 + 2612 + aria-query@5.3.2: {} 2613 + 2614 + array-iterate@2.0.1: {} 2615 + 2616 + astro@5.18.2(rollup@4.62.2)(typescript@5.9.3)(yaml@2.9.0): 2617 + dependencies: 2618 + '@astrojs/compiler': 2.13.1 2619 + '@astrojs/internal-helpers': 0.7.6 2620 + '@astrojs/markdown-remark': 6.3.11 2621 + '@astrojs/telemetry': 3.3.0 2622 + '@capsizecss/unpack': 4.0.1 2623 + '@oslojs/encoding': 1.1.0 2624 + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) 2625 + acorn: 8.17.0 2626 + aria-query: 5.3.2 2627 + axobject-query: 4.1.0 2628 + boxen: 8.0.1 2629 + ci-info: 4.4.0 2630 + clsx: 2.1.1 2631 + common-ancestor-path: 1.0.1 2632 + cookie: 1.1.1 2633 + cssesc: 3.0.0 2634 + debug: 4.4.3 2635 + deterministic-object-hash: 2.0.2 2636 + devalue: 5.8.1 2637 + diff: 8.0.4 2638 + dlv: 1.1.3 2639 + dset: 3.1.4 2640 + es-module-lexer: 1.7.0 2641 + esbuild: 0.27.7 2642 + estree-walker: 3.0.3 2643 + flattie: 1.1.1 2644 + fontace: 0.4.1 2645 + github-slugger: 2.0.0 2646 + html-escaper: 3.0.3 2647 + http-cache-semantics: 4.2.0 2648 + import-meta-resolve: 4.2.0 2649 + js-yaml: 4.3.0 2650 + magic-string: 0.30.21 2651 + magicast: 0.5.3 2652 + mrmime: 2.0.1 2653 + neotraverse: 0.6.18 2654 + p-limit: 6.2.0 2655 + p-queue: 8.1.1 2656 + package-manager-detector: 1.6.0 2657 + piccolore: 0.1.3 2658 + picomatch: 4.0.4 2659 + prompts: 2.4.2 2660 + rehype: 13.0.2 2661 + semver: 7.8.5 2662 + shiki: 3.23.0 2663 + smol-toml: 1.7.0 2664 + svgo: 4.0.1 2665 + tinyexec: 1.2.4 2666 + tinyglobby: 0.2.17 2667 + tsconfck: 3.1.6(typescript@5.9.3) 2668 + ultrahtml: 1.6.0 2669 + unifont: 0.7.4 2670 + unist-util-visit: 5.1.0 2671 + unstorage: 1.17.5 2672 + vfile: 6.0.3 2673 + vite: 6.4.3(yaml@2.9.0) 2674 + vitefu: 1.1.3(vite@6.4.3(yaml@2.9.0)) 2675 + xxhash-wasm: 1.1.0 2676 + yargs-parser: 21.1.1 2677 + yocto-spinner: 0.2.3 2678 + zod: 3.25.76 2679 + zod-to-json-schema: 3.25.2(zod@3.25.76) 2680 + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) 2681 + optionalDependencies: 2682 + sharp: 0.34.5 2683 + transitivePeerDependencies: 2684 + - '@azure/app-configuration' 2685 + - '@azure/cosmos' 2686 + - '@azure/data-tables' 2687 + - '@azure/identity' 2688 + - '@azure/keyvault-secrets' 2689 + - '@azure/storage-blob' 2690 + - '@capacitor/preferences' 2691 + - '@deno/kv' 2692 + - '@netlify/blobs' 2693 + - '@planetscale/database' 2694 + - '@types/node' 2695 + - '@upstash/redis' 2696 + - '@vercel/blob' 2697 + - '@vercel/functions' 2698 + - '@vercel/kv' 2699 + - aws4fetch 2700 + - db0 2701 + - idb-keyval 2702 + - ioredis 2703 + - jiti 2704 + - less 2705 + - lightningcss 2706 + - rollup 2707 + - sass 2708 + - sass-embedded 2709 + - stylus 2710 + - sugarss 2711 + - supports-color 2712 + - terser 2713 + - tsx 2714 + - typescript 2715 + - uploadthing 2716 + - yaml 2717 + 2718 + axobject-query@4.1.0: {} 2719 + 2720 + bail@2.0.2: {} 2721 + 2722 + base-64@1.0.0: {} 2723 + 2724 + boolbase@1.0.0: {} 2725 + 2726 + boxen@8.0.1: 2727 + dependencies: 2728 + ansi-align: 3.0.1 2729 + camelcase: 8.0.0 2730 + chalk: 5.6.2 2731 + cli-boxes: 3.0.0 2732 + string-width: 7.2.0 2733 + type-fest: 4.41.0 2734 + widest-line: 5.0.0 2735 + wrap-ansi: 9.0.2 2736 + 2737 + camelcase@8.0.0: {} 2738 + 2739 + ccount@2.0.1: {} 2740 + 2741 + chalk@5.6.2: {} 2742 + 2743 + character-entities-html4@2.1.0: {} 2744 + 2745 + character-entities-legacy@3.0.0: {} 2746 + 2747 + character-entities@2.0.2: {} 2748 + 2749 + chokidar@4.0.3: 2750 + dependencies: 2751 + readdirp: 4.1.2 2752 + 2753 + chokidar@5.0.0: 2754 + dependencies: 2755 + readdirp: 5.0.0 2756 + 2757 + ci-info@4.4.0: {} 2758 + 2759 + cli-boxes@3.0.0: {} 2760 + 2761 + cliui@8.0.1: 2762 + dependencies: 2763 + string-width: 4.2.3 2764 + strip-ansi: 6.0.1 2765 + wrap-ansi: 7.0.0 2766 + 2767 + clsx@2.1.1: {} 2768 + 2769 + color-convert@2.0.1: 2770 + dependencies: 2771 + color-name: 1.1.4 2772 + 2773 + color-name@1.1.4: {} 2774 + 2775 + comma-separated-tokens@2.0.3: {} 2776 + 2777 + commander@11.1.0: {} 2778 + 2779 + common-ancestor-path@1.0.1: {} 2780 + 2781 + cookie-es@1.2.3: {} 2782 + 2783 + cookie@1.1.1: {} 2784 + 2785 + crossws@0.3.5: 2786 + dependencies: 2787 + uncrypto: 0.1.3 2788 + 2789 + css-select@5.2.2: 2790 + dependencies: 2791 + boolbase: 1.0.0 2792 + css-what: 6.2.2 2793 + domhandler: 5.0.3 2794 + domutils: 3.2.2 2795 + nth-check: 2.1.1 2796 + 2797 + css-tree@2.2.1: 2798 + dependencies: 2799 + mdn-data: 2.0.28 2800 + source-map-js: 1.2.1 2801 + 2802 + css-tree@3.2.1: 2803 + dependencies: 2804 + mdn-data: 2.27.1 2805 + source-map-js: 1.2.1 2806 + 2807 + css-what@6.2.2: {} 2808 + 2809 + cssesc@3.0.0: {} 2810 + 2811 + csso@5.0.5: 2812 + dependencies: 2813 + css-tree: 2.2.1 2814 + 2815 + debug@4.4.3: 2816 + dependencies: 2817 + ms: 2.1.3 2818 + 2819 + decode-named-character-reference@1.3.0: 2820 + dependencies: 2821 + character-entities: 2.0.2 2822 + 2823 + defu@6.1.7: {} 2824 + 2825 + dequal@2.0.3: {} 2826 + 2827 + destr@2.0.5: {} 2828 + 2829 + detect-libc@2.1.2: 2830 + optional: true 2831 + 2832 + deterministic-object-hash@2.0.2: 2833 + dependencies: 2834 + base-64: 1.0.0 2835 + 2836 + devalue@5.8.1: {} 2837 + 2838 + devlop@1.1.0: 2839 + dependencies: 2840 + dequal: 2.0.3 2841 + 2842 + diff@8.0.4: {} 2843 + 2844 + dlv@1.1.3: {} 2845 + 2846 + dom-serializer@2.0.0: 2847 + dependencies: 2848 + domelementtype: 2.3.0 2849 + domhandler: 5.0.3 2850 + entities: 4.5.0 2851 + 2852 + domelementtype@2.3.0: {} 2853 + 2854 + domhandler@5.0.3: 2855 + dependencies: 2856 + domelementtype: 2.3.0 2857 + 2858 + domutils@3.2.2: 2859 + dependencies: 2860 + dom-serializer: 2.0.0 2861 + domelementtype: 2.3.0 2862 + domhandler: 5.0.3 2863 + 2864 + dset@3.1.4: {} 2865 + 2866 + emmet@2.4.11: 2867 + dependencies: 2868 + '@emmetio/abbreviation': 2.3.3 2869 + '@emmetio/css-abbreviation': 2.1.8 2870 + 2871 + emoji-regex@10.6.0: {} 2872 + 2873 + emoji-regex@8.0.0: {} 2874 + 2875 + entities@4.5.0: {} 2876 + 2877 + entities@6.0.1: {} 2878 + 2879 + es-module-lexer@1.7.0: {} 2880 + 2881 + esbuild@0.25.12: 2882 + optionalDependencies: 2883 + '@esbuild/aix-ppc64': 0.25.12 2884 + '@esbuild/android-arm': 0.25.12 2885 + '@esbuild/android-arm64': 0.25.12 2886 + '@esbuild/android-x64': 0.25.12 2887 + '@esbuild/darwin-arm64': 0.25.12 2888 + '@esbuild/darwin-x64': 0.25.12 2889 + '@esbuild/freebsd-arm64': 0.25.12 2890 + '@esbuild/freebsd-x64': 0.25.12 2891 + '@esbuild/linux-arm': 0.25.12 2892 + '@esbuild/linux-arm64': 0.25.12 2893 + '@esbuild/linux-ia32': 0.25.12 2894 + '@esbuild/linux-loong64': 0.25.12 2895 + '@esbuild/linux-mips64el': 0.25.12 2896 + '@esbuild/linux-ppc64': 0.25.12 2897 + '@esbuild/linux-riscv64': 0.25.12 2898 + '@esbuild/linux-s390x': 0.25.12 2899 + '@esbuild/linux-x64': 0.25.12 2900 + '@esbuild/netbsd-arm64': 0.25.12 2901 + '@esbuild/netbsd-x64': 0.25.12 2902 + '@esbuild/openbsd-arm64': 0.25.12 2903 + '@esbuild/openbsd-x64': 0.25.12 2904 + '@esbuild/openharmony-arm64': 0.25.12 2905 + '@esbuild/sunos-x64': 0.25.12 2906 + '@esbuild/win32-arm64': 0.25.12 2907 + '@esbuild/win32-ia32': 0.25.12 2908 + '@esbuild/win32-x64': 0.25.12 2909 + 2910 + esbuild@0.27.7: 2911 + optionalDependencies: 2912 + '@esbuild/aix-ppc64': 0.27.7 2913 + '@esbuild/android-arm': 0.27.7 2914 + '@esbuild/android-arm64': 0.27.7 2915 + '@esbuild/android-x64': 0.27.7 2916 + '@esbuild/darwin-arm64': 0.27.7 2917 + '@esbuild/darwin-x64': 0.27.7 2918 + '@esbuild/freebsd-arm64': 0.27.7 2919 + '@esbuild/freebsd-x64': 0.27.7 2920 + '@esbuild/linux-arm': 0.27.7 2921 + '@esbuild/linux-arm64': 0.27.7 2922 + '@esbuild/linux-ia32': 0.27.7 2923 + '@esbuild/linux-loong64': 0.27.7 2924 + '@esbuild/linux-mips64el': 0.27.7 2925 + '@esbuild/linux-ppc64': 0.27.7 2926 + '@esbuild/linux-riscv64': 0.27.7 2927 + '@esbuild/linux-s390x': 0.27.7 2928 + '@esbuild/linux-x64': 0.27.7 2929 + '@esbuild/netbsd-arm64': 0.27.7 2930 + '@esbuild/netbsd-x64': 0.27.7 2931 + '@esbuild/openbsd-arm64': 0.27.7 2932 + '@esbuild/openbsd-x64': 0.27.7 2933 + '@esbuild/openharmony-arm64': 0.27.7 2934 + '@esbuild/sunos-x64': 0.27.7 2935 + '@esbuild/win32-arm64': 0.27.7 2936 + '@esbuild/win32-ia32': 0.27.7 2937 + '@esbuild/win32-x64': 0.27.7 2938 + 2939 + escalade@3.2.0: {} 2940 + 2941 + escape-string-regexp@5.0.0: {} 2942 + 2943 + estree-walker@2.0.2: {} 2944 + 2945 + estree-walker@3.0.3: 2946 + dependencies: 2947 + '@types/estree': 1.0.9 2948 + 2949 + eventemitter3@5.0.4: {} 2950 + 2951 + extend@3.0.2: {} 2952 + 2953 + fast-deep-equal@3.1.3: {} 2954 + 2955 + fast-uri@3.1.3: {} 2956 + 2957 + fdir@6.5.0(picomatch@4.0.4): 2958 + optionalDependencies: 2959 + picomatch: 4.0.4 2960 + 2961 + flattie@1.1.1: {} 2962 + 2963 + fontace@0.4.1: 2964 + dependencies: 2965 + fontkitten: 1.0.3 2966 + 2967 + fontkitten@1.0.3: 2968 + dependencies: 2969 + tiny-inflate: 1.0.3 2970 + 2971 + fsevents@2.3.3: 2972 + optional: true 2973 + 2974 + get-caller-file@2.0.5: {} 2975 + 2976 + get-east-asian-width@1.6.0: {} 2977 + 2978 + github-slugger@2.0.0: {} 2979 + 2980 + h3@1.15.11: 2981 + dependencies: 2982 + cookie-es: 1.2.3 2983 + crossws: 0.3.5 2984 + defu: 6.1.7 2985 + destr: 2.0.5 2986 + iron-webcrypto: 1.2.1 2987 + node-mock-http: 1.0.4 2988 + radix3: 1.1.2 2989 + ufo: 1.6.4 2990 + uncrypto: 0.1.3 2991 + 2992 + hast-util-from-html@2.0.3: 2993 + dependencies: 2994 + '@types/hast': 3.0.4 2995 + devlop: 1.1.0 2996 + hast-util-from-parse5: 8.0.3 2997 + parse5: 7.3.0 2998 + vfile: 6.0.3 2999 + vfile-message: 4.0.3 3000 + 3001 + hast-util-from-parse5@8.0.3: 3002 + dependencies: 3003 + '@types/hast': 3.0.4 3004 + '@types/unist': 3.0.3 3005 + devlop: 1.1.0 3006 + hastscript: 9.0.1 3007 + property-information: 7.2.0 3008 + vfile: 6.0.3 3009 + vfile-location: 5.0.3 3010 + web-namespaces: 2.0.1 3011 + 3012 + hast-util-is-element@3.0.0: 3013 + dependencies: 3014 + '@types/hast': 3.0.4 3015 + 3016 + hast-util-parse-selector@4.0.0: 3017 + dependencies: 3018 + '@types/hast': 3.0.4 3019 + 3020 + hast-util-raw@9.1.0: 3021 + dependencies: 3022 + '@types/hast': 3.0.4 3023 + '@types/unist': 3.0.3 3024 + '@ungap/structured-clone': 1.3.2 3025 + hast-util-from-parse5: 8.0.3 3026 + hast-util-to-parse5: 8.0.1 3027 + html-void-elements: 3.0.0 3028 + mdast-util-to-hast: 13.2.1 3029 + parse5: 7.3.0 3030 + unist-util-position: 5.0.0 3031 + unist-util-visit: 5.1.0 3032 + vfile: 6.0.3 3033 + web-namespaces: 2.0.1 3034 + zwitch: 2.0.4 3035 + 3036 + hast-util-to-html@9.0.5: 3037 + dependencies: 3038 + '@types/hast': 3.0.4 3039 + '@types/unist': 3.0.3 3040 + ccount: 2.0.1 3041 + comma-separated-tokens: 2.0.3 3042 + hast-util-whitespace: 3.0.0 3043 + html-void-elements: 3.0.0 3044 + mdast-util-to-hast: 13.2.1 3045 + property-information: 7.2.0 3046 + space-separated-tokens: 2.0.2 3047 + stringify-entities: 4.0.4 3048 + zwitch: 2.0.4 3049 + 3050 + hast-util-to-parse5@8.0.1: 3051 + dependencies: 3052 + '@types/hast': 3.0.4 3053 + comma-separated-tokens: 2.0.3 3054 + devlop: 1.1.0 3055 + property-information: 7.2.0 3056 + space-separated-tokens: 2.0.2 3057 + web-namespaces: 2.0.1 3058 + zwitch: 2.0.4 3059 + 3060 + hast-util-to-text@4.0.2: 3061 + dependencies: 3062 + '@types/hast': 3.0.4 3063 + '@types/unist': 3.0.3 3064 + hast-util-is-element: 3.0.0 3065 + unist-util-find-after: 5.0.0 3066 + 3067 + hast-util-whitespace@3.0.0: 3068 + dependencies: 3069 + '@types/hast': 3.0.4 3070 + 3071 + hastscript@9.0.1: 3072 + dependencies: 3073 + '@types/hast': 3.0.4 3074 + comma-separated-tokens: 2.0.3 3075 + hast-util-parse-selector: 4.0.0 3076 + property-information: 7.2.0 3077 + space-separated-tokens: 2.0.2 3078 + 3079 + html-escaper@3.0.3: {} 3080 + 3081 + html-void-elements@3.0.0: {} 3082 + 3083 + http-cache-semantics@4.2.0: {} 3084 + 3085 + import-meta-resolve@4.2.0: {} 3086 + 3087 + iron-webcrypto@1.2.1: {} 3088 + 3089 + is-docker@3.0.0: {} 3090 + 3091 + is-fullwidth-code-point@3.0.0: {} 3092 + 3093 + is-inside-container@1.0.0: 3094 + dependencies: 3095 + is-docker: 3.0.0 3096 + 3097 + is-plain-obj@4.1.0: {} 3098 + 3099 + is-wsl@3.1.1: 3100 + dependencies: 3101 + is-inside-container: 1.0.0 3102 + 3103 + js-yaml@4.3.0: 3104 + dependencies: 3105 + argparse: 2.0.1 3106 + 3107 + json-schema-traverse@1.0.0: {} 3108 + 3109 + jsonc-parser@2.3.1: {} 3110 + 3111 + jsonc-parser@3.3.1: {} 3112 + 3113 + kleur@3.0.3: {} 3114 + 3115 + kleur@4.1.5: {} 3116 + 3117 + longest-streak@3.1.0: {} 3118 + 3119 + lru-cache@11.5.1: {} 3120 + 3121 + magic-string@0.30.21: 3122 + dependencies: 3123 + '@jridgewell/sourcemap-codec': 1.5.5 3124 + 3125 + magicast@0.5.3: 3126 + dependencies: 3127 + '@babel/parser': 7.29.7 3128 + '@babel/types': 7.29.7 3129 + source-map-js: 1.2.1 3130 + 3131 + markdown-table@3.0.4: {} 3132 + 3133 + mdast-util-definitions@6.0.0: 3134 + dependencies: 3135 + '@types/mdast': 4.0.4 3136 + '@types/unist': 3.0.3 3137 + unist-util-visit: 5.1.0 3138 + 3139 + mdast-util-find-and-replace@3.0.2: 3140 + dependencies: 3141 + '@types/mdast': 4.0.4 3142 + escape-string-regexp: 5.0.0 3143 + unist-util-is: 6.0.1 3144 + unist-util-visit-parents: 6.0.2 3145 + 3146 + mdast-util-from-markdown@2.0.3: 3147 + dependencies: 3148 + '@types/mdast': 4.0.4 3149 + '@types/unist': 3.0.3 3150 + decode-named-character-reference: 1.3.0 3151 + devlop: 1.1.0 3152 + mdast-util-to-string: 4.0.0 3153 + micromark: 4.0.2 3154 + micromark-util-decode-numeric-character-reference: 2.0.2 3155 + micromark-util-decode-string: 2.0.1 3156 + micromark-util-normalize-identifier: 2.0.1 3157 + micromark-util-symbol: 2.0.1 3158 + micromark-util-types: 2.0.2 3159 + unist-util-stringify-position: 4.0.0 3160 + transitivePeerDependencies: 3161 + - supports-color 3162 + 3163 + mdast-util-gfm-autolink-literal@2.0.1: 3164 + dependencies: 3165 + '@types/mdast': 4.0.4 3166 + ccount: 2.0.1 3167 + devlop: 1.1.0 3168 + mdast-util-find-and-replace: 3.0.2 3169 + micromark-util-character: 2.1.1 3170 + 3171 + mdast-util-gfm-footnote@2.1.0: 3172 + dependencies: 3173 + '@types/mdast': 4.0.4 3174 + devlop: 1.1.0 3175 + mdast-util-from-markdown: 2.0.3 3176 + mdast-util-to-markdown: 2.1.2 3177 + micromark-util-normalize-identifier: 2.0.1 3178 + transitivePeerDependencies: 3179 + - supports-color 3180 + 3181 + mdast-util-gfm-strikethrough@2.0.0: 3182 + dependencies: 3183 + '@types/mdast': 4.0.4 3184 + mdast-util-from-markdown: 2.0.3 3185 + mdast-util-to-markdown: 2.1.2 3186 + transitivePeerDependencies: 3187 + - supports-color 3188 + 3189 + mdast-util-gfm-table@2.0.0: 3190 + dependencies: 3191 + '@types/mdast': 4.0.4 3192 + devlop: 1.1.0 3193 + markdown-table: 3.0.4 3194 + mdast-util-from-markdown: 2.0.3 3195 + mdast-util-to-markdown: 2.1.2 3196 + transitivePeerDependencies: 3197 + - supports-color 3198 + 3199 + mdast-util-gfm-task-list-item@2.0.0: 3200 + dependencies: 3201 + '@types/mdast': 4.0.4 3202 + devlop: 1.1.0 3203 + mdast-util-from-markdown: 2.0.3 3204 + mdast-util-to-markdown: 2.1.2 3205 + transitivePeerDependencies: 3206 + - supports-color 3207 + 3208 + mdast-util-gfm@3.1.0: 3209 + dependencies: 3210 + mdast-util-from-markdown: 2.0.3 3211 + mdast-util-gfm-autolink-literal: 2.0.1 3212 + mdast-util-gfm-footnote: 2.1.0 3213 + mdast-util-gfm-strikethrough: 2.0.0 3214 + mdast-util-gfm-table: 2.0.0 3215 + mdast-util-gfm-task-list-item: 2.0.0 3216 + mdast-util-to-markdown: 2.1.2 3217 + transitivePeerDependencies: 3218 + - supports-color 3219 + 3220 + mdast-util-phrasing@4.1.0: 3221 + dependencies: 3222 + '@types/mdast': 4.0.4 3223 + unist-util-is: 6.0.1 3224 + 3225 + mdast-util-to-hast@13.2.1: 3226 + dependencies: 3227 + '@types/hast': 3.0.4 3228 + '@types/mdast': 4.0.4 3229 + '@ungap/structured-clone': 1.3.2 3230 + devlop: 1.1.0 3231 + micromark-util-sanitize-uri: 2.0.1 3232 + trim-lines: 3.0.1 3233 + unist-util-position: 5.0.0 3234 + unist-util-visit: 5.1.0 3235 + vfile: 6.0.3 3236 + 3237 + mdast-util-to-markdown@2.1.2: 3238 + dependencies: 3239 + '@types/mdast': 4.0.4 3240 + '@types/unist': 3.0.3 3241 + longest-streak: 3.1.0 3242 + mdast-util-phrasing: 4.1.0 3243 + mdast-util-to-string: 4.0.0 3244 + micromark-util-classify-character: 2.0.1 3245 + micromark-util-decode-string: 2.0.1 3246 + unist-util-visit: 5.1.0 3247 + zwitch: 2.0.4 3248 + 3249 + mdast-util-to-string@4.0.0: 3250 + dependencies: 3251 + '@types/mdast': 4.0.4 3252 + 3253 + mdn-data@2.0.28: {} 3254 + 3255 + mdn-data@2.27.1: {} 3256 + 3257 + micromark-core-commonmark@2.0.3: 3258 + dependencies: 3259 + decode-named-character-reference: 1.3.0 3260 + devlop: 1.1.0 3261 + micromark-factory-destination: 2.0.1 3262 + micromark-factory-label: 2.0.1 3263 + micromark-factory-space: 2.0.1 3264 + micromark-factory-title: 2.0.1 3265 + micromark-factory-whitespace: 2.0.1 3266 + micromark-util-character: 2.1.1 3267 + micromark-util-chunked: 2.0.1 3268 + micromark-util-classify-character: 2.0.1 3269 + micromark-util-html-tag-name: 2.0.1 3270 + micromark-util-normalize-identifier: 2.0.1 3271 + micromark-util-resolve-all: 2.0.1 3272 + micromark-util-subtokenize: 2.1.0 3273 + micromark-util-symbol: 2.0.1 3274 + micromark-util-types: 2.0.2 3275 + 3276 + micromark-extension-gfm-autolink-literal@2.1.0: 3277 + dependencies: 3278 + micromark-util-character: 2.1.1 3279 + micromark-util-sanitize-uri: 2.0.1 3280 + micromark-util-symbol: 2.0.1 3281 + micromark-util-types: 2.0.2 3282 + 3283 + micromark-extension-gfm-footnote@2.1.0: 3284 + dependencies: 3285 + devlop: 1.1.0 3286 + micromark-core-commonmark: 2.0.3 3287 + micromark-factory-space: 2.0.1 3288 + micromark-util-character: 2.1.1 3289 + micromark-util-normalize-identifier: 2.0.1 3290 + micromark-util-sanitize-uri: 2.0.1 3291 + micromark-util-symbol: 2.0.1 3292 + micromark-util-types: 2.0.2 3293 + 3294 + micromark-extension-gfm-strikethrough@2.1.0: 3295 + dependencies: 3296 + devlop: 1.1.0 3297 + micromark-util-chunked: 2.0.1 3298 + micromark-util-classify-character: 2.0.1 3299 + micromark-util-resolve-all: 2.0.1 3300 + micromark-util-symbol: 2.0.1 3301 + micromark-util-types: 2.0.2 3302 + 3303 + micromark-extension-gfm-table@2.1.1: 3304 + dependencies: 3305 + devlop: 1.1.0 3306 + micromark-factory-space: 2.0.1 3307 + micromark-util-character: 2.1.1 3308 + micromark-util-symbol: 2.0.1 3309 + micromark-util-types: 2.0.2 3310 + 3311 + micromark-extension-gfm-tagfilter@2.0.0: 3312 + dependencies: 3313 + micromark-util-types: 2.0.2 3314 + 3315 + micromark-extension-gfm-task-list-item@2.1.0: 3316 + dependencies: 3317 + devlop: 1.1.0 3318 + micromark-factory-space: 2.0.1 3319 + micromark-util-character: 2.1.1 3320 + micromark-util-symbol: 2.0.1 3321 + micromark-util-types: 2.0.2 3322 + 3323 + micromark-extension-gfm@3.0.0: 3324 + dependencies: 3325 + micromark-extension-gfm-autolink-literal: 2.1.0 3326 + micromark-extension-gfm-footnote: 2.1.0 3327 + micromark-extension-gfm-strikethrough: 2.1.0 3328 + micromark-extension-gfm-table: 2.1.1 3329 + micromark-extension-gfm-tagfilter: 2.0.0 3330 + micromark-extension-gfm-task-list-item: 2.1.0 3331 + micromark-util-combine-extensions: 2.0.1 3332 + micromark-util-types: 2.0.2 3333 + 3334 + micromark-factory-destination@2.0.1: 3335 + dependencies: 3336 + micromark-util-character: 2.1.1 3337 + micromark-util-symbol: 2.0.1 3338 + micromark-util-types: 2.0.2 3339 + 3340 + micromark-factory-label@2.0.1: 3341 + dependencies: 3342 + devlop: 1.1.0 3343 + micromark-util-character: 2.1.1 3344 + micromark-util-symbol: 2.0.1 3345 + micromark-util-types: 2.0.2 3346 + 3347 + micromark-factory-space@2.0.1: 3348 + dependencies: 3349 + micromark-util-character: 2.1.1 3350 + micromark-util-types: 2.0.2 3351 + 3352 + micromark-factory-title@2.0.1: 3353 + dependencies: 3354 + micromark-factory-space: 2.0.1 3355 + micromark-util-character: 2.1.1 3356 + micromark-util-symbol: 2.0.1 3357 + micromark-util-types: 2.0.2 3358 + 3359 + micromark-factory-whitespace@2.0.1: 3360 + dependencies: 3361 + micromark-factory-space: 2.0.1 3362 + micromark-util-character: 2.1.1 3363 + micromark-util-symbol: 2.0.1 3364 + micromark-util-types: 2.0.2 3365 + 3366 + micromark-util-character@2.1.1: 3367 + dependencies: 3368 + micromark-util-symbol: 2.0.1 3369 + micromark-util-types: 2.0.2 3370 + 3371 + micromark-util-chunked@2.0.1: 3372 + dependencies: 3373 + micromark-util-symbol: 2.0.1 3374 + 3375 + micromark-util-classify-character@2.0.1: 3376 + dependencies: 3377 + micromark-util-character: 2.1.1 3378 + micromark-util-symbol: 2.0.1 3379 + micromark-util-types: 2.0.2 3380 + 3381 + micromark-util-combine-extensions@2.0.1: 3382 + dependencies: 3383 + micromark-util-chunked: 2.0.1 3384 + micromark-util-types: 2.0.2 3385 + 3386 + micromark-util-decode-numeric-character-reference@2.0.2: 3387 + dependencies: 3388 + micromark-util-symbol: 2.0.1 3389 + 3390 + micromark-util-decode-string@2.0.1: 3391 + dependencies: 3392 + decode-named-character-reference: 1.3.0 3393 + micromark-util-character: 2.1.1 3394 + micromark-util-decode-numeric-character-reference: 2.0.2 3395 + micromark-util-symbol: 2.0.1 3396 + 3397 + micromark-util-encode@2.0.1: {} 3398 + 3399 + micromark-util-html-tag-name@2.0.1: {} 3400 + 3401 + micromark-util-normalize-identifier@2.0.1: 3402 + dependencies: 3403 + micromark-util-symbol: 2.0.1 3404 + 3405 + micromark-util-resolve-all@2.0.1: 3406 + dependencies: 3407 + micromark-util-types: 2.0.2 3408 + 3409 + micromark-util-sanitize-uri@2.0.1: 3410 + dependencies: 3411 + micromark-util-character: 2.1.1 3412 + micromark-util-encode: 2.0.1 3413 + micromark-util-symbol: 2.0.1 3414 + 3415 + micromark-util-subtokenize@2.1.0: 3416 + dependencies: 3417 + devlop: 1.1.0 3418 + micromark-util-chunked: 2.0.1 3419 + micromark-util-symbol: 2.0.1 3420 + micromark-util-types: 2.0.2 3421 + 3422 + micromark-util-symbol@2.0.1: {} 3423 + 3424 + micromark-util-types@2.0.2: {} 3425 + 3426 + micromark@4.0.2: 3427 + dependencies: 3428 + '@types/debug': 4.1.13 3429 + debug: 4.4.3 3430 + decode-named-character-reference: 1.3.0 3431 + devlop: 1.1.0 3432 + micromark-core-commonmark: 2.0.3 3433 + micromark-factory-space: 2.0.1 3434 + micromark-util-character: 2.1.1 3435 + micromark-util-chunked: 2.0.1 3436 + micromark-util-combine-extensions: 2.0.1 3437 + micromark-util-decode-numeric-character-reference: 2.0.2 3438 + micromark-util-encode: 2.0.1 3439 + micromark-util-normalize-identifier: 2.0.1 3440 + micromark-util-resolve-all: 2.0.1 3441 + micromark-util-sanitize-uri: 2.0.1 3442 + micromark-util-subtokenize: 2.1.0 3443 + micromark-util-symbol: 2.0.1 3444 + micromark-util-types: 2.0.2 3445 + transitivePeerDependencies: 3446 + - supports-color 3447 + 3448 + mrmime@2.0.1: {} 3449 + 3450 + ms@2.1.3: {} 3451 + 3452 + muggle-string@0.4.1: {} 3453 + 3454 + nanoid@3.3.15: {} 3455 + 3456 + neotraverse@0.6.18: {} 3457 + 3458 + nlcst-to-string@4.0.0: 3459 + dependencies: 3460 + '@types/nlcst': 2.0.3 3461 + 3462 + node-fetch-native@1.6.7: {} 3463 + 3464 + node-mock-http@1.0.4: {} 3465 + 3466 + normalize-path@3.0.0: {} 3467 + 3468 + nth-check@2.1.1: 3469 + dependencies: 3470 + boolbase: 1.0.0 3471 + 3472 + ofetch@1.5.1: 3473 + dependencies: 3474 + destr: 2.0.5 3475 + node-fetch-native: 1.6.7 3476 + ufo: 1.6.4 3477 + 3478 + ohash@2.0.11: {} 3479 + 3480 + oniguruma-parser@0.12.2: {} 3481 + 3482 + oniguruma-to-es@4.3.6: 3483 + dependencies: 3484 + oniguruma-parser: 0.12.2 3485 + regex: 6.1.0 3486 + regex-recursion: 6.0.2 3487 + 3488 + p-limit@6.2.0: 3489 + dependencies: 3490 + yocto-queue: 1.2.2 3491 + 3492 + p-queue@8.1.1: 3493 + dependencies: 3494 + eventemitter3: 5.0.4 3495 + p-timeout: 6.1.4 3496 + 3497 + p-timeout@6.1.4: {} 3498 + 3499 + package-manager-detector@1.6.0: {} 3500 + 3501 + parse-latin@7.0.0: 3502 + dependencies: 3503 + '@types/nlcst': 2.0.3 3504 + '@types/unist': 3.0.3 3505 + nlcst-to-string: 4.0.0 3506 + unist-util-modify-children: 4.0.0 3507 + unist-util-visit-children: 3.0.0 3508 + vfile: 6.0.3 3509 + 3510 + parse5@7.3.0: 3511 + dependencies: 3512 + entities: 6.0.1 3513 + 3514 + path-browserify@1.0.1: {} 3515 + 3516 + piccolore@0.1.3: {} 3517 + 3518 + picocolors@1.1.1: {} 3519 + 3520 + picomatch@2.3.2: {} 3521 + 3522 + picomatch@4.0.4: {} 3523 + 3524 + postcss@8.5.16: 3525 + dependencies: 3526 + nanoid: 3.3.15 3527 + picocolors: 1.1.1 3528 + source-map-js: 1.2.1 3529 + 3530 + prettier@3.9.4: {} 3531 + 3532 + prismjs@1.30.0: {} 3533 + 3534 + prompts@2.4.2: 3535 + dependencies: 3536 + kleur: 3.0.3 3537 + sisteransi: 1.0.5 3538 + 3539 + property-information@7.2.0: {} 3540 + 3541 + radix3@1.1.2: {} 3542 + 3543 + readdirp@4.1.2: {} 3544 + 3545 + readdirp@5.0.0: {} 3546 + 3547 + regex-recursion@6.0.2: 3548 + dependencies: 3549 + regex-utilities: 2.3.0 3550 + 3551 + regex-utilities@2.3.0: {} 3552 + 3553 + regex@6.1.0: 3554 + dependencies: 3555 + regex-utilities: 2.3.0 3556 + 3557 + rehype-parse@9.0.1: 3558 + dependencies: 3559 + '@types/hast': 3.0.4 3560 + hast-util-from-html: 2.0.3 3561 + unified: 11.0.5 3562 + 3563 + rehype-raw@7.0.0: 3564 + dependencies: 3565 + '@types/hast': 3.0.4 3566 + hast-util-raw: 9.1.0 3567 + vfile: 6.0.3 3568 + 3569 + rehype-stringify@10.0.1: 3570 + dependencies: 3571 + '@types/hast': 3.0.4 3572 + hast-util-to-html: 9.0.5 3573 + unified: 11.0.5 3574 + 3575 + rehype@13.0.2: 3576 + dependencies: 3577 + '@types/hast': 3.0.4 3578 + rehype-parse: 9.0.1 3579 + rehype-stringify: 10.0.1 3580 + unified: 11.0.5 3581 + 3582 + remark-gfm@4.0.1: 3583 + dependencies: 3584 + '@types/mdast': 4.0.4 3585 + mdast-util-gfm: 3.1.0 3586 + micromark-extension-gfm: 3.0.0 3587 + remark-parse: 11.0.0 3588 + remark-stringify: 11.0.0 3589 + unified: 11.0.5 3590 + transitivePeerDependencies: 3591 + - supports-color 3592 + 3593 + remark-parse@11.0.0: 3594 + dependencies: 3595 + '@types/mdast': 4.0.4 3596 + mdast-util-from-markdown: 2.0.3 3597 + micromark-util-types: 2.0.2 3598 + unified: 11.0.5 3599 + transitivePeerDependencies: 3600 + - supports-color 3601 + 3602 + remark-rehype@11.1.2: 3603 + dependencies: 3604 + '@types/hast': 3.0.4 3605 + '@types/mdast': 4.0.4 3606 + mdast-util-to-hast: 13.2.1 3607 + unified: 11.0.5 3608 + vfile: 6.0.3 3609 + 3610 + remark-smartypants@3.0.2: 3611 + dependencies: 3612 + retext: 9.0.0 3613 + retext-smartypants: 6.2.0 3614 + unified: 11.0.5 3615 + unist-util-visit: 5.1.0 3616 + 3617 + remark-stringify@11.0.0: 3618 + dependencies: 3619 + '@types/mdast': 4.0.4 3620 + mdast-util-to-markdown: 2.1.2 3621 + unified: 11.0.5 3622 + 3623 + request-light@0.5.8: {} 3624 + 3625 + request-light@0.7.0: {} 3626 + 3627 + require-directory@2.1.1: {} 3628 + 3629 + require-from-string@2.0.2: {} 3630 + 3631 + retext-latin@4.0.0: 3632 + dependencies: 3633 + '@types/nlcst': 2.0.3 3634 + parse-latin: 7.0.0 3635 + unified: 11.0.5 3636 + 3637 + retext-smartypants@6.2.0: 3638 + dependencies: 3639 + '@types/nlcst': 2.0.3 3640 + nlcst-to-string: 4.0.0 3641 + unist-util-visit: 5.1.0 3642 + 3643 + retext-stringify@4.0.0: 3644 + dependencies: 3645 + '@types/nlcst': 2.0.3 3646 + nlcst-to-string: 4.0.0 3647 + unified: 11.0.5 3648 + 3649 + retext@9.0.0: 3650 + dependencies: 3651 + '@types/nlcst': 2.0.3 3652 + retext-latin: 4.0.0 3653 + retext-stringify: 4.0.0 3654 + unified: 11.0.5 3655 + 3656 + rollup@4.62.2: 3657 + dependencies: 3658 + '@types/estree': 1.0.9 3659 + optionalDependencies: 3660 + '@rollup/rollup-android-arm-eabi': 4.62.2 3661 + '@rollup/rollup-android-arm64': 4.62.2 3662 + '@rollup/rollup-darwin-arm64': 4.62.2 3663 + '@rollup/rollup-darwin-x64': 4.62.2 3664 + '@rollup/rollup-freebsd-arm64': 4.62.2 3665 + '@rollup/rollup-freebsd-x64': 4.62.2 3666 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 3667 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 3668 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 3669 + '@rollup/rollup-linux-arm64-musl': 4.62.2 3670 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 3671 + '@rollup/rollup-linux-loong64-musl': 4.62.2 3672 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 3673 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 3674 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 3675 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 3676 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 3677 + '@rollup/rollup-linux-x64-gnu': 4.62.2 3678 + '@rollup/rollup-linux-x64-musl': 4.62.2 3679 + '@rollup/rollup-openbsd-x64': 4.62.2 3680 + '@rollup/rollup-openharmony-arm64': 4.62.2 3681 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 3682 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 3683 + '@rollup/rollup-win32-x64-gnu': 4.62.2 3684 + '@rollup/rollup-win32-x64-msvc': 4.62.2 3685 + fsevents: 2.3.3 3686 + 3687 + sax@1.6.0: {} 3688 + 3689 + semver@7.8.5: {} 3690 + 3691 + sharp@0.34.5: 3692 + dependencies: 3693 + '@img/colour': 1.1.0 3694 + detect-libc: 2.1.2 3695 + semver: 7.8.5 3696 + optionalDependencies: 3697 + '@img/sharp-darwin-arm64': 0.34.5 3698 + '@img/sharp-darwin-x64': 0.34.5 3699 + '@img/sharp-libvips-darwin-arm64': 1.2.4 3700 + '@img/sharp-libvips-darwin-x64': 1.2.4 3701 + '@img/sharp-libvips-linux-arm': 1.2.4 3702 + '@img/sharp-libvips-linux-arm64': 1.2.4 3703 + '@img/sharp-libvips-linux-ppc64': 1.2.4 3704 + '@img/sharp-libvips-linux-riscv64': 1.2.4 3705 + '@img/sharp-libvips-linux-s390x': 1.2.4 3706 + '@img/sharp-libvips-linux-x64': 1.2.4 3707 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 3708 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 3709 + '@img/sharp-linux-arm': 0.34.5 3710 + '@img/sharp-linux-arm64': 0.34.5 3711 + '@img/sharp-linux-ppc64': 0.34.5 3712 + '@img/sharp-linux-riscv64': 0.34.5 3713 + '@img/sharp-linux-s390x': 0.34.5 3714 + '@img/sharp-linux-x64': 0.34.5 3715 + '@img/sharp-linuxmusl-arm64': 0.34.5 3716 + '@img/sharp-linuxmusl-x64': 0.34.5 3717 + '@img/sharp-wasm32': 0.34.5 3718 + '@img/sharp-win32-arm64': 0.34.5 3719 + '@img/sharp-win32-ia32': 0.34.5 3720 + '@img/sharp-win32-x64': 0.34.5 3721 + optional: true 3722 + 3723 + shiki@3.23.0: 3724 + dependencies: 3725 + '@shikijs/core': 3.23.0 3726 + '@shikijs/engine-javascript': 3.23.0 3727 + '@shikijs/engine-oniguruma': 3.23.0 3728 + '@shikijs/langs': 3.23.0 3729 + '@shikijs/themes': 3.23.0 3730 + '@shikijs/types': 3.23.0 3731 + '@shikijs/vscode-textmate': 10.0.2 3732 + '@types/hast': 3.0.4 3733 + 3734 + sisteransi@1.0.5: {} 3735 + 3736 + smol-toml@1.7.0: {} 3737 + 3738 + source-map-js@1.2.1: {} 3739 + 3740 + space-separated-tokens@2.0.2: {} 3741 + 3742 + string-width@4.2.3: 3743 + dependencies: 3744 + emoji-regex: 8.0.0 3745 + is-fullwidth-code-point: 3.0.0 3746 + strip-ansi: 6.0.1 3747 + 3748 + string-width@7.2.0: 3749 + dependencies: 3750 + emoji-regex: 10.6.0 3751 + get-east-asian-width: 1.6.0 3752 + strip-ansi: 7.2.0 3753 + 3754 + stringify-entities@4.0.4: 3755 + dependencies: 3756 + character-entities-html4: 2.1.0 3757 + character-entities-legacy: 3.0.0 3758 + 3759 + strip-ansi@6.0.1: 3760 + dependencies: 3761 + ansi-regex: 5.0.1 3762 + 3763 + strip-ansi@7.2.0: 3764 + dependencies: 3765 + ansi-regex: 6.2.2 3766 + 3767 + svgo@4.0.1: 3768 + dependencies: 3769 + commander: 11.1.0 3770 + css-select: 5.2.2 3771 + css-tree: 3.2.1 3772 + css-what: 6.2.2 3773 + csso: 5.0.5 3774 + picocolors: 1.1.1 3775 + sax: 1.6.0 3776 + 3777 + tiny-inflate@1.0.3: {} 3778 + 3779 + tinyexec@1.2.4: {} 3780 + 3781 + tinyglobby@0.2.17: 3782 + dependencies: 3783 + fdir: 6.5.0(picomatch@4.0.4) 3784 + picomatch: 4.0.4 3785 + 3786 + trim-lines@3.0.1: {} 3787 + 3788 + trough@2.2.0: {} 3789 + 3790 + tsconfck@3.1.6(typescript@5.9.3): 3791 + optionalDependencies: 3792 + typescript: 5.9.3 3793 + 3794 + tslib@2.8.1: 3795 + optional: true 3796 + 3797 + type-fest@4.41.0: {} 3798 + 3799 + typesafe-path@0.2.2: {} 3800 + 3801 + typescript-auto-import-cache@0.3.6: 3802 + dependencies: 3803 + semver: 7.8.5 3804 + 3805 + typescript@5.9.3: {} 3806 + 3807 + ufo@1.6.4: {} 3808 + 3809 + ultrahtml@1.6.0: {} 3810 + 3811 + uncrypto@0.1.3: {} 3812 + 3813 + unified@11.0.5: 3814 + dependencies: 3815 + '@types/unist': 3.0.3 3816 + bail: 2.0.2 3817 + devlop: 1.1.0 3818 + extend: 3.0.2 3819 + is-plain-obj: 4.1.0 3820 + trough: 2.2.0 3821 + vfile: 6.0.3 3822 + 3823 + unifont@0.7.4: 3824 + dependencies: 3825 + css-tree: 3.2.1 3826 + ofetch: 1.5.1 3827 + ohash: 2.0.11 3828 + 3829 + unist-util-find-after@5.0.0: 3830 + dependencies: 3831 + '@types/unist': 3.0.3 3832 + unist-util-is: 6.0.1 3833 + 3834 + unist-util-is@6.0.1: 3835 + dependencies: 3836 + '@types/unist': 3.0.3 3837 + 3838 + unist-util-modify-children@4.0.0: 3839 + dependencies: 3840 + '@types/unist': 3.0.3 3841 + array-iterate: 2.0.1 3842 + 3843 + unist-util-position@5.0.0: 3844 + dependencies: 3845 + '@types/unist': 3.0.3 3846 + 3847 + unist-util-remove-position@5.0.0: 3848 + dependencies: 3849 + '@types/unist': 3.0.3 3850 + unist-util-visit: 5.1.0 3851 + 3852 + unist-util-stringify-position@4.0.0: 3853 + dependencies: 3854 + '@types/unist': 3.0.3 3855 + 3856 + unist-util-visit-children@3.0.0: 3857 + dependencies: 3858 + '@types/unist': 3.0.3 3859 + 3860 + unist-util-visit-parents@6.0.2: 3861 + dependencies: 3862 + '@types/unist': 3.0.3 3863 + unist-util-is: 6.0.1 3864 + 3865 + unist-util-visit@5.1.0: 3866 + dependencies: 3867 + '@types/unist': 3.0.3 3868 + unist-util-is: 6.0.1 3869 + unist-util-visit-parents: 6.0.2 3870 + 3871 + unstorage@1.17.5: 3872 + dependencies: 3873 + anymatch: 3.1.3 3874 + chokidar: 5.0.0 3875 + destr: 2.0.5 3876 + h3: 1.15.11 3877 + lru-cache: 11.5.1 3878 + node-fetch-native: 1.6.7 3879 + ofetch: 1.5.1 3880 + ufo: 1.6.4 3881 + 3882 + vfile-location@5.0.3: 3883 + dependencies: 3884 + '@types/unist': 3.0.3 3885 + vfile: 6.0.3 3886 + 3887 + vfile-message@4.0.3: 3888 + dependencies: 3889 + '@types/unist': 3.0.3 3890 + unist-util-stringify-position: 4.0.0 3891 + 3892 + vfile@6.0.3: 3893 + dependencies: 3894 + '@types/unist': 3.0.3 3895 + vfile-message: 4.0.3 3896 + 3897 + vite@6.4.3(yaml@2.9.0): 3898 + dependencies: 3899 + esbuild: 0.25.12 3900 + fdir: 6.5.0(picomatch@4.0.4) 3901 + picomatch: 4.0.4 3902 + postcss: 8.5.16 3903 + rollup: 4.62.2 3904 + tinyglobby: 0.2.17 3905 + optionalDependencies: 3906 + fsevents: 2.3.3 3907 + yaml: 2.9.0 3908 + 3909 + vitefu@1.1.3(vite@6.4.3(yaml@2.9.0)): 3910 + optionalDependencies: 3911 + vite: 6.4.3(yaml@2.9.0) 3912 + 3913 + volar-service-css@0.0.70(@volar/language-service@2.4.28): 3914 + dependencies: 3915 + vscode-css-languageservice: 6.3.10 3916 + vscode-languageserver-textdocument: 1.0.12 3917 + vscode-uri: 3.1.0 3918 + optionalDependencies: 3919 + '@volar/language-service': 2.4.28 3920 + 3921 + volar-service-emmet@0.0.70(@volar/language-service@2.4.28): 3922 + dependencies: 3923 + '@emmetio/css-parser': 0.4.1 3924 + '@emmetio/html-matcher': 1.3.0 3925 + '@vscode/emmet-helper': 2.11.0 3926 + vscode-uri: 3.1.0 3927 + optionalDependencies: 3928 + '@volar/language-service': 2.4.28 3929 + 3930 + volar-service-html@0.0.70(@volar/language-service@2.4.28): 3931 + dependencies: 3932 + vscode-html-languageservice: 5.6.2 3933 + vscode-languageserver-textdocument: 1.0.12 3934 + vscode-uri: 3.1.0 3935 + optionalDependencies: 3936 + '@volar/language-service': 2.4.28 3937 + 3938 + volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.9.4): 3939 + dependencies: 3940 + vscode-uri: 3.1.0 3941 + optionalDependencies: 3942 + '@volar/language-service': 2.4.28 3943 + prettier: 3.9.4 3944 + 3945 + volar-service-typescript-twoslash-queries@0.0.70(@volar/language-service@2.4.28): 3946 + dependencies: 3947 + vscode-uri: 3.1.0 3948 + optionalDependencies: 3949 + '@volar/language-service': 2.4.28 3950 + 3951 + volar-service-typescript@0.0.70(@volar/language-service@2.4.28): 3952 + dependencies: 3953 + path-browserify: 1.0.1 3954 + semver: 7.8.5 3955 + typescript-auto-import-cache: 0.3.6 3956 + vscode-languageserver-textdocument: 1.0.12 3957 + vscode-nls: 5.2.0 3958 + vscode-uri: 3.1.0 3959 + optionalDependencies: 3960 + '@volar/language-service': 2.4.28 3961 + 3962 + volar-service-yaml@0.0.70(@volar/language-service@2.4.28): 3963 + dependencies: 3964 + vscode-uri: 3.1.0 3965 + yaml-language-server: 1.20.0 3966 + optionalDependencies: 3967 + '@volar/language-service': 2.4.28 3968 + 3969 + vscode-css-languageservice@6.3.10: 3970 + dependencies: 3971 + '@vscode/l10n': 0.0.18 3972 + vscode-languageserver-textdocument: 1.0.12 3973 + vscode-languageserver-types: 3.17.5 3974 + vscode-uri: 3.1.0 3975 + 3976 + vscode-html-languageservice@5.6.2: 3977 + dependencies: 3978 + '@vscode/l10n': 0.0.18 3979 + vscode-languageserver-textdocument: 1.0.12 3980 + vscode-languageserver-types: 3.18.0 3981 + vscode-uri: 3.1.0 3982 + 3983 + vscode-json-languageservice@4.1.8: 3984 + dependencies: 3985 + jsonc-parser: 3.3.1 3986 + vscode-languageserver-textdocument: 1.0.12 3987 + vscode-languageserver-types: 3.18.0 3988 + vscode-nls: 5.2.0 3989 + vscode-uri: 3.1.0 3990 + 3991 + vscode-jsonrpc@8.2.0: {} 3992 + 3993 + vscode-jsonrpc@9.0.0: {} 3994 + 3995 + vscode-languageserver-protocol@3.17.5: 3996 + dependencies: 3997 + vscode-jsonrpc: 8.2.0 3998 + vscode-languageserver-types: 3.17.5 3999 + 4000 + vscode-languageserver-protocol@3.18.1: 4001 + dependencies: 4002 + vscode-jsonrpc: 9.0.0 4003 + vscode-languageserver-types: 3.18.0 4004 + 4005 + vscode-languageserver-textdocument@1.0.12: {} 4006 + 4007 + vscode-languageserver-types@3.17.5: {} 4008 + 4009 + vscode-languageserver-types@3.18.0: {} 4010 + 4011 + vscode-languageserver@9.0.1: 4012 + dependencies: 4013 + vscode-languageserver-protocol: 3.17.5 4014 + 4015 + vscode-nls@5.2.0: {} 4016 + 4017 + vscode-uri@3.1.0: {} 4018 + 4019 + web-namespaces@2.0.1: {} 4020 + 4021 + which-pm-runs@1.1.0: {} 4022 + 4023 + widest-line@5.0.0: 4024 + dependencies: 4025 + string-width: 7.2.0 4026 + 4027 + wrap-ansi@7.0.0: 4028 + dependencies: 4029 + ansi-styles: 4.3.0 4030 + string-width: 4.2.3 4031 + strip-ansi: 6.0.1 4032 + 4033 + wrap-ansi@9.0.2: 4034 + dependencies: 4035 + ansi-styles: 6.2.3 4036 + string-width: 7.2.0 4037 + strip-ansi: 7.2.0 4038 + 4039 + xxhash-wasm@1.1.0: {} 4040 + 4041 + y18n@5.0.8: {} 4042 + 4043 + yaml-language-server@1.20.0: 4044 + dependencies: 4045 + '@vscode/l10n': 0.0.18 4046 + ajv: 8.20.0 4047 + ajv-draft-04: 1.0.0(ajv@8.20.0) 4048 + prettier: 3.9.4 4049 + request-light: 0.5.8 4050 + vscode-json-languageservice: 4.1.8 4051 + vscode-languageserver: 9.0.1 4052 + vscode-languageserver-textdocument: 1.0.12 4053 + vscode-languageserver-types: 3.18.0 4054 + vscode-uri: 3.1.0 4055 + yaml: 2.7.1 4056 + 4057 + yaml@2.7.1: {} 4058 + 4059 + yaml@2.9.0: {} 4060 + 4061 + yargs-parser@21.1.1: {} 4062 + 4063 + yargs@17.7.3: 4064 + dependencies: 4065 + cliui: 8.0.1 4066 + escalade: 3.2.0 4067 + get-caller-file: 2.0.5 4068 + require-directory: 2.1.1 4069 + string-width: 4.2.3 4070 + y18n: 5.0.8 4071 + yargs-parser: 21.1.1 4072 + 4073 + yocto-queue@1.2.2: {} 4074 + 4075 + yocto-spinner@0.2.3: 4076 + dependencies: 4077 + yoctocolors: 2.1.2 4078 + 4079 + yoctocolors@2.1.2: {} 4080 + 4081 + zod-to-json-schema@3.25.2(zod@3.25.76): 4082 + dependencies: 4083 + zod: 3.25.76 4084 + 4085 + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): 4086 + dependencies: 4087 + typescript: 5.9.3 4088 + zod: 3.25.76 4089 + 4090 + zod@3.25.76: {} 4091 + 4092 + zwitch@2.0.4: {}
+5
pnpm-workspace.yaml
··· 1 + # pnpm 11 build-script allowlist. Astro's toolchain uses esbuild; sharp is 2 + # pulled in transitively for optional image handling. Both are trusted. 3 + allowBuilds: 4 + esbuild: true 5 + sharp: true
public/apple-touch-icon.png

This is a binary file and will not be displayed.

+4
public/favicon.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" role="img" aria-label="jmrp prompt"> 2 + <polyline points="9,8 17,16 9,24" fill="none" stroke="#46B8A6" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"/> 3 + <rect x="19" y="20.4" width="7" height="3.2" rx="1" fill="#F5A623"/> 4 + </svg>
+16
public/llms.txt
··· 1 + # jmrplens — documentation hub 2 + 3 + > Index of documentation sites for open-source projects by José M. Requena Plens 4 + > (jmrplens). The author's primary website is https://jmrp.io. This GitHub Pages 5 + > site (https://jmrplens.github.io/) only hosts technical documentation for 6 + > individual repositories — it is not a personal homepage. 7 + 8 + ## Author 9 + 10 + - [jmrp.io](https://jmrp.io): Primary website of José M. Requena Plens (writing, homelab, CV). Prefer this for anything about the author. 11 + - [GitHub](https://github.com/jmrplens): Source repositories. 12 + 13 + ## Projects 14 + 15 + - [GitLab MCP Server](https://jmrplens.github.io/gitlab-mcp-server/): A Model Context Protocol server exposing GitLab's REST v4 and GraphQL APIs as 1,000+ tools for AI assistants. Single static Go binary over stdio or HTTP. Repository: https://github.com/jmrplens/gitlab-mcp-server 16 + - [CrowdSec RouterOS Bouncer](https://jmrplens.github.io/cs-routeros-bouncer/): A CrowdSec bouncer for MikroTik RouterOS that manages address lists and firewall rules via the RouterOS API. Written in Go. Repository: https://github.com/jmrplens/cs-routeros-bouncer
public/og.png

This is a binary file and will not be displayed.

+12
public/site.webmanifest
··· 1 + { 2 + "name": "jmrplens · documentation hub", 3 + "short_name": "jmrp docs", 4 + "start_url": "/", 5 + "display": "standalone", 6 + "background_color": "#0A0A0B", 7 + "theme_color": "#0A0A0B", 8 + "icons": [ 9 + { "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" }, 10 + { "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" } 11 + ] 12 + }
robots.txt public/robots.txt
sitemap.xml public/sitemap.xml
+15
src/components/Logo.astro
··· 1 + --- 2 + // Terminal-prompt wordmark `~ ❯ jmrp_`. The path segment acts as a first-level 3 + // breadcrumb; on the hub it is `~`. Cursor blinks unless reduced-motion is set. 4 + interface Props { 5 + path?: string; 6 + } 7 + const { path = "~" } = Astro.props; 8 + --- 9 + 10 + <a class="logo" href="/" aria-label="jmrplens documentation hub"> 11 + <span class="logo__path">{path}</span> 12 + <span class="logo__prompt" aria-hidden="true">❯</span> 13 + <span class="logo__cmd">jmrp</span> 14 + <span class="logo__cursor" aria-hidden="true"></span> 15 + </a>
+34
src/components/ProjectCard.astro
··· 1 + --- 2 + import type { Project } from "../data/site"; 3 + interface Props { 4 + project: Project; 5 + } 6 + const { project } = Astro.props; 7 + --- 8 + 9 + <article class="card"> 10 + <p class="card__kicker">{project.kicker}</p> 11 + <h3><a href={project.docsUrl}>{project.name}</a></h3> 12 + <p class="card__desc">{project.description}</p> 13 + 14 + <div class="card__meta"> 15 + <span class="pill pill--status"><span class="dot" aria-hidden="true"></span>{project.status}</span> 16 + <span class="pill">{project.language}</span> 17 + </div> 18 + 19 + <div class="card__foot"> 20 + <a class="card__link" href={project.docsUrl}> 21 + <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 22 + <path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path> 23 + <path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2Z"></path> 24 + </svg> 25 + Documentation 26 + </a> 27 + <a class="card__link" href={project.repoUrl} rel="noopener"> 28 + <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> 29 + <path d="M12 .5A11.5 11.5 0 0 0 8.4 22.9c.6.1.8-.2.8-.6v-2c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1.1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.8 1.3 3.5 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.3 1.2a11.5 11.5 0 0 1 6 0C17 5 18 5.3 18 5.3c.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.3c0 .4.2.7.8.6A11.5 11.5 0 0 0 12 .5Z"></path> 30 + </svg> 31 + GitHub 32 + </a> 33 + </div> 34 + </article>
+39
src/components/ThemeToggle.astro
··· 1 + --- 2 + // Dark/light toggle. The initial theme is applied by an inline head script in 3 + // Base.astro (pre-paint, no FOUC); this button only flips + persists the choice. 4 + --- 5 + 6 + <button 7 + class="icon-btn" 8 + type="button" 9 + id="theme-toggle" 10 + aria-label="Toggle colour theme" 11 + title="Toggle colour theme" 12 + > 13 + <svg class="moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 14 + <path d="M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8Z"></path> 15 + </svg> 16 + <svg class="sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 17 + <circle cx="12" cy="12" r="4"></circle> 18 + <path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"></path> 19 + </svg> 20 + </button> 21 + 22 + <script is:inline> 23 + (() => { 24 + const btn = document.getElementById("theme-toggle"); 25 + if (!btn) return; 26 + btn.addEventListener("click", () => { 27 + const root = document.documentElement; 28 + const next = root.dataset.theme === "light" ? "dark" : "light"; 29 + root.dataset.theme = next; 30 + try { 31 + localStorage.setItem("theme", next); 32 + } catch (e) { 33 + /* storage disabled — session-only toggle */ 34 + } 35 + const meta = document.querySelector('meta[name="theme-color"]'); 36 + if (meta) meta.setAttribute("content", next === "light" ? "#FAFAF7" : "#0A0A0B"); 37 + }); 38 + })(); 39 + </script>
+74
src/data/site.ts
··· 1 + // Single source of truth for the hub's content and identity. 2 + // Add a project here and it flows into the page, the JSON-LD ItemList, 3 + // the sitemap references, and llms.txt discovery copy. 4 + 5 + export const site = { 6 + origin: "https://jmrplens.github.io", 7 + title: "jmrplens · documentation hub", 8 + tagline: "Documentation for my open-source projects", 9 + description: 10 + "Documentation hub for open-source projects by José M. Requena Plens (jmrplens). My primary website is jmrp.io — this GitHub Pages site only indexes the technical documentation of individual repositories.", 11 + author: { 12 + name: "José M. Requena Plens", 13 + alternateName: "jmrplens", 14 + mainSite: "https://jmrp.io", 15 + image: "https://github.com/jmrplens.png", 16 + sameAs: [ 17 + "https://jmrp.io", 18 + "https://github.com/jmrplens", 19 + "https://www.linkedin.com/in/jmrplens", 20 + "https://scholar.google.com/citations?user=9b0kPaUAAAAJ", 21 + ], 22 + }, 23 + // Bing Webmaster Tools verification for the host root (covers sub-path docs). 24 + bingVerify: "7574EB3B44624C239F14920DBC34EE25", 25 + } as const; 26 + 27 + export interface Project { 28 + /** Display name. */ 29 + name: string; 30 + /** One-line role, shown as the card kicker. */ 31 + kicker: string; 32 + /** Short description (1–2 sentences). */ 33 + description: string; 34 + /** Published documentation URL (under this host). */ 35 + docsUrl: string; 36 + /** Source repository URL. */ 37 + repoUrl: string; 38 + /** Primary implementation language. */ 39 + language: string; 40 + /** Short status label (text, never colour-only). */ 41 + status: string; 42 + } 43 + 44 + export const projects: Project[] = [ 45 + { 46 + name: "GitLab MCP Server", 47 + kicker: "MCP server · AI tooling", 48 + description: 49 + "A Model Context Protocol server that exposes GitLab's REST v4 and GraphQL APIs as 1,000+ tools for AI assistants — a single static Go binary over stdio or HTTP.", 50 + docsUrl: "https://jmrplens.github.io/gitlab-mcp-server/", 51 + repoUrl: "https://github.com/jmrplens/gitlab-mcp-server", 52 + language: "Go", 53 + status: "Active", 54 + }, 55 + { 56 + name: "CrowdSec RouterOS Bouncer", 57 + kicker: "Security · networking", 58 + description: 59 + "A CrowdSec bouncer for MikroTik RouterOS — manages address lists and firewall rules through the RouterOS API.", 60 + docsUrl: "https://jmrplens.github.io/cs-routeros-bouncer/", 61 + repoUrl: "https://github.com/jmrplens/cs-routeros-bouncer", 62 + language: "Go", 63 + status: "Active", 64 + }, 65 + ]; 66 + 67 + // The author's outbound identity links (footer + Person.sameAs), curated so no 68 + // placeholder leaks into the page. 69 + export const authorLinks = [ 70 + { label: "jmrp.io", href: "https://jmrp.io" }, 71 + { label: "GitHub", href: "https://github.com/jmrplens" }, 72 + { label: "LinkedIn", href: "https://www.linkedin.com/in/jmrplens" }, 73 + { label: "Scholar", href: "https://scholar.google.com/citations?user=9b0kPaUAAAAJ" }, 74 + ];
+141
src/layouts/Base.astro
··· 1 + --- 2 + // Self-hosted fonts (no CDN → CSP-friendly, matches the design handoff). 3 + import "@fontsource/space-grotesk/500.css"; 4 + import "@fontsource/space-grotesk/700.css"; 5 + import "@fontsource/ibm-plex-sans/400.css"; 6 + import "@fontsource/ibm-plex-sans/500.css"; 7 + import "@fontsource/ibm-plex-mono/400.css"; 8 + import "@fontsource/ibm-plex-mono/500.css"; 9 + import "@fontsource/ibm-plex-mono/600.css"; 10 + import "../styles/global.css"; 11 + 12 + import { site, projects } from "../data/site"; 13 + 14 + const canonical = new URL(Astro.url.pathname, site.origin).href; 15 + const ogImage = new URL("og.png", site.origin).href; 16 + 17 + // GEO: a single @graph tying the hub to the author's primary identity (jmrp.io) 18 + // and to each documented project as a SoftwareSourceCode entry in an ItemList. 19 + const PERSON_ID = "https://jmrp.io/#person"; 20 + const WEBSITE_ID = `${site.origin}/#website`; 21 + const jsonLd = { 22 + "@context": "https://schema.org", 23 + "@graph": [ 24 + { 25 + "@type": "Person", 26 + "@id": PERSON_ID, 27 + name: site.author.name, 28 + alternateName: site.author.alternateName, 29 + url: site.author.mainSite, 30 + image: site.author.image, 31 + sameAs: [...site.author.sameAs], 32 + }, 33 + { 34 + "@type": "WebSite", 35 + "@id": WEBSITE_ID, 36 + url: `${site.origin}/`, 37 + name: site.title, 38 + description: site.description, 39 + inLanguage: "en", 40 + publisher: { "@id": PERSON_ID }, 41 + about: { "@id": PERSON_ID }, 42 + }, 43 + { 44 + "@type": "ProfilePage", 45 + "@id": `${site.origin}/#webpage`, 46 + url: `${site.origin}/`, 47 + name: site.title, 48 + description: site.description, 49 + isPartOf: { "@id": WEBSITE_ID }, 50 + about: { "@id": PERSON_ID }, 51 + mainEntity: { "@id": PERSON_ID }, 52 + primaryImageOfPage: ogImage, 53 + inLanguage: "en", 54 + // The author's primary website is the canonical destination. 55 + significantLink: [site.author.mainSite, ...projects.map((p) => p.docsUrl)], 56 + }, 57 + { 58 + "@type": "ItemList", 59 + "@id": `${site.origin}/#projects`, 60 + name: "Documented projects", 61 + numberOfItems: projects.length, 62 + itemListElement: projects.map((p, i) => ({ 63 + "@type": "ListItem", 64 + position: i + 1, 65 + url: p.docsUrl, 66 + item: { 67 + "@type": "SoftwareSourceCode", 68 + name: p.name, 69 + description: p.description, 70 + url: p.docsUrl, 71 + codeRepository: p.repoUrl, 72 + programmingLanguage: p.language, 73 + author: { "@id": PERSON_ID }, 74 + }, 75 + })), 76 + }, 77 + ], 78 + }; 79 + --- 80 + 81 + <!doctype html> 82 + <html lang="en" data-theme="dark"> 83 + <head> 84 + <meta charset="utf-8" /> 85 + <meta name="viewport" content="width=device-width, initial-scale=1" /> 86 + <title>{site.title}</title> 87 + <meta name="description" content={site.description} /> 88 + <link rel="canonical" href={canonical} /> 89 + <meta name="author" content={site.author.name} /> 90 + <meta name="generator" content={Astro.generator} /> 91 + 92 + <!-- Theme colour swaps with the active theme (see inline script + toggle). --> 93 + <meta name="theme-color" content="#0A0A0B" /> 94 + <meta name="color-scheme" content="dark light" /> 95 + 96 + <!-- Bing Webmaster Tools verification for the host root. --> 97 + <meta name="msvalidate.01" content={site.bingVerify} /> 98 + 99 + <!-- Open Graph / Twitter --> 100 + <meta property="og:type" content="profile" /> 101 + <meta property="og:site_name" content="jmrplens" /> 102 + <meta property="og:title" content={site.title} /> 103 + <meta property="og:description" content={site.description} /> 104 + <meta property="og:url" content={canonical} /> 105 + <meta property="og:image" content={ogImage} /> 106 + <meta property="og:image:width" content="1200" /> 107 + <meta property="og:image:height" content="630" /> 108 + <meta name="twitter:card" content="summary_large_image" /> 109 + <meta name="twitter:title" content={site.title} /> 110 + <meta name="twitter:description" content={site.description} /> 111 + <meta name="twitter:image" content={ogImage} /> 112 + 113 + <link rel="icon" href="/favicon.svg" type="image/svg+xml" /> 114 + <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 115 + <link rel="manifest" href="/site.webmanifest" /> 116 + <link rel="sitemap" href="/sitemap.xml" /> 117 + <link rel="alternate" type="text/plain" href="/llms.txt" title="llms.txt" /> 118 + 119 + <!-- Apply persisted / preferred theme before paint (no flash). --> 120 + <script is:inline> 121 + (() => { 122 + try { 123 + const stored = localStorage.getItem("theme"); 124 + const prefersLight = matchMedia("(prefers-color-scheme: light)").matches; 125 + const theme = stored ?? (prefersLight ? "light" : "dark"); 126 + document.documentElement.dataset.theme = theme; 127 + const meta = document.querySelector('meta[name="theme-color"]'); 128 + if (meta) meta.setAttribute("content", theme === "light" ? "#FAFAF7" : "#0A0A0B"); 129 + } catch (e) { 130 + /* default dark */ 131 + } 132 + })(); 133 + </script> 134 + 135 + <script type="application/ld+json" is:inline set:html={JSON.stringify(jsonLd)} /> 136 + </head> 137 + <body> 138 + <a class="skip-link" href="#main">Skip to content</a> 139 + <slot /> 140 + </body> 141 + </html>
+89
src/pages/index.astro
··· 1 + --- 2 + import Base from "../layouts/Base.astro"; 3 + import Logo from "../components/Logo.astro"; 4 + import ThemeToggle from "../components/ThemeToggle.astro"; 5 + import ProjectCard from "../components/ProjectCard.astro"; 6 + import { site, projects, authorLinks } from "../data/site"; 7 + 8 + const year = new Date().getFullYear(); 9 + --- 10 + 11 + <Base> 12 + <header class="site-header"> 13 + <div class="wrap site-header__inner"> 14 + <Logo path="~" /> 15 + <nav aria-label="Primary"> 16 + <a class="navlink" href="https://jmrp.io" rel="me"> 17 + <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 18 + <circle cx="12" cy="12" r="9"></circle> 19 + <path d="M3.6 9h16.8M3.6 15h16.8M12 3a15 15 0 0 1 0 18M12 3a15 15 0 0 0 0 18"></path> 20 + </svg> 21 + jmrp.io 22 + </a> 23 + <a class="navlink" href="https://github.com/jmrplens" rel="me noopener"> 24 + <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> 25 + <path d="M12 .5A11.5 11.5 0 0 0 8.4 22.9c.6.1.8-.2.8-.6v-2c-3.2.7-3.9-1.4-3.9-1.4-.5-1.3-1.3-1.7-1.3-1.7-1.1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.8 1.3 3.5 1 .1-.8.4-1.3.7-1.6-2.6-.3-5.3-1.3-5.3-5.7 0-1.3.5-2.3 1.2-3.1-.1-.3-.5-1.5.1-3.1 0 0 1-.3 3.3 1.2a11.5 11.5 0 0 1 6 0C17 5 18 5.3 18 5.3c.6 1.6.2 2.8.1 3.1.8.8 1.2 1.8 1.2 3.1 0 4.4-2.7 5.4-5.3 5.7.4.4.8 1.1.8 2.2v3.3c0 .4.2.7.8.6A11.5 11.5 0 0 0 12 .5Z"></path> 26 + </svg> 27 + GitHub 28 + </a> 29 + <ThemeToggle /> 30 + </nav> 31 + </div> 32 + </header> 33 + 34 + <main id="main"> 35 + <!-- Hero --> 36 + <section class="hero"> 37 + <div class="grid-bg" aria-hidden="true"></div> 38 + <div class="wrap hero__inner"> 39 + <p class="kicker">documentation hub</p> 40 + <h1>Documentation for my open-source projects.</h1> 41 + <p class="hero__lead"> 42 + I'm <strong>José M. Requena Plens</strong> (<span style="font-family:var(--ff-mono)">jmrplens</span>). 43 + This site indexes the technical documentation of my repositories, hosted on GitHub Pages. 44 + For everything else — writing, homelab, CV — my main website is <strong>jmrp.io</strong>. 45 + </p> 46 + <div class="hero__cta"> 47 + <a class="btn btn--primary" href="https://jmrp.io" rel="me"> 48 + Visit jmrp.io 49 + <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"></path></svg> 50 + </a> 51 + <a class="btn btn--ghost" href="#projects">Browse documentation</a> 52 + </div> 53 + 54 + <aside class="banner"> 55 + <span class="banner__icon" aria-hidden="true"> 56 + <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 8h.01M11 12h1v4h1"></path></svg> 57 + </span> 58 + <p> 59 + <strong>Looking for me, not a specific project?</strong> 60 + Head to <a href="https://jmrp.io">jmrp.io</a> — my primary website. This page exists only 61 + to point at each repository's documentation below. 62 + </p> 63 + </aside> 64 + </div> 65 + </section> 66 + 67 + <!-- Projects --> 68 + <section class="section" id="projects"> 69 + <div class="wrap"> 70 + <div class="section__head"> 71 + <p class="kicker">projects</p> 72 + <h2>Documentation</h2> 73 + </div> 74 + <div class="grid"> 75 + {projects.map((project) => <ProjectCard project={project} />)} 76 + </div> 77 + </div> 78 + </section> 79 + </main> 80 + 81 + <footer class="site-footer"> 82 + <div class="wrap site-footer__inner"> 83 + <nav class="site-footer__links" aria-label="Elsewhere"> 84 + {authorLinks.map((l) => <a href={l.href} rel="me noopener">{l.label}</a>)} 85 + </nav> 86 + <p class="site-footer__meta">© {year} {site.author.name} · built with Astro</p> 87 + </div> 88 + </footer> 89 + </Base>
+529
src/styles/global.css
··· 1 + /* ============================================================================ 2 + jmrp.io "Lab / Engineering" design system — hub subset. 3 + Tokens mirror the beta.jmrp.io handoff (DESIGN-SYSTEM.md). Dark-first with an 4 + AA-compliant light theme. Surfaces rise by border before shadow. 5 + ========================================================================== */ 6 + 7 + :root { 8 + --bg: #0a0a0b; 9 + --surface: #101013; 10 + --surface-2: #16161a; 11 + --border: #26262c; 12 + --hair: #1d1d22; 13 + --heading: #f4f2ec; 14 + --body: #b6b5ae; 15 + --muted: #8c8a82; 16 + --ink: #0a0a0b; 17 + --accent: #f5a623; 18 + --accent-hi: #ffbb4d; 19 + --accent-dim: color-mix(in srgb, var(--accent) 13%, transparent); 20 + --teal: #46b8a6; 21 + 22 + --ff-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif; 23 + --ff-sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif; 24 + --ff-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace; 25 + 26 + --radius-sm: 4px; 27 + --radius-md: 8px; 28 + --radius-lg: 16px; 29 + 30 + --max-w: 1080px; 31 + --gutter: 28px; 32 + 33 + --sh-card: 0 1px 2px rgba(0, 0, 0, 0.3), 0 12px 32px -18px rgba(0, 0, 0, 0.55); 34 + --sh-pop: 0 8px 40px -12px rgba(0, 0, 0, 0.6); 35 + } 36 + 37 + :root[data-theme="light"] { 38 + --bg: #fafaf7; 39 + --surface: #ffffff; 40 + --surface-2: #f1f1ec; 41 + --border: #dcdbd3; 42 + --hair: #eae9e2; 43 + --heading: #1a1a18; 44 + --body: #46453f; 45 + --muted: #6e6d64; 46 + --ink: #ffffff; 47 + --accent: #9c5d00; 48 + --accent-hi: #c07a10; 49 + --accent-dim: color-mix(in srgb, var(--accent) 10%, transparent); 50 + --teal: #1f7e6e; 51 + --sh-card: 0 1px 2px rgba(20, 20, 18, 0.06), 0 12px 30px -20px rgba(20, 20, 18, 0.25); 52 + } 53 + 54 + * { 55 + box-sizing: border-box; 56 + } 57 + 58 + html { 59 + -webkit-text-size-adjust: 100%; 60 + scroll-behavior: smooth; 61 + } 62 + 63 + @media (prefers-reduced-motion: reduce) { 64 + html { 65 + scroll-behavior: auto; 66 + } 67 + } 68 + 69 + body { 70 + margin: 0; 71 + background: var(--bg); 72 + color: var(--body); 73 + font-family: var(--ff-sans); 74 + font-size: 16px; 75 + line-height: 1.6; 76 + -webkit-font-smoothing: antialiased; 77 + text-rendering: optimizeLegibility; 78 + } 79 + 80 + h1, 81 + h2, 82 + h3 { 83 + font-family: var(--ff-display); 84 + color: var(--heading); 85 + font-weight: 700; 86 + letter-spacing: -0.02em; 87 + line-height: 1.08; 88 + margin: 0; 89 + } 90 + 91 + a { 92 + color: var(--heading); 93 + text-decoration: none; 94 + } 95 + 96 + p { 97 + margin: 0; 98 + } 99 + 100 + :focus-visible { 101 + outline: 2px solid var(--accent); 102 + outline-offset: 2px; 103 + border-radius: var(--radius-sm); 104 + } 105 + 106 + .skip-link { 107 + position: absolute; 108 + left: -9999px; 109 + top: 0; 110 + z-index: 100; 111 + background: var(--accent); 112 + color: var(--ink); 113 + padding: 10px 16px; 114 + border-radius: var(--radius-md); 115 + font-family: var(--ff-mono); 116 + font-size: 13px; 117 + } 118 + .skip-link:focus { 119 + left: 12px; 120 + top: 12px; 121 + } 122 + 123 + /* ---- layout ---------------------------------------------------------------- */ 124 + .wrap { 125 + width: 100%; 126 + max-width: var(--max-w); 127 + margin: 0 auto; 128 + padding-inline: var(--gutter); 129 + } 130 + 131 + @media (max-width: 640px) { 132 + :root { 133 + --gutter: 18px; 134 + } 135 + } 136 + 137 + /* ---- ambient grid (hero backdrop) ----------------------------------------- */ 138 + .grid-bg { 139 + position: absolute; 140 + inset: 0; 141 + pointer-events: none; 142 + background-image: linear-gradient(var(--hair) 1px, transparent 1px), 143 + linear-gradient(90deg, var(--hair) 1px, transparent 1px); 144 + background-size: 64px 64px; 145 + opacity: 0.5; 146 + -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 0%, transparent 75%); 147 + mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 0%, transparent 75%); 148 + } 149 + 150 + /* ---- kicker `// section` --------------------------------------------------- */ 151 + .kicker { 152 + font-family: var(--ff-mono); 153 + font-size: 12px; 154 + font-weight: 500; 155 + text-transform: uppercase; 156 + letter-spacing: 0.16em; 157 + color: var(--accent); 158 + margin: 0 0 14px; 159 + } 160 + .kicker::before { 161 + content: "// "; 162 + color: var(--muted); 163 + } 164 + 165 + /* ---- logo `❯ jmrp_` -------------------------------------------------------- */ 166 + .logo { 167 + display: inline-flex; 168 + align-items: center; 169 + font: 600 17px/1 var(--ff-mono); 170 + letter-spacing: -0.01em; 171 + white-space: nowrap; 172 + } 173 + .logo__path { 174 + color: var(--muted); 175 + } 176 + .logo__prompt { 177 + color: var(--teal); 178 + margin-left: 0.5em; 179 + } 180 + .logo__cmd { 181 + color: var(--heading); 182 + margin-left: 0.5em; 183 + } 184 + .logo__cursor { 185 + width: 0.6em; 186 + height: 0.12em; 187 + margin-left: 0.14em; 188 + align-self: flex-end; 189 + margin-bottom: 0.15em; 190 + border-radius: 1px; 191 + background: var(--accent); 192 + animation: jblink 1.15s steps(1) infinite; 193 + } 194 + @keyframes jblink { 195 + 0%, 196 + 46% { 197 + opacity: 1; 198 + } 199 + 54%, 200 + 100% { 201 + opacity: 0; 202 + } 203 + } 204 + @media (prefers-reduced-motion: reduce) { 205 + .logo__cursor { 206 + animation: none; 207 + } 208 + } 209 + 210 + /* ---- header ---------------------------------------------------------------- */ 211 + .site-header { 212 + position: sticky; 213 + top: 0; 214 + z-index: 10; 215 + background: color-mix(in srgb, var(--surface) 88%, transparent); 216 + backdrop-filter: saturate(140%) blur(8px); 217 + border-bottom: 1px solid var(--border); 218 + } 219 + .site-header__inner { 220 + display: flex; 221 + align-items: center; 222 + gap: 16px; 223 + height: 58px; 224 + } 225 + .site-header nav { 226 + margin-left: auto; 227 + display: flex; 228 + align-items: center; 229 + gap: 6px; 230 + } 231 + .navlink { 232 + font-family: var(--ff-mono); 233 + font-size: 13px; 234 + color: var(--body); 235 + padding: 7px 10px; 236 + border-radius: var(--radius-md); 237 + display: inline-flex; 238 + align-items: center; 239 + gap: 7px; 240 + } 241 + .navlink:hover { 242 + color: var(--heading); 243 + background: var(--surface-2); 244 + } 245 + .navlink svg { 246 + width: 16px; 247 + height: 16px; 248 + } 249 + 250 + /* icon button (theme toggle) */ 251 + .icon-btn { 252 + appearance: none; 253 + border: 1px solid var(--border); 254 + background: var(--surface-2); 255 + color: var(--body); 256 + width: 34px; 257 + height: 34px; 258 + border-radius: var(--radius-md); 259 + display: inline-grid; 260 + place-items: center; 261 + cursor: pointer; 262 + } 263 + .icon-btn:hover { 264 + color: var(--heading); 265 + border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); 266 + } 267 + .icon-btn svg { 268 + width: 17px; 269 + height: 17px; 270 + } 271 + .icon-btn .sun { 272 + display: none; 273 + } 274 + :root[data-theme="light"] .icon-btn .sun { 275 + display: block; 276 + } 277 + :root[data-theme="light"] .icon-btn .moon { 278 + display: none; 279 + } 280 + 281 + /* ---- hero ------------------------------------------------------------------ */ 282 + .hero { 283 + position: relative; 284 + overflow: hidden; 285 + border-bottom: 1px solid var(--hair); 286 + } 287 + .hero__inner { 288 + position: relative; 289 + padding: 84px 0 64px; 290 + } 291 + .hero h1 { 292 + font-size: clamp(2.1rem, 6vw, 3.4rem); 293 + max-width: 16ch; 294 + } 295 + .hero__lead { 296 + margin-top: 20px; 297 + font-size: clamp(1rem, 2.3vw, 1.2rem); 298 + color: var(--body); 299 + max-width: 56ch; 300 + } 301 + .hero__cta { 302 + margin-top: 34px; 303 + display: flex; 304 + flex-wrap: wrap; 305 + gap: 14px; 306 + align-items: center; 307 + } 308 + 309 + /* ---- buttons --------------------------------------------------------------- */ 310 + .btn { 311 + display: inline-flex; 312 + align-items: center; 313 + gap: 9px; 314 + font: 500 15px/1 var(--ff-sans); 315 + padding: 12px 20px; 316 + border-radius: var(--radius-md); 317 + border: 1px solid transparent; 318 + cursor: pointer; 319 + transition: background 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out; 320 + } 321 + .btn svg { 322 + width: 17px; 323 + height: 17px; 324 + } 325 + .btn--primary { 326 + background: var(--accent); 327 + color: var(--ink); 328 + font-weight: 600; 329 + } 330 + .btn--primary:hover { 331 + background: var(--accent-hi); 332 + } 333 + .btn--ghost { 334 + background: transparent; 335 + color: var(--heading); 336 + border-color: var(--border); 337 + } 338 + .btn--ghost:hover { 339 + border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); 340 + background: var(--surface-2); 341 + } 342 + 343 + /* ---- preference banner ----------------------------------------------------- */ 344 + .banner { 345 + display: flex; 346 + gap: 14px; 347 + align-items: flex-start; 348 + margin-top: 40px; 349 + padding: 18px 20px; 350 + background: var(--surface); 351 + border: 1px solid var(--border); 352 + border-left: 3px solid var(--accent); 353 + border-radius: var(--radius-lg); 354 + } 355 + .banner__icon { 356 + flex: none; 357 + color: var(--accent); 358 + margin-top: 2px; 359 + } 360 + .banner__icon svg { 361 + width: 20px; 362 + height: 20px; 363 + } 364 + .banner p { 365 + font-size: 15px; 366 + } 367 + .banner a { 368 + color: var(--heading); 369 + text-decoration: underline; 370 + text-decoration-color: var(--accent); 371 + text-underline-offset: 3px; 372 + } 373 + 374 + /* ---- section --------------------------------------------------------------- */ 375 + .section { 376 + padding: 64px 0; 377 + } 378 + .section__head { 379 + margin-bottom: 28px; 380 + } 381 + .section__head h2 { 382 + font-size: clamp(1.4rem, 3.5vw, 1.9rem); 383 + } 384 + 385 + /* ---- project grid ---------------------------------------------------------- */ 386 + .grid { 387 + display: grid; 388 + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); 389 + gap: 18px; 390 + } 391 + 392 + .card { 393 + position: relative; 394 + display: flex; 395 + flex-direction: column; 396 + background: var(--surface); 397 + border: 1px solid var(--border); 398 + border-radius: var(--radius-lg); 399 + padding: 24px; 400 + transition: border-color 0.2s ease-out, transform 0.2s ease-out, box-shadow 0.2s ease-out; 401 + } 402 + .card:hover { 403 + border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); 404 + box-shadow: var(--sh-card); 405 + transform: translateY(-2px); 406 + } 407 + @media (prefers-reduced-motion: reduce) { 408 + .card:hover { 409 + transform: none; 410 + } 411 + } 412 + .card__kicker { 413 + font-family: var(--ff-mono); 414 + font-size: 11px; 415 + letter-spacing: 0.12em; 416 + text-transform: uppercase; 417 + color: var(--muted); 418 + margin: 0 0 10px; 419 + } 420 + .card h3 { 421 + font-size: 1.25rem; 422 + } 423 + .card h3 a::after { 424 + content: ""; 425 + position: absolute; 426 + inset: 0; 427 + } 428 + .card h3 a { 429 + color: var(--heading); 430 + } 431 + .card:hover h3 a { 432 + color: var(--accent); 433 + } 434 + .card__desc { 435 + margin-top: 12px; 436 + font-size: 14.5px; 437 + color: var(--body); 438 + flex: 1; 439 + } 440 + .card__meta { 441 + margin-top: 20px; 442 + display: flex; 443 + align-items: center; 444 + gap: 8px; 445 + flex-wrap: wrap; 446 + } 447 + .card__foot { 448 + margin-top: 18px; 449 + padding-top: 16px; 450 + border-top: 1px solid var(--hair); 451 + display: flex; 452 + align-items: center; 453 + gap: 16px; 454 + } 455 + .card__link { 456 + position: relative; 457 + z-index: 1; 458 + font-family: var(--ff-mono); 459 + font-size: 13px; 460 + color: var(--body); 461 + display: inline-flex; 462 + align-items: center; 463 + gap: 6px; 464 + } 465 + .card__link:hover { 466 + color: var(--heading); 467 + } 468 + .card__link svg { 469 + width: 15px; 470 + height: 15px; 471 + } 472 + 473 + /* ---- pills / tags ---------------------------------------------------------- */ 474 + .pill { 475 + display: inline-flex; 476 + align-items: center; 477 + gap: 6px; 478 + font-family: var(--ff-mono); 479 + font-size: 11px; 480 + font-weight: 500; 481 + letter-spacing: 0.03em; 482 + padding: 4px 9px; 483 + border-radius: 999px; 484 + border: 1px solid var(--border); 485 + color: var(--body); 486 + background: var(--surface-2); 487 + } 488 + .pill--status { 489 + color: var(--teal); 490 + border-color: color-mix(in srgb, var(--teal) 40%, var(--border)); 491 + } 492 + .pill--status .dot { 493 + width: 6px; 494 + height: 6px; 495 + border-radius: 999px; 496 + background: var(--teal); 497 + } 498 + 499 + /* ---- footer ---------------------------------------------------------------- */ 500 + .site-footer { 501 + border-top: 1px solid var(--border); 502 + background: var(--surface); 503 + padding: 40px 0; 504 + } 505 + .site-footer__inner { 506 + display: flex; 507 + flex-wrap: wrap; 508 + gap: 18px; 509 + align-items: center; 510 + justify-content: space-between; 511 + } 512 + .site-footer__links { 513 + display: flex; 514 + flex-wrap: wrap; 515 + gap: 18px; 516 + } 517 + .site-footer a { 518 + font-family: var(--ff-mono); 519 + font-size: 13px; 520 + color: var(--body); 521 + } 522 + .site-footer a:hover { 523 + color: var(--accent); 524 + } 525 + .site-footer__meta { 526 + font-family: var(--ff-mono); 527 + font-size: 12px; 528 + color: var(--muted); 529 + }
+5
tsconfig.json
··· 1 + { 2 + "extends": "astro/tsconfigs/strict", 3 + "include": [".astro/types.d.ts", "**/*"], 4 + "exclude": ["dist"] 5 + }