Resolve AT Lexicons over the network https://resolve-lexicon.pages.dev/

init

+4547
+9
.gitignore
··· 1 + node_modules 2 + dist 3 + .DS_Store 4 + *.log 5 + .env 6 + .env.local 7 + *.tsbuildinfo 8 + .astro 9 + .wrangler
+20
.tangled/workflows/deploy.yaml
··· 1 + engine: nixery 2 + when: 3 + - event: ["push", "pull_request"] 4 + branch: ["main"] 5 + 6 + dependencies: 7 + nixpkgs: 8 + - nodejs 9 + - gnused 10 + 11 + steps: 12 + - name: install and build 13 + command: | 14 + npx pnpm install 15 + cd packages/resolve-lexicon && npx pnpm run build 16 + cd ../site && npx pnpm run build 17 + - name: deploy site 18 + command: | 19 + cd packages/site 20 + npx --yes wrangler pages deploy --branch main --project-name resolve-lexicon ./dist/
+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) Dan Abramov 2025 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+9
README.md
··· 1 + # resolve-lexicon 2 + 3 + ATProto Lexicon network resolver 4 + 5 + **[→ Visit the site for documentation and demo](https://resolve-lexicon.pages.dev)** 6 + 7 + ## License 8 + 9 + MIT
+26
package.json
··· 1 + { 2 + "name": "resolve-lexicon-monorepo", 3 + "version": "0.1.0", 4 + "private": true, 5 + "description": "ATProto Lexicon network resolver", 6 + "scripts": { 7 + "build": "pnpm -r build", 8 + "dev": "pnpm --filter site dev", 9 + "site": "pnpm --filter site dev" 10 + }, 11 + "repository": { 12 + "type": "git", 13 + "url": "https://github.com/yourusername/resolve-lexicon.git" 14 + }, 15 + "keywords": [ 16 + "atproto", 17 + "lexicon", 18 + "bluesky", 19 + "nsid" 20 + ], 21 + "author": "", 22 + "license": "MIT", 23 + "devDependencies": { 24 + "typescript": "^5.0.0" 25 + } 26 + }
+68
packages/resolve-lexicon/README.md
··· 1 + # resolve-lexicon 2 + 3 + ATProto Lexicon network resolver. Resolves NSID (Namespaced Identifiers) to their corresponding Lexicon JSON schemas over the network. 4 + 5 + ## Installation 6 + 7 + ```bash 8 + npm install resolve-lexicon 9 + ``` 10 + 11 + ## Usage 12 + 13 + ```typescript 14 + import { resolveLexicon } from 'resolve-lexicon'; 15 + 16 + const json = await resolveLexicon('com.atproto.repo.getRecord'); 17 + console.log(json); 18 + ``` 19 + 20 + ## How it Works 21 + 22 + The resolution process follows the [Lexicon Publication and Distribution spec](https://atproto.com/specs/lexicon#lexicon-publication-and-resolution): 23 + 24 + 1. **Parse NSID** - Extract authority domain and name from the NSID 25 + - Example: `com.atproto.repo.getRecord` → authority: `repo.atproto.com`, name: `getRecord` 26 + 27 + 2. **DNS Lookup** - Query DNS TXT record for `_lexicon.<authority>` 28 + - Uses DNS-over-HTTPS (Cloudflare DNS API) for browser compatibility 29 + - Extracts DID from TXT record (format: `did=did:plc:...`) 30 + 31 + 3. **DID Resolution** - Resolve DID to PDS (Personal Data Server) endpoint 32 + - Supports `did:plc` via plc.directory 33 + - Supports `did:web` 34 + 35 + 4. **Fetch Lexicon** - Retrieve the lexicon record from PDS 36 + - Uses `com.atproto.repo.getRecord` XRPC endpoint 37 + - Collection: `com.atproto.lexicon.schema` 38 + - Record key: the NSID 39 + 40 + ## API 41 + 42 + ### `resolveLexicon(nsid: string): Promise<LexiconDocument>` 43 + 44 + Resolves an NSID to its Lexicon schema. 45 + 46 + **Parameters:** 47 + - `nsid` - Namespaced identifier (e.g., `"com.atproto.repo.getRecord"`) 48 + 49 + **Returns:** 50 + - Promise that resolves to a `LexiconDocument` 51 + 52 + ### Types 53 + 54 + ```typescript 55 + interface LexiconDocument { 56 + lexicon: number 57 + id: string 58 + [key: string]: unknown 59 + } 60 + 61 + class LexiconResolverError extends Error { 62 + code: string 63 + } 64 + ``` 65 + 66 + ## License 67 + 68 + MIT
+29
packages/resolve-lexicon/package.json
··· 1 + { 2 + "name": "resolve-lexicon", 3 + "version": "0.1.0", 4 + "description": "ATProto Lexicon network resolver", 5 + "type": "module", 6 + "main": "./dist/index.js", 7 + "types": "./dist/index.d.ts", 8 + "exports": { 9 + ".": { 10 + "types": "./dist/index.d.ts", 11 + "import": "./dist/index.js" 12 + } 13 + }, 14 + "scripts": { 15 + "build": "tsc", 16 + "watch": "tsc --watch" 17 + }, 18 + "keywords": [ 19 + "atproto", 20 + "lexicon", 21 + "nsid", 22 + "resolver" 23 + ], 24 + "author": "Dan Abramov <dan.abramov@gmail.com>", 25 + "license": "MIT", 26 + "devDependencies": { 27 + "typescript": "^5.0.0" 28 + } 29 + }
+208
packages/resolve-lexicon/src/index.ts
··· 1 + /** 2 + * Lexicon Network Resolver 3 + * 4 + * Based on atproto lexicon spec: 5 + * 1. Extract authority domain from NSID 6 + * 2. Query DNS TXT record for _lexicon.<authority> 7 + * 3. Extract DID from TXT record 8 + * 4. Resolve DID to PDS endpoint 9 + * 5. Fetch lexicon record from PDS 10 + */ 11 + 12 + export interface LexiconDocument { 13 + lexicon: number; 14 + id: string; 15 + [key: string]: unknown; 16 + } 17 + 18 + export class LexiconResolverError extends Error { 19 + constructor(message: string, public code: string) { 20 + super(message); 21 + this.name = 'LexiconResolverError'; 22 + } 23 + } 24 + 25 + /** 26 + * Parse NSID into authority domain and name 27 + * Example: "com.atproto.repo.getRecord" -> 28 + * authority: "repo.atproto.com" 29 + * name: "getRecord" 30 + */ 31 + function parseNSID(nsid: string): { authority: string; name: string } { 32 + const parts = nsid.split('.'); 33 + if (parts.length < 3) { 34 + throw new LexiconResolverError( 35 + `Invalid NSID: ${nsid}. Must have at least 3 segments.`, 36 + 'INVALID_NSID' 37 + ); 38 + } 39 + 40 + const name = parts[parts.length - 1]; 41 + const authorityParts = parts.slice(0, -1); 42 + const authority = authorityParts.reverse().join('.'); 43 + 44 + return { authority, name }; 45 + } 46 + 47 + /** 48 + * Query DNS TXT record for _lexicon.<authority> 49 + * Returns DID from the TXT record 50 + * 51 + * Note: Browser-based DNS-over-HTTPS query using Cloudflare DNS API 52 + */ 53 + async function queryDNSTXT(domain: string): Promise<string | null> { 54 + const lookupDomain = `_lexicon.${domain}`; 55 + 56 + try { 57 + // Use DNS-over-HTTPS (Cloudflare DNS API, matching atcute) 58 + const url = new URL('https://mozilla.cloudflare-dns.com/dns-query'); 59 + url.searchParams.set('name', lookupDomain); 60 + url.searchParams.set('type', 'TXT'); 61 + 62 + const response = await fetch(url, { 63 + headers: { accept: 'application/dns-json' } 64 + }); 65 + 66 + if (!response.ok) { 67 + throw new LexiconResolverError( 68 + `DNS query failed: ${response.status}`, 69 + 'DNS_QUERY_FAILED' 70 + ); 71 + } 72 + 73 + const data = await response.json(); 74 + 75 + if (!data.Answer || data.Answer.length === 0) { 76 + return null; 77 + } 78 + 79 + // Look for TXT record with did= prefix 80 + for (const record of data.Answer) { 81 + if (record.type === 16) { // TXT record 82 + const txtData = record.data.replace(/^"|"$/g, ''); // Remove quotes 83 + if (txtData.startsWith('did=')) { 84 + return txtData.substring(4); 85 + } 86 + } 87 + } 88 + 89 + return null; 90 + } catch (error) { 91 + if (error instanceof LexiconResolverError) { 92 + throw error; 93 + } 94 + throw new LexiconResolverError( 95 + `DNS lookup failed: ${error instanceof Error ? error.message : String(error)}`, 96 + 'DNS_LOOKUP_FAILED' 97 + ); 98 + } 99 + } 100 + 101 + /** 102 + * Resolve DID to PDS endpoint 103 + * Supports did:plc and did:web 104 + */ 105 + async function resolveDID(did: string): Promise<string> { 106 + if (did.startsWith('did:plc:')) { 107 + // Query PLC directory 108 + const plcId = did.substring(8); 109 + const response = await fetch(`https://plc.directory/${did}`); 110 + 111 + if (!response.ok) { 112 + throw new LexiconResolverError( 113 + `Failed to resolve DID: ${did}`, 114 + 'DID_RESOLUTION_FAILED' 115 + ); 116 + } 117 + 118 + const didDoc = await response.json(); 119 + 120 + // Extract PDS endpoint from service array 121 + const pdsService = didDoc.service?.find( 122 + (s: any) => s.type === 'AtprotoPersonalDataServer' 123 + ); 124 + 125 + if (!pdsService?.serviceEndpoint) { 126 + throw new LexiconResolverError( 127 + `No PDS endpoint found for DID: ${did}`, 128 + 'NO_PDS_ENDPOINT' 129 + ); 130 + } 131 + 132 + return pdsService.serviceEndpoint; 133 + } else if (did.startsWith('did:web:')) { 134 + // For did:web, extract domain and construct HTTPS URL 135 + const domain = did.substring(8).replace(':', '/'); 136 + return `https://${domain}`; 137 + } else { 138 + throw new LexiconResolverError( 139 + `Unsupported DID method: ${did}`, 140 + 'UNSUPPORTED_DID_METHOD' 141 + ); 142 + } 143 + } 144 + 145 + /** 146 + * Fetch lexicon schema from PDS 147 + * Uses com.atproto.repo.getRecord to fetch the lexicon record 148 + */ 149 + async function fetchLexiconFromPDS( 150 + pdsEndpoint: string, 151 + nsid: string, 152 + did: string 153 + ): Promise<LexiconDocument> { 154 + // Construct the query to fetch the lexicon record 155 + const url = new URL(`${pdsEndpoint}/xrpc/com.atproto.repo.getRecord`); 156 + url.searchParams.set('repo', did); 157 + url.searchParams.set('collection', 'com.atproto.lexicon.schema'); 158 + url.searchParams.set('rkey', nsid); 159 + 160 + const response = await fetch(url.toString()); 161 + 162 + if (!response.ok) { 163 + throw new LexiconResolverError( 164 + `Failed to fetch lexicon from PDS: ${response.status}`, 165 + 'PDS_FETCH_FAILED' 166 + ); 167 + } 168 + 169 + const data = await response.json(); 170 + 171 + if (!data.value) { 172 + throw new LexiconResolverError( 173 + `Invalid response from PDS: missing value`, 174 + 'INVALID_PDS_RESPONSE' 175 + ); 176 + } 177 + 178 + return data.value as LexiconDocument; 179 + } 180 + 181 + /** 182 + * Main resolver function: NSID -> Lexicon JSON 183 + * 184 + * @param nsid - Namespaced identifier (e.g., "com.atproto.repo.getRecord") 185 + * @returns Lexicon document 186 + */ 187 + export async function resolveLexicon(nsid: string): Promise<LexiconDocument> { 188 + // Step 1: Parse NSID 189 + const { authority, name } = parseNSID(nsid); 190 + 191 + // Step 2: Query DNS for _lexicon.<authority> 192 + const did = await queryDNSTXT(authority); 193 + 194 + if (!did) { 195 + throw new LexiconResolverError( 196 + `No _lexicon TXT record found for ${authority}`, 197 + 'NO_LEXICON_RECORD' 198 + ); 199 + } 200 + 201 + // Step 3: Resolve DID to PDS endpoint 202 + const pdsEndpoint = await resolveDID(did); 203 + 204 + // Step 4: Fetch lexicon from PDS 205 + const lexicon = await fetchLexiconFromPDS(pdsEndpoint, nsid, did); 206 + 207 + return lexicon; 208 + }
+16
packages/resolve-lexicon/tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2020", 4 + "module": "ESNext", 5 + "lib": ["ES2020", "DOM"], 6 + "declaration": true, 7 + "outDir": "./dist", 8 + "rootDir": "./src", 9 + "strict": true, 10 + "esModuleInterop": true, 11 + "skipLibCheck": true, 12 + "moduleResolution": "bundler" 13 + }, 14 + "include": ["src"], 15 + "exclude": ["node_modules", "dist"] 16 + }
+6
packages/site/astro.config.mjs
··· 1 + import { defineConfig } from 'astro/config'; 2 + import react from '@astrojs/react'; 3 + 4 + export default defineConfig({ 5 + integrations: [react()], 6 + });
+24
packages/site/package.json
··· 1 + { 2 + "name": "site", 3 + "version": "0.1.0", 4 + "private": true, 5 + "type": "module", 6 + "scripts": { 7 + "dev": "astro dev", 8 + "build": "astro build", 9 + "preview": "astro preview" 10 + }, 11 + "dependencies": { 12 + "@astrojs/react": "^4.4.0", 13 + "astro": "^5.14.1", 14 + "react": "^19.2.0", 15 + "react-dom": "^19.2.0", 16 + "resolve-lexicon": "workspace:*", 17 + "shiki": "^3.13.0" 18 + }, 19 + "devDependencies": { 20 + "@types/react": "^19.2.0", 21 + "@types/react-dom": "^19.2.0", 22 + "typescript": "^5.0.0" 23 + } 24 + }
packages/site/public/og.png

This is a binary file and will not be displayed.

+197
packages/site/src/components/Demo.tsx
··· 1 + import { useState } from 'react'; 2 + import { resolveLexicon, LexiconResolverError, type LexiconDocument } from 'resolve-lexicon'; 3 + 4 + export default function Demo() { 5 + const [nsid, setNsid] = useState('com.atproto.repo.getRecord'); 6 + const [loading, setLoading] = useState(false); 7 + const [result, setResult] = useState<LexiconDocument | null>(null); 8 + const [error, setError] = useState<string | null>(null); 9 + const [copied, setCopied] = useState(false); 10 + 11 + const handleResolve = async () => { 12 + setLoading(true); 13 + setError(null); 14 + setResult(null); 15 + setCopied(false); 16 + 17 + try { 18 + const lexicon = await resolveLexicon(nsid); 19 + setResult(lexicon); 20 + } catch (err) { 21 + if (err instanceof LexiconResolverError) { 22 + setError(`${err.code}: ${err.message}`); 23 + } else { 24 + setError(err instanceof Error ? err.message : String(err)); 25 + } 26 + } finally { 27 + setLoading(false); 28 + } 29 + }; 30 + 31 + const handleCopy = async () => { 32 + if (result) { 33 + await navigator.clipboard.writeText(JSON.stringify(result, null, 2)); 34 + setCopied(true); 35 + setTimeout(() => setCopied(false), 2000); 36 + } 37 + }; 38 + 39 + return ( 40 + <div style={{ 41 + background: 'white', 42 + borderRadius: '12px', 43 + padding: '2rem', 44 + boxShadow: '0 1px 3px rgba(0,0,0,0.1)' 45 + }}> 46 + <div style={{ display: 'flex', gap: '0.75rem', marginBottom: '0.75rem', flexWrap: 'wrap' }}> 47 + <input 48 + type="text" 49 + value={nsid} 50 + onChange={(e) => setNsid(e.target.value)} 51 + onKeyDown={(e) => e.key === 'Enter' && handleResolve()} 52 + placeholder="Enter NSID (e.g., com.atproto.repo.getRecord)" 53 + style={{ 54 + flex: '1 1 300px', 55 + padding: '0.75rem 1rem', 56 + fontSize: '1rem', 57 + border: '1px solid #d1d5db', 58 + borderRadius: '8px', 59 + fontFamily: 'Monaco, "Courier New", monospace', 60 + outline: 'none' 61 + }} 62 + /> 63 + <button 64 + onClick={handleResolve} 65 + disabled={loading || !nsid.trim()} 66 + style={{ 67 + padding: '0.75rem 2rem', 68 + fontSize: '1rem', 69 + fontWeight: '600', 70 + backgroundColor: loading || !nsid.trim() ? '#e5e7eb' : '#ffd93d', 71 + color: loading || !nsid.trim() ? '#9ca3af' : '#1a1a1a', 72 + border: 'none', 73 + borderRadius: '0', 74 + cursor: loading ? 'wait' : !nsid.trim() ? 'not-allowed' : 'pointer', 75 + transition: 'opacity 0.2s', 76 + minWidth: '120px' 77 + }} 78 + onMouseEnter={(e) => { 79 + if (!loading && nsid.trim()) { 80 + (e.target as HTMLButtonElement).style.opacity = '0.9'; 81 + } 82 + }} 83 + onMouseLeave={(e) => { 84 + (e.target as HTMLButtonElement).style.opacity = '1'; 85 + }} 86 + > 87 + {loading ? 'Loading' : 'Resolve'} 88 + </button> 89 + </div> 90 + 91 + <div style={{ fontSize: '0.9rem', color: '#6b7280', marginBottom: '0.5rem' }}> 92 + <strong>Examples:</strong>{' '} 93 + {['com.atproto.repo.getRecord', 'com.atproto.repo.listRecords', 'app.bsky.feed.post'].map((ex, i) => ( 94 + <span key={ex}> 95 + {i > 0 && ' · '} 96 + <button 97 + onClick={() => { 98 + setNsid(ex); 99 + setLoading(true); 100 + setError(null); 101 + setResult(null); 102 + setCopied(false); 103 + resolveLexicon(ex).then(lexicon => { 104 + setResult(lexicon); 105 + setLoading(false); 106 + }).catch(err => { 107 + if (err instanceof LexiconResolverError) { 108 + setError(`${err.code}: ${err.message}`); 109 + } else { 110 + setError(err instanceof Error ? err.message : String(err)); 111 + } 112 + setLoading(false); 113 + }); 114 + }} 115 + style={{ 116 + background: 'none', 117 + border: 'none', 118 + color: '#e91e82', 119 + cursor: 'pointer', 120 + textDecoration: 'underline', 121 + padding: 0, 122 + font: 'inherit', 123 + fontWeight: '500' 124 + }} 125 + > 126 + {ex} 127 + </button> 128 + </span> 129 + ))} 130 + </div> 131 + 132 + {error && ( 133 + <div style={{ 134 + padding: '1rem', 135 + backgroundColor: '#fee2e2', 136 + borderRadius: '8px', 137 + color: '#991b1b', 138 + marginTop: '1rem' 139 + }}> 140 + <strong>Error:</strong> {error} 141 + </div> 142 + )} 143 + 144 + {result && ( 145 + <div style={{ marginTop: '1rem' }}> 146 + <div style={{ 147 + display: 'flex', 148 + justifyContent: 'space-between', 149 + alignItems: 'center', 150 + marginBottom: '0.5rem' 151 + }}> 152 + <div style={{ 153 + fontSize: '0.9rem', 154 + fontWeight: '600', 155 + color: '#4a8fd9' 156 + }}> 157 + ✓ Resolved successfully 158 + </div> 159 + <button 160 + onClick={handleCopy} 161 + style={{ 162 + padding: '0.5rem 1rem', 163 + fontSize: '0.85rem', 164 + fontWeight: '500', 165 + backgroundColor: copied ? '#dcfce7' : '#f3f4f6', 166 + color: '#1a1a1a', 167 + border: 'none', 168 + borderRadius: '0', 169 + cursor: 'pointer', 170 + transition: 'opacity 0.2s' 171 + }} 172 + onMouseEnter={(e) => { 173 + (e.target as HTMLButtonElement).style.opacity = '0.8'; 174 + }} 175 + onMouseLeave={(e) => { 176 + (e.target as HTMLButtonElement).style.opacity = '1'; 177 + }} 178 + > 179 + {copied ? 'Copied!' : 'Copy JSON'} 180 + </button> 181 + </div> 182 + <pre style={{ 183 + backgroundColor: '#f9fafb', 184 + border: '1px solid #e5e7eb', 185 + padding: '1rem', 186 + borderRadius: '8px', 187 + overflow: 'auto', 188 + fontSize: '0.85rem', 189 + maxHeight: '400px' 190 + }}> 191 + {JSON.stringify(result, null, 2)} 192 + </pre> 193 + </div> 194 + )} 195 + </div> 196 + ); 197 + }
+275
packages/site/src/pages/index.astro
··· 1 + --- 2 + import { highlightCode } from '../utils/shiki'; 3 + import Demo from '../components/Demo'; 4 + 5 + const usageCode = `import { resolveLexicon } from 'resolve-lexicon'; 6 + 7 + const json = await resolveLexicon('com.atproto.repo.getRecord'); 8 + console.log(json);`; 9 + 10 + const usageHtml = await highlightCode(usageCode, 'typescript'); 11 + --- 12 + 13 + <!DOCTYPE html> 14 + <html lang="en"> 15 + <head> 16 + <meta charset="UTF-8" /> 17 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 18 + <title>resolve-lexicon - Resolve AT Lexicons over the network</title> 19 + <meta name="description" content="Resolve NSIDs to Lexicon schemas over the network" /> 20 + 21 + <!-- Open Graph / Social Media --> 22 + <meta property="og:type" content="website" /> 23 + <meta property="og:title" content="resolve-lexicon" /> 24 + <meta property="og:description" content="Resolve AT Lexicons over the network" /> 25 + <meta property="og:image" content="/og.png" /> 26 + 27 + <!-- Twitter Card --> 28 + <meta name="twitter:card" content="summary_large_image" /> 29 + <meta name="twitter:title" content="resolve-lexicon" /> 30 + <meta name="twitter:description" content="Resolve AT Lexicons over the network" /> 31 + <meta name="twitter:image" content="/og.png" /> 32 + </head> 33 + <body> 34 + <div class="hero"> 35 + <div class="container"> 36 + <h1>resolve-lexicon</h1> 37 + <p class="tagline"> 38 + Resolve <a href="https://atproto.com/specs/lexicon" target="_blank" rel="noopener noreferrer">AT Lexicons</a> over the network 39 + </p> 40 + 41 + <div class="install-box"> 42 + <code>npm install resolve-lexicon</code> 43 + </div> 44 + </div> 45 + </div> 46 + 47 + <div class="content"> 48 + <div class="container"> 49 + <section> 50 + <h2>Usage</h2> 51 + <div class="code-box" set:html={usageHtml} /> 52 + </section> 53 + 54 + <section> 55 + <h2>Try it out</h2> 56 + <Demo client:load /> 57 + </section> 58 + 59 + <section> 60 + <h2>How it works</h2> 61 + <p class="section-description"> 62 + Following the <a href="https://atproto.com/specs/lexicon#lexicon-publication-and-resolution" target="_blank" rel="noopener noreferrer">AT Lexicon Publication and Resolution spec</a>: 63 + </p> 64 + <ol> 65 + <li>Parse NSID into authority domain and name</li> 66 + <li>Query DNS TXT record for <code>_lexicon.&lt;authority&gt;</code> (via Cloudflare DNS)</li> 67 + <li>Extract DID from TXT record (format: <code>did=did:plc:...</code>)</li> 68 + <li>Resolve DID to PDS endpoint via plc.directory</li> 69 + <li>Fetch lexicon record from PDS using <code>com.atproto.repo.getRecord</code></li> 70 + </ol> 71 + </section> 72 + 73 + <footer> 74 + <a href="https://tangled.org/@danabra.mov/resolve-lexicon" target="_blank" rel="noopener noreferrer">tangled</a> 75 + <a href="https://www.npmjs.com/package/resolve-lexicon" target="_blank" rel="noopener noreferrer">npm</a> 76 + <a href="https://atproto.com/specs/lexicon#lexicon-publication-and-resolution" target="_blank" rel="noopener noreferrer">spec</a> 77 + </footer> 78 + </div> 79 + </div> 80 + </body> 81 + </html> 82 + 83 + <style is:global> 84 + * { 85 + margin: 0; 86 + padding: 0; 87 + box-sizing: border-box; 88 + } 89 + 90 + body { 91 + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; 92 + line-height: 1.6; 93 + color: #1a1a1a; 94 + font-size: 16px; 95 + } 96 + 97 + .hero { 98 + background: linear-gradient(135deg, #a8c5ff 0%, #d4a5ff 100%); 99 + color: #1a1a1a; 100 + padding: 3rem 1.5rem; 101 + text-align: center; 102 + } 103 + 104 + .container { 105 + max-width: 800px; 106 + margin: 0 auto; 107 + } 108 + 109 + h1 { 110 + font-size: 2.5rem; 111 + margin: 0 0 0.5rem; 112 + font-weight: 800; 113 + letter-spacing: -0.02em; 114 + } 115 + 116 + .tagline { 117 + font-size: 1rem; 118 + margin: 0 0 1.5rem; 119 + opacity: 0.8; 120 + font-weight: 400; 121 + } 122 + 123 + .tagline a { 124 + color: inherit; 125 + text-decoration: underline; 126 + text-decoration-thickness: 1px; 127 + text-underline-offset: 2px; 128 + transition: opacity 0.2s; 129 + } 130 + 131 + .tagline a:hover { 132 + opacity: 0.6; 133 + } 134 + 135 + @media (min-width: 640px) { 136 + .hero { 137 + padding: 4rem 2rem; 138 + } 139 + 140 + h1 { 141 + font-size: 3rem; 142 + margin: 0 0 0.75rem; 143 + } 144 + 145 + .tagline { 146 + font-size: 1.125rem; 147 + } 148 + } 149 + 150 + .install-box { 151 + display: inline-block; 152 + background: white; 153 + padding: 0.75rem 1.5rem; 154 + borderRadius: 8px; 155 + box-shadow: 0 1px 3px rgba(0,0,0,0.1); 156 + } 157 + 158 + .install-box code { 159 + font-size: 0.95rem; 160 + color: #1a1a1a; 161 + font-family: Monaco, "Courier New", monospace; 162 + } 163 + 164 + .content { 165 + background: #fafafa; 166 + padding: 3rem 1.5rem; 167 + } 168 + 169 + @media (min-width: 640px) { 170 + .content { 171 + padding: 4rem 2rem; 172 + } 173 + } 174 + 175 + section { 176 + margin-bottom: 3rem; 177 + } 178 + 179 + section:last-of-type { 180 + margin-bottom: 0; 181 + } 182 + 183 + h2 { 184 + font-size: 1.5rem; 185 + margin-bottom: 1rem; 186 + color: #1a1a1a; 187 + font-weight: 700; 188 + } 189 + 190 + @media (min-width: 640px) { 191 + h2 { 192 + font-size: 1.75rem; 193 + } 194 + } 195 + 196 + .code-box { 197 + background: #1a1625; 198 + border-radius: 8px; 199 + overflow: auto; 200 + box-shadow: 0 1px 3px rgba(0,0,0,0.1); 201 + } 202 + 203 + .code-box pre { 204 + margin: 0; 205 + padding: 1.25rem; 206 + background: transparent !important; 207 + } 208 + 209 + @media (min-width: 640px) { 210 + .code-box pre { 211 + padding: 1.5rem; 212 + } 213 + } 214 + 215 + .code-box code { 216 + font-family: Monaco, "Courier New", monospace; 217 + font-size: 0.875rem; 218 + line-height: 1.6; 219 + } 220 + 221 + .section-description { 222 + margin-bottom: 1rem; 223 + color: #4b5563; 224 + line-height: 1.6; 225 + font-size: 1rem; 226 + } 227 + 228 + .section-description a { 229 + color: #e91e82; 230 + text-decoration: underline; 231 + text-decoration-thickness: 1px; 232 + text-underline-offset: 2px; 233 + transition: opacity 0.2s ease; 234 + } 235 + 236 + .section-description a:hover { 237 + opacity: 0.7; 238 + } 239 + 240 + ol { 241 + line-height: 1.8; 242 + color: #4b5563; 243 + padding-left: 1.5rem; 244 + font-size: 1rem; 245 + } 246 + 247 + ol li { 248 + margin-bottom: 0.5rem; 249 + } 250 + 251 + ol code { 252 + background: #fef3c7; 253 + padding: 0.15em 0.4em; 254 + border-radius: 4px; 255 + font-size: 0.875em; 256 + } 257 + 258 + footer { 259 + text-align: center; 260 + padding-top: 3rem; 261 + color: #6b7280; 262 + font-size: 0.875rem; 263 + } 264 + 265 + footer a { 266 + color: #e91e82; 267 + text-decoration: none; 268 + margin: 0 0.75rem; 269 + transition: opacity 0.2s; 270 + } 271 + 272 + footer a:hover { 273 + opacity: 0.7; 274 + } 275 + </style>
+47
packages/site/src/utils/shiki.ts
··· 1 + import { codeToHtml } from 'shiki'; 2 + 3 + const theme = { 4 + name: 'resolve-lexicon-theme', 5 + type: 'dark', 6 + colors: { 7 + 'editor.background': '#1a1625', 8 + 'editor.foreground': '#ffffff', 9 + }, 10 + tokenColors: [ 11 + { 12 + scope: ['keyword', 'storage.type', 'storage.modifier'], 13 + settings: { foreground: '#a8a8ff' }, 14 + }, 15 + { 16 + scope: ['entity.name.type', 'entity.name.class', 'support.type'], 17 + settings: { foreground: '#ff7eb6' }, 18 + }, 19 + { 20 + scope: ['entity.name.function', 'variable.other.property'], 21 + settings: { foreground: '#82cfff' }, 22 + }, 23 + { 24 + scope: ['string', 'string.quoted'], 25 + settings: { foreground: '#ff5ba0' }, 26 + }, 27 + { 28 + scope: ['constant.numeric', 'constant.language'], 29 + settings: { foreground: '#ff8ec4' }, 30 + }, 31 + { 32 + scope: ['comment'], 33 + settings: { foreground: '#8b7e9b', fontStyle: 'italic' }, 34 + }, 35 + { 36 + scope: ['punctuation', 'meta.brace'], 37 + settings: { foreground: '#c5b8d8' }, 38 + }, 39 + ], 40 + } as any; 41 + 42 + export async function highlightCode(code: string, lang: 'typescript' | 'json' | 'bash') { 43 + return await codeToHtml(code, { 44 + lang, 45 + theme, 46 + }); 47 + }
+3
packages/site/tsconfig.json
··· 1 + { 2 + "extends": "astro/tsconfigs/strict" 3 + }
+3587
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + importers: 8 + 9 + .: 10 + devDependencies: 11 + typescript: 12 + specifier: ^5.0.0 13 + version: 5.9.3 14 + 15 + packages/resolve-lexicon: 16 + devDependencies: 17 + typescript: 18 + specifier: ^5.0.0 19 + version: 5.9.3 20 + 21 + packages/site: 22 + dependencies: 23 + '@astrojs/react': 24 + specifier: ^4.4.0 25 + version: 4.4.0(@types/node@24.7.0)(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) 26 + astro: 27 + specifier: ^5.14.1 28 + version: 5.14.1(@types/node@24.7.0)(rollup@4.52.4)(typescript@5.9.3) 29 + react: 30 + specifier: ^19.2.0 31 + version: 19.2.0 32 + react-dom: 33 + specifier: ^19.2.0 34 + version: 19.2.0(react@19.2.0) 35 + resolve-lexicon: 36 + specifier: workspace:* 37 + version: link:../resolve-lexicon 38 + shiki: 39 + specifier: ^3.13.0 40 + version: 3.13.0 41 + devDependencies: 42 + '@types/react': 43 + specifier: ^19.2.0 44 + version: 19.2.2 45 + '@types/react-dom': 46 + specifier: ^19.2.0 47 + version: 19.2.1(@types/react@19.2.2) 48 + typescript: 49 + specifier: ^5.0.0 50 + version: 5.9.3 51 + 52 + packages: 53 + 54 + '@astrojs/compiler@2.13.0': 55 + resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} 56 + 57 + '@astrojs/internal-helpers@0.7.3': 58 + resolution: {integrity: sha512-6Pl0bQEIChuW5wqN7jdKrzWfCscW2rG/Cz+fzt4PhSQX2ivBpnhXgFUCs0M3DCYvjYHnPVG2W36X5rmFjZ62sw==} 59 + 60 + '@astrojs/markdown-remark@6.3.7': 61 + resolution: {integrity: sha512-KXGdq6/BC18doBCYXp08alHlWChH0hdD2B1qv9wIyOHbvwI5K6I7FhSta8dq1hBQNdun8YkKPR013D/Hm8xd0g==} 62 + 63 + '@astrojs/prism@3.3.0': 64 + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} 65 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 66 + 67 + '@astrojs/react@4.4.0': 68 + resolution: {integrity: sha512-RzblkVImAFdV1C0AWsSWzS70Z0FMtW2p0XXkNYu3QePfyVJta3JIy8m8jY8271etaCZtpFjsE2UaiHGZIBm6nw==} 69 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 70 + peerDependencies: 71 + '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 72 + '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 73 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 74 + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 75 + 76 + '@astrojs/telemetry@3.3.0': 77 + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} 78 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 79 + 80 + '@babel/code-frame@7.27.1': 81 + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 82 + engines: {node: '>=6.9.0'} 83 + 84 + '@babel/compat-data@7.28.4': 85 + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} 86 + engines: {node: '>=6.9.0'} 87 + 88 + '@babel/core@7.28.4': 89 + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} 90 + engines: {node: '>=6.9.0'} 91 + 92 + '@babel/generator@7.28.3': 93 + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 94 + engines: {node: '>=6.9.0'} 95 + 96 + '@babel/helper-compilation-targets@7.27.2': 97 + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} 98 + engines: {node: '>=6.9.0'} 99 + 100 + '@babel/helper-globals@7.28.0': 101 + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 102 + engines: {node: '>=6.9.0'} 103 + 104 + '@babel/helper-module-imports@7.27.1': 105 + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 106 + engines: {node: '>=6.9.0'} 107 + 108 + '@babel/helper-module-transforms@7.28.3': 109 + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} 110 + engines: {node: '>=6.9.0'} 111 + peerDependencies: 112 + '@babel/core': ^7.0.0 113 + 114 + '@babel/helper-plugin-utils@7.27.1': 115 + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} 116 + engines: {node: '>=6.9.0'} 117 + 118 + '@babel/helper-string-parser@7.27.1': 119 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 120 + engines: {node: '>=6.9.0'} 121 + 122 + '@babel/helper-validator-identifier@7.27.1': 123 + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 124 + engines: {node: '>=6.9.0'} 125 + 126 + '@babel/helper-validator-option@7.27.1': 127 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 128 + engines: {node: '>=6.9.0'} 129 + 130 + '@babel/helpers@7.28.4': 131 + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} 132 + engines: {node: '>=6.9.0'} 133 + 134 + '@babel/parser@7.28.4': 135 + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} 136 + engines: {node: '>=6.0.0'} 137 + hasBin: true 138 + 139 + '@babel/plugin-transform-react-jsx-self@7.27.1': 140 + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 141 + engines: {node: '>=6.9.0'} 142 + peerDependencies: 143 + '@babel/core': ^7.0.0-0 144 + 145 + '@babel/plugin-transform-react-jsx-source@7.27.1': 146 + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 147 + engines: {node: '>=6.9.0'} 148 + peerDependencies: 149 + '@babel/core': ^7.0.0-0 150 + 151 + '@babel/template@7.27.2': 152 + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 153 + engines: {node: '>=6.9.0'} 154 + 155 + '@babel/traverse@7.28.4': 156 + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} 157 + engines: {node: '>=6.9.0'} 158 + 159 + '@babel/types@7.28.4': 160 + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} 161 + engines: {node: '>=6.9.0'} 162 + 163 + '@capsizecss/unpack@2.4.0': 164 + resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} 165 + 166 + '@emnapi/runtime@1.5.0': 167 + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} 168 + 169 + '@esbuild/aix-ppc64@0.25.10': 170 + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} 171 + engines: {node: '>=18'} 172 + cpu: [ppc64] 173 + os: [aix] 174 + 175 + '@esbuild/android-arm64@0.25.10': 176 + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} 177 + engines: {node: '>=18'} 178 + cpu: [arm64] 179 + os: [android] 180 + 181 + '@esbuild/android-arm@0.25.10': 182 + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} 183 + engines: {node: '>=18'} 184 + cpu: [arm] 185 + os: [android] 186 + 187 + '@esbuild/android-x64@0.25.10': 188 + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} 189 + engines: {node: '>=18'} 190 + cpu: [x64] 191 + os: [android] 192 + 193 + '@esbuild/darwin-arm64@0.25.10': 194 + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} 195 + engines: {node: '>=18'} 196 + cpu: [arm64] 197 + os: [darwin] 198 + 199 + '@esbuild/darwin-x64@0.25.10': 200 + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} 201 + engines: {node: '>=18'} 202 + cpu: [x64] 203 + os: [darwin] 204 + 205 + '@esbuild/freebsd-arm64@0.25.10': 206 + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} 207 + engines: {node: '>=18'} 208 + cpu: [arm64] 209 + os: [freebsd] 210 + 211 + '@esbuild/freebsd-x64@0.25.10': 212 + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} 213 + engines: {node: '>=18'} 214 + cpu: [x64] 215 + os: [freebsd] 216 + 217 + '@esbuild/linux-arm64@0.25.10': 218 + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} 219 + engines: {node: '>=18'} 220 + cpu: [arm64] 221 + os: [linux] 222 + 223 + '@esbuild/linux-arm@0.25.10': 224 + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} 225 + engines: {node: '>=18'} 226 + cpu: [arm] 227 + os: [linux] 228 + 229 + '@esbuild/linux-ia32@0.25.10': 230 + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} 231 + engines: {node: '>=18'} 232 + cpu: [ia32] 233 + os: [linux] 234 + 235 + '@esbuild/linux-loong64@0.25.10': 236 + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} 237 + engines: {node: '>=18'} 238 + cpu: [loong64] 239 + os: [linux] 240 + 241 + '@esbuild/linux-mips64el@0.25.10': 242 + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} 243 + engines: {node: '>=18'} 244 + cpu: [mips64el] 245 + os: [linux] 246 + 247 + '@esbuild/linux-ppc64@0.25.10': 248 + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} 249 + engines: {node: '>=18'} 250 + cpu: [ppc64] 251 + os: [linux] 252 + 253 + '@esbuild/linux-riscv64@0.25.10': 254 + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} 255 + engines: {node: '>=18'} 256 + cpu: [riscv64] 257 + os: [linux] 258 + 259 + '@esbuild/linux-s390x@0.25.10': 260 + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} 261 + engines: {node: '>=18'} 262 + cpu: [s390x] 263 + os: [linux] 264 + 265 + '@esbuild/linux-x64@0.25.10': 266 + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} 267 + engines: {node: '>=18'} 268 + cpu: [x64] 269 + os: [linux] 270 + 271 + '@esbuild/netbsd-arm64@0.25.10': 272 + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} 273 + engines: {node: '>=18'} 274 + cpu: [arm64] 275 + os: [netbsd] 276 + 277 + '@esbuild/netbsd-x64@0.25.10': 278 + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} 279 + engines: {node: '>=18'} 280 + cpu: [x64] 281 + os: [netbsd] 282 + 283 + '@esbuild/openbsd-arm64@0.25.10': 284 + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} 285 + engines: {node: '>=18'} 286 + cpu: [arm64] 287 + os: [openbsd] 288 + 289 + '@esbuild/openbsd-x64@0.25.10': 290 + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} 291 + engines: {node: '>=18'} 292 + cpu: [x64] 293 + os: [openbsd] 294 + 295 + '@esbuild/openharmony-arm64@0.25.10': 296 + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} 297 + engines: {node: '>=18'} 298 + cpu: [arm64] 299 + os: [openharmony] 300 + 301 + '@esbuild/sunos-x64@0.25.10': 302 + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} 303 + engines: {node: '>=18'} 304 + cpu: [x64] 305 + os: [sunos] 306 + 307 + '@esbuild/win32-arm64@0.25.10': 308 + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} 309 + engines: {node: '>=18'} 310 + cpu: [arm64] 311 + os: [win32] 312 + 313 + '@esbuild/win32-ia32@0.25.10': 314 + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} 315 + engines: {node: '>=18'} 316 + cpu: [ia32] 317 + os: [win32] 318 + 319 + '@esbuild/win32-x64@0.25.10': 320 + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} 321 + engines: {node: '>=18'} 322 + cpu: [x64] 323 + os: [win32] 324 + 325 + '@img/colour@1.0.0': 326 + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} 327 + engines: {node: '>=18'} 328 + 329 + '@img/sharp-darwin-arm64@0.34.4': 330 + resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} 331 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 332 + cpu: [arm64] 333 + os: [darwin] 334 + 335 + '@img/sharp-darwin-x64@0.34.4': 336 + resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} 337 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 338 + cpu: [x64] 339 + os: [darwin] 340 + 341 + '@img/sharp-libvips-darwin-arm64@1.2.3': 342 + resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} 343 + cpu: [arm64] 344 + os: [darwin] 345 + 346 + '@img/sharp-libvips-darwin-x64@1.2.3': 347 + resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} 348 + cpu: [x64] 349 + os: [darwin] 350 + 351 + '@img/sharp-libvips-linux-arm64@1.2.3': 352 + resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} 353 + cpu: [arm64] 354 + os: [linux] 355 + 356 + '@img/sharp-libvips-linux-arm@1.2.3': 357 + resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} 358 + cpu: [arm] 359 + os: [linux] 360 + 361 + '@img/sharp-libvips-linux-ppc64@1.2.3': 362 + resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} 363 + cpu: [ppc64] 364 + os: [linux] 365 + 366 + '@img/sharp-libvips-linux-s390x@1.2.3': 367 + resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} 368 + cpu: [s390x] 369 + os: [linux] 370 + 371 + '@img/sharp-libvips-linux-x64@1.2.3': 372 + resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} 373 + cpu: [x64] 374 + os: [linux] 375 + 376 + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': 377 + resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} 378 + cpu: [arm64] 379 + os: [linux] 380 + 381 + '@img/sharp-libvips-linuxmusl-x64@1.2.3': 382 + resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} 383 + cpu: [x64] 384 + os: [linux] 385 + 386 + '@img/sharp-linux-arm64@0.34.4': 387 + resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} 388 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 389 + cpu: [arm64] 390 + os: [linux] 391 + 392 + '@img/sharp-linux-arm@0.34.4': 393 + resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} 394 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 395 + cpu: [arm] 396 + os: [linux] 397 + 398 + '@img/sharp-linux-ppc64@0.34.4': 399 + resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} 400 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 401 + cpu: [ppc64] 402 + os: [linux] 403 + 404 + '@img/sharp-linux-s390x@0.34.4': 405 + resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} 406 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 407 + cpu: [s390x] 408 + os: [linux] 409 + 410 + '@img/sharp-linux-x64@0.34.4': 411 + resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} 412 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 413 + cpu: [x64] 414 + os: [linux] 415 + 416 + '@img/sharp-linuxmusl-arm64@0.34.4': 417 + resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} 418 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 419 + cpu: [arm64] 420 + os: [linux] 421 + 422 + '@img/sharp-linuxmusl-x64@0.34.4': 423 + resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} 424 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 425 + cpu: [x64] 426 + os: [linux] 427 + 428 + '@img/sharp-wasm32@0.34.4': 429 + resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} 430 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 431 + cpu: [wasm32] 432 + 433 + '@img/sharp-win32-arm64@0.34.4': 434 + resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} 435 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 436 + cpu: [arm64] 437 + os: [win32] 438 + 439 + '@img/sharp-win32-ia32@0.34.4': 440 + resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} 441 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 442 + cpu: [ia32] 443 + os: [win32] 444 + 445 + '@img/sharp-win32-x64@0.34.4': 446 + resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} 447 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 448 + cpu: [x64] 449 + os: [win32] 450 + 451 + '@jridgewell/gen-mapping@0.3.13': 452 + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 453 + 454 + '@jridgewell/remapping@2.3.5': 455 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 456 + 457 + '@jridgewell/resolve-uri@3.1.2': 458 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 459 + engines: {node: '>=6.0.0'} 460 + 461 + '@jridgewell/sourcemap-codec@1.5.5': 462 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 463 + 464 + '@jridgewell/trace-mapping@0.3.31': 465 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 466 + 467 + '@oslojs/encoding@1.1.0': 468 + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} 469 + 470 + '@rolldown/pluginutils@1.0.0-beta.27': 471 + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} 472 + 473 + '@rollup/pluginutils@5.3.0': 474 + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} 475 + engines: {node: '>=14.0.0'} 476 + peerDependencies: 477 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 478 + peerDependenciesMeta: 479 + rollup: 480 + optional: true 481 + 482 + '@rollup/rollup-android-arm-eabi@4.52.4': 483 + resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} 484 + cpu: [arm] 485 + os: [android] 486 + 487 + '@rollup/rollup-android-arm64@4.52.4': 488 + resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} 489 + cpu: [arm64] 490 + os: [android] 491 + 492 + '@rollup/rollup-darwin-arm64@4.52.4': 493 + resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} 494 + cpu: [arm64] 495 + os: [darwin] 496 + 497 + '@rollup/rollup-darwin-x64@4.52.4': 498 + resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} 499 + cpu: [x64] 500 + os: [darwin] 501 + 502 + '@rollup/rollup-freebsd-arm64@4.52.4': 503 + resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} 504 + cpu: [arm64] 505 + os: [freebsd] 506 + 507 + '@rollup/rollup-freebsd-x64@4.52.4': 508 + resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} 509 + cpu: [x64] 510 + os: [freebsd] 511 + 512 + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': 513 + resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} 514 + cpu: [arm] 515 + os: [linux] 516 + 517 + '@rollup/rollup-linux-arm-musleabihf@4.52.4': 518 + resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} 519 + cpu: [arm] 520 + os: [linux] 521 + 522 + '@rollup/rollup-linux-arm64-gnu@4.52.4': 523 + resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} 524 + cpu: [arm64] 525 + os: [linux] 526 + 527 + '@rollup/rollup-linux-arm64-musl@4.52.4': 528 + resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} 529 + cpu: [arm64] 530 + os: [linux] 531 + 532 + '@rollup/rollup-linux-loong64-gnu@4.52.4': 533 + resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} 534 + cpu: [loong64] 535 + os: [linux] 536 + 537 + '@rollup/rollup-linux-ppc64-gnu@4.52.4': 538 + resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} 539 + cpu: [ppc64] 540 + os: [linux] 541 + 542 + '@rollup/rollup-linux-riscv64-gnu@4.52.4': 543 + resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} 544 + cpu: [riscv64] 545 + os: [linux] 546 + 547 + '@rollup/rollup-linux-riscv64-musl@4.52.4': 548 + resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} 549 + cpu: [riscv64] 550 + os: [linux] 551 + 552 + '@rollup/rollup-linux-s390x-gnu@4.52.4': 553 + resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} 554 + cpu: [s390x] 555 + os: [linux] 556 + 557 + '@rollup/rollup-linux-x64-gnu@4.52.4': 558 + resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} 559 + cpu: [x64] 560 + os: [linux] 561 + 562 + '@rollup/rollup-linux-x64-musl@4.52.4': 563 + resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} 564 + cpu: [x64] 565 + os: [linux] 566 + 567 + '@rollup/rollup-openharmony-arm64@4.52.4': 568 + resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} 569 + cpu: [arm64] 570 + os: [openharmony] 571 + 572 + '@rollup/rollup-win32-arm64-msvc@4.52.4': 573 + resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} 574 + cpu: [arm64] 575 + os: [win32] 576 + 577 + '@rollup/rollup-win32-ia32-msvc@4.52.4': 578 + resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} 579 + cpu: [ia32] 580 + os: [win32] 581 + 582 + '@rollup/rollup-win32-x64-gnu@4.52.4': 583 + resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} 584 + cpu: [x64] 585 + os: [win32] 586 + 587 + '@rollup/rollup-win32-x64-msvc@4.52.4': 588 + resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} 589 + cpu: [x64] 590 + os: [win32] 591 + 592 + '@shikijs/core@3.13.0': 593 + resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} 594 + 595 + '@shikijs/engine-javascript@3.13.0': 596 + resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} 597 + 598 + '@shikijs/engine-oniguruma@3.13.0': 599 + resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} 600 + 601 + '@shikijs/langs@3.13.0': 602 + resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} 603 + 604 + '@shikijs/themes@3.13.0': 605 + resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} 606 + 607 + '@shikijs/types@3.13.0': 608 + resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} 609 + 610 + '@shikijs/vscode-textmate@10.0.2': 611 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 612 + 613 + '@swc/helpers@0.5.17': 614 + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} 615 + 616 + '@types/babel__core@7.20.5': 617 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 618 + 619 + '@types/babel__generator@7.27.0': 620 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 621 + 622 + '@types/babel__template@7.4.4': 623 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 624 + 625 + '@types/babel__traverse@7.28.0': 626 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 627 + 628 + '@types/debug@4.1.12': 629 + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 630 + 631 + '@types/estree@1.0.8': 632 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 633 + 634 + '@types/fontkit@2.0.8': 635 + resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} 636 + 637 + '@types/hast@3.0.4': 638 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 639 + 640 + '@types/mdast@4.0.4': 641 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 642 + 643 + '@types/ms@2.1.0': 644 + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 645 + 646 + '@types/nlcst@2.0.3': 647 + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} 648 + 649 + '@types/node@24.7.0': 650 + resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} 651 + 652 + '@types/react-dom@19.2.1': 653 + resolution: {integrity: sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A==} 654 + peerDependencies: 655 + '@types/react': ^19.2.0 656 + 657 + '@types/react@19.2.2': 658 + resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} 659 + 660 + '@types/unist@3.0.3': 661 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 662 + 663 + '@ungap/structured-clone@1.3.0': 664 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 665 + 666 + '@vitejs/plugin-react@4.7.0': 667 + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} 668 + engines: {node: ^14.18.0 || >=16.0.0} 669 + peerDependencies: 670 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 671 + 672 + acorn@8.15.0: 673 + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 674 + engines: {node: '>=0.4.0'} 675 + hasBin: true 676 + 677 + ansi-align@3.0.1: 678 + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 679 + 680 + ansi-regex@5.0.1: 681 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 682 + engines: {node: '>=8'} 683 + 684 + ansi-regex@6.2.2: 685 + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 686 + engines: {node: '>=12'} 687 + 688 + ansi-styles@6.2.3: 689 + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 690 + engines: {node: '>=12'} 691 + 692 + anymatch@3.1.3: 693 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 694 + engines: {node: '>= 8'} 695 + 696 + argparse@2.0.1: 697 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 698 + 699 + aria-query@5.3.2: 700 + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 701 + engines: {node: '>= 0.4'} 702 + 703 + array-iterate@2.0.1: 704 + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} 705 + 706 + astro@5.14.1: 707 + resolution: {integrity: sha512-gPa8NY7/lP8j8g81iy8UwANF3+aukKRWS68IlthZQNgykpg80ne6lbHOp6FErYycxQ1TUhgEfkXVDQZAoJx8Bg==} 708 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 709 + hasBin: true 710 + 711 + axobject-query@4.1.0: 712 + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 713 + engines: {node: '>= 0.4'} 714 + 715 + bail@2.0.2: 716 + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 717 + 718 + base-64@1.0.0: 719 + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} 720 + 721 + base64-js@1.5.1: 722 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 723 + 724 + baseline-browser-mapping@2.8.13: 725 + resolution: {integrity: sha512-7s16KR8io8nIBWQyCYhmFhd+ebIzb9VKTzki+wOJXHTxTnV6+mFGH3+Jwn1zoKaY9/H9T/0BcKCZnzXljPnpSQ==} 726 + hasBin: true 727 + 728 + blob-to-buffer@1.2.9: 729 + resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} 730 + 731 + boxen@8.0.1: 732 + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 733 + engines: {node: '>=18'} 734 + 735 + brotli@1.3.3: 736 + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} 737 + 738 + browserslist@4.26.3: 739 + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} 740 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 741 + hasBin: true 742 + 743 + camelcase@8.0.0: 744 + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 745 + engines: {node: '>=16'} 746 + 747 + caniuse-lite@1.0.30001748: 748 + resolution: {integrity: sha512-5P5UgAr0+aBmNiplks08JLw+AW/XG/SurlgZLgB1dDLfAw7EfRGxIwzPHxdSCGY/BTKDqIVyJL87cCN6s0ZR0w==} 749 + 750 + ccount@2.0.1: 751 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 752 + 753 + chalk@5.6.2: 754 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 755 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 756 + 757 + character-entities-html4@2.1.0: 758 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 759 + 760 + character-entities-legacy@3.0.0: 761 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 762 + 763 + character-entities@2.0.2: 764 + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 765 + 766 + chokidar@4.0.3: 767 + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 768 + engines: {node: '>= 14.16.0'} 769 + 770 + ci-info@4.3.1: 771 + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} 772 + engines: {node: '>=8'} 773 + 774 + cli-boxes@3.0.0: 775 + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 776 + engines: {node: '>=10'} 777 + 778 + clone@2.1.2: 779 + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 780 + engines: {node: '>=0.8'} 781 + 782 + clsx@2.1.1: 783 + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 784 + engines: {node: '>=6'} 785 + 786 + comma-separated-tokens@2.0.3: 787 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 788 + 789 + common-ancestor-path@1.0.1: 790 + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 791 + 792 + convert-source-map@2.0.0: 793 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 794 + 795 + cookie-es@1.2.2: 796 + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} 797 + 798 + cookie@1.0.2: 799 + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} 800 + engines: {node: '>=18'} 801 + 802 + cross-fetch@3.2.0: 803 + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} 804 + 805 + crossws@0.3.5: 806 + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 807 + 808 + css-tree@3.1.0: 809 + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 810 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 811 + 812 + cssesc@3.0.0: 813 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 814 + engines: {node: '>=4'} 815 + hasBin: true 816 + 817 + csstype@3.1.3: 818 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 819 + 820 + debug@4.4.3: 821 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 822 + engines: {node: '>=6.0'} 823 + peerDependencies: 824 + supports-color: '*' 825 + peerDependenciesMeta: 826 + supports-color: 827 + optional: true 828 + 829 + decode-named-character-reference@1.2.0: 830 + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} 831 + 832 + defu@6.1.4: 833 + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 834 + 835 + dequal@2.0.3: 836 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 837 + engines: {node: '>=6'} 838 + 839 + destr@2.0.5: 840 + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 841 + 842 + detect-libc@2.1.2: 843 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 844 + engines: {node: '>=8'} 845 + 846 + deterministic-object-hash@2.0.2: 847 + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} 848 + engines: {node: '>=18'} 849 + 850 + devalue@5.3.2: 851 + resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} 852 + 853 + devlop@1.1.0: 854 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 855 + 856 + dfa@1.2.0: 857 + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} 858 + 859 + diff@5.2.0: 860 + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 861 + engines: {node: '>=0.3.1'} 862 + 863 + dlv@1.1.3: 864 + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 865 + 866 + dset@3.1.4: 867 + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} 868 + engines: {node: '>=4'} 869 + 870 + electron-to-chromium@1.5.232: 871 + resolution: {integrity: sha512-ENirSe7wf8WzyPCibqKUG1Cg43cPaxH4wRR7AJsX7MCABCHBIOFqvaYODSLKUuZdraxUTHRE/0A2Aq8BYKEHOg==} 872 + 873 + emoji-regex@10.5.0: 874 + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} 875 + 876 + emoji-regex@8.0.0: 877 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 878 + 879 + entities@6.0.1: 880 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 881 + engines: {node: '>=0.12'} 882 + 883 + es-module-lexer@1.7.0: 884 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 885 + 886 + esbuild@0.25.10: 887 + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} 888 + engines: {node: '>=18'} 889 + hasBin: true 890 + 891 + escalade@3.2.0: 892 + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 893 + engines: {node: '>=6'} 894 + 895 + escape-string-regexp@5.0.0: 896 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 897 + engines: {node: '>=12'} 898 + 899 + estree-walker@2.0.2: 900 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 901 + 902 + estree-walker@3.0.3: 903 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 904 + 905 + eventemitter3@5.0.1: 906 + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 907 + 908 + extend@3.0.2: 909 + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 910 + 911 + fast-deep-equal@3.1.3: 912 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 913 + 914 + fdir@6.5.0: 915 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 916 + engines: {node: '>=12.0.0'} 917 + peerDependencies: 918 + picomatch: ^3 || ^4 919 + peerDependenciesMeta: 920 + picomatch: 921 + optional: true 922 + 923 + flattie@1.1.1: 924 + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 925 + engines: {node: '>=8'} 926 + 927 + fontace@0.3.1: 928 + resolution: {integrity: sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg==} 929 + 930 + fontkit@2.0.4: 931 + resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} 932 + 933 + fsevents@2.3.3: 934 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 935 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 936 + os: [darwin] 937 + 938 + gensync@1.0.0-beta.2: 939 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 940 + engines: {node: '>=6.9.0'} 941 + 942 + get-east-asian-width@1.4.0: 943 + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} 944 + engines: {node: '>=18'} 945 + 946 + github-slugger@2.0.0: 947 + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} 948 + 949 + h3@1.15.4: 950 + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} 951 + 952 + hast-util-from-html@2.0.3: 953 + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} 954 + 955 + hast-util-from-parse5@8.0.3: 956 + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} 957 + 958 + hast-util-is-element@3.0.0: 959 + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 960 + 961 + hast-util-parse-selector@4.0.0: 962 + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} 963 + 964 + hast-util-raw@9.1.0: 965 + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} 966 + 967 + hast-util-to-html@9.0.5: 968 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 969 + 970 + hast-util-to-parse5@8.0.0: 971 + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} 972 + 973 + hast-util-to-text@4.0.2: 974 + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} 975 + 976 + hast-util-whitespace@3.0.0: 977 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 978 + 979 + hastscript@9.0.1: 980 + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} 981 + 982 + html-escaper@3.0.3: 983 + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} 984 + 985 + html-void-elements@3.0.0: 986 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 987 + 988 + http-cache-semantics@4.2.0: 989 + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} 990 + 991 + import-meta-resolve@4.2.0: 992 + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} 993 + 994 + iron-webcrypto@1.2.1: 995 + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} 996 + 997 + is-docker@3.0.0: 998 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 999 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1000 + hasBin: true 1001 + 1002 + is-fullwidth-code-point@3.0.0: 1003 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1004 + engines: {node: '>=8'} 1005 + 1006 + is-inside-container@1.0.0: 1007 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 1008 + engines: {node: '>=14.16'} 1009 + hasBin: true 1010 + 1011 + is-plain-obj@4.1.0: 1012 + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1013 + engines: {node: '>=12'} 1014 + 1015 + is-wsl@3.1.0: 1016 + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} 1017 + engines: {node: '>=16'} 1018 + 1019 + js-tokens@4.0.0: 1020 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1021 + 1022 + js-yaml@4.1.0: 1023 + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1024 + hasBin: true 1025 + 1026 + jsesc@3.1.0: 1027 + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1028 + engines: {node: '>=6'} 1029 + hasBin: true 1030 + 1031 + json5@2.2.3: 1032 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1033 + engines: {node: '>=6'} 1034 + hasBin: true 1035 + 1036 + kleur@3.0.3: 1037 + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1038 + engines: {node: '>=6'} 1039 + 1040 + kleur@4.1.5: 1041 + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1042 + engines: {node: '>=6'} 1043 + 1044 + longest-streak@3.1.0: 1045 + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 1046 + 1047 + lru-cache@10.4.3: 1048 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1049 + 1050 + lru-cache@5.1.1: 1051 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1052 + 1053 + magic-string@0.30.19: 1054 + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 1055 + 1056 + magicast@0.3.5: 1057 + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} 1058 + 1059 + markdown-table@3.0.4: 1060 + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 1061 + 1062 + mdast-util-definitions@6.0.0: 1063 + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} 1064 + 1065 + mdast-util-find-and-replace@3.0.2: 1066 + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} 1067 + 1068 + mdast-util-from-markdown@2.0.2: 1069 + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} 1070 + 1071 + mdast-util-gfm-autolink-literal@2.0.1: 1072 + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} 1073 + 1074 + mdast-util-gfm-footnote@2.1.0: 1075 + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} 1076 + 1077 + mdast-util-gfm-strikethrough@2.0.0: 1078 + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} 1079 + 1080 + mdast-util-gfm-table@2.0.0: 1081 + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} 1082 + 1083 + mdast-util-gfm-task-list-item@2.0.0: 1084 + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} 1085 + 1086 + mdast-util-gfm@3.1.0: 1087 + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} 1088 + 1089 + mdast-util-phrasing@4.1.0: 1090 + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} 1091 + 1092 + mdast-util-to-hast@13.2.0: 1093 + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} 1094 + 1095 + mdast-util-to-markdown@2.1.2: 1096 + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} 1097 + 1098 + mdast-util-to-string@4.0.0: 1099 + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1100 + 1101 + mdn-data@2.12.2: 1102 + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 1103 + 1104 + micromark-core-commonmark@2.0.3: 1105 + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1106 + 1107 + micromark-extension-gfm-autolink-literal@2.1.0: 1108 + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} 1109 + 1110 + micromark-extension-gfm-footnote@2.1.0: 1111 + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} 1112 + 1113 + micromark-extension-gfm-strikethrough@2.1.0: 1114 + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} 1115 + 1116 + micromark-extension-gfm-table@2.1.1: 1117 + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} 1118 + 1119 + micromark-extension-gfm-tagfilter@2.0.0: 1120 + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} 1121 + 1122 + micromark-extension-gfm-task-list-item@2.1.0: 1123 + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} 1124 + 1125 + micromark-extension-gfm@3.0.0: 1126 + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} 1127 + 1128 + micromark-factory-destination@2.0.1: 1129 + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} 1130 + 1131 + micromark-factory-label@2.0.1: 1132 + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} 1133 + 1134 + micromark-factory-space@2.0.1: 1135 + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} 1136 + 1137 + micromark-factory-title@2.0.1: 1138 + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} 1139 + 1140 + micromark-factory-whitespace@2.0.1: 1141 + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} 1142 + 1143 + micromark-util-character@2.1.1: 1144 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1145 + 1146 + micromark-util-chunked@2.0.1: 1147 + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} 1148 + 1149 + micromark-util-classify-character@2.0.1: 1150 + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} 1151 + 1152 + micromark-util-combine-extensions@2.0.1: 1153 + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} 1154 + 1155 + micromark-util-decode-numeric-character-reference@2.0.2: 1156 + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} 1157 + 1158 + micromark-util-decode-string@2.0.1: 1159 + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} 1160 + 1161 + micromark-util-encode@2.0.1: 1162 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1163 + 1164 + micromark-util-html-tag-name@2.0.1: 1165 + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} 1166 + 1167 + micromark-util-normalize-identifier@2.0.1: 1168 + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} 1169 + 1170 + micromark-util-resolve-all@2.0.1: 1171 + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} 1172 + 1173 + micromark-util-sanitize-uri@2.0.1: 1174 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1175 + 1176 + micromark-util-subtokenize@2.1.0: 1177 + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} 1178 + 1179 + micromark-util-symbol@2.0.1: 1180 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1181 + 1182 + micromark-util-types@2.0.2: 1183 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1184 + 1185 + micromark@4.0.2: 1186 + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} 1187 + 1188 + mrmime@2.0.1: 1189 + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} 1190 + engines: {node: '>=10'} 1191 + 1192 + ms@2.1.3: 1193 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1194 + 1195 + nanoid@3.3.11: 1196 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1197 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1198 + hasBin: true 1199 + 1200 + neotraverse@0.6.18: 1201 + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} 1202 + engines: {node: '>= 10'} 1203 + 1204 + nlcst-to-string@4.0.0: 1205 + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} 1206 + 1207 + node-fetch-native@1.6.7: 1208 + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 1209 + 1210 + node-fetch@2.7.0: 1211 + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1212 + engines: {node: 4.x || >=6.0.0} 1213 + peerDependencies: 1214 + encoding: ^0.1.0 1215 + peerDependenciesMeta: 1216 + encoding: 1217 + optional: true 1218 + 1219 + node-mock-http@1.0.3: 1220 + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} 1221 + 1222 + node-releases@2.0.23: 1223 + resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} 1224 + 1225 + normalize-path@3.0.0: 1226 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1227 + engines: {node: '>=0.10.0'} 1228 + 1229 + ofetch@1.4.1: 1230 + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} 1231 + 1232 + ohash@2.0.11: 1233 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1234 + 1235 + oniguruma-parser@0.12.1: 1236 + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} 1237 + 1238 + oniguruma-to-es@4.3.3: 1239 + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} 1240 + 1241 + p-limit@6.2.0: 1242 + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} 1243 + engines: {node: '>=18'} 1244 + 1245 + p-queue@8.1.1: 1246 + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} 1247 + engines: {node: '>=18'} 1248 + 1249 + p-timeout@6.1.4: 1250 + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} 1251 + engines: {node: '>=14.16'} 1252 + 1253 + package-manager-detector@1.4.0: 1254 + resolution: {integrity: sha512-rRZ+pR1Usc+ND9M2NkmCvE/LYJS+8ORVV9X0KuNSY/gFsp7RBHJM/ADh9LYq4Vvfq6QkKrW6/weuh8SMEtN5gw==} 1255 + 1256 + pako@0.2.9: 1257 + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} 1258 + 1259 + parse-latin@7.0.0: 1260 + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} 1261 + 1262 + parse5@7.3.0: 1263 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 1264 + 1265 + picocolors@1.1.1: 1266 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1267 + 1268 + picomatch@2.3.1: 1269 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1270 + engines: {node: '>=8.6'} 1271 + 1272 + picomatch@4.0.3: 1273 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1274 + engines: {node: '>=12'} 1275 + 1276 + postcss@8.5.6: 1277 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1278 + engines: {node: ^10 || ^12 || >=14} 1279 + 1280 + prismjs@1.30.0: 1281 + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 1282 + engines: {node: '>=6'} 1283 + 1284 + prompts@2.4.2: 1285 + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1286 + engines: {node: '>= 6'} 1287 + 1288 + property-information@6.5.0: 1289 + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} 1290 + 1291 + property-information@7.1.0: 1292 + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 1293 + 1294 + radix3@1.1.2: 1295 + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} 1296 + 1297 + react-dom@19.2.0: 1298 + resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==} 1299 + peerDependencies: 1300 + react: ^19.2.0 1301 + 1302 + react-refresh@0.17.0: 1303 + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} 1304 + engines: {node: '>=0.10.0'} 1305 + 1306 + react@19.2.0: 1307 + resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} 1308 + engines: {node: '>=0.10.0'} 1309 + 1310 + readdirp@4.1.2: 1311 + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1312 + engines: {node: '>= 14.18.0'} 1313 + 1314 + regex-recursion@6.0.2: 1315 + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} 1316 + 1317 + regex-utilities@2.3.0: 1318 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1319 + 1320 + regex@6.0.1: 1321 + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} 1322 + 1323 + rehype-parse@9.0.1: 1324 + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 1325 + 1326 + rehype-raw@7.0.0: 1327 + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} 1328 + 1329 + rehype-stringify@10.0.1: 1330 + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} 1331 + 1332 + rehype@13.0.2: 1333 + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} 1334 + 1335 + remark-gfm@4.0.1: 1336 + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} 1337 + 1338 + remark-parse@11.0.0: 1339 + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} 1340 + 1341 + remark-rehype@11.1.2: 1342 + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 1343 + 1344 + remark-smartypants@3.0.2: 1345 + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} 1346 + engines: {node: '>=16.0.0'} 1347 + 1348 + remark-stringify@11.0.0: 1349 + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 1350 + 1351 + restructure@3.0.2: 1352 + resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} 1353 + 1354 + retext-latin@4.0.0: 1355 + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} 1356 + 1357 + retext-smartypants@6.2.0: 1358 + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} 1359 + 1360 + retext-stringify@4.0.0: 1361 + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} 1362 + 1363 + retext@9.0.0: 1364 + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} 1365 + 1366 + rollup@4.52.4: 1367 + resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} 1368 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1369 + hasBin: true 1370 + 1371 + scheduler@0.27.0: 1372 + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 1373 + 1374 + semver@6.3.1: 1375 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1376 + hasBin: true 1377 + 1378 + semver@7.7.2: 1379 + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 1380 + engines: {node: '>=10'} 1381 + hasBin: true 1382 + 1383 + sharp@0.34.4: 1384 + resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} 1385 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1386 + 1387 + shiki@3.13.0: 1388 + resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} 1389 + 1390 + sisteransi@1.0.5: 1391 + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1392 + 1393 + smol-toml@1.4.2: 1394 + resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} 1395 + engines: {node: '>= 18'} 1396 + 1397 + source-map-js@1.2.1: 1398 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1399 + engines: {node: '>=0.10.0'} 1400 + 1401 + space-separated-tokens@2.0.2: 1402 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 1403 + 1404 + string-width@4.2.3: 1405 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1406 + engines: {node: '>=8'} 1407 + 1408 + string-width@7.2.0: 1409 + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1410 + engines: {node: '>=18'} 1411 + 1412 + stringify-entities@4.0.4: 1413 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 1414 + 1415 + strip-ansi@6.0.1: 1416 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1417 + engines: {node: '>=8'} 1418 + 1419 + strip-ansi@7.1.2: 1420 + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 1421 + engines: {node: '>=12'} 1422 + 1423 + tiny-inflate@1.0.3: 1424 + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} 1425 + 1426 + tinyexec@0.3.2: 1427 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1428 + 1429 + tinyglobby@0.2.15: 1430 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1431 + engines: {node: '>=12.0.0'} 1432 + 1433 + tr46@0.0.3: 1434 + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1435 + 1436 + trim-lines@3.0.1: 1437 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1438 + 1439 + trough@2.2.0: 1440 + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 1441 + 1442 + tsconfck@3.1.6: 1443 + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} 1444 + engines: {node: ^18 || >=20} 1445 + hasBin: true 1446 + peerDependencies: 1447 + typescript: ^5.0.0 1448 + peerDependenciesMeta: 1449 + typescript: 1450 + optional: true 1451 + 1452 + tslib@2.8.1: 1453 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1454 + 1455 + type-fest@4.41.0: 1456 + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 1457 + engines: {node: '>=16'} 1458 + 1459 + typescript@5.9.3: 1460 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1461 + engines: {node: '>=14.17'} 1462 + hasBin: true 1463 + 1464 + ufo@1.6.1: 1465 + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 1466 + 1467 + ultrahtml@1.6.0: 1468 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 1469 + 1470 + uncrypto@0.1.3: 1471 + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 1472 + 1473 + undici-types@7.14.0: 1474 + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} 1475 + 1476 + unicode-properties@1.4.1: 1477 + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} 1478 + 1479 + unicode-trie@2.0.0: 1480 + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} 1481 + 1482 + unified@11.0.5: 1483 + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 1484 + 1485 + unifont@0.5.2: 1486 + resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} 1487 + 1488 + unist-util-find-after@5.0.0: 1489 + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} 1490 + 1491 + unist-util-is@6.0.0: 1492 + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} 1493 + 1494 + unist-util-modify-children@4.0.0: 1495 + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} 1496 + 1497 + unist-util-position@5.0.0: 1498 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 1499 + 1500 + unist-util-remove-position@5.0.0: 1501 + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} 1502 + 1503 + unist-util-stringify-position@4.0.0: 1504 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1505 + 1506 + unist-util-visit-children@3.0.0: 1507 + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} 1508 + 1509 + unist-util-visit-parents@6.0.1: 1510 + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} 1511 + 1512 + unist-util-visit@5.0.0: 1513 + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 1514 + 1515 + unstorage@1.17.1: 1516 + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} 1517 + peerDependencies: 1518 + '@azure/app-configuration': ^1.8.0 1519 + '@azure/cosmos': ^4.2.0 1520 + '@azure/data-tables': ^13.3.0 1521 + '@azure/identity': ^4.6.0 1522 + '@azure/keyvault-secrets': ^4.9.0 1523 + '@azure/storage-blob': ^12.26.0 1524 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 1525 + '@deno/kv': '>=0.9.0' 1526 + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 1527 + '@planetscale/database': ^1.19.0 1528 + '@upstash/redis': ^1.34.3 1529 + '@vercel/blob': '>=0.27.1' 1530 + '@vercel/functions': ^2.2.12 || ^3.0.0 1531 + '@vercel/kv': ^1.0.1 1532 + aws4fetch: ^1.0.20 1533 + db0: '>=0.2.1' 1534 + idb-keyval: ^6.2.1 1535 + ioredis: ^5.4.2 1536 + uploadthing: ^7.4.4 1537 + peerDependenciesMeta: 1538 + '@azure/app-configuration': 1539 + optional: true 1540 + '@azure/cosmos': 1541 + optional: true 1542 + '@azure/data-tables': 1543 + optional: true 1544 + '@azure/identity': 1545 + optional: true 1546 + '@azure/keyvault-secrets': 1547 + optional: true 1548 + '@azure/storage-blob': 1549 + optional: true 1550 + '@capacitor/preferences': 1551 + optional: true 1552 + '@deno/kv': 1553 + optional: true 1554 + '@netlify/blobs': 1555 + optional: true 1556 + '@planetscale/database': 1557 + optional: true 1558 + '@upstash/redis': 1559 + optional: true 1560 + '@vercel/blob': 1561 + optional: true 1562 + '@vercel/functions': 1563 + optional: true 1564 + '@vercel/kv': 1565 + optional: true 1566 + aws4fetch: 1567 + optional: true 1568 + db0: 1569 + optional: true 1570 + idb-keyval: 1571 + optional: true 1572 + ioredis: 1573 + optional: true 1574 + uploadthing: 1575 + optional: true 1576 + 1577 + update-browserslist-db@1.1.3: 1578 + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1579 + hasBin: true 1580 + peerDependencies: 1581 + browserslist: '>= 4.21.0' 1582 + 1583 + vfile-location@5.0.3: 1584 + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 1585 + 1586 + vfile-message@4.0.3: 1587 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 1588 + 1589 + vfile@6.0.3: 1590 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1591 + 1592 + vite@6.3.6: 1593 + resolution: {integrity: sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==} 1594 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1595 + hasBin: true 1596 + peerDependencies: 1597 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1598 + jiti: '>=1.21.0' 1599 + less: '*' 1600 + lightningcss: ^1.21.0 1601 + sass: '*' 1602 + sass-embedded: '*' 1603 + stylus: '*' 1604 + sugarss: '*' 1605 + terser: ^5.16.0 1606 + tsx: ^4.8.1 1607 + yaml: ^2.4.2 1608 + peerDependenciesMeta: 1609 + '@types/node': 1610 + optional: true 1611 + jiti: 1612 + optional: true 1613 + less: 1614 + optional: true 1615 + lightningcss: 1616 + optional: true 1617 + sass: 1618 + optional: true 1619 + sass-embedded: 1620 + optional: true 1621 + stylus: 1622 + optional: true 1623 + sugarss: 1624 + optional: true 1625 + terser: 1626 + optional: true 1627 + tsx: 1628 + optional: true 1629 + yaml: 1630 + optional: true 1631 + 1632 + vitefu@1.1.1: 1633 + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} 1634 + peerDependencies: 1635 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 1636 + peerDependenciesMeta: 1637 + vite: 1638 + optional: true 1639 + 1640 + web-namespaces@2.0.1: 1641 + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 1642 + 1643 + webidl-conversions@3.0.1: 1644 + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1645 + 1646 + whatwg-url@5.0.0: 1647 + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1648 + 1649 + which-pm-runs@1.1.0: 1650 + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 1651 + engines: {node: '>=4'} 1652 + 1653 + widest-line@5.0.0: 1654 + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 1655 + engines: {node: '>=18'} 1656 + 1657 + wrap-ansi@9.0.2: 1658 + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 1659 + engines: {node: '>=18'} 1660 + 1661 + xxhash-wasm@1.1.0: 1662 + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} 1663 + 1664 + yallist@3.1.1: 1665 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1666 + 1667 + yargs-parser@21.1.1: 1668 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1669 + engines: {node: '>=12'} 1670 + 1671 + yocto-queue@1.2.1: 1672 + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} 1673 + engines: {node: '>=12.20'} 1674 + 1675 + yocto-spinner@0.2.3: 1676 + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} 1677 + engines: {node: '>=18.19'} 1678 + 1679 + yoctocolors@2.1.2: 1680 + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} 1681 + engines: {node: '>=18'} 1682 + 1683 + zod-to-json-schema@3.24.6: 1684 + resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} 1685 + peerDependencies: 1686 + zod: ^3.24.1 1687 + 1688 + zod-to-ts@1.2.0: 1689 + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} 1690 + peerDependencies: 1691 + typescript: ^4.9.4 || ^5.0.2 1692 + zod: ^3 1693 + 1694 + zod@3.25.76: 1695 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 1696 + 1697 + zwitch@2.0.4: 1698 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1699 + 1700 + snapshots: 1701 + 1702 + '@astrojs/compiler@2.13.0': {} 1703 + 1704 + '@astrojs/internal-helpers@0.7.3': {} 1705 + 1706 + '@astrojs/markdown-remark@6.3.7': 1707 + dependencies: 1708 + '@astrojs/internal-helpers': 0.7.3 1709 + '@astrojs/prism': 3.3.0 1710 + github-slugger: 2.0.0 1711 + hast-util-from-html: 2.0.3 1712 + hast-util-to-text: 4.0.2 1713 + import-meta-resolve: 4.2.0 1714 + js-yaml: 4.1.0 1715 + mdast-util-definitions: 6.0.0 1716 + rehype-raw: 7.0.0 1717 + rehype-stringify: 10.0.1 1718 + remark-gfm: 4.0.1 1719 + remark-parse: 11.0.0 1720 + remark-rehype: 11.1.2 1721 + remark-smartypants: 3.0.2 1722 + shiki: 3.13.0 1723 + smol-toml: 1.4.2 1724 + unified: 11.0.5 1725 + unist-util-remove-position: 5.0.0 1726 + unist-util-visit: 5.0.0 1727 + unist-util-visit-parents: 6.0.1 1728 + vfile: 6.0.3 1729 + transitivePeerDependencies: 1730 + - supports-color 1731 + 1732 + '@astrojs/prism@3.3.0': 1733 + dependencies: 1734 + prismjs: 1.30.0 1735 + 1736 + '@astrojs/react@4.4.0(@types/node@24.7.0)(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': 1737 + dependencies: 1738 + '@types/react': 19.2.2 1739 + '@types/react-dom': 19.2.1(@types/react@19.2.2) 1740 + '@vitejs/plugin-react': 4.7.0(vite@6.3.6(@types/node@24.7.0)) 1741 + react: 19.2.0 1742 + react-dom: 19.2.0(react@19.2.0) 1743 + ultrahtml: 1.6.0 1744 + vite: 6.3.6(@types/node@24.7.0) 1745 + transitivePeerDependencies: 1746 + - '@types/node' 1747 + - jiti 1748 + - less 1749 + - lightningcss 1750 + - sass 1751 + - sass-embedded 1752 + - stylus 1753 + - sugarss 1754 + - supports-color 1755 + - terser 1756 + - tsx 1757 + - yaml 1758 + 1759 + '@astrojs/telemetry@3.3.0': 1760 + dependencies: 1761 + ci-info: 4.3.1 1762 + debug: 4.4.3 1763 + dlv: 1.1.3 1764 + dset: 3.1.4 1765 + is-docker: 3.0.0 1766 + is-wsl: 3.1.0 1767 + which-pm-runs: 1.1.0 1768 + transitivePeerDependencies: 1769 + - supports-color 1770 + 1771 + '@babel/code-frame@7.27.1': 1772 + dependencies: 1773 + '@babel/helper-validator-identifier': 7.27.1 1774 + js-tokens: 4.0.0 1775 + picocolors: 1.1.1 1776 + 1777 + '@babel/compat-data@7.28.4': {} 1778 + 1779 + '@babel/core@7.28.4': 1780 + dependencies: 1781 + '@babel/code-frame': 7.27.1 1782 + '@babel/generator': 7.28.3 1783 + '@babel/helper-compilation-targets': 7.27.2 1784 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) 1785 + '@babel/helpers': 7.28.4 1786 + '@babel/parser': 7.28.4 1787 + '@babel/template': 7.27.2 1788 + '@babel/traverse': 7.28.4 1789 + '@babel/types': 7.28.4 1790 + '@jridgewell/remapping': 2.3.5 1791 + convert-source-map: 2.0.0 1792 + debug: 4.4.3 1793 + gensync: 1.0.0-beta.2 1794 + json5: 2.2.3 1795 + semver: 6.3.1 1796 + transitivePeerDependencies: 1797 + - supports-color 1798 + 1799 + '@babel/generator@7.28.3': 1800 + dependencies: 1801 + '@babel/parser': 7.28.4 1802 + '@babel/types': 7.28.4 1803 + '@jridgewell/gen-mapping': 0.3.13 1804 + '@jridgewell/trace-mapping': 0.3.31 1805 + jsesc: 3.1.0 1806 + 1807 + '@babel/helper-compilation-targets@7.27.2': 1808 + dependencies: 1809 + '@babel/compat-data': 7.28.4 1810 + '@babel/helper-validator-option': 7.27.1 1811 + browserslist: 4.26.3 1812 + lru-cache: 5.1.1 1813 + semver: 6.3.1 1814 + 1815 + '@babel/helper-globals@7.28.0': {} 1816 + 1817 + '@babel/helper-module-imports@7.27.1': 1818 + dependencies: 1819 + '@babel/traverse': 7.28.4 1820 + '@babel/types': 7.28.4 1821 + transitivePeerDependencies: 1822 + - supports-color 1823 + 1824 + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': 1825 + dependencies: 1826 + '@babel/core': 7.28.4 1827 + '@babel/helper-module-imports': 7.27.1 1828 + '@babel/helper-validator-identifier': 7.27.1 1829 + '@babel/traverse': 7.28.4 1830 + transitivePeerDependencies: 1831 + - supports-color 1832 + 1833 + '@babel/helper-plugin-utils@7.27.1': {} 1834 + 1835 + '@babel/helper-string-parser@7.27.1': {} 1836 + 1837 + '@babel/helper-validator-identifier@7.27.1': {} 1838 + 1839 + '@babel/helper-validator-option@7.27.1': {} 1840 + 1841 + '@babel/helpers@7.28.4': 1842 + dependencies: 1843 + '@babel/template': 7.27.2 1844 + '@babel/types': 7.28.4 1845 + 1846 + '@babel/parser@7.28.4': 1847 + dependencies: 1848 + '@babel/types': 7.28.4 1849 + 1850 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': 1851 + dependencies: 1852 + '@babel/core': 7.28.4 1853 + '@babel/helper-plugin-utils': 7.27.1 1854 + 1855 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': 1856 + dependencies: 1857 + '@babel/core': 7.28.4 1858 + '@babel/helper-plugin-utils': 7.27.1 1859 + 1860 + '@babel/template@7.27.2': 1861 + dependencies: 1862 + '@babel/code-frame': 7.27.1 1863 + '@babel/parser': 7.28.4 1864 + '@babel/types': 7.28.4 1865 + 1866 + '@babel/traverse@7.28.4': 1867 + dependencies: 1868 + '@babel/code-frame': 7.27.1 1869 + '@babel/generator': 7.28.3 1870 + '@babel/helper-globals': 7.28.0 1871 + '@babel/parser': 7.28.4 1872 + '@babel/template': 7.27.2 1873 + '@babel/types': 7.28.4 1874 + debug: 4.4.3 1875 + transitivePeerDependencies: 1876 + - supports-color 1877 + 1878 + '@babel/types@7.28.4': 1879 + dependencies: 1880 + '@babel/helper-string-parser': 7.27.1 1881 + '@babel/helper-validator-identifier': 7.27.1 1882 + 1883 + '@capsizecss/unpack@2.4.0': 1884 + dependencies: 1885 + blob-to-buffer: 1.2.9 1886 + cross-fetch: 3.2.0 1887 + fontkit: 2.0.4 1888 + transitivePeerDependencies: 1889 + - encoding 1890 + 1891 + '@emnapi/runtime@1.5.0': 1892 + dependencies: 1893 + tslib: 2.8.1 1894 + optional: true 1895 + 1896 + '@esbuild/aix-ppc64@0.25.10': 1897 + optional: true 1898 + 1899 + '@esbuild/android-arm64@0.25.10': 1900 + optional: true 1901 + 1902 + '@esbuild/android-arm@0.25.10': 1903 + optional: true 1904 + 1905 + '@esbuild/android-x64@0.25.10': 1906 + optional: true 1907 + 1908 + '@esbuild/darwin-arm64@0.25.10': 1909 + optional: true 1910 + 1911 + '@esbuild/darwin-x64@0.25.10': 1912 + optional: true 1913 + 1914 + '@esbuild/freebsd-arm64@0.25.10': 1915 + optional: true 1916 + 1917 + '@esbuild/freebsd-x64@0.25.10': 1918 + optional: true 1919 + 1920 + '@esbuild/linux-arm64@0.25.10': 1921 + optional: true 1922 + 1923 + '@esbuild/linux-arm@0.25.10': 1924 + optional: true 1925 + 1926 + '@esbuild/linux-ia32@0.25.10': 1927 + optional: true 1928 + 1929 + '@esbuild/linux-loong64@0.25.10': 1930 + optional: true 1931 + 1932 + '@esbuild/linux-mips64el@0.25.10': 1933 + optional: true 1934 + 1935 + '@esbuild/linux-ppc64@0.25.10': 1936 + optional: true 1937 + 1938 + '@esbuild/linux-riscv64@0.25.10': 1939 + optional: true 1940 + 1941 + '@esbuild/linux-s390x@0.25.10': 1942 + optional: true 1943 + 1944 + '@esbuild/linux-x64@0.25.10': 1945 + optional: true 1946 + 1947 + '@esbuild/netbsd-arm64@0.25.10': 1948 + optional: true 1949 + 1950 + '@esbuild/netbsd-x64@0.25.10': 1951 + optional: true 1952 + 1953 + '@esbuild/openbsd-arm64@0.25.10': 1954 + optional: true 1955 + 1956 + '@esbuild/openbsd-x64@0.25.10': 1957 + optional: true 1958 + 1959 + '@esbuild/openharmony-arm64@0.25.10': 1960 + optional: true 1961 + 1962 + '@esbuild/sunos-x64@0.25.10': 1963 + optional: true 1964 + 1965 + '@esbuild/win32-arm64@0.25.10': 1966 + optional: true 1967 + 1968 + '@esbuild/win32-ia32@0.25.10': 1969 + optional: true 1970 + 1971 + '@esbuild/win32-x64@0.25.10': 1972 + optional: true 1973 + 1974 + '@img/colour@1.0.0': 1975 + optional: true 1976 + 1977 + '@img/sharp-darwin-arm64@0.34.4': 1978 + optionalDependencies: 1979 + '@img/sharp-libvips-darwin-arm64': 1.2.3 1980 + optional: true 1981 + 1982 + '@img/sharp-darwin-x64@0.34.4': 1983 + optionalDependencies: 1984 + '@img/sharp-libvips-darwin-x64': 1.2.3 1985 + optional: true 1986 + 1987 + '@img/sharp-libvips-darwin-arm64@1.2.3': 1988 + optional: true 1989 + 1990 + '@img/sharp-libvips-darwin-x64@1.2.3': 1991 + optional: true 1992 + 1993 + '@img/sharp-libvips-linux-arm64@1.2.3': 1994 + optional: true 1995 + 1996 + '@img/sharp-libvips-linux-arm@1.2.3': 1997 + optional: true 1998 + 1999 + '@img/sharp-libvips-linux-ppc64@1.2.3': 2000 + optional: true 2001 + 2002 + '@img/sharp-libvips-linux-s390x@1.2.3': 2003 + optional: true 2004 + 2005 + '@img/sharp-libvips-linux-x64@1.2.3': 2006 + optional: true 2007 + 2008 + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': 2009 + optional: true 2010 + 2011 + '@img/sharp-libvips-linuxmusl-x64@1.2.3': 2012 + optional: true 2013 + 2014 + '@img/sharp-linux-arm64@0.34.4': 2015 + optionalDependencies: 2016 + '@img/sharp-libvips-linux-arm64': 1.2.3 2017 + optional: true 2018 + 2019 + '@img/sharp-linux-arm@0.34.4': 2020 + optionalDependencies: 2021 + '@img/sharp-libvips-linux-arm': 1.2.3 2022 + optional: true 2023 + 2024 + '@img/sharp-linux-ppc64@0.34.4': 2025 + optionalDependencies: 2026 + '@img/sharp-libvips-linux-ppc64': 1.2.3 2027 + optional: true 2028 + 2029 + '@img/sharp-linux-s390x@0.34.4': 2030 + optionalDependencies: 2031 + '@img/sharp-libvips-linux-s390x': 1.2.3 2032 + optional: true 2033 + 2034 + '@img/sharp-linux-x64@0.34.4': 2035 + optionalDependencies: 2036 + '@img/sharp-libvips-linux-x64': 1.2.3 2037 + optional: true 2038 + 2039 + '@img/sharp-linuxmusl-arm64@0.34.4': 2040 + optionalDependencies: 2041 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 2042 + optional: true 2043 + 2044 + '@img/sharp-linuxmusl-x64@0.34.4': 2045 + optionalDependencies: 2046 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 2047 + optional: true 2048 + 2049 + '@img/sharp-wasm32@0.34.4': 2050 + dependencies: 2051 + '@emnapi/runtime': 1.5.0 2052 + optional: true 2053 + 2054 + '@img/sharp-win32-arm64@0.34.4': 2055 + optional: true 2056 + 2057 + '@img/sharp-win32-ia32@0.34.4': 2058 + optional: true 2059 + 2060 + '@img/sharp-win32-x64@0.34.4': 2061 + optional: true 2062 + 2063 + '@jridgewell/gen-mapping@0.3.13': 2064 + dependencies: 2065 + '@jridgewell/sourcemap-codec': 1.5.5 2066 + '@jridgewell/trace-mapping': 0.3.31 2067 + 2068 + '@jridgewell/remapping@2.3.5': 2069 + dependencies: 2070 + '@jridgewell/gen-mapping': 0.3.13 2071 + '@jridgewell/trace-mapping': 0.3.31 2072 + 2073 + '@jridgewell/resolve-uri@3.1.2': {} 2074 + 2075 + '@jridgewell/sourcemap-codec@1.5.5': {} 2076 + 2077 + '@jridgewell/trace-mapping@0.3.31': 2078 + dependencies: 2079 + '@jridgewell/resolve-uri': 3.1.2 2080 + '@jridgewell/sourcemap-codec': 1.5.5 2081 + 2082 + '@oslojs/encoding@1.1.0': {} 2083 + 2084 + '@rolldown/pluginutils@1.0.0-beta.27': {} 2085 + 2086 + '@rollup/pluginutils@5.3.0(rollup@4.52.4)': 2087 + dependencies: 2088 + '@types/estree': 1.0.8 2089 + estree-walker: 2.0.2 2090 + picomatch: 4.0.3 2091 + optionalDependencies: 2092 + rollup: 4.52.4 2093 + 2094 + '@rollup/rollup-android-arm-eabi@4.52.4': 2095 + optional: true 2096 + 2097 + '@rollup/rollup-android-arm64@4.52.4': 2098 + optional: true 2099 + 2100 + '@rollup/rollup-darwin-arm64@4.52.4': 2101 + optional: true 2102 + 2103 + '@rollup/rollup-darwin-x64@4.52.4': 2104 + optional: true 2105 + 2106 + '@rollup/rollup-freebsd-arm64@4.52.4': 2107 + optional: true 2108 + 2109 + '@rollup/rollup-freebsd-x64@4.52.4': 2110 + optional: true 2111 + 2112 + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': 2113 + optional: true 2114 + 2115 + '@rollup/rollup-linux-arm-musleabihf@4.52.4': 2116 + optional: true 2117 + 2118 + '@rollup/rollup-linux-arm64-gnu@4.52.4': 2119 + optional: true 2120 + 2121 + '@rollup/rollup-linux-arm64-musl@4.52.4': 2122 + optional: true 2123 + 2124 + '@rollup/rollup-linux-loong64-gnu@4.52.4': 2125 + optional: true 2126 + 2127 + '@rollup/rollup-linux-ppc64-gnu@4.52.4': 2128 + optional: true 2129 + 2130 + '@rollup/rollup-linux-riscv64-gnu@4.52.4': 2131 + optional: true 2132 + 2133 + '@rollup/rollup-linux-riscv64-musl@4.52.4': 2134 + optional: true 2135 + 2136 + '@rollup/rollup-linux-s390x-gnu@4.52.4': 2137 + optional: true 2138 + 2139 + '@rollup/rollup-linux-x64-gnu@4.52.4': 2140 + optional: true 2141 + 2142 + '@rollup/rollup-linux-x64-musl@4.52.4': 2143 + optional: true 2144 + 2145 + '@rollup/rollup-openharmony-arm64@4.52.4': 2146 + optional: true 2147 + 2148 + '@rollup/rollup-win32-arm64-msvc@4.52.4': 2149 + optional: true 2150 + 2151 + '@rollup/rollup-win32-ia32-msvc@4.52.4': 2152 + optional: true 2153 + 2154 + '@rollup/rollup-win32-x64-gnu@4.52.4': 2155 + optional: true 2156 + 2157 + '@rollup/rollup-win32-x64-msvc@4.52.4': 2158 + optional: true 2159 + 2160 + '@shikijs/core@3.13.0': 2161 + dependencies: 2162 + '@shikijs/types': 3.13.0 2163 + '@shikijs/vscode-textmate': 10.0.2 2164 + '@types/hast': 3.0.4 2165 + hast-util-to-html: 9.0.5 2166 + 2167 + '@shikijs/engine-javascript@3.13.0': 2168 + dependencies: 2169 + '@shikijs/types': 3.13.0 2170 + '@shikijs/vscode-textmate': 10.0.2 2171 + oniguruma-to-es: 4.3.3 2172 + 2173 + '@shikijs/engine-oniguruma@3.13.0': 2174 + dependencies: 2175 + '@shikijs/types': 3.13.0 2176 + '@shikijs/vscode-textmate': 10.0.2 2177 + 2178 + '@shikijs/langs@3.13.0': 2179 + dependencies: 2180 + '@shikijs/types': 3.13.0 2181 + 2182 + '@shikijs/themes@3.13.0': 2183 + dependencies: 2184 + '@shikijs/types': 3.13.0 2185 + 2186 + '@shikijs/types@3.13.0': 2187 + dependencies: 2188 + '@shikijs/vscode-textmate': 10.0.2 2189 + '@types/hast': 3.0.4 2190 + 2191 + '@shikijs/vscode-textmate@10.0.2': {} 2192 + 2193 + '@swc/helpers@0.5.17': 2194 + dependencies: 2195 + tslib: 2.8.1 2196 + 2197 + '@types/babel__core@7.20.5': 2198 + dependencies: 2199 + '@babel/parser': 7.28.4 2200 + '@babel/types': 7.28.4 2201 + '@types/babel__generator': 7.27.0 2202 + '@types/babel__template': 7.4.4 2203 + '@types/babel__traverse': 7.28.0 2204 + 2205 + '@types/babel__generator@7.27.0': 2206 + dependencies: 2207 + '@babel/types': 7.28.4 2208 + 2209 + '@types/babel__template@7.4.4': 2210 + dependencies: 2211 + '@babel/parser': 7.28.4 2212 + '@babel/types': 7.28.4 2213 + 2214 + '@types/babel__traverse@7.28.0': 2215 + dependencies: 2216 + '@babel/types': 7.28.4 2217 + 2218 + '@types/debug@4.1.12': 2219 + dependencies: 2220 + '@types/ms': 2.1.0 2221 + 2222 + '@types/estree@1.0.8': {} 2223 + 2224 + '@types/fontkit@2.0.8': 2225 + dependencies: 2226 + '@types/node': 24.7.0 2227 + 2228 + '@types/hast@3.0.4': 2229 + dependencies: 2230 + '@types/unist': 3.0.3 2231 + 2232 + '@types/mdast@4.0.4': 2233 + dependencies: 2234 + '@types/unist': 3.0.3 2235 + 2236 + '@types/ms@2.1.0': {} 2237 + 2238 + '@types/nlcst@2.0.3': 2239 + dependencies: 2240 + '@types/unist': 3.0.3 2241 + 2242 + '@types/node@24.7.0': 2243 + dependencies: 2244 + undici-types: 7.14.0 2245 + 2246 + '@types/react-dom@19.2.1(@types/react@19.2.2)': 2247 + dependencies: 2248 + '@types/react': 19.2.2 2249 + 2250 + '@types/react@19.2.2': 2251 + dependencies: 2252 + csstype: 3.1.3 2253 + 2254 + '@types/unist@3.0.3': {} 2255 + 2256 + '@ungap/structured-clone@1.3.0': {} 2257 + 2258 + '@vitejs/plugin-react@4.7.0(vite@6.3.6(@types/node@24.7.0))': 2259 + dependencies: 2260 + '@babel/core': 7.28.4 2261 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) 2262 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) 2263 + '@rolldown/pluginutils': 1.0.0-beta.27 2264 + '@types/babel__core': 7.20.5 2265 + react-refresh: 0.17.0 2266 + vite: 6.3.6(@types/node@24.7.0) 2267 + transitivePeerDependencies: 2268 + - supports-color 2269 + 2270 + acorn@8.15.0: {} 2271 + 2272 + ansi-align@3.0.1: 2273 + dependencies: 2274 + string-width: 4.2.3 2275 + 2276 + ansi-regex@5.0.1: {} 2277 + 2278 + ansi-regex@6.2.2: {} 2279 + 2280 + ansi-styles@6.2.3: {} 2281 + 2282 + anymatch@3.1.3: 2283 + dependencies: 2284 + normalize-path: 3.0.0 2285 + picomatch: 2.3.1 2286 + 2287 + argparse@2.0.1: {} 2288 + 2289 + aria-query@5.3.2: {} 2290 + 2291 + array-iterate@2.0.1: {} 2292 + 2293 + astro@5.14.1(@types/node@24.7.0)(rollup@4.52.4)(typescript@5.9.3): 2294 + dependencies: 2295 + '@astrojs/compiler': 2.13.0 2296 + '@astrojs/internal-helpers': 0.7.3 2297 + '@astrojs/markdown-remark': 6.3.7 2298 + '@astrojs/telemetry': 3.3.0 2299 + '@capsizecss/unpack': 2.4.0 2300 + '@oslojs/encoding': 1.1.0 2301 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) 2302 + acorn: 8.15.0 2303 + aria-query: 5.3.2 2304 + axobject-query: 4.1.0 2305 + boxen: 8.0.1 2306 + ci-info: 4.3.1 2307 + clsx: 2.1.1 2308 + common-ancestor-path: 1.0.1 2309 + cookie: 1.0.2 2310 + cssesc: 3.0.0 2311 + debug: 4.4.3 2312 + deterministic-object-hash: 2.0.2 2313 + devalue: 5.3.2 2314 + diff: 5.2.0 2315 + dlv: 1.1.3 2316 + dset: 3.1.4 2317 + es-module-lexer: 1.7.0 2318 + esbuild: 0.25.10 2319 + estree-walker: 3.0.3 2320 + flattie: 1.1.1 2321 + fontace: 0.3.1 2322 + github-slugger: 2.0.0 2323 + html-escaper: 3.0.3 2324 + http-cache-semantics: 4.2.0 2325 + import-meta-resolve: 4.2.0 2326 + js-yaml: 4.1.0 2327 + kleur: 4.1.5 2328 + magic-string: 0.30.19 2329 + magicast: 0.3.5 2330 + mrmime: 2.0.1 2331 + neotraverse: 0.6.18 2332 + p-limit: 6.2.0 2333 + p-queue: 8.1.1 2334 + package-manager-detector: 1.4.0 2335 + picomatch: 4.0.3 2336 + prompts: 2.4.2 2337 + rehype: 13.0.2 2338 + semver: 7.7.2 2339 + shiki: 3.13.0 2340 + smol-toml: 1.4.2 2341 + tinyexec: 0.3.2 2342 + tinyglobby: 0.2.15 2343 + tsconfck: 3.1.6(typescript@5.9.3) 2344 + ultrahtml: 1.6.0 2345 + unifont: 0.5.2 2346 + unist-util-visit: 5.0.0 2347 + unstorage: 1.17.1 2348 + vfile: 6.0.3 2349 + vite: 6.3.6(@types/node@24.7.0) 2350 + vitefu: 1.1.1(vite@6.3.6(@types/node@24.7.0)) 2351 + xxhash-wasm: 1.1.0 2352 + yargs-parser: 21.1.1 2353 + yocto-spinner: 0.2.3 2354 + zod: 3.25.76 2355 + zod-to-json-schema: 3.24.6(zod@3.25.76) 2356 + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) 2357 + optionalDependencies: 2358 + sharp: 0.34.4 2359 + transitivePeerDependencies: 2360 + - '@azure/app-configuration' 2361 + - '@azure/cosmos' 2362 + - '@azure/data-tables' 2363 + - '@azure/identity' 2364 + - '@azure/keyvault-secrets' 2365 + - '@azure/storage-blob' 2366 + - '@capacitor/preferences' 2367 + - '@deno/kv' 2368 + - '@netlify/blobs' 2369 + - '@planetscale/database' 2370 + - '@types/node' 2371 + - '@upstash/redis' 2372 + - '@vercel/blob' 2373 + - '@vercel/functions' 2374 + - '@vercel/kv' 2375 + - aws4fetch 2376 + - db0 2377 + - encoding 2378 + - idb-keyval 2379 + - ioredis 2380 + - jiti 2381 + - less 2382 + - lightningcss 2383 + - rollup 2384 + - sass 2385 + - sass-embedded 2386 + - stylus 2387 + - sugarss 2388 + - supports-color 2389 + - terser 2390 + - tsx 2391 + - typescript 2392 + - uploadthing 2393 + - yaml 2394 + 2395 + axobject-query@4.1.0: {} 2396 + 2397 + bail@2.0.2: {} 2398 + 2399 + base-64@1.0.0: {} 2400 + 2401 + base64-js@1.5.1: {} 2402 + 2403 + baseline-browser-mapping@2.8.13: {} 2404 + 2405 + blob-to-buffer@1.2.9: {} 2406 + 2407 + boxen@8.0.1: 2408 + dependencies: 2409 + ansi-align: 3.0.1 2410 + camelcase: 8.0.0 2411 + chalk: 5.6.2 2412 + cli-boxes: 3.0.0 2413 + string-width: 7.2.0 2414 + type-fest: 4.41.0 2415 + widest-line: 5.0.0 2416 + wrap-ansi: 9.0.2 2417 + 2418 + brotli@1.3.3: 2419 + dependencies: 2420 + base64-js: 1.5.1 2421 + 2422 + browserslist@4.26.3: 2423 + dependencies: 2424 + baseline-browser-mapping: 2.8.13 2425 + caniuse-lite: 1.0.30001748 2426 + electron-to-chromium: 1.5.232 2427 + node-releases: 2.0.23 2428 + update-browserslist-db: 1.1.3(browserslist@4.26.3) 2429 + 2430 + camelcase@8.0.0: {} 2431 + 2432 + caniuse-lite@1.0.30001748: {} 2433 + 2434 + ccount@2.0.1: {} 2435 + 2436 + chalk@5.6.2: {} 2437 + 2438 + character-entities-html4@2.1.0: {} 2439 + 2440 + character-entities-legacy@3.0.0: {} 2441 + 2442 + character-entities@2.0.2: {} 2443 + 2444 + chokidar@4.0.3: 2445 + dependencies: 2446 + readdirp: 4.1.2 2447 + 2448 + ci-info@4.3.1: {} 2449 + 2450 + cli-boxes@3.0.0: {} 2451 + 2452 + clone@2.1.2: {} 2453 + 2454 + clsx@2.1.1: {} 2455 + 2456 + comma-separated-tokens@2.0.3: {} 2457 + 2458 + common-ancestor-path@1.0.1: {} 2459 + 2460 + convert-source-map@2.0.0: {} 2461 + 2462 + cookie-es@1.2.2: {} 2463 + 2464 + cookie@1.0.2: {} 2465 + 2466 + cross-fetch@3.2.0: 2467 + dependencies: 2468 + node-fetch: 2.7.0 2469 + transitivePeerDependencies: 2470 + - encoding 2471 + 2472 + crossws@0.3.5: 2473 + dependencies: 2474 + uncrypto: 0.1.3 2475 + 2476 + css-tree@3.1.0: 2477 + dependencies: 2478 + mdn-data: 2.12.2 2479 + source-map-js: 1.2.1 2480 + 2481 + cssesc@3.0.0: {} 2482 + 2483 + csstype@3.1.3: {} 2484 + 2485 + debug@4.4.3: 2486 + dependencies: 2487 + ms: 2.1.3 2488 + 2489 + decode-named-character-reference@1.2.0: 2490 + dependencies: 2491 + character-entities: 2.0.2 2492 + 2493 + defu@6.1.4: {} 2494 + 2495 + dequal@2.0.3: {} 2496 + 2497 + destr@2.0.5: {} 2498 + 2499 + detect-libc@2.1.2: 2500 + optional: true 2501 + 2502 + deterministic-object-hash@2.0.2: 2503 + dependencies: 2504 + base-64: 1.0.0 2505 + 2506 + devalue@5.3.2: {} 2507 + 2508 + devlop@1.1.0: 2509 + dependencies: 2510 + dequal: 2.0.3 2511 + 2512 + dfa@1.2.0: {} 2513 + 2514 + diff@5.2.0: {} 2515 + 2516 + dlv@1.1.3: {} 2517 + 2518 + dset@3.1.4: {} 2519 + 2520 + electron-to-chromium@1.5.232: {} 2521 + 2522 + emoji-regex@10.5.0: {} 2523 + 2524 + emoji-regex@8.0.0: {} 2525 + 2526 + entities@6.0.1: {} 2527 + 2528 + es-module-lexer@1.7.0: {} 2529 + 2530 + esbuild@0.25.10: 2531 + optionalDependencies: 2532 + '@esbuild/aix-ppc64': 0.25.10 2533 + '@esbuild/android-arm': 0.25.10 2534 + '@esbuild/android-arm64': 0.25.10 2535 + '@esbuild/android-x64': 0.25.10 2536 + '@esbuild/darwin-arm64': 0.25.10 2537 + '@esbuild/darwin-x64': 0.25.10 2538 + '@esbuild/freebsd-arm64': 0.25.10 2539 + '@esbuild/freebsd-x64': 0.25.10 2540 + '@esbuild/linux-arm': 0.25.10 2541 + '@esbuild/linux-arm64': 0.25.10 2542 + '@esbuild/linux-ia32': 0.25.10 2543 + '@esbuild/linux-loong64': 0.25.10 2544 + '@esbuild/linux-mips64el': 0.25.10 2545 + '@esbuild/linux-ppc64': 0.25.10 2546 + '@esbuild/linux-riscv64': 0.25.10 2547 + '@esbuild/linux-s390x': 0.25.10 2548 + '@esbuild/linux-x64': 0.25.10 2549 + '@esbuild/netbsd-arm64': 0.25.10 2550 + '@esbuild/netbsd-x64': 0.25.10 2551 + '@esbuild/openbsd-arm64': 0.25.10 2552 + '@esbuild/openbsd-x64': 0.25.10 2553 + '@esbuild/openharmony-arm64': 0.25.10 2554 + '@esbuild/sunos-x64': 0.25.10 2555 + '@esbuild/win32-arm64': 0.25.10 2556 + '@esbuild/win32-ia32': 0.25.10 2557 + '@esbuild/win32-x64': 0.25.10 2558 + 2559 + escalade@3.2.0: {} 2560 + 2561 + escape-string-regexp@5.0.0: {} 2562 + 2563 + estree-walker@2.0.2: {} 2564 + 2565 + estree-walker@3.0.3: 2566 + dependencies: 2567 + '@types/estree': 1.0.8 2568 + 2569 + eventemitter3@5.0.1: {} 2570 + 2571 + extend@3.0.2: {} 2572 + 2573 + fast-deep-equal@3.1.3: {} 2574 + 2575 + fdir@6.5.0(picomatch@4.0.3): 2576 + optionalDependencies: 2577 + picomatch: 4.0.3 2578 + 2579 + flattie@1.1.1: {} 2580 + 2581 + fontace@0.3.1: 2582 + dependencies: 2583 + '@types/fontkit': 2.0.8 2584 + fontkit: 2.0.4 2585 + 2586 + fontkit@2.0.4: 2587 + dependencies: 2588 + '@swc/helpers': 0.5.17 2589 + brotli: 1.3.3 2590 + clone: 2.1.2 2591 + dfa: 1.2.0 2592 + fast-deep-equal: 3.1.3 2593 + restructure: 3.0.2 2594 + tiny-inflate: 1.0.3 2595 + unicode-properties: 1.4.1 2596 + unicode-trie: 2.0.0 2597 + 2598 + fsevents@2.3.3: 2599 + optional: true 2600 + 2601 + gensync@1.0.0-beta.2: {} 2602 + 2603 + get-east-asian-width@1.4.0: {} 2604 + 2605 + github-slugger@2.0.0: {} 2606 + 2607 + h3@1.15.4: 2608 + dependencies: 2609 + cookie-es: 1.2.2 2610 + crossws: 0.3.5 2611 + defu: 6.1.4 2612 + destr: 2.0.5 2613 + iron-webcrypto: 1.2.1 2614 + node-mock-http: 1.0.3 2615 + radix3: 1.1.2 2616 + ufo: 1.6.1 2617 + uncrypto: 0.1.3 2618 + 2619 + hast-util-from-html@2.0.3: 2620 + dependencies: 2621 + '@types/hast': 3.0.4 2622 + devlop: 1.1.0 2623 + hast-util-from-parse5: 8.0.3 2624 + parse5: 7.3.0 2625 + vfile: 6.0.3 2626 + vfile-message: 4.0.3 2627 + 2628 + hast-util-from-parse5@8.0.3: 2629 + dependencies: 2630 + '@types/hast': 3.0.4 2631 + '@types/unist': 3.0.3 2632 + devlop: 1.1.0 2633 + hastscript: 9.0.1 2634 + property-information: 7.1.0 2635 + vfile: 6.0.3 2636 + vfile-location: 5.0.3 2637 + web-namespaces: 2.0.1 2638 + 2639 + hast-util-is-element@3.0.0: 2640 + dependencies: 2641 + '@types/hast': 3.0.4 2642 + 2643 + hast-util-parse-selector@4.0.0: 2644 + dependencies: 2645 + '@types/hast': 3.0.4 2646 + 2647 + hast-util-raw@9.1.0: 2648 + dependencies: 2649 + '@types/hast': 3.0.4 2650 + '@types/unist': 3.0.3 2651 + '@ungap/structured-clone': 1.3.0 2652 + hast-util-from-parse5: 8.0.3 2653 + hast-util-to-parse5: 8.0.0 2654 + html-void-elements: 3.0.0 2655 + mdast-util-to-hast: 13.2.0 2656 + parse5: 7.3.0 2657 + unist-util-position: 5.0.0 2658 + unist-util-visit: 5.0.0 2659 + vfile: 6.0.3 2660 + web-namespaces: 2.0.1 2661 + zwitch: 2.0.4 2662 + 2663 + hast-util-to-html@9.0.5: 2664 + dependencies: 2665 + '@types/hast': 3.0.4 2666 + '@types/unist': 3.0.3 2667 + ccount: 2.0.1 2668 + comma-separated-tokens: 2.0.3 2669 + hast-util-whitespace: 3.0.0 2670 + html-void-elements: 3.0.0 2671 + mdast-util-to-hast: 13.2.0 2672 + property-information: 7.1.0 2673 + space-separated-tokens: 2.0.2 2674 + stringify-entities: 4.0.4 2675 + zwitch: 2.0.4 2676 + 2677 + hast-util-to-parse5@8.0.0: 2678 + dependencies: 2679 + '@types/hast': 3.0.4 2680 + comma-separated-tokens: 2.0.3 2681 + devlop: 1.1.0 2682 + property-information: 6.5.0 2683 + space-separated-tokens: 2.0.2 2684 + web-namespaces: 2.0.1 2685 + zwitch: 2.0.4 2686 + 2687 + hast-util-to-text@4.0.2: 2688 + dependencies: 2689 + '@types/hast': 3.0.4 2690 + '@types/unist': 3.0.3 2691 + hast-util-is-element: 3.0.0 2692 + unist-util-find-after: 5.0.0 2693 + 2694 + hast-util-whitespace@3.0.0: 2695 + dependencies: 2696 + '@types/hast': 3.0.4 2697 + 2698 + hastscript@9.0.1: 2699 + dependencies: 2700 + '@types/hast': 3.0.4 2701 + comma-separated-tokens: 2.0.3 2702 + hast-util-parse-selector: 4.0.0 2703 + property-information: 7.1.0 2704 + space-separated-tokens: 2.0.2 2705 + 2706 + html-escaper@3.0.3: {} 2707 + 2708 + html-void-elements@3.0.0: {} 2709 + 2710 + http-cache-semantics@4.2.0: {} 2711 + 2712 + import-meta-resolve@4.2.0: {} 2713 + 2714 + iron-webcrypto@1.2.1: {} 2715 + 2716 + is-docker@3.0.0: {} 2717 + 2718 + is-fullwidth-code-point@3.0.0: {} 2719 + 2720 + is-inside-container@1.0.0: 2721 + dependencies: 2722 + is-docker: 3.0.0 2723 + 2724 + is-plain-obj@4.1.0: {} 2725 + 2726 + is-wsl@3.1.0: 2727 + dependencies: 2728 + is-inside-container: 1.0.0 2729 + 2730 + js-tokens@4.0.0: {} 2731 + 2732 + js-yaml@4.1.0: 2733 + dependencies: 2734 + argparse: 2.0.1 2735 + 2736 + jsesc@3.1.0: {} 2737 + 2738 + json5@2.2.3: {} 2739 + 2740 + kleur@3.0.3: {} 2741 + 2742 + kleur@4.1.5: {} 2743 + 2744 + longest-streak@3.1.0: {} 2745 + 2746 + lru-cache@10.4.3: {} 2747 + 2748 + lru-cache@5.1.1: 2749 + dependencies: 2750 + yallist: 3.1.1 2751 + 2752 + magic-string@0.30.19: 2753 + dependencies: 2754 + '@jridgewell/sourcemap-codec': 1.5.5 2755 + 2756 + magicast@0.3.5: 2757 + dependencies: 2758 + '@babel/parser': 7.28.4 2759 + '@babel/types': 7.28.4 2760 + source-map-js: 1.2.1 2761 + 2762 + markdown-table@3.0.4: {} 2763 + 2764 + mdast-util-definitions@6.0.0: 2765 + dependencies: 2766 + '@types/mdast': 4.0.4 2767 + '@types/unist': 3.0.3 2768 + unist-util-visit: 5.0.0 2769 + 2770 + mdast-util-find-and-replace@3.0.2: 2771 + dependencies: 2772 + '@types/mdast': 4.0.4 2773 + escape-string-regexp: 5.0.0 2774 + unist-util-is: 6.0.0 2775 + unist-util-visit-parents: 6.0.1 2776 + 2777 + mdast-util-from-markdown@2.0.2: 2778 + dependencies: 2779 + '@types/mdast': 4.0.4 2780 + '@types/unist': 3.0.3 2781 + decode-named-character-reference: 1.2.0 2782 + devlop: 1.1.0 2783 + mdast-util-to-string: 4.0.0 2784 + micromark: 4.0.2 2785 + micromark-util-decode-numeric-character-reference: 2.0.2 2786 + micromark-util-decode-string: 2.0.1 2787 + micromark-util-normalize-identifier: 2.0.1 2788 + micromark-util-symbol: 2.0.1 2789 + micromark-util-types: 2.0.2 2790 + unist-util-stringify-position: 4.0.0 2791 + transitivePeerDependencies: 2792 + - supports-color 2793 + 2794 + mdast-util-gfm-autolink-literal@2.0.1: 2795 + dependencies: 2796 + '@types/mdast': 4.0.4 2797 + ccount: 2.0.1 2798 + devlop: 1.1.0 2799 + mdast-util-find-and-replace: 3.0.2 2800 + micromark-util-character: 2.1.1 2801 + 2802 + mdast-util-gfm-footnote@2.1.0: 2803 + dependencies: 2804 + '@types/mdast': 4.0.4 2805 + devlop: 1.1.0 2806 + mdast-util-from-markdown: 2.0.2 2807 + mdast-util-to-markdown: 2.1.2 2808 + micromark-util-normalize-identifier: 2.0.1 2809 + transitivePeerDependencies: 2810 + - supports-color 2811 + 2812 + mdast-util-gfm-strikethrough@2.0.0: 2813 + dependencies: 2814 + '@types/mdast': 4.0.4 2815 + mdast-util-from-markdown: 2.0.2 2816 + mdast-util-to-markdown: 2.1.2 2817 + transitivePeerDependencies: 2818 + - supports-color 2819 + 2820 + mdast-util-gfm-table@2.0.0: 2821 + dependencies: 2822 + '@types/mdast': 4.0.4 2823 + devlop: 1.1.0 2824 + markdown-table: 3.0.4 2825 + mdast-util-from-markdown: 2.0.2 2826 + mdast-util-to-markdown: 2.1.2 2827 + transitivePeerDependencies: 2828 + - supports-color 2829 + 2830 + mdast-util-gfm-task-list-item@2.0.0: 2831 + dependencies: 2832 + '@types/mdast': 4.0.4 2833 + devlop: 1.1.0 2834 + mdast-util-from-markdown: 2.0.2 2835 + mdast-util-to-markdown: 2.1.2 2836 + transitivePeerDependencies: 2837 + - supports-color 2838 + 2839 + mdast-util-gfm@3.1.0: 2840 + dependencies: 2841 + mdast-util-from-markdown: 2.0.2 2842 + mdast-util-gfm-autolink-literal: 2.0.1 2843 + mdast-util-gfm-footnote: 2.1.0 2844 + mdast-util-gfm-strikethrough: 2.0.0 2845 + mdast-util-gfm-table: 2.0.0 2846 + mdast-util-gfm-task-list-item: 2.0.0 2847 + mdast-util-to-markdown: 2.1.2 2848 + transitivePeerDependencies: 2849 + - supports-color 2850 + 2851 + mdast-util-phrasing@4.1.0: 2852 + dependencies: 2853 + '@types/mdast': 4.0.4 2854 + unist-util-is: 6.0.0 2855 + 2856 + mdast-util-to-hast@13.2.0: 2857 + dependencies: 2858 + '@types/hast': 3.0.4 2859 + '@types/mdast': 4.0.4 2860 + '@ungap/structured-clone': 1.3.0 2861 + devlop: 1.1.0 2862 + micromark-util-sanitize-uri: 2.0.1 2863 + trim-lines: 3.0.1 2864 + unist-util-position: 5.0.0 2865 + unist-util-visit: 5.0.0 2866 + vfile: 6.0.3 2867 + 2868 + mdast-util-to-markdown@2.1.2: 2869 + dependencies: 2870 + '@types/mdast': 4.0.4 2871 + '@types/unist': 3.0.3 2872 + longest-streak: 3.1.0 2873 + mdast-util-phrasing: 4.1.0 2874 + mdast-util-to-string: 4.0.0 2875 + micromark-util-classify-character: 2.0.1 2876 + micromark-util-decode-string: 2.0.1 2877 + unist-util-visit: 5.0.0 2878 + zwitch: 2.0.4 2879 + 2880 + mdast-util-to-string@4.0.0: 2881 + dependencies: 2882 + '@types/mdast': 4.0.4 2883 + 2884 + mdn-data@2.12.2: {} 2885 + 2886 + micromark-core-commonmark@2.0.3: 2887 + dependencies: 2888 + decode-named-character-reference: 1.2.0 2889 + devlop: 1.1.0 2890 + micromark-factory-destination: 2.0.1 2891 + micromark-factory-label: 2.0.1 2892 + micromark-factory-space: 2.0.1 2893 + micromark-factory-title: 2.0.1 2894 + micromark-factory-whitespace: 2.0.1 2895 + micromark-util-character: 2.1.1 2896 + micromark-util-chunked: 2.0.1 2897 + micromark-util-classify-character: 2.0.1 2898 + micromark-util-html-tag-name: 2.0.1 2899 + micromark-util-normalize-identifier: 2.0.1 2900 + micromark-util-resolve-all: 2.0.1 2901 + micromark-util-subtokenize: 2.1.0 2902 + micromark-util-symbol: 2.0.1 2903 + micromark-util-types: 2.0.2 2904 + 2905 + micromark-extension-gfm-autolink-literal@2.1.0: 2906 + dependencies: 2907 + micromark-util-character: 2.1.1 2908 + micromark-util-sanitize-uri: 2.0.1 2909 + micromark-util-symbol: 2.0.1 2910 + micromark-util-types: 2.0.2 2911 + 2912 + micromark-extension-gfm-footnote@2.1.0: 2913 + dependencies: 2914 + devlop: 1.1.0 2915 + micromark-core-commonmark: 2.0.3 2916 + micromark-factory-space: 2.0.1 2917 + micromark-util-character: 2.1.1 2918 + micromark-util-normalize-identifier: 2.0.1 2919 + micromark-util-sanitize-uri: 2.0.1 2920 + micromark-util-symbol: 2.0.1 2921 + micromark-util-types: 2.0.2 2922 + 2923 + micromark-extension-gfm-strikethrough@2.1.0: 2924 + dependencies: 2925 + devlop: 1.1.0 2926 + micromark-util-chunked: 2.0.1 2927 + micromark-util-classify-character: 2.0.1 2928 + micromark-util-resolve-all: 2.0.1 2929 + micromark-util-symbol: 2.0.1 2930 + micromark-util-types: 2.0.2 2931 + 2932 + micromark-extension-gfm-table@2.1.1: 2933 + dependencies: 2934 + devlop: 1.1.0 2935 + micromark-factory-space: 2.0.1 2936 + micromark-util-character: 2.1.1 2937 + micromark-util-symbol: 2.0.1 2938 + micromark-util-types: 2.0.2 2939 + 2940 + micromark-extension-gfm-tagfilter@2.0.0: 2941 + dependencies: 2942 + micromark-util-types: 2.0.2 2943 + 2944 + micromark-extension-gfm-task-list-item@2.1.0: 2945 + dependencies: 2946 + devlop: 1.1.0 2947 + micromark-factory-space: 2.0.1 2948 + micromark-util-character: 2.1.1 2949 + micromark-util-symbol: 2.0.1 2950 + micromark-util-types: 2.0.2 2951 + 2952 + micromark-extension-gfm@3.0.0: 2953 + dependencies: 2954 + micromark-extension-gfm-autolink-literal: 2.1.0 2955 + micromark-extension-gfm-footnote: 2.1.0 2956 + micromark-extension-gfm-strikethrough: 2.1.0 2957 + micromark-extension-gfm-table: 2.1.1 2958 + micromark-extension-gfm-tagfilter: 2.0.0 2959 + micromark-extension-gfm-task-list-item: 2.1.0 2960 + micromark-util-combine-extensions: 2.0.1 2961 + micromark-util-types: 2.0.2 2962 + 2963 + micromark-factory-destination@2.0.1: 2964 + dependencies: 2965 + micromark-util-character: 2.1.1 2966 + micromark-util-symbol: 2.0.1 2967 + micromark-util-types: 2.0.2 2968 + 2969 + micromark-factory-label@2.0.1: 2970 + dependencies: 2971 + devlop: 1.1.0 2972 + micromark-util-character: 2.1.1 2973 + micromark-util-symbol: 2.0.1 2974 + micromark-util-types: 2.0.2 2975 + 2976 + micromark-factory-space@2.0.1: 2977 + dependencies: 2978 + micromark-util-character: 2.1.1 2979 + micromark-util-types: 2.0.2 2980 + 2981 + micromark-factory-title@2.0.1: 2982 + dependencies: 2983 + micromark-factory-space: 2.0.1 2984 + micromark-util-character: 2.1.1 2985 + micromark-util-symbol: 2.0.1 2986 + micromark-util-types: 2.0.2 2987 + 2988 + micromark-factory-whitespace@2.0.1: 2989 + dependencies: 2990 + micromark-factory-space: 2.0.1 2991 + micromark-util-character: 2.1.1 2992 + micromark-util-symbol: 2.0.1 2993 + micromark-util-types: 2.0.2 2994 + 2995 + micromark-util-character@2.1.1: 2996 + dependencies: 2997 + micromark-util-symbol: 2.0.1 2998 + micromark-util-types: 2.0.2 2999 + 3000 + micromark-util-chunked@2.0.1: 3001 + dependencies: 3002 + micromark-util-symbol: 2.0.1 3003 + 3004 + micromark-util-classify-character@2.0.1: 3005 + dependencies: 3006 + micromark-util-character: 2.1.1 3007 + micromark-util-symbol: 2.0.1 3008 + micromark-util-types: 2.0.2 3009 + 3010 + micromark-util-combine-extensions@2.0.1: 3011 + dependencies: 3012 + micromark-util-chunked: 2.0.1 3013 + micromark-util-types: 2.0.2 3014 + 3015 + micromark-util-decode-numeric-character-reference@2.0.2: 3016 + dependencies: 3017 + micromark-util-symbol: 2.0.1 3018 + 3019 + micromark-util-decode-string@2.0.1: 3020 + dependencies: 3021 + decode-named-character-reference: 1.2.0 3022 + micromark-util-character: 2.1.1 3023 + micromark-util-decode-numeric-character-reference: 2.0.2 3024 + micromark-util-symbol: 2.0.1 3025 + 3026 + micromark-util-encode@2.0.1: {} 3027 + 3028 + micromark-util-html-tag-name@2.0.1: {} 3029 + 3030 + micromark-util-normalize-identifier@2.0.1: 3031 + dependencies: 3032 + micromark-util-symbol: 2.0.1 3033 + 3034 + micromark-util-resolve-all@2.0.1: 3035 + dependencies: 3036 + micromark-util-types: 2.0.2 3037 + 3038 + micromark-util-sanitize-uri@2.0.1: 3039 + dependencies: 3040 + micromark-util-character: 2.1.1 3041 + micromark-util-encode: 2.0.1 3042 + micromark-util-symbol: 2.0.1 3043 + 3044 + micromark-util-subtokenize@2.1.0: 3045 + dependencies: 3046 + devlop: 1.1.0 3047 + micromark-util-chunked: 2.0.1 3048 + micromark-util-symbol: 2.0.1 3049 + micromark-util-types: 2.0.2 3050 + 3051 + micromark-util-symbol@2.0.1: {} 3052 + 3053 + micromark-util-types@2.0.2: {} 3054 + 3055 + micromark@4.0.2: 3056 + dependencies: 3057 + '@types/debug': 4.1.12 3058 + debug: 4.4.3 3059 + decode-named-character-reference: 1.2.0 3060 + devlop: 1.1.0 3061 + micromark-core-commonmark: 2.0.3 3062 + micromark-factory-space: 2.0.1 3063 + micromark-util-character: 2.1.1 3064 + micromark-util-chunked: 2.0.1 3065 + micromark-util-combine-extensions: 2.0.1 3066 + micromark-util-decode-numeric-character-reference: 2.0.2 3067 + micromark-util-encode: 2.0.1 3068 + micromark-util-normalize-identifier: 2.0.1 3069 + micromark-util-resolve-all: 2.0.1 3070 + micromark-util-sanitize-uri: 2.0.1 3071 + micromark-util-subtokenize: 2.1.0 3072 + micromark-util-symbol: 2.0.1 3073 + micromark-util-types: 2.0.2 3074 + transitivePeerDependencies: 3075 + - supports-color 3076 + 3077 + mrmime@2.0.1: {} 3078 + 3079 + ms@2.1.3: {} 3080 + 3081 + nanoid@3.3.11: {} 3082 + 3083 + neotraverse@0.6.18: {} 3084 + 3085 + nlcst-to-string@4.0.0: 3086 + dependencies: 3087 + '@types/nlcst': 2.0.3 3088 + 3089 + node-fetch-native@1.6.7: {} 3090 + 3091 + node-fetch@2.7.0: 3092 + dependencies: 3093 + whatwg-url: 5.0.0 3094 + 3095 + node-mock-http@1.0.3: {} 3096 + 3097 + node-releases@2.0.23: {} 3098 + 3099 + normalize-path@3.0.0: {} 3100 + 3101 + ofetch@1.4.1: 3102 + dependencies: 3103 + destr: 2.0.5 3104 + node-fetch-native: 1.6.7 3105 + ufo: 1.6.1 3106 + 3107 + ohash@2.0.11: {} 3108 + 3109 + oniguruma-parser@0.12.1: {} 3110 + 3111 + oniguruma-to-es@4.3.3: 3112 + dependencies: 3113 + oniguruma-parser: 0.12.1 3114 + regex: 6.0.1 3115 + regex-recursion: 6.0.2 3116 + 3117 + p-limit@6.2.0: 3118 + dependencies: 3119 + yocto-queue: 1.2.1 3120 + 3121 + p-queue@8.1.1: 3122 + dependencies: 3123 + eventemitter3: 5.0.1 3124 + p-timeout: 6.1.4 3125 + 3126 + p-timeout@6.1.4: {} 3127 + 3128 + package-manager-detector@1.4.0: {} 3129 + 3130 + pako@0.2.9: {} 3131 + 3132 + parse-latin@7.0.0: 3133 + dependencies: 3134 + '@types/nlcst': 2.0.3 3135 + '@types/unist': 3.0.3 3136 + nlcst-to-string: 4.0.0 3137 + unist-util-modify-children: 4.0.0 3138 + unist-util-visit-children: 3.0.0 3139 + vfile: 6.0.3 3140 + 3141 + parse5@7.3.0: 3142 + dependencies: 3143 + entities: 6.0.1 3144 + 3145 + picocolors@1.1.1: {} 3146 + 3147 + picomatch@2.3.1: {} 3148 + 3149 + picomatch@4.0.3: {} 3150 + 3151 + postcss@8.5.6: 3152 + dependencies: 3153 + nanoid: 3.3.11 3154 + picocolors: 1.1.1 3155 + source-map-js: 1.2.1 3156 + 3157 + prismjs@1.30.0: {} 3158 + 3159 + prompts@2.4.2: 3160 + dependencies: 3161 + kleur: 3.0.3 3162 + sisteransi: 1.0.5 3163 + 3164 + property-information@6.5.0: {} 3165 + 3166 + property-information@7.1.0: {} 3167 + 3168 + radix3@1.1.2: {} 3169 + 3170 + react-dom@19.2.0(react@19.2.0): 3171 + dependencies: 3172 + react: 19.2.0 3173 + scheduler: 0.27.0 3174 + 3175 + react-refresh@0.17.0: {} 3176 + 3177 + react@19.2.0: {} 3178 + 3179 + readdirp@4.1.2: {} 3180 + 3181 + regex-recursion@6.0.2: 3182 + dependencies: 3183 + regex-utilities: 2.3.0 3184 + 3185 + regex-utilities@2.3.0: {} 3186 + 3187 + regex@6.0.1: 3188 + dependencies: 3189 + regex-utilities: 2.3.0 3190 + 3191 + rehype-parse@9.0.1: 3192 + dependencies: 3193 + '@types/hast': 3.0.4 3194 + hast-util-from-html: 2.0.3 3195 + unified: 11.0.5 3196 + 3197 + rehype-raw@7.0.0: 3198 + dependencies: 3199 + '@types/hast': 3.0.4 3200 + hast-util-raw: 9.1.0 3201 + vfile: 6.0.3 3202 + 3203 + rehype-stringify@10.0.1: 3204 + dependencies: 3205 + '@types/hast': 3.0.4 3206 + hast-util-to-html: 9.0.5 3207 + unified: 11.0.5 3208 + 3209 + rehype@13.0.2: 3210 + dependencies: 3211 + '@types/hast': 3.0.4 3212 + rehype-parse: 9.0.1 3213 + rehype-stringify: 10.0.1 3214 + unified: 11.0.5 3215 + 3216 + remark-gfm@4.0.1: 3217 + dependencies: 3218 + '@types/mdast': 4.0.4 3219 + mdast-util-gfm: 3.1.0 3220 + micromark-extension-gfm: 3.0.0 3221 + remark-parse: 11.0.0 3222 + remark-stringify: 11.0.0 3223 + unified: 11.0.5 3224 + transitivePeerDependencies: 3225 + - supports-color 3226 + 3227 + remark-parse@11.0.0: 3228 + dependencies: 3229 + '@types/mdast': 4.0.4 3230 + mdast-util-from-markdown: 2.0.2 3231 + micromark-util-types: 2.0.2 3232 + unified: 11.0.5 3233 + transitivePeerDependencies: 3234 + - supports-color 3235 + 3236 + remark-rehype@11.1.2: 3237 + dependencies: 3238 + '@types/hast': 3.0.4 3239 + '@types/mdast': 4.0.4 3240 + mdast-util-to-hast: 13.2.0 3241 + unified: 11.0.5 3242 + vfile: 6.0.3 3243 + 3244 + remark-smartypants@3.0.2: 3245 + dependencies: 3246 + retext: 9.0.0 3247 + retext-smartypants: 6.2.0 3248 + unified: 11.0.5 3249 + unist-util-visit: 5.0.0 3250 + 3251 + remark-stringify@11.0.0: 3252 + dependencies: 3253 + '@types/mdast': 4.0.4 3254 + mdast-util-to-markdown: 2.1.2 3255 + unified: 11.0.5 3256 + 3257 + restructure@3.0.2: {} 3258 + 3259 + retext-latin@4.0.0: 3260 + dependencies: 3261 + '@types/nlcst': 2.0.3 3262 + parse-latin: 7.0.0 3263 + unified: 11.0.5 3264 + 3265 + retext-smartypants@6.2.0: 3266 + dependencies: 3267 + '@types/nlcst': 2.0.3 3268 + nlcst-to-string: 4.0.0 3269 + unist-util-visit: 5.0.0 3270 + 3271 + retext-stringify@4.0.0: 3272 + dependencies: 3273 + '@types/nlcst': 2.0.3 3274 + nlcst-to-string: 4.0.0 3275 + unified: 11.0.5 3276 + 3277 + retext@9.0.0: 3278 + dependencies: 3279 + '@types/nlcst': 2.0.3 3280 + retext-latin: 4.0.0 3281 + retext-stringify: 4.0.0 3282 + unified: 11.0.5 3283 + 3284 + rollup@4.52.4: 3285 + dependencies: 3286 + '@types/estree': 1.0.8 3287 + optionalDependencies: 3288 + '@rollup/rollup-android-arm-eabi': 4.52.4 3289 + '@rollup/rollup-android-arm64': 4.52.4 3290 + '@rollup/rollup-darwin-arm64': 4.52.4 3291 + '@rollup/rollup-darwin-x64': 4.52.4 3292 + '@rollup/rollup-freebsd-arm64': 4.52.4 3293 + '@rollup/rollup-freebsd-x64': 4.52.4 3294 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 3295 + '@rollup/rollup-linux-arm-musleabihf': 4.52.4 3296 + '@rollup/rollup-linux-arm64-gnu': 4.52.4 3297 + '@rollup/rollup-linux-arm64-musl': 4.52.4 3298 + '@rollup/rollup-linux-loong64-gnu': 4.52.4 3299 + '@rollup/rollup-linux-ppc64-gnu': 4.52.4 3300 + '@rollup/rollup-linux-riscv64-gnu': 4.52.4 3301 + '@rollup/rollup-linux-riscv64-musl': 4.52.4 3302 + '@rollup/rollup-linux-s390x-gnu': 4.52.4 3303 + '@rollup/rollup-linux-x64-gnu': 4.52.4 3304 + '@rollup/rollup-linux-x64-musl': 4.52.4 3305 + '@rollup/rollup-openharmony-arm64': 4.52.4 3306 + '@rollup/rollup-win32-arm64-msvc': 4.52.4 3307 + '@rollup/rollup-win32-ia32-msvc': 4.52.4 3308 + '@rollup/rollup-win32-x64-gnu': 4.52.4 3309 + '@rollup/rollup-win32-x64-msvc': 4.52.4 3310 + fsevents: 2.3.3 3311 + 3312 + scheduler@0.27.0: {} 3313 + 3314 + semver@6.3.1: {} 3315 + 3316 + semver@7.7.2: {} 3317 + 3318 + sharp@0.34.4: 3319 + dependencies: 3320 + '@img/colour': 1.0.0 3321 + detect-libc: 2.1.2 3322 + semver: 7.7.2 3323 + optionalDependencies: 3324 + '@img/sharp-darwin-arm64': 0.34.4 3325 + '@img/sharp-darwin-x64': 0.34.4 3326 + '@img/sharp-libvips-darwin-arm64': 1.2.3 3327 + '@img/sharp-libvips-darwin-x64': 1.2.3 3328 + '@img/sharp-libvips-linux-arm': 1.2.3 3329 + '@img/sharp-libvips-linux-arm64': 1.2.3 3330 + '@img/sharp-libvips-linux-ppc64': 1.2.3 3331 + '@img/sharp-libvips-linux-s390x': 1.2.3 3332 + '@img/sharp-libvips-linux-x64': 1.2.3 3333 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 3334 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 3335 + '@img/sharp-linux-arm': 0.34.4 3336 + '@img/sharp-linux-arm64': 0.34.4 3337 + '@img/sharp-linux-ppc64': 0.34.4 3338 + '@img/sharp-linux-s390x': 0.34.4 3339 + '@img/sharp-linux-x64': 0.34.4 3340 + '@img/sharp-linuxmusl-arm64': 0.34.4 3341 + '@img/sharp-linuxmusl-x64': 0.34.4 3342 + '@img/sharp-wasm32': 0.34.4 3343 + '@img/sharp-win32-arm64': 0.34.4 3344 + '@img/sharp-win32-ia32': 0.34.4 3345 + '@img/sharp-win32-x64': 0.34.4 3346 + optional: true 3347 + 3348 + shiki@3.13.0: 3349 + dependencies: 3350 + '@shikijs/core': 3.13.0 3351 + '@shikijs/engine-javascript': 3.13.0 3352 + '@shikijs/engine-oniguruma': 3.13.0 3353 + '@shikijs/langs': 3.13.0 3354 + '@shikijs/themes': 3.13.0 3355 + '@shikijs/types': 3.13.0 3356 + '@shikijs/vscode-textmate': 10.0.2 3357 + '@types/hast': 3.0.4 3358 + 3359 + sisteransi@1.0.5: {} 3360 + 3361 + smol-toml@1.4.2: {} 3362 + 3363 + source-map-js@1.2.1: {} 3364 + 3365 + space-separated-tokens@2.0.2: {} 3366 + 3367 + string-width@4.2.3: 3368 + dependencies: 3369 + emoji-regex: 8.0.0 3370 + is-fullwidth-code-point: 3.0.0 3371 + strip-ansi: 6.0.1 3372 + 3373 + string-width@7.2.0: 3374 + dependencies: 3375 + emoji-regex: 10.5.0 3376 + get-east-asian-width: 1.4.0 3377 + strip-ansi: 7.1.2 3378 + 3379 + stringify-entities@4.0.4: 3380 + dependencies: 3381 + character-entities-html4: 2.1.0 3382 + character-entities-legacy: 3.0.0 3383 + 3384 + strip-ansi@6.0.1: 3385 + dependencies: 3386 + ansi-regex: 5.0.1 3387 + 3388 + strip-ansi@7.1.2: 3389 + dependencies: 3390 + ansi-regex: 6.2.2 3391 + 3392 + tiny-inflate@1.0.3: {} 3393 + 3394 + tinyexec@0.3.2: {} 3395 + 3396 + tinyglobby@0.2.15: 3397 + dependencies: 3398 + fdir: 6.5.0(picomatch@4.0.3) 3399 + picomatch: 4.0.3 3400 + 3401 + tr46@0.0.3: {} 3402 + 3403 + trim-lines@3.0.1: {} 3404 + 3405 + trough@2.2.0: {} 3406 + 3407 + tsconfck@3.1.6(typescript@5.9.3): 3408 + optionalDependencies: 3409 + typescript: 5.9.3 3410 + 3411 + tslib@2.8.1: {} 3412 + 3413 + type-fest@4.41.0: {} 3414 + 3415 + typescript@5.9.3: {} 3416 + 3417 + ufo@1.6.1: {} 3418 + 3419 + ultrahtml@1.6.0: {} 3420 + 3421 + uncrypto@0.1.3: {} 3422 + 3423 + undici-types@7.14.0: {} 3424 + 3425 + unicode-properties@1.4.1: 3426 + dependencies: 3427 + base64-js: 1.5.1 3428 + unicode-trie: 2.0.0 3429 + 3430 + unicode-trie@2.0.0: 3431 + dependencies: 3432 + pako: 0.2.9 3433 + tiny-inflate: 1.0.3 3434 + 3435 + unified@11.0.5: 3436 + dependencies: 3437 + '@types/unist': 3.0.3 3438 + bail: 2.0.2 3439 + devlop: 1.1.0 3440 + extend: 3.0.2 3441 + is-plain-obj: 4.1.0 3442 + trough: 2.2.0 3443 + vfile: 6.0.3 3444 + 3445 + unifont@0.5.2: 3446 + dependencies: 3447 + css-tree: 3.1.0 3448 + ofetch: 1.4.1 3449 + ohash: 2.0.11 3450 + 3451 + unist-util-find-after@5.0.0: 3452 + dependencies: 3453 + '@types/unist': 3.0.3 3454 + unist-util-is: 6.0.0 3455 + 3456 + unist-util-is@6.0.0: 3457 + dependencies: 3458 + '@types/unist': 3.0.3 3459 + 3460 + unist-util-modify-children@4.0.0: 3461 + dependencies: 3462 + '@types/unist': 3.0.3 3463 + array-iterate: 2.0.1 3464 + 3465 + unist-util-position@5.0.0: 3466 + dependencies: 3467 + '@types/unist': 3.0.3 3468 + 3469 + unist-util-remove-position@5.0.0: 3470 + dependencies: 3471 + '@types/unist': 3.0.3 3472 + unist-util-visit: 5.0.0 3473 + 3474 + unist-util-stringify-position@4.0.0: 3475 + dependencies: 3476 + '@types/unist': 3.0.3 3477 + 3478 + unist-util-visit-children@3.0.0: 3479 + dependencies: 3480 + '@types/unist': 3.0.3 3481 + 3482 + unist-util-visit-parents@6.0.1: 3483 + dependencies: 3484 + '@types/unist': 3.0.3 3485 + unist-util-is: 6.0.0 3486 + 3487 + unist-util-visit@5.0.0: 3488 + dependencies: 3489 + '@types/unist': 3.0.3 3490 + unist-util-is: 6.0.0 3491 + unist-util-visit-parents: 6.0.1 3492 + 3493 + unstorage@1.17.1: 3494 + dependencies: 3495 + anymatch: 3.1.3 3496 + chokidar: 4.0.3 3497 + destr: 2.0.5 3498 + h3: 1.15.4 3499 + lru-cache: 10.4.3 3500 + node-fetch-native: 1.6.7 3501 + ofetch: 1.4.1 3502 + ufo: 1.6.1 3503 + 3504 + update-browserslist-db@1.1.3(browserslist@4.26.3): 3505 + dependencies: 3506 + browserslist: 4.26.3 3507 + escalade: 3.2.0 3508 + picocolors: 1.1.1 3509 + 3510 + vfile-location@5.0.3: 3511 + dependencies: 3512 + '@types/unist': 3.0.3 3513 + vfile: 6.0.3 3514 + 3515 + vfile-message@4.0.3: 3516 + dependencies: 3517 + '@types/unist': 3.0.3 3518 + unist-util-stringify-position: 4.0.0 3519 + 3520 + vfile@6.0.3: 3521 + dependencies: 3522 + '@types/unist': 3.0.3 3523 + vfile-message: 4.0.3 3524 + 3525 + vite@6.3.6(@types/node@24.7.0): 3526 + dependencies: 3527 + esbuild: 0.25.10 3528 + fdir: 6.5.0(picomatch@4.0.3) 3529 + picomatch: 4.0.3 3530 + postcss: 8.5.6 3531 + rollup: 4.52.4 3532 + tinyglobby: 0.2.15 3533 + optionalDependencies: 3534 + '@types/node': 24.7.0 3535 + fsevents: 2.3.3 3536 + 3537 + vitefu@1.1.1(vite@6.3.6(@types/node@24.7.0)): 3538 + optionalDependencies: 3539 + vite: 6.3.6(@types/node@24.7.0) 3540 + 3541 + web-namespaces@2.0.1: {} 3542 + 3543 + webidl-conversions@3.0.1: {} 3544 + 3545 + whatwg-url@5.0.0: 3546 + dependencies: 3547 + tr46: 0.0.3 3548 + webidl-conversions: 3.0.1 3549 + 3550 + which-pm-runs@1.1.0: {} 3551 + 3552 + widest-line@5.0.0: 3553 + dependencies: 3554 + string-width: 7.2.0 3555 + 3556 + wrap-ansi@9.0.2: 3557 + dependencies: 3558 + ansi-styles: 6.2.3 3559 + string-width: 7.2.0 3560 + strip-ansi: 7.1.2 3561 + 3562 + xxhash-wasm@1.1.0: {} 3563 + 3564 + yallist@3.1.1: {} 3565 + 3566 + yargs-parser@21.1.1: {} 3567 + 3568 + yocto-queue@1.2.1: {} 3569 + 3570 + yocto-spinner@0.2.3: 3571 + dependencies: 3572 + yoctocolors: 2.1.2 3573 + 3574 + yoctocolors@2.1.2: {} 3575 + 3576 + zod-to-json-schema@3.24.6(zod@3.25.76): 3577 + dependencies: 3578 + zod: 3.25.76 3579 + 3580 + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): 3581 + dependencies: 3582 + typescript: 5.9.3 3583 + zod: 3.25.76 3584 + 3585 + zod@3.25.76: {} 3586 + 3587 + zwitch@2.0.4: {}
+2
pnpm-workspace.yaml
··· 1 + packages: 2 + - 'packages/*'