Generate flake.nix from module options. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/ dendrix.oeiuwq.com/Dendritic.html
dendritic nix inputs

docs (#68)

authored by oeiuwq.com and committed by

GitHub 6cecf9de cbc6d74f

+5780
+39
.github/workflows/gh-pages.yml
··· 1 + name: GH Pages 2 + on: 3 + workflow_dispatch: 4 + push: 5 + branches: [main] 6 + paths: ["docs/**"] 7 + permissions: 8 + contents: read 9 + pages: write 10 + id-token: write 11 + concurrency: 12 + group: "pages" 13 + cancel-in-progress: true 14 + jobs: 15 + deploy: 16 + environment: 17 + name: github-pages 18 + url: ${{ steps.deployment.outputs.page_url }} 19 + runs-on: ubuntu-latest 20 + steps: 21 + - uses: actions/checkout@v4 22 + - uses: pnpm/action-setup@v4 23 + with: 24 + version: 10 25 + - name: Build 26 + run: | 27 + pushd docs 28 + pnpm install 29 + pnpm run build 30 + popd 31 + - name: Setup Pages 32 + uses: actions/configure-pages@v5 33 + - name: Upload artifact 34 + uses: actions/upload-pages-artifact@v3 35 + with: 36 + path: "./docs/dist" 37 + - name: Deploy to GitHub Pages 38 + id: deployment 39 + uses: actions/deploy-pages@v4
+1
dev/modules/formatter.nix
··· 34 34 "**/unflake.nix" # generated by: nix-shell . -A unflake.env --run write-unflake 35 35 "**/inputs.nix" # generated by: nix-shell . -A unflake.env --run write-inputs 36 36 "**/npins/default.nix" # generated by write-npins 37 + "docs/*" 37 38 ]; 38 39 }; 39 40 };
+21
docs/.gitignore
··· 1 + # build output 2 + dist/ 3 + # generated types 4 + .astro/ 5 + 6 + # dependencies 7 + node_modules/ 8 + 9 + # logs 10 + npm-debug.log* 11 + yarn-debug.log* 12 + yarn-error.log* 13 + pnpm-debug.log* 14 + 15 + 16 + # environment variables 17 + .env 18 + .env.production 19 + 20 + # macOS-specific files 21 + .DS_Store
+4
docs/.vscode/extensions.json
··· 1 + { 2 + "recommendations": ["astro-build.astro-vscode"], 3 + "unwantedRecommendations": [] 4 + }
+11
docs/.vscode/launch.json
··· 1 + { 2 + "version": "0.2.0", 3 + "configurations": [ 4 + { 5 + "command": "./node_modules/.bin/astro dev", 6 + "name": "Development server", 7 + "request": "launch", 8 + "type": "node-terminal" 9 + } 10 + ] 11 + }
+49
docs/README.md
··· 1 + # Starlight Starter Kit: Basics 2 + 3 + [![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build) 4 + 5 + ``` 6 + pnpm create astro@latest -- --template starlight 7 + ``` 8 + 9 + > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! 10 + 11 + ## 🚀 Project Structure 12 + 13 + Inside of your Astro + Starlight project, you'll see the following folders and files: 14 + 15 + ``` 16 + . 17 + ├── public/ 18 + ├── src/ 19 + │ ├── assets/ 20 + │ ├── content/ 21 + │ │ └── docs/ 22 + │ └── content.config.ts 23 + ├── astro.config.mjs 24 + ├── package.json 25 + └── tsconfig.json 26 + ``` 27 + 28 + Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name. 29 + 30 + Images can be added to `src/assets/` and embedded in Markdown with a relative link. 31 + 32 + Static assets, like favicons, can be placed in the `public/` directory. 33 + 34 + ## 🧞 Commands 35 + 36 + All commands are run from the root of the project, from a terminal: 37 + 38 + | Command | Action | 39 + | :--------------------- | :----------------------------------------------- | 40 + | `pnpm install` | Installs dependencies | 41 + | `pnpm dev` | Starts local dev server at `localhost:4321` | 42 + | `pnpm build` | Build your production site to `./dist/` | 43 + | `pnpm preview` | Preview your build locally, before deploying | 44 + | `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` | 45 + | `pnpm astro -- --help` | Get help using the Astro CLI | 46 + 47 + ## 👀 Want to learn more? 48 + 49 + Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
+86
docs/astro.config.mjs
··· 1 + // @ts-check 2 + import { defineConfig, fontProviders } from "astro/config"; 3 + import starlight from "@astrojs/starlight"; 4 + 5 + import mermaid from "astro-mermaid"; 6 + import catppuccin from "@catppuccin/starlight"; 7 + 8 + // https://astro.build/config 9 + export default defineConfig({ 10 + experimental: { 11 + fonts: [ 12 + { 13 + provider: fontProviders.google(), 14 + name: "Victor Mono", 15 + cssVariable: "--sl-font", 16 + }, 17 + ], 18 + }, 19 + integrations: [ 20 + mermaid({ 21 + theme: "forest", 22 + autoTheme: true, 23 + }), 24 + starlight({ 25 + title: "flake-file", 26 + sidebar: [ 27 + { 28 + label: "flake-file", 29 + items: [{ label: "Overview", slug: "overview" }], 30 + }, 31 + { 32 + label: "Learn", 33 + items: [ 34 + { 35 + label: "What is flake-file?", 36 + slug: "explanation/what-is-flake-file", 37 + }, 38 + { label: "How it Works", slug: "explanation/how-it-works" }, 39 + ], 40 + }, 41 + { 42 + label: "Getting Started", 43 + items: [ 44 + { label: "Quick Start", slug: "tutorials/quick-start" }, 45 + { label: "Migration Guide", slug: "tutorials/migrate" }, 46 + { label: "Bootstrapping", slug: "tutorials/bootstrap" }, 47 + ], 48 + }, 49 + { 50 + label: "Guides", 51 + items: [ 52 + { label: "flakeModules", slug: "guides/flake-modules" }, 53 + { label: "Templates", slug: "guides/templates" }, 54 + { label: "The outputs Function", slug: "guides/outputs" }, 55 + { label: "Hooks", slug: "guides/hooks" }, 56 + { label: "Lock Flattening", slug: "guides/lock-flattening" }, 57 + { 58 + label: "flake-parts-builder", 59 + slug: "guides/flake-parts-builder", 60 + }, 61 + ], 62 + }, 63 + { 64 + label: "Reference", 65 + items: [{ label: "All Options", slug: "reference/options" }], 66 + }, 67 + ], 68 + components: { 69 + Sidebar: "./src/components/Sidebar.astro", 70 + Footer: "./src/components/Footer.astro", 71 + SocialIcons: "./src/components/SocialIcons.astro", 72 + PageSidebar: "./src/components/PageSidebar.astro", 73 + }, 74 + plugins: [ 75 + catppuccin({ 76 + dark: { flavor: "macchiato", accent: "mauve" }, 77 + light: { flavor: "latte", accent: "mauve" }, 78 + }), 79 + ], 80 + editLink: { 81 + baseUrl: "https://github.com/vic/flake-file/edit/main/docs/", 82 + }, 83 + customCss: ["./src/styles/custom.css"], 84 + }), 85 + ], 86 + });
+20
docs/package.json
··· 1 + { 2 + "name": "den", 3 + "type": "module", 4 + "version": "0.0.1", 5 + "scripts": { 6 + "dev": "astro dev", 7 + "start": "astro dev", 8 + "build": "astro build", 9 + "preview": "astro preview", 10 + "astro": "astro" 11 + }, 12 + "dependencies": { 13 + "@astrojs/starlight": "^0.37.6", 14 + "@catppuccin/starlight": "^1.1.1", 15 + "astro": "^5.17.3", 16 + "astro-mermaid": "^1.3.1", 17 + "mermaid": "^11.12.3", 18 + "sharp": "^0.34.5" 19 + } 20 + }
+4112
docs/pnpm-lock.yaml
··· 1 + lockfileVersion: "9.0" 2 + settings: 3 + autoInstallPeers: true 4 + excludeLinksFromLockfile: false 5 + importers: 6 + .: 7 + dependencies: 8 + "@astrojs/starlight": 9 + specifier: ^0.37.6 10 + version: 0.37.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)) 11 + "@catppuccin/starlight": 12 + specifier: ^1.1.1 13 + version: 1.1.1(@astrojs/starlight@0.37.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)))(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)) 14 + astro: 15 + specifier: ^5.17.3 16 + version: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 17 + astro-mermaid: 18 + specifier: ^1.3.1 19 + version: 1.3.1(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3))(mermaid@11.12.3) 20 + mermaid: 21 + specifier: ^11.12.3 22 + version: 11.12.3 23 + sharp: 24 + specifier: ^0.34.5 25 + version: 0.34.5 26 + packages: 27 + "@antfu/install-pkg@1.1.0": 28 + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} 29 + "@astrojs/compiler@2.13.1": 30 + resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} 31 + "@astrojs/internal-helpers@0.7.5": 32 + resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} 33 + "@astrojs/markdown-remark@6.3.10": 34 + resolution: {integrity: sha512-kk4HeYR6AcnzC4QV8iSlOfh+N8TZ3MEStxPyenyCtemqn8IpEATBFMTJcfrNW32dgpt6MY3oCkMM/Tv3/I4G3A==} 35 + "@astrojs/mdx@4.3.13": 36 + resolution: {integrity: sha512-IHDHVKz0JfKBy3//52JSiyWv089b7GVSChIXLrlUOoTLWowG3wr2/8hkaEgEyd/vysvNQvGk+QhysXpJW5ve6Q==} 37 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 38 + peerDependencies: 39 + astro: ^5.0.0 40 + "@astrojs/prism@3.3.0": 41 + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} 42 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 43 + "@astrojs/sitemap@3.7.0": 44 + resolution: {integrity: sha512-+qxjUrz6Jcgh+D5VE1gKUJTA3pSthuPHe6Ao5JCxok794Lewx8hBFaWHtOnN0ntb2lfOf7gvOi9TefUswQ/ZVA==} 45 + "@astrojs/starlight@0.37.6": 46 + resolution: {integrity: sha512-wQrKwH431q+8FsLBnNQeG+R36TMtEGxTQ2AuiVpcx9APcazvL3n7wVW8mMmYyxX0POjTnxlcWPkdMGR3Yj1L+w==} 47 + peerDependencies: 48 + astro: ^5.5.0 49 + "@astrojs/telemetry@3.3.0": 50 + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} 51 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} 52 + "@babel/helper-string-parser@7.27.1": 53 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 54 + engines: {node: ">=6.9.0"} 55 + "@babel/helper-validator-identifier@7.28.5": 56 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 57 + engines: {node: ">=6.9.0"} 58 + "@babel/parser@7.29.0": 59 + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} 60 + engines: {node: ">=6.0.0"} 61 + hasBin: true 62 + "@babel/runtime@7.28.6": 63 + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} 64 + engines: {node: ">=6.9.0"} 65 + "@babel/types@7.29.0": 66 + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} 67 + engines: {node: ">=6.9.0"} 68 + "@braintree/sanitize-url@7.1.2": 69 + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} 70 + "@capsizecss/unpack@4.0.0": 71 + resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} 72 + engines: {node: ">=18"} 73 + "@catppuccin/starlight@1.1.1": 74 + resolution: {integrity: sha512-iyI/gdGfqREetGti3O11l7iMLCmt0LRSbIis8ySlZo8hqb749KyMmisO/9kqBvk2oFKw9hGNDbutcNxKSI2spg==} 75 + peerDependencies: 76 + "@astrojs/starlight": ">=0.34" 77 + astro: ^5.0.0 78 + "@chevrotain/cst-dts-gen@11.1.1": 79 + resolution: {integrity: sha512-fRHyv6/f542qQqiRGalrfJl/evD39mAvbJLCekPazhiextEatq1Jx1K/i9gSd5NNO0ds03ek0Cbo/4uVKmOBcw==} 80 + "@chevrotain/gast@11.1.1": 81 + resolution: {integrity: sha512-Ko/5vPEYy1vn5CbCjjvnSO4U7GgxyGm+dfUZZJIWTlQFkXkyym0jFYrWEU10hyCjrA7rQtiHtBr0EaZqvHFZvg==} 82 + "@chevrotain/regexp-to-ast@11.1.1": 83 + resolution: {integrity: sha512-ctRw1OKSXkOrR8VTvOxrQ5USEc4sNrfwXHa1NuTcR7wre4YbjPcKw+82C2uylg/TEwFRgwLmbhlln4qkmDyteg==} 84 + "@chevrotain/types@11.1.1": 85 + resolution: {integrity: sha512-wb2ToxG8LkgPYnKe9FH8oGn3TMCBdnwiuNC5l5y+CtlaVRbCytU0kbVsk6CGrqTL4ZN4ksJa0TXOYbxpbthtqw==} 86 + "@chevrotain/utils@11.1.1": 87 + resolution: {integrity: sha512-71eTYMzYXYSFPrbg/ZwftSaSDld7UYlS8OQa3lNnn9jzNtpFbaReRRyghzqS7rI3CDaorqpPJJcXGHK+FE1TVQ==} 88 + "@ctrl/tinycolor@4.2.0": 89 + resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} 90 + engines: {node: ">=14"} 91 + "@emnapi/runtime@1.8.1": 92 + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} 93 + "@esbuild/aix-ppc64@0.25.12": 94 + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} 95 + engines: {node: ">=18"} 96 + cpu: [ppc64] 97 + os: [aix] 98 + "@esbuild/aix-ppc64@0.27.3": 99 + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} 100 + engines: {node: ">=18"} 101 + cpu: [ppc64] 102 + os: [aix] 103 + "@esbuild/android-arm64@0.25.12": 104 + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} 105 + engines: {node: ">=18"} 106 + cpu: [arm64] 107 + os: [android] 108 + "@esbuild/android-arm64@0.27.3": 109 + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} 110 + engines: {node: ">=18"} 111 + cpu: [arm64] 112 + os: [android] 113 + "@esbuild/android-arm@0.25.12": 114 + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} 115 + engines: {node: ">=18"} 116 + cpu: [arm] 117 + os: [android] 118 + "@esbuild/android-arm@0.27.3": 119 + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} 120 + engines: {node: ">=18"} 121 + cpu: [arm] 122 + os: [android] 123 + "@esbuild/android-x64@0.25.12": 124 + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} 125 + engines: {node: ">=18"} 126 + cpu: [x64] 127 + os: [android] 128 + "@esbuild/android-x64@0.27.3": 129 + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} 130 + engines: {node: ">=18"} 131 + cpu: [x64] 132 + os: [android] 133 + "@esbuild/darwin-arm64@0.25.12": 134 + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} 135 + engines: {node: ">=18"} 136 + cpu: [arm64] 137 + os: [darwin] 138 + "@esbuild/darwin-arm64@0.27.3": 139 + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} 140 + engines: {node: ">=18"} 141 + cpu: [arm64] 142 + os: [darwin] 143 + "@esbuild/darwin-x64@0.25.12": 144 + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} 145 + engines: {node: ">=18"} 146 + cpu: [x64] 147 + os: [darwin] 148 + "@esbuild/darwin-x64@0.27.3": 149 + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} 150 + engines: {node: ">=18"} 151 + cpu: [x64] 152 + os: [darwin] 153 + "@esbuild/freebsd-arm64@0.25.12": 154 + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} 155 + engines: {node: ">=18"} 156 + cpu: [arm64] 157 + os: [freebsd] 158 + "@esbuild/freebsd-arm64@0.27.3": 159 + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} 160 + engines: {node: ">=18"} 161 + cpu: [arm64] 162 + os: [freebsd] 163 + "@esbuild/freebsd-x64@0.25.12": 164 + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} 165 + engines: {node: ">=18"} 166 + cpu: [x64] 167 + os: [freebsd] 168 + "@esbuild/freebsd-x64@0.27.3": 169 + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} 170 + engines: {node: ">=18"} 171 + cpu: [x64] 172 + os: [freebsd] 173 + "@esbuild/linux-arm64@0.25.12": 174 + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} 175 + engines: {node: ">=18"} 176 + cpu: [arm64] 177 + os: [linux] 178 + "@esbuild/linux-arm64@0.27.3": 179 + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} 180 + engines: {node: ">=18"} 181 + cpu: [arm64] 182 + os: [linux] 183 + "@esbuild/linux-arm@0.25.12": 184 + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} 185 + engines: {node: ">=18"} 186 + cpu: [arm] 187 + os: [linux] 188 + "@esbuild/linux-arm@0.27.3": 189 + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} 190 + engines: {node: ">=18"} 191 + cpu: [arm] 192 + os: [linux] 193 + "@esbuild/linux-ia32@0.25.12": 194 + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} 195 + engines: {node: ">=18"} 196 + cpu: [ia32] 197 + os: [linux] 198 + "@esbuild/linux-ia32@0.27.3": 199 + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} 200 + engines: {node: ">=18"} 201 + cpu: [ia32] 202 + os: [linux] 203 + "@esbuild/linux-loong64@0.25.12": 204 + resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} 205 + engines: {node: ">=18"} 206 + cpu: [loong64] 207 + os: [linux] 208 + "@esbuild/linux-loong64@0.27.3": 209 + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} 210 + engines: {node: ">=18"} 211 + cpu: [loong64] 212 + os: [linux] 213 + "@esbuild/linux-mips64el@0.25.12": 214 + resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} 215 + engines: {node: ">=18"} 216 + cpu: [mips64el] 217 + os: [linux] 218 + "@esbuild/linux-mips64el@0.27.3": 219 + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} 220 + engines: {node: ">=18"} 221 + cpu: [mips64el] 222 + os: [linux] 223 + "@esbuild/linux-ppc64@0.25.12": 224 + resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} 225 + engines: {node: ">=18"} 226 + cpu: [ppc64] 227 + os: [linux] 228 + "@esbuild/linux-ppc64@0.27.3": 229 + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} 230 + engines: {node: ">=18"} 231 + cpu: [ppc64] 232 + os: [linux] 233 + "@esbuild/linux-riscv64@0.25.12": 234 + resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} 235 + engines: {node: ">=18"} 236 + cpu: [riscv64] 237 + os: [linux] 238 + "@esbuild/linux-riscv64@0.27.3": 239 + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} 240 + engines: {node: ">=18"} 241 + cpu: [riscv64] 242 + os: [linux] 243 + "@esbuild/linux-s390x@0.25.12": 244 + resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} 245 + engines: {node: ">=18"} 246 + cpu: [s390x] 247 + os: [linux] 248 + "@esbuild/linux-s390x@0.27.3": 249 + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} 250 + engines: {node: ">=18"} 251 + cpu: [s390x] 252 + os: [linux] 253 + "@esbuild/linux-x64@0.25.12": 254 + resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} 255 + engines: {node: ">=18"} 256 + cpu: [x64] 257 + os: [linux] 258 + "@esbuild/linux-x64@0.27.3": 259 + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} 260 + engines: {node: ">=18"} 261 + cpu: [x64] 262 + os: [linux] 263 + "@esbuild/netbsd-arm64@0.25.12": 264 + resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} 265 + engines: {node: ">=18"} 266 + cpu: [arm64] 267 + os: [netbsd] 268 + "@esbuild/netbsd-arm64@0.27.3": 269 + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} 270 + engines: {node: ">=18"} 271 + cpu: [arm64] 272 + os: [netbsd] 273 + "@esbuild/netbsd-x64@0.25.12": 274 + resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} 275 + engines: {node: ">=18"} 276 + cpu: [x64] 277 + os: [netbsd] 278 + "@esbuild/netbsd-x64@0.27.3": 279 + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} 280 + engines: {node: ">=18"} 281 + cpu: [x64] 282 + os: [netbsd] 283 + "@esbuild/openbsd-arm64@0.25.12": 284 + resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} 285 + engines: {node: ">=18"} 286 + cpu: [arm64] 287 + os: [openbsd] 288 + "@esbuild/openbsd-arm64@0.27.3": 289 + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} 290 + engines: {node: ">=18"} 291 + cpu: [arm64] 292 + os: [openbsd] 293 + "@esbuild/openbsd-x64@0.25.12": 294 + resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} 295 + engines: {node: ">=18"} 296 + cpu: [x64] 297 + os: [openbsd] 298 + "@esbuild/openbsd-x64@0.27.3": 299 + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} 300 + engines: {node: ">=18"} 301 + cpu: [x64] 302 + os: [openbsd] 303 + "@esbuild/openharmony-arm64@0.25.12": 304 + resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} 305 + engines: {node: ">=18"} 306 + cpu: [arm64] 307 + os: [openharmony] 308 + "@esbuild/openharmony-arm64@0.27.3": 309 + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} 310 + engines: {node: ">=18"} 311 + cpu: [arm64] 312 + os: [openharmony] 313 + "@esbuild/sunos-x64@0.25.12": 314 + resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} 315 + engines: {node: ">=18"} 316 + cpu: [x64] 317 + os: [sunos] 318 + "@esbuild/sunos-x64@0.27.3": 319 + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} 320 + engines: {node: ">=18"} 321 + cpu: [x64] 322 + os: [sunos] 323 + "@esbuild/win32-arm64@0.25.12": 324 + resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} 325 + engines: {node: ">=18"} 326 + cpu: [arm64] 327 + os: [win32] 328 + "@esbuild/win32-arm64@0.27.3": 329 + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} 330 + engines: {node: ">=18"} 331 + cpu: [arm64] 332 + os: [win32] 333 + "@esbuild/win32-ia32@0.25.12": 334 + resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} 335 + engines: {node: ">=18"} 336 + cpu: [ia32] 337 + os: [win32] 338 + "@esbuild/win32-ia32@0.27.3": 339 + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} 340 + engines: {node: ">=18"} 341 + cpu: [ia32] 342 + os: [win32] 343 + "@esbuild/win32-x64@0.25.12": 344 + resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} 345 + engines: {node: ">=18"} 346 + cpu: [x64] 347 + os: [win32] 348 + "@esbuild/win32-x64@0.27.3": 349 + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} 350 + engines: {node: ">=18"} 351 + cpu: [x64] 352 + os: [win32] 353 + "@expressive-code/core@0.41.6": 354 + resolution: {integrity: sha512-FvJQP+hG0jWi/FLBSmvHInDqWR7jNANp9PUDjdMqSshHb0y7sxx3vHuoOr6SgXjWw+MGLqorZyPQ0aAlHEok6g==} 355 + "@expressive-code/plugin-frames@0.41.6": 356 + resolution: {integrity: sha512-d+hkSYXIQot6fmYnOmWAM+7TNWRv/dhfjMsNq+mIZz8Tb4mPHOcgcfZeEM5dV9TDL0ioQNvtcqQNuzA1sRPjxg==} 357 + "@expressive-code/plugin-shiki@0.41.6": 358 + resolution: {integrity: sha512-Y6zmKBmsIUtWTzdefqlzm/h9Zz0Rc4gNdt2GTIH7fhHH2I9+lDYCa27BDwuBhjqcos6uK81Aca9dLUC4wzN+ng==} 359 + "@expressive-code/plugin-text-markers@0.41.6": 360 + resolution: {integrity: sha512-PBFa1wGyYzRExMDzBmAWC6/kdfG1oLn4pLpBeTfIRrALPjcGA/59HP3e7q9J0Smk4pC7U+lWkA2LHR8FYV8U7Q==} 361 + "@iconify/types@2.0.0": 362 + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} 363 + "@iconify/utils@3.1.0": 364 + resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==} 365 + "@img/colour@1.0.0": 366 + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} 367 + engines: {node: ">=18"} 368 + "@img/sharp-darwin-arm64@0.34.5": 369 + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} 370 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 371 + cpu: [arm64] 372 + os: [darwin] 373 + "@img/sharp-darwin-x64@0.34.5": 374 + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} 375 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 376 + cpu: [x64] 377 + os: [darwin] 378 + "@img/sharp-libvips-darwin-arm64@1.2.4": 379 + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} 380 + cpu: [arm64] 381 + os: [darwin] 382 + "@img/sharp-libvips-darwin-x64@1.2.4": 383 + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} 384 + cpu: [x64] 385 + os: [darwin] 386 + "@img/sharp-libvips-linux-arm64@1.2.4": 387 + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} 388 + cpu: [arm64] 389 + os: [linux] 390 + "@img/sharp-libvips-linux-arm@1.2.4": 391 + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} 392 + cpu: [arm] 393 + os: [linux] 394 + "@img/sharp-libvips-linux-ppc64@1.2.4": 395 + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} 396 + cpu: [ppc64] 397 + os: [linux] 398 + "@img/sharp-libvips-linux-riscv64@1.2.4": 399 + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} 400 + cpu: [riscv64] 401 + os: [linux] 402 + "@img/sharp-libvips-linux-s390x@1.2.4": 403 + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} 404 + cpu: [s390x] 405 + os: [linux] 406 + "@img/sharp-libvips-linux-x64@1.2.4": 407 + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} 408 + cpu: [x64] 409 + os: [linux] 410 + "@img/sharp-libvips-linuxmusl-arm64@1.2.4": 411 + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} 412 + cpu: [arm64] 413 + os: [linux] 414 + "@img/sharp-libvips-linuxmusl-x64@1.2.4": 415 + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} 416 + cpu: [x64] 417 + os: [linux] 418 + "@img/sharp-linux-arm64@0.34.5": 419 + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} 420 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 421 + cpu: [arm64] 422 + os: [linux] 423 + "@img/sharp-linux-arm@0.34.5": 424 + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} 425 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 426 + cpu: [arm] 427 + os: [linux] 428 + "@img/sharp-linux-ppc64@0.34.5": 429 + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} 430 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 431 + cpu: [ppc64] 432 + os: [linux] 433 + "@img/sharp-linux-riscv64@0.34.5": 434 + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} 435 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 436 + cpu: [riscv64] 437 + os: [linux] 438 + "@img/sharp-linux-s390x@0.34.5": 439 + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} 440 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 441 + cpu: [s390x] 442 + os: [linux] 443 + "@img/sharp-linux-x64@0.34.5": 444 + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} 445 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 446 + cpu: [x64] 447 + os: [linux] 448 + "@img/sharp-linuxmusl-arm64@0.34.5": 449 + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} 450 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 451 + cpu: [arm64] 452 + os: [linux] 453 + "@img/sharp-linuxmusl-x64@0.34.5": 454 + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} 455 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 456 + cpu: [x64] 457 + os: [linux] 458 + "@img/sharp-wasm32@0.34.5": 459 + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} 460 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 461 + cpu: [wasm32] 462 + "@img/sharp-win32-arm64@0.34.5": 463 + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} 464 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 465 + cpu: [arm64] 466 + os: [win32] 467 + "@img/sharp-win32-ia32@0.34.5": 468 + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} 469 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 470 + cpu: [ia32] 471 + os: [win32] 472 + "@img/sharp-win32-x64@0.34.5": 473 + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} 474 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 475 + cpu: [x64] 476 + os: [win32] 477 + "@jridgewell/sourcemap-codec@1.5.5": 478 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 479 + "@mdx-js/mdx@3.1.1": 480 + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} 481 + "@mermaid-js/parser@1.0.0": 482 + resolution: {integrity: sha512-vvK0Hi/VWndxoh03Mmz6wa1KDriSPjS2XMZL/1l19HFwygiObEEoEwSDxOqyLzzAI6J2PU3261JjTMTO7x+BPw==} 483 + "@oslojs/encoding@1.1.0": 484 + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} 485 + "@pagefind/darwin-arm64@1.4.0": 486 + resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==} 487 + cpu: [arm64] 488 + os: [darwin] 489 + "@pagefind/darwin-x64@1.4.0": 490 + resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==} 491 + cpu: [x64] 492 + os: [darwin] 493 + "@pagefind/default-ui@1.4.0": 494 + resolution: {integrity: sha512-wie82VWn3cnGEdIjh4YwNESyS1G6vRHwL6cNjy9CFgNnWW/PGRjsLq300xjVH5sfPFK3iK36UxvIBymtQIEiSQ==} 495 + "@pagefind/freebsd-x64@1.4.0": 496 + resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==} 497 + cpu: [x64] 498 + os: [freebsd] 499 + "@pagefind/linux-arm64@1.4.0": 500 + resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==} 501 + cpu: [arm64] 502 + os: [linux] 503 + "@pagefind/linux-x64@1.4.0": 504 + resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==} 505 + cpu: [x64] 506 + os: [linux] 507 + "@pagefind/windows-x64@1.4.0": 508 + resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==} 509 + cpu: [x64] 510 + os: [win32] 511 + "@rollup/pluginutils@5.3.0": 512 + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} 513 + engines: {node: ">=14.0.0"} 514 + peerDependencies: 515 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 516 + peerDependenciesMeta: 517 + rollup: 518 + optional: true 519 + "@rollup/rollup-android-arm-eabi@4.57.1": 520 + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} 521 + cpu: [arm] 522 + os: [android] 523 + "@rollup/rollup-android-arm64@4.57.1": 524 + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} 525 + cpu: [arm64] 526 + os: [android] 527 + "@rollup/rollup-darwin-arm64@4.57.1": 528 + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} 529 + cpu: [arm64] 530 + os: [darwin] 531 + "@rollup/rollup-darwin-x64@4.57.1": 532 + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} 533 + cpu: [x64] 534 + os: [darwin] 535 + "@rollup/rollup-freebsd-arm64@4.57.1": 536 + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} 537 + cpu: [arm64] 538 + os: [freebsd] 539 + "@rollup/rollup-freebsd-x64@4.57.1": 540 + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} 541 + cpu: [x64] 542 + os: [freebsd] 543 + "@rollup/rollup-linux-arm-gnueabihf@4.57.1": 544 + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} 545 + cpu: [arm] 546 + os: [linux] 547 + "@rollup/rollup-linux-arm-musleabihf@4.57.1": 548 + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} 549 + cpu: [arm] 550 + os: [linux] 551 + "@rollup/rollup-linux-arm64-gnu@4.57.1": 552 + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} 553 + cpu: [arm64] 554 + os: [linux] 555 + "@rollup/rollup-linux-arm64-musl@4.57.1": 556 + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} 557 + cpu: [arm64] 558 + os: [linux] 559 + "@rollup/rollup-linux-loong64-gnu@4.57.1": 560 + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} 561 + cpu: [loong64] 562 + os: [linux] 563 + "@rollup/rollup-linux-loong64-musl@4.57.1": 564 + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} 565 + cpu: [loong64] 566 + os: [linux] 567 + "@rollup/rollup-linux-ppc64-gnu@4.57.1": 568 + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} 569 + cpu: [ppc64] 570 + os: [linux] 571 + "@rollup/rollup-linux-ppc64-musl@4.57.1": 572 + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} 573 + cpu: [ppc64] 574 + os: [linux] 575 + "@rollup/rollup-linux-riscv64-gnu@4.57.1": 576 + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} 577 + cpu: [riscv64] 578 + os: [linux] 579 + "@rollup/rollup-linux-riscv64-musl@4.57.1": 580 + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} 581 + cpu: [riscv64] 582 + os: [linux] 583 + "@rollup/rollup-linux-s390x-gnu@4.57.1": 584 + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} 585 + cpu: [s390x] 586 + os: [linux] 587 + "@rollup/rollup-linux-x64-gnu@4.57.1": 588 + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} 589 + cpu: [x64] 590 + os: [linux] 591 + "@rollup/rollup-linux-x64-musl@4.57.1": 592 + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} 593 + cpu: [x64] 594 + os: [linux] 595 + "@rollup/rollup-openbsd-x64@4.57.1": 596 + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} 597 + cpu: [x64] 598 + os: [openbsd] 599 + "@rollup/rollup-openharmony-arm64@4.57.1": 600 + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} 601 + cpu: [arm64] 602 + os: [openharmony] 603 + "@rollup/rollup-win32-arm64-msvc@4.57.1": 604 + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} 605 + cpu: [arm64] 606 + os: [win32] 607 + "@rollup/rollup-win32-ia32-msvc@4.57.1": 608 + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} 609 + cpu: [ia32] 610 + os: [win32] 611 + "@rollup/rollup-win32-x64-gnu@4.57.1": 612 + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} 613 + cpu: [x64] 614 + os: [win32] 615 + "@rollup/rollup-win32-x64-msvc@4.57.1": 616 + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} 617 + cpu: [x64] 618 + os: [win32] 619 + "@shikijs/core@3.22.0": 620 + resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} 621 + "@shikijs/engine-javascript@3.22.0": 622 + resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} 623 + "@shikijs/engine-oniguruma@3.22.0": 624 + resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} 625 + "@shikijs/langs@3.22.0": 626 + resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} 627 + "@shikijs/themes@3.22.0": 628 + resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} 629 + "@shikijs/types@3.22.0": 630 + resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} 631 + "@shikijs/vscode-textmate@10.0.2": 632 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 633 + "@types/d3-array@3.2.2": 634 + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} 635 + "@types/d3-axis@3.0.6": 636 + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} 637 + "@types/d3-brush@3.0.6": 638 + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} 639 + "@types/d3-chord@3.0.6": 640 + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} 641 + "@types/d3-color@3.1.3": 642 + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} 643 + "@types/d3-contour@3.0.6": 644 + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} 645 + "@types/d3-delaunay@6.0.4": 646 + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} 647 + "@types/d3-dispatch@3.0.7": 648 + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} 649 + "@types/d3-drag@3.0.7": 650 + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} 651 + "@types/d3-dsv@3.0.7": 652 + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} 653 + "@types/d3-ease@3.0.2": 654 + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} 655 + "@types/d3-fetch@3.0.7": 656 + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} 657 + "@types/d3-force@3.0.10": 658 + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} 659 + "@types/d3-format@3.0.4": 660 + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} 661 + "@types/d3-geo@3.1.0": 662 + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} 663 + "@types/d3-hierarchy@3.1.7": 664 + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} 665 + "@types/d3-interpolate@3.0.4": 666 + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} 667 + "@types/d3-path@3.1.1": 668 + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} 669 + "@types/d3-polygon@3.0.2": 670 + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} 671 + "@types/d3-quadtree@3.0.6": 672 + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} 673 + "@types/d3-random@3.0.3": 674 + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} 675 + "@types/d3-scale-chromatic@3.1.0": 676 + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} 677 + "@types/d3-scale@4.0.9": 678 + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} 679 + "@types/d3-selection@3.0.11": 680 + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} 681 + "@types/d3-shape@3.1.8": 682 + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} 683 + "@types/d3-time-format@4.0.3": 684 + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} 685 + "@types/d3-time@3.0.4": 686 + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} 687 + "@types/d3-timer@3.0.2": 688 + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} 689 + "@types/d3-transition@3.0.9": 690 + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} 691 + "@types/d3-zoom@3.0.8": 692 + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} 693 + "@types/d3@7.4.3": 694 + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} 695 + "@types/debug@4.1.12": 696 + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 697 + "@types/estree-jsx@1.0.5": 698 + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} 699 + "@types/estree@1.0.8": 700 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 701 + "@types/geojson@7946.0.16": 702 + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} 703 + "@types/hast@3.0.4": 704 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 705 + "@types/js-yaml@4.0.9": 706 + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} 707 + "@types/mdast@4.0.4": 708 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 709 + "@types/mdx@2.0.13": 710 + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} 711 + "@types/ms@2.1.0": 712 + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 713 + "@types/nlcst@2.0.3": 714 + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} 715 + "@types/node@17.0.45": 716 + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} 717 + "@types/sax@1.2.7": 718 + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} 719 + "@types/trusted-types@2.0.7": 720 + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} 721 + "@types/unist@2.0.11": 722 + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} 723 + "@types/unist@3.0.3": 724 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 725 + "@ungap/structured-clone@1.3.0": 726 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 727 + acorn-jsx@5.3.2: 728 + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 729 + peerDependencies: 730 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 731 + acorn@8.16.0: 732 + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} 733 + engines: {node: ">=0.4.0"} 734 + hasBin: true 735 + ansi-align@3.0.1: 736 + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 737 + ansi-regex@5.0.1: 738 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 739 + engines: {node: ">=8"} 740 + ansi-regex@6.2.2: 741 + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 742 + engines: {node: ">=12"} 743 + ansi-styles@6.2.3: 744 + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 745 + engines: {node: ">=12"} 746 + anymatch@3.1.3: 747 + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 748 + engines: {node: ">= 8"} 749 + arg@5.0.2: 750 + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 751 + argparse@2.0.1: 752 + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 753 + aria-query@5.3.2: 754 + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 755 + engines: {node: ">= 0.4"} 756 + array-iterate@2.0.1: 757 + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} 758 + astring@1.9.0: 759 + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 760 + hasBin: true 761 + astro-expressive-code@0.41.6: 762 + resolution: {integrity: sha512-l47tb1uhmVIebHUkw+HEPtU/av0G4O8Q34g2cbkPvC7/e9ZhANcjUUciKt9Hp6gSVDdIuXBBLwJQn2LkeGMOAw==} 763 + peerDependencies: 764 + astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta 765 + astro-mermaid@1.3.1: 766 + resolution: {integrity: sha512-1+FjwayMSZLtFd+ofdu1+v8a902nN5wmPmjY2qb8tLiO96YlL65LbskiuUcyH6q9h0CdZCrkc5FimlaHZsMJsg==} 767 + peerDependencies: 768 + "@mermaid-js/layout-elk": ^0.2.0 769 + astro: ^4.0.0 || ^5.0.0 770 + mermaid: ^10.0.0 || ^11.0.0 771 + peerDependenciesMeta: 772 + "@mermaid-js/layout-elk": 773 + optional: true 774 + astro@5.17.3: 775 + resolution: {integrity: sha512-69dcfPe8LsHzklwj+hl+vunWUbpMB6pmg35mACjetxbJeUNNys90JaBM8ZiwsPK689SAj/4Zqb1ayaANls9/MA==} 776 + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: ">=9.6.5", pnpm: ">=7.1.0"} 777 + hasBin: true 778 + axobject-query@4.1.0: 779 + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 780 + engines: {node: ">= 0.4"} 781 + bail@2.0.2: 782 + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} 783 + base-64@1.0.0: 784 + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} 785 + bcp-47-match@2.0.3: 786 + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} 787 + bcp-47@2.1.0: 788 + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} 789 + boolbase@1.0.0: 790 + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 791 + boxen@8.0.1: 792 + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 793 + engines: {node: ">=18"} 794 + camelcase@8.0.0: 795 + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 796 + engines: {node: ">=16"} 797 + ccount@2.0.1: 798 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 799 + chalk@5.6.2: 800 + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 801 + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 802 + character-entities-html4@2.1.0: 803 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 804 + character-entities-legacy@3.0.0: 805 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 806 + character-entities@2.0.2: 807 + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} 808 + character-reference-invalid@2.0.1: 809 + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} 810 + chevrotain-allstar@0.3.1: 811 + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} 812 + peerDependencies: 813 + chevrotain: ^11.0.0 814 + chevrotain@11.1.1: 815 + resolution: {integrity: sha512-f0yv5CPKaFxfsPTBzX7vGuim4oIC1/gcS7LUGdBSwl2dU6+FON6LVUksdOo1qJjoUvXNn45urgh8C+0a24pACQ==} 816 + chokidar@5.0.0: 817 + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} 818 + engines: {node: ">= 20.19.0"} 819 + ci-info@4.4.0: 820 + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} 821 + engines: {node: ">=8"} 822 + cli-boxes@3.0.0: 823 + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 824 + engines: {node: ">=10"} 825 + clsx@2.1.1: 826 + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 827 + engines: {node: ">=6"} 828 + collapse-white-space@2.1.0: 829 + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} 830 + comma-separated-tokens@2.0.3: 831 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 832 + commander@11.1.0: 833 + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} 834 + engines: {node: ">=16"} 835 + commander@7.2.0: 836 + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 837 + engines: {node: ">= 10"} 838 + commander@8.3.0: 839 + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} 840 + engines: {node: ">= 12"} 841 + common-ancestor-path@1.0.1: 842 + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} 843 + confbox@0.1.8: 844 + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 845 + cookie-es@1.2.2: 846 + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} 847 + cookie@1.1.1: 848 + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 849 + engines: {node: ">=18"} 850 + cose-base@1.0.3: 851 + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} 852 + cose-base@2.2.0: 853 + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} 854 + crossws@0.3.5: 855 + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} 856 + css-select@5.2.2: 857 + resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} 858 + css-selector-parser@3.3.0: 859 + resolution: {integrity: sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==} 860 + css-tree@2.2.1: 861 + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} 862 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0"} 863 + css-tree@3.1.0: 864 + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 865 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 866 + css-what@6.2.2: 867 + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} 868 + engines: {node: ">= 6"} 869 + cssesc@3.0.0: 870 + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 871 + engines: {node: ">=4"} 872 + hasBin: true 873 + csso@5.0.5: 874 + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} 875 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: ">=7.0.0"} 876 + cytoscape-cose-bilkent@4.1.0: 877 + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} 878 + peerDependencies: 879 + cytoscape: ^3.2.0 880 + cytoscape-fcose@2.2.0: 881 + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} 882 + peerDependencies: 883 + cytoscape: ^3.2.0 884 + cytoscape@3.33.1: 885 + resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} 886 + engines: {node: ">=0.10"} 887 + d3-array@2.12.1: 888 + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} 889 + d3-array@3.2.4: 890 + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} 891 + engines: {node: ">=12"} 892 + d3-axis@3.0.0: 893 + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} 894 + engines: {node: ">=12"} 895 + d3-brush@3.0.0: 896 + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} 897 + engines: {node: ">=12"} 898 + d3-chord@3.0.1: 899 + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} 900 + engines: {node: ">=12"} 901 + d3-color@3.1.0: 902 + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} 903 + engines: {node: ">=12"} 904 + d3-contour@4.0.2: 905 + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} 906 + engines: {node: ">=12"} 907 + d3-delaunay@6.0.4: 908 + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} 909 + engines: {node: ">=12"} 910 + d3-dispatch@3.0.1: 911 + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} 912 + engines: {node: ">=12"} 913 + d3-drag@3.0.0: 914 + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} 915 + engines: {node: ">=12"} 916 + d3-dsv@3.0.1: 917 + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} 918 + engines: {node: ">=12"} 919 + hasBin: true 920 + d3-ease@3.0.1: 921 + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} 922 + engines: {node: ">=12"} 923 + d3-fetch@3.0.1: 924 + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} 925 + engines: {node: ">=12"} 926 + d3-force@3.0.0: 927 + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} 928 + engines: {node: ">=12"} 929 + d3-format@3.1.2: 930 + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} 931 + engines: {node: ">=12"} 932 + d3-geo@3.1.1: 933 + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} 934 + engines: {node: ">=12"} 935 + d3-hierarchy@3.1.2: 936 + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} 937 + engines: {node: ">=12"} 938 + d3-interpolate@3.0.1: 939 + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} 940 + engines: {node: ">=12"} 941 + d3-path@1.0.9: 942 + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} 943 + d3-path@3.1.0: 944 + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} 945 + engines: {node: ">=12"} 946 + d3-polygon@3.0.1: 947 + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} 948 + engines: {node: ">=12"} 949 + d3-quadtree@3.0.1: 950 + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} 951 + engines: {node: ">=12"} 952 + d3-random@3.0.1: 953 + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} 954 + engines: {node: ">=12"} 955 + d3-sankey@0.12.3: 956 + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} 957 + d3-scale-chromatic@3.1.0: 958 + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} 959 + engines: {node: ">=12"} 960 + d3-scale@4.0.2: 961 + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} 962 + engines: {node: ">=12"} 963 + d3-selection@3.0.0: 964 + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} 965 + engines: {node: ">=12"} 966 + d3-shape@1.3.7: 967 + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} 968 + d3-shape@3.2.0: 969 + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} 970 + engines: {node: ">=12"} 971 + d3-time-format@4.1.0: 972 + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} 973 + engines: {node: ">=12"} 974 + d3-time@3.1.0: 975 + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} 976 + engines: {node: ">=12"} 977 + d3-timer@3.0.1: 978 + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} 979 + engines: {node: ">=12"} 980 + d3-transition@3.0.1: 981 + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} 982 + engines: {node: ">=12"} 983 + peerDependencies: 984 + d3-selection: 2 - 3 985 + d3-zoom@3.0.0: 986 + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} 987 + engines: {node: ">=12"} 988 + d3@7.9.0: 989 + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} 990 + engines: {node: ">=12"} 991 + dagre-d3-es@7.0.13: 992 + resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} 993 + dayjs@1.11.19: 994 + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} 995 + debug@4.4.3: 996 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 997 + engines: {node: ">=6.0"} 998 + peerDependencies: 999 + supports-color: "*" 1000 + peerDependenciesMeta: 1001 + supports-color: 1002 + optional: true 1003 + decode-named-character-reference@1.3.0: 1004 + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} 1005 + defu@6.1.4: 1006 + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1007 + delaunator@5.0.1: 1008 + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} 1009 + dequal@2.0.3: 1010 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1011 + engines: {node: ">=6"} 1012 + destr@2.0.5: 1013 + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} 1014 + detect-libc@2.1.2: 1015 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 1016 + engines: {node: ">=8"} 1017 + deterministic-object-hash@2.0.2: 1018 + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} 1019 + engines: {node: ">=18"} 1020 + devalue@5.6.3: 1021 + resolution: {integrity: sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==} 1022 + devlop@1.1.0: 1023 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 1024 + diff@8.0.3: 1025 + resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} 1026 + engines: {node: ">=0.3.1"} 1027 + direction@2.0.1: 1028 + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} 1029 + hasBin: true 1030 + dlv@1.1.3: 1031 + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1032 + dom-serializer@2.0.0: 1033 + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 1034 + domelementtype@2.3.0: 1035 + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 1036 + domhandler@5.0.3: 1037 + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 1038 + engines: {node: ">= 4"} 1039 + dompurify@3.3.1: 1040 + resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} 1041 + domutils@3.2.2: 1042 + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} 1043 + dset@3.1.4: 1044 + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} 1045 + engines: {node: ">=4"} 1046 + emoji-regex@10.6.0: 1047 + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} 1048 + emoji-regex@8.0.0: 1049 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1050 + entities@4.5.0: 1051 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1052 + engines: {node: ">=0.12"} 1053 + entities@6.0.1: 1054 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 1055 + engines: {node: ">=0.12"} 1056 + es-module-lexer@1.7.0: 1057 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1058 + esast-util-from-estree@2.0.0: 1059 + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} 1060 + esast-util-from-js@2.0.1: 1061 + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} 1062 + esbuild@0.25.12: 1063 + resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} 1064 + engines: {node: ">=18"} 1065 + hasBin: true 1066 + esbuild@0.27.3: 1067 + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} 1068 + engines: {node: ">=18"} 1069 + hasBin: true 1070 + escape-string-regexp@5.0.0: 1071 + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 1072 + engines: {node: ">=12"} 1073 + estree-util-attach-comments@3.0.0: 1074 + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} 1075 + estree-util-build-jsx@3.0.1: 1076 + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} 1077 + estree-util-is-identifier-name@3.0.0: 1078 + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} 1079 + estree-util-scope@1.0.0: 1080 + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} 1081 + estree-util-to-js@2.0.0: 1082 + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} 1083 + estree-util-visit@2.0.0: 1084 + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} 1085 + estree-walker@2.0.2: 1086 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1087 + estree-walker@3.0.3: 1088 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1089 + eventemitter3@5.0.4: 1090 + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} 1091 + expressive-code@0.41.6: 1092 + resolution: {integrity: sha512-W/5+IQbrpCIM5KGLjO35wlp1NCwDOOVQb+PAvzEoGkW1xjGM807ZGfBKptNWH6UECvt6qgmLyWolCMYKh7eQmA==} 1093 + extend@3.0.2: 1094 + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1095 + fdir@6.5.0: 1096 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1097 + engines: {node: ">=12.0.0"} 1098 + peerDependencies: 1099 + picomatch: ^3 || ^4 1100 + peerDependenciesMeta: 1101 + picomatch: 1102 + optional: true 1103 + flattie@1.1.1: 1104 + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 1105 + engines: {node: ">=8"} 1106 + fontace@0.4.1: 1107 + resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} 1108 + fontkitten@1.0.2: 1109 + resolution: {integrity: sha512-piJxbLnkD9Xcyi7dWJRnqszEURixe7CrF/efBfbffe2DPyabmuIuqraruY8cXTs19QoM8VJzx47BDRVNXETM7Q==} 1110 + engines: {node: ">=20"} 1111 + fsevents@2.3.3: 1112 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1113 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1114 + os: [darwin] 1115 + get-east-asian-width@1.5.0: 1116 + resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} 1117 + engines: {node: ">=18"} 1118 + github-slugger@2.0.0: 1119 + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} 1120 + h3@1.15.5: 1121 + resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==} 1122 + hachure-fill@0.5.2: 1123 + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} 1124 + hast-util-embedded@3.0.0: 1125 + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} 1126 + hast-util-format@1.1.0: 1127 + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} 1128 + hast-util-from-html@2.0.3: 1129 + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} 1130 + hast-util-from-parse5@8.0.3: 1131 + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} 1132 + hast-util-has-property@3.0.0: 1133 + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} 1134 + hast-util-is-body-ok-link@3.0.1: 1135 + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} 1136 + hast-util-is-element@3.0.0: 1137 + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} 1138 + hast-util-minify-whitespace@1.0.1: 1139 + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} 1140 + hast-util-parse-selector@4.0.0: 1141 + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} 1142 + hast-util-phrasing@3.0.1: 1143 + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} 1144 + hast-util-raw@9.1.0: 1145 + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} 1146 + hast-util-select@6.0.4: 1147 + resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==} 1148 + hast-util-to-estree@3.1.3: 1149 + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} 1150 + hast-util-to-html@9.0.5: 1151 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 1152 + hast-util-to-jsx-runtime@2.3.6: 1153 + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} 1154 + hast-util-to-parse5@8.0.1: 1155 + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} 1156 + hast-util-to-string@3.0.1: 1157 + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} 1158 + hast-util-to-text@4.0.2: 1159 + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} 1160 + hast-util-whitespace@3.0.0: 1161 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 1162 + hastscript@9.0.1: 1163 + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} 1164 + html-escaper@3.0.3: 1165 + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} 1166 + html-void-elements@3.0.0: 1167 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 1168 + html-whitespace-sensitive-tag-names@3.0.1: 1169 + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} 1170 + http-cache-semantics@4.2.0: 1171 + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} 1172 + i18next@23.16.8: 1173 + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} 1174 + iconv-lite@0.6.3: 1175 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1176 + engines: {node: ">=0.10.0"} 1177 + import-meta-resolve@4.2.0: 1178 + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} 1179 + inline-style-parser@0.2.7: 1180 + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} 1181 + internmap@1.0.1: 1182 + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} 1183 + internmap@2.0.3: 1184 + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} 1185 + engines: {node: ">=12"} 1186 + iron-webcrypto@1.2.1: 1187 + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} 1188 + is-alphabetical@2.0.1: 1189 + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} 1190 + is-alphanumerical@2.0.1: 1191 + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} 1192 + is-decimal@2.0.1: 1193 + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} 1194 + is-docker@3.0.0: 1195 + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 1196 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1197 + hasBin: true 1198 + is-fullwidth-code-point@3.0.0: 1199 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1200 + engines: {node: ">=8"} 1201 + is-hexadecimal@2.0.1: 1202 + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} 1203 + is-inside-container@1.0.0: 1204 + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 1205 + engines: {node: ">=14.16"} 1206 + hasBin: true 1207 + is-plain-obj@4.1.0: 1208 + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1209 + engines: {node: ">=12"} 1210 + is-wsl@3.1.1: 1211 + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} 1212 + engines: {node: ">=16"} 1213 + js-yaml@4.1.1: 1214 + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 1215 + hasBin: true 1216 + katex@0.16.28: 1217 + resolution: {integrity: sha512-YHzO7721WbmAL6Ov1uzN/l5mY5WWWhJBSW+jq4tkfZfsxmo1hu6frS0EOswvjBUnWE6NtjEs48SFn5CQESRLZg==} 1218 + hasBin: true 1219 + khroma@2.1.0: 1220 + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} 1221 + kleur@3.0.3: 1222 + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1223 + engines: {node: ">=6"} 1224 + klona@2.0.6: 1225 + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 1226 + engines: {node: ">= 8"} 1227 + langium@4.2.1: 1228 + resolution: {integrity: sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==} 1229 + engines: {node: ">=20.10.0", npm: ">=10.2.3"} 1230 + layout-base@1.0.2: 1231 + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} 1232 + layout-base@2.0.1: 1233 + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} 1234 + lodash-es@4.17.23: 1235 + resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} 1236 + longest-streak@3.1.0: 1237 + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 1238 + lru-cache@11.2.6: 1239 + resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} 1240 + engines: {node: 20 || >=22} 1241 + magic-string@0.30.21: 1242 + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 1243 + magicast@0.5.2: 1244 + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} 1245 + markdown-extensions@2.0.0: 1246 + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} 1247 + engines: {node: ">=16"} 1248 + markdown-table@3.0.4: 1249 + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} 1250 + marked@16.4.2: 1251 + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} 1252 + engines: {node: ">= 20"} 1253 + hasBin: true 1254 + mdast-util-definitions@6.0.0: 1255 + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} 1256 + mdast-util-directive@3.1.0: 1257 + resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} 1258 + mdast-util-find-and-replace@3.0.2: 1259 + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} 1260 + mdast-util-from-markdown@2.0.2: 1261 + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} 1262 + mdast-util-gfm-autolink-literal@2.0.1: 1263 + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} 1264 + mdast-util-gfm-footnote@2.1.0: 1265 + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} 1266 + mdast-util-gfm-strikethrough@2.0.0: 1267 + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} 1268 + mdast-util-gfm-table@2.0.0: 1269 + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} 1270 + mdast-util-gfm-task-list-item@2.0.0: 1271 + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} 1272 + mdast-util-gfm@3.1.0: 1273 + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} 1274 + mdast-util-mdx-expression@2.0.1: 1275 + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} 1276 + mdast-util-mdx-jsx@3.2.0: 1277 + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} 1278 + mdast-util-mdx@3.0.0: 1279 + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} 1280 + mdast-util-mdxjs-esm@2.0.1: 1281 + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} 1282 + mdast-util-phrasing@4.1.0: 1283 + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} 1284 + mdast-util-to-hast@13.2.1: 1285 + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} 1286 + mdast-util-to-markdown@2.1.2: 1287 + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} 1288 + mdast-util-to-string@4.0.0: 1289 + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1290 + mdn-data@2.0.28: 1291 + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} 1292 + mdn-data@2.12.2: 1293 + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 1294 + mermaid@11.12.3: 1295 + resolution: {integrity: sha512-wN5ZSgJQIC+CHJut9xaKWsknLxaFBwCPwPkGTSUYrTiHORWvpT8RxGk849HPnpUAQ+/9BPRqYb80jTpearrHzQ==} 1296 + micromark-core-commonmark@2.0.3: 1297 + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} 1298 + micromark-extension-directive@3.0.2: 1299 + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} 1300 + micromark-extension-gfm-autolink-literal@2.1.0: 1301 + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} 1302 + micromark-extension-gfm-footnote@2.1.0: 1303 + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} 1304 + micromark-extension-gfm-strikethrough@2.1.0: 1305 + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} 1306 + micromark-extension-gfm-table@2.1.1: 1307 + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} 1308 + micromark-extension-gfm-tagfilter@2.0.0: 1309 + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} 1310 + micromark-extension-gfm-task-list-item@2.1.0: 1311 + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} 1312 + micromark-extension-gfm@3.0.0: 1313 + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} 1314 + micromark-extension-mdx-expression@3.0.1: 1315 + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} 1316 + micromark-extension-mdx-jsx@3.0.2: 1317 + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} 1318 + micromark-extension-mdx-md@2.0.0: 1319 + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} 1320 + micromark-extension-mdxjs-esm@3.0.0: 1321 + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} 1322 + micromark-extension-mdxjs@3.0.0: 1323 + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} 1324 + micromark-factory-destination@2.0.1: 1325 + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} 1326 + micromark-factory-label@2.0.1: 1327 + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} 1328 + micromark-factory-mdx-expression@2.0.3: 1329 + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} 1330 + micromark-factory-space@2.0.1: 1331 + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} 1332 + micromark-factory-title@2.0.1: 1333 + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} 1334 + micromark-factory-whitespace@2.0.1: 1335 + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} 1336 + micromark-util-character@2.1.1: 1337 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1338 + micromark-util-chunked@2.0.1: 1339 + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} 1340 + micromark-util-classify-character@2.0.1: 1341 + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} 1342 + micromark-util-combine-extensions@2.0.1: 1343 + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} 1344 + micromark-util-decode-numeric-character-reference@2.0.2: 1345 + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} 1346 + micromark-util-decode-string@2.0.1: 1347 + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} 1348 + micromark-util-encode@2.0.1: 1349 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1350 + micromark-util-events-to-acorn@2.0.3: 1351 + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} 1352 + micromark-util-html-tag-name@2.0.1: 1353 + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} 1354 + micromark-util-normalize-identifier@2.0.1: 1355 + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} 1356 + micromark-util-resolve-all@2.0.1: 1357 + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} 1358 + micromark-util-sanitize-uri@2.0.1: 1359 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1360 + micromark-util-subtokenize@2.1.0: 1361 + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} 1362 + micromark-util-symbol@2.0.1: 1363 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1364 + micromark-util-types@2.0.2: 1365 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1366 + micromark@4.0.2: 1367 + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} 1368 + mlly@1.8.0: 1369 + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} 1370 + mrmime@2.0.1: 1371 + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} 1372 + engines: {node: ">=10"} 1373 + ms@2.1.3: 1374 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1375 + nanoid@3.3.11: 1376 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1377 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1378 + hasBin: true 1379 + neotraverse@0.6.18: 1380 + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} 1381 + engines: {node: ">= 10"} 1382 + nlcst-to-string@4.0.0: 1383 + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} 1384 + node-fetch-native@1.6.7: 1385 + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 1386 + node-mock-http@1.0.4: 1387 + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} 1388 + normalize-path@3.0.0: 1389 + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1390 + engines: {node: ">=0.10.0"} 1391 + nth-check@2.1.1: 1392 + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1393 + ofetch@1.5.1: 1394 + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} 1395 + ohash@2.0.11: 1396 + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} 1397 + oniguruma-parser@0.12.1: 1398 + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} 1399 + oniguruma-to-es@4.3.4: 1400 + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} 1401 + p-limit@6.2.0: 1402 + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} 1403 + engines: {node: ">=18"} 1404 + p-queue@8.1.1: 1405 + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} 1406 + engines: {node: ">=18"} 1407 + p-timeout@6.1.4: 1408 + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} 1409 + engines: {node: ">=14.16"} 1410 + package-manager-detector@1.6.0: 1411 + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} 1412 + pagefind@1.4.0: 1413 + resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==} 1414 + hasBin: true 1415 + parse-entities@4.0.2: 1416 + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} 1417 + parse-latin@7.0.0: 1418 + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} 1419 + parse5@7.3.0: 1420 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 1421 + path-data-parser@0.1.0: 1422 + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} 1423 + pathe@2.0.3: 1424 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1425 + piccolore@0.1.3: 1426 + resolution: {integrity: sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==} 1427 + picocolors@1.1.1: 1428 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1429 + picomatch@2.3.1: 1430 + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1431 + engines: {node: ">=8.6"} 1432 + picomatch@4.0.3: 1433 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1434 + engines: {node: ">=12"} 1435 + pkg-types@1.3.1: 1436 + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1437 + points-on-curve@0.2.0: 1438 + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} 1439 + points-on-path@0.2.1: 1440 + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} 1441 + postcss-nested@6.2.0: 1442 + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 1443 + engines: {node: ">=12.0"} 1444 + peerDependencies: 1445 + postcss: ^8.2.14 1446 + postcss-selector-parser@6.1.2: 1447 + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 1448 + engines: {node: ">=4"} 1449 + postcss@8.5.6: 1450 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1451 + engines: {node: ^10 || ^12 || >=14} 1452 + prismjs@1.30.0: 1453 + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 1454 + engines: {node: ">=6"} 1455 + prompts@2.4.2: 1456 + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1457 + engines: {node: ">= 6"} 1458 + property-information@7.1.0: 1459 + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 1460 + radix3@1.1.2: 1461 + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} 1462 + readdirp@5.0.0: 1463 + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} 1464 + engines: {node: ">= 20.19.0"} 1465 + recma-build-jsx@1.0.0: 1466 + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} 1467 + recma-jsx@1.0.1: 1468 + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} 1469 + peerDependencies: 1470 + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1471 + recma-parse@1.0.0: 1472 + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} 1473 + recma-stringify@1.0.0: 1474 + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} 1475 + regex-recursion@6.0.2: 1476 + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} 1477 + regex-utilities@2.3.0: 1478 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1479 + regex@6.1.0: 1480 + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} 1481 + rehype-expressive-code@0.41.6: 1482 + resolution: {integrity: sha512-aBMX8kxPtjmDSFUdZlAWJkMvsQ4ZMASfee90JWIAV8tweltXLzkWC3q++43ToTelI8ac5iC0B3/S/Cl4Ql1y2g==} 1483 + rehype-format@5.0.1: 1484 + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} 1485 + rehype-parse@9.0.1: 1486 + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} 1487 + rehype-raw@7.0.0: 1488 + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} 1489 + rehype-recma@1.0.0: 1490 + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} 1491 + rehype-stringify@10.0.1: 1492 + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} 1493 + rehype@13.0.2: 1494 + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} 1495 + remark-directive@3.0.1: 1496 + resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} 1497 + remark-gfm@4.0.1: 1498 + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} 1499 + remark-mdx@3.1.1: 1500 + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} 1501 + remark-parse@11.0.0: 1502 + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} 1503 + remark-rehype@11.1.2: 1504 + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 1505 + remark-smartypants@3.0.2: 1506 + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} 1507 + engines: {node: ">=16.0.0"} 1508 + remark-stringify@11.0.0: 1509 + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 1510 + retext-latin@4.0.0: 1511 + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} 1512 + retext-smartypants@6.2.0: 1513 + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} 1514 + retext-stringify@4.0.0: 1515 + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} 1516 + retext@9.0.0: 1517 + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} 1518 + robust-predicates@3.0.2: 1519 + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} 1520 + rollup@4.57.1: 1521 + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} 1522 + engines: {node: ">=18.0.0", npm: ">=8.0.0"} 1523 + hasBin: true 1524 + roughjs@4.6.6: 1525 + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} 1526 + rw@1.3.3: 1527 + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} 1528 + safer-buffer@2.1.2: 1529 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1530 + sax@1.4.4: 1531 + resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} 1532 + engines: {node: ">=11.0.0"} 1533 + semver@7.7.4: 1534 + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} 1535 + engines: {node: ">=10"} 1536 + hasBin: true 1537 + sharp@0.34.5: 1538 + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} 1539 + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1540 + shiki@3.22.0: 1541 + resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} 1542 + sisteransi@1.0.5: 1543 + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 1544 + sitemap@8.0.2: 1545 + resolution: {integrity: sha512-LwktpJcyZDoa0IL6KT++lQ53pbSrx2c9ge41/SeLTyqy2XUNA6uR4+P9u5IVo5lPeL2arAcOKn1aZAxoYbCKlQ==} 1546 + engines: {node: ">=14.0.0", npm: ">=6.0.0"} 1547 + hasBin: true 1548 + smol-toml@1.6.0: 1549 + resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==} 1550 + engines: {node: ">= 18"} 1551 + source-map-js@1.2.1: 1552 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1553 + engines: {node: ">=0.10.0"} 1554 + source-map@0.7.6: 1555 + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 1556 + engines: {node: ">= 12"} 1557 + space-separated-tokens@2.0.2: 1558 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 1559 + stream-replace-string@2.0.0: 1560 + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} 1561 + string-width@4.2.3: 1562 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1563 + engines: {node: ">=8"} 1564 + string-width@7.2.0: 1565 + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1566 + engines: {node: ">=18"} 1567 + stringify-entities@4.0.4: 1568 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 1569 + strip-ansi@6.0.1: 1570 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1571 + engines: {node: ">=8"} 1572 + strip-ansi@7.1.2: 1573 + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 1574 + engines: {node: ">=12"} 1575 + style-to-js@1.1.21: 1576 + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} 1577 + style-to-object@1.0.14: 1578 + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} 1579 + stylis@4.3.6: 1580 + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} 1581 + svgo@4.0.0: 1582 + resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} 1583 + engines: {node: ">=16"} 1584 + hasBin: true 1585 + tiny-inflate@1.0.3: 1586 + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} 1587 + tinyexec@1.0.2: 1588 + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} 1589 + engines: {node: ">=18"} 1590 + tinyglobby@0.2.15: 1591 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1592 + engines: {node: ">=12.0.0"} 1593 + trim-lines@3.0.1: 1594 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1595 + trough@2.2.0: 1596 + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 1597 + ts-dedent@2.2.0: 1598 + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} 1599 + engines: {node: ">=6.10"} 1600 + tsconfck@3.1.6: 1601 + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} 1602 + engines: {node: ^18 || >=20} 1603 + hasBin: true 1604 + peerDependencies: 1605 + typescript: ^5.0.0 1606 + peerDependenciesMeta: 1607 + typescript: 1608 + optional: true 1609 + tslib@2.8.1: 1610 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1611 + type-fest@4.41.0: 1612 + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 1613 + engines: {node: ">=16"} 1614 + typescript@5.9.3: 1615 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1616 + engines: {node: ">=14.17"} 1617 + hasBin: true 1618 + ufo@1.6.3: 1619 + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} 1620 + ultrahtml@1.6.0: 1621 + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} 1622 + uncrypto@0.1.3: 1623 + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 1624 + unified@11.0.5: 1625 + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 1626 + unifont@0.7.4: 1627 + resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} 1628 + unist-util-find-after@5.0.0: 1629 + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} 1630 + unist-util-is@6.0.1: 1631 + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} 1632 + unist-util-modify-children@4.0.0: 1633 + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} 1634 + unist-util-position-from-estree@2.0.0: 1635 + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} 1636 + unist-util-position@5.0.0: 1637 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 1638 + unist-util-remove-position@5.0.0: 1639 + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} 1640 + unist-util-stringify-position@4.0.0: 1641 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1642 + unist-util-visit-children@3.0.0: 1643 + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} 1644 + unist-util-visit-parents@6.0.2: 1645 + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} 1646 + unist-util-visit@5.1.0: 1647 + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} 1648 + unstorage@1.17.4: 1649 + resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} 1650 + peerDependencies: 1651 + "@azure/app-configuration": ^1.8.0 1652 + "@azure/cosmos": ^4.2.0 1653 + "@azure/data-tables": ^13.3.0 1654 + "@azure/identity": ^4.6.0 1655 + "@azure/keyvault-secrets": ^4.9.0 1656 + "@azure/storage-blob": ^12.26.0 1657 + "@capacitor/preferences": ^6 || ^7 || ^8 1658 + "@deno/kv": ">=0.9.0" 1659 + "@netlify/blobs": ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 1660 + "@planetscale/database": ^1.19.0 1661 + "@upstash/redis": ^1.34.3 1662 + "@vercel/blob": ">=0.27.1" 1663 + "@vercel/functions": ^2.2.12 || ^3.0.0 1664 + "@vercel/kv": ^1 || ^2 || ^3 1665 + aws4fetch: ^1.0.20 1666 + db0: ">=0.2.1" 1667 + idb-keyval: ^6.2.1 1668 + ioredis: ^5.4.2 1669 + uploadthing: ^7.4.4 1670 + peerDependenciesMeta: 1671 + "@azure/app-configuration": 1672 + optional: true 1673 + "@azure/cosmos": 1674 + optional: true 1675 + "@azure/data-tables": 1676 + optional: true 1677 + "@azure/identity": 1678 + optional: true 1679 + "@azure/keyvault-secrets": 1680 + optional: true 1681 + "@azure/storage-blob": 1682 + optional: true 1683 + "@capacitor/preferences": 1684 + optional: true 1685 + "@deno/kv": 1686 + optional: true 1687 + "@netlify/blobs": 1688 + optional: true 1689 + "@planetscale/database": 1690 + optional: true 1691 + "@upstash/redis": 1692 + optional: true 1693 + "@vercel/blob": 1694 + optional: true 1695 + "@vercel/functions": 1696 + optional: true 1697 + "@vercel/kv": 1698 + optional: true 1699 + aws4fetch: 1700 + optional: true 1701 + db0: 1702 + optional: true 1703 + idb-keyval: 1704 + optional: true 1705 + ioredis: 1706 + optional: true 1707 + uploadthing: 1708 + optional: true 1709 + util-deprecate@1.0.2: 1710 + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1711 + uuid@11.1.0: 1712 + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} 1713 + hasBin: true 1714 + vfile-location@5.0.3: 1715 + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} 1716 + vfile-message@4.0.3: 1717 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 1718 + vfile@6.0.3: 1719 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1720 + vite@6.4.1: 1721 + resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} 1722 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1723 + hasBin: true 1724 + peerDependencies: 1725 + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 1726 + jiti: ">=1.21.0" 1727 + less: "*" 1728 + lightningcss: ^1.21.0 1729 + sass: "*" 1730 + sass-embedded: "*" 1731 + stylus: "*" 1732 + sugarss: "*" 1733 + terser: ^5.16.0 1734 + tsx: ^4.8.1 1735 + yaml: ^2.4.2 1736 + peerDependenciesMeta: 1737 + "@types/node": 1738 + optional: true 1739 + jiti: 1740 + optional: true 1741 + less: 1742 + optional: true 1743 + lightningcss: 1744 + optional: true 1745 + sass: 1746 + optional: true 1747 + sass-embedded: 1748 + optional: true 1749 + stylus: 1750 + optional: true 1751 + sugarss: 1752 + optional: true 1753 + terser: 1754 + optional: true 1755 + tsx: 1756 + optional: true 1757 + yaml: 1758 + optional: true 1759 + vitefu@1.1.1: 1760 + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} 1761 + peerDependencies: 1762 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 1763 + peerDependenciesMeta: 1764 + vite: 1765 + optional: true 1766 + vscode-jsonrpc@8.2.0: 1767 + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} 1768 + engines: {node: ">=14.0.0"} 1769 + vscode-languageserver-protocol@3.17.5: 1770 + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} 1771 + vscode-languageserver-textdocument@1.0.12: 1772 + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} 1773 + vscode-languageserver-types@3.17.5: 1774 + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} 1775 + vscode-languageserver@9.0.1: 1776 + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} 1777 + hasBin: true 1778 + vscode-uri@3.1.0: 1779 + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 1780 + web-namespaces@2.0.1: 1781 + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 1782 + which-pm-runs@1.1.0: 1783 + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 1784 + engines: {node: ">=4"} 1785 + widest-line@5.0.0: 1786 + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 1787 + engines: {node: ">=18"} 1788 + wrap-ansi@9.0.2: 1789 + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} 1790 + engines: {node: ">=18"} 1791 + xxhash-wasm@1.1.0: 1792 + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} 1793 + yargs-parser@21.1.1: 1794 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1795 + engines: {node: ">=12"} 1796 + yocto-queue@1.2.2: 1797 + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} 1798 + engines: {node: ">=12.20"} 1799 + yocto-spinner@0.2.3: 1800 + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} 1801 + engines: {node: ">=18.19"} 1802 + yoctocolors@2.1.2: 1803 + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} 1804 + engines: {node: ">=18"} 1805 + zod-to-json-schema@3.25.1: 1806 + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} 1807 + peerDependencies: 1808 + zod: ^3.25 || ^4 1809 + zod-to-ts@1.2.0: 1810 + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} 1811 + peerDependencies: 1812 + typescript: ^4.9.4 || ^5.0.2 1813 + zod: ^3 1814 + zod@3.25.76: 1815 + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 1816 + zwitch@2.0.4: 1817 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1818 + snapshots: 1819 + "@antfu/install-pkg@1.1.0": 1820 + dependencies: 1821 + package-manager-detector: 1.6.0 1822 + tinyexec: 1.0.2 1823 + "@astrojs/compiler@2.13.1": {} 1824 + "@astrojs/internal-helpers@0.7.5": {} 1825 + "@astrojs/markdown-remark@6.3.10": 1826 + dependencies: 1827 + "@astrojs/internal-helpers": 0.7.5 1828 + "@astrojs/prism": 3.3.0 1829 + github-slugger: 2.0.0 1830 + hast-util-from-html: 2.0.3 1831 + hast-util-to-text: 4.0.2 1832 + import-meta-resolve: 4.2.0 1833 + js-yaml: 4.1.1 1834 + mdast-util-definitions: 6.0.0 1835 + rehype-raw: 7.0.0 1836 + rehype-stringify: 10.0.1 1837 + remark-gfm: 4.0.1 1838 + remark-parse: 11.0.0 1839 + remark-rehype: 11.1.2 1840 + remark-smartypants: 3.0.2 1841 + shiki: 3.22.0 1842 + smol-toml: 1.6.0 1843 + unified: 11.0.5 1844 + unist-util-remove-position: 5.0.0 1845 + unist-util-visit: 5.1.0 1846 + unist-util-visit-parents: 6.0.2 1847 + vfile: 6.0.3 1848 + transitivePeerDependencies: 1849 + - supports-color 1850 + "@astrojs/mdx@4.3.13(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3))": 1851 + dependencies: 1852 + "@astrojs/markdown-remark": 6.3.10 1853 + "@mdx-js/mdx": 3.1.1 1854 + acorn: 8.16.0 1855 + astro: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 1856 + es-module-lexer: 1.7.0 1857 + estree-util-visit: 2.0.0 1858 + hast-util-to-html: 9.0.5 1859 + piccolore: 0.1.3 1860 + rehype-raw: 7.0.0 1861 + remark-gfm: 4.0.1 1862 + remark-smartypants: 3.0.2 1863 + source-map: 0.7.6 1864 + unist-util-visit: 5.1.0 1865 + vfile: 6.0.3 1866 + transitivePeerDependencies: 1867 + - supports-color 1868 + "@astrojs/prism@3.3.0": 1869 + dependencies: 1870 + prismjs: 1.30.0 1871 + "@astrojs/sitemap@3.7.0": 1872 + dependencies: 1873 + sitemap: 8.0.2 1874 + stream-replace-string: 2.0.0 1875 + zod: 3.25.76 1876 + "@astrojs/starlight@0.37.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3))": 1877 + dependencies: 1878 + "@astrojs/markdown-remark": 6.3.10 1879 + "@astrojs/mdx": 4.3.13(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)) 1880 + "@astrojs/sitemap": 3.7.0 1881 + "@pagefind/default-ui": 1.4.0 1882 + "@types/hast": 3.0.4 1883 + "@types/js-yaml": 4.0.9 1884 + "@types/mdast": 4.0.4 1885 + astro: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 1886 + astro-expressive-code: 0.41.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)) 1887 + bcp-47: 2.1.0 1888 + hast-util-from-html: 2.0.3 1889 + hast-util-select: 6.0.4 1890 + hast-util-to-string: 3.0.1 1891 + hastscript: 9.0.1 1892 + i18next: 23.16.8 1893 + js-yaml: 4.1.1 1894 + klona: 2.0.6 1895 + magic-string: 0.30.21 1896 + mdast-util-directive: 3.1.0 1897 + mdast-util-to-markdown: 2.1.2 1898 + mdast-util-to-string: 4.0.0 1899 + pagefind: 1.4.0 1900 + rehype: 13.0.2 1901 + rehype-format: 5.0.1 1902 + remark-directive: 3.0.1 1903 + ultrahtml: 1.6.0 1904 + unified: 11.0.5 1905 + unist-util-visit: 5.1.0 1906 + vfile: 6.0.3 1907 + transitivePeerDependencies: 1908 + - supports-color 1909 + "@astrojs/telemetry@3.3.0": 1910 + dependencies: 1911 + ci-info: 4.4.0 1912 + debug: 4.4.3 1913 + dlv: 1.1.3 1914 + dset: 3.1.4 1915 + is-docker: 3.0.0 1916 + is-wsl: 3.1.1 1917 + which-pm-runs: 1.1.0 1918 + transitivePeerDependencies: 1919 + - supports-color 1920 + "@babel/helper-string-parser@7.27.1": {} 1921 + "@babel/helper-validator-identifier@7.28.5": {} 1922 + "@babel/parser@7.29.0": 1923 + dependencies: 1924 + "@babel/types": 7.29.0 1925 + "@babel/runtime@7.28.6": {} 1926 + "@babel/types@7.29.0": 1927 + dependencies: 1928 + "@babel/helper-string-parser": 7.27.1 1929 + "@babel/helper-validator-identifier": 7.28.5 1930 + "@braintree/sanitize-url@7.1.2": {} 1931 + "@capsizecss/unpack@4.0.0": 1932 + dependencies: 1933 + fontkitten: 1.0.2 1934 + ? "@catppuccin/starlight@1.1.1(@astrojs/starlight@0.37.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)))(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3))" 1935 + : dependencies: 1936 + "@astrojs/starlight": 0.37.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)) 1937 + astro: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 1938 + "@chevrotain/cst-dts-gen@11.1.1": 1939 + dependencies: 1940 + "@chevrotain/gast": 11.1.1 1941 + "@chevrotain/types": 11.1.1 1942 + lodash-es: 4.17.23 1943 + "@chevrotain/gast@11.1.1": 1944 + dependencies: 1945 + "@chevrotain/types": 11.1.1 1946 + lodash-es: 4.17.23 1947 + "@chevrotain/regexp-to-ast@11.1.1": {} 1948 + "@chevrotain/types@11.1.1": {} 1949 + "@chevrotain/utils@11.1.1": {} 1950 + "@ctrl/tinycolor@4.2.0": {} 1951 + "@emnapi/runtime@1.8.1": 1952 + dependencies: 1953 + tslib: 2.8.1 1954 + optional: true 1955 + "@esbuild/aix-ppc64@0.25.12": 1956 + optional: true 1957 + "@esbuild/aix-ppc64@0.27.3": 1958 + optional: true 1959 + "@esbuild/android-arm64@0.25.12": 1960 + optional: true 1961 + "@esbuild/android-arm64@0.27.3": 1962 + optional: true 1963 + "@esbuild/android-arm@0.25.12": 1964 + optional: true 1965 + "@esbuild/android-arm@0.27.3": 1966 + optional: true 1967 + "@esbuild/android-x64@0.25.12": 1968 + optional: true 1969 + "@esbuild/android-x64@0.27.3": 1970 + optional: true 1971 + "@esbuild/darwin-arm64@0.25.12": 1972 + optional: true 1973 + "@esbuild/darwin-arm64@0.27.3": 1974 + optional: true 1975 + "@esbuild/darwin-x64@0.25.12": 1976 + optional: true 1977 + "@esbuild/darwin-x64@0.27.3": 1978 + optional: true 1979 + "@esbuild/freebsd-arm64@0.25.12": 1980 + optional: true 1981 + "@esbuild/freebsd-arm64@0.27.3": 1982 + optional: true 1983 + "@esbuild/freebsd-x64@0.25.12": 1984 + optional: true 1985 + "@esbuild/freebsd-x64@0.27.3": 1986 + optional: true 1987 + "@esbuild/linux-arm64@0.25.12": 1988 + optional: true 1989 + "@esbuild/linux-arm64@0.27.3": 1990 + optional: true 1991 + "@esbuild/linux-arm@0.25.12": 1992 + optional: true 1993 + "@esbuild/linux-arm@0.27.3": 1994 + optional: true 1995 + "@esbuild/linux-ia32@0.25.12": 1996 + optional: true 1997 + "@esbuild/linux-ia32@0.27.3": 1998 + optional: true 1999 + "@esbuild/linux-loong64@0.25.12": 2000 + optional: true 2001 + "@esbuild/linux-loong64@0.27.3": 2002 + optional: true 2003 + "@esbuild/linux-mips64el@0.25.12": 2004 + optional: true 2005 + "@esbuild/linux-mips64el@0.27.3": 2006 + optional: true 2007 + "@esbuild/linux-ppc64@0.25.12": 2008 + optional: true 2009 + "@esbuild/linux-ppc64@0.27.3": 2010 + optional: true 2011 + "@esbuild/linux-riscv64@0.25.12": 2012 + optional: true 2013 + "@esbuild/linux-riscv64@0.27.3": 2014 + optional: true 2015 + "@esbuild/linux-s390x@0.25.12": 2016 + optional: true 2017 + "@esbuild/linux-s390x@0.27.3": 2018 + optional: true 2019 + "@esbuild/linux-x64@0.25.12": 2020 + optional: true 2021 + "@esbuild/linux-x64@0.27.3": 2022 + optional: true 2023 + "@esbuild/netbsd-arm64@0.25.12": 2024 + optional: true 2025 + "@esbuild/netbsd-arm64@0.27.3": 2026 + optional: true 2027 + "@esbuild/netbsd-x64@0.25.12": 2028 + optional: true 2029 + "@esbuild/netbsd-x64@0.27.3": 2030 + optional: true 2031 + "@esbuild/openbsd-arm64@0.25.12": 2032 + optional: true 2033 + "@esbuild/openbsd-arm64@0.27.3": 2034 + optional: true 2035 + "@esbuild/openbsd-x64@0.25.12": 2036 + optional: true 2037 + "@esbuild/openbsd-x64@0.27.3": 2038 + optional: true 2039 + "@esbuild/openharmony-arm64@0.25.12": 2040 + optional: true 2041 + "@esbuild/openharmony-arm64@0.27.3": 2042 + optional: true 2043 + "@esbuild/sunos-x64@0.25.12": 2044 + optional: true 2045 + "@esbuild/sunos-x64@0.27.3": 2046 + optional: true 2047 + "@esbuild/win32-arm64@0.25.12": 2048 + optional: true 2049 + "@esbuild/win32-arm64@0.27.3": 2050 + optional: true 2051 + "@esbuild/win32-ia32@0.25.12": 2052 + optional: true 2053 + "@esbuild/win32-ia32@0.27.3": 2054 + optional: true 2055 + "@esbuild/win32-x64@0.25.12": 2056 + optional: true 2057 + "@esbuild/win32-x64@0.27.3": 2058 + optional: true 2059 + "@expressive-code/core@0.41.6": 2060 + dependencies: 2061 + "@ctrl/tinycolor": 4.2.0 2062 + hast-util-select: 6.0.4 2063 + hast-util-to-html: 9.0.5 2064 + hast-util-to-text: 4.0.2 2065 + hastscript: 9.0.1 2066 + postcss: 8.5.6 2067 + postcss-nested: 6.2.0(postcss@8.5.6) 2068 + unist-util-visit: 5.1.0 2069 + unist-util-visit-parents: 6.0.2 2070 + "@expressive-code/plugin-frames@0.41.6": 2071 + dependencies: 2072 + "@expressive-code/core": 0.41.6 2073 + "@expressive-code/plugin-shiki@0.41.6": 2074 + dependencies: 2075 + "@expressive-code/core": 0.41.6 2076 + shiki: 3.22.0 2077 + "@expressive-code/plugin-text-markers@0.41.6": 2078 + dependencies: 2079 + "@expressive-code/core": 0.41.6 2080 + "@iconify/types@2.0.0": {} 2081 + "@iconify/utils@3.1.0": 2082 + dependencies: 2083 + "@antfu/install-pkg": 1.1.0 2084 + "@iconify/types": 2.0.0 2085 + mlly: 1.8.0 2086 + "@img/colour@1.0.0": {} 2087 + "@img/sharp-darwin-arm64@0.34.5": 2088 + optionalDependencies: 2089 + "@img/sharp-libvips-darwin-arm64": 1.2.4 2090 + optional: true 2091 + "@img/sharp-darwin-x64@0.34.5": 2092 + optionalDependencies: 2093 + "@img/sharp-libvips-darwin-x64": 1.2.4 2094 + optional: true 2095 + "@img/sharp-libvips-darwin-arm64@1.2.4": 2096 + optional: true 2097 + "@img/sharp-libvips-darwin-x64@1.2.4": 2098 + optional: true 2099 + "@img/sharp-libvips-linux-arm64@1.2.4": 2100 + optional: true 2101 + "@img/sharp-libvips-linux-arm@1.2.4": 2102 + optional: true 2103 + "@img/sharp-libvips-linux-ppc64@1.2.4": 2104 + optional: true 2105 + "@img/sharp-libvips-linux-riscv64@1.2.4": 2106 + optional: true 2107 + "@img/sharp-libvips-linux-s390x@1.2.4": 2108 + optional: true 2109 + "@img/sharp-libvips-linux-x64@1.2.4": 2110 + optional: true 2111 + "@img/sharp-libvips-linuxmusl-arm64@1.2.4": 2112 + optional: true 2113 + "@img/sharp-libvips-linuxmusl-x64@1.2.4": 2114 + optional: true 2115 + "@img/sharp-linux-arm64@0.34.5": 2116 + optionalDependencies: 2117 + "@img/sharp-libvips-linux-arm64": 1.2.4 2118 + optional: true 2119 + "@img/sharp-linux-arm@0.34.5": 2120 + optionalDependencies: 2121 + "@img/sharp-libvips-linux-arm": 1.2.4 2122 + optional: true 2123 + "@img/sharp-linux-ppc64@0.34.5": 2124 + optionalDependencies: 2125 + "@img/sharp-libvips-linux-ppc64": 1.2.4 2126 + optional: true 2127 + "@img/sharp-linux-riscv64@0.34.5": 2128 + optionalDependencies: 2129 + "@img/sharp-libvips-linux-riscv64": 1.2.4 2130 + optional: true 2131 + "@img/sharp-linux-s390x@0.34.5": 2132 + optionalDependencies: 2133 + "@img/sharp-libvips-linux-s390x": 1.2.4 2134 + optional: true 2135 + "@img/sharp-linux-x64@0.34.5": 2136 + optionalDependencies: 2137 + "@img/sharp-libvips-linux-x64": 1.2.4 2138 + optional: true 2139 + "@img/sharp-linuxmusl-arm64@0.34.5": 2140 + optionalDependencies: 2141 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 2142 + optional: true 2143 + "@img/sharp-linuxmusl-x64@0.34.5": 2144 + optionalDependencies: 2145 + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 2146 + optional: true 2147 + "@img/sharp-wasm32@0.34.5": 2148 + dependencies: 2149 + "@emnapi/runtime": 1.8.1 2150 + optional: true 2151 + "@img/sharp-win32-arm64@0.34.5": 2152 + optional: true 2153 + "@img/sharp-win32-ia32@0.34.5": 2154 + optional: true 2155 + "@img/sharp-win32-x64@0.34.5": 2156 + optional: true 2157 + "@jridgewell/sourcemap-codec@1.5.5": {} 2158 + "@mdx-js/mdx@3.1.1": 2159 + dependencies: 2160 + "@types/estree": 1.0.8 2161 + "@types/estree-jsx": 1.0.5 2162 + "@types/hast": 3.0.4 2163 + "@types/mdx": 2.0.13 2164 + acorn: 8.16.0 2165 + collapse-white-space: 2.1.0 2166 + devlop: 1.1.0 2167 + estree-util-is-identifier-name: 3.0.0 2168 + estree-util-scope: 1.0.0 2169 + estree-walker: 3.0.3 2170 + hast-util-to-jsx-runtime: 2.3.6 2171 + markdown-extensions: 2.0.0 2172 + recma-build-jsx: 1.0.0 2173 + recma-jsx: 1.0.1(acorn@8.16.0) 2174 + recma-stringify: 1.0.0 2175 + rehype-recma: 1.0.0 2176 + remark-mdx: 3.1.1 2177 + remark-parse: 11.0.0 2178 + remark-rehype: 11.1.2 2179 + source-map: 0.7.6 2180 + unified: 11.0.5 2181 + unist-util-position-from-estree: 2.0.0 2182 + unist-util-stringify-position: 4.0.0 2183 + unist-util-visit: 5.1.0 2184 + vfile: 6.0.3 2185 + transitivePeerDependencies: 2186 + - supports-color 2187 + "@mermaid-js/parser@1.0.0": 2188 + dependencies: 2189 + langium: 4.2.1 2190 + "@oslojs/encoding@1.1.0": {} 2191 + "@pagefind/darwin-arm64@1.4.0": 2192 + optional: true 2193 + "@pagefind/darwin-x64@1.4.0": 2194 + optional: true 2195 + "@pagefind/default-ui@1.4.0": {} 2196 + "@pagefind/freebsd-x64@1.4.0": 2197 + optional: true 2198 + "@pagefind/linux-arm64@1.4.0": 2199 + optional: true 2200 + "@pagefind/linux-x64@1.4.0": 2201 + optional: true 2202 + "@pagefind/windows-x64@1.4.0": 2203 + optional: true 2204 + "@rollup/pluginutils@5.3.0(rollup@4.57.1)": 2205 + dependencies: 2206 + "@types/estree": 1.0.8 2207 + estree-walker: 2.0.2 2208 + picomatch: 4.0.3 2209 + optionalDependencies: 2210 + rollup: 4.57.1 2211 + "@rollup/rollup-android-arm-eabi@4.57.1": 2212 + optional: true 2213 + "@rollup/rollup-android-arm64@4.57.1": 2214 + optional: true 2215 + "@rollup/rollup-darwin-arm64@4.57.1": 2216 + optional: true 2217 + "@rollup/rollup-darwin-x64@4.57.1": 2218 + optional: true 2219 + "@rollup/rollup-freebsd-arm64@4.57.1": 2220 + optional: true 2221 + "@rollup/rollup-freebsd-x64@4.57.1": 2222 + optional: true 2223 + "@rollup/rollup-linux-arm-gnueabihf@4.57.1": 2224 + optional: true 2225 + "@rollup/rollup-linux-arm-musleabihf@4.57.1": 2226 + optional: true 2227 + "@rollup/rollup-linux-arm64-gnu@4.57.1": 2228 + optional: true 2229 + "@rollup/rollup-linux-arm64-musl@4.57.1": 2230 + optional: true 2231 + "@rollup/rollup-linux-loong64-gnu@4.57.1": 2232 + optional: true 2233 + "@rollup/rollup-linux-loong64-musl@4.57.1": 2234 + optional: true 2235 + "@rollup/rollup-linux-ppc64-gnu@4.57.1": 2236 + optional: true 2237 + "@rollup/rollup-linux-ppc64-musl@4.57.1": 2238 + optional: true 2239 + "@rollup/rollup-linux-riscv64-gnu@4.57.1": 2240 + optional: true 2241 + "@rollup/rollup-linux-riscv64-musl@4.57.1": 2242 + optional: true 2243 + "@rollup/rollup-linux-s390x-gnu@4.57.1": 2244 + optional: true 2245 + "@rollup/rollup-linux-x64-gnu@4.57.1": 2246 + optional: true 2247 + "@rollup/rollup-linux-x64-musl@4.57.1": 2248 + optional: true 2249 + "@rollup/rollup-openbsd-x64@4.57.1": 2250 + optional: true 2251 + "@rollup/rollup-openharmony-arm64@4.57.1": 2252 + optional: true 2253 + "@rollup/rollup-win32-arm64-msvc@4.57.1": 2254 + optional: true 2255 + "@rollup/rollup-win32-ia32-msvc@4.57.1": 2256 + optional: true 2257 + "@rollup/rollup-win32-x64-gnu@4.57.1": 2258 + optional: true 2259 + "@rollup/rollup-win32-x64-msvc@4.57.1": 2260 + optional: true 2261 + "@shikijs/core@3.22.0": 2262 + dependencies: 2263 + "@shikijs/types": 3.22.0 2264 + "@shikijs/vscode-textmate": 10.0.2 2265 + "@types/hast": 3.0.4 2266 + hast-util-to-html: 9.0.5 2267 + "@shikijs/engine-javascript@3.22.0": 2268 + dependencies: 2269 + "@shikijs/types": 3.22.0 2270 + "@shikijs/vscode-textmate": 10.0.2 2271 + oniguruma-to-es: 4.3.4 2272 + "@shikijs/engine-oniguruma@3.22.0": 2273 + dependencies: 2274 + "@shikijs/types": 3.22.0 2275 + "@shikijs/vscode-textmate": 10.0.2 2276 + "@shikijs/langs@3.22.0": 2277 + dependencies: 2278 + "@shikijs/types": 3.22.0 2279 + "@shikijs/themes@3.22.0": 2280 + dependencies: 2281 + "@shikijs/types": 3.22.0 2282 + "@shikijs/types@3.22.0": 2283 + dependencies: 2284 + "@shikijs/vscode-textmate": 10.0.2 2285 + "@types/hast": 3.0.4 2286 + "@shikijs/vscode-textmate@10.0.2": {} 2287 + "@types/d3-array@3.2.2": {} 2288 + "@types/d3-axis@3.0.6": 2289 + dependencies: 2290 + "@types/d3-selection": 3.0.11 2291 + "@types/d3-brush@3.0.6": 2292 + dependencies: 2293 + "@types/d3-selection": 3.0.11 2294 + "@types/d3-chord@3.0.6": {} 2295 + "@types/d3-color@3.1.3": {} 2296 + "@types/d3-contour@3.0.6": 2297 + dependencies: 2298 + "@types/d3-array": 3.2.2 2299 + "@types/geojson": 7946.0.16 2300 + "@types/d3-delaunay@6.0.4": {} 2301 + "@types/d3-dispatch@3.0.7": {} 2302 + "@types/d3-drag@3.0.7": 2303 + dependencies: 2304 + "@types/d3-selection": 3.0.11 2305 + "@types/d3-dsv@3.0.7": {} 2306 + "@types/d3-ease@3.0.2": {} 2307 + "@types/d3-fetch@3.0.7": 2308 + dependencies: 2309 + "@types/d3-dsv": 3.0.7 2310 + "@types/d3-force@3.0.10": {} 2311 + "@types/d3-format@3.0.4": {} 2312 + "@types/d3-geo@3.1.0": 2313 + dependencies: 2314 + "@types/geojson": 7946.0.16 2315 + "@types/d3-hierarchy@3.1.7": {} 2316 + "@types/d3-interpolate@3.0.4": 2317 + dependencies: 2318 + "@types/d3-color": 3.1.3 2319 + "@types/d3-path@3.1.1": {} 2320 + "@types/d3-polygon@3.0.2": {} 2321 + "@types/d3-quadtree@3.0.6": {} 2322 + "@types/d3-random@3.0.3": {} 2323 + "@types/d3-scale-chromatic@3.1.0": {} 2324 + "@types/d3-scale@4.0.9": 2325 + dependencies: 2326 + "@types/d3-time": 3.0.4 2327 + "@types/d3-selection@3.0.11": {} 2328 + "@types/d3-shape@3.1.8": 2329 + dependencies: 2330 + "@types/d3-path": 3.1.1 2331 + "@types/d3-time-format@4.0.3": {} 2332 + "@types/d3-time@3.0.4": {} 2333 + "@types/d3-timer@3.0.2": {} 2334 + "@types/d3-transition@3.0.9": 2335 + dependencies: 2336 + "@types/d3-selection": 3.0.11 2337 + "@types/d3-zoom@3.0.8": 2338 + dependencies: 2339 + "@types/d3-interpolate": 3.0.4 2340 + "@types/d3-selection": 3.0.11 2341 + "@types/d3@7.4.3": 2342 + dependencies: 2343 + "@types/d3-array": 3.2.2 2344 + "@types/d3-axis": 3.0.6 2345 + "@types/d3-brush": 3.0.6 2346 + "@types/d3-chord": 3.0.6 2347 + "@types/d3-color": 3.1.3 2348 + "@types/d3-contour": 3.0.6 2349 + "@types/d3-delaunay": 6.0.4 2350 + "@types/d3-dispatch": 3.0.7 2351 + "@types/d3-drag": 3.0.7 2352 + "@types/d3-dsv": 3.0.7 2353 + "@types/d3-ease": 3.0.2 2354 + "@types/d3-fetch": 3.0.7 2355 + "@types/d3-force": 3.0.10 2356 + "@types/d3-format": 3.0.4 2357 + "@types/d3-geo": 3.1.0 2358 + "@types/d3-hierarchy": 3.1.7 2359 + "@types/d3-interpolate": 3.0.4 2360 + "@types/d3-path": 3.1.1 2361 + "@types/d3-polygon": 3.0.2 2362 + "@types/d3-quadtree": 3.0.6 2363 + "@types/d3-random": 3.0.3 2364 + "@types/d3-scale": 4.0.9 2365 + "@types/d3-scale-chromatic": 3.1.0 2366 + "@types/d3-selection": 3.0.11 2367 + "@types/d3-shape": 3.1.8 2368 + "@types/d3-time": 3.0.4 2369 + "@types/d3-time-format": 4.0.3 2370 + "@types/d3-timer": 3.0.2 2371 + "@types/d3-transition": 3.0.9 2372 + "@types/d3-zoom": 3.0.8 2373 + "@types/debug@4.1.12": 2374 + dependencies: 2375 + "@types/ms": 2.1.0 2376 + "@types/estree-jsx@1.0.5": 2377 + dependencies: 2378 + "@types/estree": 1.0.8 2379 + "@types/estree@1.0.8": {} 2380 + "@types/geojson@7946.0.16": {} 2381 + "@types/hast@3.0.4": 2382 + dependencies: 2383 + "@types/unist": 3.0.3 2384 + "@types/js-yaml@4.0.9": {} 2385 + "@types/mdast@4.0.4": 2386 + dependencies: 2387 + "@types/unist": 3.0.3 2388 + "@types/mdx@2.0.13": {} 2389 + "@types/ms@2.1.0": {} 2390 + "@types/nlcst@2.0.3": 2391 + dependencies: 2392 + "@types/unist": 3.0.3 2393 + "@types/node@17.0.45": {} 2394 + "@types/sax@1.2.7": 2395 + dependencies: 2396 + "@types/node": 17.0.45 2397 + "@types/trusted-types@2.0.7": 2398 + optional: true 2399 + "@types/unist@2.0.11": {} 2400 + "@types/unist@3.0.3": {} 2401 + "@ungap/structured-clone@1.3.0": {} 2402 + acorn-jsx@5.3.2(acorn@8.16.0): 2403 + dependencies: 2404 + acorn: 8.16.0 2405 + acorn@8.16.0: {} 2406 + ansi-align@3.0.1: 2407 + dependencies: 2408 + string-width: 4.2.3 2409 + ansi-regex@5.0.1: {} 2410 + ansi-regex@6.2.2: {} 2411 + ansi-styles@6.2.3: {} 2412 + anymatch@3.1.3: 2413 + dependencies: 2414 + normalize-path: 3.0.0 2415 + picomatch: 2.3.1 2416 + arg@5.0.2: {} 2417 + argparse@2.0.1: {} 2418 + aria-query@5.3.2: {} 2419 + array-iterate@2.0.1: {} 2420 + astring@1.9.0: {} 2421 + astro-expressive-code@0.41.6(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3)): 2422 + dependencies: 2423 + astro: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 2424 + rehype-expressive-code: 0.41.6 2425 + astro-mermaid@1.3.1(astro@5.17.3(rollup@4.57.1)(typescript@5.9.3))(mermaid@11.12.3): 2426 + dependencies: 2427 + astro: 5.17.3(rollup@4.57.1)(typescript@5.9.3) 2428 + import-meta-resolve: 4.2.0 2429 + mdast-util-to-string: 4.0.0 2430 + mermaid: 11.12.3 2431 + unist-util-visit: 5.1.0 2432 + astro@5.17.3(rollup@4.57.1)(typescript@5.9.3): 2433 + dependencies: 2434 + "@astrojs/compiler": 2.13.1 2435 + "@astrojs/internal-helpers": 0.7.5 2436 + "@astrojs/markdown-remark": 6.3.10 2437 + "@astrojs/telemetry": 3.3.0 2438 + "@capsizecss/unpack": 4.0.0 2439 + "@oslojs/encoding": 1.1.0 2440 + "@rollup/pluginutils": 5.3.0(rollup@4.57.1) 2441 + acorn: 8.16.0 2442 + aria-query: 5.3.2 2443 + axobject-query: 4.1.0 2444 + boxen: 8.0.1 2445 + ci-info: 4.4.0 2446 + clsx: 2.1.1 2447 + common-ancestor-path: 1.0.1 2448 + cookie: 1.1.1 2449 + cssesc: 3.0.0 2450 + debug: 4.4.3 2451 + deterministic-object-hash: 2.0.2 2452 + devalue: 5.6.3 2453 + diff: 8.0.3 2454 + dlv: 1.1.3 2455 + dset: 3.1.4 2456 + es-module-lexer: 1.7.0 2457 + esbuild: 0.27.3 2458 + estree-walker: 3.0.3 2459 + flattie: 1.1.1 2460 + fontace: 0.4.1 2461 + github-slugger: 2.0.0 2462 + html-escaper: 3.0.3 2463 + http-cache-semantics: 4.2.0 2464 + import-meta-resolve: 4.2.0 2465 + js-yaml: 4.1.1 2466 + magic-string: 0.30.21 2467 + magicast: 0.5.2 2468 + mrmime: 2.0.1 2469 + neotraverse: 0.6.18 2470 + p-limit: 6.2.0 2471 + p-queue: 8.1.1 2472 + package-manager-detector: 1.6.0 2473 + piccolore: 0.1.3 2474 + picomatch: 4.0.3 2475 + prompts: 2.4.2 2476 + rehype: 13.0.2 2477 + semver: 7.7.4 2478 + shiki: 3.22.0 2479 + smol-toml: 1.6.0 2480 + svgo: 4.0.0 2481 + tinyexec: 1.0.2 2482 + tinyglobby: 0.2.15 2483 + tsconfck: 3.1.6(typescript@5.9.3) 2484 + ultrahtml: 1.6.0 2485 + unifont: 0.7.4 2486 + unist-util-visit: 5.1.0 2487 + unstorage: 1.17.4 2488 + vfile: 6.0.3 2489 + vite: 6.4.1 2490 + vitefu: 1.1.1(vite@6.4.1) 2491 + xxhash-wasm: 1.1.0 2492 + yargs-parser: 21.1.1 2493 + yocto-spinner: 0.2.3 2494 + zod: 3.25.76 2495 + zod-to-json-schema: 3.25.1(zod@3.25.76) 2496 + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) 2497 + optionalDependencies: 2498 + sharp: 0.34.5 2499 + transitivePeerDependencies: 2500 + - "@azure/app-configuration" 2501 + - "@azure/cosmos" 2502 + - "@azure/data-tables" 2503 + - "@azure/identity" 2504 + - "@azure/keyvault-secrets" 2505 + - "@azure/storage-blob" 2506 + - "@capacitor/preferences" 2507 + - "@deno/kv" 2508 + - "@netlify/blobs" 2509 + - "@planetscale/database" 2510 + - "@types/node" 2511 + - "@upstash/redis" 2512 + - "@vercel/blob" 2513 + - "@vercel/functions" 2514 + - "@vercel/kv" 2515 + - aws4fetch 2516 + - db0 2517 + - idb-keyval 2518 + - ioredis 2519 + - jiti 2520 + - less 2521 + - lightningcss 2522 + - rollup 2523 + - sass 2524 + - sass-embedded 2525 + - stylus 2526 + - sugarss 2527 + - supports-color 2528 + - terser 2529 + - tsx 2530 + - typescript 2531 + - uploadthing 2532 + - yaml 2533 + axobject-query@4.1.0: {} 2534 + bail@2.0.2: {} 2535 + base-64@1.0.0: {} 2536 + bcp-47-match@2.0.3: {} 2537 + bcp-47@2.1.0: 2538 + dependencies: 2539 + is-alphabetical: 2.0.1 2540 + is-alphanumerical: 2.0.1 2541 + is-decimal: 2.0.1 2542 + boolbase@1.0.0: {} 2543 + boxen@8.0.1: 2544 + dependencies: 2545 + ansi-align: 3.0.1 2546 + camelcase: 8.0.0 2547 + chalk: 5.6.2 2548 + cli-boxes: 3.0.0 2549 + string-width: 7.2.0 2550 + type-fest: 4.41.0 2551 + widest-line: 5.0.0 2552 + wrap-ansi: 9.0.2 2553 + camelcase@8.0.0: {} 2554 + ccount@2.0.1: {} 2555 + chalk@5.6.2: {} 2556 + character-entities-html4@2.1.0: {} 2557 + character-entities-legacy@3.0.0: {} 2558 + character-entities@2.0.2: {} 2559 + character-reference-invalid@2.0.1: {} 2560 + chevrotain-allstar@0.3.1(chevrotain@11.1.1): 2561 + dependencies: 2562 + chevrotain: 11.1.1 2563 + lodash-es: 4.17.23 2564 + chevrotain@11.1.1: 2565 + dependencies: 2566 + "@chevrotain/cst-dts-gen": 11.1.1 2567 + "@chevrotain/gast": 11.1.1 2568 + "@chevrotain/regexp-to-ast": 11.1.1 2569 + "@chevrotain/types": 11.1.1 2570 + "@chevrotain/utils": 11.1.1 2571 + lodash-es: 4.17.23 2572 + chokidar@5.0.0: 2573 + dependencies: 2574 + readdirp: 5.0.0 2575 + ci-info@4.4.0: {} 2576 + cli-boxes@3.0.0: {} 2577 + clsx@2.1.1: {} 2578 + collapse-white-space@2.1.0: {} 2579 + comma-separated-tokens@2.0.3: {} 2580 + commander@11.1.0: {} 2581 + commander@7.2.0: {} 2582 + commander@8.3.0: {} 2583 + common-ancestor-path@1.0.1: {} 2584 + confbox@0.1.8: {} 2585 + cookie-es@1.2.2: {} 2586 + cookie@1.1.1: {} 2587 + cose-base@1.0.3: 2588 + dependencies: 2589 + layout-base: 1.0.2 2590 + cose-base@2.2.0: 2591 + dependencies: 2592 + layout-base: 2.0.1 2593 + crossws@0.3.5: 2594 + dependencies: 2595 + uncrypto: 0.1.3 2596 + css-select@5.2.2: 2597 + dependencies: 2598 + boolbase: 1.0.0 2599 + css-what: 6.2.2 2600 + domhandler: 5.0.3 2601 + domutils: 3.2.2 2602 + nth-check: 2.1.1 2603 + css-selector-parser@3.3.0: {} 2604 + css-tree@2.2.1: 2605 + dependencies: 2606 + mdn-data: 2.0.28 2607 + source-map-js: 1.2.1 2608 + css-tree@3.1.0: 2609 + dependencies: 2610 + mdn-data: 2.12.2 2611 + source-map-js: 1.2.1 2612 + css-what@6.2.2: {} 2613 + cssesc@3.0.0: {} 2614 + csso@5.0.5: 2615 + dependencies: 2616 + css-tree: 2.2.1 2617 + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): 2618 + dependencies: 2619 + cose-base: 1.0.3 2620 + cytoscape: 3.33.1 2621 + cytoscape-fcose@2.2.0(cytoscape@3.33.1): 2622 + dependencies: 2623 + cose-base: 2.2.0 2624 + cytoscape: 3.33.1 2625 + cytoscape@3.33.1: {} 2626 + d3-array@2.12.1: 2627 + dependencies: 2628 + internmap: 1.0.1 2629 + d3-array@3.2.4: 2630 + dependencies: 2631 + internmap: 2.0.3 2632 + d3-axis@3.0.0: {} 2633 + d3-brush@3.0.0: 2634 + dependencies: 2635 + d3-dispatch: 3.0.1 2636 + d3-drag: 3.0.0 2637 + d3-interpolate: 3.0.1 2638 + d3-selection: 3.0.0 2639 + d3-transition: 3.0.1(d3-selection@3.0.0) 2640 + d3-chord@3.0.1: 2641 + dependencies: 2642 + d3-path: 3.1.0 2643 + d3-color@3.1.0: {} 2644 + d3-contour@4.0.2: 2645 + dependencies: 2646 + d3-array: 3.2.4 2647 + d3-delaunay@6.0.4: 2648 + dependencies: 2649 + delaunator: 5.0.1 2650 + d3-dispatch@3.0.1: {} 2651 + d3-drag@3.0.0: 2652 + dependencies: 2653 + d3-dispatch: 3.0.1 2654 + d3-selection: 3.0.0 2655 + d3-dsv@3.0.1: 2656 + dependencies: 2657 + commander: 7.2.0 2658 + iconv-lite: 0.6.3 2659 + rw: 1.3.3 2660 + d3-ease@3.0.1: {} 2661 + d3-fetch@3.0.1: 2662 + dependencies: 2663 + d3-dsv: 3.0.1 2664 + d3-force@3.0.0: 2665 + dependencies: 2666 + d3-dispatch: 3.0.1 2667 + d3-quadtree: 3.0.1 2668 + d3-timer: 3.0.1 2669 + d3-format@3.1.2: {} 2670 + d3-geo@3.1.1: 2671 + dependencies: 2672 + d3-array: 3.2.4 2673 + d3-hierarchy@3.1.2: {} 2674 + d3-interpolate@3.0.1: 2675 + dependencies: 2676 + d3-color: 3.1.0 2677 + d3-path@1.0.9: {} 2678 + d3-path@3.1.0: {} 2679 + d3-polygon@3.0.1: {} 2680 + d3-quadtree@3.0.1: {} 2681 + d3-random@3.0.1: {} 2682 + d3-sankey@0.12.3: 2683 + dependencies: 2684 + d3-array: 2.12.1 2685 + d3-shape: 1.3.7 2686 + d3-scale-chromatic@3.1.0: 2687 + dependencies: 2688 + d3-color: 3.1.0 2689 + d3-interpolate: 3.0.1 2690 + d3-scale@4.0.2: 2691 + dependencies: 2692 + d3-array: 3.2.4 2693 + d3-format: 3.1.2 2694 + d3-interpolate: 3.0.1 2695 + d3-time: 3.1.0 2696 + d3-time-format: 4.1.0 2697 + d3-selection@3.0.0: {} 2698 + d3-shape@1.3.7: 2699 + dependencies: 2700 + d3-path: 1.0.9 2701 + d3-shape@3.2.0: 2702 + dependencies: 2703 + d3-path: 3.1.0 2704 + d3-time-format@4.1.0: 2705 + dependencies: 2706 + d3-time: 3.1.0 2707 + d3-time@3.1.0: 2708 + dependencies: 2709 + d3-array: 3.2.4 2710 + d3-timer@3.0.1: {} 2711 + d3-transition@3.0.1(d3-selection@3.0.0): 2712 + dependencies: 2713 + d3-color: 3.1.0 2714 + d3-dispatch: 3.0.1 2715 + d3-ease: 3.0.1 2716 + d3-interpolate: 3.0.1 2717 + d3-selection: 3.0.0 2718 + d3-timer: 3.0.1 2719 + d3-zoom@3.0.0: 2720 + dependencies: 2721 + d3-dispatch: 3.0.1 2722 + d3-drag: 3.0.0 2723 + d3-interpolate: 3.0.1 2724 + d3-selection: 3.0.0 2725 + d3-transition: 3.0.1(d3-selection@3.0.0) 2726 + d3@7.9.0: 2727 + dependencies: 2728 + d3-array: 3.2.4 2729 + d3-axis: 3.0.0 2730 + d3-brush: 3.0.0 2731 + d3-chord: 3.0.1 2732 + d3-color: 3.1.0 2733 + d3-contour: 4.0.2 2734 + d3-delaunay: 6.0.4 2735 + d3-dispatch: 3.0.1 2736 + d3-drag: 3.0.0 2737 + d3-dsv: 3.0.1 2738 + d3-ease: 3.0.1 2739 + d3-fetch: 3.0.1 2740 + d3-force: 3.0.0 2741 + d3-format: 3.1.2 2742 + d3-geo: 3.1.1 2743 + d3-hierarchy: 3.1.2 2744 + d3-interpolate: 3.0.1 2745 + d3-path: 3.1.0 2746 + d3-polygon: 3.0.1 2747 + d3-quadtree: 3.0.1 2748 + d3-random: 3.0.1 2749 + d3-scale: 4.0.2 2750 + d3-scale-chromatic: 3.1.0 2751 + d3-selection: 3.0.0 2752 + d3-shape: 3.2.0 2753 + d3-time: 3.1.0 2754 + d3-time-format: 4.1.0 2755 + d3-timer: 3.0.1 2756 + d3-transition: 3.0.1(d3-selection@3.0.0) 2757 + d3-zoom: 3.0.0 2758 + dagre-d3-es@7.0.13: 2759 + dependencies: 2760 + d3: 7.9.0 2761 + lodash-es: 4.17.23 2762 + dayjs@1.11.19: {} 2763 + debug@4.4.3: 2764 + dependencies: 2765 + ms: 2.1.3 2766 + decode-named-character-reference@1.3.0: 2767 + dependencies: 2768 + character-entities: 2.0.2 2769 + defu@6.1.4: {} 2770 + delaunator@5.0.1: 2771 + dependencies: 2772 + robust-predicates: 3.0.2 2773 + dequal@2.0.3: {} 2774 + destr@2.0.5: {} 2775 + detect-libc@2.1.2: {} 2776 + deterministic-object-hash@2.0.2: 2777 + dependencies: 2778 + base-64: 1.0.0 2779 + devalue@5.6.3: {} 2780 + devlop@1.1.0: 2781 + dependencies: 2782 + dequal: 2.0.3 2783 + diff@8.0.3: {} 2784 + direction@2.0.1: {} 2785 + dlv@1.1.3: {} 2786 + dom-serializer@2.0.0: 2787 + dependencies: 2788 + domelementtype: 2.3.0 2789 + domhandler: 5.0.3 2790 + entities: 4.5.0 2791 + domelementtype@2.3.0: {} 2792 + domhandler@5.0.3: 2793 + dependencies: 2794 + domelementtype: 2.3.0 2795 + dompurify@3.3.1: 2796 + optionalDependencies: 2797 + "@types/trusted-types": 2.0.7 2798 + domutils@3.2.2: 2799 + dependencies: 2800 + dom-serializer: 2.0.0 2801 + domelementtype: 2.3.0 2802 + domhandler: 5.0.3 2803 + dset@3.1.4: {} 2804 + emoji-regex@10.6.0: {} 2805 + emoji-regex@8.0.0: {} 2806 + entities@4.5.0: {} 2807 + entities@6.0.1: {} 2808 + es-module-lexer@1.7.0: {} 2809 + esast-util-from-estree@2.0.0: 2810 + dependencies: 2811 + "@types/estree-jsx": 1.0.5 2812 + devlop: 1.1.0 2813 + estree-util-visit: 2.0.0 2814 + unist-util-position-from-estree: 2.0.0 2815 + esast-util-from-js@2.0.1: 2816 + dependencies: 2817 + "@types/estree-jsx": 1.0.5 2818 + acorn: 8.16.0 2819 + esast-util-from-estree: 2.0.0 2820 + vfile-message: 4.0.3 2821 + esbuild@0.25.12: 2822 + optionalDependencies: 2823 + "@esbuild/aix-ppc64": 0.25.12 2824 + "@esbuild/android-arm": 0.25.12 2825 + "@esbuild/android-arm64": 0.25.12 2826 + "@esbuild/android-x64": 0.25.12 2827 + "@esbuild/darwin-arm64": 0.25.12 2828 + "@esbuild/darwin-x64": 0.25.12 2829 + "@esbuild/freebsd-arm64": 0.25.12 2830 + "@esbuild/freebsd-x64": 0.25.12 2831 + "@esbuild/linux-arm": 0.25.12 2832 + "@esbuild/linux-arm64": 0.25.12 2833 + "@esbuild/linux-ia32": 0.25.12 2834 + "@esbuild/linux-loong64": 0.25.12 2835 + "@esbuild/linux-mips64el": 0.25.12 2836 + "@esbuild/linux-ppc64": 0.25.12 2837 + "@esbuild/linux-riscv64": 0.25.12 2838 + "@esbuild/linux-s390x": 0.25.12 2839 + "@esbuild/linux-x64": 0.25.12 2840 + "@esbuild/netbsd-arm64": 0.25.12 2841 + "@esbuild/netbsd-x64": 0.25.12 2842 + "@esbuild/openbsd-arm64": 0.25.12 2843 + "@esbuild/openbsd-x64": 0.25.12 2844 + "@esbuild/openharmony-arm64": 0.25.12 2845 + "@esbuild/sunos-x64": 0.25.12 2846 + "@esbuild/win32-arm64": 0.25.12 2847 + "@esbuild/win32-ia32": 0.25.12 2848 + "@esbuild/win32-x64": 0.25.12 2849 + esbuild@0.27.3: 2850 + optionalDependencies: 2851 + "@esbuild/aix-ppc64": 0.27.3 2852 + "@esbuild/android-arm": 0.27.3 2853 + "@esbuild/android-arm64": 0.27.3 2854 + "@esbuild/android-x64": 0.27.3 2855 + "@esbuild/darwin-arm64": 0.27.3 2856 + "@esbuild/darwin-x64": 0.27.3 2857 + "@esbuild/freebsd-arm64": 0.27.3 2858 + "@esbuild/freebsd-x64": 0.27.3 2859 + "@esbuild/linux-arm": 0.27.3 2860 + "@esbuild/linux-arm64": 0.27.3 2861 + "@esbuild/linux-ia32": 0.27.3 2862 + "@esbuild/linux-loong64": 0.27.3 2863 + "@esbuild/linux-mips64el": 0.27.3 2864 + "@esbuild/linux-ppc64": 0.27.3 2865 + "@esbuild/linux-riscv64": 0.27.3 2866 + "@esbuild/linux-s390x": 0.27.3 2867 + "@esbuild/linux-x64": 0.27.3 2868 + "@esbuild/netbsd-arm64": 0.27.3 2869 + "@esbuild/netbsd-x64": 0.27.3 2870 + "@esbuild/openbsd-arm64": 0.27.3 2871 + "@esbuild/openbsd-x64": 0.27.3 2872 + "@esbuild/openharmony-arm64": 0.27.3 2873 + "@esbuild/sunos-x64": 0.27.3 2874 + "@esbuild/win32-arm64": 0.27.3 2875 + "@esbuild/win32-ia32": 0.27.3 2876 + "@esbuild/win32-x64": 0.27.3 2877 + escape-string-regexp@5.0.0: {} 2878 + estree-util-attach-comments@3.0.0: 2879 + dependencies: 2880 + "@types/estree": 1.0.8 2881 + estree-util-build-jsx@3.0.1: 2882 + dependencies: 2883 + "@types/estree-jsx": 1.0.5 2884 + devlop: 1.1.0 2885 + estree-util-is-identifier-name: 3.0.0 2886 + estree-walker: 3.0.3 2887 + estree-util-is-identifier-name@3.0.0: {} 2888 + estree-util-scope@1.0.0: 2889 + dependencies: 2890 + "@types/estree": 1.0.8 2891 + devlop: 1.1.0 2892 + estree-util-to-js@2.0.0: 2893 + dependencies: 2894 + "@types/estree-jsx": 1.0.5 2895 + astring: 1.9.0 2896 + source-map: 0.7.6 2897 + estree-util-visit@2.0.0: 2898 + dependencies: 2899 + "@types/estree-jsx": 1.0.5 2900 + "@types/unist": 3.0.3 2901 + estree-walker@2.0.2: {} 2902 + estree-walker@3.0.3: 2903 + dependencies: 2904 + "@types/estree": 1.0.8 2905 + eventemitter3@5.0.4: {} 2906 + expressive-code@0.41.6: 2907 + dependencies: 2908 + "@expressive-code/core": 0.41.6 2909 + "@expressive-code/plugin-frames": 0.41.6 2910 + "@expressive-code/plugin-shiki": 0.41.6 2911 + "@expressive-code/plugin-text-markers": 0.41.6 2912 + extend@3.0.2: {} 2913 + fdir@6.5.0(picomatch@4.0.3): 2914 + optionalDependencies: 2915 + picomatch: 4.0.3 2916 + flattie@1.1.1: {} 2917 + fontace@0.4.1: 2918 + dependencies: 2919 + fontkitten: 1.0.2 2920 + fontkitten@1.0.2: 2921 + dependencies: 2922 + tiny-inflate: 1.0.3 2923 + fsevents@2.3.3: 2924 + optional: true 2925 + get-east-asian-width@1.5.0: {} 2926 + github-slugger@2.0.0: {} 2927 + h3@1.15.5: 2928 + dependencies: 2929 + cookie-es: 1.2.2 2930 + crossws: 0.3.5 2931 + defu: 6.1.4 2932 + destr: 2.0.5 2933 + iron-webcrypto: 1.2.1 2934 + node-mock-http: 1.0.4 2935 + radix3: 1.1.2 2936 + ufo: 1.6.3 2937 + uncrypto: 0.1.3 2938 + hachure-fill@0.5.2: {} 2939 + hast-util-embedded@3.0.0: 2940 + dependencies: 2941 + "@types/hast": 3.0.4 2942 + hast-util-is-element: 3.0.0 2943 + hast-util-format@1.1.0: 2944 + dependencies: 2945 + "@types/hast": 3.0.4 2946 + hast-util-embedded: 3.0.0 2947 + hast-util-minify-whitespace: 1.0.1 2948 + hast-util-phrasing: 3.0.1 2949 + hast-util-whitespace: 3.0.0 2950 + html-whitespace-sensitive-tag-names: 3.0.1 2951 + unist-util-visit-parents: 6.0.2 2952 + hast-util-from-html@2.0.3: 2953 + dependencies: 2954 + "@types/hast": 3.0.4 2955 + devlop: 1.1.0 2956 + hast-util-from-parse5: 8.0.3 2957 + parse5: 7.3.0 2958 + vfile: 6.0.3 2959 + vfile-message: 4.0.3 2960 + hast-util-from-parse5@8.0.3: 2961 + dependencies: 2962 + "@types/hast": 3.0.4 2963 + "@types/unist": 3.0.3 2964 + devlop: 1.1.0 2965 + hastscript: 9.0.1 2966 + property-information: 7.1.0 2967 + vfile: 6.0.3 2968 + vfile-location: 5.0.3 2969 + web-namespaces: 2.0.1 2970 + hast-util-has-property@3.0.0: 2971 + dependencies: 2972 + "@types/hast": 3.0.4 2973 + hast-util-is-body-ok-link@3.0.1: 2974 + dependencies: 2975 + "@types/hast": 3.0.4 2976 + hast-util-is-element@3.0.0: 2977 + dependencies: 2978 + "@types/hast": 3.0.4 2979 + hast-util-minify-whitespace@1.0.1: 2980 + dependencies: 2981 + "@types/hast": 3.0.4 2982 + hast-util-embedded: 3.0.0 2983 + hast-util-is-element: 3.0.0 2984 + hast-util-whitespace: 3.0.0 2985 + unist-util-is: 6.0.1 2986 + hast-util-parse-selector@4.0.0: 2987 + dependencies: 2988 + "@types/hast": 3.0.4 2989 + hast-util-phrasing@3.0.1: 2990 + dependencies: 2991 + "@types/hast": 3.0.4 2992 + hast-util-embedded: 3.0.0 2993 + hast-util-has-property: 3.0.0 2994 + hast-util-is-body-ok-link: 3.0.1 2995 + hast-util-is-element: 3.0.0 2996 + hast-util-raw@9.1.0: 2997 + dependencies: 2998 + "@types/hast": 3.0.4 2999 + "@types/unist": 3.0.3 3000 + "@ungap/structured-clone": 1.3.0 3001 + hast-util-from-parse5: 8.0.3 3002 + hast-util-to-parse5: 8.0.1 3003 + html-void-elements: 3.0.0 3004 + mdast-util-to-hast: 13.2.1 3005 + parse5: 7.3.0 3006 + unist-util-position: 5.0.0 3007 + unist-util-visit: 5.1.0 3008 + vfile: 6.0.3 3009 + web-namespaces: 2.0.1 3010 + zwitch: 2.0.4 3011 + hast-util-select@6.0.4: 3012 + dependencies: 3013 + "@types/hast": 3.0.4 3014 + "@types/unist": 3.0.3 3015 + bcp-47-match: 2.0.3 3016 + comma-separated-tokens: 2.0.3 3017 + css-selector-parser: 3.3.0 3018 + devlop: 1.1.0 3019 + direction: 2.0.1 3020 + hast-util-has-property: 3.0.0 3021 + hast-util-to-string: 3.0.1 3022 + hast-util-whitespace: 3.0.0 3023 + nth-check: 2.1.1 3024 + property-information: 7.1.0 3025 + space-separated-tokens: 2.0.2 3026 + unist-util-visit: 5.1.0 3027 + zwitch: 2.0.4 3028 + hast-util-to-estree@3.1.3: 3029 + dependencies: 3030 + "@types/estree": 1.0.8 3031 + "@types/estree-jsx": 1.0.5 3032 + "@types/hast": 3.0.4 3033 + comma-separated-tokens: 2.0.3 3034 + devlop: 1.1.0 3035 + estree-util-attach-comments: 3.0.0 3036 + estree-util-is-identifier-name: 3.0.0 3037 + hast-util-whitespace: 3.0.0 3038 + mdast-util-mdx-expression: 2.0.1 3039 + mdast-util-mdx-jsx: 3.2.0 3040 + mdast-util-mdxjs-esm: 2.0.1 3041 + property-information: 7.1.0 3042 + space-separated-tokens: 2.0.2 3043 + style-to-js: 1.1.21 3044 + unist-util-position: 5.0.0 3045 + zwitch: 2.0.4 3046 + transitivePeerDependencies: 3047 + - supports-color 3048 + hast-util-to-html@9.0.5: 3049 + dependencies: 3050 + "@types/hast": 3.0.4 3051 + "@types/unist": 3.0.3 3052 + ccount: 2.0.1 3053 + comma-separated-tokens: 2.0.3 3054 + hast-util-whitespace: 3.0.0 3055 + html-void-elements: 3.0.0 3056 + mdast-util-to-hast: 13.2.1 3057 + property-information: 7.1.0 3058 + space-separated-tokens: 2.0.2 3059 + stringify-entities: 4.0.4 3060 + zwitch: 2.0.4 3061 + hast-util-to-jsx-runtime@2.3.6: 3062 + dependencies: 3063 + "@types/estree": 1.0.8 3064 + "@types/hast": 3.0.4 3065 + "@types/unist": 3.0.3 3066 + comma-separated-tokens: 2.0.3 3067 + devlop: 1.1.0 3068 + estree-util-is-identifier-name: 3.0.0 3069 + hast-util-whitespace: 3.0.0 3070 + mdast-util-mdx-expression: 2.0.1 3071 + mdast-util-mdx-jsx: 3.2.0 3072 + mdast-util-mdxjs-esm: 2.0.1 3073 + property-information: 7.1.0 3074 + space-separated-tokens: 2.0.2 3075 + style-to-js: 1.1.21 3076 + unist-util-position: 5.0.0 3077 + vfile-message: 4.0.3 3078 + transitivePeerDependencies: 3079 + - supports-color 3080 + hast-util-to-parse5@8.0.1: 3081 + dependencies: 3082 + "@types/hast": 3.0.4 3083 + comma-separated-tokens: 2.0.3 3084 + devlop: 1.1.0 3085 + property-information: 7.1.0 3086 + space-separated-tokens: 2.0.2 3087 + web-namespaces: 2.0.1 3088 + zwitch: 2.0.4 3089 + hast-util-to-string@3.0.1: 3090 + dependencies: 3091 + "@types/hast": 3.0.4 3092 + hast-util-to-text@4.0.2: 3093 + dependencies: 3094 + "@types/hast": 3.0.4 3095 + "@types/unist": 3.0.3 3096 + hast-util-is-element: 3.0.0 3097 + unist-util-find-after: 5.0.0 3098 + hast-util-whitespace@3.0.0: 3099 + dependencies: 3100 + "@types/hast": 3.0.4 3101 + hastscript@9.0.1: 3102 + dependencies: 3103 + "@types/hast": 3.0.4 3104 + comma-separated-tokens: 2.0.3 3105 + hast-util-parse-selector: 4.0.0 3106 + property-information: 7.1.0 3107 + space-separated-tokens: 2.0.2 3108 + html-escaper@3.0.3: {} 3109 + html-void-elements@3.0.0: {} 3110 + html-whitespace-sensitive-tag-names@3.0.1: {} 3111 + http-cache-semantics@4.2.0: {} 3112 + i18next@23.16.8: 3113 + dependencies: 3114 + "@babel/runtime": 7.28.6 3115 + iconv-lite@0.6.3: 3116 + dependencies: 3117 + safer-buffer: 2.1.2 3118 + import-meta-resolve@4.2.0: {} 3119 + inline-style-parser@0.2.7: {} 3120 + internmap@1.0.1: {} 3121 + internmap@2.0.3: {} 3122 + iron-webcrypto@1.2.1: {} 3123 + is-alphabetical@2.0.1: {} 3124 + is-alphanumerical@2.0.1: 3125 + dependencies: 3126 + is-alphabetical: 2.0.1 3127 + is-decimal: 2.0.1 3128 + is-decimal@2.0.1: {} 3129 + is-docker@3.0.0: {} 3130 + is-fullwidth-code-point@3.0.0: {} 3131 + is-hexadecimal@2.0.1: {} 3132 + is-inside-container@1.0.0: 3133 + dependencies: 3134 + is-docker: 3.0.0 3135 + is-plain-obj@4.1.0: {} 3136 + is-wsl@3.1.1: 3137 + dependencies: 3138 + is-inside-container: 1.0.0 3139 + js-yaml@4.1.1: 3140 + dependencies: 3141 + argparse: 2.0.1 3142 + katex@0.16.28: 3143 + dependencies: 3144 + commander: 8.3.0 3145 + khroma@2.1.0: {} 3146 + kleur@3.0.3: {} 3147 + klona@2.0.6: {} 3148 + langium@4.2.1: 3149 + dependencies: 3150 + chevrotain: 11.1.1 3151 + chevrotain-allstar: 0.3.1(chevrotain@11.1.1) 3152 + vscode-languageserver: 9.0.1 3153 + vscode-languageserver-textdocument: 1.0.12 3154 + vscode-uri: 3.1.0 3155 + layout-base@1.0.2: {} 3156 + layout-base@2.0.1: {} 3157 + lodash-es@4.17.23: {} 3158 + longest-streak@3.1.0: {} 3159 + lru-cache@11.2.6: {} 3160 + magic-string@0.30.21: 3161 + dependencies: 3162 + "@jridgewell/sourcemap-codec": 1.5.5 3163 + magicast@0.5.2: 3164 + dependencies: 3165 + "@babel/parser": 7.29.0 3166 + "@babel/types": 7.29.0 3167 + source-map-js: 1.2.1 3168 + markdown-extensions@2.0.0: {} 3169 + markdown-table@3.0.4: {} 3170 + marked@16.4.2: {} 3171 + mdast-util-definitions@6.0.0: 3172 + dependencies: 3173 + "@types/mdast": 4.0.4 3174 + "@types/unist": 3.0.3 3175 + unist-util-visit: 5.1.0 3176 + mdast-util-directive@3.1.0: 3177 + dependencies: 3178 + "@types/mdast": 4.0.4 3179 + "@types/unist": 3.0.3 3180 + ccount: 2.0.1 3181 + devlop: 1.1.0 3182 + mdast-util-from-markdown: 2.0.2 3183 + mdast-util-to-markdown: 2.1.2 3184 + parse-entities: 4.0.2 3185 + stringify-entities: 4.0.4 3186 + unist-util-visit-parents: 6.0.2 3187 + transitivePeerDependencies: 3188 + - supports-color 3189 + mdast-util-find-and-replace@3.0.2: 3190 + dependencies: 3191 + "@types/mdast": 4.0.4 3192 + escape-string-regexp: 5.0.0 3193 + unist-util-is: 6.0.1 3194 + unist-util-visit-parents: 6.0.2 3195 + mdast-util-from-markdown@2.0.2: 3196 + dependencies: 3197 + "@types/mdast": 4.0.4 3198 + "@types/unist": 3.0.3 3199 + decode-named-character-reference: 1.3.0 3200 + devlop: 1.1.0 3201 + mdast-util-to-string: 4.0.0 3202 + micromark: 4.0.2 3203 + micromark-util-decode-numeric-character-reference: 2.0.2 3204 + micromark-util-decode-string: 2.0.1 3205 + micromark-util-normalize-identifier: 2.0.1 3206 + micromark-util-symbol: 2.0.1 3207 + micromark-util-types: 2.0.2 3208 + unist-util-stringify-position: 4.0.0 3209 + transitivePeerDependencies: 3210 + - supports-color 3211 + mdast-util-gfm-autolink-literal@2.0.1: 3212 + dependencies: 3213 + "@types/mdast": 4.0.4 3214 + ccount: 2.0.1 3215 + devlop: 1.1.0 3216 + mdast-util-find-and-replace: 3.0.2 3217 + micromark-util-character: 2.1.1 3218 + mdast-util-gfm-footnote@2.1.0: 3219 + dependencies: 3220 + "@types/mdast": 4.0.4 3221 + devlop: 1.1.0 3222 + mdast-util-from-markdown: 2.0.2 3223 + mdast-util-to-markdown: 2.1.2 3224 + micromark-util-normalize-identifier: 2.0.1 3225 + transitivePeerDependencies: 3226 + - supports-color 3227 + mdast-util-gfm-strikethrough@2.0.0: 3228 + dependencies: 3229 + "@types/mdast": 4.0.4 3230 + mdast-util-from-markdown: 2.0.2 3231 + mdast-util-to-markdown: 2.1.2 3232 + transitivePeerDependencies: 3233 + - supports-color 3234 + mdast-util-gfm-table@2.0.0: 3235 + dependencies: 3236 + "@types/mdast": 4.0.4 3237 + devlop: 1.1.0 3238 + markdown-table: 3.0.4 3239 + mdast-util-from-markdown: 2.0.2 3240 + mdast-util-to-markdown: 2.1.2 3241 + transitivePeerDependencies: 3242 + - supports-color 3243 + mdast-util-gfm-task-list-item@2.0.0: 3244 + dependencies: 3245 + "@types/mdast": 4.0.4 3246 + devlop: 1.1.0 3247 + mdast-util-from-markdown: 2.0.2 3248 + mdast-util-to-markdown: 2.1.2 3249 + transitivePeerDependencies: 3250 + - supports-color 3251 + mdast-util-gfm@3.1.0: 3252 + dependencies: 3253 + mdast-util-from-markdown: 2.0.2 3254 + mdast-util-gfm-autolink-literal: 2.0.1 3255 + mdast-util-gfm-footnote: 2.1.0 3256 + mdast-util-gfm-strikethrough: 2.0.0 3257 + mdast-util-gfm-table: 2.0.0 3258 + mdast-util-gfm-task-list-item: 2.0.0 3259 + mdast-util-to-markdown: 2.1.2 3260 + transitivePeerDependencies: 3261 + - supports-color 3262 + mdast-util-mdx-expression@2.0.1: 3263 + dependencies: 3264 + "@types/estree-jsx": 1.0.5 3265 + "@types/hast": 3.0.4 3266 + "@types/mdast": 4.0.4 3267 + devlop: 1.1.0 3268 + mdast-util-from-markdown: 2.0.2 3269 + mdast-util-to-markdown: 2.1.2 3270 + transitivePeerDependencies: 3271 + - supports-color 3272 + mdast-util-mdx-jsx@3.2.0: 3273 + dependencies: 3274 + "@types/estree-jsx": 1.0.5 3275 + "@types/hast": 3.0.4 3276 + "@types/mdast": 4.0.4 3277 + "@types/unist": 3.0.3 3278 + ccount: 2.0.1 3279 + devlop: 1.1.0 3280 + mdast-util-from-markdown: 2.0.2 3281 + mdast-util-to-markdown: 2.1.2 3282 + parse-entities: 4.0.2 3283 + stringify-entities: 4.0.4 3284 + unist-util-stringify-position: 4.0.0 3285 + vfile-message: 4.0.3 3286 + transitivePeerDependencies: 3287 + - supports-color 3288 + mdast-util-mdx@3.0.0: 3289 + dependencies: 3290 + mdast-util-from-markdown: 2.0.2 3291 + mdast-util-mdx-expression: 2.0.1 3292 + mdast-util-mdx-jsx: 3.2.0 3293 + mdast-util-mdxjs-esm: 2.0.1 3294 + mdast-util-to-markdown: 2.1.2 3295 + transitivePeerDependencies: 3296 + - supports-color 3297 + mdast-util-mdxjs-esm@2.0.1: 3298 + dependencies: 3299 + "@types/estree-jsx": 1.0.5 3300 + "@types/hast": 3.0.4 3301 + "@types/mdast": 4.0.4 3302 + devlop: 1.1.0 3303 + mdast-util-from-markdown: 2.0.2 3304 + mdast-util-to-markdown: 2.1.2 3305 + transitivePeerDependencies: 3306 + - supports-color 3307 + mdast-util-phrasing@4.1.0: 3308 + dependencies: 3309 + "@types/mdast": 4.0.4 3310 + unist-util-is: 6.0.1 3311 + mdast-util-to-hast@13.2.1: 3312 + dependencies: 3313 + "@types/hast": 3.0.4 3314 + "@types/mdast": 4.0.4 3315 + "@ungap/structured-clone": 1.3.0 3316 + devlop: 1.1.0 3317 + micromark-util-sanitize-uri: 2.0.1 3318 + trim-lines: 3.0.1 3319 + unist-util-position: 5.0.0 3320 + unist-util-visit: 5.1.0 3321 + vfile: 6.0.3 3322 + mdast-util-to-markdown@2.1.2: 3323 + dependencies: 3324 + "@types/mdast": 4.0.4 3325 + "@types/unist": 3.0.3 3326 + longest-streak: 3.1.0 3327 + mdast-util-phrasing: 4.1.0 3328 + mdast-util-to-string: 4.0.0 3329 + micromark-util-classify-character: 2.0.1 3330 + micromark-util-decode-string: 2.0.1 3331 + unist-util-visit: 5.1.0 3332 + zwitch: 2.0.4 3333 + mdast-util-to-string@4.0.0: 3334 + dependencies: 3335 + "@types/mdast": 4.0.4 3336 + mdn-data@2.0.28: {} 3337 + mdn-data@2.12.2: {} 3338 + mermaid@11.12.3: 3339 + dependencies: 3340 + "@braintree/sanitize-url": 7.1.2 3341 + "@iconify/utils": 3.1.0 3342 + "@mermaid-js/parser": 1.0.0 3343 + "@types/d3": 7.4.3 3344 + cytoscape: 3.33.1 3345 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) 3346 + cytoscape-fcose: 2.2.0(cytoscape@3.33.1) 3347 + d3: 7.9.0 3348 + d3-sankey: 0.12.3 3349 + dagre-d3-es: 7.0.13 3350 + dayjs: 1.11.19 3351 + dompurify: 3.3.1 3352 + katex: 0.16.28 3353 + khroma: 2.1.0 3354 + lodash-es: 4.17.23 3355 + marked: 16.4.2 3356 + roughjs: 4.6.6 3357 + stylis: 4.3.6 3358 + ts-dedent: 2.2.0 3359 + uuid: 11.1.0 3360 + micromark-core-commonmark@2.0.3: 3361 + dependencies: 3362 + decode-named-character-reference: 1.3.0 3363 + devlop: 1.1.0 3364 + micromark-factory-destination: 2.0.1 3365 + micromark-factory-label: 2.0.1 3366 + micromark-factory-space: 2.0.1 3367 + micromark-factory-title: 2.0.1 3368 + micromark-factory-whitespace: 2.0.1 3369 + micromark-util-character: 2.1.1 3370 + micromark-util-chunked: 2.0.1 3371 + micromark-util-classify-character: 2.0.1 3372 + micromark-util-html-tag-name: 2.0.1 3373 + micromark-util-normalize-identifier: 2.0.1 3374 + micromark-util-resolve-all: 2.0.1 3375 + micromark-util-subtokenize: 2.1.0 3376 + micromark-util-symbol: 2.0.1 3377 + micromark-util-types: 2.0.2 3378 + micromark-extension-directive@3.0.2: 3379 + dependencies: 3380 + devlop: 1.1.0 3381 + micromark-factory-space: 2.0.1 3382 + micromark-factory-whitespace: 2.0.1 3383 + micromark-util-character: 2.1.1 3384 + micromark-util-symbol: 2.0.1 3385 + micromark-util-types: 2.0.2 3386 + parse-entities: 4.0.2 3387 + micromark-extension-gfm-autolink-literal@2.1.0: 3388 + dependencies: 3389 + micromark-util-character: 2.1.1 3390 + micromark-util-sanitize-uri: 2.0.1 3391 + micromark-util-symbol: 2.0.1 3392 + micromark-util-types: 2.0.2 3393 + micromark-extension-gfm-footnote@2.1.0: 3394 + dependencies: 3395 + devlop: 1.1.0 3396 + micromark-core-commonmark: 2.0.3 3397 + micromark-factory-space: 2.0.1 3398 + micromark-util-character: 2.1.1 3399 + micromark-util-normalize-identifier: 2.0.1 3400 + micromark-util-sanitize-uri: 2.0.1 3401 + micromark-util-symbol: 2.0.1 3402 + micromark-util-types: 2.0.2 3403 + micromark-extension-gfm-strikethrough@2.1.0: 3404 + dependencies: 3405 + devlop: 1.1.0 3406 + micromark-util-chunked: 2.0.1 3407 + micromark-util-classify-character: 2.0.1 3408 + micromark-util-resolve-all: 2.0.1 3409 + micromark-util-symbol: 2.0.1 3410 + micromark-util-types: 2.0.2 3411 + micromark-extension-gfm-table@2.1.1: 3412 + dependencies: 3413 + devlop: 1.1.0 3414 + micromark-factory-space: 2.0.1 3415 + micromark-util-character: 2.1.1 3416 + micromark-util-symbol: 2.0.1 3417 + micromark-util-types: 2.0.2 3418 + micromark-extension-gfm-tagfilter@2.0.0: 3419 + dependencies: 3420 + micromark-util-types: 2.0.2 3421 + micromark-extension-gfm-task-list-item@2.1.0: 3422 + dependencies: 3423 + devlop: 1.1.0 3424 + micromark-factory-space: 2.0.1 3425 + micromark-util-character: 2.1.1 3426 + micromark-util-symbol: 2.0.1 3427 + micromark-util-types: 2.0.2 3428 + micromark-extension-gfm@3.0.0: 3429 + dependencies: 3430 + micromark-extension-gfm-autolink-literal: 2.1.0 3431 + micromark-extension-gfm-footnote: 2.1.0 3432 + micromark-extension-gfm-strikethrough: 2.1.0 3433 + micromark-extension-gfm-table: 2.1.1 3434 + micromark-extension-gfm-tagfilter: 2.0.0 3435 + micromark-extension-gfm-task-list-item: 2.1.0 3436 + micromark-util-combine-extensions: 2.0.1 3437 + micromark-util-types: 2.0.2 3438 + micromark-extension-mdx-expression@3.0.1: 3439 + dependencies: 3440 + "@types/estree": 1.0.8 3441 + devlop: 1.1.0 3442 + micromark-factory-mdx-expression: 2.0.3 3443 + micromark-factory-space: 2.0.1 3444 + micromark-util-character: 2.1.1 3445 + micromark-util-events-to-acorn: 2.0.3 3446 + micromark-util-symbol: 2.0.1 3447 + micromark-util-types: 2.0.2 3448 + micromark-extension-mdx-jsx@3.0.2: 3449 + dependencies: 3450 + "@types/estree": 1.0.8 3451 + devlop: 1.1.0 3452 + estree-util-is-identifier-name: 3.0.0 3453 + micromark-factory-mdx-expression: 2.0.3 3454 + micromark-factory-space: 2.0.1 3455 + micromark-util-character: 2.1.1 3456 + micromark-util-events-to-acorn: 2.0.3 3457 + micromark-util-symbol: 2.0.1 3458 + micromark-util-types: 2.0.2 3459 + vfile-message: 4.0.3 3460 + micromark-extension-mdx-md@2.0.0: 3461 + dependencies: 3462 + micromark-util-types: 2.0.2 3463 + micromark-extension-mdxjs-esm@3.0.0: 3464 + dependencies: 3465 + "@types/estree": 1.0.8 3466 + devlop: 1.1.0 3467 + micromark-core-commonmark: 2.0.3 3468 + micromark-util-character: 2.1.1 3469 + micromark-util-events-to-acorn: 2.0.3 3470 + micromark-util-symbol: 2.0.1 3471 + micromark-util-types: 2.0.2 3472 + unist-util-position-from-estree: 2.0.0 3473 + vfile-message: 4.0.3 3474 + micromark-extension-mdxjs@3.0.0: 3475 + dependencies: 3476 + acorn: 8.16.0 3477 + acorn-jsx: 5.3.2(acorn@8.16.0) 3478 + micromark-extension-mdx-expression: 3.0.1 3479 + micromark-extension-mdx-jsx: 3.0.2 3480 + micromark-extension-mdx-md: 2.0.0 3481 + micromark-extension-mdxjs-esm: 3.0.0 3482 + micromark-util-combine-extensions: 2.0.1 3483 + micromark-util-types: 2.0.2 3484 + micromark-factory-destination@2.0.1: 3485 + dependencies: 3486 + micromark-util-character: 2.1.1 3487 + micromark-util-symbol: 2.0.1 3488 + micromark-util-types: 2.0.2 3489 + micromark-factory-label@2.0.1: 3490 + dependencies: 3491 + devlop: 1.1.0 3492 + micromark-util-character: 2.1.1 3493 + micromark-util-symbol: 2.0.1 3494 + micromark-util-types: 2.0.2 3495 + micromark-factory-mdx-expression@2.0.3: 3496 + dependencies: 3497 + "@types/estree": 1.0.8 3498 + devlop: 1.1.0 3499 + micromark-factory-space: 2.0.1 3500 + micromark-util-character: 2.1.1 3501 + micromark-util-events-to-acorn: 2.0.3 3502 + micromark-util-symbol: 2.0.1 3503 + micromark-util-types: 2.0.2 3504 + unist-util-position-from-estree: 2.0.0 3505 + vfile-message: 4.0.3 3506 + micromark-factory-space@2.0.1: 3507 + dependencies: 3508 + micromark-util-character: 2.1.1 3509 + micromark-util-types: 2.0.2 3510 + micromark-factory-title@2.0.1: 3511 + dependencies: 3512 + micromark-factory-space: 2.0.1 3513 + micromark-util-character: 2.1.1 3514 + micromark-util-symbol: 2.0.1 3515 + micromark-util-types: 2.0.2 3516 + micromark-factory-whitespace@2.0.1: 3517 + dependencies: 3518 + micromark-factory-space: 2.0.1 3519 + micromark-util-character: 2.1.1 3520 + micromark-util-symbol: 2.0.1 3521 + micromark-util-types: 2.0.2 3522 + micromark-util-character@2.1.1: 3523 + dependencies: 3524 + micromark-util-symbol: 2.0.1 3525 + micromark-util-types: 2.0.2 3526 + micromark-util-chunked@2.0.1: 3527 + dependencies: 3528 + micromark-util-symbol: 2.0.1 3529 + micromark-util-classify-character@2.0.1: 3530 + dependencies: 3531 + micromark-util-character: 2.1.1 3532 + micromark-util-symbol: 2.0.1 3533 + micromark-util-types: 2.0.2 3534 + micromark-util-combine-extensions@2.0.1: 3535 + dependencies: 3536 + micromark-util-chunked: 2.0.1 3537 + micromark-util-types: 2.0.2 3538 + micromark-util-decode-numeric-character-reference@2.0.2: 3539 + dependencies: 3540 + micromark-util-symbol: 2.0.1 3541 + micromark-util-decode-string@2.0.1: 3542 + dependencies: 3543 + decode-named-character-reference: 1.3.0 3544 + micromark-util-character: 2.1.1 3545 + micromark-util-decode-numeric-character-reference: 2.0.2 3546 + micromark-util-symbol: 2.0.1 3547 + micromark-util-encode@2.0.1: {} 3548 + micromark-util-events-to-acorn@2.0.3: 3549 + dependencies: 3550 + "@types/estree": 1.0.8 3551 + "@types/unist": 3.0.3 3552 + devlop: 1.1.0 3553 + estree-util-visit: 2.0.0 3554 + micromark-util-symbol: 2.0.1 3555 + micromark-util-types: 2.0.2 3556 + vfile-message: 4.0.3 3557 + micromark-util-html-tag-name@2.0.1: {} 3558 + micromark-util-normalize-identifier@2.0.1: 3559 + dependencies: 3560 + micromark-util-symbol: 2.0.1 3561 + micromark-util-resolve-all@2.0.1: 3562 + dependencies: 3563 + micromark-util-types: 2.0.2 3564 + micromark-util-sanitize-uri@2.0.1: 3565 + dependencies: 3566 + micromark-util-character: 2.1.1 3567 + micromark-util-encode: 2.0.1 3568 + micromark-util-symbol: 2.0.1 3569 + micromark-util-subtokenize@2.1.0: 3570 + dependencies: 3571 + devlop: 1.1.0 3572 + micromark-util-chunked: 2.0.1 3573 + micromark-util-symbol: 2.0.1 3574 + micromark-util-types: 2.0.2 3575 + micromark-util-symbol@2.0.1: {} 3576 + micromark-util-types@2.0.2: {} 3577 + micromark@4.0.2: 3578 + dependencies: 3579 + "@types/debug": 4.1.12 3580 + debug: 4.4.3 3581 + decode-named-character-reference: 1.3.0 3582 + devlop: 1.1.0 3583 + micromark-core-commonmark: 2.0.3 3584 + micromark-factory-space: 2.0.1 3585 + micromark-util-character: 2.1.1 3586 + micromark-util-chunked: 2.0.1 3587 + micromark-util-combine-extensions: 2.0.1 3588 + micromark-util-decode-numeric-character-reference: 2.0.2 3589 + micromark-util-encode: 2.0.1 3590 + micromark-util-normalize-identifier: 2.0.1 3591 + micromark-util-resolve-all: 2.0.1 3592 + micromark-util-sanitize-uri: 2.0.1 3593 + micromark-util-subtokenize: 2.1.0 3594 + micromark-util-symbol: 2.0.1 3595 + micromark-util-types: 2.0.2 3596 + transitivePeerDependencies: 3597 + - supports-color 3598 + mlly@1.8.0: 3599 + dependencies: 3600 + acorn: 8.16.0 3601 + pathe: 2.0.3 3602 + pkg-types: 1.3.1 3603 + ufo: 1.6.3 3604 + mrmime@2.0.1: {} 3605 + ms@2.1.3: {} 3606 + nanoid@3.3.11: {} 3607 + neotraverse@0.6.18: {} 3608 + nlcst-to-string@4.0.0: 3609 + dependencies: 3610 + "@types/nlcst": 2.0.3 3611 + node-fetch-native@1.6.7: {} 3612 + node-mock-http@1.0.4: {} 3613 + normalize-path@3.0.0: {} 3614 + nth-check@2.1.1: 3615 + dependencies: 3616 + boolbase: 1.0.0 3617 + ofetch@1.5.1: 3618 + dependencies: 3619 + destr: 2.0.5 3620 + node-fetch-native: 1.6.7 3621 + ufo: 1.6.3 3622 + ohash@2.0.11: {} 3623 + oniguruma-parser@0.12.1: {} 3624 + oniguruma-to-es@4.3.4: 3625 + dependencies: 3626 + oniguruma-parser: 0.12.1 3627 + regex: 6.1.0 3628 + regex-recursion: 6.0.2 3629 + p-limit@6.2.0: 3630 + dependencies: 3631 + yocto-queue: 1.2.2 3632 + p-queue@8.1.1: 3633 + dependencies: 3634 + eventemitter3: 5.0.4 3635 + p-timeout: 6.1.4 3636 + p-timeout@6.1.4: {} 3637 + package-manager-detector@1.6.0: {} 3638 + pagefind@1.4.0: 3639 + optionalDependencies: 3640 + "@pagefind/darwin-arm64": 1.4.0 3641 + "@pagefind/darwin-x64": 1.4.0 3642 + "@pagefind/freebsd-x64": 1.4.0 3643 + "@pagefind/linux-arm64": 1.4.0 3644 + "@pagefind/linux-x64": 1.4.0 3645 + "@pagefind/windows-x64": 1.4.0 3646 + parse-entities@4.0.2: 3647 + dependencies: 3648 + "@types/unist": 2.0.11 3649 + character-entities-legacy: 3.0.0 3650 + character-reference-invalid: 2.0.1 3651 + decode-named-character-reference: 1.3.0 3652 + is-alphanumerical: 2.0.1 3653 + is-decimal: 2.0.1 3654 + is-hexadecimal: 2.0.1 3655 + parse-latin@7.0.0: 3656 + dependencies: 3657 + "@types/nlcst": 2.0.3 3658 + "@types/unist": 3.0.3 3659 + nlcst-to-string: 4.0.0 3660 + unist-util-modify-children: 4.0.0 3661 + unist-util-visit-children: 3.0.0 3662 + vfile: 6.0.3 3663 + parse5@7.3.0: 3664 + dependencies: 3665 + entities: 6.0.1 3666 + path-data-parser@0.1.0: {} 3667 + pathe@2.0.3: {} 3668 + piccolore@0.1.3: {} 3669 + picocolors@1.1.1: {} 3670 + picomatch@2.3.1: {} 3671 + picomatch@4.0.3: {} 3672 + pkg-types@1.3.1: 3673 + dependencies: 3674 + confbox: 0.1.8 3675 + mlly: 1.8.0 3676 + pathe: 2.0.3 3677 + points-on-curve@0.2.0: {} 3678 + points-on-path@0.2.1: 3679 + dependencies: 3680 + path-data-parser: 0.1.0 3681 + points-on-curve: 0.2.0 3682 + postcss-nested@6.2.0(postcss@8.5.6): 3683 + dependencies: 3684 + postcss: 8.5.6 3685 + postcss-selector-parser: 6.1.2 3686 + postcss-selector-parser@6.1.2: 3687 + dependencies: 3688 + cssesc: 3.0.0 3689 + util-deprecate: 1.0.2 3690 + postcss@8.5.6: 3691 + dependencies: 3692 + nanoid: 3.3.11 3693 + picocolors: 1.1.1 3694 + source-map-js: 1.2.1 3695 + prismjs@1.30.0: {} 3696 + prompts@2.4.2: 3697 + dependencies: 3698 + kleur: 3.0.3 3699 + sisteransi: 1.0.5 3700 + property-information@7.1.0: {} 3701 + radix3@1.1.2: {} 3702 + readdirp@5.0.0: {} 3703 + recma-build-jsx@1.0.0: 3704 + dependencies: 3705 + "@types/estree": 1.0.8 3706 + estree-util-build-jsx: 3.0.1 3707 + vfile: 6.0.3 3708 + recma-jsx@1.0.1(acorn@8.16.0): 3709 + dependencies: 3710 + acorn: 8.16.0 3711 + acorn-jsx: 5.3.2(acorn@8.16.0) 3712 + estree-util-to-js: 2.0.0 3713 + recma-parse: 1.0.0 3714 + recma-stringify: 1.0.0 3715 + unified: 11.0.5 3716 + recma-parse@1.0.0: 3717 + dependencies: 3718 + "@types/estree": 1.0.8 3719 + esast-util-from-js: 2.0.1 3720 + unified: 11.0.5 3721 + vfile: 6.0.3 3722 + recma-stringify@1.0.0: 3723 + dependencies: 3724 + "@types/estree": 1.0.8 3725 + estree-util-to-js: 2.0.0 3726 + unified: 11.0.5 3727 + vfile: 6.0.3 3728 + regex-recursion@6.0.2: 3729 + dependencies: 3730 + regex-utilities: 2.3.0 3731 + regex-utilities@2.3.0: {} 3732 + regex@6.1.0: 3733 + dependencies: 3734 + regex-utilities: 2.3.0 3735 + rehype-expressive-code@0.41.6: 3736 + dependencies: 3737 + expressive-code: 0.41.6 3738 + rehype-format@5.0.1: 3739 + dependencies: 3740 + "@types/hast": 3.0.4 3741 + hast-util-format: 1.1.0 3742 + rehype-parse@9.0.1: 3743 + dependencies: 3744 + "@types/hast": 3.0.4 3745 + hast-util-from-html: 2.0.3 3746 + unified: 11.0.5 3747 + rehype-raw@7.0.0: 3748 + dependencies: 3749 + "@types/hast": 3.0.4 3750 + hast-util-raw: 9.1.0 3751 + vfile: 6.0.3 3752 + rehype-recma@1.0.0: 3753 + dependencies: 3754 + "@types/estree": 1.0.8 3755 + "@types/hast": 3.0.4 3756 + hast-util-to-estree: 3.1.3 3757 + transitivePeerDependencies: 3758 + - supports-color 3759 + rehype-stringify@10.0.1: 3760 + dependencies: 3761 + "@types/hast": 3.0.4 3762 + hast-util-to-html: 9.0.5 3763 + unified: 11.0.5 3764 + rehype@13.0.2: 3765 + dependencies: 3766 + "@types/hast": 3.0.4 3767 + rehype-parse: 9.0.1 3768 + rehype-stringify: 10.0.1 3769 + unified: 11.0.5 3770 + remark-directive@3.0.1: 3771 + dependencies: 3772 + "@types/mdast": 4.0.4 3773 + mdast-util-directive: 3.1.0 3774 + micromark-extension-directive: 3.0.2 3775 + unified: 11.0.5 3776 + transitivePeerDependencies: 3777 + - supports-color 3778 + remark-gfm@4.0.1: 3779 + dependencies: 3780 + "@types/mdast": 4.0.4 3781 + mdast-util-gfm: 3.1.0 3782 + micromark-extension-gfm: 3.0.0 3783 + remark-parse: 11.0.0 3784 + remark-stringify: 11.0.0 3785 + unified: 11.0.5 3786 + transitivePeerDependencies: 3787 + - supports-color 3788 + remark-mdx@3.1.1: 3789 + dependencies: 3790 + mdast-util-mdx: 3.0.0 3791 + micromark-extension-mdxjs: 3.0.0 3792 + transitivePeerDependencies: 3793 + - supports-color 3794 + remark-parse@11.0.0: 3795 + dependencies: 3796 + "@types/mdast": 4.0.4 3797 + mdast-util-from-markdown: 2.0.2 3798 + micromark-util-types: 2.0.2 3799 + unified: 11.0.5 3800 + transitivePeerDependencies: 3801 + - supports-color 3802 + remark-rehype@11.1.2: 3803 + dependencies: 3804 + "@types/hast": 3.0.4 3805 + "@types/mdast": 4.0.4 3806 + mdast-util-to-hast: 13.2.1 3807 + unified: 11.0.5 3808 + vfile: 6.0.3 3809 + remark-smartypants@3.0.2: 3810 + dependencies: 3811 + retext: 9.0.0 3812 + retext-smartypants: 6.2.0 3813 + unified: 11.0.5 3814 + unist-util-visit: 5.1.0 3815 + remark-stringify@11.0.0: 3816 + dependencies: 3817 + "@types/mdast": 4.0.4 3818 + mdast-util-to-markdown: 2.1.2 3819 + unified: 11.0.5 3820 + retext-latin@4.0.0: 3821 + dependencies: 3822 + "@types/nlcst": 2.0.3 3823 + parse-latin: 7.0.0 3824 + unified: 11.0.5 3825 + retext-smartypants@6.2.0: 3826 + dependencies: 3827 + "@types/nlcst": 2.0.3 3828 + nlcst-to-string: 4.0.0 3829 + unist-util-visit: 5.1.0 3830 + retext-stringify@4.0.0: 3831 + dependencies: 3832 + "@types/nlcst": 2.0.3 3833 + nlcst-to-string: 4.0.0 3834 + unified: 11.0.5 3835 + retext@9.0.0: 3836 + dependencies: 3837 + "@types/nlcst": 2.0.3 3838 + retext-latin: 4.0.0 3839 + retext-stringify: 4.0.0 3840 + unified: 11.0.5 3841 + robust-predicates@3.0.2: {} 3842 + rollup@4.57.1: 3843 + dependencies: 3844 + "@types/estree": 1.0.8 3845 + optionalDependencies: 3846 + "@rollup/rollup-android-arm-eabi": 4.57.1 3847 + "@rollup/rollup-android-arm64": 4.57.1 3848 + "@rollup/rollup-darwin-arm64": 4.57.1 3849 + "@rollup/rollup-darwin-x64": 4.57.1 3850 + "@rollup/rollup-freebsd-arm64": 4.57.1 3851 + "@rollup/rollup-freebsd-x64": 4.57.1 3852 + "@rollup/rollup-linux-arm-gnueabihf": 4.57.1 3853 + "@rollup/rollup-linux-arm-musleabihf": 4.57.1 3854 + "@rollup/rollup-linux-arm64-gnu": 4.57.1 3855 + "@rollup/rollup-linux-arm64-musl": 4.57.1 3856 + "@rollup/rollup-linux-loong64-gnu": 4.57.1 3857 + "@rollup/rollup-linux-loong64-musl": 4.57.1 3858 + "@rollup/rollup-linux-ppc64-gnu": 4.57.1 3859 + "@rollup/rollup-linux-ppc64-musl": 4.57.1 3860 + "@rollup/rollup-linux-riscv64-gnu": 4.57.1 3861 + "@rollup/rollup-linux-riscv64-musl": 4.57.1 3862 + "@rollup/rollup-linux-s390x-gnu": 4.57.1 3863 + "@rollup/rollup-linux-x64-gnu": 4.57.1 3864 + "@rollup/rollup-linux-x64-musl": 4.57.1 3865 + "@rollup/rollup-openbsd-x64": 4.57.1 3866 + "@rollup/rollup-openharmony-arm64": 4.57.1 3867 + "@rollup/rollup-win32-arm64-msvc": 4.57.1 3868 + "@rollup/rollup-win32-ia32-msvc": 4.57.1 3869 + "@rollup/rollup-win32-x64-gnu": 4.57.1 3870 + "@rollup/rollup-win32-x64-msvc": 4.57.1 3871 + fsevents: 2.3.3 3872 + roughjs@4.6.6: 3873 + dependencies: 3874 + hachure-fill: 0.5.2 3875 + path-data-parser: 0.1.0 3876 + points-on-curve: 0.2.0 3877 + points-on-path: 0.2.1 3878 + rw@1.3.3: {} 3879 + safer-buffer@2.1.2: {} 3880 + sax@1.4.4: {} 3881 + semver@7.7.4: {} 3882 + sharp@0.34.5: 3883 + dependencies: 3884 + "@img/colour": 1.0.0 3885 + detect-libc: 2.1.2 3886 + semver: 7.7.4 3887 + optionalDependencies: 3888 + "@img/sharp-darwin-arm64": 0.34.5 3889 + "@img/sharp-darwin-x64": 0.34.5 3890 + "@img/sharp-libvips-darwin-arm64": 1.2.4 3891 + "@img/sharp-libvips-darwin-x64": 1.2.4 3892 + "@img/sharp-libvips-linux-arm": 1.2.4 3893 + "@img/sharp-libvips-linux-arm64": 1.2.4 3894 + "@img/sharp-libvips-linux-ppc64": 1.2.4 3895 + "@img/sharp-libvips-linux-riscv64": 1.2.4 3896 + "@img/sharp-libvips-linux-s390x": 1.2.4 3897 + "@img/sharp-libvips-linux-x64": 1.2.4 3898 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.4 3899 + "@img/sharp-libvips-linuxmusl-x64": 1.2.4 3900 + "@img/sharp-linux-arm": 0.34.5 3901 + "@img/sharp-linux-arm64": 0.34.5 3902 + "@img/sharp-linux-ppc64": 0.34.5 3903 + "@img/sharp-linux-riscv64": 0.34.5 3904 + "@img/sharp-linux-s390x": 0.34.5 3905 + "@img/sharp-linux-x64": 0.34.5 3906 + "@img/sharp-linuxmusl-arm64": 0.34.5 3907 + "@img/sharp-linuxmusl-x64": 0.34.5 3908 + "@img/sharp-wasm32": 0.34.5 3909 + "@img/sharp-win32-arm64": 0.34.5 3910 + "@img/sharp-win32-ia32": 0.34.5 3911 + "@img/sharp-win32-x64": 0.34.5 3912 + shiki@3.22.0: 3913 + dependencies: 3914 + "@shikijs/core": 3.22.0 3915 + "@shikijs/engine-javascript": 3.22.0 3916 + "@shikijs/engine-oniguruma": 3.22.0 3917 + "@shikijs/langs": 3.22.0 3918 + "@shikijs/themes": 3.22.0 3919 + "@shikijs/types": 3.22.0 3920 + "@shikijs/vscode-textmate": 10.0.2 3921 + "@types/hast": 3.0.4 3922 + sisteransi@1.0.5: {} 3923 + sitemap@8.0.2: 3924 + dependencies: 3925 + "@types/node": 17.0.45 3926 + "@types/sax": 1.2.7 3927 + arg: 5.0.2 3928 + sax: 1.4.4 3929 + smol-toml@1.6.0: {} 3930 + source-map-js@1.2.1: {} 3931 + source-map@0.7.6: {} 3932 + space-separated-tokens@2.0.2: {} 3933 + stream-replace-string@2.0.0: {} 3934 + string-width@4.2.3: 3935 + dependencies: 3936 + emoji-regex: 8.0.0 3937 + is-fullwidth-code-point: 3.0.0 3938 + strip-ansi: 6.0.1 3939 + string-width@7.2.0: 3940 + dependencies: 3941 + emoji-regex: 10.6.0 3942 + get-east-asian-width: 1.5.0 3943 + strip-ansi: 7.1.2 3944 + stringify-entities@4.0.4: 3945 + dependencies: 3946 + character-entities-html4: 2.1.0 3947 + character-entities-legacy: 3.0.0 3948 + strip-ansi@6.0.1: 3949 + dependencies: 3950 + ansi-regex: 5.0.1 3951 + strip-ansi@7.1.2: 3952 + dependencies: 3953 + ansi-regex: 6.2.2 3954 + style-to-js@1.1.21: 3955 + dependencies: 3956 + style-to-object: 1.0.14 3957 + style-to-object@1.0.14: 3958 + dependencies: 3959 + inline-style-parser: 0.2.7 3960 + stylis@4.3.6: {} 3961 + svgo@4.0.0: 3962 + dependencies: 3963 + commander: 11.1.0 3964 + css-select: 5.2.2 3965 + css-tree: 3.1.0 3966 + css-what: 6.2.2 3967 + csso: 5.0.5 3968 + picocolors: 1.1.1 3969 + sax: 1.4.4 3970 + tiny-inflate@1.0.3: {} 3971 + tinyexec@1.0.2: {} 3972 + tinyglobby@0.2.15: 3973 + dependencies: 3974 + fdir: 6.5.0(picomatch@4.0.3) 3975 + picomatch: 4.0.3 3976 + trim-lines@3.0.1: {} 3977 + trough@2.2.0: {} 3978 + ts-dedent@2.2.0: {} 3979 + tsconfck@3.1.6(typescript@5.9.3): 3980 + optionalDependencies: 3981 + typescript: 5.9.3 3982 + tslib@2.8.1: 3983 + optional: true 3984 + type-fest@4.41.0: {} 3985 + typescript@5.9.3: {} 3986 + ufo@1.6.3: {} 3987 + ultrahtml@1.6.0: {} 3988 + uncrypto@0.1.3: {} 3989 + unified@11.0.5: 3990 + dependencies: 3991 + "@types/unist": 3.0.3 3992 + bail: 2.0.2 3993 + devlop: 1.1.0 3994 + extend: 3.0.2 3995 + is-plain-obj: 4.1.0 3996 + trough: 2.2.0 3997 + vfile: 6.0.3 3998 + unifont@0.7.4: 3999 + dependencies: 4000 + css-tree: 3.1.0 4001 + ofetch: 1.5.1 4002 + ohash: 2.0.11 4003 + unist-util-find-after@5.0.0: 4004 + dependencies: 4005 + "@types/unist": 3.0.3 4006 + unist-util-is: 6.0.1 4007 + unist-util-is@6.0.1: 4008 + dependencies: 4009 + "@types/unist": 3.0.3 4010 + unist-util-modify-children@4.0.0: 4011 + dependencies: 4012 + "@types/unist": 3.0.3 4013 + array-iterate: 2.0.1 4014 + unist-util-position-from-estree@2.0.0: 4015 + dependencies: 4016 + "@types/unist": 3.0.3 4017 + unist-util-position@5.0.0: 4018 + dependencies: 4019 + "@types/unist": 3.0.3 4020 + unist-util-remove-position@5.0.0: 4021 + dependencies: 4022 + "@types/unist": 3.0.3 4023 + unist-util-visit: 5.1.0 4024 + unist-util-stringify-position@4.0.0: 4025 + dependencies: 4026 + "@types/unist": 3.0.3 4027 + unist-util-visit-children@3.0.0: 4028 + dependencies: 4029 + "@types/unist": 3.0.3 4030 + unist-util-visit-parents@6.0.2: 4031 + dependencies: 4032 + "@types/unist": 3.0.3 4033 + unist-util-is: 6.0.1 4034 + unist-util-visit@5.1.0: 4035 + dependencies: 4036 + "@types/unist": 3.0.3 4037 + unist-util-is: 6.0.1 4038 + unist-util-visit-parents: 6.0.2 4039 + unstorage@1.17.4: 4040 + dependencies: 4041 + anymatch: 3.1.3 4042 + chokidar: 5.0.0 4043 + destr: 2.0.5 4044 + h3: 1.15.5 4045 + lru-cache: 11.2.6 4046 + node-fetch-native: 1.6.7 4047 + ofetch: 1.5.1 4048 + ufo: 1.6.3 4049 + util-deprecate@1.0.2: {} 4050 + uuid@11.1.0: {} 4051 + vfile-location@5.0.3: 4052 + dependencies: 4053 + "@types/unist": 3.0.3 4054 + vfile: 6.0.3 4055 + vfile-message@4.0.3: 4056 + dependencies: 4057 + "@types/unist": 3.0.3 4058 + unist-util-stringify-position: 4.0.0 4059 + vfile@6.0.3: 4060 + dependencies: 4061 + "@types/unist": 3.0.3 4062 + vfile-message: 4.0.3 4063 + vite@6.4.1: 4064 + dependencies: 4065 + esbuild: 0.25.12 4066 + fdir: 6.5.0(picomatch@4.0.3) 4067 + picomatch: 4.0.3 4068 + postcss: 8.5.6 4069 + rollup: 4.57.1 4070 + tinyglobby: 0.2.15 4071 + optionalDependencies: 4072 + fsevents: 2.3.3 4073 + vitefu@1.1.1(vite@6.4.1): 4074 + optionalDependencies: 4075 + vite: 6.4.1 4076 + vscode-jsonrpc@8.2.0: {} 4077 + vscode-languageserver-protocol@3.17.5: 4078 + dependencies: 4079 + vscode-jsonrpc: 8.2.0 4080 + vscode-languageserver-types: 3.17.5 4081 + vscode-languageserver-textdocument@1.0.12: {} 4082 + vscode-languageserver-types@3.17.5: {} 4083 + vscode-languageserver@9.0.1: 4084 + dependencies: 4085 + vscode-languageserver-protocol: 3.17.5 4086 + vscode-uri@3.1.0: {} 4087 + web-namespaces@2.0.1: {} 4088 + which-pm-runs@1.1.0: {} 4089 + widest-line@5.0.0: 4090 + dependencies: 4091 + string-width: 7.2.0 4092 + wrap-ansi@9.0.2: 4093 + dependencies: 4094 + ansi-styles: 6.2.3 4095 + string-width: 7.2.0 4096 + strip-ansi: 7.1.2 4097 + xxhash-wasm@1.1.0: {} 4098 + yargs-parser@21.1.1: {} 4099 + yocto-queue@1.2.2: {} 4100 + yocto-spinner@0.2.3: 4101 + dependencies: 4102 + yoctocolors: 2.1.2 4103 + yoctocolors@2.1.2: {} 4104 + zod-to-json-schema@3.25.1(zod@3.25.76): 4105 + dependencies: 4106 + zod: 3.25.76 4107 + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): 4108 + dependencies: 4109 + typescript: 5.9.3 4110 + zod: 3.25.76 4111 + zod@3.25.76: {} 4112 + zwitch@2.0.4: {}
+1
docs/public/favicon.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path fill-rule="evenodd" d="M81 36 64 0 47 36l-1 2-9-10a6 6 0 0 0-9 9l10 10h-2L0 64l36 17h2L28 91a6 6 0 1 0 9 9l9-10 1 2 17 36 17-36v-2l9 10a6 6 0 1 0 9-9l-9-9 2-1 36-17-36-17-2-1 9-9a6 6 0 1 0-9-9l-9 10v-2Zm-17 2-2 5c-4 8-11 15-19 19l-5 2 5 2c8 4 15 11 19 19l2 5 2-5c4-8 11-15 19-19l5-2-5-2c-8-4-15-11-19-19l-2-5Z" clip-rule="evenodd"/><path d="M118 19a6 6 0 0 0-9-9l-3 3a6 6 0 1 0 9 9l3-3Zm-96 4c-2 2-6 2-9 0l-3-3a6 6 0 1 1 9-9l3 3c3 2 3 6 0 9Zm0 82c-2-2-6-2-9 0l-3 3a6 6 0 1 0 9 9l3-3c3-2 3-6 0-9Zm96 4a6 6 0 0 1-9 9l-3-3a6 6 0 1 1 9-9l3 3Z"/><style>path{fill:#000}@media (prefers-color-scheme:dark){path{fill:#fff}}</style></svg>
docs/src/assets/houston.webp

This is a binary file and will not be displayed.

+4
docs/src/components/Ad.astro
··· 1 + --- 2 + 3 + --- 4 +
+8
docs/src/components/Footer.astro
··· 1 + --- 2 + import DefaultFooter from '@astrojs/starlight/components/Footer.astro'; 3 + import FooterLinks from './FooterLinks.astro'; 4 + --- 5 + 6 + <DefaultFooter /> 7 + <FooterLinks /> 8 +
+51
docs/src/components/FooterLinks.astro
··· 1 + --- 2 + import { Icon } from '@astrojs/starlight/components'; 3 + --- 4 + 5 + <section class="sl-flex"> 6 + <a href="/contributing" class="sl-flex"> 7 + <Icon name="rocket" size="1.2em" /> 8 + Contribute 9 + </a> 10 + 11 + <a href="/community" class="sl-flex"> 12 + <svg 13 + xmlns="http://www.w3.org/2000/svg" 14 + width="16" 15 + height="16" 16 + viewBox="0 0 24 24" 17 + fill="currentColor" 18 + style="width:1.2em;height:1.2em;" 19 + > 20 + <path 21 + d="M12.3 12.22A4.92 4.92 0 0 0 14 8.5a5 5 0 0 0-10 0a4.92 4.92 0 0 0 1.7 3.72A8 8 0 0 0 1 19.5a1 1 0 0 0 2 0a6 6 0 0 1 12 0a1 1 0 0 0 2 0a8 8 0 0 0-4.7-7.28M9 11.5a3 3 0 1 1 3-3a3 3 0 0 1-3 3m9.74.32A5 5 0 0 0 15 3.5a1 1 0 0 0 0 2a3 3 0 0 1 3 3a3 3 0 0 1-1.5 2.59a1 1 0 0 0-.5.84a1 1 0 0 0 .45.86l.39.26l.13.07a7 7 0 0 1 4 6.38a1 1 0 0 0 2 0a9 9 0 0 0-4.23-7.68" 22 + ></path> 23 + </svg> 24 + Community 25 + </a> 26 + 27 + <a href="/sponsor" class="sl-flex"> 28 + <Icon name="heart" size="1.2em" /> 29 + Sponsor 30 + </a> 31 + </section> 32 + 33 + <style> 34 + section { 35 + justify-content: center; 36 + flex-wrap: wrap; 37 + gap: 0.5rem 1.5rem; 38 + font-size: var(--sl-text-sm); 39 + } 40 + 41 + a { 42 + align-items: center; 43 + text-decoration: none; 44 + gap: 0.5rem; 45 + color: var(--sl-color-gray-3); 46 + } 47 + 48 + a:hover { 49 + color: var(--sl-color-white); 50 + } 51 + </style>
+9
docs/src/components/PageSidebar.astro
··· 1 + --- 2 + import Default from '@astrojs/starlight/components/PageSidebar.astro'; 3 + import Ad from './Ad.astro'; 4 + --- 5 + 6 + <Default /> 7 + 8 + <Ad /> 9 +
+154
docs/src/components/Sidebar.astro
··· 1 + --- 2 + import MobileMenuFooter from '@astrojs/starlight/components/MobileMenuFooter.astro'; 3 + import SidebarPersister from '@astrojs/starlight/components/SidebarPersister.astro'; 4 + import SidebarSublist from '@astrojs/starlight/components/SidebarSublist.astro'; 5 + 6 + const { sidebar, id } = Astro.locals.starlightRoute; 7 + 8 + import { Icon } from '@astrojs/starlight/components'; 9 + 10 + import TabbedContent from './tabs/TabbedContent.astro'; 11 + import TabListItem from './tabs/TabListItem.astro'; 12 + import TabPanel from './tabs/TabPanel.astro'; 13 + 14 + /** Get the icon for a group. Update the icon names in the array to change the icons associated with a group. */ 15 + const getIcon = (index: number) => 16 + (['nix', 'open-book', 'rocket', 'puzzle', 'information', 'setting'] as const)[index]; 17 + 18 + /** Convert a group label to an `id` we can use to identify tab panels. */ 19 + // The id is prefixed to avoid clashing with existing heading IDs on the page. 20 + const makeId = (label: string) => '__tab-' + label.toLowerCase().replaceAll(/\s+/g, '-'); 21 + 22 + /** Determine if an array of sidebar items contains the current page. */ 23 + const isCurrent = (sidebar: SidebarEntry[]): boolean => 24 + sidebar 25 + .map((entry) => (entry.type === 'link' ? entry.isCurrent : isCurrent(entry.entries))) 26 + .some((entry) => entry === true); 27 + 28 + --- 29 + <SidebarPersister> 30 + <TabbedContent class="tabbed-sidebar"> 31 + <Fragment slot="tab-list"> 32 + { 33 + sidebar.map(({ label, entries }, index) => ( 34 + <TabListItem id={makeId(label)} initial={isCurrent(entries)} class="tab-item"> 35 + <Icon class="icon" name={getIcon(index)} /> {label} 36 + </TabListItem> 37 + )) 38 + } 39 + </Fragment> 40 + { 41 + sidebar.map(({ label, entries }) => ( 42 + <TabPanel id={makeId(label)} initial={isCurrent(entries)}> 43 + <SidebarSublist sublist={entries} /> 44 + </TabPanel> 45 + )) 46 + } 47 + </TabbedContent> 48 + </SidebarPersister> 49 + 50 + <div class="md:sl-hidden"> 51 + <MobileMenuFooter /> 52 + </div> 53 + 54 + <style> 55 + /** Add "EN" to the end of sidebar items with the `fallback` class. */ 56 + :global(.fallback)::after { 57 + content: 'EN'; 58 + vertical-align: super; 59 + font-size: 0.75em; 60 + font-weight: 700; 61 + } 62 + 63 + /** Align sponsors at sidebar bottom when there is room. */ 64 + .desktop-footer { 65 + margin-top: auto; 66 + } 67 + 68 + /** Always show the scrollbar gutter. */ 69 + :global(.sidebar-pane) { 70 + overflow-y: scroll; 71 + } 72 + 73 + /* Styles for the custom tab switcher. */ 74 + .tabbed-sidebar { 75 + /* Layout variables */ 76 + --tab-switcher-border-width: 1px; 77 + --tab-switcher-padding: calc(0.25rem - var(--tab-switcher-border-width)); 78 + --tab-item-border-radius: 0.5rem; 79 + --tab-switcher-border-radius: calc( 80 + var(--tab-item-border-radius) + var(--tab-switcher-padding) + var(--tab-switcher-border-width) 81 + ); 82 + 83 + /* Color variables */ 84 + --tab-switcher-border-color: var(--sl-color-hairline-light); 85 + --tab-switcher-background-color: var(--sl-color-gray-7, var(--sl-color-gray-6)); 86 + --tab-switcher-text-color: var(--sl-color-gray-3); 87 + --tab-switcher-text-color--active: var(--sl-color-white); 88 + --tab-switcher-icon-color: var(--sl-color-gray-4); 89 + --tab-switcher-icon-color--active: var(--sl-color-text-accent); 90 + --tab-item-background-color--hover: var(--sl-color-gray-6); 91 + --tab-item-background-color--active: var(--sl-color-black); 92 + } 93 + /* Dark theme variations */ 94 + :global([data-theme='dark']) .tabbed-sidebar { 95 + --tab-switcher-text-color: var(--sl-color-gray-2); 96 + --tab-switcher-icon-color: var(--sl-color-gray-3); 97 + --tab-item-background-color--hover: var(--sl-color-gray-5); 98 + } 99 + 100 + @media (min-width: 50rem) { 101 + /* Dark theme variations with the desktop sidebar visible */ 102 + :global([data-theme='dark']) .tabbed-sidebar { 103 + --tab-switcher-background-color: var(--sl-color-black); 104 + --tab-item-background-color--hover: var(--sl-color-gray-6); 105 + --tab-item-background-color--active: var(--sl-color-gray-6); 106 + } 107 + } 108 + 109 + .tabbed-sidebar.tab-list { 110 + border: var(--tab-switcher-border-width) solid var(--tab-switcher-border-color); 111 + border-radius: var(--tab-switcher-border-radius); 112 + display: flex; 113 + flex-direction: column; 114 + gap: 0.25rem; 115 + padding: var(--tab-switcher-padding); 116 + background-color: var(--tab-switcher-background-color); 117 + margin-bottom: 1.5rem; 118 + } 119 + 120 + .tab-item :global(a) { 121 + border: var(--tab-switcher-border-width) solid transparent; 122 + border-radius: var(--tab-item-border-radius); 123 + display: flex; 124 + align-items: center; 125 + gap: 0.5rem; 126 + padding: calc(0.5rem - var(--tab-switcher-border-width)); 127 + background-clip: padding-box; 128 + line-height: var(--sl-line-height-headings); 129 + text-decoration: none; 130 + color: var(--tab-switcher-text-color); 131 + font-weight: 600; 132 + } 133 + 134 + .tab-item :global(a:hover) { 135 + color: var(--tab-switcher-text-color--active); 136 + background-color: var(--tab-item-background-color--hover); 137 + } 138 + .tab-item :global(a[aria-selected='true']) { 139 + border-color: var(--tab-switcher-border-color); 140 + color: var(--tab-switcher-text-color--active); 141 + background-color: var(--tab-item-background-color--active); 142 + } 143 + 144 + .icon { 145 + margin: 0.25rem; 146 + color: var(--tab-switcher-icon-color); 147 + } 148 + .tab-item :global(a:hover) .icon { 149 + color: inherit; 150 + } 151 + .tab-item :global(a[aria-selected='true']) .icon { 152 + color: var(--tab-switcher-icon-color--active); 153 + } 154 + </style>
+16
docs/src/components/SocialIcons.astro
··· 1 + --- 2 + 3 + import Default from '@astrojs/starlight/components/SocialIcons.astro'; 4 + 5 + --- 6 + 7 + <a href="https://github.com/vic/den/releases"><img src="https://img.shields.io/github/v/release/vic/den?logo=github&color=white"/></a> 8 + 9 + <a href="https://deepwiki.com/vic/den"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a> 10 + 11 + <a href="https://vic.github.io/dendrix/Dendritic-Ecosystem.html#vics-dendritic-libraries"> <img src="https://img.shields.io/badge/@vic-Dendritic libs-informational?logo=nixos&logoColor=white" alt="Vic Dendritic Nix"/> </a> 12 + 13 + <a href="/sponsor"><img src="https://img.shields.io/badge/Sponsor-@vic-white?logo=githubsponsors&logoColor=white" alt="Sponsor Den"/> 14 + </a> 15 + 16 + <Default />
+21
docs/src/components/tabs/LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2022 withastro 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.
+23
docs/src/components/tabs/TabListItem.astro
··· 1 + --- 2 + import type { HTMLAttributes } from 'astro/types'; 3 + 4 + export interface Props { 5 + /** Unique ID for the tab panel this item links to. */ 6 + id: string; 7 + /** Mark this item as visible when the page loads. */ 8 + initial?: boolean; 9 + /** Additional class names to apply to the `<li>` */ 10 + class?: string; 11 + } 12 + 13 + const { id, initial } = Astro.props; 14 + const linkAttributes: HTMLAttributes<'a'> = initial 15 + ? { 'data-initial': 'true', 'aria-selected': 'true' } 16 + : {}; 17 + --- 18 + 19 + <li class:list={Astro.props.class}> 20 + <a href={'#' + id} class="tab-link" {...linkAttributes}> 21 + <slot /> 22 + </a> 23 + </li>
+44
docs/src/components/tabs/TabPanel.astro
··· 1 + --- 2 + import type { HTMLAttributes } from 'astro/types'; 3 + 4 + export interface Props { 5 + id: string; 6 + initial?: boolean; 7 + } 8 + const { id, initial } = Astro.props; 9 + const attributes: HTMLAttributes<'div'> = initial ? { 'data-initial': 'true' } : {}; 10 + --- 11 + 12 + <div {id} {...attributes}> 13 + <slot /> 14 + </div> 15 + 16 + <style> 17 + /* 18 + These styles avoid layout shift on page load. 19 + We don’t want to hide all tabs forever in case JS never loads, 20 + so instead we hide them initially with an animation that jumps 21 + from hidden to visible after 10s. Usually JS will run before 22 + 10s at which point we’ll rely on the `hidden` attribute and 23 + toggle off the animation using `role='tabpanel'`. Both these 24 + attributes are injected by the JS. 25 + */ 26 + 27 + div { 28 + animation: tab-panel-appear 10s steps(2, jump-none) 1; 29 + } 30 + 31 + div[data-initial], 32 + div[role='tabpanel'] { 33 + animation: none; 34 + } 35 + 36 + @keyframes tab-panel-appear { 37 + from { 38 + /* `content-visibility` is set as well as `display` to work around a Firefox 39 + bug where animations containing only `display: none` don’t play. */ 40 + display: none; 41 + content-visibility: hidden; 42 + } 43 + } 44 + </style>
+173
docs/src/components/tabs/TabbedContent.astro
··· 1 + --- 2 + import TabListItem from './TabListItem.astro'; 3 + 4 + export interface Props { 5 + /** 6 + * List of content for the tab list. 7 + * 8 + * To use more complex mark-up for the tab list, pass `<TabListItem>`s 9 + * inside a `<Fragment slot="tab-list">`. 10 + */ 11 + tabs?: { label: string; id: string; initial?: boolean }[]; 12 + /** Enable default styles for the tab list and panels. */ 13 + styled?: boolean; 14 + /** Additional class names to apply to `.tab-list` and `.panels`. */ 15 + class?: string; 16 + } 17 + 18 + const { tabs, styled } = Astro.props as Props; 19 + --- 20 + 21 + <tabbed-content> 22 + <ul class:list={['tab-list', Astro.props.class, { 'tab-list--styled': styled }]}> 23 + <slot name="tab-list"> 24 + { 25 + tabs?.map((tab) => ( 26 + <TabListItem id={tab.id} initial={tab.initial}> 27 + {tab.label} 28 + </TabListItem> 29 + )) 30 + } 31 + </slot> 32 + </ul> 33 + 34 + <div class:list={['panels', Astro.props.class, { 'panels--styled': styled }]}> 35 + <slot /> 36 + </div> 37 + </tabbed-content> 38 + 39 + <style> 40 + .tab-list { 41 + list-style: none; 42 + padding: 0; 43 + } 44 + .tab-list--styled { 45 + display: flex; 46 + margin-top: -1px; 47 + overflow-x: auto; 48 + overflow-y: hidden; 49 + } 50 + @media (min-width: 72em) { 51 + .tab-list--styled { 52 + justify-content: space-between; 53 + margin-top: 0; 54 + padding: 1px; 55 + } 56 + } 57 + 58 + .panels--styled { 59 + padding-left: 1px; 60 + padding-right: 1px; 61 + } 62 + </style> 63 + 64 + <script> 65 + class Tabs extends HTMLElement { 66 + readonly id = Math.floor(Math.random() * 10e10).toString(32); 67 + count = 0; 68 + TabStore: Set<HTMLElement>[] = []; 69 + PanelStore: Set<HTMLElement>[] = []; 70 + 71 + constructor() { 72 + super(); 73 + 74 + // Get relevant elements and collections 75 + const panels = this.querySelectorAll<HTMLElement>('.panels > [id]'); 76 + const tablist = this.querySelector('.tab-list')!; 77 + const tabs = tablist.querySelectorAll('a'); 78 + 79 + // Add the tablist role to the first <ul> in the .tabbed container 80 + tablist.setAttribute('role', 'tablist'); 81 + 82 + let initialTab = 0; 83 + 84 + // Add semantics are remove user focusability for each tab 85 + Array.prototype.forEach.call(tabs, (tab: HTMLElement, i: number) => { 86 + tab.setAttribute('role', 'tab'); 87 + tab.setAttribute('id', this.id + 'tab' + this.count++); 88 + tab.setAttribute('tabindex', '-1'); 89 + tab.parentElement?.setAttribute('role', 'presentation'); 90 + if (!this.TabStore[i]) this.TabStore.push(new Set()); 91 + this.TabStore[i].add(tab); 92 + if ('initial' in tab.dataset && tab.dataset.initial !== 'false') initialTab = i; 93 + 94 + // Handle clicking of tabs for mouse users 95 + const onClick = (e: MouseEvent) => { 96 + e.preventDefault(); 97 + const currentTab = tablist.querySelector('[aria-selected]'); 98 + if (e.currentTarget !== currentTab) { 99 + this.switchTab(e.currentTarget as HTMLElement, i); 100 + } 101 + }; 102 + tab.addEventListener('click', onClick); 103 + tab.addEventListener('auxclick', onClick); 104 + 105 + // Handle keydown events for keyboard users 106 + tab.addEventListener('keydown', (e) => { 107 + // Get the index of the current tab in the tabs node list 108 + const index: number = Array.prototype.indexOf.call(tabs, e.currentTarget); 109 + // Work out which key the user is pressing and 110 + // Calculate the new tab's index where appropriate 111 + const dir = 112 + e.key === 'ArrowLeft' 113 + ? index - 1 114 + : e.key === 'ArrowRight' 115 + ? index + 1 116 + : e.key === 'Home' 117 + ? 0 118 + : e.key === 'End' 119 + ? tabs.length - 1 120 + : null; 121 + if (dir !== null) { 122 + e.preventDefault(); 123 + if (tabs[dir]) this.switchTab(tabs[dir], dir); 124 + } 125 + }); 126 + }); 127 + 128 + // Add tab panel semantics and hide them all 129 + Array.prototype.forEach.call(panels, (panel: HTMLElement, i: number) => { 130 + panel.setAttribute('role', 'tabpanel'); 131 + panel.setAttribute('tabindex', '-1'); 132 + panel.setAttribute('aria-labelledby', tabs[i].id); 133 + panel.hidden = true; 134 + if (!this.PanelStore[i]) this.PanelStore.push(new Set()); 135 + this.PanelStore[i].add(panel); 136 + }); 137 + 138 + // Activate and reveal the initial tab panel 139 + tabs[initialTab].removeAttribute('tabindex'); 140 + tabs[initialTab].setAttribute('aria-selected', 'true'); 141 + panels[initialTab].hidden = false; 142 + } 143 + 144 + // The tab switching function 145 + switchTab(newTab: HTMLElement, index: number) { 146 + this.TabStore.forEach((store) => 147 + store.forEach((oldTab) => { 148 + oldTab.removeAttribute('aria-selected'); 149 + oldTab.setAttribute('tabindex', '-1'); 150 + }) 151 + ); 152 + this.TabStore[index].forEach((newTab) => { 153 + // Make the active tab focusable by the user (Tab key) 154 + newTab.removeAttribute('tabindex'); 155 + // Set the selected state 156 + newTab.setAttribute('aria-selected', 'true'); 157 + }); 158 + 159 + this.PanelStore.forEach((store) => 160 + store.forEach((oldPanel) => { 161 + oldPanel.hidden = true; 162 + }) 163 + ); 164 + this.PanelStore[index].forEach((newPanel) => { 165 + newPanel.hidden = false; 166 + }); 167 + 168 + newTab.focus(); 169 + } 170 + } 171 + 172 + customElements.define('tabbed-content', Tabs); 173 + </script>
+7
docs/src/content.config.ts
··· 1 + import { defineCollection } from 'astro:content'; 2 + import { docsLoader } from '@astrojs/starlight/loaders'; 3 + import { docsSchema } from '@astrojs/starlight/schema'; 4 + 5 + export const collections = { 6 + docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), 7 + };
+75
docs/src/content/docs/explanation/how-it-works.mdx
··· 1 + --- 2 + title: How it Works 3 + description: The module system, option schema, write-flake, and the outputs function. 4 + --- 5 + 6 + import { Aside } from '@astrojs/starlight/components'; 7 + 8 + 9 + flake-file integrates input definition as part of your Nix modules. 10 + 11 + It provides a set of module options under the `flake-file` namespace that describe the contents of `flake.nix`. 12 + 13 + <Aside title="Schema based inputs!"> 14 + Unlike unstable-nix flakes, flake-file inputs DO have a **typed** schema, one that 15 + mirrors Nix Flakes but actually implemented using the Nix module system. 16 + </Aside> 17 + 18 + When you run `nix run .#write-flake`, it evaluates those options and writes the file. 19 + 20 + 21 + ``` 22 + edit modules/*.nix # declare flake-file options 23 + 24 + nix run .#write-flake # extracts inputs and serializes 25 + 26 + flake.nix # updated and locked 27 + ``` 28 + 29 + ## The Module System 30 + 31 + Any Nix module can set `flake-file.*` options. Because this is the standard Nix module system, all the usual tools apply: 32 + 33 + - `lib.mkDefault` — set a value that can be overridden by other modules. 34 + - `lib.mkForce` — force a value regardless of what other modules set. 35 + - `lib.mkIf` — conditionally define an input. 36 + - Attribute merging — multiple files contribute to the same input set. 37 + 38 + ```nix 39 + { inputs, lib, ... }: { 40 + flake-file.inputs.nixpkgs.url = lib.mkDefault "github:NixOS/nixpkgs/nixpkgs-unstable"; 41 + flake-file.inputs.nixpkgs-lib.follows = "nixpkgs"; 42 + } 43 + ``` 44 + 45 + ## The Option Schema 46 + 47 + Options mirror the flake schema and extend it further: 48 + 49 + | Namespace | Purpose | 50 + |---|---| 51 + | `flake-file.description` | Flake description string | 52 + | `flake-file.nixConfig` | Nix binary cache and substituter config | 53 + | `flake-file.inputs.<name>.*` | Input declarations (url, follows, flake, ref, …) | 54 + | `flake-file.outputs` | Literal Nix expression for the outputs function | 55 + | `flake-file.write-hooks` | Commands run after writing | 56 + | `flake-file.check-hooks` | Commands run during check | 57 + | `flake-file.prune-lock.*` | Automatic lock flattening | 58 + 59 + See the [Options Reference](/reference/options) for the complete table. 60 + 61 + ## Apps: write-flake and flake check 62 + 63 + **`nix run .#write-flake`** collects inputs, serialises the merged options to valid Nix syntax, and writes `flake.nix`. It also runs any configured `write-hooks`. 64 + 65 + **`nix flake check`** verifies that `flake.nix` is up to date with the current module state. If it is stale, the check fails. Add this to CI. 66 + 67 + ## The outputs Function 68 + 69 + `flake-file.outputs` is a *literal Nix string* that becomes the body of the `outputs` function in `flake.nix`. It defaults to: 70 + 71 + ```nix 72 + inputs: import ./outputs.nix inputs 73 + ``` 74 + 75 + This keeps `flake.nix` as a pure dependency manifest. All Nix logic lives in `outputs.nix`. See the [Outputs guide](/guides/outputs) for details.
+78
docs/src/content/docs/explanation/what-is-flake-file.mdx
··· 1 + --- 2 + title: The reason for flake-file 3 + description: Who it's for, the problem it solves, and what makes it different. 4 + --- 5 + 6 + ## Your flake.nix is not real Nix 7 + 8 + Have you ever tried to use a let expression or interpolate some common string into an `input.url` ? 9 + You will be happy to discover that your [flake.nix file is a subset of Nix](https://github.com/NixOS/nix/issues/4945). 10 + The only real Nix on it is the content of the `outputs` function. 11 + 12 + 13 + ## Flake examples are monolithic. 14 + 15 + Isn't it weird to you that almost all examples of Nix Flakes that newcomers can find in the wild 16 + are big monolithic files? 17 + 18 + It is like teaching Node people to use package.json to write the full application on it. 19 + 20 + `flake.nix` is a distribution asset. And should be used as such: as a **dependencies manifest**. 21 + 22 + Make yourself a favor right now -this guide will wait for you to be back-: 23 + move your outputs function into `outputs.nix` and use something like: 24 + 25 + ```nix 26 + # flake.nix 27 + { 28 + inputs = { }; 29 + outputs = inputs: import ./outputs.nix inputs; 30 + } 31 + ``` 32 + 33 + 34 + ## Sharing input requirements across stable/unstable Nix. 35 + 36 + Even if some people use unstable flakes, others should not be forced out of stable Nix. 37 + 38 + Each module defines inputs and flake-file can extract to whatever input-locking backend you need. 39 + Be it `flake.nix`, `unflake.nix`, `npins`. 40 + 41 + ## Everybody `.follows` 42 + 43 + Even when Flakes inputs are locked for reproducibility, most people override their transitive 44 + dependencies because otherwise you end up downloading zillion different nixpkgs revisions. 45 + The build guarantee is broken because upstream flake author did not expected a new 46 + possibly-incompatible version of its dependencies. 47 + 48 + Instead of using `.follows` which is external to the Nix language, flake-file uses 49 + the Nix module system, that already solves this class of problems for NixOS configurations — 50 + flake-file brings the same `lib.mkDefault`/`lib.mkForce` approach to `flake.nix` itself. 51 + 52 + ## How flake-file Helps 53 + 54 + Instead of editing `flake.nix` directly, you declare inputs as **module options** — in any Nix module, close to where the dependency is used. flake-file then generates a clean, up-to-date `flake.nix` from those declarations. 55 + 56 + ```nix 57 + # modules/my-tool.nix 58 + { lib, ... }: { 59 + flake-file.inputs.my-tool.url = lib.mkDefault "github:owner/my-tool"; 60 + } 61 + ``` 62 + 63 + Running `nix run .#write-flake` materialises all declared inputs into `flake.nix`. A flake check enforces the file stays in sync with the modules. 64 + 65 + ## Key Properties 66 + 67 + - **Modular:** Each module declares only its own dependencies. 68 + - **Composable:** Modules can be shared across projects — including their input declarations. 69 + - **Backend-agnostic:** The same module options generate `flake.nix`, `unflake.nix`, or `npins/` depending on the chosen backend. 70 + - **Standard Nix:** Uses the Nix module system — `lib.mkDefault`, priority overrides, conditional inputs — all work as expected. 71 + 72 + ## Real-world Usage 73 + 74 + Many Dendritic Nix layouts use flake-file because it helps with localization of concerns. 75 + Inputs are declared near where they are used, frequently in the same module. 76 + Decomissining the module also removes the inputs. 77 + 78 + Even when flake-file was born for flakes, its author [vic/vix](https://github.com/vic/vix) uses flake-file without flakes. The [`dev/`](https://github.com/vic/flake-file/blob/main/dev) directory in this repo eats its own cooking. [More examples on GitHub](https://github.com/search?q=%22vic%2Fflake-file%22+language%3ANix&type=code).
+87
docs/src/content/docs/guides/flake-modules.mdx
··· 1 + --- 2 + title: flakeModules 3 + description: All built-in flakeModules provided by flake-file. 4 + --- 5 + 6 + flake-file ships several flakeModules. Import only what you need. 7 + 8 + ## `flakeModules.default` 9 + 10 + The base module. Provides all `flake-file.*` options, the `write-flake` app, and flake checks. 11 + 12 + ```nix 13 + { inputs, ... }: { 14 + imports = [ inputs.flake-file.flakeModules.default ]; 15 + } 16 + ``` 17 + 18 + Source: [`modules/default.nix`](https://github.com/vic/flake-file/tree/main/modules/default.nix) 19 + 20 + ## `flakeModules.import-tree` 21 + 22 + Adds [import-tree](https://github.com/vic/import-tree) — auto-import all `.nix` files from a directory. 23 + 24 + Source: [`modules/import-tree.nix`](https://github.com/vic/flake-file/tree/main/modules/import-tree.nix) 25 + 26 + ## `flakeModules.dendritic` 27 + 28 + A batteries-included setup for [Dendritic](https://vic.github.io/dendrix/Dendritic.html) projects. Includes: 29 + 30 + - `flakeModules.default` 31 + - `flakeModules.import-tree` 32 + - [flake-parts](https://github.com/hercules-ci/flake-parts) 33 + - Default `outputs` set to `inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules)` 34 + 35 + ```nix 36 + { inputs, lib, ... }: { 37 + imports = [ inputs.flake-file.flakeModules.dendritic ]; 38 + 39 + flake-file = { 40 + description = "My Awesome Flake"; 41 + inputs.nixpkgs.url = lib.mkDefault "github:NixOS/nixpkgs/nixpkgs-unstable"; 42 + inputs.nixpkgs-lib.follows = "nixpkgs"; 43 + }; 44 + } 45 + ``` 46 + 47 + Source: [`modules/dendritic/default.nix`](https://github.com/vic/flake-file/tree/main/modules/dendritic/default.nix) 48 + 49 + ## `lib.flakeModules.flake-parts-builder` 50 + 51 + Integrates [flake-parts-builder](https://github.com/tsandrini/flake-parts-builder). Loads parts from a directory and reads each part's `_meta/` as flake-file configs. 52 + 53 + ```nix 54 + { inputs, ... }: { 55 + imports = [ 56 + (inputs.flake-file.lib.flakeModules.flake-parts-builder ./flake-parts) 57 + ]; 58 + } 59 + ``` 60 + 61 + See [flake-parts-builder guide](/guides/flake-parts-builder) for details. 62 + 63 + Source: [`modules/flake-parts-builder/default.nix`](https://github.com/vic/flake-file/tree/main/modules/flake-parts-builder/default.nix) 64 + 65 + ## `flakeModules.allfollow` 66 + 67 + Enables automatic `flake.lock` flattening using [spikespaz/allfollow](https://github.com/spikespaz/allfollow). 68 + 69 + Source: [`modules/prune-lock/allfollow.nix`](https://github.com/vic/flake-file/tree/main/modules/prune-lock/allfollow.nix) 70 + 71 + ## `flakeModules.nix-auto-follow` 72 + 73 + Enables automatic `flake.lock` flattening using [fzakaria/nix-auto-follow](https://github.com/fzakaria/nix-auto-follow). 74 + 75 + Source: [`modules/prune-lock/nix-auto-follow.nix`](https://github.com/vic/flake-file/tree/main/modules/prune-lock/nix-auto-follow.nix) 76 + 77 + ## `flakeModules.npins` 78 + 79 + Defines `flake-file` options for [npins](https://github.com/andir/npins)-based environments. Exposes `write-npins`. Supports `github`, `gitlab`, `channel`, `tarball`, and `git` schemes. Respects `follows` for deduplication. Prunes stale pins automatically. 80 + 81 + Source: [`modules/npins.nix`](https://github.com/vic/flake-file/tree/main/modules/npins.nix) 82 + 83 + ## `flakeModules.unflake` 84 + 85 + Defines `flake-file` options for [unflake](https://codeberg.org/goldstein/unflake)-based environments. Exposes `write-unflake`. 86 + 87 + Source: [`modules/unflake.nix`](https://github.com/vic/flake-file/tree/main/modules/unflake.nix)
+47
docs/src/content/docs/guides/flake-parts-builder.mdx
··· 1 + --- 2 + title: flake-parts-builder 3 + description: Incrementally add and remove flake-parts templates with flake-parts-builder. 4 + --- 5 + 6 + ## What is flake-parts-builder? 7 + 8 + [flake-parts-builder](https://github.com/tsandrini/flake-parts-builder) lets you add or remove templated flake-parts modules (called *parts*) at any time — not just at project initialisation. 9 + 10 + flake-file integrates with it so that each part can also declare its own `flake-file` inputs via a `_meta/` file. 11 + 12 + ## Setup 13 + 14 + ```nix 15 + { inputs, ... }: { 16 + imports = [ 17 + (inputs.flake-file.lib.flakeModules.flake-parts-builder ./flake-parts) 18 + ]; 19 + } 20 + ``` 21 + 22 + This: 23 + 24 + 1. Bootstraps flake-parts-builder from `./flake-parts`. 25 + 2. Auto-loads Nix modules from `./flake-parts`. 26 + 3. Reads each part's `./flake-parts/<part>/_meta/` directory as flake-file config. 27 + 28 + ## Adding parts 29 + 30 + ```shell 31 + nix run github:vic/flake-parts-builder/write-meta -- add --write-meta --parts systems,treefmt $PWD 32 + ``` 33 + 34 + > **Important:** Use `github:vic/flake-parts-builder/write-meta` until [flake-parts-builder#60](https://github.com/tsandrini/flake-parts-builder/pull/60) is merged. This branch writes each part's `_meta/` file so that flake-file can manage inputs declared by the part. 35 + 36 + > **Warning:** Only use the `add` subcommand. The `init` subcommand overwrites `flake.nix`, which is managed by flake-file. 37 + 38 + ## Regenerate after adding parts 39 + 40 + ```shell 41 + nix run ".#write-flake" 42 + nix flake check 43 + ``` 44 + 45 + ## How _meta/ works 46 + 47 + Each part directory may contain a `_meta/` subdirectory with Nix files that set `flake-file.*` options. When the `flake-parts-builder` module is imported, these files are automatically included in the module evaluation, so the part's dependencies are declared alongside the part itself.
+52
docs/src/content/docs/guides/hooks.mdx
··· 1 + --- 2 + title: Hooks 3 + description: Run commands after writing flake.nix or during flake check. 4 + --- 5 + 6 + ## Overview 7 + 8 + flake-file provides two hook lists: 9 + 10 + - **`flake-file.write-hooks`** — commands executed after `write-flake` writes `flake.nix`. 11 + - **`flake-file.check-hooks`** — commands executed during `nix flake check`. 12 + 13 + Each hook is an attrset with an `index` (for ordering) and a command. 14 + 15 + ## write-hooks 16 + 17 + Use write-hooks to trigger follow-up actions whenever `flake.nix` is regenerated — for example, updating a lock file or reformatting. 18 + 19 + ```nix 20 + { pkgs, ... }: { 21 + flake-file.write-hooks = [ 22 + { 23 + index = 10; 24 + exec = "${pkgs.nix}/bin/nix flake update"; 25 + } 26 + ]; 27 + } 28 + ``` 29 + 30 + Hooks run in ascending `index` order, so you can coordinate between modules without knowing the full list. 31 + 32 + ## check-hooks 33 + 34 + Use check-hooks to add extra validation during `nix flake check` — for example, checking that a derived file is up to date. 35 + 36 + ```nix 37 + { pkgs, ... }: { 38 + flake-file.check-hooks = [ 39 + { 40 + index = 10; 41 + exec = "${pkgs.my-linter}/bin/my-linter --check ."; 42 + } 43 + ]; 44 + } 45 + ``` 46 + 47 + ## Practical uses 48 + 49 + - Run `nix flake update` automatically after regeneration. 50 + - Reformat `flake.nix` with a formatter (see `flake-file.formatter`). 51 + - Validate generated files in CI via check-hooks. 52 + - Trigger [allfollow or nix-auto-follow](/guides/lock-flattening) to flatten the lock file.
+51
docs/src/content/docs/guides/lock-flattening.mdx
··· 1 + --- 2 + title: Lock Flattening 3 + description: Automatically flatten flake.lock to reduce dependency duplication. 4 + --- 5 + 6 + ## The Problem 7 + 8 + Nix flakes fetch every input's own lock file, which can result in many copies of the same package set (e.g. multiple `nixpkgs` versions) being downloaded and stored. Flattening forces all inputs to share common dependencies. 9 + 10 + ## Built-in Modules 11 + 12 + flake-file ships support for two established flattening tools: 13 + 14 + ### allfollow 15 + 16 + [spikespaz/allfollow](https://github.com/spikespaz/allfollow) automatically adds `follows` entries for all transitive inputs. 17 + 18 + ```nix 19 + { inputs, ... }: { 20 + imports = [ inputs.flake-file.flakeModules.allfollow ]; 21 + } 22 + ``` 23 + 24 + Source: [`modules/prune-lock/allfollow.nix`](https://github.com/vic/flake-file/tree/main/modules/prune-lock/allfollow.nix) 25 + 26 + ### nix-auto-follow 27 + 28 + [fzakaria/nix-auto-follow](https://github.com/fzakaria/nix-auto-follow) detects duplicate inputs and injects `follows` for them. 29 + 30 + ```nix 31 + { inputs, ... }: { 32 + imports = [ inputs.flake-file.flakeModules.nix-auto-follow ]; 33 + } 34 + ``` 35 + 36 + Source: [`modules/prune-lock/nix-auto-follow.nix`](https://github.com/vic/flake-file/tree/main/modules/prune-lock/nix-auto-follow.nix) 37 + 38 + ## How it integrates 39 + 40 + Both modules configure `flake-file.prune-lock` options, which instruct `write-flake` to run the flattener after writing `flake.nix`. You can also use the raw options for a custom tool: 41 + 42 + ```nix 43 + { pkgs, ... }: { 44 + flake-file.prune-lock = { 45 + enable = true; 46 + program = pkgs: pkgs.my-flattener; 47 + }; 48 + } 49 + ``` 50 + 51 + See the [Options Reference](/reference/options) for the full `prune-lock` schema.
+60
docs/src/content/docs/guides/outputs.mdx
··· 1 + --- 2 + title: The outputs Function 3 + description: How flake-file.outputs works and best practices for using it. 4 + --- 5 + 6 + ## What is flake-file.outputs? 7 + 8 + The `flake-file.outputs` option is a **literal Nix string** that is placed verbatim as the `outputs` attribute in the generated `flake.nix`: 9 + 10 + ```nix 11 + # generated flake.nix (simplified) 12 + { 13 + outputs = <your flake-file.outputs value here>; 14 + } 15 + ``` 16 + 17 + ## The Default 18 + 19 + The default value is: 20 + 21 + ```nix 22 + inputs: import ./outputs.nix inputs 23 + ``` 24 + 25 + This is deliberately minimal — it delegates all logic to `outputs.nix`, keeping `flake.nix` as a pure dependency manifest. 26 + 27 + ## Why Keep the Default? 28 + 29 + `flake.nix` is a generated file. If you embed complex Nix logic in `flake-file.outputs`, you are putting business logic in a string option, which is hard to read, impossible to type-check, and easy to break. 30 + 31 + The recommended split: 32 + 33 + - **`flake.nix`** — generated, declares inputs and nixConfig only. 34 + - **`outputs.nix`** — hand-written, contains all your Nix logic. 35 + 36 + ## Overriding for a One-liner 37 + 38 + The only reasonable case for overriding `outputs` is a legitimate one-liner — for example, the `dendritic` module sets: 39 + 40 + ```nix 41 + flake-file.outputs = "inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules)"; 42 + ``` 43 + 44 + This is still a single expression with no embedded logic. 45 + 46 + ## What You Cannot Do 47 + 48 + You cannot assign a Nix function value to `flake-file.outputs`. A Nix function cannot be serialised to a string. This option exists *only* for a literal code string. 49 + 50 + ```nix 51 + # WRONG — this will fail 52 + flake-file.outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { }; 53 + ``` 54 + 55 + Always set it to a string: 56 + 57 + ```nix 58 + # Correct 59 + flake-file.outputs = ''inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { }''; 60 + ```
+65
docs/src/content/docs/guides/templates.mdx
··· 1 + --- 2 + title: Templates 3 + description: Ready-made project templates for flake-file. 4 + --- 5 + 6 + flake-file ships several Nix flake templates. Initialise any of them with: 7 + 8 + ```shell 9 + nix flake init -t github:vic/flake-file#<template> 10 + ``` 11 + 12 + ## `default` 13 + 14 + A minimal, explicit setup without extra framework dependencies. 15 + 16 + ```nix 17 + # flake-parts module — see templates/default 18 + { inputs, ... }: { 19 + imports = [ inputs.flake-file.flakeModules.default ]; 20 + 21 + flake-file.inputs = { 22 + flake-file.url = "github:vic/flake-file"; 23 + flake-parts.url = "github:hercules-ci/flake-parts"; 24 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 25 + }; 26 + 27 + systems = inputs.nixpkgs.lib.systems.flakeExposed; 28 + } 29 + ``` 30 + 31 + > Run `nix run .#write-flake` to generate `flake.nix`. 32 + 33 + ## `dendritic` 34 + 35 + Includes `flakeModules.dendritic` — the recommended starting point for new [Dendritic](https://vic.github.io/dendrix/Dendritic.html) projects. Comes with import-tree, flake-parts, and sensible defaults. 36 + 37 + ```shell 38 + nix flake init -t github:vic/flake-file#dendritic 39 + nix run ".#write-flake" 40 + nix flake check 41 + ``` 42 + 43 + ## `parts` 44 + 45 + Uses `lib.flakeModules.flake-parts-builder` for projects that manage their flake-parts modules with [flake-parts-builder](https://github.com/tsandrini/flake-parts-builder). 46 + 47 + ## `npins` 48 + 49 + For **non-flake** (stable Nix) environments. Uses [npins](https://github.com/andir/npins) to pin inputs. Supports channels, GitHub, GitLab, tarballs, and git repos. Recommended for new non-flake projects. 50 + 51 + ```shell 52 + nix flake init -t github:vic/flake-file#npins 53 + ``` 54 + 55 + ## `unflake` 56 + 57 + For **non-flake** (stable Nix) environments. Uses [goldstein/unflake](https://codeberg.org/goldstein/unflake) to pin inputs. 58 + 59 + ```shell 60 + nix flake init -t github:vic/flake-file#unflake 61 + ``` 62 + 63 + ## Tips 64 + 65 + > **Tip:** You can use the `write-flake` app as part of a devshell command or a git pre-commit hook to keep `flake.nix` always up to date.
+61
docs/src/content/docs/index.mdx
··· 1 + --- 2 + title: flake-file 3 + description: Generate flake.nix/unflake.nix/npins from modular Nix options. 4 + template: splash 5 + hero: 6 + tagline: | 7 + Your flake.nix, made modular and maintainable.<br /> 8 + Use the <strong>real</strong> Nix language to define your inputs. 9 + image: 10 + html: | 11 + <img width="400" height="400" alt="ouroboros" src="https://github.com/user-attachments/assets/2c0b2208-2f65-4fb3-b9df-5cf78dcad0e7" /> 12 + actions: 13 + - text: Quick Start 14 + link: /tutorials/quick-start 15 + icon: right-arrow 16 + - text: What is flake-file? 17 + link: /explanation/what-is-flake-file 18 + variant: minimal 19 + - text: Overview 20 + link: /overview 21 + variant: minimal 22 + - text: Source Code 23 + link: https://github.com/vic/flake-file 24 + icon: github 25 + variant: secondary 26 + --- 27 + 28 + import { Card, CardGrid, Aside } from '@astrojs/starlight/components'; 29 + 30 + **flake-file** lets you generate a clean, maintainable `flake.nix` from modular Nix options. 31 + 32 + Define inputs close to where they are used — in any Nix module — then with a single command, write `flake.nix` or `unflake.nix` or `npins`. 33 + 34 + 35 + <Aside type="tip" title="With or without flakes."> 36 + Despite the original flake-oriented name, `flake-file` now **also** works without flakes on stable Nix. 37 + </Aside> 38 + 39 + <Aside title="Use the real Nix language on your inputs"> 40 + Ever wanted to interpolate a string just to discover inputs are **NOT REAL** Nix expressions? 41 + 42 + **Q**: What language is flake.nix written in? [nix#4945](https://github.com/NixOS/nix/issues/4945) 43 + 44 + **A**: It's a subset of Nix that doesn't allow computation in the flake metadata attributes. 45 + </Aside> 46 + 47 + <CardGrid> 48 + <Card title="Modular Inputs" icon="puzzle"> 49 + Define `flake.nix` inputs in separate modules using the Nix module system and the **real** Nix language features. Use `lib.mkDefault` or interpolate Nix expressions, etc. 50 + </Card> 51 + <Card title="Single Command Regeneration" icon="rocket"> 52 + Run `nix run .#write-flake` to regenerate `flake.nix` from your options. A flake check enforces that files stay in sync. 53 + Also provides `nix-shell` commands for stable Nix world. 54 + </Card> 55 + <Card title="Lock Flattening" icon="list-format"> 56 + Built-in support for automatic `flake.lock` flattening via `allfollow` or `nix-auto-follow`. 57 + </Card> 58 + <Card title="Multiple Backends" icon="setting"> 59 + Generate `flake.nix`, `unflake.nix`, or `npins/` from the same module options. Switch backends without rewriting your modules. 60 + </Card> 61 + </CardGrid>
+76
docs/src/content/docs/overview.mdx
··· 1 + --- 2 + title: Overview 3 + description: Everything flake-file. 4 + --- 5 + 6 + import { Card, CardGrid, LinkButton } from '@astrojs/starlight/components'; 7 + 8 + ## Core Idea 9 + 10 + flake-file treats `flake.nix` as a generated artifact. You declare inputs and settings as Nix module options, then regenerate the file whenever those declarations change. 11 + 12 + <CardGrid> 13 + <Card title="What is flake-file?" icon="open-book"> 14 + Understand the problem it solves, who it's for, and how it compares to a plain `flake.nix`. 15 + <LinkButton href="/explanation/what-is-flake-file" variant="minimal" icon="right-arrow">Learn More</LinkButton> 16 + </Card> 17 + <Card title="How it Works" icon="setting"> 18 + The module system, option schema, the `write-flake` app, and the `outputs` function. 19 + <LinkButton href="/explanation/how-it-works" variant="minimal" icon="right-arrow">Learn More</LinkButton> 20 + </Card> 21 + </CardGrid> 22 + 23 + ## Getting Started 24 + 25 + <CardGrid> 26 + <Card title="Quick Start" icon="rocket"> 27 + Bootstrap a new project with the `dendritic` template and generate your first `flake.nix` in minutes. 28 + <LinkButton href="/tutorials/quick-start" variant="minimal" icon="right-arrow">Learn More</LinkButton> 29 + </Card> 30 + <Card title="Migration Guide" icon="pencil"> 31 + Step-by-step guide for adopting flake-file in an existing flake-parts project. 32 + <LinkButton href="/tutorials/migrate" variant="minimal" icon="right-arrow">Learn More</LinkButton> 33 + </Card> 34 + <Card title="Bootstrapping" icon="add-document"> 35 + Generate a first `flake.nix` without any existing flake using a one-shot bootstrap command. 36 + <LinkButton href="/tutorials/bootstrap" variant="minimal" icon="right-arrow">Learn More</LinkButton> 37 + </Card> 38 + </CardGrid> 39 + 40 + ## Guides 41 + 42 + <CardGrid> 43 + <Card title="flakeModules" icon="puzzle"> 44 + All built-in flakeModules: `default`, `dendritic`, `import-tree`, `npins`, `unflake`, `allfollow`, `nix-auto-follow`, and `flake-parts-builder`. 45 + <LinkButton href="/guides/flake-modules" variant="minimal" icon="right-arrow">Learn More</LinkButton> 46 + </Card> 47 + <Card title="Templates" icon="document"> 48 + Ready-made project templates: `default`, `dendritic`, `parts`, `npins`, and `unflake`. 49 + <LinkButton href="/guides/templates" variant="minimal" icon="right-arrow">Learn More</LinkButton> 50 + </Card> 51 + <Card title="Outputs Function" icon="seti:config"> 52 + How `flake-file.outputs` works and why you should keep it as the default one-liner. 53 + <LinkButton href="/guides/outputs" variant="minimal" icon="right-arrow">Learn More</LinkButton> 54 + </Card> 55 + <Card title="Hooks" icon="list-format"> 56 + Run commands after writing or during check with `write-hooks` and `check-hooks`. 57 + <LinkButton href="/guides/hooks" variant="minimal" icon="right-arrow">Learn More</LinkButton> 58 + </Card> 59 + <Card title="Lock Flattening" icon="random"> 60 + Automatically flatten `flake.lock` with `allfollow` or `nix-auto-follow`. 61 + <LinkButton href="/guides/lock-flattening" variant="minimal" icon="right-arrow">Learn More</LinkButton> 62 + </Card> 63 + <Card title="flake-parts-builder" icon="add-document"> 64 + Incrementally add and remove flake-parts templates with flake-parts-builder integration. 65 + <LinkButton href="/guides/flake-parts-builder" variant="minimal" icon="right-arrow">Learn More</LinkButton> 66 + </Card> 67 + </CardGrid> 68 + 69 + ## Reference 70 + 71 + <CardGrid> 72 + <Card title="All Options" icon="document"> 73 + Complete reference for every `flake-file.*` module option. 74 + <LinkButton href="/reference/options" variant="minimal" icon="right-arrow">Learn More</LinkButton> 75 + </Card> 76 + </CardGrid>
+78
docs/src/content/docs/reference/options.mdx
··· 1 + --- 2 + title: Options Reference 3 + description: Complete reference for all flake-file.* module options. 4 + --- 5 + 6 + All options are set under the `flake-file` namespace in any flake-parts module. 7 + 8 + See the source: [`modules/options/default.nix`](https://github.com/vic/flake-file/blob/main/modules/options/default.nix) 9 + 10 + ## Top-level Options 11 + 12 + | Option | Type | Description | 13 + |---|---|---| 14 + | `flake-file.description` | `str` | Flake description string | 15 + | `flake-file.nixConfig` | `attrs` | Nix binary cache / substituter config (free-form attrset) | 16 + | `flake-file.outputs` | `str` | Literal Nix expression for the `outputs` function | 17 + | `flake-file.formatter` | `pkgs -> drv` | Function producing the formatter used on the generated file | 18 + | `flake-file.do-not-edit` | `str` | Header comment written at the top of the generated file | 19 + 20 + ## Input Options 21 + 22 + Each input is declared under `flake-file.inputs.<name>`. 23 + 24 + | Option | Type | Description | 25 + |---|---|---| 26 + | `flake-file.inputs.<name>.url` | `str` | Source URL — e.g. `github:owner/repo` | 27 + | `flake-file.inputs.<name>.type` | `str` | Reference type — `github`, `path`, `git`, etc. | 28 + | `flake-file.inputs.<name>.owner` | `str` | Owner (for typed VCS refs) | 29 + | `flake-file.inputs.<name>.repo` | `str` | Repository name | 30 + | `flake-file.inputs.<name>.path` | `str` | Local path reference | 31 + | `flake-file.inputs.<name>.id` | `str` | Flake registry id | 32 + | `flake-file.inputs.<name>.dir` | `str` | Subdirectory within repo or path | 33 + | `flake-file.inputs.<name>.narHash` | `str` | NAR hash pin | 34 + | `flake-file.inputs.<name>.rev` | `str` | Commit hash pin | 35 + | `flake-file.inputs.<name>.ref` | `str` | Branch or tag pin | 36 + | `flake-file.inputs.<name>.host` | `str` | Custom host for git forges | 37 + | `flake-file.inputs.<name>.submodules` | `bool` | Whether to fetch git submodules | 38 + | `flake-file.inputs.<name>.flake` | `bool` | Is the input a flake? (default: `true`) | 39 + | `flake-file.inputs.<name>.follows` | `str` | Follow another input's resolved value | 40 + | `flake-file.inputs.<name>.inputs.<dep>.follows` | `str` | Nested transitive follow | 41 + | `flake-file.inputs.<name>.inputs.<dep>.inputs...` | `…` | Recursively follow deeper transitive deps | 42 + 43 + ### Example 44 + 45 + ```nix 46 + flake-file = { 47 + description = "my awesome flake"; 48 + nixConfig = {}; 49 + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 50 + inputs.nixpkgs-lib.follows = "nixpkgs"; 51 + inputs.my-tool.flake = false; 52 + inputs.my-tool.url = "github:owner/my-tool"; 53 + inputs.dep.inputs.nixpkgs.follows = "nixpkgs"; 54 + }; 55 + ``` 56 + 57 + ## Hook Options 58 + 59 + | Option | Type | Description | 60 + |---|---|---| 61 + | `flake-file.write-hooks` | `listOf hookType` | Ordered hooks run after `write-flake` writes the file | 62 + | `flake-file.check-hooks` | `listOf hookType` | Ordered hooks run during flake check | 63 + 64 + Each hook has: 65 + 66 + | Field | Description | 67 + |---|---| 68 + | `index` | Integer — lower index runs first | 69 + | `exec` | Shell command string to execute | 70 + 71 + ## Lock Flattening Options 72 + 73 + | Option | Type | Description | 74 + |---|---|---| 75 + | `flake-file.prune-lock.enable` | `bool` | Enable automatic `flake.lock` pruning after writing | 76 + | `flake-file.prune-lock.program` | `pkgs -> drv` | Function building the lock-pruning executable | 77 + 78 + See [Lock Flattening guide](/guides/lock-flattening) for usage.
+38
docs/src/content/docs/tutorials/bootstrap.mdx
··· 1 + --- 2 + title: Bootstrapping 3 + description: Generate a first flake.nix without any existing flake. 4 + --- 5 + 6 + ## The Bootstrap Command 7 + 8 + You can create a `flake.nix` from scratch — without running inside an existing flake — using a one-shot bootstrap command: 9 + 10 + ```shell 11 + # Write a minimal bootstrap module 12 + echo '{ flake-file.inputs.flake-file.url = "github:vic/flake-file"; }' > bootstrap.nix 13 + 14 + # Generate flake.nix 15 + nix-shell https://github.com/vic/flake-file/archive/refs/heads/main.zip \ 16 + -A flake-file.sh \ 17 + --run write-flake \ 18 + --arg modules ./bootstrap.nix 19 + ``` 20 + 21 + Replace `write-flake` with `write-inputs`, `write-unflake`, or `write-npins` to target a different backend. 22 + 23 + ## Using a modules directory 24 + 25 + `bootstrap.nix` can also be a directory. All `.nix` files in it will be auto-imported: 26 + 27 + ```shell 28 + nix-shell https://github.com/vic/flake-file/archive/refs/heads/main.zip \ 29 + -A flake-file.sh \ 30 + --run write-flake \ 31 + --arg modules ./modules 32 + ``` 33 + 34 + This is useful when you already have module files and just need the initial `flake.nix` to be generated before Nix can evaluate the flake itself. 35 + 36 + ## Next Steps 37 + 38 + After generating `flake.nix`, continue with the standard [Quick Start](/tutorials/quick-start) flow.
+85
docs/src/content/docs/tutorials/migrate.mdx
··· 1 + --- 2 + title: Migration Guide 3 + description: Adopt flake-file in an existing flake-parts project. 4 + --- 5 + 6 + ## Prerequisites 7 + 8 + Your project must already use [flake-parts](https://flake.parts). If it doesn't, migrate to flake-parts first. 9 + 10 + ## Steps 11 + 12 + ### 1. Add the flake-file input 13 + 14 + In your current `flake.nix`, add: 15 + 16 + ```nix 17 + flake-file.url = "github:vic/flake-file"; 18 + ``` 19 + 20 + ### 2. Move outputs to outputs.nix 21 + 22 + Copy the body of your `outputs` function into a new file `./outputs.nix`: 23 + 24 + ```nix 25 + # outputs.nix 26 + inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { 27 + imports = [ 28 + ./modules/inputs.nix 29 + # Add more modules here as you split things up. 30 + ]; 31 + } 32 + ``` 33 + 34 + ### 3. Create inputs.nix 35 + 36 + Copy your current `flake.nix` input declarations into a flake-parts module: 37 + 38 + ```nix 39 + # modules/inputs.nix 40 + { inputs, ... }: { 41 + imports = [ 42 + inputs.flake-file.flakeModules.default 43 + ]; 44 + 45 + flake-file = { 46 + description = "Your flake description"; 47 + inputs = { 48 + flake-file.url = "github:vic/flake-file"; 49 + # ... all your original inputs here 50 + }; 51 + nixConfig = { }; # if you had any 52 + }; 53 + } 54 + ``` 55 + 56 + > **Important:** Run `git add` so that the new files are visible to Nix. 57 + 58 + ### 4. Back up and regenerate 59 + 60 + ```shell 61 + cp flake.nix flake.nix.bak 62 + nix run .#write-flake 63 + ``` 64 + 65 + ### 5. Verify 66 + 67 + ```shell 68 + cat flake.nix # inspect the generated file 69 + nix flake check # verify everything is in sync 70 + rm flake.nix.bak # clean up if happy 71 + ``` 72 + 73 + ## Splitting inputs across modules 74 + 75 + Once migrated, you can distribute input declarations to the modules that use them: 76 + 77 + ```nix 78 + # modules/my-tool.nix 79 + { inputs, lib, ... }: { 80 + flake-file.inputs.my-tool.url = lib.mkDefault "github:owner/my-tool"; 81 + imports = lib.optionals (inputs ? my-tool) [ inputs.my-tool.flakeModule ]; 82 + } 83 + ``` 84 + 85 + Remove the entry from `modules/inputs.nix` and regenerate. The result is the same `flake.nix`, but each module is self-contained.
+65
docs/src/content/docs/tutorials/quick-start.mdx
··· 1 + --- 2 + title: Quick Start 3 + description: Bootstrap a new project with flake-file in minutes. 4 + --- 5 + 6 + ## Prerequisites 7 + 8 + - Nix with flakes enabled. 9 + - An internet connection to fetch the template. 10 + 11 + ## Create a new project 12 + 13 + Use the `dendritic` template — it sets up a full [flake-parts](https://flake.parts) + [import-tree](https://github.com/vic/import-tree) environment with flake-file already wired in. 14 + 15 + ```shell 16 + nix flake init -t github:vic/flake-file#dendritic 17 + ``` 18 + 19 + ## Generate flake.nix 20 + 21 + ```shell 22 + nix run ".#write-flake" 23 + ``` 24 + 25 + This evaluates your modules, merges all `flake-file.*` options, and writes `flake.nix`. 26 + 27 + ```shell 28 + cat flake.nix # inspect the generated file 29 + ``` 30 + 31 + ## Verify 32 + 33 + ```shell 34 + nix flake check 35 + ``` 36 + 37 + This confirms that `flake.nix` is up to date with the current module state. Run this in CI. 38 + 39 + ## Add your first input 40 + 41 + Open (or create) a module under `./modules/`. Declare any dependency close to where it is used: 42 + 43 + ```nix 44 + # modules/my-tool.nix 45 + { inputs, lib, ... }: { 46 + flake-file.inputs.my-tool.url = lib.mkDefault "github:owner/my-tool"; 47 + 48 + # Use the input once it's in flake.nix 49 + imports = lib.optionals (inputs ? my-tool) [ 50 + inputs.my-tool.flakeModule 51 + ]; 52 + } 53 + ``` 54 + 55 + Then regenerate: 56 + 57 + ```shell 58 + nix run ".#write-flake" 59 + ``` 60 + 61 + ## Next Steps 62 + 63 + - [Migration Guide](/tutorials/migrate) — adopt flake-file in an existing project. 64 + - [flakeModules](/guides/flake-modules) — explore all built-in modules. 65 + - [Options Reference](/reference/options) — every `flake-file.*` option explained.
+3
docs/src/styles/custom.css
··· 1 + :root { 2 + --sl-font: 'Victor Mono'; 3 + }
+5
docs/tsconfig.json
··· 1 + { 2 + "extends": "astro/tsconfigs/strict", 3 + "include": [".astro/types.d.ts", "**/*"], 4 + "exclude": ["dist"] 5 + }