my website
0
fork

Configure Feed

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

feat: update layout

+3131 -511
+9 -5
astro.config.mjs
··· 1 1 // @ts-check 2 - import { defineConfig } from 'astro/config'; 3 - import mdx from '@astrojs/mdx'; 4 - import sitemap from '@astrojs/sitemap'; 2 + import { defineConfig } from "astro/config"; 3 + import sitemap from "@astrojs/sitemap"; 5 4 6 5 // https://astro.build/config 7 6 export default defineConfig({ 8 - site: 'https://example.com', 9 - integrations: [mdx(), sitemap()], 7 + site: "https://www.vixalien.com", 8 + integrations: [sitemap()], 9 + redirects: { 10 + "/blog": "/", 11 + "/posts": "/", 12 + "/feed": "/rss.xml", 13 + }, 10 14 });
+2253
deno.lock
··· 1 + { 2 + "version": "4", 3 + "specifiers": { 4 + "npm:@astrojs/rss@^4.0.11": "4.0.11", 5 + "npm:@astrojs/sitemap@^3.2.1": "3.2.1", 6 + "npm:astro@^5.1.3": "5.1.3_vite@6.0.7_zod@3.24.1" 7 + }, 8 + "npm": { 9 + "@astrojs/compiler@2.10.3": { 10 + "integrity": "sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==" 11 + }, 12 + "@astrojs/internal-helpers@0.4.2": { 13 + "integrity": "sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==" 14 + }, 15 + "@astrojs/markdown-remark@6.0.1": { 16 + "integrity": "sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==", 17 + "dependencies": [ 18 + "@astrojs/prism", 19 + "github-slugger", 20 + "hast-util-from-html", 21 + "hast-util-to-text", 22 + "import-meta-resolve", 23 + "js-yaml@4.1.0", 24 + "mdast-util-definitions", 25 + "rehype-raw", 26 + "rehype-stringify", 27 + "remark-gfm", 28 + "remark-parse", 29 + "remark-rehype", 30 + "remark-smartypants", 31 + "shiki", 32 + "unified", 33 + "unist-util-remove-position", 34 + "unist-util-visit", 35 + "unist-util-visit-parents", 36 + "vfile" 37 + ] 38 + }, 39 + "@astrojs/prism@3.2.0": { 40 + "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", 41 + "dependencies": [ 42 + "prismjs" 43 + ] 44 + }, 45 + "@astrojs/rss@4.0.11": { 46 + "integrity": "sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==", 47 + "dependencies": [ 48 + "fast-xml-parser", 49 + "kleur@4.1.5" 50 + ] 51 + }, 52 + "@astrojs/sitemap@3.2.1": { 53 + "integrity": "sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==", 54 + "dependencies": [ 55 + "sitemap", 56 + "stream-replace-string", 57 + "zod" 58 + ] 59 + }, 60 + "@astrojs/telemetry@3.2.0": { 61 + "integrity": "sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==", 62 + "dependencies": [ 63 + "ci-info", 64 + "debug", 65 + "dlv", 66 + "dset", 67 + "is-docker", 68 + "is-wsl", 69 + "which-pm-runs" 70 + ] 71 + }, 72 + "@babel/helper-string-parser@7.25.9": { 73 + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" 74 + }, 75 + "@babel/helper-validator-identifier@7.25.9": { 76 + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" 77 + }, 78 + "@babel/parser@7.26.3": { 79 + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", 80 + "dependencies": [ 81 + "@babel/types" 82 + ] 83 + }, 84 + "@babel/types@7.26.3": { 85 + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", 86 + "dependencies": [ 87 + "@babel/helper-string-parser", 88 + "@babel/helper-validator-identifier" 89 + ] 90 + }, 91 + "@emnapi/runtime@1.3.1": { 92 + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", 93 + "dependencies": [ 94 + "tslib" 95 + ] 96 + }, 97 + "@esbuild/aix-ppc64@0.21.5": { 98 + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==" 99 + }, 100 + "@esbuild/aix-ppc64@0.24.2": { 101 + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==" 102 + }, 103 + "@esbuild/android-arm64@0.21.5": { 104 + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==" 105 + }, 106 + "@esbuild/android-arm64@0.24.2": { 107 + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==" 108 + }, 109 + "@esbuild/android-arm@0.21.5": { 110 + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==" 111 + }, 112 + "@esbuild/android-arm@0.24.2": { 113 + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==" 114 + }, 115 + "@esbuild/android-x64@0.21.5": { 116 + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==" 117 + }, 118 + "@esbuild/android-x64@0.24.2": { 119 + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==" 120 + }, 121 + "@esbuild/darwin-arm64@0.21.5": { 122 + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==" 123 + }, 124 + "@esbuild/darwin-arm64@0.24.2": { 125 + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==" 126 + }, 127 + "@esbuild/darwin-x64@0.21.5": { 128 + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==" 129 + }, 130 + "@esbuild/darwin-x64@0.24.2": { 131 + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==" 132 + }, 133 + "@esbuild/freebsd-arm64@0.21.5": { 134 + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==" 135 + }, 136 + "@esbuild/freebsd-arm64@0.24.2": { 137 + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==" 138 + }, 139 + "@esbuild/freebsd-x64@0.21.5": { 140 + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==" 141 + }, 142 + "@esbuild/freebsd-x64@0.24.2": { 143 + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==" 144 + }, 145 + "@esbuild/linux-arm64@0.21.5": { 146 + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==" 147 + }, 148 + "@esbuild/linux-arm64@0.24.2": { 149 + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==" 150 + }, 151 + "@esbuild/linux-arm@0.21.5": { 152 + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==" 153 + }, 154 + "@esbuild/linux-arm@0.24.2": { 155 + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==" 156 + }, 157 + "@esbuild/linux-ia32@0.21.5": { 158 + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==" 159 + }, 160 + "@esbuild/linux-ia32@0.24.2": { 161 + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==" 162 + }, 163 + "@esbuild/linux-loong64@0.21.5": { 164 + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==" 165 + }, 166 + "@esbuild/linux-loong64@0.24.2": { 167 + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==" 168 + }, 169 + "@esbuild/linux-mips64el@0.21.5": { 170 + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==" 171 + }, 172 + "@esbuild/linux-mips64el@0.24.2": { 173 + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==" 174 + }, 175 + "@esbuild/linux-ppc64@0.21.5": { 176 + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==" 177 + }, 178 + "@esbuild/linux-ppc64@0.24.2": { 179 + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==" 180 + }, 181 + "@esbuild/linux-riscv64@0.21.5": { 182 + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==" 183 + }, 184 + "@esbuild/linux-riscv64@0.24.2": { 185 + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==" 186 + }, 187 + "@esbuild/linux-s390x@0.21.5": { 188 + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==" 189 + }, 190 + "@esbuild/linux-s390x@0.24.2": { 191 + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==" 192 + }, 193 + "@esbuild/linux-x64@0.21.5": { 194 + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==" 195 + }, 196 + "@esbuild/linux-x64@0.24.2": { 197 + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==" 198 + }, 199 + "@esbuild/netbsd-arm64@0.24.2": { 200 + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==" 201 + }, 202 + "@esbuild/netbsd-x64@0.21.5": { 203 + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==" 204 + }, 205 + "@esbuild/netbsd-x64@0.24.2": { 206 + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==" 207 + }, 208 + "@esbuild/openbsd-arm64@0.24.2": { 209 + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==" 210 + }, 211 + "@esbuild/openbsd-x64@0.21.5": { 212 + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==" 213 + }, 214 + "@esbuild/openbsd-x64@0.24.2": { 215 + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==" 216 + }, 217 + "@esbuild/sunos-x64@0.21.5": { 218 + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==" 219 + }, 220 + "@esbuild/sunos-x64@0.24.2": { 221 + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==" 222 + }, 223 + "@esbuild/win32-arm64@0.21.5": { 224 + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==" 225 + }, 226 + "@esbuild/win32-arm64@0.24.2": { 227 + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==" 228 + }, 229 + "@esbuild/win32-ia32@0.21.5": { 230 + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==" 231 + }, 232 + "@esbuild/win32-ia32@0.24.2": { 233 + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==" 234 + }, 235 + "@esbuild/win32-x64@0.21.5": { 236 + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==" 237 + }, 238 + "@esbuild/win32-x64@0.24.2": { 239 + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==" 240 + }, 241 + "@img/sharp-darwin-arm64@0.33.5": { 242 + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 243 + "dependencies": [ 244 + "@img/sharp-libvips-darwin-arm64" 245 + ] 246 + }, 247 + "@img/sharp-darwin-x64@0.33.5": { 248 + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 249 + "dependencies": [ 250 + "@img/sharp-libvips-darwin-x64" 251 + ] 252 + }, 253 + "@img/sharp-libvips-darwin-arm64@1.0.4": { 254 + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==" 255 + }, 256 + "@img/sharp-libvips-darwin-x64@1.0.4": { 257 + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==" 258 + }, 259 + "@img/sharp-libvips-linux-arm64@1.0.4": { 260 + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==" 261 + }, 262 + "@img/sharp-libvips-linux-arm@1.0.5": { 263 + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==" 264 + }, 265 + "@img/sharp-libvips-linux-s390x@1.0.4": { 266 + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==" 267 + }, 268 + "@img/sharp-libvips-linux-x64@1.0.4": { 269 + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==" 270 + }, 271 + "@img/sharp-libvips-linuxmusl-arm64@1.0.4": { 272 + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==" 273 + }, 274 + "@img/sharp-libvips-linuxmusl-x64@1.0.4": { 275 + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==" 276 + }, 277 + "@img/sharp-linux-arm64@0.33.5": { 278 + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 279 + "dependencies": [ 280 + "@img/sharp-libvips-linux-arm64" 281 + ] 282 + }, 283 + "@img/sharp-linux-arm@0.33.5": { 284 + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 285 + "dependencies": [ 286 + "@img/sharp-libvips-linux-arm" 287 + ] 288 + }, 289 + "@img/sharp-linux-s390x@0.33.5": { 290 + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 291 + "dependencies": [ 292 + "@img/sharp-libvips-linux-s390x" 293 + ] 294 + }, 295 + "@img/sharp-linux-x64@0.33.5": { 296 + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 297 + "dependencies": [ 298 + "@img/sharp-libvips-linux-x64" 299 + ] 300 + }, 301 + "@img/sharp-linuxmusl-arm64@0.33.5": { 302 + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 303 + "dependencies": [ 304 + "@img/sharp-libvips-linuxmusl-arm64" 305 + ] 306 + }, 307 + "@img/sharp-linuxmusl-x64@0.33.5": { 308 + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 309 + "dependencies": [ 310 + "@img/sharp-libvips-linuxmusl-x64" 311 + ] 312 + }, 313 + "@img/sharp-wasm32@0.33.5": { 314 + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 315 + "dependencies": [ 316 + "@emnapi/runtime" 317 + ] 318 + }, 319 + "@img/sharp-win32-ia32@0.33.5": { 320 + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==" 321 + }, 322 + "@img/sharp-win32-x64@0.33.5": { 323 + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==" 324 + }, 325 + "@jridgewell/sourcemap-codec@1.5.0": { 326 + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" 327 + }, 328 + "@nodelib/fs.scandir@2.1.5": { 329 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 330 + "dependencies": [ 331 + "@nodelib/fs.stat", 332 + "run-parallel" 333 + ] 334 + }, 335 + "@nodelib/fs.stat@2.0.5": { 336 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" 337 + }, 338 + "@nodelib/fs.walk@1.2.8": { 339 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 340 + "dependencies": [ 341 + "@nodelib/fs.scandir", 342 + "fastq" 343 + ] 344 + }, 345 + "@oslojs/encoding@1.1.0": { 346 + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==" 347 + }, 348 + "@rollup/pluginutils@5.1.4": { 349 + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", 350 + "dependencies": [ 351 + "@types/estree", 352 + "estree-walker@2.0.2", 353 + "picomatch@4.0.2" 354 + ] 355 + }, 356 + "@rollup/rollup-android-arm-eabi@4.30.1": { 357 + "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==" 358 + }, 359 + "@rollup/rollup-android-arm64@4.30.1": { 360 + "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==" 361 + }, 362 + "@rollup/rollup-darwin-arm64@4.30.1": { 363 + "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==" 364 + }, 365 + "@rollup/rollup-darwin-x64@4.30.1": { 366 + "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==" 367 + }, 368 + "@rollup/rollup-freebsd-arm64@4.30.1": { 369 + "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==" 370 + }, 371 + "@rollup/rollup-freebsd-x64@4.30.1": { 372 + "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==" 373 + }, 374 + "@rollup/rollup-linux-arm-gnueabihf@4.30.1": { 375 + "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==" 376 + }, 377 + "@rollup/rollup-linux-arm-musleabihf@4.30.1": { 378 + "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==" 379 + }, 380 + "@rollup/rollup-linux-arm64-gnu@4.30.1": { 381 + "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==" 382 + }, 383 + "@rollup/rollup-linux-arm64-musl@4.30.1": { 384 + "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==" 385 + }, 386 + "@rollup/rollup-linux-loongarch64-gnu@4.30.1": { 387 + "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==" 388 + }, 389 + "@rollup/rollup-linux-powerpc64le-gnu@4.30.1": { 390 + "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==" 391 + }, 392 + "@rollup/rollup-linux-riscv64-gnu@4.30.1": { 393 + "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==" 394 + }, 395 + "@rollup/rollup-linux-s390x-gnu@4.30.1": { 396 + "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==" 397 + }, 398 + "@rollup/rollup-linux-x64-gnu@4.30.1": { 399 + "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==" 400 + }, 401 + "@rollup/rollup-linux-x64-musl@4.30.1": { 402 + "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==" 403 + }, 404 + "@rollup/rollup-win32-arm64-msvc@4.30.1": { 405 + "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==" 406 + }, 407 + "@rollup/rollup-win32-ia32-msvc@4.30.1": { 408 + "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==" 409 + }, 410 + "@rollup/rollup-win32-x64-msvc@4.30.1": { 411 + "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==" 412 + }, 413 + "@shikijs/core@1.26.1": { 414 + "integrity": "sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==", 415 + "dependencies": [ 416 + "@shikijs/engine-javascript", 417 + "@shikijs/engine-oniguruma", 418 + "@shikijs/types", 419 + "@shikijs/vscode-textmate", 420 + "@types/hast", 421 + "hast-util-to-html" 422 + ] 423 + }, 424 + "@shikijs/engine-javascript@1.26.1": { 425 + "integrity": "sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==", 426 + "dependencies": [ 427 + "@shikijs/types", 428 + "@shikijs/vscode-textmate", 429 + "oniguruma-to-es" 430 + ] 431 + }, 432 + "@shikijs/engine-oniguruma@1.26.1": { 433 + "integrity": "sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==", 434 + "dependencies": [ 435 + "@shikijs/types", 436 + "@shikijs/vscode-textmate" 437 + ] 438 + }, 439 + "@shikijs/langs@1.26.1": { 440 + "integrity": "sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==", 441 + "dependencies": [ 442 + "@shikijs/types" 443 + ] 444 + }, 445 + "@shikijs/themes@1.26.1": { 446 + "integrity": "sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA==", 447 + "dependencies": [ 448 + "@shikijs/types" 449 + ] 450 + }, 451 + "@shikijs/types@1.26.1": { 452 + "integrity": "sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==", 453 + "dependencies": [ 454 + "@shikijs/vscode-textmate", 455 + "@types/hast" 456 + ] 457 + }, 458 + "@shikijs/vscode-textmate@10.0.1": { 459 + "integrity": "sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==" 460 + }, 461 + "@types/cookie@0.6.0": { 462 + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" 463 + }, 464 + "@types/debug@4.1.12": { 465 + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", 466 + "dependencies": [ 467 + "@types/ms" 468 + ] 469 + }, 470 + "@types/estree@1.0.6": { 471 + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" 472 + }, 473 + "@types/hast@3.0.4": { 474 + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", 475 + "dependencies": [ 476 + "@types/unist" 477 + ] 478 + }, 479 + "@types/mdast@4.0.4": { 480 + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", 481 + "dependencies": [ 482 + "@types/unist" 483 + ] 484 + }, 485 + "@types/ms@0.7.34": { 486 + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" 487 + }, 488 + "@types/nlcst@2.0.3": { 489 + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", 490 + "dependencies": [ 491 + "@types/unist" 492 + ] 493 + }, 494 + "@types/node@17.0.45": { 495 + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" 496 + }, 497 + "@types/node@22.5.4": { 498 + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", 499 + "dependencies": [ 500 + "undici-types" 501 + ] 502 + }, 503 + "@types/sax@1.2.7": { 504 + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", 505 + "dependencies": [ 506 + "@types/node@22.5.4" 507 + ] 508 + }, 509 + "@types/unist@3.0.3": { 510 + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" 511 + }, 512 + "@ungap/structured-clone@1.2.1": { 513 + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==" 514 + }, 515 + "acorn@8.14.0": { 516 + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==" 517 + }, 518 + "ansi-align@3.0.1": { 519 + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 520 + "dependencies": [ 521 + "string-width@4.2.3" 522 + ] 523 + }, 524 + "ansi-regex@5.0.1": { 525 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 526 + }, 527 + "ansi-regex@6.1.0": { 528 + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" 529 + }, 530 + "ansi-styles@6.2.1": { 531 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" 532 + }, 533 + "anymatch@3.1.3": { 534 + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 535 + "dependencies": [ 536 + "normalize-path", 537 + "picomatch@2.3.1" 538 + ] 539 + }, 540 + "arg@5.0.2": { 541 + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" 542 + }, 543 + "argparse@1.0.10": { 544 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 545 + "dependencies": [ 546 + "sprintf-js" 547 + ] 548 + }, 549 + "argparse@2.0.1": { 550 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" 551 + }, 552 + "aria-query@5.3.2": { 553 + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==" 554 + }, 555 + "array-iterate@2.0.1": { 556 + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==" 557 + }, 558 + "astro@5.1.3_vite@6.0.7_zod@3.24.1": { 559 + "integrity": "sha512-Zl/B4hmueJmlI5FJQcwbBRhHbRvbTWaTJzimkbH+jYczR5blt4uSh0DheyAt/+NwcnGfiC11z/XXJYIBR4LPUw==", 560 + "dependencies": [ 561 + "@astrojs/compiler", 562 + "@astrojs/internal-helpers", 563 + "@astrojs/markdown-remark", 564 + "@astrojs/telemetry", 565 + "@oslojs/encoding", 566 + "@rollup/pluginutils", 567 + "@types/cookie", 568 + "acorn", 569 + "aria-query", 570 + "axobject-query", 571 + "boxen", 572 + "ci-info", 573 + "clsx", 574 + "common-ancestor-path", 575 + "cookie", 576 + "cssesc", 577 + "debug", 578 + "deterministic-object-hash", 579 + "devalue", 580 + "diff", 581 + "dlv", 582 + "dset", 583 + "es-module-lexer", 584 + "esbuild@0.21.5", 585 + "estree-walker@3.0.3", 586 + "fast-glob", 587 + "flattie", 588 + "github-slugger", 589 + "html-escaper", 590 + "http-cache-semantics", 591 + "js-yaml@4.1.0", 592 + "kleur@4.1.5", 593 + "magic-string", 594 + "magicast", 595 + "micromatch", 596 + "mrmime", 597 + "neotraverse", 598 + "p-limit@6.2.0", 599 + "p-queue", 600 + "preferred-pm", 601 + "prompts", 602 + "rehype", 603 + "semver", 604 + "sharp", 605 + "shiki", 606 + "tinyexec", 607 + "tsconfck", 608 + "ultrahtml", 609 + "unist-util-visit", 610 + "unstorage", 611 + "vfile", 612 + "vite", 613 + "vitefu", 614 + "which-pm", 615 + "xxhash-wasm", 616 + "yargs-parser", 617 + "yocto-spinner", 618 + "zod", 619 + "zod-to-json-schema", 620 + "zod-to-ts" 621 + ] 622 + }, 623 + "axobject-query@4.1.0": { 624 + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==" 625 + }, 626 + "bail@2.0.2": { 627 + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" 628 + }, 629 + "base-64@1.0.0": { 630 + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==" 631 + }, 632 + "binary-extensions@2.3.0": { 633 + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==" 634 + }, 635 + "boxen@8.0.1": { 636 + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", 637 + "dependencies": [ 638 + "ansi-align", 639 + "camelcase", 640 + "chalk", 641 + "cli-boxes", 642 + "string-width@7.2.0", 643 + "type-fest", 644 + "widest-line", 645 + "wrap-ansi" 646 + ] 647 + }, 648 + "braces@3.0.3": { 649 + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 650 + "dependencies": [ 651 + "fill-range" 652 + ] 653 + }, 654 + "camelcase@8.0.0": { 655 + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==" 656 + }, 657 + "ccount@2.0.1": { 658 + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" 659 + }, 660 + "chalk@5.4.1": { 661 + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==" 662 + }, 663 + "character-entities-html4@2.1.0": { 664 + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" 665 + }, 666 + "character-entities-legacy@3.0.0": { 667 + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" 668 + }, 669 + "character-entities@2.0.2": { 670 + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" 671 + }, 672 + "chokidar@3.6.0": { 673 + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 674 + "dependencies": [ 675 + "anymatch", 676 + "braces", 677 + "fsevents", 678 + "glob-parent", 679 + "is-binary-path", 680 + "is-glob", 681 + "normalize-path", 682 + "readdirp" 683 + ] 684 + }, 685 + "ci-info@4.1.0": { 686 + "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==" 687 + }, 688 + "cli-boxes@3.0.0": { 689 + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" 690 + }, 691 + "clsx@2.1.1": { 692 + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" 693 + }, 694 + "color-convert@2.0.1": { 695 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 696 + "dependencies": [ 697 + "color-name" 698 + ] 699 + }, 700 + "color-name@1.1.4": { 701 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 702 + }, 703 + "color-string@1.9.1": { 704 + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 705 + "dependencies": [ 706 + "color-name", 707 + "simple-swizzle" 708 + ] 709 + }, 710 + "color@4.2.3": { 711 + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 712 + "dependencies": [ 713 + "color-convert", 714 + "color-string" 715 + ] 716 + }, 717 + "comma-separated-tokens@2.0.3": { 718 + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" 719 + }, 720 + "common-ancestor-path@1.0.1": { 721 + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" 722 + }, 723 + "consola@3.3.3": { 724 + "integrity": "sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==" 725 + }, 726 + "cookie-es@1.2.2": { 727 + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" 728 + }, 729 + "cookie@0.7.2": { 730 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" 731 + }, 732 + "crossws@0.3.1": { 733 + "integrity": "sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==", 734 + "dependencies": [ 735 + "uncrypto" 736 + ] 737 + }, 738 + "cssesc@3.0.0": { 739 + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" 740 + }, 741 + "debug@4.4.0": { 742 + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 743 + "dependencies": [ 744 + "ms" 745 + ] 746 + }, 747 + "decode-named-character-reference@1.0.2": { 748 + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", 749 + "dependencies": [ 750 + "character-entities" 751 + ] 752 + }, 753 + "defu@6.1.4": { 754 + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" 755 + }, 756 + "dequal@2.0.3": { 757 + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" 758 + }, 759 + "destr@2.0.3": { 760 + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==" 761 + }, 762 + "detect-libc@2.0.3": { 763 + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==" 764 + }, 765 + "deterministic-object-hash@2.0.2": { 766 + "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", 767 + "dependencies": [ 768 + "base-64" 769 + ] 770 + }, 771 + "devalue@5.1.1": { 772 + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==" 773 + }, 774 + "devlop@1.1.0": { 775 + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", 776 + "dependencies": [ 777 + "dequal" 778 + ] 779 + }, 780 + "diff@5.2.0": { 781 + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==" 782 + }, 783 + "dlv@1.1.3": { 784 + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" 785 + }, 786 + "dset@3.1.4": { 787 + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==" 788 + }, 789 + "emoji-regex-xs@1.0.0": { 790 + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==" 791 + }, 792 + "emoji-regex@10.4.0": { 793 + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==" 794 + }, 795 + "emoji-regex@8.0.0": { 796 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" 797 + }, 798 + "entities@4.5.0": { 799 + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" 800 + }, 801 + "es-module-lexer@1.6.0": { 802 + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" 803 + }, 804 + "esbuild@0.21.5": { 805 + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", 806 + "dependencies": [ 807 + "@esbuild/aix-ppc64@0.21.5", 808 + "@esbuild/android-arm@0.21.5", 809 + "@esbuild/android-arm64@0.21.5", 810 + "@esbuild/android-x64@0.21.5", 811 + "@esbuild/darwin-arm64@0.21.5", 812 + "@esbuild/darwin-x64@0.21.5", 813 + "@esbuild/freebsd-arm64@0.21.5", 814 + "@esbuild/freebsd-x64@0.21.5", 815 + "@esbuild/linux-arm@0.21.5", 816 + "@esbuild/linux-arm64@0.21.5", 817 + "@esbuild/linux-ia32@0.21.5", 818 + "@esbuild/linux-loong64@0.21.5", 819 + "@esbuild/linux-mips64el@0.21.5", 820 + "@esbuild/linux-ppc64@0.21.5", 821 + "@esbuild/linux-riscv64@0.21.5", 822 + "@esbuild/linux-s390x@0.21.5", 823 + "@esbuild/linux-x64@0.21.5", 824 + "@esbuild/netbsd-x64@0.21.5", 825 + "@esbuild/openbsd-x64@0.21.5", 826 + "@esbuild/sunos-x64@0.21.5", 827 + "@esbuild/win32-arm64@0.21.5", 828 + "@esbuild/win32-ia32@0.21.5", 829 + "@esbuild/win32-x64@0.21.5" 830 + ] 831 + }, 832 + "esbuild@0.24.2": { 833 + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", 834 + "dependencies": [ 835 + "@esbuild/aix-ppc64@0.24.2", 836 + "@esbuild/android-arm@0.24.2", 837 + "@esbuild/android-arm64@0.24.2", 838 + "@esbuild/android-x64@0.24.2", 839 + "@esbuild/darwin-arm64@0.24.2", 840 + "@esbuild/darwin-x64@0.24.2", 841 + "@esbuild/freebsd-arm64@0.24.2", 842 + "@esbuild/freebsd-x64@0.24.2", 843 + "@esbuild/linux-arm@0.24.2", 844 + "@esbuild/linux-arm64@0.24.2", 845 + "@esbuild/linux-ia32@0.24.2", 846 + "@esbuild/linux-loong64@0.24.2", 847 + "@esbuild/linux-mips64el@0.24.2", 848 + "@esbuild/linux-ppc64@0.24.2", 849 + "@esbuild/linux-riscv64@0.24.2", 850 + "@esbuild/linux-s390x@0.24.2", 851 + "@esbuild/linux-x64@0.24.2", 852 + "@esbuild/netbsd-arm64", 853 + "@esbuild/netbsd-x64@0.24.2", 854 + "@esbuild/openbsd-arm64", 855 + "@esbuild/openbsd-x64@0.24.2", 856 + "@esbuild/sunos-x64@0.24.2", 857 + "@esbuild/win32-arm64@0.24.2", 858 + "@esbuild/win32-ia32@0.24.2", 859 + "@esbuild/win32-x64@0.24.2" 860 + ] 861 + }, 862 + "escape-string-regexp@5.0.0": { 863 + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" 864 + }, 865 + "esprima@4.0.1": { 866 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 867 + }, 868 + "estree-walker@2.0.2": { 869 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" 870 + }, 871 + "estree-walker@3.0.3": { 872 + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 873 + "dependencies": [ 874 + "@types/estree" 875 + ] 876 + }, 877 + "eventemitter3@5.0.1": { 878 + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" 879 + }, 880 + "extend@3.0.2": { 881 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 882 + }, 883 + "fast-glob@3.3.3": { 884 + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 885 + "dependencies": [ 886 + "@nodelib/fs.stat", 887 + "@nodelib/fs.walk", 888 + "glob-parent", 889 + "merge2", 890 + "micromatch" 891 + ] 892 + }, 893 + "fast-xml-parser@4.5.1": { 894 + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", 895 + "dependencies": [ 896 + "strnum" 897 + ] 898 + }, 899 + "fastq@1.18.0": { 900 + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", 901 + "dependencies": [ 902 + "reusify" 903 + ] 904 + }, 905 + "fill-range@7.1.1": { 906 + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 907 + "dependencies": [ 908 + "to-regex-range" 909 + ] 910 + }, 911 + "find-up-simple@1.0.0": { 912 + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==" 913 + }, 914 + "find-up@4.1.0": { 915 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 916 + "dependencies": [ 917 + "locate-path", 918 + "path-exists" 919 + ] 920 + }, 921 + "find-yarn-workspace-root2@1.2.16": { 922 + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", 923 + "dependencies": [ 924 + "micromatch", 925 + "pkg-dir" 926 + ] 927 + }, 928 + "flattie@1.1.1": { 929 + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==" 930 + }, 931 + "fsevents@2.3.3": { 932 + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==" 933 + }, 934 + "get-east-asian-width@1.3.0": { 935 + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==" 936 + }, 937 + "github-slugger@2.0.0": { 938 + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" 939 + }, 940 + "glob-parent@5.1.2": { 941 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 942 + "dependencies": [ 943 + "is-glob" 944 + ] 945 + }, 946 + "graceful-fs@4.2.11": { 947 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 948 + }, 949 + "h3@1.13.0": { 950 + "integrity": "sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==", 951 + "dependencies": [ 952 + "cookie-es", 953 + "crossws", 954 + "defu", 955 + "destr", 956 + "iron-webcrypto", 957 + "ohash", 958 + "radix3", 959 + "ufo", 960 + "uncrypto", 961 + "unenv" 962 + ] 963 + }, 964 + "hast-util-from-html@2.0.3": { 965 + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", 966 + "dependencies": [ 967 + "@types/hast", 968 + "devlop", 969 + "hast-util-from-parse5", 970 + "parse5", 971 + "vfile", 972 + "vfile-message" 973 + ] 974 + }, 975 + "hast-util-from-parse5@8.0.2": { 976 + "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", 977 + "dependencies": [ 978 + "@types/hast", 979 + "@types/unist", 980 + "devlop", 981 + "hastscript", 982 + "property-information", 983 + "vfile", 984 + "vfile-location", 985 + "web-namespaces" 986 + ] 987 + }, 988 + "hast-util-is-element@3.0.0": { 989 + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", 990 + "dependencies": [ 991 + "@types/hast" 992 + ] 993 + }, 994 + "hast-util-parse-selector@4.0.0": { 995 + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", 996 + "dependencies": [ 997 + "@types/hast" 998 + ] 999 + }, 1000 + "hast-util-raw@9.1.0": { 1001 + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", 1002 + "dependencies": [ 1003 + "@types/hast", 1004 + "@types/unist", 1005 + "@ungap/structured-clone", 1006 + "hast-util-from-parse5", 1007 + "hast-util-to-parse5", 1008 + "html-void-elements", 1009 + "mdast-util-to-hast", 1010 + "parse5", 1011 + "unist-util-position", 1012 + "unist-util-visit", 1013 + "vfile", 1014 + "web-namespaces", 1015 + "zwitch" 1016 + ] 1017 + }, 1018 + "hast-util-to-html@9.0.4": { 1019 + "integrity": "sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==", 1020 + "dependencies": [ 1021 + "@types/hast", 1022 + "@types/unist", 1023 + "ccount", 1024 + "comma-separated-tokens", 1025 + "hast-util-whitespace", 1026 + "html-void-elements", 1027 + "mdast-util-to-hast", 1028 + "property-information", 1029 + "space-separated-tokens", 1030 + "stringify-entities", 1031 + "zwitch" 1032 + ] 1033 + }, 1034 + "hast-util-to-parse5@8.0.0": { 1035 + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", 1036 + "dependencies": [ 1037 + "@types/hast", 1038 + "comma-separated-tokens", 1039 + "devlop", 1040 + "property-information", 1041 + "space-separated-tokens", 1042 + "web-namespaces", 1043 + "zwitch" 1044 + ] 1045 + }, 1046 + "hast-util-to-text@4.0.2": { 1047 + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", 1048 + "dependencies": [ 1049 + "@types/hast", 1050 + "@types/unist", 1051 + "hast-util-is-element", 1052 + "unist-util-find-after" 1053 + ] 1054 + }, 1055 + "hast-util-whitespace@3.0.0": { 1056 + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", 1057 + "dependencies": [ 1058 + "@types/hast" 1059 + ] 1060 + }, 1061 + "hastscript@9.0.0": { 1062 + "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", 1063 + "dependencies": [ 1064 + "@types/hast", 1065 + "comma-separated-tokens", 1066 + "hast-util-parse-selector", 1067 + "property-information", 1068 + "space-separated-tokens" 1069 + ] 1070 + }, 1071 + "html-escaper@3.0.3": { 1072 + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==" 1073 + }, 1074 + "html-void-elements@3.0.0": { 1075 + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==" 1076 + }, 1077 + "http-cache-semantics@4.1.1": { 1078 + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" 1079 + }, 1080 + "import-meta-resolve@4.1.0": { 1081 + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==" 1082 + }, 1083 + "iron-webcrypto@1.2.1": { 1084 + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==" 1085 + }, 1086 + "is-arrayish@0.3.2": { 1087 + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" 1088 + }, 1089 + "is-binary-path@2.1.0": { 1090 + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1091 + "dependencies": [ 1092 + "binary-extensions" 1093 + ] 1094 + }, 1095 + "is-docker@3.0.0": { 1096 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" 1097 + }, 1098 + "is-extglob@2.1.1": { 1099 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" 1100 + }, 1101 + "is-fullwidth-code-point@3.0.0": { 1102 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" 1103 + }, 1104 + "is-glob@4.0.3": { 1105 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1106 + "dependencies": [ 1107 + "is-extglob" 1108 + ] 1109 + }, 1110 + "is-inside-container@1.0.0": { 1111 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 1112 + "dependencies": [ 1113 + "is-docker" 1114 + ] 1115 + }, 1116 + "is-number@7.0.0": { 1117 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" 1118 + }, 1119 + "is-plain-obj@4.1.0": { 1120 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" 1121 + }, 1122 + "is-wsl@3.1.0": { 1123 + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", 1124 + "dependencies": [ 1125 + "is-inside-container" 1126 + ] 1127 + }, 1128 + "js-yaml@3.14.1": { 1129 + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", 1130 + "dependencies": [ 1131 + "argparse@1.0.10", 1132 + "esprima" 1133 + ] 1134 + }, 1135 + "js-yaml@4.1.0": { 1136 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 1137 + "dependencies": [ 1138 + "argparse@2.0.1" 1139 + ] 1140 + }, 1141 + "kleur@3.0.3": { 1142 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" 1143 + }, 1144 + "kleur@4.1.5": { 1145 + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" 1146 + }, 1147 + "load-yaml-file@0.2.0": { 1148 + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", 1149 + "dependencies": [ 1150 + "graceful-fs", 1151 + "js-yaml@3.14.1", 1152 + "pify", 1153 + "strip-bom" 1154 + ] 1155 + }, 1156 + "locate-path@5.0.0": { 1157 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1158 + "dependencies": [ 1159 + "p-locate" 1160 + ] 1161 + }, 1162 + "longest-streak@3.1.0": { 1163 + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" 1164 + }, 1165 + "lru-cache@10.4.3": { 1166 + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" 1167 + }, 1168 + "magic-string@0.30.17": { 1169 + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", 1170 + "dependencies": [ 1171 + "@jridgewell/sourcemap-codec" 1172 + ] 1173 + }, 1174 + "magicast@0.3.5": { 1175 + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", 1176 + "dependencies": [ 1177 + "@babel/parser", 1178 + "@babel/types", 1179 + "source-map-js" 1180 + ] 1181 + }, 1182 + "markdown-table@3.0.4": { 1183 + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==" 1184 + }, 1185 + "mdast-util-definitions@6.0.0": { 1186 + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", 1187 + "dependencies": [ 1188 + "@types/mdast", 1189 + "@types/unist", 1190 + "unist-util-visit" 1191 + ] 1192 + }, 1193 + "mdast-util-find-and-replace@3.0.2": { 1194 + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", 1195 + "dependencies": [ 1196 + "@types/mdast", 1197 + "escape-string-regexp", 1198 + "unist-util-is", 1199 + "unist-util-visit-parents" 1200 + ] 1201 + }, 1202 + "mdast-util-from-markdown@2.0.2": { 1203 + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", 1204 + "dependencies": [ 1205 + "@types/mdast", 1206 + "@types/unist", 1207 + "decode-named-character-reference", 1208 + "devlop", 1209 + "mdast-util-to-string", 1210 + "micromark", 1211 + "micromark-util-decode-numeric-character-reference", 1212 + "micromark-util-decode-string", 1213 + "micromark-util-normalize-identifier", 1214 + "micromark-util-symbol", 1215 + "micromark-util-types", 1216 + "unist-util-stringify-position" 1217 + ] 1218 + }, 1219 + "mdast-util-gfm-autolink-literal@2.0.1": { 1220 + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", 1221 + "dependencies": [ 1222 + "@types/mdast", 1223 + "ccount", 1224 + "devlop", 1225 + "mdast-util-find-and-replace", 1226 + "micromark-util-character" 1227 + ] 1228 + }, 1229 + "mdast-util-gfm-footnote@2.0.0": { 1230 + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", 1231 + "dependencies": [ 1232 + "@types/mdast", 1233 + "devlop", 1234 + "mdast-util-from-markdown", 1235 + "mdast-util-to-markdown", 1236 + "micromark-util-normalize-identifier" 1237 + ] 1238 + }, 1239 + "mdast-util-gfm-strikethrough@2.0.0": { 1240 + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", 1241 + "dependencies": [ 1242 + "@types/mdast", 1243 + "mdast-util-from-markdown", 1244 + "mdast-util-to-markdown" 1245 + ] 1246 + }, 1247 + "mdast-util-gfm-table@2.0.0": { 1248 + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", 1249 + "dependencies": [ 1250 + "@types/mdast", 1251 + "devlop", 1252 + "markdown-table", 1253 + "mdast-util-from-markdown", 1254 + "mdast-util-to-markdown" 1255 + ] 1256 + }, 1257 + "mdast-util-gfm-task-list-item@2.0.0": { 1258 + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", 1259 + "dependencies": [ 1260 + "@types/mdast", 1261 + "devlop", 1262 + "mdast-util-from-markdown", 1263 + "mdast-util-to-markdown" 1264 + ] 1265 + }, 1266 + "mdast-util-gfm@3.0.0": { 1267 + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", 1268 + "dependencies": [ 1269 + "mdast-util-from-markdown", 1270 + "mdast-util-gfm-autolink-literal", 1271 + "mdast-util-gfm-footnote", 1272 + "mdast-util-gfm-strikethrough", 1273 + "mdast-util-gfm-table", 1274 + "mdast-util-gfm-task-list-item", 1275 + "mdast-util-to-markdown" 1276 + ] 1277 + }, 1278 + "mdast-util-phrasing@4.1.0": { 1279 + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", 1280 + "dependencies": [ 1281 + "@types/mdast", 1282 + "unist-util-is" 1283 + ] 1284 + }, 1285 + "mdast-util-to-hast@13.2.0": { 1286 + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", 1287 + "dependencies": [ 1288 + "@types/hast", 1289 + "@types/mdast", 1290 + "@ungap/structured-clone", 1291 + "devlop", 1292 + "micromark-util-sanitize-uri", 1293 + "trim-lines", 1294 + "unist-util-position", 1295 + "unist-util-visit", 1296 + "vfile" 1297 + ] 1298 + }, 1299 + "mdast-util-to-markdown@2.1.2": { 1300 + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", 1301 + "dependencies": [ 1302 + "@types/mdast", 1303 + "@types/unist", 1304 + "longest-streak", 1305 + "mdast-util-phrasing", 1306 + "mdast-util-to-string", 1307 + "micromark-util-classify-character", 1308 + "micromark-util-decode-string", 1309 + "unist-util-visit", 1310 + "zwitch" 1311 + ] 1312 + }, 1313 + "mdast-util-to-string@4.0.0": { 1314 + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", 1315 + "dependencies": [ 1316 + "@types/mdast" 1317 + ] 1318 + }, 1319 + "merge2@1.4.1": { 1320 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" 1321 + }, 1322 + "micromark-core-commonmark@2.0.2": { 1323 + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", 1324 + "dependencies": [ 1325 + "decode-named-character-reference", 1326 + "devlop", 1327 + "micromark-factory-destination", 1328 + "micromark-factory-label", 1329 + "micromark-factory-space", 1330 + "micromark-factory-title", 1331 + "micromark-factory-whitespace", 1332 + "micromark-util-character", 1333 + "micromark-util-chunked", 1334 + "micromark-util-classify-character", 1335 + "micromark-util-html-tag-name", 1336 + "micromark-util-normalize-identifier", 1337 + "micromark-util-resolve-all", 1338 + "micromark-util-subtokenize", 1339 + "micromark-util-symbol", 1340 + "micromark-util-types" 1341 + ] 1342 + }, 1343 + "micromark-extension-gfm-autolink-literal@2.1.0": { 1344 + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", 1345 + "dependencies": [ 1346 + "micromark-util-character", 1347 + "micromark-util-sanitize-uri", 1348 + "micromark-util-symbol", 1349 + "micromark-util-types" 1350 + ] 1351 + }, 1352 + "micromark-extension-gfm-footnote@2.1.0": { 1353 + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", 1354 + "dependencies": [ 1355 + "devlop", 1356 + "micromark-core-commonmark", 1357 + "micromark-factory-space", 1358 + "micromark-util-character", 1359 + "micromark-util-normalize-identifier", 1360 + "micromark-util-sanitize-uri", 1361 + "micromark-util-symbol", 1362 + "micromark-util-types" 1363 + ] 1364 + }, 1365 + "micromark-extension-gfm-strikethrough@2.1.0": { 1366 + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", 1367 + "dependencies": [ 1368 + "devlop", 1369 + "micromark-util-chunked", 1370 + "micromark-util-classify-character", 1371 + "micromark-util-resolve-all", 1372 + "micromark-util-symbol", 1373 + "micromark-util-types" 1374 + ] 1375 + }, 1376 + "micromark-extension-gfm-table@2.1.0": { 1377 + "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", 1378 + "dependencies": [ 1379 + "devlop", 1380 + "micromark-factory-space", 1381 + "micromark-util-character", 1382 + "micromark-util-symbol", 1383 + "micromark-util-types" 1384 + ] 1385 + }, 1386 + "micromark-extension-gfm-tagfilter@2.0.0": { 1387 + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", 1388 + "dependencies": [ 1389 + "micromark-util-types" 1390 + ] 1391 + }, 1392 + "micromark-extension-gfm-task-list-item@2.1.0": { 1393 + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", 1394 + "dependencies": [ 1395 + "devlop", 1396 + "micromark-factory-space", 1397 + "micromark-util-character", 1398 + "micromark-util-symbol", 1399 + "micromark-util-types" 1400 + ] 1401 + }, 1402 + "micromark-extension-gfm@3.0.0": { 1403 + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", 1404 + "dependencies": [ 1405 + "micromark-extension-gfm-autolink-literal", 1406 + "micromark-extension-gfm-footnote", 1407 + "micromark-extension-gfm-strikethrough", 1408 + "micromark-extension-gfm-table", 1409 + "micromark-extension-gfm-tagfilter", 1410 + "micromark-extension-gfm-task-list-item", 1411 + "micromark-util-combine-extensions", 1412 + "micromark-util-types" 1413 + ] 1414 + }, 1415 + "micromark-factory-destination@2.0.1": { 1416 + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", 1417 + "dependencies": [ 1418 + "micromark-util-character", 1419 + "micromark-util-symbol", 1420 + "micromark-util-types" 1421 + ] 1422 + }, 1423 + "micromark-factory-label@2.0.1": { 1424 + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", 1425 + "dependencies": [ 1426 + "devlop", 1427 + "micromark-util-character", 1428 + "micromark-util-symbol", 1429 + "micromark-util-types" 1430 + ] 1431 + }, 1432 + "micromark-factory-space@2.0.1": { 1433 + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", 1434 + "dependencies": [ 1435 + "micromark-util-character", 1436 + "micromark-util-types" 1437 + ] 1438 + }, 1439 + "micromark-factory-title@2.0.1": { 1440 + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", 1441 + "dependencies": [ 1442 + "micromark-factory-space", 1443 + "micromark-util-character", 1444 + "micromark-util-symbol", 1445 + "micromark-util-types" 1446 + ] 1447 + }, 1448 + "micromark-factory-whitespace@2.0.1": { 1449 + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", 1450 + "dependencies": [ 1451 + "micromark-factory-space", 1452 + "micromark-util-character", 1453 + "micromark-util-symbol", 1454 + "micromark-util-types" 1455 + ] 1456 + }, 1457 + "micromark-util-character@2.1.1": { 1458 + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", 1459 + "dependencies": [ 1460 + "micromark-util-symbol", 1461 + "micromark-util-types" 1462 + ] 1463 + }, 1464 + "micromark-util-chunked@2.0.1": { 1465 + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", 1466 + "dependencies": [ 1467 + "micromark-util-symbol" 1468 + ] 1469 + }, 1470 + "micromark-util-classify-character@2.0.1": { 1471 + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", 1472 + "dependencies": [ 1473 + "micromark-util-character", 1474 + "micromark-util-symbol", 1475 + "micromark-util-types" 1476 + ] 1477 + }, 1478 + "micromark-util-combine-extensions@2.0.1": { 1479 + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", 1480 + "dependencies": [ 1481 + "micromark-util-chunked", 1482 + "micromark-util-types" 1483 + ] 1484 + }, 1485 + "micromark-util-decode-numeric-character-reference@2.0.2": { 1486 + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", 1487 + "dependencies": [ 1488 + "micromark-util-symbol" 1489 + ] 1490 + }, 1491 + "micromark-util-decode-string@2.0.1": { 1492 + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", 1493 + "dependencies": [ 1494 + "decode-named-character-reference", 1495 + "micromark-util-character", 1496 + "micromark-util-decode-numeric-character-reference", 1497 + "micromark-util-symbol" 1498 + ] 1499 + }, 1500 + "micromark-util-encode@2.0.1": { 1501 + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==" 1502 + }, 1503 + "micromark-util-html-tag-name@2.0.1": { 1504 + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==" 1505 + }, 1506 + "micromark-util-normalize-identifier@2.0.1": { 1507 + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", 1508 + "dependencies": [ 1509 + "micromark-util-symbol" 1510 + ] 1511 + }, 1512 + "micromark-util-resolve-all@2.0.1": { 1513 + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", 1514 + "dependencies": [ 1515 + "micromark-util-types" 1516 + ] 1517 + }, 1518 + "micromark-util-sanitize-uri@2.0.1": { 1519 + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", 1520 + "dependencies": [ 1521 + "micromark-util-character", 1522 + "micromark-util-encode", 1523 + "micromark-util-symbol" 1524 + ] 1525 + }, 1526 + "micromark-util-subtokenize@2.0.3": { 1527 + "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", 1528 + "dependencies": [ 1529 + "devlop", 1530 + "micromark-util-chunked", 1531 + "micromark-util-symbol", 1532 + "micromark-util-types" 1533 + ] 1534 + }, 1535 + "micromark-util-symbol@2.0.1": { 1536 + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==" 1537 + }, 1538 + "micromark-util-types@2.0.1": { 1539 + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==" 1540 + }, 1541 + "micromark@4.0.1": { 1542 + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", 1543 + "dependencies": [ 1544 + "@types/debug", 1545 + "debug", 1546 + "decode-named-character-reference", 1547 + "devlop", 1548 + "micromark-core-commonmark", 1549 + "micromark-factory-space", 1550 + "micromark-util-character", 1551 + "micromark-util-chunked", 1552 + "micromark-util-combine-extensions", 1553 + "micromark-util-decode-numeric-character-reference", 1554 + "micromark-util-encode", 1555 + "micromark-util-normalize-identifier", 1556 + "micromark-util-resolve-all", 1557 + "micromark-util-sanitize-uri", 1558 + "micromark-util-subtokenize", 1559 + "micromark-util-symbol", 1560 + "micromark-util-types" 1561 + ] 1562 + }, 1563 + "micromatch@4.0.8": { 1564 + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 1565 + "dependencies": [ 1566 + "braces", 1567 + "picomatch@2.3.1" 1568 + ] 1569 + }, 1570 + "mime@3.0.0": { 1571 + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" 1572 + }, 1573 + "mrmime@2.0.0": { 1574 + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==" 1575 + }, 1576 + "ms@2.1.3": { 1577 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 1578 + }, 1579 + "nanoid@3.3.8": { 1580 + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" 1581 + }, 1582 + "neotraverse@0.6.18": { 1583 + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==" 1584 + }, 1585 + "nlcst-to-string@4.0.0": { 1586 + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", 1587 + "dependencies": [ 1588 + "@types/nlcst" 1589 + ] 1590 + }, 1591 + "node-fetch-native@1.6.4": { 1592 + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==" 1593 + }, 1594 + "normalize-path@3.0.0": { 1595 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 1596 + }, 1597 + "ofetch@1.4.1": { 1598 + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", 1599 + "dependencies": [ 1600 + "destr", 1601 + "node-fetch-native", 1602 + "ufo" 1603 + ] 1604 + }, 1605 + "ohash@1.1.4": { 1606 + "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==" 1607 + }, 1608 + "oniguruma-to-es@0.10.0": { 1609 + "integrity": "sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==", 1610 + "dependencies": [ 1611 + "emoji-regex-xs", 1612 + "regex", 1613 + "regex-recursion" 1614 + ] 1615 + }, 1616 + "p-limit@2.3.0": { 1617 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1618 + "dependencies": [ 1619 + "p-try" 1620 + ] 1621 + }, 1622 + "p-limit@6.2.0": { 1623 + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", 1624 + "dependencies": [ 1625 + "yocto-queue" 1626 + ] 1627 + }, 1628 + "p-locate@4.1.0": { 1629 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1630 + "dependencies": [ 1631 + "p-limit@2.3.0" 1632 + ] 1633 + }, 1634 + "p-queue@8.0.1": { 1635 + "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", 1636 + "dependencies": [ 1637 + "eventemitter3", 1638 + "p-timeout" 1639 + ] 1640 + }, 1641 + "p-timeout@6.1.4": { 1642 + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==" 1643 + }, 1644 + "p-try@2.2.0": { 1645 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 1646 + }, 1647 + "parse-latin@7.0.0": { 1648 + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", 1649 + "dependencies": [ 1650 + "@types/nlcst", 1651 + "@types/unist", 1652 + "nlcst-to-string", 1653 + "unist-util-modify-children", 1654 + "unist-util-visit-children", 1655 + "vfile" 1656 + ] 1657 + }, 1658 + "parse5@7.2.1": { 1659 + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", 1660 + "dependencies": [ 1661 + "entities" 1662 + ] 1663 + }, 1664 + "path-exists@4.0.0": { 1665 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" 1666 + }, 1667 + "pathe@1.1.2": { 1668 + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" 1669 + }, 1670 + "picocolors@1.1.1": { 1671 + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" 1672 + }, 1673 + "picomatch@2.3.1": { 1674 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" 1675 + }, 1676 + "picomatch@4.0.2": { 1677 + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==" 1678 + }, 1679 + "pify@4.0.1": { 1680 + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" 1681 + }, 1682 + "pkg-dir@4.2.0": { 1683 + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 1684 + "dependencies": [ 1685 + "find-up" 1686 + ] 1687 + }, 1688 + "postcss@8.4.49": { 1689 + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", 1690 + "dependencies": [ 1691 + "nanoid", 1692 + "picocolors", 1693 + "source-map-js" 1694 + ] 1695 + }, 1696 + "preferred-pm@4.0.0": { 1697 + "integrity": "sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==", 1698 + "dependencies": [ 1699 + "find-up-simple", 1700 + "find-yarn-workspace-root2", 1701 + "which-pm" 1702 + ] 1703 + }, 1704 + "prismjs@1.29.0": { 1705 + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" 1706 + }, 1707 + "prompts@2.4.2": { 1708 + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", 1709 + "dependencies": [ 1710 + "kleur@3.0.3", 1711 + "sisteransi" 1712 + ] 1713 + }, 1714 + "property-information@6.5.0": { 1715 + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" 1716 + }, 1717 + "queue-microtask@1.2.3": { 1718 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" 1719 + }, 1720 + "radix3@1.1.2": { 1721 + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" 1722 + }, 1723 + "readdirp@3.6.0": { 1724 + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1725 + "dependencies": [ 1726 + "picomatch@2.3.1" 1727 + ] 1728 + }, 1729 + "regex-recursion@5.1.1": { 1730 + "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==", 1731 + "dependencies": [ 1732 + "regex", 1733 + "regex-utilities" 1734 + ] 1735 + }, 1736 + "regex-utilities@2.3.0": { 1737 + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==" 1738 + }, 1739 + "regex@5.1.1": { 1740 + "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==", 1741 + "dependencies": [ 1742 + "regex-utilities" 1743 + ] 1744 + }, 1745 + "rehype-parse@9.0.1": { 1746 + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", 1747 + "dependencies": [ 1748 + "@types/hast", 1749 + "hast-util-from-html", 1750 + "unified" 1751 + ] 1752 + }, 1753 + "rehype-raw@7.0.0": { 1754 + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", 1755 + "dependencies": [ 1756 + "@types/hast", 1757 + "hast-util-raw", 1758 + "vfile" 1759 + ] 1760 + }, 1761 + "rehype-stringify@10.0.1": { 1762 + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", 1763 + "dependencies": [ 1764 + "@types/hast", 1765 + "hast-util-to-html", 1766 + "unified" 1767 + ] 1768 + }, 1769 + "rehype@13.0.2": { 1770 + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", 1771 + "dependencies": [ 1772 + "@types/hast", 1773 + "rehype-parse", 1774 + "rehype-stringify", 1775 + "unified" 1776 + ] 1777 + }, 1778 + "remark-gfm@4.0.0": { 1779 + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", 1780 + "dependencies": [ 1781 + "@types/mdast", 1782 + "mdast-util-gfm", 1783 + "micromark-extension-gfm", 1784 + "remark-parse", 1785 + "remark-stringify", 1786 + "unified" 1787 + ] 1788 + }, 1789 + "remark-parse@11.0.0": { 1790 + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", 1791 + "dependencies": [ 1792 + "@types/mdast", 1793 + "mdast-util-from-markdown", 1794 + "micromark-util-types", 1795 + "unified" 1796 + ] 1797 + }, 1798 + "remark-rehype@11.1.1": { 1799 + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", 1800 + "dependencies": [ 1801 + "@types/hast", 1802 + "@types/mdast", 1803 + "mdast-util-to-hast", 1804 + "unified", 1805 + "vfile" 1806 + ] 1807 + }, 1808 + "remark-smartypants@3.0.2": { 1809 + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", 1810 + "dependencies": [ 1811 + "retext", 1812 + "retext-smartypants", 1813 + "unified", 1814 + "unist-util-visit" 1815 + ] 1816 + }, 1817 + "remark-stringify@11.0.0": { 1818 + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", 1819 + "dependencies": [ 1820 + "@types/mdast", 1821 + "mdast-util-to-markdown", 1822 + "unified" 1823 + ] 1824 + }, 1825 + "retext-latin@4.0.0": { 1826 + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", 1827 + "dependencies": [ 1828 + "@types/nlcst", 1829 + "parse-latin", 1830 + "unified" 1831 + ] 1832 + }, 1833 + "retext-smartypants@6.2.0": { 1834 + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", 1835 + "dependencies": [ 1836 + "@types/nlcst", 1837 + "nlcst-to-string", 1838 + "unist-util-visit" 1839 + ] 1840 + }, 1841 + "retext-stringify@4.0.0": { 1842 + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", 1843 + "dependencies": [ 1844 + "@types/nlcst", 1845 + "nlcst-to-string", 1846 + "unified" 1847 + ] 1848 + }, 1849 + "retext@9.0.0": { 1850 + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", 1851 + "dependencies": [ 1852 + "@types/nlcst", 1853 + "retext-latin", 1854 + "retext-stringify", 1855 + "unified" 1856 + ] 1857 + }, 1858 + "reusify@1.0.4": { 1859 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" 1860 + }, 1861 + "rollup@4.30.1": { 1862 + "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", 1863 + "dependencies": [ 1864 + "@rollup/rollup-android-arm-eabi", 1865 + "@rollup/rollup-android-arm64", 1866 + "@rollup/rollup-darwin-arm64", 1867 + "@rollup/rollup-darwin-x64", 1868 + "@rollup/rollup-freebsd-arm64", 1869 + "@rollup/rollup-freebsd-x64", 1870 + "@rollup/rollup-linux-arm-gnueabihf", 1871 + "@rollup/rollup-linux-arm-musleabihf", 1872 + "@rollup/rollup-linux-arm64-gnu", 1873 + "@rollup/rollup-linux-arm64-musl", 1874 + "@rollup/rollup-linux-loongarch64-gnu", 1875 + "@rollup/rollup-linux-powerpc64le-gnu", 1876 + "@rollup/rollup-linux-riscv64-gnu", 1877 + "@rollup/rollup-linux-s390x-gnu", 1878 + "@rollup/rollup-linux-x64-gnu", 1879 + "@rollup/rollup-linux-x64-musl", 1880 + "@rollup/rollup-win32-arm64-msvc", 1881 + "@rollup/rollup-win32-ia32-msvc", 1882 + "@rollup/rollup-win32-x64-msvc", 1883 + "@types/estree", 1884 + "fsevents" 1885 + ] 1886 + }, 1887 + "run-parallel@1.2.0": { 1888 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1889 + "dependencies": [ 1890 + "queue-microtask" 1891 + ] 1892 + }, 1893 + "sax@1.4.1": { 1894 + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" 1895 + }, 1896 + "semver@7.6.3": { 1897 + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" 1898 + }, 1899 + "sharp@0.33.5": { 1900 + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 1901 + "dependencies": [ 1902 + "@img/sharp-darwin-arm64", 1903 + "@img/sharp-darwin-x64", 1904 + "@img/sharp-libvips-darwin-arm64", 1905 + "@img/sharp-libvips-darwin-x64", 1906 + "@img/sharp-libvips-linux-arm", 1907 + "@img/sharp-libvips-linux-arm64", 1908 + "@img/sharp-libvips-linux-s390x", 1909 + "@img/sharp-libvips-linux-x64", 1910 + "@img/sharp-libvips-linuxmusl-arm64", 1911 + "@img/sharp-libvips-linuxmusl-x64", 1912 + "@img/sharp-linux-arm", 1913 + "@img/sharp-linux-arm64", 1914 + "@img/sharp-linux-s390x", 1915 + "@img/sharp-linux-x64", 1916 + "@img/sharp-linuxmusl-arm64", 1917 + "@img/sharp-linuxmusl-x64", 1918 + "@img/sharp-wasm32", 1919 + "@img/sharp-win32-ia32", 1920 + "@img/sharp-win32-x64", 1921 + "color", 1922 + "detect-libc", 1923 + "semver" 1924 + ] 1925 + }, 1926 + "shiki@1.26.1": { 1927 + "integrity": "sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==", 1928 + "dependencies": [ 1929 + "@shikijs/core", 1930 + "@shikijs/engine-javascript", 1931 + "@shikijs/engine-oniguruma", 1932 + "@shikijs/langs", 1933 + "@shikijs/themes", 1934 + "@shikijs/types", 1935 + "@shikijs/vscode-textmate", 1936 + "@types/hast" 1937 + ] 1938 + }, 1939 + "simple-swizzle@0.2.2": { 1940 + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 1941 + "dependencies": [ 1942 + "is-arrayish" 1943 + ] 1944 + }, 1945 + "sisteransi@1.0.5": { 1946 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" 1947 + }, 1948 + "sitemap@8.0.0": { 1949 + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", 1950 + "dependencies": [ 1951 + "@types/node@17.0.45", 1952 + "@types/sax", 1953 + "arg", 1954 + "sax" 1955 + ] 1956 + }, 1957 + "source-map-js@1.2.1": { 1958 + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" 1959 + }, 1960 + "space-separated-tokens@2.0.2": { 1961 + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" 1962 + }, 1963 + "sprintf-js@1.0.3": { 1964 + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" 1965 + }, 1966 + "stream-replace-string@2.0.0": { 1967 + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==" 1968 + }, 1969 + "string-width@4.2.3": { 1970 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 1971 + "dependencies": [ 1972 + "emoji-regex@8.0.0", 1973 + "is-fullwidth-code-point", 1974 + "strip-ansi@6.0.1" 1975 + ] 1976 + }, 1977 + "string-width@7.2.0": { 1978 + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", 1979 + "dependencies": [ 1980 + "emoji-regex@10.4.0", 1981 + "get-east-asian-width", 1982 + "strip-ansi@7.1.0" 1983 + ] 1984 + }, 1985 + "stringify-entities@4.0.4": { 1986 + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", 1987 + "dependencies": [ 1988 + "character-entities-html4", 1989 + "character-entities-legacy" 1990 + ] 1991 + }, 1992 + "strip-ansi@6.0.1": { 1993 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 1994 + "dependencies": [ 1995 + "ansi-regex@5.0.1" 1996 + ] 1997 + }, 1998 + "strip-ansi@7.1.0": { 1999 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 2000 + "dependencies": [ 2001 + "ansi-regex@6.1.0" 2002 + ] 2003 + }, 2004 + "strip-bom@3.0.0": { 2005 + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" 2006 + }, 2007 + "strnum@1.0.5": { 2008 + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" 2009 + }, 2010 + "tinyexec@0.3.2": { 2011 + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==" 2012 + }, 2013 + "to-regex-range@5.0.1": { 2014 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2015 + "dependencies": [ 2016 + "is-number" 2017 + ] 2018 + }, 2019 + "trim-lines@3.0.1": { 2020 + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" 2021 + }, 2022 + "trough@2.2.0": { 2023 + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" 2024 + }, 2025 + "tsconfck@3.1.4": { 2026 + "integrity": "sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==" 2027 + }, 2028 + "tslib@2.8.1": { 2029 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" 2030 + }, 2031 + "type-fest@4.31.0": { 2032 + "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==" 2033 + }, 2034 + "typescript@5.7.3": { 2035 + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==" 2036 + }, 2037 + "ufo@1.5.4": { 2038 + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==" 2039 + }, 2040 + "ultrahtml@1.5.3": { 2041 + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==" 2042 + }, 2043 + "uncrypto@0.1.3": { 2044 + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" 2045 + }, 2046 + "undici-types@6.19.8": { 2047 + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" 2048 + }, 2049 + "unenv@1.10.0": { 2050 + "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==", 2051 + "dependencies": [ 2052 + "consola", 2053 + "defu", 2054 + "mime", 2055 + "node-fetch-native", 2056 + "pathe" 2057 + ] 2058 + }, 2059 + "unified@11.0.5": { 2060 + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", 2061 + "dependencies": [ 2062 + "@types/unist", 2063 + "bail", 2064 + "devlop", 2065 + "extend", 2066 + "is-plain-obj", 2067 + "trough", 2068 + "vfile" 2069 + ] 2070 + }, 2071 + "unist-util-find-after@5.0.0": { 2072 + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", 2073 + "dependencies": [ 2074 + "@types/unist", 2075 + "unist-util-is" 2076 + ] 2077 + }, 2078 + "unist-util-is@6.0.0": { 2079 + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", 2080 + "dependencies": [ 2081 + "@types/unist" 2082 + ] 2083 + }, 2084 + "unist-util-modify-children@4.0.0": { 2085 + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", 2086 + "dependencies": [ 2087 + "@types/unist", 2088 + "array-iterate" 2089 + ] 2090 + }, 2091 + "unist-util-position@5.0.0": { 2092 + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", 2093 + "dependencies": [ 2094 + "@types/unist" 2095 + ] 2096 + }, 2097 + "unist-util-remove-position@5.0.0": { 2098 + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", 2099 + "dependencies": [ 2100 + "@types/unist", 2101 + "unist-util-visit" 2102 + ] 2103 + }, 2104 + "unist-util-stringify-position@4.0.0": { 2105 + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", 2106 + "dependencies": [ 2107 + "@types/unist" 2108 + ] 2109 + }, 2110 + "unist-util-visit-children@3.0.0": { 2111 + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", 2112 + "dependencies": [ 2113 + "@types/unist" 2114 + ] 2115 + }, 2116 + "unist-util-visit-parents@6.0.1": { 2117 + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", 2118 + "dependencies": [ 2119 + "@types/unist", 2120 + "unist-util-is" 2121 + ] 2122 + }, 2123 + "unist-util-visit@5.0.0": { 2124 + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", 2125 + "dependencies": [ 2126 + "@types/unist", 2127 + "unist-util-is", 2128 + "unist-util-visit-parents" 2129 + ] 2130 + }, 2131 + "unstorage@1.14.4": { 2132 + "integrity": "sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==", 2133 + "dependencies": [ 2134 + "anymatch", 2135 + "chokidar", 2136 + "destr", 2137 + "h3", 2138 + "lru-cache", 2139 + "node-fetch-native", 2140 + "ofetch", 2141 + "ufo" 2142 + ] 2143 + }, 2144 + "vfile-location@5.0.3": { 2145 + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", 2146 + "dependencies": [ 2147 + "@types/unist", 2148 + "vfile" 2149 + ] 2150 + }, 2151 + "vfile-message@4.0.2": { 2152 + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", 2153 + "dependencies": [ 2154 + "@types/unist", 2155 + "unist-util-stringify-position" 2156 + ] 2157 + }, 2158 + "vfile@6.0.3": { 2159 + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", 2160 + "dependencies": [ 2161 + "@types/unist", 2162 + "vfile-message" 2163 + ] 2164 + }, 2165 + "vite@6.0.7": { 2166 + "integrity": "sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==", 2167 + "dependencies": [ 2168 + "esbuild@0.24.2", 2169 + "fsevents", 2170 + "postcss", 2171 + "rollup" 2172 + ] 2173 + }, 2174 + "vitefu@1.0.5_vite@6.0.7": { 2175 + "integrity": "sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==", 2176 + "dependencies": [ 2177 + "vite" 2178 + ] 2179 + }, 2180 + "web-namespaces@2.0.1": { 2181 + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" 2182 + }, 2183 + "which-pm-runs@1.1.0": { 2184 + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==" 2185 + }, 2186 + "which-pm@3.0.0": { 2187 + "integrity": "sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==", 2188 + "dependencies": [ 2189 + "load-yaml-file" 2190 + ] 2191 + }, 2192 + "widest-line@5.0.0": { 2193 + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", 2194 + "dependencies": [ 2195 + "string-width@7.2.0" 2196 + ] 2197 + }, 2198 + "wrap-ansi@9.0.0": { 2199 + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", 2200 + "dependencies": [ 2201 + "ansi-styles", 2202 + "string-width@7.2.0", 2203 + "strip-ansi@7.1.0" 2204 + ] 2205 + }, 2206 + "xxhash-wasm@1.1.0": { 2207 + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==" 2208 + }, 2209 + "yargs-parser@21.1.1": { 2210 + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" 2211 + }, 2212 + "yocto-queue@1.1.1": { 2213 + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==" 2214 + }, 2215 + "yocto-spinner@0.1.2": { 2216 + "integrity": "sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==", 2217 + "dependencies": [ 2218 + "yoctocolors" 2219 + ] 2220 + }, 2221 + "yoctocolors@2.1.1": { 2222 + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==" 2223 + }, 2224 + "zod-to-json-schema@3.24.1_zod@3.24.1": { 2225 + "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==", 2226 + "dependencies": [ 2227 + "zod" 2228 + ] 2229 + }, 2230 + "zod-to-ts@1.2.0_typescript@5.7.3_zod@3.24.1": { 2231 + "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", 2232 + "dependencies": [ 2233 + "typescript", 2234 + "zod" 2235 + ] 2236 + }, 2237 + "zod@3.24.1": { 2238 + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==" 2239 + }, 2240 + "zwitch@2.0.4": { 2241 + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" 2242 + } 2243 + }, 2244 + "workspace": { 2245 + "packageJson": { 2246 + "dependencies": [ 2247 + "npm:@astrojs/rss@^4.0.11", 2248 + "npm:@astrojs/sitemap@^3.2.1", 2249 + "npm:astro@^5.1.3" 2250 + ] 2251 + } 2252 + } 2253 + }
-1
package.json
··· 9 9 "astro": "astro" 10 10 }, 11 11 "dependencies": { 12 - "@astrojs/mdx": "^4.0.3", 13 12 "@astrojs/rss": "^4.0.11", 14 13 "@astrojs/sitemap": "^3.2.1", 15 14 "astro": "^5.1.3"
+52
src/components/ContactLinks.astro
··· 1 + --- 2 + import IconRssFeed from "./icons/IconRssFeed.astro"; 3 + import IconSelector from "./IconSelector.astro"; 4 + 5 + const links = [ 6 + { 7 + title: "GitHub", 8 + url: "https://github.com/vixalien", 9 + }, 10 + { 11 + title: "Donate", 12 + url: "https://buymeacoffee.com/vixalien", 13 + // icon: <CoffeeIcon />, 14 + }, 15 + { 16 + title: "Email", 17 + url: "mailto:hey[at]vix[remove-this]alien[dot]com", 18 + }, 19 + { 20 + title: "Mastodon", 21 + url: "https://mas.to/@vixalientoots", 22 + rel: "me", 23 + // icon: <MastodonIcon />, 24 + }, 25 + { 26 + title: "Resume.pdf", 27 + url: "/Resume.pdf", 28 + // icon: <DocumentIcon />, 29 + }, 30 + ]; 31 + --- 32 + 33 + <ul> 34 + { 35 + links.map((link) => { 36 + return ( 37 + <li> 38 + <a href={link.url} class="link-with-icon" rel={link.rel}> 39 + <IconSelector link={link.url} /> 40 + <span>{link.title}</span> 41 + </a> 42 + </li> 43 + ); 44 + }) 45 + } 46 + <li> 47 + <a href="/rss.xml" title="Atom Feed" class="link-with-icon"> 48 + <IconRssFeed /> 49 + <span>RSS</span> 50 + </a> 51 + </li> 52 + </ul>
+4 -78
src/components/Header.astro
··· 1 1 --- 2 - import HeaderLink from './HeaderLink.astro'; 3 - import { SITE_TITLE } from '../consts'; 2 + export interface Props { 3 + title?: string; 4 + } 4 5 --- 5 6 6 7 <header> 7 8 <nav> 8 - <h2><a href="/">{SITE_TITLE}</a></h2> 9 - <div class="internal-links"> 10 - <HeaderLink href="/">Home</HeaderLink> 11 - <HeaderLink href="/blog">Blog</HeaderLink> 12 - <HeaderLink href="/about">About</HeaderLink> 13 - </div> 14 - <div class="social-links"> 15 - <a href="https://m.webtoo.ls/@astro" target="_blank"> 16 - <span class="sr-only">Follow Astro on Mastodon</span> 17 - <svg viewBox="0 0 16 16" aria-hidden="true" width="32" height="32" 18 - ><path 19 - fill="currentColor" 20 - d="M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a3.614 3.614 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522c0-.859.22-1.541.66-2.046.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764.442.505.661 1.187.661 2.046v4.203z" 21 - ></path></svg 22 - > 23 - </a> 24 - <a href="https://twitter.com/astrodotbuild" target="_blank"> 25 - <span class="sr-only">Follow Astro on Twitter</span> 26 - <svg viewBox="0 0 16 16" aria-hidden="true" width="32" height="32" 27 - ><path 28 - fill="currentColor" 29 - d="M5.026 15c6.038 0 9.341-5.003 9.341-9.334 0-.14 0-.282-.006-.422A6.685 6.685 0 0 0 16 3.542a6.658 6.658 0 0 1-1.889.518 3.301 3.301 0 0 0 1.447-1.817 6.533 6.533 0 0 1-2.087.793A3.286 3.286 0 0 0 7.875 6.03a9.325 9.325 0 0 1-6.767-3.429 3.289 3.289 0 0 0 1.018 4.382A3.323 3.323 0 0 1 .64 6.575v.045a3.288 3.288 0 0 0 2.632 3.218 3.203 3.203 0 0 1-.865.115 3.23 3.23 0 0 1-.614-.057 3.283 3.283 0 0 0 3.067 2.277A6.588 6.588 0 0 1 .78 13.58a6.32 6.32 0 0 1-.78-.045A9.344 9.344 0 0 0 5.026 15z" 30 - ></path></svg 31 - > 32 - </a> 33 - <a href="https://github.com/withastro/astro" target="_blank"> 34 - <span class="sr-only">Go to Astro's GitHub repo</span> 35 - <svg viewBox="0 0 16 16" aria-hidden="true" width="32" height="32" 36 - ><path 37 - fill="currentColor" 38 - d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" 39 - ></path></svg 40 - > 41 - </a> 42 - </div> 9 + <a href="/">&larr; {Astro.props.title || "Home"}</a> 43 10 </nav> 44 11 </header> 45 - <style> 46 - header { 47 - margin: 0; 48 - padding: 0 1em; 49 - background: white; 50 - box-shadow: 0 2px 8px rgba(var(--black), 5%); 51 - } 52 - h2 { 53 - margin: 0; 54 - font-size: 1em; 55 - } 56 - 57 - h2 a, 58 - h2 a.active { 59 - text-decoration: none; 60 - } 61 - nav { 62 - display: flex; 63 - align-items: center; 64 - justify-content: space-between; 65 - } 66 - nav a { 67 - padding: 1em 0.5em; 68 - color: var(--black); 69 - border-bottom: 4px solid transparent; 70 - text-decoration: none; 71 - } 72 - nav a.active { 73 - text-decoration: none; 74 - border-bottom-color: var(--accent); 75 - } 76 - .social-links, 77 - .social-links a { 78 - display: flex; 79 - } 80 - @media (max-width: 720px) { 81 - .social-links { 82 - display: none; 83 - } 84 - } 85 - </style>
-24
src/components/HeaderLink.astro
··· 1 - --- 2 - import type { HTMLAttributes } from 'astro/types'; 3 - 4 - type Props = HTMLAttributes<'a'>; 5 - 6 - const { href, class: className, ...props } = Astro.props; 7 - const pathname = Astro.url.pathname.replace(import.meta.env.BASE_URL, ''); 8 - const subpath = pathname.match(/[^\/]+/g); 9 - const isActive = href === pathname || href === '/' + (subpath?.[0] || ''); 10 - --- 11 - 12 - <a href={href} class:list={[className, { active: isActive }]} {...props}> 13 - <slot /> 14 - </a> 15 - <style> 16 - a { 17 - display: inline-block; 18 - text-decoration: none; 19 - } 20 - a.active { 21 - font-weight: bolder; 22 - text-decoration: underline; 23 - } 24 - </style>
+64
src/components/IconSelector.astro
··· 1 + --- 2 + import IconCoffee from "./icons/IconCoffee.astro"; 3 + import IconDocument from "./icons/IconDocument.astro"; 4 + import IconEmail from "./icons/IconEmail.astro"; 5 + import IconExternalLink from "./icons/IconExternalLink.astro"; 6 + import IconGithub from "./icons/IconGithub.astro"; 7 + import IconLinkedIn from "./icons/IconLinkedIn.astro"; 8 + import IconMastodon from "./icons/IconMastodon.astro"; 9 + import IconRssFeed from "./icons/IconRssFeed.astro"; 10 + 11 + export interface Props { 12 + link: string; 13 + } 14 + 15 + const { link } = Astro.props; 16 + 17 + const url = new URL(link, "https://i.rock"); 18 + 19 + const fedi = new Set(["mas.to", "mastodon.social"] as const); 20 + type FediType = typeof fedi extends Set<infer A> ? A : never; 21 + 22 + const allowed = new Set([ 23 + "email", 24 + "buymeacoffee.com", 25 + "github.com", 26 + "twitter.com", 27 + "instagram.com", 28 + "linkedin.com", 29 + "fedi", 30 + "external", 31 + "document", 32 + "rss", 33 + ] as const); 34 + export type DomainType = typeof allowed extends Set<infer A> ? A : never; 35 + 36 + let type: DomainType = "external"; 37 + 38 + if (url.pathname.endsWith(".pdf")) { 39 + type = "document"; 40 + } else if (url.protocol === "mailto:") { 41 + type = "email"; 42 + } else { 43 + type = url.hostname.replace(/^www\./, "") as DomainType; 44 + if (fedi.has(type as FediType)) type = "fedi"; 45 + } 46 + 47 + if (!allowed.has(type)) type = "external"; 48 + --- 49 + 50 + {type === "buymeacoffee.com" && <IconCoffee />} 51 + 52 + {type === "document" && <IconDocument />} 53 + 54 + {type === "email" && <IconEmail />} 55 + 56 + {type === "external" && <IconExternalLink />} 57 + 58 + {type === "github.com" && <IconGithub />} 59 + 60 + {type === "linkedin.com" && <IconLinkedIn />} 61 + 62 + {type === "fedi" && <IconMastodon />} 63 + 64 + {type === "rss" && <IconRssFeed />}
+28
src/components/ImageContainer.astro
··· 1 + --- 2 + export interface Props { 3 + image: string; 4 + invert: boolean; 5 + } 6 + 7 + const { invert, image } = Astro.props; 8 + --- 9 + 10 + <div class={`image-container` + (invert ? " invert" : "")}> 11 + <div class="inner-container container"> 12 + <div class="top"> 13 + <slot name="top" /> 14 + </div> 15 + <picture> 16 + <img src={image} aria-hidden alt="Banner Image for post" /> 17 + </picture> 18 + <div class="bottom" id="main"> 19 + <slot name="bottom" /> 20 + <div class="stack"> 21 + <p> 22 + <a href="#main" class="read-link">&darr; Read</a> 23 + </p> 24 + <hr /> 25 + </div> 26 + </div> 27 + </div> 28 + </div>
+29
src/components/Intro.astro
··· 1 + --- 2 + import PrettyDate from "./PrettyDate.astro"; 3 + 4 + export type DateFormat = (date: Date) => string; 5 + 6 + interface Props { 7 + title: string | null; 8 + created?: Date; 9 + author?: string; 10 + dateFormat?: DateFormat; 11 + } 12 + 13 + const { title, created, author, dateFormat } = Astro.props; 14 + --- 15 + 16 + <div class="intro"> 17 + { 18 + created ? ( 19 + <> 20 + <small> 21 + {author && <span>{author || ""} at </span>} 22 + <PrettyDate date={created} dateFormat={dateFormat} /> 23 + </small> 24 + <br /> 25 + </> 26 + ) : null 27 + } 28 + <h1>{title}</h1> 29 + </div>
+27
src/components/PostInfo.astro
··· 1 + --- 2 + import type { CollectionEntry } from "astro:content"; 3 + import Intro from "./Intro.astro"; 4 + import Tags from "./Tags.astro"; 5 + 6 + type Props = Pick< 7 + CollectionEntry<"blog">["data"], 8 + "title" | "description" | "pubDate" 9 + > 10 + 11 + const { title, description, pubDate } = Astro.props; 12 + --- 13 + 14 + <> 15 + <Intro title={title} created={pubDate} author="Angelo Verlain" /> 16 + <p> 17 + {description} 18 + <!-- {state.readtime && ( 19 + <span> 20 + <br /> 21 + {post.readTime} min read. 22 + </span> 23 + )} --> 24 + <br /> 25 + <Tags tags={[]} /> 26 + </p> 27 + </>
+73
src/components/PostsIndex.astro
··· 1 + --- 2 + import { getCollection } from "astro:content"; 3 + import PrettyDate from "./PrettyDate.astro"; 4 + import Tags from "./Tags.astro"; 5 + import type { CollectionEntry } from "astro:content"; 6 + 7 + const posts = (await getCollection("blog")).sort( 8 + (a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(), 9 + ); 10 + 11 + type Post = CollectionEntry<"blog">; 12 + 13 + const postsByYear = Object.entries( 14 + posts.reduce( 15 + (acc, post) => { 16 + const year = post.data.pubDate.getFullYear().toString(); 17 + acc[year] ??= []; 18 + acc[year].push(post); 19 + return acc; 20 + }, 21 + {} as Record<string, Post[]>, 22 + ), 23 + ).sort(([year1], [year2]) => year2.localeCompare(year1)); 24 + 25 + const author = "Angelo Verlain", 26 + tags: string[] = []; 27 + --- 28 + 29 + <div class="posts"> 30 + { 31 + postsByYear.map(([year, posts]) => { 32 + if (!posts) return null; 33 + 34 + return ( 35 + <> 36 + <h3>{year}</h3> 37 + {posts.map( 38 + ({ 39 + body, 40 + id, 41 + data: { 42 + title, 43 + description: snippet, 44 + updatedDate: publishDate, 45 + heroImage, 46 + }, 47 + }) => ( 48 + <p> 49 + {heroImage ? ( 50 + <a href={`/blog/${id}`} class="post-image" aria-label={title}> 51 + <img src={heroImage} alt={title} /> 52 + </a> 53 + ) : null} 54 + <a href={`/blog/${id}`} class="post-title"> 55 + <span>{title} &rarr;</span> 56 + </a> 57 + <br /> 58 + <small class="intro-meta"> 59 + {/* {author && <span>{author || ""} at </span>} */} 60 + <PrettyDate date={publishDate ?? new Date()} /> 61 + </small> 62 + <br /> 63 + <span>{snippet}</span> 64 + <br /> 65 + <Tags tags={tags} /> 66 + </p> 67 + ), 68 + )} 69 + </> 70 + ); 71 + }) 72 + } 73 + </div>
+23
src/components/PrettyDate.astro
··· 1 + --- 2 + import type { DateFormat } from "./Intro.astro"; 3 + 4 + interface Props { 5 + date: Date; 6 + dateFormat?: DateFormat; 7 + } 8 + 9 + const { date, dateFormat } = Astro.props; 10 + 11 + let formatted; 12 + if (dateFormat) { 13 + formatted = dateFormat(date); 14 + } else { 15 + formatted = date.toLocaleDateString("en-uk", { 16 + year: "numeric", 17 + month: "short", 18 + day: "numeric", 19 + }); 20 + } 21 + --- 22 + 23 + <time datetime={date.toISOString()}>{formatted}</time>
+25
src/components/Tags.astro
··· 1 + --- 2 + export interface Props { 3 + tags?: string[]; 4 + } 5 + 6 + const { tags } = Astro.props; 7 + --- 8 + 9 + { 10 + tags ? ( 11 + <small class="tags"> 12 + {tags.map((tag, index) => ( 13 + <> 14 + <a href={`/?tag=` + tag} class="tags"> 15 + #{tag} 16 + </a> 17 + {index >= tags.length - 1 ? null : <> &middot; </>} 18 + </> 19 + ))} 20 + <br /> 21 + </small> 22 + ) : ( 23 + "" 24 + ) 25 + }
+9
src/components/Welcome.astro
··· 1 + --- 2 + 3 + --- 4 + 5 + <div class="welcome"> 6 + <p> 7 + <slot /> 8 + </p> 9 + </div>
+12
src/components/icons/IconCoffee.astro
··· 1 + <svg 2 + xmlns="http://www.w3.org/2000/svg" 3 + viewBox="0 0 640 512" 4 + width="1em" 5 + height="1em" 6 + stroke="currentColor" 7 + fill="currentColor" 8 + > 9 + <path 10 + d="M96 64c0-17.7 14.3-32 32-32H448h64c70.7 0 128 57.3 128 128s-57.3 128-128 128H480c0 53-43 96-96 96H192c-53 0-96-43-96-96V64zM480 224h32c35.3 0 64-28.7 64-64s-28.7-64-64-64H480V224zM32 416H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32z" 11 + ></path> 12 + </svg>
+16
src/components/icons/IconDocument.astro
··· 1 + <svg 2 + width="1em" 3 + height="1em" 4 + stroke-width={2} 5 + stroke="currentColor" 6 + fill="none" 7 + stroke-linecap="round" 8 + stroke-linejoin="round" 9 + viewBox="0 0 24 24" 10 + > 11 + <path d="M0 0h24v24H0z" stroke="none"></path> 12 + <path d="M14 3v4a1 1 0 001 1h4"></path> 13 + <path 14 + d="M17 21H7a2 2 0 01-2-2V5a2 2 0 012-2h7l5 5v11a2 2 0 01-2 2zM9 9h1M9 13h6M9 17h6" 15 + ></path> 16 + </svg>
+12
src/components/icons/IconEmail.astro
··· 1 + <svg 2 + class="inline-block w-5 h-5" 3 + viewBox="0 0 20 20" 4 + fill="none" 5 + xmlns="http://www.w3.org/2000/svg" 6 + width="1em" 7 + height="1em" 8 + > 9 + <path 10 + d="M9.99963 18C8.9063 18 7.87297 17.7899 6.89963 17.3696C5.9263 16.9499 5.07643 16.3765 4.35003 15.6496C3.6231 14.9232 3.04977 14.0733 2.63003 13.1C2.20977 12.1267 1.99963 11.0933 1.99963 10C1.99963 8.89333 2.20977 7.8568 2.63003 6.8904C3.04977 5.92347 3.6231 5.0768 4.35003 4.3504C5.07643 3.62347 5.9263 3.04987 6.89963 2.6296C7.87297 2.20987 8.9063 2 9.99963 2C11.1063 2 12.1428 2.20987 13.1092 2.6296C14.0762 3.04987 14.9228 3.62347 15.6492 4.3504C16.3762 5.0768 16.9495 5.92347 17.3692 6.8904C17.7895 7.8568 17.9996 8.89333 17.9996 10V11.16C17.9996 11.9467 17.7298 12.6165 17.19 13.1696C16.6498 13.7232 15.9863 14 15.1996 14C14.7196 14 14.273 13.8933 13.8596 13.68C13.4463 13.4667 13.1063 13.1867 12.8396 12.84C12.4796 13.2 12.0564 13.4835 11.57 13.6904C11.0831 13.8968 10.5596 14 9.99963 14C8.89297 14 7.94977 13.6099 7.17003 12.8296C6.38977 12.0499 5.99963 11.1067 5.99963 10C5.99963 8.89333 6.38977 7.94987 7.17003 7.1696C7.94977 6.38987 8.89297 6 9.99963 6C11.1063 6 12.0498 6.38987 12.83 7.1696C13.6098 7.94987 13.9996 8.89333 13.9996 10V11.16C13.9996 11.5467 14.1196 11.8499 14.3596 12.0696C14.5996 12.2899 14.8796 12.4 15.1996 12.4C15.5196 12.4 15.7996 12.2899 16.0396 12.0696C16.2796 11.8499 16.3996 11.5467 16.3996 11.16V10C16.3996 8.25333 15.7695 6.74987 14.5092 5.4896C13.2495 4.22987 11.7463 3.6 9.99963 3.6C8.25297 3.6 6.7495 4.22987 5.48923 5.4896C4.2295 6.74987 3.59963 8.25333 3.59963 10C3.59963 11.7467 4.2295 13.2499 5.48923 14.5096C6.7495 15.7699 8.25297 16.4 9.99963 16.4H13.9996V18H9.99963ZM9.99963 12.4C10.6663 12.4 11.233 12.1667 11.6996 11.7C12.1663 11.2333 12.3996 10.6667 12.3996 10C12.3996 9.33333 12.1663 8.76667 11.6996 8.3C11.233 7.83333 10.6663 7.6 9.99963 7.6C9.33297 7.6 8.7663 7.83333 8.29963 8.3C7.83297 8.76667 7.59963 9.33333 7.59963 10C7.59963 10.6667 7.83297 11.2333 8.29963 11.7C8.7663 12.1667 9.33297 12.4 9.99963 12.4Z" 11 + fill="currentColor"></path> 12 + </svg>
+13
src/components/icons/IconExternalLink.astro
··· 1 + <svg 2 + class="inline-block w-5 h-5" 3 + viewBox="0 0 20 20" 4 + fill="none" 5 + xmlns="http://www.w3.org/2000/svg" 6 + width="1em" 7 + height="1em" 8 + > 9 + <path 10 + d="M6.66715 5.83333C6.66715 5.3731 7.04025 5 7.50049 5L14.1672 5C14.6274 5 15.0005 5.3731 15.0005 5.83333V12.5C15.0005 12.9602 14.6274 13.3333 14.1672 13.3333C13.7069 13.3333 13.3338 12.9602 13.3338 12.5V7.84518L6.42308 14.7559C6.09764 15.0814 5.57 15.0814 5.24457 14.7559C4.91913 14.4305 4.91913 13.9028 5.24457 13.5774L12.1553 6.66667L7.50049 6.66667C7.04025 6.66667 6.66715 6.29357 6.66715 5.83333Z" 11 + fill="currentColor" 12 + /> 13 + </svg>
+12
src/components/icons/IconGithub.astro
··· 1 + <svg 2 + class="inline-block w-5 h-5" 3 + viewBox="0 0 20 20" 4 + fill="none" 5 + xmlns="http://www.w3.org/2000/svg" 6 + width="1em" 7 + height="1em" 8 + > 9 + <path 10 + d="M10 2C5.58161 2 2 5.67194 2 10.2029C2 13.8265 4.292 16.9015 7.4712 17.9857C7.8712 18.0611 8.01681 17.808 8.01681 17.5902C8.01681 17.3961 8.01042 16.8794 8.00641 16.1956C5.7808 16.6911 5.3112 15.0959 5.3112 15.0959C4.948 14.1476 4.4232 13.8954 4.4232 13.8954C3.69681 13.3876 4.47841 13.3975 4.47841 13.3975C5.28081 13.4548 5.70322 14.2426 5.70322 14.2426C6.41683 15.4955 7.57603 15.1335 8.03122 14.9239C8.10481 14.3941 8.31122 14.033 8.54002 13.8282C6.76402 13.621 4.896 12.9168 4.896 9.77384C4.896 8.87877 5.208 8.14588 5.7192 7.57263C5.6368 7.36544 5.36241 6.531 5.79759 5.40254C5.79759 5.40254 6.46959 5.18143 7.99759 6.24272C8.59777 6.06848 9.28719 5.96782 9.99941 5.96674C10.6794 5.97002 11.364 6.06092 12.0032 6.24272C13.5304 5.18143 14.2008 5.40171 14.2008 5.40171C14.6376 6.53097 14.3624 7.36543 14.2808 7.5726C14.7928 8.14583 15.1032 8.87874 15.1032 9.7738C15.1032 12.9249 13.232 13.6185 11.4504 13.8216C11.7376 14.0747 11.9928 14.575 11.9928 15.3407C11.9928 16.4364 11.9832 17.3216 11.9832 17.5902C11.9832 17.8097 12.1272 18.0652 12.5336 17.9849C15.7378 16.8608 18 13.8039 18 10.2062C18 10.2051 18 10.2039 18 10.2027C18 5.67175 14.4176 2 10 2Z" 11 + fill="currentColor"></path> 12 + </svg>
+12
src/components/icons/IconLinkedIn.astro
··· 1 + <svg 2 + class="inline-block w-5 h-5" 3 + viewBox="0 0 20 20" 4 + fill="none" 5 + xmlns="http://www.w3.org/2000/svg" 6 + width="1em" 7 + height="1em" 8 + > 9 + <path 10 + d="M15.8338 2.5C16.2758 2.5 16.6998 2.67559 17.0123 2.98816C17.3249 3.30072 17.5005 3.72464 17.5005 4.16667V15.8333C17.5005 16.2754 17.3249 16.6993 17.0123 17.0118C16.6998 17.3244 16.2758 17.5 15.8338 17.5H4.16715C3.72513 17.5 3.3012 17.3244 2.98864 17.0118C2.67608 16.6993 2.50049 16.2754 2.50049 15.8333V4.16667C2.50049 3.72464 2.67608 3.30072 2.98864 2.98816C3.3012 2.67559 3.72513 2.5 4.16715 2.5H15.8338ZM15.4172 15.4167V11C15.4172 10.2795 15.1309 9.5885 14.6215 9.07903C14.112 8.56955 13.421 8.28333 12.7005 8.28333C11.9922 8.28333 11.1672 8.71667 10.7672 9.36667V8.44167H8.44215V15.4167H10.7672V11.3083C10.7672 10.6667 11.2838 10.1417 11.9255 10.1417C12.2349 10.1417 12.5317 10.2646 12.7504 10.4834C12.9692 10.7022 13.0922 10.9989 13.0922 11.3083V15.4167H15.4172ZM5.73382 7.13333C6.10512 7.13333 6.46122 6.98583 6.72377 6.72328C6.98632 6.46073 7.13382 6.10464 7.13382 5.73333C7.13382 4.95833 6.50882 4.325 5.73382 4.325C5.36031 4.325 5.00209 4.47338 4.73798 4.73749C4.47387 5.0016 4.32549 5.35982 4.32549 5.73333C4.32549 6.50833 4.95882 7.13333 5.73382 7.13333ZM6.89216 15.4167V8.44167H4.58382V15.4167H6.89216Z" 11 + fill="currentColor"></path> 12 + </svg>
+11
src/components/icons/IconMastodon.astro
··· 1 + <svg 2 + viewBox="0 0 20 20" 3 + fill="none" 4 + xmlns="http://www.w3.org/2000/svg" 5 + width="1em" 6 + height="1em" 7 + > 8 + <path 9 + d="m 19.511621,6.5529853 c 0,-4.3325586 -2.858596,-5.62785744 -2.858596,-5.62785744 -2.769261,-1.25063495 -10.183739,-1.25063495 -12.9530035,0 0,0 -2.85859381,1.29529884 -2.85859381,5.62785744 0,5.1811997 -0.31265876,11.6130377 4.73454581,12.9083367 1.7866208,0.491322 3.3499146,0.580654 4.6005495,0.53599 2.277943,-0.134007 3.528578,-0.803981 3.528578,-0.803981 l -0.04466,-1.652625 c 0,0 -1.652625,0.491322 -3.483914,0.446655 -1.7866155,-0.08935 -3.7072318,-0.22332 -3.9752264,-2.41194 l -0.044657,-0.625317 c 3.8412328,0.937976 7.1018194,0.40199 7.9951284,0.312669 2.50127,-0.312669 4.689881,-1.875951 4.957876,-3.260582 0.446654,-2.2332757 0.40199,-5.4491947 0.40199,-5.4491947 z M 16.161703,12.136176 H 14.062424 V 7.0443035 c 0,-2.2332752 -2.858594,-2.3226069 -2.858594,0.312669 V 10.170902 H 9.1492155 V 7.3569732 c 0,-2.5905977 -2.8585926,-2.5459339 -2.8585926,-0.312669 v 5.0918718 h -2.09928 c 0,-5.4491951 -0.223321,-6.6104988 0.8039772,-7.8164697 1.1613071,-1.2952989 3.5732455,-1.3399665 4.6452174,0.2679762 l 0.5359855,0.8933087 0.535986,-0.8933087 c 1.071975,-1.6526252 3.483913,-1.5186297 4.60055,-0.2679762 1.071975,1.2506352 0.848644,2.3672746 0.848644,7.8164697 z" 10 + fill="currentColor"></path> 11 + </svg>
+15
src/components/icons/IconRssFeed.astro
··· 1 + <svg 2 + class="inline-block w-4 h-4" 3 + viewBox="0 0 20 20" 4 + fill="currentColor" 5 + xmlns="http://www.w3.org/2000/svg" 6 + width="1em" 7 + height="1em" 8 + > 9 + <path 10 + d="M5 3a1 1 0 000 2c5.523 0 10 4.477 10 10a1 1 0 102 0C17 8.373 11.627 3 5 3z" 11 + ></path> 12 + <path 13 + d="M4 9a1 1 0 011-1 7 7 0 017 7 1 1 0 11-2 0 5 5 0 00-5-5 1 1 0 01-1-1zM3 15a2 2 0 114 0 2 2 0 01-4 0z" 14 + ></path> 15 + </svg>
+4 -2
src/consts.ts
··· 1 1 // Place any global data in this file. 2 2 // You can import this data from anywhere in your site by using the `import` keyword. 3 3 4 - export const SITE_TITLE = 'Astro Blog'; 5 - export const SITE_DESCRIPTION = 'Welcome to my website!'; 4 + export const SITE_TITLE = "vixalien´s blog"; 5 + export const SITE_DESCRIPTION = "Welcome to my website!"; 6 + export const AUTHOR = "vixalien"; 7 + export const PUBLISH_YEAR = new Date().getFullYear();
-6
src/content/blog/using-mdx.mdx
··· 18 18 Here is how you import and use a UI component inside of MDX. 19 19 When you open this page in the browser, you should see the clickable button below. 20 20 21 - import HeaderLink from '../../components/HeaderLink.astro'; 22 - 23 - <HeaderLink href="#" onclick="alert('clicked!')"> 24 - Embedded component in MDX 25 - </HeaderLink> 26 - 27 21 ## More Links 28 22 29 23 - [MDX Syntax Documentation](https://mdxjs.com/docs/what-is-mdx)
+53 -70
src/layouts/BlogPost.astro
··· 1 1 --- 2 - import type { CollectionEntry } from 'astro:content'; 3 - import BaseHead from '../components/BaseHead.astro'; 4 - import Header from '../components/Header.astro'; 5 - import Footer from '../components/Footer.astro'; 6 - import FormattedDate from '../components/FormattedDate.astro'; 2 + import type { CollectionEntry } from "astro:content"; 3 + import BaseHead from "../components/BaseHead.astro"; 4 + import Header from "../components/Header.astro"; 5 + import ImageContainer from "../components/ImageContainer.astro"; 6 + import PostInfo from "../components/PostInfo.astro"; 7 + import { PUBLISH_YEAR, SITE_TITLE } from "../consts"; 7 8 8 - type Props = CollectionEntry<'blog'>['data']; 9 + type Props = CollectionEntry<"blog">["data"]; 9 10 10 - const { title, description, pubDate, updatedDate, heroImage } = Astro.props; 11 + const { title, description, pubDate, heroImage } = Astro.props; 11 12 --- 12 13 13 14 <html lang="en"> 14 15 <head> 15 16 <BaseHead title={title} description={description} /> 16 - <style> 17 - main { 18 - width: calc(100% - 2em); 19 - max-width: 100%; 20 - margin: 0; 21 - } 22 - .hero-image { 23 - width: 100%; 24 - } 25 - .hero-image img { 26 - display: block; 27 - margin: 0 auto; 28 - border-radius: 12px; 29 - box-shadow: var(--box-shadow); 30 - } 31 - .prose { 32 - width: 720px; 33 - max-width: calc(100% - 2em); 34 - margin: auto; 35 - padding: 1em; 36 - color: rgb(var(--gray-dark)); 37 - } 38 - .title { 39 - margin-bottom: 1em; 40 - padding: 1em 0; 41 - text-align: center; 42 - line-height: 1; 43 - } 44 - .title h1 { 45 - margin: 0 0 0.5em 0; 46 - } 47 - .date { 48 - margin-bottom: 0.5em; 49 - color: rgb(var(--gray)); 50 - } 51 - .last-updated-on { 52 - font-style: italic; 53 - } 54 - </style> 55 17 </head> 56 18 57 - <body> 58 - <Header /> 59 - <main> 19 + <body class="overflow-yes"> 20 + { 21 + heroImage && ( 22 + <ImageContainer image={heroImage} invert={false}> 23 + <Fragment slot="top"> 24 + <Header title={SITE_TITLE} /> 25 + </Fragment> 26 + <Fragment slot="bottom"> 27 + <PostInfo 28 + title={title} 29 + description={description} 30 + pubDate={pubDate} 31 + /> 32 + </Fragment> 33 + </ImageContainer> 34 + ) 35 + } 36 + <main class="container"> 37 + { 38 + !heroImage && ( 39 + <> 40 + <Header title={SITE_TITLE} /> 41 + <PostInfo 42 + title={title} 43 + description={description} 44 + pubDate={pubDate} 45 + /> 46 + <hr /> 47 + </> 48 + ) 49 + } 60 50 <article> 61 - <div class="hero-image"> 62 - {heroImage && <img width={1020} height={510} src={heroImage} alt="" />} 63 - </div> 64 - <div class="prose"> 65 - <div class="title"> 66 - <div class="date"> 67 - <FormattedDate date={pubDate} /> 68 - { 69 - updatedDate && ( 70 - <div class="last-updated-on"> 71 - Last updated on <FormattedDate date={updatedDate} /> 72 - </div> 73 - ) 74 - } 51 + <slot /> 52 + </article> 53 + <hr /> 54 + <br /> 55 + <span> 56 + <a class="top" href="#top">↑ Scroll to Top</a> 57 + { 58 + ( 59 + <div> 60 + <br /> 61 + <span>&copy; Angelo Verlain {PUBLISH_YEAR}</span> 75 62 </div> 76 - <h1>{title}</h1> 77 - <hr /> 78 - </div> 79 - <slot /> 80 - </div> 81 - </article> 63 + ) 64 + } 65 + </span> 82 66 </main> 83 - <Footer /> 84 67 </body> 85 68 </html>
+24
src/pages/404.astro
··· 1 + --- 2 + import BaseHead from "../components/BaseHead.astro"; 3 + import { SITE_TITLE, SITE_DESCRIPTION } from "../consts"; 4 + import Intro from "../components/Intro.astro"; 5 + import Welcome from "../components/Welcome.astro"; 6 + import Header from "../components/Header.astro"; 7 + --- 8 + 9 + <!doctype html> 10 + <html lang="en"> 11 + <head> 12 + <BaseHead 13 + title={"404 - Page Not Found - " + SITE_TITLE} 14 + description={SITE_DESCRIPTION} 15 + /> 16 + </head> 17 + <body> 18 + <main class="container"> 19 + <Header title={SITE_TITLE} /> 20 + <Intro title="404 - page not found" /> 21 + <Welcome> You're lost, but aren't we all? :) </Welcome> 22 + </main> 23 + </body> 24 + </html>
-62
src/pages/about.astro
··· 1 - --- 2 - import Layout from '../layouts/BlogPost.astro'; 3 - --- 4 - 5 - <Layout 6 - title="About Me" 7 - description="Lorem ipsum dolor sit amet" 8 - pubDate={new Date('August 08 2021')} 9 - heroImage="/blog-placeholder-about.jpg" 10 - > 11 - <p> 12 - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut 13 - labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo 14 - viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam 15 - adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus 16 - et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus 17 - vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque 18 - sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. 19 - </p> 20 - 21 - <p> 22 - Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non 23 - tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non 24 - blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna 25 - porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis 26 - massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. 27 - Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis 28 - bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra 29 - massa massa ultricies mi. 30 - </p> 31 - 32 - <p> 33 - Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl 34 - suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet 35 - nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae 36 - turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem 37 - dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat 38 - semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus 39 - vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum 40 - facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam 41 - vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla 42 - urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim. 43 - </p> 44 - 45 - <p> 46 - Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper 47 - viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc 48 - scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur 49 - gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus 50 - pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim 51 - blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id 52 - cursus metus aliquam eleifend mi. 53 - </p> 54 - 55 - <p> 56 - Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta 57 - nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam 58 - tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci 59 - ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar 60 - proin gravida. Egestas integer eget aliquet nibh praesent tristique magna. 61 - </p> 62 - </Layout>
-111
src/pages/blog/index.astro
··· 1 - --- 2 - import BaseHead from '../../components/BaseHead.astro'; 3 - import Header from '../../components/Header.astro'; 4 - import Footer from '../../components/Footer.astro'; 5 - import { SITE_TITLE, SITE_DESCRIPTION } from '../../consts'; 6 - import { getCollection } from 'astro:content'; 7 - import FormattedDate from '../../components/FormattedDate.astro'; 8 - 9 - const posts = (await getCollection('blog')).sort( 10 - (a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(), 11 - ); 12 - --- 13 - 14 - <!doctype html> 15 - <html lang="en"> 16 - <head> 17 - <BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} /> 18 - <style> 19 - main { 20 - width: 960px; 21 - } 22 - ul { 23 - display: flex; 24 - flex-wrap: wrap; 25 - gap: 2rem; 26 - list-style-type: none; 27 - margin: 0; 28 - padding: 0; 29 - } 30 - ul li { 31 - width: calc(50% - 1rem); 32 - } 33 - ul li * { 34 - text-decoration: none; 35 - transition: 0.2s ease; 36 - } 37 - ul li:first-child { 38 - width: 100%; 39 - margin-bottom: 1rem; 40 - text-align: center; 41 - } 42 - ul li:first-child img { 43 - width: 100%; 44 - } 45 - ul li:first-child .title { 46 - font-size: 2.369rem; 47 - } 48 - ul li img { 49 - margin-bottom: 0.5rem; 50 - border-radius: 12px; 51 - } 52 - ul li a { 53 - display: block; 54 - } 55 - .title { 56 - margin: 0; 57 - color: rgb(var(--black)); 58 - line-height: 1; 59 - } 60 - .date { 61 - margin: 0; 62 - color: rgb(var(--gray)); 63 - } 64 - ul li a:hover h4, 65 - ul li a:hover .date { 66 - color: rgb(var(--accent)); 67 - } 68 - ul a:hover img { 69 - box-shadow: var(--box-shadow); 70 - } 71 - @media (max-width: 720px) { 72 - ul { 73 - gap: 0.5em; 74 - } 75 - ul li { 76 - width: 100%; 77 - text-align: center; 78 - } 79 - ul li:first-child { 80 - margin-bottom: 0; 81 - } 82 - ul li:first-child .title { 83 - font-size: 1.563em; 84 - } 85 - } 86 - </style> 87 - </head> 88 - <body> 89 - <Header /> 90 - <main> 91 - <section> 92 - <ul> 93 - { 94 - posts.map((post) => ( 95 - <li> 96 - <a href={`/blog/${post.id}/`}> 97 - <img width={720} height={360} src={post.data.heroImage} alt="" /> 98 - <h4 class="title">{post.data.title}</h4> 99 - <p class="date"> 100 - <FormattedDate date={post.data.pubDate} /> 101 - </p> 102 - </a> 103 - </li> 104 - )) 105 - } 106 - </ul> 107 - </section> 108 - </main> 109 - <Footer /> 110 - </body> 111 - </html>
+20 -38
src/pages/index.astro
··· 1 1 --- 2 - import BaseHead from '../components/BaseHead.astro'; 3 - import Header from '../components/Header.astro'; 4 - import Footer from '../components/Footer.astro'; 5 - import { SITE_TITLE, SITE_DESCRIPTION } from '../consts'; 2 + import BaseHead from "../components/BaseHead.astro"; 3 + import { SITE_TITLE, SITE_DESCRIPTION } from "../consts"; 4 + import Intro from "../components/Intro.astro"; 5 + import Welcome from "../components/Welcome.astro"; 6 + import PostsIndex from "../components/PostsIndex.astro"; 7 + import ContactLinks from "../components/ContactLinks.astro"; 6 8 --- 7 9 8 10 <!doctype html> ··· 11 13 <BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} /> 12 14 </head> 13 15 <body> 14 - <Header /> 15 - <main> 16 - <h1>🧑‍🚀 Hello, Astronaut!</h1> 17 - <p> 18 - Welcome to the official <a href="https://astro.build/">Astro</a> blog starter template. This 19 - template serves as a lightweight, minimally-styled starting point for anyone looking to build 20 - a personal website, blog, or portfolio with Astro. 21 - </p> 22 - <p> 23 - This template comes with a few integrations already configured in your 24 - <code>astro.config.mjs</code> file. You can customize your setup with 25 - <a href="https://astro.build/integrations">Astro Integrations</a> to add tools like Tailwind, 26 - React, or Vue to your project. 27 - </p> 28 - <p>Here are a few ideas on how to get started with the template:</p> 29 - <ul> 30 - <li>Edit this page in <code>src/pages/index.astro</code></li> 31 - <li>Edit the site header items in <code>src/components/Header.astro</code></li> 32 - <li>Add your name to the footer in <code>src/components/Footer.astro</code></li> 33 - <li>Check out the included blog posts in <code>src/content/blog/</code></li> 34 - <li>Customize the blog post page layout in <code>src/layouts/BlogPost.astro</code></li> 35 - </ul> 36 - <p> 37 - Have fun! If you get stuck, remember to <a href="https://docs.astro.build/" 38 - >read the docs 39 - </a> or <a href="https://astro.build/chat">join us on Discord</a> to ask questions. 40 - </p> 41 - <p> 42 - Looking for a blog template with a bit more personality? Check out <a 43 - href="https://github.com/Charca/astro-blog-template" 44 - >astro-blog-template 45 - </a> by <a href="https://twitter.com/Charca">Maxi Ferreira</a>. 46 - </p> 16 + <main class="container"> 17 + <Intro title={SITE_TITLE} /> 18 + <Welcome> 19 + Hello! I'm Angelo Verlain, but you can call me vixalien. I am a web and 20 + GTK developer and this is my website, a collection of projects and 21 + writings. 22 + </Welcome> 23 + <h2>Posts</h2> 24 + <PostsIndex /> 25 + <h2>Contact & Links</h2> 26 + <ContactLinks /> 27 + <footer> 28 + &copy; Angelo Verlain {new Date().getFullYear()} 29 + </footer> 47 30 </main> 48 - <Footer /> 49 31 </body> 50 32 </html>
+331 -114
src/styles/global.css
··· 1 - /* 2 - The CSS in this style tag is based off of Bear Blog's default CSS. 3 - https://github.com/HermanMartinus/bearblog/blob/297026a877bc2ab2b3bdfbd6b9f7961c350917dd/templates/styles/blog/default.css 4 - License MIT: https://github.com/HermanMartinus/bearblog/blob/master/LICENSE.md 5 - */ 1 + html { 2 + --secondary: #666; 3 + --fg: #333; 4 + --bg: #fff; 5 + --heading-fg: #000; 6 + --link: #0169ec; 7 + color-scheme: light dark; 8 + } 9 + 10 + @media (prefers-color-scheme: dark) { 11 + html { 12 + --secondary: #8e8e8e; 13 + --fg: #a0a0a0; 14 + --bg: #030f1b; 15 + --heading-fg: #fff; 16 + --link: #5a99ff; 17 + } 18 + } 19 + 20 + ol, ul, menu { 21 + list-style: initial; 22 + } 6 23 7 24 :root { 8 - --accent: #2337ff; 9 - --accent-dark: #000d8a; 10 - --black: 15, 18, 25; 11 - --gray: 96, 115, 159; 12 - --gray-light: 229, 233, 240; 13 - --gray-dark: 34, 41, 57; 14 - --gray-gradient: rgba(var(--gray-light), 50%), #fff; 15 - --box-shadow: 0 2px 6px rgba(var(--gray), 25%), 0 8px 24px rgba(var(--gray), 33%), 16 - 0 16px 32px rgba(var(--gray), 33%); 25 + /* Paddings */ 26 + --padding-top: 30px; 27 + --padding-bottom: 30px; 28 + --padding-right: 20px; 29 + --padding-left: 20px; 30 + --max-width: 620px; 31 + /* Box shadow */ 32 + --box-shadow: 0 0 0px 3px #bac7d4; 17 33 } 18 - @font-face { 19 - font-family: 'Atkinson'; 20 - src: url('/fonts/atkinson-regular.woff') format('woff'); 21 - font-weight: 400; 22 - font-style: normal; 23 - font-display: swap; 34 + 35 + *, 36 + *::before, 37 + *::after { 38 + box-sizing: border-box; 24 39 } 25 - @font-face { 26 - font-family: 'Atkinson'; 27 - src: url('/fonts/atkinson-bold.woff') format('woff'); 28 - font-weight: 700; 29 - font-style: normal; 30 - font-display: swap; 40 + 41 + html { 42 + font-family: 43 + system-ui, 44 + /* macOS 10.11-10.12 */ -apple-system, 45 + /* Windows 6+ */ "Segoe UI", 46 + /* Android 4+ */ "Roboto", 47 + /* Ubuntu 10.10+ */ "Ubuntu", 48 + /* Gnome 3+ */ "Cantarell", 49 + /* KDE Plasma 5+ */ "Noto Sans", 50 + /* fallback */ sans-serif, 51 + /* macOS emoji */ "Apple Color Emoji", 52 + /* Windows emoji */ "Segoe UI Emoji", 53 + /* Windows emoji */ "Segoe UI Symbol", 54 + /* Linux emoji */ "Noto Color Emoji"; 31 55 } 56 + 57 + html, 32 58 body { 33 - font-family: 'Atkinson', sans-serif; 34 - margin: 0; 35 59 padding: 0; 36 - text-align: left; 37 - background: linear-gradient(var(--gray-gradient)) no-repeat; 38 - background-size: 100% 600px; 39 - word-wrap: break-word; 40 - overflow-wrap: break-word; 41 - color: rgb(var(--gray-dark)); 42 - font-size: 20px; 43 - line-height: 1.7; 44 - } 45 - main { 46 - width: 720px; 47 - max-width: calc(100% - 2em); 48 - margin: auto; 49 - padding: 3em 1em; 60 + margin: 0; 61 + color: var(--fg); 62 + background-color: var(--bg); 63 + scroll-behavior: smooth; 50 64 } 65 + 51 66 h1, 52 67 h2, 53 68 h3, 54 69 h4, 55 - h5, 56 - h6 { 57 - margin: 0 0 0.5rem 0; 58 - color: rgb(var(--black)); 59 - line-height: 1.2; 70 + h5 { 71 + margin: 0 0 1rem 0; 72 + font-weight: 600; 73 + color: var(--heading-fg); 74 + } 75 + 76 + p, 77 + ol, 78 + ul, 79 + dl, 80 + table { 81 + margin: 0 0 1.5rem 0; 82 + line-height: 1.5; 60 83 } 61 - h1 { 62 - font-size: 3.052em; 84 + 85 + ul { 86 + list-style: "– "; 63 87 } 64 - h2 { 65 - font-size: 2.441em; 88 + 89 + li { 90 + margin-bottom: 5px; 66 91 } 67 - h3 { 68 - font-size: 1.953em; 92 + 93 + hr { 94 + margin: 0; 95 + border: 0; 96 + border-top: 1px solid var(--secondary); 69 97 } 70 - h4 { 71 - font-size: 1.563em; 98 + 99 + a { 100 + color: var(--link); 101 + text-decoration: none; 102 + border-bottom: 1px inset transparent; 72 103 } 73 - h5 { 74 - font-size: 1.25em; 104 + 105 + a:hover, 106 + a:focus, 107 + a:active { 108 + border-bottom-color: currentColor; 75 109 } 76 - strong, 77 - b { 78 - font-weight: 700; 110 + 111 + .overflow-yes .block-code, 112 + .overflow-yes pre.not-code, 113 + .overflow-yes article img { 114 + display: block; 115 + margin: 30px 0; 116 + width: fit-content; 117 + margin-left: 50%; 118 + transform: translateX(-50%); 119 + min-width: 100%; 120 + max-width: calc(100vw - calc(var(--padding-right) + var(--padding-left))); 79 121 } 80 - a { 81 - color: var(--accent); 122 + 123 + .posts > p { 124 + margin-bottom: 4em; 82 125 } 83 - a:hover { 84 - color: var(--accent); 126 + 127 + .posts > p a.post-title { 128 + font-size: 1.1em; 129 + font-weight: 900; 130 + border-bottom-width: 2px; 85 131 } 86 - p { 87 - margin-bottom: 1em; 132 + 133 + .posts > p a.post-image { 134 + border-bottom: none; 88 135 } 89 - .prose p { 90 - margin-bottom: 2em; 136 + 137 + .posts > p a.post-image img { 138 + width: 100%; 139 + aspect-ratio: 16/9; 140 + overflow: hidden; 141 + object-fit: cover; 142 + border-radius: 6px; 143 + margin-bottom: 0.5em; 91 144 } 92 - textarea { 145 + 146 + .container { 147 + max-width: var(--max-width); 148 + padding: 30px 20px; 93 149 width: 100%; 94 - font-size: 16px; 150 + margin: auto; 151 + } 152 + 153 + .footer { 154 + margin-top: 30px; 155 + } 156 + 157 + .footer hr { 158 + padding-bottom: 20px; 159 + } 160 + 161 + .footer a.top { 162 + color: inherit; 163 + display: inline-block; 164 + margin: 10px 0; 95 165 } 96 - input { 97 - font-size: 16px; 166 + 167 + header a { 168 + color: inherit; 169 + border-bottom-style: none; 98 170 } 99 - table { 100 - width: 100%; 171 + 172 + header a:hover { 173 + border-bottom-style: solid; 101 174 } 102 - img { 175 + 176 + article img { 103 177 max-width: 100%; 104 - height: auto; 105 - border-radius: 8px; 178 + margin: auto; 179 + display: flex; 180 + border-radius: 6px; 181 + box-sizing: content-box; 106 182 } 107 - code { 108 - padding: 2px 5px; 109 - background-color: rgb(var(--gray-light)); 110 - border-radius: 2px; 183 + 184 + /* .overflow-yes article img { 185 + max-width: unset; 186 + } */ 187 + 188 + .block-image .text { 189 + text-align: center; 190 + margin-top: 10px; 191 + color: var(--secondary); 192 + } 193 + 194 + .block-image .text a { 195 + color: inherit; 196 + } 197 + 198 + .block-image .text a:hover, 199 + .block-image .text a:focus { 200 + color: var(--link); 201 + } 202 + 203 + .intro { 204 + margin: 50px 0 20px; 205 + } 206 + 207 + .intro h1 { 208 + margin-bottom: 0; 209 + } 210 + 211 + .welcome p.description { 212 + color: var(--fg); 213 + } 214 + 215 + .tags a { 216 + color: inherit; 217 + } 218 + 219 + .link-with-icon { 220 + display: inline-flex; 221 + gap: 4px; 222 + align-items: center; 223 + vertical-align: text-top; 224 + } 225 + 226 + .intro-meta { 227 + font-weight: bold; 111 228 } 112 - pre { 113 - padding: 1.5em; 114 - border-radius: 8px; 229 + 230 + a.tags { 231 + border-bottom-style: dotted; 232 + border-bottom-color: inherit; 115 233 } 116 - pre > code { 117 - all: unset; 234 + 235 + a.tags:focus, 236 + a.tags:hover, 237 + a.tags:focus { 238 + border-bottom-style: solid; 239 + font-weight: bold; 118 240 } 119 - blockquote { 120 - border-left: 4px solid var(--accent); 121 - padding: 0 0 0 20px; 122 - margin: 0px; 123 - font-size: 1.333em; 241 + 242 + h1 { 243 + /* font-size: 2.8em; */ 244 + font-weight: 800; 245 + letter-spacing: -1px; 124 246 } 125 - hr { 247 + 248 + a:has(code) { 126 249 border: none; 127 - border-top: 1px solid rgb(var(--gray-light)); 250 + } 251 + a:has(code):is(:hover, :focus, :active) code { 252 + background-color: var(--link); 253 + color: var(--bg); 254 + border-color: var(--link); 255 + } 256 + 257 + table { 258 + border-collapse: collapse; 259 + min-width: 100%; 260 + font-size: 0.85rem; 261 + } 262 + 263 + th, 264 + td { 265 + padding: 0.5rem; 266 + text-align: start; 267 + } 268 + 269 + th { 270 + border-color: var(--heading-fg); 271 + color: var(--heading-fg); 128 272 } 129 - @media (max-width: 720px) { 130 - body { 131 - font-size: 18px; 273 + 274 + th, 275 + tr:not(:last-of-type) td { 276 + border-bottom: 1px solid; 277 + } 278 + 279 + .image-container { 280 + --background-color: rgba(0, 0, 0, 0.33); 281 + --text: #fff; 282 + display: flex; 283 + flex-direction: column; 284 + overflow: hidden; 285 + } 286 + 287 + .image-container .inner-container { 288 + padding: 20px 20px 0; 289 + } 290 + 291 + .image-container .intro { 292 + margin-top: 20px; 293 + } 294 + 295 + .image-container, 296 + .inner-container { 297 + z-index: 0; 298 + } 299 + 300 + .image-container.invert { 301 + --background-color: rgba(255, 255, 255, 0.13); 302 + /* a very weird firefox bug */ 303 + --text: #001; 304 + } 305 + 306 + @media screen and (max-width: 600px) { 307 + .image-container .stack .read-link { 308 + display: none; 132 309 } 133 - main { 134 - padding: 1em; 310 + 311 + .image-container img { 312 + margin-top: 50px; 313 + width: 100%; 314 + border-radius: 6px; 135 315 } 136 316 } 137 317 138 - .sr-only { 139 - border: 0; 140 - padding: 0; 141 - margin: 0; 142 - position: absolute !important; 143 - height: 1px; 144 - width: 1px; 145 - overflow: hidden; 146 - /* IE6, IE7 - a 0 height clip, off to the bottom right of the visible 1px box */ 147 - clip: rect(1px 1px 1px 1px); 148 - /* maybe deprecated but we need to support legacy browsers */ 149 - clip: rect(1px, 1px, 1px, 1px); 150 - /* modern browsers, clip-path works inwards from each corner */ 151 - clip-path: inset(50%); 152 - /* added line to stop words getting smushed together (as they go onto separate lines and some screen readers do not understand line feeds as a space */ 153 - white-space: nowrap; 318 + @media screen and (min-width: 600px) { 319 + .image-container .stack hr { 320 + display: none; 321 + } 322 + 323 + .image-container { 324 + position: relative; 325 + height: 100vh; 326 + } 327 + 328 + .image-container .inner-container { 329 + padding-bottom: 0; 330 + display: flex; 331 + flex-direction: column; 332 + height: 100%; 333 + justify-content: space-between; 334 + } 335 + 336 + .image-container img { 337 + position: absolute; 338 + left: 0; 339 + top: 0; 340 + z-index: -2; 341 + height: 100vh; 342 + width: 100vw; 343 + object-fit: cover; 344 + margin: 0; 345 + } 346 + 347 + .image-container .top > header > nav > a { 348 + color: var(--text); 349 + font-size: xx-large; 350 + font-weight: 900; 351 + border-bottom-width: 3px; 352 + box-shadow: 0 0 100px 100px var(--background-color); 353 + background-color: var(--background-color); 354 + } 355 + 356 + .image-container .bottom { 357 + color: var(--text); 358 + box-shadow: 0 0 100px 100px var(--background-color); 359 + background-color: var(--background-color); 360 + } 361 + 362 + .image-container .read-link { 363 + color: inherit; 364 + border-bottom-width: 2px; 365 + font-weight: bold; 366 + } 367 + 368 + .image-container h1 { 369 + color: inherit; 370 + } 154 371 }