Mirror of
0
fork

Configure Feed

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

make topics dropdown buildable

+1176 -1418
+5
.changeset/eighty-parents-smell.md
··· 1 + --- 2 + "starlight": minor 3 + --- 4 + 5 + Publish first topics dropdown release.
+553 -904
pnpm-lock.yaml
··· 21 21 specifier: ^4.0.1 22 22 version: 4.0.1 23 23 '@astrojs/starlight': 24 - specifier: ^0.31.1 25 - version: 0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 24 + specifier: ^0.32.2 25 + version: 0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 26 26 '@fontsource-variable/jetbrains-mono': 27 27 specifier: ^5.0.21 28 28 version: 5.1.1 ··· 33 33 specifier: ^1.0.6 34 34 version: 1.0.6 35 35 astro: 36 - specifier: ^5.1.10 37 - version: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 38 - astro-expressive-code: 39 - specifier: ^0.34.2 40 - version: 0.34.2(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 36 + specifier: ^5.4.2 37 + version: 5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2) 41 38 astro-feelback: 42 39 specifier: ^0.3.4 43 40 version: 0.3.4 44 41 rehype-mathjax: 45 - specifier: ^6.0.0 46 - version: 6.0.0 47 - remark-expressive-code: 48 - specifier: ^0.34.2 49 - version: 0.34.2 42 + specifier: ^7.1.0 43 + version: 7.1.0 50 44 remark-math: 51 45 specifier: ^6.0.0 52 46 version: 6.0.0 53 47 sharp: 54 - specifier: ^0.33.4 48 + specifier: ^0.33.5 55 49 version: 0.33.5 56 50 starlight-image-zoom: 57 - specifier: ^0.5.0 58 - version: 0.5.0(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))) 51 + specifier: ^0.11.1 52 + version: 0.11.1(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))) 59 53 starlight-links-validator: 60 - specifier: ^0.7.1 61 - version: 0.7.1(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)))(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 54 + specifier: ^0.14.3 55 + version: 0.14.3(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))) 62 56 starlight-sidebar-topics-dropdown: 63 - specifier: ^0.3.0 64 - version: 0.3.0(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))) 65 - devDependencies: 57 + specifier: ^0.4.1 58 + version: 0.4.1(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))) 66 59 starlight-view-modes: 67 60 specifier: ^0.5.3 68 - version: 0.5.3(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)))(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 61 + version: 0.5.3(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)))(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 69 62 70 63 packages: 71 64 ··· 73 66 resolution: {integrity: sha512-yIiLM5ziBmg86i4TlXpBdcIygJHvh/GgPJyAiFOckO9H4y9cQDM8eIcJCUQ4Mum0NEVui/OjhEut2R08xw0vlQ==} 74 67 engines: {node: '>=14'} 75 68 76 - '@asamuzakjp/dom-selector@2.0.2': 77 - resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==} 69 + '@astrojs/compiler@2.10.4': 70 + resolution: {integrity: sha512-86B3QGagP99MvSNwuJGiYSBHnh8nLvm2Q1IFI15wIUJJsPeQTO3eb2uwBmrqRsXykeR/mBzH8XCgz5AAt1BJrQ==} 78 71 79 - '@astrojs/compiler@2.10.3': 80 - resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} 81 - 82 - '@astrojs/internal-helpers@0.4.2': 83 - resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} 72 + '@astrojs/internal-helpers@0.6.0': 73 + resolution: {integrity: sha512-XgHIJDQaGlFnTr0sDp1PiJrtqsWzbHP2qkTU+JpQ8SnBewKP2IKOe/wqCkl0CyfyRXRu3TSWu4t/cpYMVfuBNA==} 84 74 85 75 '@astrojs/markdown-remark@6.0.2': 86 76 resolution: {integrity: sha512-aAoHGVRK3rebCYbaLjyyR+3VeAuTz4q49syUxJP29Oo5yZHdy4cCAXRqLBdr9mJVlxCUUjZiF0Dau6YBf65SGg==} 87 77 78 + '@astrojs/markdown-remark@6.2.0': 79 + resolution: {integrity: sha512-LUDjgd9p1yG0qTFSocaj3GOLmZs8Hsw/pNtvqzvNY58Acebxvb/46vDO/e/wxYgsKgIfWS+p+ZI5SfOjoVrbCg==} 80 + 88 81 '@astrojs/mdx@4.0.7': 89 82 resolution: {integrity: sha512-d3PopBTbbCoX3QOmSLYXW6YCZ0dkhNaeP9/Liz9BhEekflMc9IvBjbtNFf1WCEatsl4LLGftyDisfMM3F3LGMA==} 90 83 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} ··· 98 91 '@astrojs/sitemap@3.2.1': 99 92 resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} 100 93 101 - '@astrojs/starlight@0.31.1': 102 - resolution: {integrity: sha512-VIVkHugwgtEqJPiRH8+ouP0UqUfdmpBO9C64R+6QaQ2qmADNkI/BA3/YAJHTBZYlMQQGEEuLJwD9qpaUovi52Q==} 94 + '@astrojs/starlight@0.32.2': 95 + resolution: {integrity: sha512-FLz8Y8R+GsD0jD/G64bYijwwVsAq99Ugk2bJYRmH2k1reYMh83GRma2IaKGgSI2fLNEu7tdyG4cpkwrwP3W02A==} 103 96 peerDependencies: 104 97 astro: ^5.1.5 105 98 ··· 199 192 '@emnapi/runtime@1.3.1': 200 193 resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 201 194 202 - '@esbuild/aix-ppc64@0.24.2': 203 - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 195 + '@esbuild/aix-ppc64@0.25.0': 196 + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} 204 197 engines: {node: '>=18'} 205 198 cpu: [ppc64] 206 199 os: [aix] 207 200 208 - '@esbuild/android-arm64@0.24.2': 209 - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 201 + '@esbuild/android-arm64@0.25.0': 202 + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} 210 203 engines: {node: '>=18'} 211 204 cpu: [arm64] 212 205 os: [android] 213 206 214 - '@esbuild/android-arm@0.24.2': 215 - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 207 + '@esbuild/android-arm@0.25.0': 208 + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} 216 209 engines: {node: '>=18'} 217 210 cpu: [arm] 218 211 os: [android] 219 212 220 - '@esbuild/android-x64@0.24.2': 221 - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 213 + '@esbuild/android-x64@0.25.0': 214 + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} 222 215 engines: {node: '>=18'} 223 216 cpu: [x64] 224 217 os: [android] 225 218 226 - '@esbuild/darwin-arm64@0.24.2': 227 - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 219 + '@esbuild/darwin-arm64@0.25.0': 220 + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} 228 221 engines: {node: '>=18'} 229 222 cpu: [arm64] 230 223 os: [darwin] 231 224 232 - '@esbuild/darwin-x64@0.24.2': 233 - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 225 + '@esbuild/darwin-x64@0.25.0': 226 + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} 234 227 engines: {node: '>=18'} 235 228 cpu: [x64] 236 229 os: [darwin] 237 230 238 - '@esbuild/freebsd-arm64@0.24.2': 239 - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 231 + '@esbuild/freebsd-arm64@0.25.0': 232 + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} 240 233 engines: {node: '>=18'} 241 234 cpu: [arm64] 242 235 os: [freebsd] 243 236 244 - '@esbuild/freebsd-x64@0.24.2': 245 - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 237 + '@esbuild/freebsd-x64@0.25.0': 238 + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} 246 239 engines: {node: '>=18'} 247 240 cpu: [x64] 248 241 os: [freebsd] 249 242 250 - '@esbuild/linux-arm64@0.24.2': 251 - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 243 + '@esbuild/linux-arm64@0.25.0': 244 + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} 252 245 engines: {node: '>=18'} 253 246 cpu: [arm64] 254 247 os: [linux] 255 248 256 - '@esbuild/linux-arm@0.24.2': 257 - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 249 + '@esbuild/linux-arm@0.25.0': 250 + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} 258 251 engines: {node: '>=18'} 259 252 cpu: [arm] 260 253 os: [linux] 261 254 262 - '@esbuild/linux-ia32@0.24.2': 263 - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 255 + '@esbuild/linux-ia32@0.25.0': 256 + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} 264 257 engines: {node: '>=18'} 265 258 cpu: [ia32] 266 259 os: [linux] 267 260 268 - '@esbuild/linux-loong64@0.24.2': 269 - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 261 + '@esbuild/linux-loong64@0.25.0': 262 + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} 270 263 engines: {node: '>=18'} 271 264 cpu: [loong64] 272 265 os: [linux] 273 266 274 - '@esbuild/linux-mips64el@0.24.2': 275 - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 267 + '@esbuild/linux-mips64el@0.25.0': 268 + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} 276 269 engines: {node: '>=18'} 277 270 cpu: [mips64el] 278 271 os: [linux] 279 272 280 - '@esbuild/linux-ppc64@0.24.2': 281 - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 273 + '@esbuild/linux-ppc64@0.25.0': 274 + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} 282 275 engines: {node: '>=18'} 283 276 cpu: [ppc64] 284 277 os: [linux] 285 278 286 - '@esbuild/linux-riscv64@0.24.2': 287 - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 279 + '@esbuild/linux-riscv64@0.25.0': 280 + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} 288 281 engines: {node: '>=18'} 289 282 cpu: [riscv64] 290 283 os: [linux] 291 284 292 - '@esbuild/linux-s390x@0.24.2': 293 - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 285 + '@esbuild/linux-s390x@0.25.0': 286 + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} 294 287 engines: {node: '>=18'} 295 288 cpu: [s390x] 296 289 os: [linux] 297 290 298 - '@esbuild/linux-x64@0.24.2': 299 - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 291 + '@esbuild/linux-x64@0.25.0': 292 + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} 300 293 engines: {node: '>=18'} 301 294 cpu: [x64] 302 295 os: [linux] 303 296 304 - '@esbuild/netbsd-arm64@0.24.2': 305 - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 297 + '@esbuild/netbsd-arm64@0.25.0': 298 + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} 306 299 engines: {node: '>=18'} 307 300 cpu: [arm64] 308 301 os: [netbsd] 309 302 310 - '@esbuild/netbsd-x64@0.24.2': 311 - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 303 + '@esbuild/netbsd-x64@0.25.0': 304 + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} 312 305 engines: {node: '>=18'} 313 306 cpu: [x64] 314 307 os: [netbsd] 315 308 316 - '@esbuild/openbsd-arm64@0.24.2': 317 - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 309 + '@esbuild/openbsd-arm64@0.25.0': 310 + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} 318 311 engines: {node: '>=18'} 319 312 cpu: [arm64] 320 313 os: [openbsd] 321 314 322 - '@esbuild/openbsd-x64@0.24.2': 323 - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 315 + '@esbuild/openbsd-x64@0.25.0': 316 + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} 324 317 engines: {node: '>=18'} 325 318 cpu: [x64] 326 319 os: [openbsd] 327 320 328 - '@esbuild/sunos-x64@0.24.2': 329 - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 321 + '@esbuild/sunos-x64@0.25.0': 322 + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} 330 323 engines: {node: '>=18'} 331 324 cpu: [x64] 332 325 os: [sunos] 333 326 334 - '@esbuild/win32-arm64@0.24.2': 335 - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 327 + '@esbuild/win32-arm64@0.25.0': 328 + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} 336 329 engines: {node: '>=18'} 337 330 cpu: [arm64] 338 331 os: [win32] 339 332 340 - '@esbuild/win32-ia32@0.24.2': 341 - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 333 + '@esbuild/win32-ia32@0.25.0': 334 + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} 342 335 engines: {node: '>=18'} 343 336 cpu: [ia32] 344 337 os: [win32] 345 338 346 - '@esbuild/win32-x64@0.24.2': 347 - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 339 + '@esbuild/win32-x64@0.25.0': 340 + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} 348 341 engines: {node: '>=18'} 349 342 cpu: [x64] 350 343 os: [win32] 351 - 352 - '@expressive-code/core@0.34.2': 353 - resolution: {integrity: sha512-YmevSkyUfjOrtQWEBOjsfomwX3N6YImQd0B4/VmRJaHuPuiAt6ee8MOZ48rF8IjJavLRxhsJj7aWV/AdWVGLVQ==} 354 344 355 345 '@expressive-code/core@0.40.1': 356 346 resolution: {integrity: sha512-j71gxBepyzBgOtZomxzl8M90AjILf6hZarWFePDis7sTjqCwxWrtZEtTCafto8IOURG/ECZN0g7Ys4zExkNU7Q==} 357 347 358 - '@expressive-code/plugin-frames@0.34.2': 359 - resolution: {integrity: sha512-fV2hBMwsmwaC2ZbgE1IHhFuhkLCtGP33FvgxtDz+VvywWiqpd4AeFKx4Xskcr5OiCC7CdjthbC6d18297AaBoQ==} 360 - 361 348 '@expressive-code/plugin-frames@0.40.1': 362 349 resolution: {integrity: sha512-qV7BIdTQ9nJ/eLHaJlzMvUq5aqAoZKO3PLFzBVop/q0d0m5rWpwWncIQ8qkufQDabmq2m38PRRWxKgx5FkJ2Rg==} 363 350 364 - '@expressive-code/plugin-shiki@0.34.2': 365 - resolution: {integrity: sha512-c94xBU6I7j8FpPExZxcrWeFZITN0pf419RMh6dCY75WIJ4oLiBpr9S+IrumpARC8SFy1MpkdaVIvslReqcorzg==} 366 - 367 351 '@expressive-code/plugin-shiki@0.40.1': 368 352 resolution: {integrity: sha512-N5oXhLv5DwLGXmLwJtwMzrfnZPWJl4pHRR5mfDoqK1+NxptdVaaQ0nEjgw13Y5ID/O5Bbze5YcOyph2K52BBrQ==} 369 - 370 - '@expressive-code/plugin-text-markers@0.34.2': 371 - resolution: {integrity: sha512-yHVNoIvqAruxtMnmcITkjhyFaHg6fraitodSXWe5KLZcaBLLJ9AieE/RGhzHIKjRuG0zlEWMNd2y2nh/XIPBew==} 372 353 373 354 '@expressive-code/plugin-text-markers@0.40.1': 374 355 resolution: {integrity: sha512-LsirF7M4F2yWgrFXEocD74F/MaVXsOsHVsRxBLhXQJemSSkWkDp/EZPt//OaqQ8ExnqWZ2lH7E1/KiN46unKjg==} ··· 559 540 rollup: 560 541 optional: true 561 542 562 - '@rollup/rollup-android-arm-eabi@4.27.4': 563 - resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} 543 + '@rollup/rollup-android-arm-eabi@4.35.0': 544 + resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} 564 545 cpu: [arm] 565 546 os: [android] 566 547 567 - '@rollup/rollup-android-arm64@4.27.4': 568 - resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} 548 + '@rollup/rollup-android-arm64@4.35.0': 549 + resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} 569 550 cpu: [arm64] 570 551 os: [android] 571 552 572 - '@rollup/rollup-darwin-arm64@4.27.4': 573 - resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} 553 + '@rollup/rollup-darwin-arm64@4.35.0': 554 + resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} 574 555 cpu: [arm64] 575 556 os: [darwin] 576 557 577 - '@rollup/rollup-darwin-x64@4.27.4': 578 - resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} 558 + '@rollup/rollup-darwin-x64@4.35.0': 559 + resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} 579 560 cpu: [x64] 580 561 os: [darwin] 581 562 582 - '@rollup/rollup-freebsd-arm64@4.27.4': 583 - resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} 563 + '@rollup/rollup-freebsd-arm64@4.35.0': 564 + resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} 584 565 cpu: [arm64] 585 566 os: [freebsd] 586 567 587 - '@rollup/rollup-freebsd-x64@4.27.4': 588 - resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} 568 + '@rollup/rollup-freebsd-x64@4.35.0': 569 + resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} 589 570 cpu: [x64] 590 571 os: [freebsd] 591 572 592 - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': 593 - resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} 573 + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': 574 + resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} 594 575 cpu: [arm] 595 576 os: [linux] 596 577 597 - '@rollup/rollup-linux-arm-musleabihf@4.27.4': 598 - resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} 578 + '@rollup/rollup-linux-arm-musleabihf@4.35.0': 579 + resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} 599 580 cpu: [arm] 600 581 os: [linux] 601 582 602 - '@rollup/rollup-linux-arm64-gnu@4.27.4': 603 - resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} 583 + '@rollup/rollup-linux-arm64-gnu@4.35.0': 584 + resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} 604 585 cpu: [arm64] 605 586 os: [linux] 606 587 607 - '@rollup/rollup-linux-arm64-musl@4.27.4': 608 - resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} 588 + '@rollup/rollup-linux-arm64-musl@4.35.0': 589 + resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} 609 590 cpu: [arm64] 610 591 os: [linux] 611 592 612 - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': 613 - resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} 593 + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': 594 + resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} 595 + cpu: [loong64] 596 + os: [linux] 597 + 598 + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': 599 + resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} 614 600 cpu: [ppc64] 615 601 os: [linux] 616 602 617 - '@rollup/rollup-linux-riscv64-gnu@4.27.4': 618 - resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} 603 + '@rollup/rollup-linux-riscv64-gnu@4.35.0': 604 + resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} 619 605 cpu: [riscv64] 620 606 os: [linux] 621 607 622 - '@rollup/rollup-linux-s390x-gnu@4.27.4': 623 - resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} 608 + '@rollup/rollup-linux-s390x-gnu@4.35.0': 609 + resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} 624 610 cpu: [s390x] 625 611 os: [linux] 626 612 627 - '@rollup/rollup-linux-x64-gnu@4.27.4': 628 - resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} 613 + '@rollup/rollup-linux-x64-gnu@4.35.0': 614 + resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} 629 615 cpu: [x64] 630 616 os: [linux] 631 617 632 - '@rollup/rollup-linux-x64-musl@4.27.4': 633 - resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} 618 + '@rollup/rollup-linux-x64-musl@4.35.0': 619 + resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} 634 620 cpu: [x64] 635 621 os: [linux] 636 622 637 - '@rollup/rollup-win32-arm64-msvc@4.27.4': 638 - resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} 623 + '@rollup/rollup-win32-arm64-msvc@4.35.0': 624 + resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} 639 625 cpu: [arm64] 640 626 os: [win32] 641 627 642 - '@rollup/rollup-win32-ia32-msvc@4.27.4': 643 - resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} 628 + '@rollup/rollup-win32-ia32-msvc@4.35.0': 629 + resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} 644 630 cpu: [ia32] 645 631 os: [win32] 646 632 647 - '@rollup/rollup-win32-x64-msvc@4.27.4': 648 - resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} 633 + '@rollup/rollup-win32-x64-msvc@4.35.0': 634 + resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} 649 635 cpu: [x64] 650 636 os: [win32] 651 637 652 - '@shikijs/core@1.23.1': 653 - resolution: {integrity: sha512-NuOVgwcHgVC6jBVH5V7iblziw6iQbWWHrj5IlZI3Fqu2yx9awH7OIQkXIcsHsUmY19ckwSgUMgrqExEyP5A0TA==} 654 - 655 638 '@shikijs/core@1.29.1': 656 639 resolution: {integrity: sha512-Mo1gGGkuOYjDu5H8YwzmOuly9vNr8KDVkqj9xiKhhhFS8jisAtDSEWB9hzqRHLVQgFdA310e8XRJcW4tYhRB2A==} 657 640 658 - '@shikijs/engine-javascript@1.23.1': 659 - resolution: {integrity: sha512-i/LdEwT5k3FVu07SiApRFwRcSJs5QM9+tod5vYCPig1Ywi8GR30zcujbxGQFJHwYD7A5BUqagi8o5KS+LEVgBg==} 641 + '@shikijs/core@1.29.2': 642 + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} 660 643 661 644 '@shikijs/engine-javascript@1.29.1': 662 645 resolution: {integrity: sha512-Hpi8k9x77rCQ7F/7zxIOUruNkNidMyBnP5qAGbLFqg4kRrg1HZhkB8btib5EXbQWTtLb5gBHOdBwshk20njD7Q==} 663 646 664 - '@shikijs/engine-oniguruma@1.23.1': 665 - resolution: {integrity: sha512-KQ+lgeJJ5m2ISbUZudLR1qHeH3MnSs2mjFg7bnencgs5jDVPeJ2NVDJ3N5ZHbcTsOIh0qIueyAJnwg7lg7kwXQ==} 647 + '@shikijs/engine-javascript@1.29.2': 648 + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} 666 649 667 650 '@shikijs/engine-oniguruma@1.29.1': 668 651 resolution: {integrity: sha512-gSt2WhLNgEeLstcweQOSp+C+MhOpTsgdNXRqr3zP6M+BUBZ8Md9OU2BYwUYsALBxHza7hwaIWtFHjQ/aOOychw==} 669 652 653 + '@shikijs/engine-oniguruma@1.29.2': 654 + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} 655 + 670 656 '@shikijs/langs@1.29.1': 671 657 resolution: {integrity: sha512-iERn4HlyuT044/FgrvLOaZgKVKf3PozjKjyV/RZ5GnlyYEAZFcgwHGkYboeBv2IybQG1KVS/e7VGgiAU4JY2Gw==} 672 658 659 + '@shikijs/langs@1.29.2': 660 + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} 661 + 673 662 '@shikijs/themes@1.29.1': 674 663 resolution: {integrity: sha512-lb11zf72Vc9uxkl+aec2oW1HVTHJ2LtgZgumb4Rr6By3y/96VmlU44bkxEb8WBWH3RUtbqAJEN0jljD9cF7H7g==} 675 664 676 - '@shikijs/types@1.23.1': 677 - resolution: {integrity: sha512-98A5hGyEhzzAgQh2dAeHKrWW4HfCMeoFER2z16p5eJ+vmPeF6lZ/elEne6/UCU551F/WqkopqRsr1l2Yu6+A0g==} 665 + '@shikijs/themes@1.29.2': 666 + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} 678 667 679 668 '@shikijs/types@1.29.1': 680 669 resolution: {integrity: sha512-aBqAuhYRp5vSir3Pc9+QPu9WESBOjUo03ao0IHLC4TyTioSsp/SkbAZSrIH4ghYYC1T1KTEpRSBa83bas4RnPA==} 681 670 671 + '@shikijs/types@1.29.2': 672 + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} 673 + 682 674 '@shikijs/vscode-textmate@10.0.1': 683 675 resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} 684 - 685 - '@shikijs/vscode-textmate@9.3.0': 686 - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} 687 676 688 677 '@types/acorn@4.0.6': 689 678 resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} ··· 730 719 '@types/node@17.0.45': 731 720 resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} 732 721 722 + '@types/picomatch@3.0.2': 723 + resolution: {integrity: sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==} 724 + 733 725 '@types/sax@1.2.7': 734 726 resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} 735 727 ··· 755 747 engines: {node: '>=0.4.0'} 756 748 hasBin: true 757 749 758 - agent-base@7.1.1: 759 - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} 760 - engines: {node: '>= 14'} 761 - 762 750 ansi-align@3.0.1: 763 751 resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 764 752 ··· 806 794 resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} 807 795 hasBin: true 808 796 809 - astro-expressive-code@0.34.2: 810 - resolution: {integrity: sha512-J90/kDlT5QLQC+CYVmMWvhkthmMwYhu3nmwKp7acCZCD+HNkaCCxSjg8OXBygAKL43Uv2DCUMTipGeb/X0hrXw==} 811 - peerDependencies: 812 - astro: ^4.0.0-beta || ^3.3.0 813 - 814 797 astro-expressive-code@0.40.1: 815 798 resolution: {integrity: sha512-dQ47XhgtxuRTiKQrZOJKdebMuxvvTBR89U439EHzLP6KR45IILFlGDihGQp3//1aUjj4nwpbINSzms1heJ7vmQ==} 816 799 peerDependencies: ··· 819 802 astro-feelback@0.3.4: 820 803 resolution: {integrity: sha512-ra69QTsdyjzQKdYeu+qngNcPOgspaWOFJLDFdpA/JryGo55uruw76455UVt2rf3NsZulBnYHS6+upPIO5O7t7A==} 821 804 822 - astro@5.1.10: 823 - resolution: {integrity: sha512-qFu4jC7BRlhwHgk9Pa1sTQWw60zYWlriNTt6bMGMKkPxCd4Dd84fGn+NjbrJ/JeKwF7YXX0gY1saDF/RS6TMVA==} 805 + astro@5.4.2: 806 + resolution: {integrity: sha512-9Z3fAniIRJaK/o43OroZA1wHUIU+qHiOR9ovlVT/2XQaN25QRXScIsKWlFp0G/zrx5OuuoJ+QnaoHHW061u26A==} 824 807 engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} 825 808 hasBin: true 826 809 827 - asynckit@0.4.0: 828 - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 829 - 830 810 axobject-query@4.1.0: 831 811 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 832 812 engines: {node: '>= 0.4'} ··· 849 829 better-path-resolve@1.0.0: 850 830 resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 851 831 engines: {node: '>=4'} 852 - 853 - bidi-js@1.0.3: 854 - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} 855 - 856 - binary-extensions@2.3.0: 857 - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 858 - engines: {node: '>=8'} 859 832 860 833 boolbase@1.0.0: 861 834 resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} ··· 897 870 chardet@0.7.0: 898 871 resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 899 872 900 - chokidar@3.6.0: 901 - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 902 - engines: {node: '>= 8.10.0'} 873 + chokidar@4.0.3: 874 + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 875 + engines: {node: '>= 14.16.0'} 903 876 904 877 ci-info@3.9.0: 905 878 resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} ··· 934 907 resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 935 908 engines: {node: '>=12.5.0'} 936 909 937 - combined-stream@1.0.8: 938 - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 939 - engines: {node: '>= 0.8'} 940 - 941 910 comma-separated-tokens@2.0.3: 942 911 resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 943 912 ··· 954 923 955 924 concat-map@0.0.1: 956 925 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 957 - 958 - consola@3.4.0: 959 - resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} 960 - engines: {node: ^14.18.0 || >=16.10.0} 961 926 962 927 cookie-es@1.2.2: 963 928 resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} ··· 976 941 css-selector-parser@3.0.5: 977 942 resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} 978 943 979 - css-tree@2.3.1: 980 - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 981 - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 982 - 983 944 cssesc@3.0.0: 984 945 resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 985 946 engines: {node: '>=4'} 986 947 hasBin: true 987 948 988 - cssstyle@4.1.0: 989 - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} 990 - engines: {node: '>=18'} 991 - 992 - data-urls@5.0.0: 993 - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 994 - engines: {node: '>=18'} 995 - 996 949 dataloader@1.4.0: 997 950 resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} 998 951 ··· 1014 967 supports-color: 1015 968 optional: true 1016 969 1017 - decimal.js@10.4.3: 1018 - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 1019 - 1020 970 decode-named-character-reference@1.0.2: 1021 971 resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} 1022 972 973 + decode-named-character-reference@1.1.0: 974 + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} 975 + 1023 976 defu@6.1.4: 1024 977 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1025 - 1026 - delayed-stream@1.0.0: 1027 - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1028 - engines: {node: '>=0.4.0'} 1029 978 1030 979 dequal@2.0.3: 1031 980 resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} ··· 1101 1050 esast-util-from-js@2.0.1: 1102 1051 resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} 1103 1052 1104 - esbuild@0.24.2: 1105 - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 1053 + esbuild@0.25.0: 1054 + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} 1106 1055 engines: {node: '>=18'} 1107 1056 hasBin: true 1108 1057 ··· 1149 1098 eventemitter3@5.0.1: 1150 1099 resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 1151 1100 1152 - expressive-code@0.34.2: 1153 - resolution: {integrity: sha512-b78jwcnm20uy1HtBhZ/f+XruOPt1f210n3YHEOJrZyib9bkXfUS8geRiwQhC5dneqTRLNnFkBQNJs6y6t5iWDQ==} 1154 - 1155 1101 expressive-code@0.40.1: 1156 1102 resolution: {integrity: sha512-jBsTRX+MPsqiqYQsE9vRXMiAkUafU11j2zuWAaOX9vubLutNB0er8c0FJWeudVDH5D52V4Lf4vTIqbOE54PUcQ==} 1157 1103 ··· 1169 1115 resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1170 1116 engines: {node: '>=8.6.0'} 1171 1117 1172 - fast-glob@3.3.3: 1173 - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1174 - engines: {node: '>=8.6.0'} 1175 - 1176 1118 fastq@1.17.1: 1177 1119 resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1178 1120 1121 + fdir@6.4.3: 1122 + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} 1123 + peerDependencies: 1124 + picomatch: ^3 || ^4 1125 + peerDependenciesMeta: 1126 + picomatch: 1127 + optional: true 1128 + 1179 1129 fill-range@7.1.1: 1180 1130 resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1181 1131 engines: {node: '>=8'} ··· 1201 1151 flattie@1.1.1: 1202 1152 resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} 1203 1153 engines: {node: '>=8'} 1204 - 1205 - form-data@4.0.1: 1206 - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} 1207 - engines: {node: '>= 6'} 1208 1154 1209 1155 fs-extra@7.0.1: 1210 1156 resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} ··· 1248 1194 graceful-fs@4.2.11: 1249 1195 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1250 1196 1251 - h3@1.14.0: 1252 - resolution: {integrity: sha512-ao22eiONdgelqcnknw0iD645qW0s9NnrJHr5OBz4WOMdBdycfSas1EQf1wXRsm+PcB2Yoj43pjBPwqIpJQTeWg==} 1197 + h3@1.15.1: 1198 + resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} 1253 1199 1254 1200 hast-util-embedded@3.0.0: 1255 1201 resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} 1256 1202 1257 1203 hast-util-format@1.1.0: 1258 1204 resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} 1259 - 1260 - hast-util-from-dom@5.0.1: 1261 - resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} 1262 - 1263 - hast-util-from-html@2.0.1: 1264 - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} 1265 1205 1266 1206 hast-util-from-html@2.0.3: 1267 1207 resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} ··· 1296 1236 hast-util-to-estree@3.1.0: 1297 1237 resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} 1298 1238 1299 - hast-util-to-html@9.0.3: 1300 - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} 1301 - 1302 1239 hast-util-to-html@9.0.4: 1303 1240 resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} 1304 1241 ··· 1320 1257 hastscript@9.0.0: 1321 1258 resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} 1322 1259 1323 - html-encoding-sniffer@4.0.0: 1324 - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 1325 - engines: {node: '>=18'} 1260 + hastscript@9.0.1: 1261 + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} 1326 1262 1327 1263 html-escaper@3.0.3: 1328 1264 resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} ··· 1336 1272 http-cache-semantics@4.1.1: 1337 1273 resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 1338 1274 1339 - http-proxy-agent@7.0.2: 1340 - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1341 - engines: {node: '>= 14'} 1342 - 1343 - https-proxy-agent@7.0.5: 1344 - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} 1345 - engines: {node: '>= 14'} 1346 - 1347 1275 human-id@1.0.2: 1348 1276 resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1349 1277 ··· 1352 1280 1353 1281 iconv-lite@0.4.24: 1354 1282 resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1355 - engines: {node: '>=0.10.0'} 1356 - 1357 - iconv-lite@0.6.3: 1358 - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1359 1283 engines: {node: '>=0.10.0'} 1360 1284 1361 1285 ignore@5.3.2: ··· 1393 1317 1394 1318 is-arrayish@0.3.2: 1395 1319 resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1396 - 1397 - is-binary-path@2.1.0: 1398 - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1399 - engines: {node: '>=8'} 1400 1320 1401 1321 is-decimal@2.0.1: 1402 1322 resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} ··· 1434 1354 resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} 1435 1355 engines: {node: '>=12'} 1436 1356 1437 - is-potential-custom-element-name@1.0.1: 1438 - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1439 - 1440 1357 is-subdir@1.2.0: 1441 1358 resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1442 1359 engines: {node: '>=4'} ··· 1464 1381 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1465 1382 hasBin: true 1466 1383 1467 - jsdom@23.2.0: 1468 - resolution: {integrity: sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==} 1469 - engines: {node: '>=18'} 1470 - peerDependencies: 1471 - canvas: ^2.11.2 1472 - peerDependenciesMeta: 1473 - canvas: 1474 - optional: true 1475 - 1476 1384 json-buffer@3.0.1: 1477 1385 resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1478 1386 1479 1387 jsonfile@4.0.0: 1480 1388 resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1481 1389 1482 - katex@0.16.11: 1483 - resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} 1390 + katex@0.16.21: 1391 + resolution: {integrity: sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==} 1484 1392 hasBin: true 1485 1393 1486 1394 keyv@4.5.4: ··· 1493 1401 kleur@4.1.5: 1494 1402 resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1495 1403 engines: {node: '>=6'} 1404 + 1405 + klona@2.0.6: 1406 + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 1407 + engines: {node: '>= 8'} 1496 1408 1497 1409 load-yaml-file@0.2.0: 1498 1410 resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} ··· 1565 1477 1566 1478 mdast-util-mdx-jsx@3.1.3: 1567 1479 resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} 1480 + 1481 + mdast-util-mdx-jsx@3.2.0: 1482 + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} 1568 1483 1569 1484 mdast-util-mdx@3.0.0: 1570 1485 resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} ··· 1584 1499 mdast-util-to-string@4.0.0: 1585 1500 resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} 1586 1501 1587 - mdn-data@2.0.30: 1588 - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 1589 - 1590 1502 merge2@1.4.1: 1591 1503 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1592 1504 engines: {node: '>= 8'} ··· 1702 1614 micromark-util-types@2.0.1: 1703 1615 resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} 1704 1616 1617 + micromark-util-types@2.0.2: 1618 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 1619 + 1705 1620 micromark@4.0.1: 1706 1621 resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} 1707 1622 ··· 1709 1624 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1710 1625 engines: {node: '>=8.6'} 1711 1626 1712 - mime-db@1.52.0: 1713 - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1714 - engines: {node: '>= 0.6'} 1715 - 1716 - mime-types@2.1.35: 1717 - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1718 - engines: {node: '>= 0.6'} 1719 - 1720 - mime@3.0.0: 1721 - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 1722 - engines: {node: '>=10.0.0'} 1723 - hasBin: true 1724 - 1725 1627 minimatch@3.1.2: 1726 1628 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1727 1629 ··· 1732 1634 resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1733 1635 engines: {node: '>=4'} 1734 1636 1735 - mrmime@2.0.0: 1736 - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1637 + mrmime@2.0.1: 1638 + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} 1737 1639 engines: {node: '>=10'} 1738 1640 1739 1641 ms@2.1.3: ··· 1744 1646 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1745 1647 hasBin: true 1746 1648 1649 + nanoid@3.3.9: 1650 + resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} 1651 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1652 + hasBin: true 1653 + 1747 1654 neotraverse@0.6.18: 1748 1655 resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} 1749 1656 engines: {node: '>= 10'} ··· 1763 1670 encoding: 1764 1671 optional: true 1765 1672 1673 + node-mock-http@1.0.0: 1674 + resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} 1675 + 1766 1676 normalize-path@3.0.0: 1767 1677 resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1768 1678 engines: {node: '>=0.10.0'} ··· 1772 1682 1773 1683 ofetch@1.4.1: 1774 1684 resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} 1775 - 1776 - ohash@1.1.4: 1777 - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} 1778 1685 1779 1686 once@1.4.0: 1780 1687 resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1781 1688 1782 - oniguruma-to-es@0.4.1: 1783 - resolution: {integrity: sha512-rNcEohFz095QKGRovP/yqPIKc+nP+Sjs4YTHMv33nMePGKrq/r2eu9Yh4646M5XluGJsUnmwoXuiXE69KDs+fQ==} 1784 - 1785 1689 oniguruma-to-es@2.3.0: 1786 1690 resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} 1787 1691 ··· 1820 1724 resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} 1821 1725 engines: {node: '>=8'} 1822 1726 1823 - p-queue@8.0.1: 1824 - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} 1727 + p-queue@8.1.0: 1728 + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} 1825 1729 engines: {node: '>=18'} 1826 1730 1827 1731 p-timeout@3.2.0: ··· 1845 1749 1846 1750 parse-entities@4.0.1: 1847 1751 resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} 1752 + 1753 + parse-entities@4.0.2: 1754 + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} 1848 1755 1849 1756 parse-latin@7.0.0: 1850 1757 resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} ··· 1871 1778 resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1872 1779 engines: {node: '>=8'} 1873 1780 1874 - pathe@1.1.2: 1875 - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1876 - 1877 1781 picocolors@1.1.1: 1878 1782 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1879 1783 ··· 1907 1811 resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1908 1812 engines: {node: ^10 || ^12 || >=14} 1909 1813 1910 - preferred-pm@4.0.0: 1911 - resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} 1814 + postcss@8.5.3: 1815 + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1816 + engines: {node: ^10 || ^12 || >=14} 1817 + 1818 + preferred-pm@4.1.1: 1819 + resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} 1912 1820 engines: {node: '>=18.12'} 1913 1821 1914 1822 prettier@2.8.8: ··· 1927 1835 property-information@6.5.0: 1928 1836 resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} 1929 1837 1930 - psl@1.13.0: 1931 - resolution: {integrity: sha512-BFwmFXiJoFqlUpZ5Qssolv15DMyc84gTBds1BjsV1BfXEo1UyyD7GsmN67n7J77uRhoSNW1AXtXKPLcBFQn9Aw==} 1932 - 1933 - punycode@2.3.1: 1934 - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1935 - engines: {node: '>=6'} 1936 - 1937 - querystringify@2.2.0: 1938 - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 1838 + property-information@7.0.0: 1839 + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} 1939 1840 1940 1841 queue-microtask@1.2.3: 1941 1842 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} ··· 1947 1848 resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1948 1849 engines: {node: '>=6'} 1949 1850 1950 - readdirp@3.6.0: 1951 - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1952 - engines: {node: '>=8.10.0'} 1851 + readdirp@4.1.2: 1852 + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1853 + engines: {node: '>= 14.18.0'} 1953 1854 1954 1855 recma-build-jsx@1.0.0: 1955 1856 resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} ··· 1966 1867 regenerator-runtime@0.14.1: 1967 1868 resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1968 1869 1969 - regex-recursion@4.2.1: 1970 - resolution: {integrity: sha512-QHNZyZAeKdndD1G3bKAbBEKOSSK4KOHQrAJ01N1LJeb0SoH4DJIeFhp0uUpETgONifS4+P3sOgoA1dhzgrQvhA==} 1971 - 1972 1870 regex-recursion@5.1.1: 1973 1871 resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} 1974 1872 1975 1873 regex-utilities@2.3.0: 1976 1874 resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1977 - 1978 - regex@5.0.2: 1979 - resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} 1980 1875 1981 1876 regex@5.1.1: 1982 1877 resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} ··· 1987 1882 rehype-format@5.0.1: 1988 1883 resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} 1989 1884 1990 - rehype-mathjax@6.0.0: 1991 - resolution: {integrity: sha512-SioRmn+0mRWtDc4QVKG9JG88bXhPazfhc11GQoQ68mwot2WWyfabyZ7tuJu3Z4LCf893wXkQTVTF8PUlntoDwA==} 1885 + rehype-mathjax@7.1.0: 1886 + resolution: {integrity: sha512-mJHNpoqCC5UZ24OKx0wNjlzV18qeJz/Q/LtEjxXzt8vqrZ1Z3GxQnVrHcF5/PogcXUK8cWwJ4U/LWOQWEiABHw==} 1992 1887 1993 1888 rehype-parse@9.0.1: 1994 1889 resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} ··· 2008 1903 remark-directive@3.0.0: 2009 1904 resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} 2010 1905 2011 - remark-expressive-code@0.34.2: 2012 - resolution: {integrity: sha512-gFPdzlcvfq0h56yKP8nd4rpN0hY1Uv6Ti5JbuK9pUMiWTMl1SX/NY6HeaHDl/wFLIblUT7O3916li8OghJEKpQ==} 2013 - 2014 1906 remark-gfm@4.0.0: 2015 1907 resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} 2016 1908 ··· 2033 1925 remark-stringify@11.0.0: 2034 1926 resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} 2035 1927 2036 - require-from-string@2.0.2: 2037 - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 2038 - engines: {node: '>=0.10.0'} 2039 - 2040 - requires-port@1.0.0: 2041 - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 2042 - 2043 1928 resolve-from@5.0.0: 2044 1929 resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2045 1930 engines: {node: '>=8'} ··· 2065 1950 deprecated: Rimraf versions prior to v4 are no longer supported 2066 1951 hasBin: true 2067 1952 2068 - rollup@4.27.4: 2069 - resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} 1953 + rollup@4.35.0: 1954 + resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} 2070 1955 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2071 1956 hasBin: true 2072 1957 2073 - rrweb-cssom@0.6.0: 2074 - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} 2075 - 2076 - rrweb-cssom@0.7.1: 2077 - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 2078 - 2079 1958 run-parallel@1.2.0: 2080 1959 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2081 1960 ··· 2085 1964 sax@1.4.1: 2086 1965 resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 2087 1966 2088 - saxes@6.0.0: 2089 - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 2090 - engines: {node: '>=v12.22.7'} 2091 - 2092 1967 semver@7.6.3: 2093 1968 resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1969 + engines: {node: '>=10'} 1970 + hasBin: true 1971 + 1972 + semver@7.7.1: 1973 + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 2094 1974 engines: {node: '>=10'} 2095 1975 hasBin: true 2096 1976 ··· 2105 1985 shebang-regex@3.0.0: 2106 1986 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2107 1987 engines: {node: '>=8'} 2108 - 2109 - shiki@1.23.1: 2110 - resolution: {integrity: sha512-8kxV9TH4pXgdKGxNOkrSMydn1Xf6It8lsle0fiqxf7a1149K1WGtdOu3Zb91T5r1JpvRPxqxU3C2XdZZXQnrig==} 2111 1988 2112 1989 shiki@1.29.1: 2113 1990 resolution: {integrity: sha512-TghWKV9pJTd/N+IgAIVJtr0qZkB7FfFCUrrEJc0aRmZupo3D1OCVRknQWVRVA7AX/M0Ld7QfoAruPzr3CnUJuw==} 2114 1991 1992 + shiki@1.29.2: 1993 + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} 1994 + 2115 1995 signal-exit@4.1.0: 2116 1996 resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 2117 1997 engines: {node: '>=14'} ··· 2134 2014 resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2135 2015 engines: {node: '>=8'} 2136 2016 2017 + smol-toml@1.3.1: 2018 + resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} 2019 + engines: {node: '>= 18'} 2020 + 2137 2021 source-map-js@1.2.1: 2138 2022 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2139 2023 engines: {node: '>=0.10.0'} ··· 2155 2039 sprintf-js@1.0.3: 2156 2040 resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 2157 2041 2158 - starlight-image-zoom@0.5.0: 2159 - resolution: {integrity: sha512-qlyYq0N+15H6qe1wouK1HWCnHSjoyzad4TsufilDHvsk6d3t+TSxpvAk6rYONPu4AMe4aMn7HQPGCridwZZhfw==} 2042 + starlight-image-zoom@0.11.1: 2043 + resolution: {integrity: sha512-TmnAyS+MWWV6h1fjuezrMFA36REd+7QzcjDFFFyC4ws5FDMoHsjQn0MlHM0cUaHEKfQ9y1PpL9LijCvRFuGbuw==} 2160 2044 engines: {node: '>=18'} 2161 2045 peerDependencies: 2162 - '@astrojs/starlight': '>=0.22.0' 2046 + '@astrojs/starlight': '>=0.32.0' 2163 2047 2164 - starlight-links-validator@0.7.1: 2165 - resolution: {integrity: sha512-6SYqCGQdiiTMrgCE4d3F/kFae1rYzuVk0QUs9MXqj6w65tZLvd4qieTrN2NdDNMWXyoxzUTR+ehNzajqr7ZUEg==} 2166 - engines: {node: '>=18.14.1'} 2048 + starlight-links-validator@0.14.3: 2049 + resolution: {integrity: sha512-2CvQs0ZdIVExrEQ1bn0r2aFx4n+VSOb6vDWK+gTNb5N1c+nXJ7VjUbEsQhj+9Lb7XgY6Nxqz9JXUM9364hJ3ZA==} 2050 + engines: {node: '>=18.17.1'} 2167 2051 peerDependencies: 2168 2052 '@astrojs/starlight': '>=0.15.0' 2169 - astro: '>=4.0.0' 2170 2053 2171 - starlight-sidebar-topics-dropdown@0.3.0: 2172 - resolution: {integrity: sha512-FuOYMNy+ZwXoArV5nvTqSc7tUTnxeJGF9wks3IgYBaE7A/yBRtTR+pBHA5re+1edGxP/O1B63L7N5dB4SMGtgQ==} 2054 + starlight-sidebar-topics-dropdown@0.4.1: 2055 + resolution: {integrity: sha512-T5hv24mP6/lWZR4IU4ppLYY0V1iWsff9TiHJov3eVSV2TmXPUweKyK0QXRGdTGl9XHNbpwDhlor1MjhwgjVOFw==} 2173 2056 engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} 2174 2057 peerDependencies: 2175 2058 '@astrojs/starlight': '>=0.30' ··· 2213 2096 style-to-object@1.0.8: 2214 2097 resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} 2215 2098 2216 - symbol-tree@3.2.4: 2217 - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 2218 - 2219 2099 term-size@2.2.1: 2220 2100 resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2221 2101 engines: {node: '>=8'} ··· 2223 2103 tinyexec@0.3.2: 2224 2104 resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 2225 2105 2106 + tinyglobby@0.2.12: 2107 + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} 2108 + engines: {node: '>=12.0.0'} 2109 + 2226 2110 tmp@0.0.33: 2227 2111 resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2228 2112 engines: {node: '>=0.6.0'} ··· 2231 2115 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2232 2116 engines: {node: '>=8.0'} 2233 2117 2234 - tough-cookie@4.1.4: 2235 - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} 2236 - engines: {node: '>=6'} 2237 - 2238 2118 tr46@0.0.3: 2239 2119 resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2240 - 2241 - tr46@5.0.0: 2242 - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} 2243 - engines: {node: '>=18'} 2244 2120 2245 2121 trim-lines@3.0.1: 2246 2122 resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} ··· 2248 2124 trough@2.2.0: 2249 2125 resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} 2250 2126 2251 - tsconfck@3.1.4: 2252 - resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} 2127 + tsconfck@3.1.5: 2128 + resolution: {integrity: sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==} 2253 2129 engines: {node: ^18 || >=20} 2254 2130 hasBin: true 2255 2131 peerDependencies: ··· 2282 2158 uncrypto@0.1.3: 2283 2159 resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} 2284 2160 2285 - unenv@1.10.0: 2286 - resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} 2287 - 2288 2161 unified@11.0.5: 2289 2162 resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} 2290 2163 ··· 2322 2195 resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2323 2196 engines: {node: '>= 4.0.0'} 2324 2197 2325 - universalify@0.2.0: 2326 - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} 2327 - engines: {node: '>= 4.0.0'} 2328 - 2329 - unstorage@1.14.4: 2330 - resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} 2198 + unstorage@1.15.0: 2199 + resolution: {integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==} 2331 2200 peerDependencies: 2332 2201 '@azure/app-configuration': ^1.8.0 2333 2202 '@azure/cosmos': ^4.2.0 2334 2203 '@azure/data-tables': ^13.3.0 2335 - '@azure/identity': ^4.5.0 2204 + '@azure/identity': ^4.6.0 2336 2205 '@azure/keyvault-secrets': ^4.9.0 2337 2206 '@azure/storage-blob': ^12.26.0 2338 2207 '@capacitor/preferences': ^6.0.3 2339 - '@deno/kv': '>=0.8.4' 2208 + '@deno/kv': '>=0.9.0' 2340 2209 '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 2341 2210 '@planetscale/database': ^1.19.0 2342 2211 '@upstash/redis': ^1.34.3 2343 - '@vercel/blob': '>=0.27.0' 2212 + '@vercel/blob': '>=0.27.1' 2344 2213 '@vercel/kv': ^1.0.1 2345 2214 aws4fetch: ^1.0.20 2346 2215 db0: '>=0.2.1' 2347 2216 idb-keyval: ^6.2.1 2348 2217 ioredis: ^5.4.2 2349 - uploadthing: ^7.4.1 2218 + uploadthing: ^7.4.4 2350 2219 peerDependenciesMeta: 2351 2220 '@azure/app-configuration': 2352 2221 optional: true ··· 2385 2254 uploadthing: 2386 2255 optional: true 2387 2256 2388 - url-parse@1.5.10: 2389 - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 2390 - 2391 2257 util-deprecate@1.0.2: 2392 2258 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2393 2259 ··· 2400 2266 vfile@6.0.3: 2401 2267 resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 2402 2268 2403 - vite@6.0.11: 2404 - resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} 2269 + vite@6.2.1: 2270 + resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} 2405 2271 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 2406 2272 hasBin: true 2407 2273 peerDependencies: ··· 2440 2306 yaml: 2441 2307 optional: true 2442 2308 2443 - vitefu@1.0.5: 2444 - resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} 2309 + vitefu@1.0.6: 2310 + resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} 2445 2311 peerDependencies: 2446 2312 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 2447 2313 peerDependenciesMeta: 2448 2314 vite: 2449 2315 optional: true 2450 2316 2451 - w3c-xmlserializer@5.0.0: 2452 - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 2453 - engines: {node: '>=18'} 2454 - 2455 2317 web-namespaces@2.0.1: 2456 2318 resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} 2457 2319 2458 2320 webidl-conversions@3.0.1: 2459 2321 resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2460 2322 2461 - webidl-conversions@7.0.0: 2462 - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 2463 - engines: {node: '>=12'} 2464 - 2465 - whatwg-encoding@3.1.1: 2466 - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 2467 - engines: {node: '>=18'} 2468 - 2469 - whatwg-mimetype@4.0.0: 2470 - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 2471 - engines: {node: '>=18'} 2472 - 2473 - whatwg-url@14.0.0: 2474 - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} 2475 - engines: {node: '>=18'} 2476 - 2477 2323 whatwg-url@5.0.0: 2478 2324 resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2479 2325 ··· 2481 2327 resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} 2482 2328 engines: {node: '>=4'} 2483 2329 2484 - which-pm@3.0.0: 2485 - resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} 2330 + which-pm@3.0.1: 2331 + resolution: {integrity: sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==} 2486 2332 engines: {node: '>=18.12'} 2487 2333 2488 2334 which@2.0.2: ··· 2504 2350 wrappy@1.0.2: 2505 2351 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2506 2352 2507 - ws@8.18.0: 2508 - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 2509 - engines: {node: '>=10.0.0'} 2510 - peerDependencies: 2511 - bufferutil: ^4.0.1 2512 - utf-8-validate: '>=5.0.2' 2513 - peerDependenciesMeta: 2514 - bufferutil: 2515 - optional: true 2516 - utf-8-validate: 2517 - optional: true 2518 - 2519 - xml-name-validator@5.0.0: 2520 - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 2521 - engines: {node: '>=18'} 2522 - 2523 - xmlchars@2.2.0: 2524 - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 2525 - 2526 2353 xmldom-sre@0.1.31: 2527 2354 resolution: {integrity: sha512-f9s+fUkX04BxQf+7mMWAp5zk61pciie+fFLC9hX9UVvCeJQfNHRHXpeo5MPcR0EUf57PYLdt+ZO4f3Ipk2oZUw==} 2528 2355 engines: {node: '>=0.1'} ··· 2538 2365 resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} 2539 2366 engines: {node: '>=12.20'} 2540 2367 2541 - yocto-spinner@0.1.2: 2542 - resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} 2368 + yocto-spinner@0.2.1: 2369 + resolution: {integrity: sha512-lHHxjh0bXaLgdJy3cNnVb/F9myx3CkhrvSOEVTkaUgNMXnYFa2xYPVhtGnqhh3jErY2gParBOHallCbc7NrlZQ==} 2543 2370 engines: {node: '>=18.19'} 2544 2371 2545 2372 yoctocolors@2.1.1: 2546 2373 resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} 2547 2374 engines: {node: '>=18'} 2548 2375 2549 - zod-to-json-schema@3.24.1: 2550 - resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} 2376 + zod-to-json-schema@3.24.3: 2377 + resolution: {integrity: sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==} 2551 2378 peerDependencies: 2552 2379 zod: ^3.24.1 2553 2380 ··· 2563 2390 zod@3.24.1: 2564 2391 resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} 2565 2392 2393 + zod@3.24.2: 2394 + resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} 2395 + 2566 2396 zwitch@2.0.4: 2567 2397 resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 2568 2398 ··· 2578 2408 - encoding 2579 2409 - supports-color 2580 2410 2581 - '@asamuzakjp/dom-selector@2.0.2': 2582 - dependencies: 2583 - bidi-js: 1.0.3 2584 - css-tree: 2.3.1 2585 - is-potential-custom-element-name: 1.0.1 2411 + '@astrojs/compiler@2.10.4': {} 2586 2412 2587 - '@astrojs/compiler@2.10.3': {} 2588 - 2589 - '@astrojs/internal-helpers@0.4.2': {} 2413 + '@astrojs/internal-helpers@0.6.0': {} 2590 2414 2591 2415 '@astrojs/markdown-remark@6.0.2': 2592 2416 dependencies: ··· 2612 2436 transitivePeerDependencies: 2613 2437 - supports-color 2614 2438 2615 - '@astrojs/mdx@4.0.7(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))': 2439 + '@astrojs/markdown-remark@6.2.0': 2440 + dependencies: 2441 + '@astrojs/internal-helpers': 0.6.0 2442 + '@astrojs/prism': 3.2.0 2443 + github-slugger: 2.0.0 2444 + hast-util-from-html: 2.0.3 2445 + hast-util-to-text: 4.0.2 2446 + import-meta-resolve: 4.1.0 2447 + js-yaml: 4.1.0 2448 + mdast-util-definitions: 6.0.0 2449 + rehype-raw: 7.0.0 2450 + rehype-stringify: 10.0.1 2451 + remark-gfm: 4.0.0 2452 + remark-parse: 11.0.0 2453 + remark-rehype: 11.1.1 2454 + remark-smartypants: 3.0.2 2455 + shiki: 1.29.2 2456 + smol-toml: 1.3.1 2457 + unified: 11.0.5 2458 + unist-util-remove-position: 5.0.0 2459 + unist-util-visit: 5.0.0 2460 + unist-util-visit-parents: 6.0.1 2461 + vfile: 6.0.3 2462 + transitivePeerDependencies: 2463 + - supports-color 2464 + 2465 + '@astrojs/mdx@4.0.7(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))': 2616 2466 dependencies: 2617 2467 '@astrojs/markdown-remark': 6.0.2 2618 2468 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) 2619 2469 acorn: 8.14.0 2620 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 2470 + astro: 5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2) 2621 2471 es-module-lexer: 1.6.0 2622 2472 estree-util-visit: 2.0.0 2623 2473 hast-util-to-html: 9.0.4 ··· 2639 2489 dependencies: 2640 2490 sitemap: 8.0.0 2641 2491 stream-replace-string: 2.0.0 2642 - zod: 3.23.8 2492 + zod: 3.24.1 2643 2493 2644 - '@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))': 2494 + '@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))': 2645 2495 dependencies: 2646 - '@astrojs/mdx': 4.0.7(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 2496 + '@astrojs/mdx': 4.0.7(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 2647 2497 '@astrojs/sitemap': 3.2.1 2648 2498 '@pagefind/default-ui': 1.3.0 2649 2499 '@types/hast': 3.0.4 2650 2500 '@types/js-yaml': 4.0.9 2651 2501 '@types/mdast': 4.0.4 2652 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 2653 - astro-expressive-code: 0.40.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 2502 + astro: 5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2) 2503 + astro-expressive-code: 0.40.1(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 2654 2504 bcp-47: 2.1.0 2655 2505 hast-util-from-html: 2.0.3 2656 2506 hast-util-select: 6.0.3 ··· 2658 2508 hastscript: 9.0.0 2659 2509 i18next: 23.16.8 2660 2510 js-yaml: 4.1.0 2511 + klona: 2.0.6 2661 2512 mdast-util-directive: 3.0.0 2662 2513 mdast-util-to-markdown: 2.1.2 2663 2514 mdast-util-to-string: 4.0.0 ··· 2869 2720 tslib: 2.8.1 2870 2721 optional: true 2871 2722 2872 - '@esbuild/aix-ppc64@0.24.2': 2723 + '@esbuild/aix-ppc64@0.25.0': 2873 2724 optional: true 2874 2725 2875 - '@esbuild/android-arm64@0.24.2': 2726 + '@esbuild/android-arm64@0.25.0': 2876 2727 optional: true 2877 2728 2878 - '@esbuild/android-arm@0.24.2': 2729 + '@esbuild/android-arm@0.25.0': 2879 2730 optional: true 2880 2731 2881 - '@esbuild/android-x64@0.24.2': 2732 + '@esbuild/android-x64@0.25.0': 2882 2733 optional: true 2883 2734 2884 - '@esbuild/darwin-arm64@0.24.2': 2735 + '@esbuild/darwin-arm64@0.25.0': 2885 2736 optional: true 2886 2737 2887 - '@esbuild/darwin-x64@0.24.2': 2738 + '@esbuild/darwin-x64@0.25.0': 2888 2739 optional: true 2889 2740 2890 - '@esbuild/freebsd-arm64@0.24.2': 2741 + '@esbuild/freebsd-arm64@0.25.0': 2891 2742 optional: true 2892 2743 2893 - '@esbuild/freebsd-x64@0.24.2': 2744 + '@esbuild/freebsd-x64@0.25.0': 2894 2745 optional: true 2895 2746 2896 - '@esbuild/linux-arm64@0.24.2': 2747 + '@esbuild/linux-arm64@0.25.0': 2897 2748 optional: true 2898 2749 2899 - '@esbuild/linux-arm@0.24.2': 2750 + '@esbuild/linux-arm@0.25.0': 2900 2751 optional: true 2901 2752 2902 - '@esbuild/linux-ia32@0.24.2': 2753 + '@esbuild/linux-ia32@0.25.0': 2903 2754 optional: true 2904 2755 2905 - '@esbuild/linux-loong64@0.24.2': 2756 + '@esbuild/linux-loong64@0.25.0': 2906 2757 optional: true 2907 2758 2908 - '@esbuild/linux-mips64el@0.24.2': 2759 + '@esbuild/linux-mips64el@0.25.0': 2909 2760 optional: true 2910 2761 2911 - '@esbuild/linux-ppc64@0.24.2': 2762 + '@esbuild/linux-ppc64@0.25.0': 2912 2763 optional: true 2913 2764 2914 - '@esbuild/linux-riscv64@0.24.2': 2765 + '@esbuild/linux-riscv64@0.25.0': 2915 2766 optional: true 2916 2767 2917 - '@esbuild/linux-s390x@0.24.2': 2768 + '@esbuild/linux-s390x@0.25.0': 2918 2769 optional: true 2919 2770 2920 - '@esbuild/linux-x64@0.24.2': 2771 + '@esbuild/linux-x64@0.25.0': 2921 2772 optional: true 2922 2773 2923 - '@esbuild/netbsd-arm64@0.24.2': 2774 + '@esbuild/netbsd-arm64@0.25.0': 2924 2775 optional: true 2925 2776 2926 - '@esbuild/netbsd-x64@0.24.2': 2777 + '@esbuild/netbsd-x64@0.25.0': 2927 2778 optional: true 2928 2779 2929 - '@esbuild/openbsd-arm64@0.24.2': 2780 + '@esbuild/openbsd-arm64@0.25.0': 2930 2781 optional: true 2931 2782 2932 - '@esbuild/openbsd-x64@0.24.2': 2783 + '@esbuild/openbsd-x64@0.25.0': 2933 2784 optional: true 2934 2785 2935 - '@esbuild/sunos-x64@0.24.2': 2786 + '@esbuild/sunos-x64@0.25.0': 2936 2787 optional: true 2937 2788 2938 - '@esbuild/win32-arm64@0.24.2': 2789 + '@esbuild/win32-arm64@0.25.0': 2939 2790 optional: true 2940 2791 2941 - '@esbuild/win32-ia32@0.24.2': 2792 + '@esbuild/win32-ia32@0.25.0': 2942 2793 optional: true 2943 2794 2944 - '@esbuild/win32-x64@0.24.2': 2795 + '@esbuild/win32-x64@0.25.0': 2945 2796 optional: true 2946 2797 2947 - '@expressive-code/core@0.34.2': 2948 - dependencies: 2949 - '@ctrl/tinycolor': 4.1.0 2950 - hast-util-select: 6.0.3 2951 - hast-util-to-html: 9.0.3 2952 - hast-util-to-text: 4.0.2 2953 - hastscript: 9.0.0 2954 - postcss: 8.4.49 2955 - postcss-nested: 6.2.0(postcss@8.4.49) 2956 - unist-util-visit: 5.0.0 2957 - unist-util-visit-parents: 6.0.1 2958 - 2959 2798 '@expressive-code/core@0.40.1': 2960 2799 dependencies: 2961 2800 '@ctrl/tinycolor': 4.1.0 2962 2801 hast-util-select: 6.0.3 2963 - hast-util-to-html: 9.0.3 2802 + hast-util-to-html: 9.0.4 2964 2803 hast-util-to-text: 4.0.2 2965 2804 hastscript: 9.0.0 2966 2805 postcss: 8.4.49 ··· 2968 2807 unist-util-visit: 5.0.0 2969 2808 unist-util-visit-parents: 6.0.1 2970 2809 2971 - '@expressive-code/plugin-frames@0.34.2': 2972 - dependencies: 2973 - '@expressive-code/core': 0.34.2 2974 - 2975 2810 '@expressive-code/plugin-frames@0.40.1': 2976 2811 dependencies: 2977 2812 '@expressive-code/core': 0.40.1 2978 2813 2979 - '@expressive-code/plugin-shiki@0.34.2': 2980 - dependencies: 2981 - '@expressive-code/core': 0.34.2 2982 - shiki: 1.23.1 2983 - 2984 2814 '@expressive-code/plugin-shiki@0.40.1': 2985 2815 dependencies: 2986 2816 '@expressive-code/core': 0.40.1 2987 2817 shiki: 1.29.1 2988 - 2989 - '@expressive-code/plugin-text-markers@0.34.2': 2990 - dependencies: 2991 - '@expressive-code/core': 0.34.2 2992 2818 2993 2819 '@expressive-code/plugin-text-markers@0.40.1': 2994 2820 dependencies: ··· 3175 3001 '@pagefind/windows-x64@1.3.0': 3176 3002 optional: true 3177 3003 3178 - '@rollup/pluginutils@5.1.4(rollup@4.27.4)': 3004 + '@rollup/pluginutils@5.1.4(rollup@4.35.0)': 3179 3005 dependencies: 3180 3006 '@types/estree': 1.0.6 3181 3007 estree-walker: 2.0.2 3182 3008 picomatch: 4.0.2 3183 3009 optionalDependencies: 3184 - rollup: 4.27.4 3010 + rollup: 4.35.0 3185 3011 3186 - '@rollup/rollup-android-arm-eabi@4.27.4': 3012 + '@rollup/rollup-android-arm-eabi@4.35.0': 3187 3013 optional: true 3188 3014 3189 - '@rollup/rollup-android-arm64@4.27.4': 3015 + '@rollup/rollup-android-arm64@4.35.0': 3190 3016 optional: true 3191 3017 3192 - '@rollup/rollup-darwin-arm64@4.27.4': 3018 + '@rollup/rollup-darwin-arm64@4.35.0': 3193 3019 optional: true 3194 3020 3195 - '@rollup/rollup-darwin-x64@4.27.4': 3021 + '@rollup/rollup-darwin-x64@4.35.0': 3196 3022 optional: true 3197 3023 3198 - '@rollup/rollup-freebsd-arm64@4.27.4': 3024 + '@rollup/rollup-freebsd-arm64@4.35.0': 3199 3025 optional: true 3200 3026 3201 - '@rollup/rollup-freebsd-x64@4.27.4': 3027 + '@rollup/rollup-freebsd-x64@4.35.0': 3202 3028 optional: true 3203 3029 3204 - '@rollup/rollup-linux-arm-gnueabihf@4.27.4': 3030 + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': 3205 3031 optional: true 3206 3032 3207 - '@rollup/rollup-linux-arm-musleabihf@4.27.4': 3033 + '@rollup/rollup-linux-arm-musleabihf@4.35.0': 3208 3034 optional: true 3209 3035 3210 - '@rollup/rollup-linux-arm64-gnu@4.27.4': 3036 + '@rollup/rollup-linux-arm64-gnu@4.35.0': 3211 3037 optional: true 3212 3038 3213 - '@rollup/rollup-linux-arm64-musl@4.27.4': 3039 + '@rollup/rollup-linux-arm64-musl@4.35.0': 3214 3040 optional: true 3215 3041 3216 - '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': 3042 + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': 3217 3043 optional: true 3218 3044 3219 - '@rollup/rollup-linux-riscv64-gnu@4.27.4': 3045 + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': 3220 3046 optional: true 3221 3047 3222 - '@rollup/rollup-linux-s390x-gnu@4.27.4': 3048 + '@rollup/rollup-linux-riscv64-gnu@4.35.0': 3223 3049 optional: true 3224 3050 3225 - '@rollup/rollup-linux-x64-gnu@4.27.4': 3051 + '@rollup/rollup-linux-s390x-gnu@4.35.0': 3226 3052 optional: true 3227 3053 3228 - '@rollup/rollup-linux-x64-musl@4.27.4': 3054 + '@rollup/rollup-linux-x64-gnu@4.35.0': 3229 3055 optional: true 3230 3056 3231 - '@rollup/rollup-win32-arm64-msvc@4.27.4': 3057 + '@rollup/rollup-linux-x64-musl@4.35.0': 3232 3058 optional: true 3233 3059 3234 - '@rollup/rollup-win32-ia32-msvc@4.27.4': 3060 + '@rollup/rollup-win32-arm64-msvc@4.35.0': 3235 3061 optional: true 3236 3062 3237 - '@rollup/rollup-win32-x64-msvc@4.27.4': 3063 + '@rollup/rollup-win32-ia32-msvc@4.35.0': 3238 3064 optional: true 3239 3065 3240 - '@shikijs/core@1.23.1': 3241 - dependencies: 3242 - '@shikijs/engine-javascript': 1.23.1 3243 - '@shikijs/engine-oniguruma': 1.23.1 3244 - '@shikijs/types': 1.23.1 3245 - '@shikijs/vscode-textmate': 9.3.0 3246 - '@types/hast': 3.0.4 3247 - hast-util-to-html: 9.0.3 3066 + '@rollup/rollup-win32-x64-msvc@4.35.0': 3067 + optional: true 3248 3068 3249 3069 '@shikijs/core@1.29.1': 3250 3070 dependencies: ··· 3255 3075 '@types/hast': 3.0.4 3256 3076 hast-util-to-html: 9.0.4 3257 3077 3258 - '@shikijs/engine-javascript@1.23.1': 3078 + '@shikijs/core@1.29.2': 3259 3079 dependencies: 3260 - '@shikijs/types': 1.23.1 3261 - '@shikijs/vscode-textmate': 9.3.0 3262 - oniguruma-to-es: 0.4.1 3080 + '@shikijs/engine-javascript': 1.29.2 3081 + '@shikijs/engine-oniguruma': 1.29.2 3082 + '@shikijs/types': 1.29.2 3083 + '@shikijs/vscode-textmate': 10.0.1 3084 + '@types/hast': 3.0.4 3085 + hast-util-to-html: 9.0.4 3263 3086 3264 3087 '@shikijs/engine-javascript@1.29.1': 3265 3088 dependencies: ··· 3267 3090 '@shikijs/vscode-textmate': 10.0.1 3268 3091 oniguruma-to-es: 2.3.0 3269 3092 3270 - '@shikijs/engine-oniguruma@1.23.1': 3093 + '@shikijs/engine-javascript@1.29.2': 3271 3094 dependencies: 3272 - '@shikijs/types': 1.23.1 3273 - '@shikijs/vscode-textmate': 9.3.0 3095 + '@shikijs/types': 1.29.2 3096 + '@shikijs/vscode-textmate': 10.0.1 3097 + oniguruma-to-es: 2.3.0 3274 3098 3275 3099 '@shikijs/engine-oniguruma@1.29.1': 3276 3100 dependencies: 3277 3101 '@shikijs/types': 1.29.1 3278 3102 '@shikijs/vscode-textmate': 10.0.1 3279 3103 3104 + '@shikijs/engine-oniguruma@1.29.2': 3105 + dependencies: 3106 + '@shikijs/types': 1.29.2 3107 + '@shikijs/vscode-textmate': 10.0.1 3108 + 3280 3109 '@shikijs/langs@1.29.1': 3281 3110 dependencies: 3282 3111 '@shikijs/types': 1.29.1 3283 3112 3113 + '@shikijs/langs@1.29.2': 3114 + dependencies: 3115 + '@shikijs/types': 1.29.2 3116 + 3284 3117 '@shikijs/themes@1.29.1': 3285 3118 dependencies: 3286 3119 '@shikijs/types': 1.29.1 3287 3120 3288 - '@shikijs/types@1.23.1': 3121 + '@shikijs/themes@1.29.2': 3122 + dependencies: 3123 + '@shikijs/types': 1.29.2 3124 + 3125 + '@shikijs/types@1.29.1': 3289 3126 dependencies: 3290 - '@shikijs/vscode-textmate': 9.3.0 3127 + '@shikijs/vscode-textmate': 10.0.1 3291 3128 '@types/hast': 3.0.4 3292 3129 3293 - '@shikijs/types@1.29.1': 3130 + '@shikijs/types@1.29.2': 3294 3131 dependencies: 3295 3132 '@shikijs/vscode-textmate': 10.0.1 3296 3133 '@types/hast': 3.0.4 3297 3134 3298 3135 '@shikijs/vscode-textmate@10.0.1': {} 3299 - 3300 - '@shikijs/vscode-textmate@9.3.0': {} 3301 3136 3302 3137 '@types/acorn@4.0.6': 3303 3138 dependencies: ··· 3341 3176 3342 3177 '@types/node@17.0.45': {} 3343 3178 3179 + '@types/picomatch@3.0.2': {} 3180 + 3344 3181 '@types/sax@1.2.7': 3345 3182 dependencies: 3346 3183 '@types/node': 17.0.45 ··· 3359 3196 3360 3197 acorn@8.14.0: {} 3361 3198 3362 - agent-base@7.1.1: 3363 - dependencies: 3364 - debug: 4.3.7 3365 - transitivePeerDependencies: 3366 - - supports-color 3367 - 3368 3199 ansi-align@3.0.1: 3369 3200 dependencies: 3370 3201 string-width: 4.2.3 ··· 3398 3229 3399 3230 astring@1.9.0: {} 3400 3231 3401 - astro-expressive-code@0.34.2(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)): 3232 + astro-expressive-code@0.40.1(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)): 3402 3233 dependencies: 3403 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 3404 - remark-expressive-code: 0.34.2 3405 - 3406 - astro-expressive-code@0.40.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)): 3407 - dependencies: 3408 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 3234 + astro: 5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2) 3409 3235 rehype-expressive-code: 0.40.1 3410 3236 3411 3237 astro-feelback@0.3.4: 3412 3238 dependencies: 3413 3239 '@feelback/js': 0.3.4 3414 3240 3415 - astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2): 3241 + astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2): 3416 3242 dependencies: 3417 - '@astrojs/compiler': 2.10.3 3418 - '@astrojs/internal-helpers': 0.4.2 3419 - '@astrojs/markdown-remark': 6.0.2 3243 + '@astrojs/compiler': 2.10.4 3244 + '@astrojs/internal-helpers': 0.6.0 3245 + '@astrojs/markdown-remark': 6.2.0 3420 3246 '@astrojs/telemetry': 3.2.0 3421 3247 '@oslojs/encoding': 1.1.0 3422 - '@rollup/pluginutils': 5.1.4(rollup@4.27.4) 3248 + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) 3423 3249 '@types/cookie': 0.6.0 3424 3250 acorn: 8.14.0 3425 3251 aria-query: 5.3.2 ··· 3437 3263 dlv: 1.1.3 3438 3264 dset: 3.1.4 3439 3265 es-module-lexer: 1.6.0 3440 - esbuild: 0.24.2 3266 + esbuild: 0.25.0 3441 3267 estree-walker: 3.0.3 3442 - fast-glob: 3.3.3 3443 3268 flattie: 1.1.1 3444 3269 github-slugger: 2.0.0 3445 3270 html-escaper: 3.0.3 ··· 3448 3273 kleur: 4.1.5 3449 3274 magic-string: 0.30.17 3450 3275 magicast: 0.3.5 3451 - micromatch: 4.0.8 3452 - mrmime: 2.0.0 3276 + mrmime: 2.0.1 3453 3277 neotraverse: 0.6.18 3454 3278 p-limit: 6.2.0 3455 - p-queue: 8.0.1 3456 - preferred-pm: 4.0.0 3279 + p-queue: 8.1.0 3280 + picomatch: 4.0.2 3281 + preferred-pm: 4.1.1 3457 3282 prompts: 2.4.2 3458 3283 rehype: 13.0.2 3459 - semver: 7.6.3 3460 - shiki: 1.29.1 3284 + semver: 7.7.1 3285 + shiki: 1.29.2 3461 3286 tinyexec: 0.3.2 3462 - tsconfck: 3.1.4(typescript@5.7.2) 3287 + tinyglobby: 0.2.12 3288 + tsconfck: 3.1.5(typescript@5.7.2) 3463 3289 ultrahtml: 1.5.3 3464 3290 unist-util-visit: 5.0.0 3465 - unstorage: 1.14.4 3291 + unstorage: 1.15.0 3466 3292 vfile: 6.0.3 3467 - vite: 6.0.11(jiti@1.21.6) 3468 - vitefu: 1.0.5(vite@6.0.11(jiti@1.21.6)) 3469 - which-pm: 3.0.0 3293 + vite: 6.2.1(jiti@1.21.6) 3294 + vitefu: 1.0.6(vite@6.2.1(jiti@1.21.6)) 3295 + which-pm: 3.0.1 3470 3296 xxhash-wasm: 1.1.0 3471 3297 yargs-parser: 21.1.1 3472 - yocto-spinner: 0.1.2 3473 - zod: 3.24.1 3474 - zod-to-json-schema: 3.24.1(zod@3.24.1) 3475 - zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) 3298 + yocto-spinner: 0.2.1 3299 + zod: 3.24.2 3300 + zod-to-json-schema: 3.24.3(zod@3.24.2) 3301 + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.2) 3476 3302 optionalDependencies: 3477 3303 sharp: 0.33.5 3478 3304 transitivePeerDependencies: ··· 3509 3335 - uploadthing 3510 3336 - yaml 3511 3337 3512 - asynckit@0.4.0: {} 3513 - 3514 3338 axobject-query@4.1.0: {} 3515 3339 3516 3340 bail@2.0.2: {} ··· 3531 3355 dependencies: 3532 3356 is-windows: 1.0.2 3533 3357 3534 - bidi-js@1.0.3: 3535 - dependencies: 3536 - require-from-string: 2.0.2 3537 - 3538 - binary-extensions@2.3.0: {} 3539 - 3540 3358 boolbase@1.0.0: {} 3541 3359 3542 3360 boxen@8.0.1: ··· 3575 3393 3576 3394 chardet@0.7.0: {} 3577 3395 3578 - chokidar@3.6.0: 3396 + chokidar@4.0.3: 3579 3397 dependencies: 3580 - anymatch: 3.1.3 3581 - braces: 3.0.3 3582 - glob-parent: 5.1.2 3583 - is-binary-path: 2.1.0 3584 - is-glob: 4.0.3 3585 - normalize-path: 3.0.0 3586 - readdirp: 3.6.0 3587 - optionalDependencies: 3588 - fsevents: 2.3.3 3398 + readdirp: 4.1.2 3589 3399 3590 3400 ci-info@3.9.0: {} 3591 3401 ··· 3613 3423 color-convert: 2.0.1 3614 3424 color-string: 1.9.1 3615 3425 3616 - combined-stream@1.0.8: 3617 - dependencies: 3618 - delayed-stream: 1.0.0 3619 - 3620 3426 comma-separated-tokens@2.0.3: {} 3621 3427 3622 3428 commander@8.3.0: {} ··· 3626 3432 common-ancestor-path@1.0.1: {} 3627 3433 3628 3434 concat-map@0.0.1: {} 3629 - 3630 - consola@3.4.0: {} 3631 3435 3632 3436 cookie-es@1.2.2: {} 3633 3437 ··· 3645 3449 3646 3450 css-selector-parser@3.0.5: {} 3647 3451 3648 - css-tree@2.3.1: 3649 - dependencies: 3650 - mdn-data: 2.0.30 3651 - source-map-js: 1.2.1 3652 - 3653 3452 cssesc@3.0.0: {} 3654 3453 3655 - cssstyle@4.1.0: 3656 - dependencies: 3657 - rrweb-cssom: 0.7.1 3658 - 3659 - data-urls@5.0.0: 3660 - dependencies: 3661 - whatwg-mimetype: 4.0.0 3662 - whatwg-url: 14.0.0 3663 - 3664 3454 dataloader@1.4.0: {} 3665 3455 3666 3456 debug@4.3.7: ··· 3671 3461 dependencies: 3672 3462 ms: 2.1.3 3673 3463 3674 - decimal.js@10.4.3: {} 3675 - 3676 3464 decode-named-character-reference@1.0.2: 3677 3465 dependencies: 3678 3466 character-entities: 2.0.2 3679 3467 3680 - defu@6.1.4: {} 3468 + decode-named-character-reference@1.1.0: 3469 + dependencies: 3470 + character-entities: 2.0.2 3681 3471 3682 - delayed-stream@1.0.0: {} 3472 + defu@6.1.4: {} 3683 3473 3684 3474 dequal@2.0.3: {} 3685 3475 ··· 3742 3532 esast-util-from-estree: 2.0.0 3743 3533 vfile-message: 4.0.2 3744 3534 3745 - esbuild@0.24.2: 3535 + esbuild@0.25.0: 3746 3536 optionalDependencies: 3747 - '@esbuild/aix-ppc64': 0.24.2 3748 - '@esbuild/android-arm': 0.24.2 3749 - '@esbuild/android-arm64': 0.24.2 3750 - '@esbuild/android-x64': 0.24.2 3751 - '@esbuild/darwin-arm64': 0.24.2 3752 - '@esbuild/darwin-x64': 0.24.2 3753 - '@esbuild/freebsd-arm64': 0.24.2 3754 - '@esbuild/freebsd-x64': 0.24.2 3755 - '@esbuild/linux-arm': 0.24.2 3756 - '@esbuild/linux-arm64': 0.24.2 3757 - '@esbuild/linux-ia32': 0.24.2 3758 - '@esbuild/linux-loong64': 0.24.2 3759 - '@esbuild/linux-mips64el': 0.24.2 3760 - '@esbuild/linux-ppc64': 0.24.2 3761 - '@esbuild/linux-riscv64': 0.24.2 3762 - '@esbuild/linux-s390x': 0.24.2 3763 - '@esbuild/linux-x64': 0.24.2 3764 - '@esbuild/netbsd-arm64': 0.24.2 3765 - '@esbuild/netbsd-x64': 0.24.2 3766 - '@esbuild/openbsd-arm64': 0.24.2 3767 - '@esbuild/openbsd-x64': 0.24.2 3768 - '@esbuild/sunos-x64': 0.24.2 3769 - '@esbuild/win32-arm64': 0.24.2 3770 - '@esbuild/win32-ia32': 0.24.2 3771 - '@esbuild/win32-x64': 0.24.2 3537 + '@esbuild/aix-ppc64': 0.25.0 3538 + '@esbuild/android-arm': 0.25.0 3539 + '@esbuild/android-arm64': 0.25.0 3540 + '@esbuild/android-x64': 0.25.0 3541 + '@esbuild/darwin-arm64': 0.25.0 3542 + '@esbuild/darwin-x64': 0.25.0 3543 + '@esbuild/freebsd-arm64': 0.25.0 3544 + '@esbuild/freebsd-x64': 0.25.0 3545 + '@esbuild/linux-arm': 0.25.0 3546 + '@esbuild/linux-arm64': 0.25.0 3547 + '@esbuild/linux-ia32': 0.25.0 3548 + '@esbuild/linux-loong64': 0.25.0 3549 + '@esbuild/linux-mips64el': 0.25.0 3550 + '@esbuild/linux-ppc64': 0.25.0 3551 + '@esbuild/linux-riscv64': 0.25.0 3552 + '@esbuild/linux-s390x': 0.25.0 3553 + '@esbuild/linux-x64': 0.25.0 3554 + '@esbuild/netbsd-arm64': 0.25.0 3555 + '@esbuild/netbsd-x64': 0.25.0 3556 + '@esbuild/openbsd-arm64': 0.25.0 3557 + '@esbuild/openbsd-x64': 0.25.0 3558 + '@esbuild/sunos-x64': 0.25.0 3559 + '@esbuild/win32-arm64': 0.25.0 3560 + '@esbuild/win32-ia32': 0.25.0 3561 + '@esbuild/win32-x64': 0.25.0 3772 3562 3773 3563 escape-string-regexp@5.0.0: {} 3774 3564 ··· 3815 3605 3816 3606 eventemitter3@5.0.1: {} 3817 3607 3818 - expressive-code@0.34.2: 3819 - dependencies: 3820 - '@expressive-code/core': 0.34.2 3821 - '@expressive-code/plugin-frames': 0.34.2 3822 - '@expressive-code/plugin-shiki': 0.34.2 3823 - '@expressive-code/plugin-text-markers': 0.34.2 3824 - 3825 3608 expressive-code@0.40.1: 3826 3609 dependencies: 3827 3610 '@expressive-code/core': 0.40.1 ··· 3847 3630 merge2: 1.4.1 3848 3631 micromatch: 4.0.8 3849 3632 3850 - fast-glob@3.3.3: 3851 - dependencies: 3852 - '@nodelib/fs.stat': 2.0.5 3853 - '@nodelib/fs.walk': 1.2.8 3854 - glob-parent: 5.1.2 3855 - merge2: 1.4.1 3856 - micromatch: 4.0.8 3857 - 3858 3633 fastq@1.17.1: 3859 3634 dependencies: 3860 3635 reusify: 1.0.4 3861 3636 3637 + fdir@6.4.3(picomatch@4.0.2): 3638 + optionalDependencies: 3639 + picomatch: 4.0.2 3640 + 3862 3641 fill-range@7.1.1: 3863 3642 dependencies: 3864 3643 to-regex-range: 5.0.1 ··· 3884 3663 flatted@3.3.2: {} 3885 3664 3886 3665 flattie@1.1.1: {} 3887 - 3888 - form-data@4.0.1: 3889 - dependencies: 3890 - asynckit: 0.4.0 3891 - combined-stream: 1.0.8 3892 - mime-types: 2.1.35 3893 3666 3894 3667 fs-extra@7.0.1: 3895 3668 dependencies: ··· 3938 3711 3939 3712 graceful-fs@4.2.11: {} 3940 3713 3941 - h3@1.14.0: 3714 + h3@1.15.1: 3942 3715 dependencies: 3943 3716 cookie-es: 1.2.2 3944 3717 crossws: 0.3.3 3945 3718 defu: 6.1.4 3946 3719 destr: 2.0.3 3947 3720 iron-webcrypto: 1.2.1 3948 - ohash: 1.1.4 3721 + node-mock-http: 1.0.0 3949 3722 radix3: 1.1.2 3950 3723 ufo: 1.5.4 3951 3724 uncrypto: 0.1.3 3952 - unenv: 1.10.0 3953 3725 3954 3726 hast-util-embedded@3.0.0: 3955 3727 dependencies: ··· 3966 3738 html-whitespace-sensitive-tag-names: 3.0.1 3967 3739 unist-util-visit-parents: 6.0.1 3968 3740 3969 - hast-util-from-dom@5.0.1: 3970 - dependencies: 3971 - '@types/hast': 3.0.4 3972 - hastscript: 9.0.0 3973 - web-namespaces: 2.0.1 3974 - 3975 - hast-util-from-html@2.0.1: 3976 - dependencies: 3977 - '@types/hast': 3.0.4 3978 - devlop: 1.1.0 3979 - hast-util-from-parse5: 8.0.2 3980 - parse5: 7.2.1 3981 - vfile: 6.0.3 3982 - vfile-message: 4.0.2 3983 - 3984 3741 hast-util-from-html@2.0.3: 3985 3742 dependencies: 3986 3743 '@types/hast': 3.0.4 ··· 4088 3845 transitivePeerDependencies: 4089 3846 - supports-color 4090 3847 4091 - hast-util-to-html@9.0.3: 4092 - dependencies: 4093 - '@types/hast': 3.0.4 4094 - '@types/unist': 3.0.3 4095 - ccount: 2.0.1 4096 - comma-separated-tokens: 2.0.3 4097 - hast-util-whitespace: 3.0.0 4098 - html-void-elements: 3.0.0 4099 - mdast-util-to-hast: 13.2.0 4100 - property-information: 6.5.0 4101 - space-separated-tokens: 2.0.2 4102 - stringify-entities: 4.0.4 4103 - zwitch: 2.0.4 4104 - 4105 3848 hast-util-to-html@9.0.4: 4106 3849 dependencies: 4107 3850 '@types/hast': 3.0.4 ··· 4169 3912 property-information: 6.5.0 4170 3913 space-separated-tokens: 2.0.2 4171 3914 4172 - html-encoding-sniffer@4.0.0: 3915 + hastscript@9.0.1: 4173 3916 dependencies: 4174 - whatwg-encoding: 3.1.1 3917 + '@types/hast': 3.0.4 3918 + comma-separated-tokens: 2.0.3 3919 + hast-util-parse-selector: 4.0.0 3920 + property-information: 7.0.0 3921 + space-separated-tokens: 2.0.2 4175 3922 4176 3923 html-escaper@3.0.3: {} 4177 3924 ··· 4181 3928 4182 3929 http-cache-semantics@4.1.1: {} 4183 3930 4184 - http-proxy-agent@7.0.2: 4185 - dependencies: 4186 - agent-base: 7.1.1 4187 - debug: 4.3.7 4188 - transitivePeerDependencies: 4189 - - supports-color 4190 - 4191 - https-proxy-agent@7.0.5: 4192 - dependencies: 4193 - agent-base: 7.1.1 4194 - debug: 4.3.7 4195 - transitivePeerDependencies: 4196 - - supports-color 4197 - 4198 3931 human-id@1.0.2: {} 4199 3932 4200 3933 i18next@23.16.8: ··· 4202 3935 '@babel/runtime': 7.26.0 4203 3936 4204 3937 iconv-lite@0.4.24: 4205 - dependencies: 4206 - safer-buffer: 2.1.2 4207 - 4208 - iconv-lite@0.6.3: 4209 3938 dependencies: 4210 3939 safer-buffer: 2.1.2 4211 3940 ··· 4237 3966 4238 3967 is-arrayish@0.3.2: {} 4239 3968 4240 - is-binary-path@2.1.0: 4241 - dependencies: 4242 - binary-extensions: 2.3.0 4243 - 4244 3969 is-decimal@2.0.1: {} 4245 3970 4246 3971 is-docker@3.0.0: {} ··· 4263 3988 4264 3989 is-plain-obj@4.1.0: {} 4265 3990 4266 - is-potential-custom-element-name@1.0.1: {} 4267 - 4268 3991 is-subdir@1.2.0: 4269 3992 dependencies: 4270 3993 better-path-resolve: 1.0.0 ··· 4288 4011 dependencies: 4289 4012 argparse: 2.0.1 4290 4013 4291 - jsdom@23.2.0: 4292 - dependencies: 4293 - '@asamuzakjp/dom-selector': 2.0.2 4294 - cssstyle: 4.1.0 4295 - data-urls: 5.0.0 4296 - decimal.js: 10.4.3 4297 - form-data: 4.0.1 4298 - html-encoding-sniffer: 4.0.0 4299 - http-proxy-agent: 7.0.2 4300 - https-proxy-agent: 7.0.5 4301 - is-potential-custom-element-name: 1.0.1 4302 - parse5: 7.2.1 4303 - rrweb-cssom: 0.6.0 4304 - saxes: 6.0.0 4305 - symbol-tree: 3.2.4 4306 - tough-cookie: 4.1.4 4307 - w3c-xmlserializer: 5.0.0 4308 - webidl-conversions: 7.0.0 4309 - whatwg-encoding: 3.1.1 4310 - whatwg-mimetype: 4.0.0 4311 - whatwg-url: 14.0.0 4312 - ws: 8.18.0 4313 - xml-name-validator: 5.0.0 4314 - transitivePeerDependencies: 4315 - - bufferutil 4316 - - supports-color 4317 - - utf-8-validate 4318 - 4319 4014 json-buffer@3.0.1: {} 4320 4015 4321 4016 jsonfile@4.0.0: 4322 4017 optionalDependencies: 4323 4018 graceful-fs: 4.2.11 4324 4019 4325 - katex@0.16.11: 4020 + katex@0.16.21: 4326 4021 dependencies: 4327 4022 commander: 8.3.0 4328 4023 ··· 4333 4028 kleur@3.0.3: {} 4334 4029 4335 4030 kleur@4.1.5: {} 4031 + 4032 + klona@2.0.6: {} 4336 4033 4337 4034 load-yaml-file@0.2.0: 4338 4035 dependencies: ··· 4512 4209 transitivePeerDependencies: 4513 4210 - supports-color 4514 4211 4212 + mdast-util-mdx-jsx@3.2.0: 4213 + dependencies: 4214 + '@types/estree-jsx': 1.0.5 4215 + '@types/hast': 3.0.4 4216 + '@types/mdast': 4.0.4 4217 + '@types/unist': 3.0.3 4218 + ccount: 2.0.1 4219 + devlop: 1.1.0 4220 + mdast-util-from-markdown: 2.0.2 4221 + mdast-util-to-markdown: 2.1.2 4222 + parse-entities: 4.0.2 4223 + stringify-entities: 4.0.4 4224 + unist-util-stringify-position: 4.0.0 4225 + vfile-message: 4.0.2 4226 + transitivePeerDependencies: 4227 + - supports-color 4228 + 4515 4229 mdast-util-mdx@3.0.0: 4516 4230 dependencies: 4517 4231 mdast-util-from-markdown: 2.0.2 ··· 4565 4279 mdast-util-to-string@4.0.0: 4566 4280 dependencies: 4567 4281 '@types/mdast': 4.0.4 4568 - 4569 - mdn-data@2.0.30: {} 4570 4282 4571 4283 merge2@1.4.1: {} 4572 4284 ··· 4663 4375 dependencies: 4664 4376 '@types/katex': 0.16.7 4665 4377 devlop: 1.1.0 4666 - katex: 0.16.11 4378 + katex: 0.16.21 4667 4379 micromark-factory-space: 2.0.1 4668 4380 micromark-util-character: 2.1.1 4669 4381 micromark-util-symbol: 2.0.1 4670 - micromark-util-types: 2.0.1 4382 + micromark-util-types: 2.0.2 4671 4383 4672 4384 micromark-extension-mdx-expression@3.0.0: 4673 4385 dependencies: ··· 4836 4548 4837 4549 micromark-util-types@2.0.1: {} 4838 4550 4551 + micromark-util-types@2.0.2: {} 4552 + 4839 4553 micromark@4.0.1: 4840 4554 dependencies: 4841 4555 '@types/debug': 4.1.12 ··· 4863 4577 braces: 3.0.3 4864 4578 picomatch: 2.3.1 4865 4579 4866 - mime-db@1.52.0: {} 4867 - 4868 - mime-types@2.1.35: 4869 - dependencies: 4870 - mime-db: 1.52.0 4871 - 4872 - mime@3.0.0: {} 4873 - 4874 4580 minimatch@3.1.2: 4875 4581 dependencies: 4876 4582 brace-expansion: 1.1.11 ··· 4879 4585 4880 4586 mri@1.2.0: {} 4881 4587 4882 - mrmime@2.0.0: {} 4588 + mrmime@2.0.1: {} 4883 4589 4884 4590 ms@2.1.3: {} 4885 4591 4886 4592 nanoid@3.3.7: {} 4593 + 4594 + nanoid@3.3.9: {} 4887 4595 4888 4596 neotraverse@0.6.18: {} 4889 4597 ··· 4897 4605 dependencies: 4898 4606 whatwg-url: 5.0.0 4899 4607 4608 + node-mock-http@1.0.0: {} 4609 + 4900 4610 normalize-path@3.0.0: {} 4901 4611 4902 4612 nth-check@2.1.1: ··· 4909 4619 node-fetch-native: 1.6.6 4910 4620 ufo: 1.5.4 4911 4621 4912 - ohash@1.1.4: {} 4913 - 4914 4622 once@1.4.0: 4915 4623 dependencies: 4916 4624 wrappy: 1.0.2 4917 4625 4918 - oniguruma-to-es@0.4.1: 4919 - dependencies: 4920 - emoji-regex-xs: 1.0.0 4921 - regex: 5.0.2 4922 - regex-recursion: 4.2.1 4923 - 4924 4626 oniguruma-to-es@2.3.0: 4925 4627 dependencies: 4926 4628 emoji-regex-xs: 1.0.0 ··· 4956 4658 eventemitter3: 4.0.7 4957 4659 p-timeout: 3.2.0 4958 4660 4959 - p-queue@8.0.1: 4661 + p-queue@8.1.0: 4960 4662 dependencies: 4961 4663 eventemitter3: 5.0.1 4962 4664 p-timeout: 6.1.3 ··· 4990 4692 is-decimal: 2.0.1 4991 4693 is-hexadecimal: 2.0.1 4992 4694 4695 + parse-entities@4.0.2: 4696 + dependencies: 4697 + '@types/unist': 2.0.11 4698 + character-entities-legacy: 3.0.0 4699 + character-reference-invalid: 2.0.1 4700 + decode-named-character-reference: 1.1.0 4701 + is-alphanumerical: 2.0.1 4702 + is-decimal: 2.0.1 4703 + is-hexadecimal: 2.0.1 4704 + 4993 4705 parse-latin@7.0.0: 4994 4706 dependencies: 4995 4707 '@types/nlcst': 2.0.3 ··· 5013 4725 5014 4726 path-type@4.0.0: {} 5015 4727 5016 - pathe@1.1.2: {} 5017 - 5018 4728 picocolors@1.1.1: {} 5019 4729 5020 4730 picomatch@2.3.1: {} ··· 5043 4753 picocolors: 1.1.1 5044 4754 source-map-js: 1.2.1 5045 4755 5046 - preferred-pm@4.0.0: 4756 + postcss@8.5.3: 4757 + dependencies: 4758 + nanoid: 3.3.9 4759 + picocolors: 1.1.1 4760 + source-map-js: 1.2.1 4761 + 4762 + preferred-pm@4.1.1: 5047 4763 dependencies: 5048 4764 find-up-simple: 1.0.0 5049 4765 find-yarn-workspace-root2: 1.2.16 5050 - which-pm: 3.0.0 4766 + which-pm: 3.0.1 5051 4767 5052 4768 prettier@2.8.8: {} 5053 4769 ··· 5060 4776 5061 4777 property-information@6.5.0: {} 5062 4778 5063 - psl@1.13.0: 5064 - dependencies: 5065 - punycode: 2.3.1 5066 - 5067 - punycode@2.3.1: {} 5068 - 5069 - querystringify@2.2.0: {} 4779 + property-information@7.0.0: {} 5070 4780 5071 4781 queue-microtask@1.2.3: {} 5072 4782 ··· 5079 4789 pify: 4.0.1 5080 4790 strip-bom: 3.0.0 5081 4791 5082 - readdirp@3.6.0: 5083 - dependencies: 5084 - picomatch: 2.3.1 4792 + readdirp@4.1.2: {} 5085 4793 5086 4794 recma-build-jsx@1.0.0: 5087 4795 dependencies: ··· 5115 4823 5116 4824 regenerator-runtime@0.14.1: {} 5117 4825 5118 - regex-recursion@4.2.1: 5119 - dependencies: 5120 - regex-utilities: 2.3.0 5121 - 5122 4826 regex-recursion@5.1.1: 5123 4827 dependencies: 5124 4828 regex: 5.1.1 ··· 5126 4830 5127 4831 regex-utilities@2.3.0: {} 5128 4832 5129 - regex@5.0.2: 5130 - dependencies: 5131 - regex-utilities: 2.3.0 5132 - 5133 4833 regex@5.1.1: 5134 4834 dependencies: 5135 4835 regex-utilities: 2.3.0 ··· 5143 4843 '@types/hast': 3.0.4 5144 4844 hast-util-format: 1.1.0 5145 4845 5146 - rehype-mathjax@6.0.0: 4846 + rehype-mathjax@7.1.0: 5147 4847 dependencies: 5148 4848 '@types/hast': 3.0.4 5149 4849 '@types/mathjax': 0.0.40 5150 - hast-util-from-dom: 5.0.1 5151 4850 hast-util-to-text: 4.0.2 5152 - jsdom: 23.2.0 4851 + hastscript: 9.0.1 5153 4852 mathjax-full: 3.2.2 5154 4853 unified: 11.0.5 5155 4854 unist-util-visit-parents: 6.0.1 5156 - transitivePeerDependencies: 5157 - - bufferutil 5158 - - canvas 5159 - - supports-color 5160 - - utf-8-validate 4855 + vfile: 6.0.3 5161 4856 5162 4857 rehype-parse@9.0.1: 5163 4858 dependencies: ··· 5182 4877 rehype-stringify@10.0.1: 5183 4878 dependencies: 5184 4879 '@types/hast': 3.0.4 5185 - hast-util-to-html: 9.0.3 4880 + hast-util-to-html: 9.0.4 5186 4881 unified: 11.0.5 5187 4882 5188 4883 rehype@13.0.2: ··· 5200 4895 unified: 11.0.5 5201 4896 transitivePeerDependencies: 5202 4897 - supports-color 5203 - 5204 - remark-expressive-code@0.34.2: 5205 - dependencies: 5206 - expressive-code: 0.34.2 5207 4898 5208 4899 remark-gfm@4.0.0: 5209 4900 dependencies: ··· 5262 4953 mdast-util-to-markdown: 2.1.2 5263 4954 unified: 11.0.5 5264 4955 5265 - require-from-string@2.0.2: {} 5266 - 5267 - requires-port@1.0.0: {} 5268 - 5269 4956 resolve-from@5.0.0: {} 5270 4957 5271 4958 retext-latin@4.0.0: ··· 5299 4986 dependencies: 5300 4987 glob: 7.2.3 5301 4988 5302 - rollup@4.27.4: 4989 + rollup@4.35.0: 5303 4990 dependencies: 5304 4991 '@types/estree': 1.0.6 5305 4992 optionalDependencies: 5306 - '@rollup/rollup-android-arm-eabi': 4.27.4 5307 - '@rollup/rollup-android-arm64': 4.27.4 5308 - '@rollup/rollup-darwin-arm64': 4.27.4 5309 - '@rollup/rollup-darwin-x64': 4.27.4 5310 - '@rollup/rollup-freebsd-arm64': 4.27.4 5311 - '@rollup/rollup-freebsd-x64': 4.27.4 5312 - '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 5313 - '@rollup/rollup-linux-arm-musleabihf': 4.27.4 5314 - '@rollup/rollup-linux-arm64-gnu': 4.27.4 5315 - '@rollup/rollup-linux-arm64-musl': 4.27.4 5316 - '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 5317 - '@rollup/rollup-linux-riscv64-gnu': 4.27.4 5318 - '@rollup/rollup-linux-s390x-gnu': 4.27.4 5319 - '@rollup/rollup-linux-x64-gnu': 4.27.4 5320 - '@rollup/rollup-linux-x64-musl': 4.27.4 5321 - '@rollup/rollup-win32-arm64-msvc': 4.27.4 5322 - '@rollup/rollup-win32-ia32-msvc': 4.27.4 5323 - '@rollup/rollup-win32-x64-msvc': 4.27.4 4993 + '@rollup/rollup-android-arm-eabi': 4.35.0 4994 + '@rollup/rollup-android-arm64': 4.35.0 4995 + '@rollup/rollup-darwin-arm64': 4.35.0 4996 + '@rollup/rollup-darwin-x64': 4.35.0 4997 + '@rollup/rollup-freebsd-arm64': 4.35.0 4998 + '@rollup/rollup-freebsd-x64': 4.35.0 4999 + '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 5000 + '@rollup/rollup-linux-arm-musleabihf': 4.35.0 5001 + '@rollup/rollup-linux-arm64-gnu': 4.35.0 5002 + '@rollup/rollup-linux-arm64-musl': 4.35.0 5003 + '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 5004 + '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 5005 + '@rollup/rollup-linux-riscv64-gnu': 4.35.0 5006 + '@rollup/rollup-linux-s390x-gnu': 4.35.0 5007 + '@rollup/rollup-linux-x64-gnu': 4.35.0 5008 + '@rollup/rollup-linux-x64-musl': 4.35.0 5009 + '@rollup/rollup-win32-arm64-msvc': 4.35.0 5010 + '@rollup/rollup-win32-ia32-msvc': 4.35.0 5011 + '@rollup/rollup-win32-x64-msvc': 4.35.0 5324 5012 fsevents: 2.3.3 5325 - 5326 - rrweb-cssom@0.6.0: {} 5327 - 5328 - rrweb-cssom@0.7.1: {} 5329 5013 5330 5014 run-parallel@1.2.0: 5331 5015 dependencies: ··· 5335 5019 5336 5020 sax@1.4.1: {} 5337 5021 5338 - saxes@6.0.0: 5339 - dependencies: 5340 - xmlchars: 2.2.0 5022 + semver@7.6.3: {} 5341 5023 5342 - semver@7.6.3: {} 5024 + semver@7.7.1: {} 5343 5025 5344 5026 sharp@0.33.5: 5345 5027 dependencies: 5346 5028 color: 4.2.3 5347 5029 detect-libc: 2.0.3 5348 - semver: 7.6.3 5030 + semver: 7.7.1 5349 5031 optionalDependencies: 5350 5032 '@img/sharp-darwin-arm64': 0.33.5 5351 5033 '@img/sharp-darwin-x64': 0.33.5 ··· 5373 5055 5374 5056 shebang-regex@3.0.0: {} 5375 5057 5376 - shiki@1.23.1: 5377 - dependencies: 5378 - '@shikijs/core': 1.23.1 5379 - '@shikijs/engine-javascript': 1.23.1 5380 - '@shikijs/engine-oniguruma': 1.23.1 5381 - '@shikijs/types': 1.23.1 5382 - '@shikijs/vscode-textmate': 9.3.0 5383 - '@types/hast': 3.0.4 5384 - 5385 5058 shiki@1.29.1: 5386 5059 dependencies: 5387 5060 '@shikijs/core': 1.29.1 ··· 5393 5066 '@shikijs/vscode-textmate': 10.0.1 5394 5067 '@types/hast': 3.0.4 5395 5068 5069 + shiki@1.29.2: 5070 + dependencies: 5071 + '@shikijs/core': 1.29.2 5072 + '@shikijs/engine-javascript': 1.29.2 5073 + '@shikijs/engine-oniguruma': 1.29.2 5074 + '@shikijs/langs': 1.29.2 5075 + '@shikijs/themes': 1.29.2 5076 + '@shikijs/types': 1.29.2 5077 + '@shikijs/vscode-textmate': 10.0.1 5078 + '@types/hast': 3.0.4 5079 + 5396 5080 signal-exit@4.1.0: {} 5397 5081 5398 5082 simple-git@3.27.0: ··· 5418 5102 5419 5103 slash@3.0.0: {} 5420 5104 5105 + smol-toml@1.3.1: {} 5106 + 5421 5107 source-map-js@1.2.1: {} 5422 5108 5423 5109 source-map@0.7.4: {} ··· 5437 5123 5438 5124 sprintf-js@1.0.3: {} 5439 5125 5440 - starlight-image-zoom@0.5.0(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))): 5126 + starlight-image-zoom@0.11.1(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))): 5441 5127 dependencies: 5442 - '@astrojs/starlight': 0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 5128 + '@astrojs/starlight': 0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 5129 + mdast-util-mdx-jsx: 3.2.0 5443 5130 rehype-raw: 7.0.0 5444 5131 unist-util-visit: 5.0.0 5445 5132 unist-util-visit-parents: 6.0.1 5133 + transitivePeerDependencies: 5134 + - supports-color 5446 5135 5447 - starlight-links-validator@0.7.1(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)))(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)): 5136 + starlight-links-validator@0.14.3(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))): 5448 5137 dependencies: 5449 - '@astrojs/starlight': 0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 5450 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 5138 + '@astrojs/starlight': 0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 5139 + '@types/picomatch': 3.0.2 5451 5140 github-slugger: 2.0.0 5452 - hast-util-from-html: 2.0.1 5141 + hast-util-from-html: 2.0.3 5453 5142 hast-util-has-property: 3.0.0 5454 5143 is-absolute-url: 4.0.1 5455 5144 kleur: 4.1.5 5145 + mdast-util-mdx-jsx: 3.2.0 5456 5146 mdast-util-to-string: 4.0.0 5147 + picomatch: 4.0.2 5457 5148 unist-util-visit: 5.0.0 5149 + transitivePeerDependencies: 5150 + - supports-color 5458 5151 5459 - starlight-sidebar-topics-dropdown@0.3.0(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2))): 5152 + starlight-sidebar-topics-dropdown@0.4.1(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2))): 5460 5153 dependencies: 5461 - '@astrojs/starlight': 0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 5154 + '@astrojs/starlight': 0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 5462 5155 5463 - starlight-view-modes@0.5.3(@astrojs/starlight@0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)))(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)): 5156 + starlight-view-modes@0.5.3(@astrojs/starlight@0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)))(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)): 5464 5157 dependencies: 5465 - '@astrojs/starlight': 0.31.1(astro@5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2)) 5466 - astro: 5.1.10(jiti@1.21.6)(rollup@4.27.4)(typescript@5.7.2) 5158 + '@astrojs/starlight': 0.32.2(astro@5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2)) 5159 + astro: 5.4.2(jiti@1.21.6)(rollup@4.35.0)(typescript@5.7.2) 5467 5160 5468 5161 stream-replace-string@2.0.0: {} 5469 5162 ··· 5502 5195 dependencies: 5503 5196 inline-style-parser: 0.2.4 5504 5197 5505 - symbol-tree@3.2.4: {} 5506 - 5507 5198 term-size@2.2.1: {} 5508 5199 5509 5200 tinyexec@0.3.2: {} 5201 + 5202 + tinyglobby@0.2.12: 5203 + dependencies: 5204 + fdir: 6.4.3(picomatch@4.0.2) 5205 + picomatch: 4.0.2 5510 5206 5511 5207 tmp@0.0.33: 5512 5208 dependencies: ··· 5516 5212 dependencies: 5517 5213 is-number: 7.0.0 5518 5214 5519 - tough-cookie@4.1.4: 5520 - dependencies: 5521 - psl: 1.13.0 5522 - punycode: 2.3.1 5523 - universalify: 0.2.0 5524 - url-parse: 1.5.10 5525 - 5526 5215 tr46@0.0.3: {} 5527 5216 5528 - tr46@5.0.0: 5529 - dependencies: 5530 - punycode: 2.3.1 5531 - 5532 5217 trim-lines@3.0.1: {} 5533 5218 5534 5219 trough@2.2.0: {} 5535 5220 5536 - tsconfck@3.1.4(typescript@5.7.2): 5221 + tsconfck@3.1.5(typescript@5.7.2): 5537 5222 optionalDependencies: 5538 5223 typescript: 5.7.2 5539 5224 ··· 5552 5237 5553 5238 uncrypto@0.1.3: {} 5554 5239 5555 - unenv@1.10.0: 5556 - dependencies: 5557 - consola: 3.4.0 5558 - defu: 6.1.4 5559 - mime: 3.0.0 5560 - node-fetch-native: 1.6.6 5561 - pathe: 1.1.2 5562 - 5563 5240 unified@11.0.5: 5564 5241 dependencies: 5565 5242 '@types/unist': 3.0.3 ··· 5618 5295 5619 5296 universalify@0.1.2: {} 5620 5297 5621 - universalify@0.2.0: {} 5622 - 5623 - unstorage@1.14.4: 5298 + unstorage@1.15.0: 5624 5299 dependencies: 5625 5300 anymatch: 3.1.3 5626 - chokidar: 3.6.0 5301 + chokidar: 4.0.3 5627 5302 destr: 2.0.3 5628 - h3: 1.14.0 5303 + h3: 1.15.1 5629 5304 lru-cache: 10.4.3 5630 5305 node-fetch-native: 1.6.6 5631 5306 ofetch: 1.4.1 5632 5307 ufo: 1.5.4 5633 5308 5634 - url-parse@1.5.10: 5635 - dependencies: 5636 - querystringify: 2.2.0 5637 - requires-port: 1.0.0 5638 - 5639 5309 util-deprecate@1.0.2: {} 5640 5310 5641 5311 vfile-location@5.0.3: ··· 5653 5323 '@types/unist': 3.0.3 5654 5324 vfile-message: 4.0.2 5655 5325 5656 - vite@6.0.11(jiti@1.21.6): 5326 + vite@6.2.1(jiti@1.21.6): 5657 5327 dependencies: 5658 - esbuild: 0.24.2 5659 - postcss: 8.4.49 5660 - rollup: 4.27.4 5328 + esbuild: 0.25.0 5329 + postcss: 8.5.3 5330 + rollup: 4.35.0 5661 5331 optionalDependencies: 5662 5332 fsevents: 2.3.3 5663 5333 jiti: 1.21.6 5664 5334 5665 - vitefu@1.0.5(vite@6.0.11(jiti@1.21.6)): 5335 + vitefu@1.0.6(vite@6.2.1(jiti@1.21.6)): 5666 5336 optionalDependencies: 5667 - vite: 6.0.11(jiti@1.21.6) 5668 - 5669 - w3c-xmlserializer@5.0.0: 5670 - dependencies: 5671 - xml-name-validator: 5.0.0 5337 + vite: 6.2.1(jiti@1.21.6) 5672 5338 5673 5339 web-namespaces@2.0.1: {} 5674 5340 5675 5341 webidl-conversions@3.0.1: {} 5676 5342 5677 - webidl-conversions@7.0.0: {} 5678 - 5679 - whatwg-encoding@3.1.1: 5680 - dependencies: 5681 - iconv-lite: 0.6.3 5682 - 5683 - whatwg-mimetype@4.0.0: {} 5684 - 5685 - whatwg-url@14.0.0: 5686 - dependencies: 5687 - tr46: 5.0.0 5688 - webidl-conversions: 7.0.0 5689 - 5690 5343 whatwg-url@5.0.0: 5691 5344 dependencies: 5692 5345 tr46: 0.0.3 ··· 5694 5347 5695 5348 which-pm-runs@1.1.0: {} 5696 5349 5697 - which-pm@3.0.0: 5350 + which-pm@3.0.1: 5698 5351 dependencies: 5699 5352 load-yaml-file: 0.2.0 5700 5353 ··· 5716 5369 5717 5370 wrappy@1.0.2: {} 5718 5371 5719 - ws@8.18.0: {} 5720 - 5721 - xml-name-validator@5.0.0: {} 5722 - 5723 - xmlchars@2.2.0: {} 5724 - 5725 5372 xmldom-sre@0.1.31: {} 5726 5373 5727 5374 xxhash-wasm@1.1.0: {} ··· 5730 5377 5731 5378 yocto-queue@1.1.1: {} 5732 5379 5733 - yocto-spinner@0.1.2: 5380 + yocto-spinner@0.2.1: 5734 5381 dependencies: 5735 5382 yoctocolors: 2.1.1 5736 5383 5737 5384 yoctocolors@2.1.1: {} 5738 5385 5739 - zod-to-json-schema@3.24.1(zod@3.24.1): 5386 + zod-to-json-schema@3.24.3(zod@3.24.2): 5740 5387 dependencies: 5741 - zod: 3.24.1 5388 + zod: 3.24.2 5742 5389 5743 - zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.24.1): 5390 + zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.24.2): 5744 5391 dependencies: 5745 5392 typescript: 5.7.2 5746 - zod: 3.24.1 5393 + zod: 3.24.2 5747 5394 5748 5395 zod@3.23.8: {} 5749 5396 5750 5397 zod@3.24.1: {} 5398 + 5399 + zod@3.24.2: {} 5751 5400 5752 5401 zwitch@2.0.4: {}
+119 -81
starlight/astro.config.mjs
··· 62 62 icon: "puzzle", 63 63 link: "/software-development/object-oriented-programming", 64 64 items: [ 65 + { slug: "software-development/object-oriented-programming" }, 66 + { slug: "software-development/software-metrics" }, 65 67 { 66 - label: "", 68 + label: "Entwurfsmuster", 69 + translations: { 70 + en: "Design Patterns", 71 + }, 67 72 items: [ 68 - "software-development/object-oriented-programming", 69 - "software-development/software-metrics", 70 - "software-development/design-patterns/behavioral-design-patterns/command", 71 - "software-development/design-patterns/behavioral-design-patterns/strategy", 72 - "software-development/design-patterns/creational-design-patterns/singleton", 73 - "software-development/design-patterns/structural-design-patterns/adapter", 74 - "software-development/design-patterns/structural-design-patterns/decorator", 73 + { 74 + slug: "software-development/design-patterns", 75 + }, 76 + { 77 + label: "Verhaltensbasierte Entwurfsmuster", 78 + translations: { 79 + en: "Behavioral Design Patterns", 80 + }, 81 + items: [ 82 + { 83 + slug: "software-development/design-patterns/behavioral-design-patterns/command", 84 + }, 85 + { 86 + slug: "software-development/design-patterns/behavioral-design-patterns/strategy", 87 + }, 88 + ], 89 + }, 90 + { 91 + label: "Schöpferische Entwurfsmuster", 92 + translations: { 93 + en: "Creational Design Patterns", 94 + }, 95 + items: [ 96 + { 97 + slug: "software-development/design-patterns/creational-design-patterns/singleton", 98 + }, 99 + ], 100 + }, 101 + { 102 + label: "Strukturelle Entwurfsmuster", 103 + translations: { 104 + en: "Structural Design Patterns", 105 + }, 106 + items: [ 107 + { 108 + slug: "software-development/design-patterns/structural-design-patterns/adapter", 109 + }, 110 + { 111 + slug: "software-development/design-patterns/structural-design-patterns/decorator", 112 + }, 113 + ], 114 + }, 75 115 ], 76 116 }, 77 117 ], ··· 84 124 icon: "document", 85 125 link: "/databases/relational-databases/", 86 126 items: [ 87 - { 88 - label: "", 89 - items: [ 90 - "databases/relational-databases", 91 - "databases/document-oriented-databases", 92 - "databases/schema", 93 - "databases/cap-theorem", 94 - ], 95 - }, 127 + { slug: "databases/relational-databases" }, 128 + { slug: "databases/document-oriented-databases" }, 129 + { slug: "databases/schema" }, 130 + { slug: "databases/cap-theorem" }, 96 131 ], 97 132 }, 98 133 { ··· 103 138 icon: "star", 104 139 link: "/artificial-intelligence/", 105 140 items: [ 106 - { 107 - label: "", 108 - items: [ 109 - "artificial-intelligence", 110 - "artificial-intelligence/python", 111 - "artificial-intelligence/numpy", 112 - "artificial-intelligence/pandas", 113 - "artificial-intelligence/matplotlib", 114 - "artificial-intelligence/seaborn", 115 - "artificial-intelligence/machine-learning", 116 - "artificial-intelligence/deep-learning", 117 - "artificial-intelligence/supervised-learning", 118 - "artificial-intelligence/natural-language-processing", 119 - ], 120 - }, 141 + { slug: "artificial-intelligence" }, 142 + { slug: "artificial-intelligence/python" }, 143 + { slug: "artificial-intelligence/numpy" }, 144 + { slug: "artificial-intelligence/pandas" }, 145 + { slug: "artificial-intelligence/matplotlib" }, 146 + { slug: "artificial-intelligence/seaborn" }, 147 + { slug: "artificial-intelligence/machine-learning" }, 148 + { slug: "artificial-intelligence/deep-learning" }, 149 + { slug: "artificial-intelligence/supervised-learning" }, 150 + { slug: "artificial-intelligence/natural-language-processing" }, 121 151 ], 122 152 }, 123 153 { ··· 128 158 icon: "cloud-download", 129 159 link: "/decentralised-systems/cloud-computing/", 130 160 items: [ 131 - { 132 - label: "", 133 - items: [ 134 - "decentralised-systems/cloud-computing", 135 - "decentralised-systems/storage-account", 136 - "decentralised-systems/azure-functions", 137 - "decentralised-systems/durable-functions", 138 - ], 139 - }, 161 + { slug: "decentralised-systems/cloud-computing" }, 162 + { slug: "decentralised-systems/storage-account" }, 163 + { slug: "decentralised-systems/azure-functions" }, 164 + { slug: "decentralised-systems/durable-functions" }, 140 165 ], 141 166 }, 142 167 { ··· 147 172 icon: "laptop", 148 173 link: "/embedded-programming/", 149 174 items: [ 150 - { 151 - label: "", 152 - items: [ 153 - "embedded-programming", 154 - "embedded-programming/basic-programm", 155 - "embedded-programming/special-function-register", 156 - "embedded-programming/light-emitting-diode", 157 - "embedded-programming/button", 158 - "embedded-programming/liquid-crystal-display", 159 - "embedded-programming/interrupts", 160 - "embedded-programming/analogue-digital-converter", 161 - "embedded-programming/timer", 162 - "embedded-programming/pointer", 163 - "embedded-programming/usart", 164 - "embedded-programming/spi", 165 - "embedded-programming/eeprom", 166 - ], 167 - }, 175 + { slug: "embedded-programming" }, 176 + { slug: "embedded-programming/basic-programm" }, 177 + { slug: "embedded-programming/special-function-register" }, 178 + { slug: "embedded-programming/light-emitting-diode" }, 179 + { slug: "embedded-programming/button" }, 180 + { slug: "embedded-programming/liquid-crystal-display" }, 181 + { slug: "embedded-programming/interrupts" }, 182 + { slug: "embedded-programming/analogue-digital-converter" }, 183 + { slug: "embedded-programming/timer" }, 184 + { slug: "embedded-programming/pointer" }, 185 + { slug: "embedded-programming/usart" }, 186 + { slug: "embedded-programming/spi" }, 187 + { slug: "embedded-programming/eeprom" }, 168 188 ], 169 189 }, 170 190 { ··· 175 195 icon: "rocket", 176 196 link: "/deployment/virtualisation/", 177 197 items: [ 178 - { 179 - label: "", 180 - items: [ 181 - "deployment/virtualisation", 182 - "deployment/storage-systems", 183 - "deployment/security-strategies", 184 - ], 185 - }, 198 + { slug: "deployment/virtualisation" }, 199 + { slug: "deployment/storage-systems" }, 200 + { slug: "deployment/security-strategies" }, 186 201 ], 187 202 }, 188 - // { 189 - // label: { 190 - // de: "Überblick", 191 - // en: "Overview", 192 - // }, 193 - // icon: "magnifier", 194 - // link: "/overview/", 195 - // items: [ 196 - // { 197 - // label: "", 198 - // items: ["overview"], 199 - // }, 200 - // ], 201 - // }, 203 + { 204 + label: { 205 + en: "Languages", 206 + de: "Sprachen", 207 + }, 208 + icon: "translate", 209 + link: "/languages/german_text_types/", 210 + items: [ 211 + { slug: "languages/german_text_types" }, 212 + { slug: "languages/literature" }, 213 + { slug: "languages/text_types" }, 214 + ], 215 + }, 216 + { 217 + label: { 218 + en: "Economy and Law", 219 + de: "Wirtschaft und Recht", 220 + }, 221 + icon: "approve-check-circle", 222 + link: "/economy_and_law/company_foundation/", 223 + items: [ 224 + { slug: "economy_and_law/company_foundation" }, 225 + { slug: "economy_and_law/marketing" }, 226 + ], 227 + }, 228 + { 229 + label: { 230 + en: "Project Management", 231 + de: "Projektmanagement", 232 + }, 233 + icon: "list-format", 234 + link: "/project_management/magic_triangle/", 235 + items: [ 236 + { slug: "project_management/magic_triangle" }, 237 + { slug: "project_management/project_controlling" }, 238 + ], 239 + }, 202 240 ]), 203 241 ], 204 242 credits: true,
+7 -11
starlight/package.json
··· 15 15 }, 16 16 "dependencies": { 17 17 "@11ty/eleventy-fetch": "^4.0.1", 18 - "@astrojs/starlight": "^0.31.1", 18 + "@astrojs/starlight": "^0.32.2", 19 19 "@fontsource-variable/jetbrains-mono": "^5.0.21", 20 20 "@lunariajs/core": "^0.1.0", 21 21 "@zachleat/table-saw": "^1.0.6", 22 - "astro": "^5.1.10", 23 - "astro-expressive-code": "^0.34.2", 22 + "astro": "^5.4.2", 24 23 "astro-feelback": "^0.3.4", 25 - "rehype-mathjax": "^6.0.0", 26 - "remark-expressive-code": "^0.34.2", 24 + "rehype-mathjax": "^7.1.0", 27 25 "remark-math": "^6.0.0", 28 - "sharp": "^0.33.4", 29 - "starlight-image-zoom": "^0.5.0", 30 - "starlight-links-validator": "^0.7.1", 31 - "starlight-sidebar-topics-dropdown": "^0.3.0" 32 - }, 33 - "devDependencies": { 26 + "sharp": "^0.33.5", 27 + "starlight-image-zoom": "^0.11.1", 28 + "starlight-links-validator": "^0.14.3", 29 + "starlight-sidebar-topics-dropdown": "^0.4.1", 34 30 "starlight-view-modes": "^0.5.3" 35 31 }, 36 32 "packageManager": "pnpm@9.6.0"
+3 -3
starlight/src/components/CustomPagination.astro
··· 1 1 --- 2 - import Pagination from "starlight-sidebar-topics-dropdown/overrides/Pagination.astro"; 2 + import Pagination from "@astrojs/starlight/components/Pagination.astro"; 3 3 import FeedbackComponent from "./FeedbackComponent.astro"; 4 4 5 - const { entry } = Astro.props; 5 + const { entry } = Astro.locals.starlightRoute; 6 6 --- 7 7 8 8 <> 9 9 { !entry.data.hero && <FeedbackComponent /> } 10 - <Pagination {...Astro.props as any} /> 10 + <Pagination /> 11 11 </>
+11
starlight/src/content.config.ts
··· 1 + import { defineCollection } from "astro:content"; 2 + import { docsLoader } from "@astrojs/starlight/loaders"; 3 + import { docsSchema } from "@astrojs/starlight/schema"; 4 + import { topicSchema } from "starlight-sidebar-topics-dropdown/schema"; 5 + 6 + export const collections = { 7 + docs: defineCollection({ 8 + loader: docsLoader(), 9 + schema: docsSchema({ extend: topicSchema }), 10 + }), 11 + };
-7
starlight/src/content/config.ts
··· 1 - import { defineCollection } from "astro:content"; 2 - import { docsLoader } from "@astrojs/starlight/loaders"; 3 - import { docsSchema } from "@astrojs/starlight/schema"; 4 - 5 - export const collections = { 6 - docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), 7 - };
+178 -178
starlight/src/content/docs/de/artificial-intelligence/pandas.mdx
··· 63 63 64 64 Ein DataFrame kann ähnlich wie eine Series erstellt werden. Dabei kann man eine Vielzahl an verschiedenen Objekttypen übergeben. 65 65 66 - - **Dictionary** 67 - In diesem Fall hat der Input für das DataFrame den Typen `Dictionary`, dessen Schlüssel ein String und dessen Wert eine Liste ist. 66 + - **Dictionary** 67 + In diesem Fall hat der Input für das DataFrame den Typen `Dictionary`, dessen Schlüssel ein String und dessen Wert eine Liste ist. 68 68 69 - ```python 70 - data = { 71 - 'A': [1, 2, 3, 4], 72 - 'B': [5, 6, 7, 8], 73 - 'C': [9, 10, 11, 12] 74 - } 75 - df = pd.DataFrame(data, index=["I","II","III","IV"]) 76 - ``` 69 + ```python 70 + data = { 71 + 'A': [1, 2, 3, 4], 72 + 'B': [5, 6, 7, 8], 73 + 'C': [9, 10, 11, 12] 74 + } 75 + df = pd.DataFrame(data, index=["I","II","III","IV"]) 76 + ``` 77 77 78 - - **Liste** 79 - In diesem Fall hat der Input für das DataFrame den Typen einer Liste, in welcher sich mehrere Dictionaries befinden. 78 + - **Liste** 79 + In diesem Fall hat der Input für das DataFrame den Typen einer Liste, in welcher sich mehrere Dictionaries befinden. 80 80 81 - ```python 82 - data = [{'A': 1, 'B': 5, 'C': 9}, 83 - {'A': 2, 'B': 6, 'C': 10}, 84 - {'A': 3, 'B': 7, 'C': 11}, 85 - {'A': 4, 'B': 8, 'C': 12}] 86 - df = pd.DataFrame(data, index=["I","II","III","IV"]) 87 - ``` 81 + ```python 82 + data = [{'A': 1, 'B': 5, 'C': 9}, 83 + {'A': 2, 'B': 6, 'C': 10}, 84 + {'A': 3, 'B': 7, 'C': 11}, 85 + {'A': 4, 'B': 8, 'C': 12}] 86 + df = pd.DataFrame(data, index=["I","II","III","IV"]) 87 + ``` 88 88 89 - - **Tuple** 90 - In diesem Fall hat der Input für das DataFrame den Typen einer Liste, mit mehreren Tuples darin. Man beachte, dass die Spaltennamen beim instantiieren des DataFrames angegeben werden müssen, da `data` selbst keine Informationen darüber enthält. 89 + - **Tuple** 90 + In diesem Fall hat der Input für das DataFrame den Typen einer Liste, mit mehreren Tuples darin. Man beachte, dass die Spaltennamen beim instantiieren des DataFrames angegeben werden müssen, da `data` selbst keine Informationen darüber enthält. 91 91 92 - ```python 93 - data = [(1, 5, 9), 94 - (2, 6, 10), 95 - (3, 7, 11), 96 - (4, 8, 12)] 97 - df = pd.DataFrame(data, columns=['A', 'B', 'C'], index=["I","II","III","IV"]) 98 - ``` 92 + ```python 93 + data = [(1, 5, 9), 94 + (2, 6, 10), 95 + (3, 7, 11), 96 + (4, 8, 12)] 97 + df = pd.DataFrame(data, columns=['A', 'B', 'C'], index=["I","II","III","IV"]) 98 + ``` 99 99 100 - - **NumPy** 101 - Man kann ein DataFrame auch mithilfe von einem Numpy-`Array` erstellen. 100 + - **NumPy** 101 + Man kann ein DataFrame auch mithilfe von einem Numpy-`Array` erstellen. 102 102 103 - ```python 104 - import numpy as np 105 - data = np.array([[1, 5, 9], 106 - [2, 6, 10], 107 - [3, 7, 11], 108 - [4, 8, 12]]) 109 - df = pd.DataFrame(data, columns=['A', 'B', 'C'], index=["I","II","III","IV"]) 110 - ``` 103 + ```python 104 + import numpy as np 105 + data = np.array([[1, 5, 9], 106 + [2, 6, 10], 107 + [3, 7, 11], 108 + [4, 8, 12]]) 109 + df = pd.DataFrame(data, columns=['A', 'B', 'C'], index=["I","II","III","IV"]) 110 + ``` 111 111 112 - - **CSV** 113 - Man kann ein DataFrame auch mithilfe einer CSV-Datei erstellen. Dies kommt in der Praxis sehr häufig vor, da CSV-Dateien häufig als Eingabe für Analyseprogramme verwendet werden. Hierbei kann man auch angeben, dass eine Bestimmte Spalte Informationen bezüglich der Indizes enthält. 112 + - **CSV** 113 + Man kann ein DataFrame auch mithilfe einer CSV-Datei erstellen. Dies kommt in der Praxis sehr häufig vor, da CSV-Dateien häufig als Eingabe für Analyseprogramme verwendet werden. Hierbei kann man auch angeben, dass eine Bestimmte Spalte Informationen bezüglich der Indizes enthält. 114 114 115 - ```csv 116 - //file.csv 117 - ,A,B,C 118 - I,1,5,9 119 - II,2,6,10 120 - III,3,7,11 121 - IV,4,8,12 122 - ``` 115 + ```csv 116 + //file.csv 117 + ,A,B,C 118 + I,1,5,9 119 + II,2,6,10 120 + III,3,7,11 121 + IV,4,8,12 122 + ``` 123 123 124 - ```python 125 - df = pd.read_csv('file.csv', index_col=0) # Beispiel für das Lesen aus einer CSV-Datei 126 - ``` 124 + ```python 125 + df = pd.read_csv('file.csv', index_col=0) # Beispiel für das Lesen aus einer CSV-Datei 126 + ``` 127 127 128 - - **JSON** 129 - Natürlich kann das Datenformat auch JSON sein: 128 + - **JSON** 129 + Natürlich kann das Datenformat auch JSON sein: 130 130 131 - ```json 132 - //file.json 133 - { 134 - "A": { "I": 1, "II": 2, "III": 3, "IV": 4 }, 135 - "B": { "I": 5, "II": 6, "III": 7, "IV": 8 }, 136 - "C": { "I": 9, "II": 10, "III": 11, "IV": 12 } 137 - } 138 - ``` 131 + ```json 132 + //file.json 133 + { 134 + "A": { "I": 1, "II": 2, "III": 3, "IV": 4 }, 135 + "B": { "I": 5, "II": 6, "III": 7, "IV": 8 }, 136 + "C": { "I": 9, "II": 10, "III": 11, "IV": 12 } 137 + } 138 + ``` 139 139 140 - ```python 141 - df = pd.read_json('file.json') # Beispiel für das Lesen aus einer JSON-Datei 142 - ``` 140 + ```python 141 + df = pd.read_json('file.json') # Beispiel für das Lesen aus einer JSON-Datei 142 + ``` 143 143 144 - - **SQL-Datenbank** 145 - Man kann auch direkt aus einer SQL-Datenbank lesen. In diesem Fall muss man zunächst eine Verbindung mit der Datenbank herstellen. 144 + - **SQL-Datenbank** 145 + Man kann auch direkt aus einer SQL-Datenbank lesen. In diesem Fall muss man zunächst eine Verbindung mit der Datenbank herstellen. 146 146 147 - ```bash title="Installing sqlite3" 148 - pip install pysqlite3 149 - ``` 147 + ```bash title="Installing sqlite3" 148 + pip install pysqlite3 149 + ``` 150 150 151 - ```python 152 - import sqlite3 153 - con = sqlite3.connect("database.db") 151 + ```python 152 + import sqlite3 153 + con = sqlite3.connect("database.db") 154 154 155 - df = pd.read_sql_query("SELECT * FROM examples", con) 156 - ``` 155 + df = pd.read_sql_query("SELECT * FROM examples", con) 156 + ``` 157 157 158 158 In allen Fällen sieht das DataFrame in diesem Beispiel zum Schluss so aus: 159 159 ··· 170 170 171 171 Um ein DataFrame persistieren zu können, kann man die Daten in eine Datei oder Datenbank speichern. Dabei werden die Formate `CSV` und `JSON` am häufigsten verwendet, weswegen die Integration mit Pandas einfacher denn je ist. 172 172 173 - - **CSV** 173 + - **CSV** 174 174 175 - ```python 176 - df.to_csv('example.csv') 177 - ``` 175 + ```python 176 + df.to_csv('example.csv') 177 + ``` 178 178 179 - - **JSON** 179 + - **JSON** 180 180 181 - ```python 182 - df.to_json('example.json') 183 - ``` 181 + ```python 182 + df.to_json('example.json') 183 + ``` 184 184 185 - - **SQL** 186 - ```python 187 - df.to_sql('example.sql', con) 188 - ``` 185 + - **SQL** 186 + ```python 187 + df.to_sql('example.sql', con) 188 + ``` 189 189 190 190 #### Zugriff auf Daten 191 191 192 192 Bei einem DataFrame ist der Zugriff auf die Daten nun ein wenig anders, da ein DataFrame quasi eine Liste von Series ist. 193 193 194 - - Zugriff auf bestimmte **Spalten** 195 - Um auf eine Spalte zuzugreifen, können diese Möglichkeiten verwendet werden: 194 + - Zugriff auf bestimmte **Spalten** 195 + Um auf eine Spalte zuzugreifen, können diese Möglichkeiten verwendet werden: 196 196 197 - ```python 198 - print(df.A) # Property A 199 - print(df['A']) # Spalte A 200 - print(df.loc[:, 'A']) # Spalte A; alle Zeilen 201 - print(df.iloc[:, 0]) # Spalte Index 0; alle Zeilen 202 - ``` 197 + ```python 198 + print(df.A) # Property A 199 + print(df['A']) # Spalte A 200 + print(df.loc[:, 'A']) # Spalte A; alle Zeilen 201 + print(df.iloc[:, 0]) # Spalte Index 0; alle Zeilen 202 + ``` 203 203 204 - Um auf mehrere Spalten zuzugreifen, können diese Möglichkeiten verwendet werden: 204 + Um auf mehrere Spalten zuzugreifen, können diese Möglichkeiten verwendet werden: 205 205 206 - ```python 207 - print(df[['A', 'B']]) # Spalten A & B 208 - print(df.loc[:, ['A', 'B']]) # Spalten A & B; alle Zeilen 209 - print(df.iloc[:, [0, 1]]) # Spalten Indizes 0 & 1; alle Zeilen 210 - print(df.iloc[:, 0:2]) # Spalten Indizes 0 bis 1; alle Zeilen 211 - print(df.iloc[:, :2]) # Spalten Indizes bis 1; alle Zeilen 212 - print(df.iloc[:, :-1]) # Spalten Indizes bis vorletzte Spalte; alle Zeilen 213 - ``` 206 + ```python 207 + print(df[['A', 'B']]) # Spalten A & B 208 + print(df.loc[:, ['A', 'B']]) # Spalten A & B; alle Zeilen 209 + print(df.iloc[:, [0, 1]]) # Spalten Indizes 0 & 1; alle Zeilen 210 + print(df.iloc[:, 0:2]) # Spalten Indizes 0 bis 1; alle Zeilen 211 + print(df.iloc[:, :2]) # Spalten Indizes bis 1; alle Zeilen 212 + print(df.iloc[:, :-1]) # Spalten Indizes bis vorletzte Spalte; alle Zeilen 213 + ``` 214 214 215 - - Zugriff auf bestimmte **Zeilen** 216 - Um auf eine Zeile zuzugreifen, können diese Möglichkeiten verwendet werden: 215 + - Zugriff auf bestimmte **Zeilen** 216 + Um auf eine Zeile zuzugreifen, können diese Möglichkeiten verwendet werden: 217 217 218 - ```python 219 - print(df.loc["I"]) # Zeile I 220 - print(df.iloc[0]) # Zeile Index 0 221 - ``` 218 + ```python 219 + print(df.loc["I"]) # Zeile I 220 + print(df.iloc[0]) # Zeile Index 0 221 + ``` 222 222 223 - Um auf mehrere Zeilen zuzugreifen, können diese Möglichkeiten verwendet werden: 223 + Um auf mehrere Zeilen zuzugreifen, können diese Möglichkeiten verwendet werden: 224 224 225 - ```python 226 - print(df.loc[["I", "II"]]) # Zeilen I & II 227 - print(df.iloc[[0, 1]]) # Zeilen Indizes 0 & 1 228 - print(df.iloc[0:2]) # Zeilen Indizes 0 bis 1 229 - print(df.iloc[:2]) # Zeilen Indizes bis 1 230 - print(df.iloc[:-2]) # Zeilen Indizes bis vorvorletzte Zeile 231 - ``` 225 + ```python 226 + print(df.loc[["I", "II"]]) # Zeilen I & II 227 + print(df.iloc[[0, 1]]) # Zeilen Indizes 0 & 1 228 + print(df.iloc[0:2]) # Zeilen Indizes 0 bis 1 229 + print(df.iloc[:2]) # Zeilen Indizes bis 1 230 + print(df.iloc[:-2]) # Zeilen Indizes bis vorvorletzte Zeile 231 + ``` 232 232 233 - - Zugriff auf bestimmte **Zellen** 234 - Um auf eine Zelle zuzugreifen, können diese Möglichkeiten verwendet werden: 233 + - Zugriff auf bestimmte **Zellen** 234 + Um auf eine Zelle zuzugreifen, können diese Möglichkeiten verwendet werden: 235 235 236 - ```python 237 - print(df.loc["I", 'A']) # Zeile I; Spalte A 238 - print(df.iloc[0, 0]) # Zeile Index 0; Spalte Index 0 239 - ``` 236 + ```python 237 + print(df.loc["I", 'A']) # Zeile I; Spalte A 238 + print(df.iloc[0, 0]) # Zeile Index 0; Spalte Index 0 239 + ``` 240 240 241 - Um auf mehrere Zellen zuzugreifen, können diese Möglichkeiten verwendet werden (bei `iloc()` sind die Angaben jeweils `inklusiv:exklusiv`): 241 + Um auf mehrere Zellen zuzugreifen, können diese Möglichkeiten verwendet werden (bei `iloc()` sind die Angaben jeweils `inklusiv:exklusiv`): 242 242 243 - ```python 244 - print(df.loc[["I","II","III"], ['A','B']]) # Zeilen I, II & III; Spalten A & B 245 - print(df.loc["I":"III", 'A':'B']) # Zeilen I bis III; Spalten A bis B 246 - print(df.iloc[0:3, 0:2]) # Zeilen Indizes 0 bis 2; Spalten Indizes 0 bis 1 247 - print(df.iloc[:3, :2]) # Zeilen Indizes bis 2; Spalten Indizes bis 1 248 - print(df.iloc[:-1, :-1]) # Zeilen Indizes bis vorletzte Zeile; Spalten Indizes bis vorletzte Spalte 249 - ``` 243 + ```python 244 + print(df.loc[["I","II","III"], ['A','B']]) # Zeilen I, II & III; Spalten A & B 245 + print(df.loc["I":"III", 'A':'B']) # Zeilen I bis III; Spalten A bis B 246 + print(df.iloc[0:3, 0:2]) # Zeilen Indizes 0 bis 2; Spalten Indizes 0 bis 1 247 + print(df.iloc[:3, :2]) # Zeilen Indizes bis 2; Spalten Indizes bis 1 248 + print(df.iloc[:-1, :-1]) # Zeilen Indizes bis vorletzte Zeile; Spalten Indizes bis vorletzte Spalte 249 + ``` 250 250 251 - - Zugriff mittels **Bedingungen** 252 - Die Daten eines DataFrames können mithilfe von Bedingungen auch gefiltert werden: 251 + - Zugriff mittels **Bedingungen** 252 + Die Daten eines DataFrames können mithilfe von Bedingungen auch gefiltert werden: 253 253 254 - ```python 255 - # Alle Zeilen, dessen Wert in Spalte 'A' größer 2 ist 256 - print(df[df['A'] > 2]) 254 + ```python 255 + # Alle Zeilen, dessen Wert in Spalte 'A' größer 2 ist 256 + print(df[df['A'] > 2]) 257 257 258 - """ 259 - A B C 260 - III 3 7 11 261 - IV 4 8 12 262 - """ 263 - ``` 258 + """ 259 + A B C 260 + III 3 7 11 261 + IV 4 8 12 262 + """ 263 + ``` 264 264 265 - ```python 266 - # Alle Series 'A', dessen Wert größer 2 ist 267 - print(df.loc[df['A'] > 2, 'A']) 265 + ```python 266 + # Alle Series 'A', dessen Wert größer 2 ist 267 + print(df.loc[df['A'] > 2, 'A']) 268 268 269 - """ 270 - III 3 271 - IV 4 272 - """ 273 - ``` 269 + """ 270 + III 3 271 + IV 4 272 + """ 273 + ``` 274 274 275 - Diese Bedingungen funktieren nur, weil die Bedingung eine Series selbst ist und somit die Berechnung pro Zeile durchgeführt werden. 275 + Diese Bedingungen funktieren nur, weil die Bedingung eine Series selbst ist und somit die Berechnung pro Zeile durchgeführt werden. 276 276 277 - ```python 278 - df['A'] > 2 277 + ```python 278 + df['A'] > 2 279 279 280 - """ 281 - I False 282 - II False 283 - III True 284 - IV True 285 - Name: A, dtype: bool 286 - """ 287 - ``` 280 + """ 281 + I False 282 + II False 283 + III True 284 + IV True 285 + Name: A, dtype: bool 286 + """ 287 + ``` 288 288 289 289 ## Operationen und Methoden 290 290 291 291 Pandas bietet eine Vielzahl von Methoden und Operationen zur Datenanalyse und -manipulation. Alle Methoden, welche die Daten des DataFrames verändern, verfügen über zwei Möglichkeiten, die Änderungen zu speichern: 292 292 293 - - **Überschreiben** 294 - Einerseits kann man die alten Daten einfach überschreiben, indem man das DataFrame auf die neuen Daten setzt: 293 + - **Überschreiben** 294 + Einerseits kann man die alten Daten einfach überschreiben, indem man das DataFrame auf die neuen Daten setzt: 295 295 296 - ```python 297 - df = df.dropna() 298 - ``` 296 + ```python 297 + df = df.dropna() 298 + ``` 299 299 300 - Im Hintergrund wird der Parameter `inplace` der Methode auf `False` gesetzt und die neuen Daten werden einfach returniert. 300 + Im Hintergrund wird der Parameter `inplace` der Methode auf `False` gesetzt und die neuen Daten werden einfach returniert. 301 301 302 - ```python 303 - df.dropna(inplace=False) # dieser Aufruf gibt das DataFrame zurück 304 - ``` 302 + ```python 303 + df.dropna(inplace=False) # dieser Aufruf gibt das DataFrame zurück 304 + ``` 305 305 306 - - **Inplace** 307 - Die elegantere Variante ist jedoch die Verwendung der `inplace`-Option, welche die Änderungen direkt in dem DataFrame speichert: 306 + - **Inplace** 307 + Die elegantere Variante ist jedoch die Verwendung der `inplace`-Option, welche die Änderungen direkt in dem DataFrame speichert: 308 308 309 - ```python 310 - df.dropna(inplace=True) 311 - ``` 309 + ```python 310 + df.dropna(inplace=True) 311 + ``` 312 312 313 - Wichtig zu beachten ist, dass beim positiven Setzen des `inplace`-Parameters kein DataFrame mehr zurückgegeben wird. Stattdessen returniert dieser Aufruf nun `None`. 313 + Wichtig zu beachten ist, dass beim positiven Setzen des `inplace`-Parameters kein DataFrame mehr zurückgegeben wird. Stattdessen returniert dieser Aufruf nun `None`. 314 314 315 315 ### `head()` 316 316 ··· 356 356 357 357 Dabei ist die Reihenfolge der Anzahl an Dimensionen gleich der aufsteigenden Achsenzahl. In unserem Beispiel bedeutet das, wir haben vier Zeilen und drei Spalten, weil Achse 0 die Zeilen sind und Achse 1 die Spalten. 358 358 359 - Die erste Zahl ist in den meisten Fällen der künstlichen Intelligenz die Anzahl an Beispielen. In unserem Fall gibt uns die zweite Zahl Auskunft über die Anzahl an Features (Eigenschaften) jedes Beispiels. Beim [`Supervised Learning`](#supervised-learning) ist die letzte Spalte meistens die Antwort des Beispiels, weshalb es auch nur zwei Features sein könnten. 359 + Die erste Zahl ist in den meisten Fällen der künstlichen Intelligenz die Anzahl an Beispielen. In unserem Fall gibt uns die zweite Zahl Auskunft über die Anzahl an Features (Eigenschaften) jedes Beispiels. Beim [`Supervised Learning`](/de/artificial-intelligence/supervised-learning) ist die letzte Spalte meistens die Antwort des Beispiels, weshalb es auch nur zwei Features sein könnten. 360 360 361 361 ### `columns` 362 362 ··· 469 469 470 470 ### `isnull()` 471 471 472 - Die Methode `isnull` gibt ein DataFrame mit boolischen Werte zurück, welche Auskunft über die fehlenden Werte eines DataFrames geben. Mithilfe der [`sum`-Methode](#aggregationsfunktionen) kann man dadurch wichtige Informationen des DataFrames extrahieren. 472 + Die Methode `isnull` gibt ein DataFrame mit boolischen Werte zurück, welche Auskunft über die fehlenden Werte eines DataFrames geben. Mithilfe der [`sum`-Methode](/de/artificial-intelligence/numpy#aggregationsfunktionen) kann man dadurch wichtige Informationen des DataFrames extrahieren. 473 473 474 474 ```python ins="‎NaN" 475 475 """
+27 -27
starlight/src/content/docs/de/artificial-intelligence/supervised-learning.mdx
··· 57 57 58 58 ### Vektorisieren 59 59 60 - Beim maschinellen Lernens wird die Vektorisierung der Daten als wichtiger Schritt betrachtet. Die Vektorisierung ist ein Prozess, bei dem die Daten in Form von Vektoren umgewandelt werden. In diesem Beispiel werden die Textdaten mittels [BoW](#bag-of-words-bow) vektorisiert. 60 + Beim maschinellen Lernens wird die Vektorisierung der Daten als wichtiger Schritt betrachtet. Die Vektorisierung ist ein Prozess, bei dem die Daten in Form von Vektoren umgewandelt werden. In diesem Beispiel werden die Textdaten mittels [BoW](/de/artificial-intelligence/natural-language-processing#bag-of-words-bow) vektorisiert. 61 61 62 62 ```python 63 63 from sklearn.feature_extraction.text import CountVectorizer ··· 107 107 In der folgenden Abbildung sieht man ein Beispiel eines Entscheidungsbaums, welcher feststellen soll, ob eine Frucht `essbar` oder `nicht essbar` ist. Dieser Baum verfügt über einen Wurzelknoten, zwei innere Knoten und vier Blattknoten. 108 108 109 109 <img 110 - src="/images/artificial_intelligence/rfc_tree_lm.png" 111 - alt="Entscheidungsbaum" 112 - class="light-only" 110 + src="/images/artificial_intelligence/rfc_tree_lm.png" 111 + alt="Entscheidungsbaum" 112 + class="light-only" 113 113 /> 114 114 <img 115 - src="/images/artificial_intelligence/rfc_tree_dm.png" 116 - alt="Entscheidungsbaum" 117 - class="dark-only" 115 + src="/images/artificial_intelligence/rfc_tree_dm.png" 116 + alt="Entscheidungsbaum" 117 + class="dark-only" 118 118 /> 119 119 120 120 #### Ensemble-Lernen ··· 124 124 Im folgenden Bild sieht man anhand eines Beispiels, wie die Genauigkeit des gesamten Waldes aufgrund des unterschiedlichen Aufbaus der Bäume insgesamt steigt, da sich Fehler gegenseitig automatisch aufheben. Dieses Phänomen nennt sich `Weisheit der Crowd`. 125 125 126 126 <img 127 - src="/images/artificial_intelligence/rfc_ensemble_lm.png" 128 - alt="Entscheidungsbaum" 129 - class="light-only" 127 + src="/images/artificial_intelligence/rfc_ensemble_lm.png" 128 + alt="Entscheidungsbaum" 129 + class="light-only" 130 130 /> 131 131 <img 132 - src="/images/artificial_intelligence/rfc_ensemble_dm.png" 133 - alt="Entscheidungsbaum" 134 - class="dark-only" 132 + src="/images/artificial_intelligence/rfc_ensemble_dm.png" 133 + alt="Entscheidungsbaum" 134 + class="dark-only" 135 135 /> 136 136 137 137 #### Codebeispiel mit Datenaufbereitung und Anwendung des RFC ··· 220 220 221 221 Neuronale Netzwerke bestehen aus einer Reihe von Schichten: 222 222 223 - - **Eingabeschicht:** Die erste Schicht, die die Eingabedaten empfängt. 224 - - **Versteckte Schichten:** Eine oder mehrere Schichten, die die Eingabedaten transformieren und komplexe Merkmale extrahieren. 225 - - **Ausgabeschicht:** Die letzte Schicht, die das Ergebnis der Verarbeitung liefert. 223 + - **Eingabeschicht:** Die erste Schicht, die die Eingabedaten empfängt. 224 + - **Versteckte Schichten:** Eine oder mehrere Schichten, die die Eingabedaten transformieren und komplexe Merkmale extrahieren. 225 + - **Ausgabeschicht:** Die letzte Schicht, die das Ergebnis der Verarbeitung liefert. 226 226 227 227 Jedes Neuron berechnet eine gewichtete Summe seiner Eingaben, wendet eine Aktivierungsfunktion an und gibt das Ergebnis an die nächste Schicht weiter. Häufig verwendete Aktivierungsfunktionen sind die Sigmoid-Funktion, die Tanh-Funktion und die ReLU-Funktion (Rectified Linear Unit). 228 228 ··· 253 253 254 254 Convolutional Neural Networks sind eine spezielle Art von neuronalen Netzwerken, die besonders gut für die Verarbeitung von Bildern und anderen grid-basierten Daten geeignet sind. Sie bestehen aus: 255 255 256 - - **Convolutional Layers:** Diese Schichten verwenden Filter (oder Kernel), die über das Eingabebild gleiten und lokale Merkmale extrahieren. 257 - - **Pooling Layers:** Diese Schichten reduzieren die Dimensionalität der Daten, indem sie lokale Bereiche zusammenfassen, z.B. durch Max-Pooling oder Average-Pooling. 258 - - **Fully Connected Layers:** Diese Schichten sind ähnlich wie in herkömmlichen neuronalen Netzwerken und verbinden alle Neuronen miteinander. 256 + - **Convolutional Layers:** Diese Schichten verwenden Filter (oder Kernel), die über das Eingabebild gleiten und lokale Merkmale extrahieren. 257 + - **Pooling Layers:** Diese Schichten reduzieren die Dimensionalität der Daten, indem sie lokale Bereiche zusammenfassen, z.B. durch Max-Pooling oder Average-Pooling. 258 + - **Fully Connected Layers:** Diese Schichten sind ähnlich wie in herkömmlichen neuronalen Netzwerken und verbinden alle Neuronen miteinander. 259 259 260 260 CNNs werden häufig in der Bild- und Videoverarbeitung, Mustererkennung und der Verarbeitung von mehrdimensionalen Daten eingesetzt. 261 261 ··· 282 282 283 283 Varianten von RNNs sind: 284 284 285 - - **Long Short-Term Memory (LSTM):** Eine spezielle RNN-Architektur, die entwickelt wurde, um das Problem des verschwindenden Gradienten zu lösen und langfristige Abhängigkeiten besser zu modellieren. 286 - - **Gated Recurrent Unit (GRU):** Eine vereinfachte Version von LSTM, die ähnliche Leistungsmerkmale aufweist. 285 + - **Long Short-Term Memory (LSTM):** Eine spezielle RNN-Architektur, die entwickelt wurde, um das Problem des verschwindenden Gradienten zu lösen und langfristige Abhängigkeiten besser zu modellieren. 286 + - **Gated Recurrent Unit (GRU):** Eine vereinfachte Version von LSTM, die ähnliche Leistungsmerkmale aufweist. 287 287 288 288 ```python 289 289 import torch ··· 328 328 329 329 Hauptmerkmale von TensorFlow sind: 330 330 331 - - **Tensors:** Grundlegende Datenstrukturen, die n-dimensionalen Arrays ähneln. 332 - - **Graphen:** Modelle werden als gerichtete Graphen dargestellt, wobei Knoten Operationen und Kanten Datenströme darstellen. 333 - - **Keras API:** Eine hochstufige API, die das Erstellen und Trainieren von Modellen vereinfacht. 331 + - **Tensors:** Grundlegende Datenstrukturen, die n-dimensionalen Arrays ähneln. 332 + - **Graphen:** Modelle werden als gerichtete Graphen dargestellt, wobei Knoten Operationen und Kanten Datenströme darstellen. 333 + - **Keras API:** Eine hochstufige API, die das Erstellen und Trainieren von Modellen vereinfacht. 334 334 335 335 TensorFlow bietet Unterstützung für verteiltes Training, ermöglicht den Einsatz auf verschiedenen Plattformen (CPUs, GPUs, TPUs) und hat eine große Community sowie umfangreiche Dokumentation. 336 336 ··· 351 351 352 352 Hauptmerkmale von PyTorch sind: 353 353 354 - - **Tensors:** Ähnlich wie in TensorFlow, aber mit einer einfacheren Syntax. 355 - - **Autograd:** Automatische Differenzierung zur Berechnung von Gradienten. 356 - - **TorchScript:** Ermöglicht die Konvertierung von PyTorch-Modellen in eine Form, die in einer Produktionsumgebung ausgeführt werden kann. 354 + - **Tensors:** Ähnlich wie in TensorFlow, aber mit einer einfacheren Syntax. 355 + - **Autograd:** Automatische Differenzierung zur Berechnung von Gradienten. 356 + - **TorchScript:** Ermöglicht die Konvertierung von PyTorch-Modellen in eine Form, die in einer Produktionsumgebung ausgeführt werden kann. 357 357 358 358 PyTorch ist besonders bei Forschern und Entwicklern beliebt, da es intuitive und pythonische APIs bietet, die das Experimentieren und Debuggen erleichtern. 359 359
+7 -7
starlight/src/content/docs/de/databases/document-oriented-databases.mdx
··· 14 14 15 15 Transaktionen sind mehrere Operationen, welche so zu einer Einheit verbunden sind, dass entweder alle oder gar kein Schritt ausgeführt wird. Sprich, Transaktionen sind atomar. Das Akronym BASE steht für folgende Eigenschaften bei dokumentenorientierte Datenbanken: 16 16 17 - - **B**asically **A**vailable 18 - Die Daten sind jederzeit zugänglich und erreichbar. 17 + - **B**asically **A**vailable 18 + Die Daten sind jederzeit zugänglich und erreichbar. 19 19 20 - - **S**oft State 21 - Es ist erlaubt, dass es Zustände im System geben kann, in welchem Daten falsch sind. 20 + - **S**oft State 21 + Es ist erlaubt, dass es Zustände im System geben kann, in welchem Daten falsch sind. 22 22 23 - - **E**ventual Consistency 24 - Es wird garantiert, dass die Daten zu irgendeinem Zeitpunkt in der Zukunft richtig sein werden. Dies muss jedoch nicht jetzt sein. Das Gegenteil wäre _Strong Consistency_, wie es bei [relationalen Datenbanken](#relationale-datenbanken) der Fall ist. 23 + - **E**ventual Consistency 24 + Es wird garantiert, dass die Daten zu irgendeinem Zeitpunkt in der Zukunft richtig sein werden. Dies muss jedoch nicht jetzt sein. Das Gegenteil wäre _Strong Consistency_, wie es bei [relationalen Datenbanken](/de/databases/relational-databases) der Fall ist. 25 25 26 26 ## Realisierungen 27 27 28 28 ### MongoDB 29 29 30 - ### CouchDB 30 + ### CouchDB
+28 -28
starlight/src/content/docs/de/databases/relational-databases.mdx
··· 6 6 7 7 ## Vorteile 8 8 9 - - **Einfaches Datenmodell** 10 - Dem relationalen Datenbankmodell liegt ein vergleichsweise einfach umsetzbares Datenmodell zugrunde. Informationen wie Kundendaten, Bestelllisten oder Kontobewegungen, die Unternehmen langfristig speichern wollen, lassen sich mit der Tabellenstruktur, die dem relationalen Datenbankmodell zugrunde liegt, ideal abbilden. 9 + - **Einfaches Datenmodell** 10 + Dem relationalen Datenbankmodell liegt ein vergleichsweise einfach umsetzbares Datenmodell zugrunde. Informationen wie Kundendaten, Bestelllisten oder Kontobewegungen, die Unternehmen langfristig speichern wollen, lassen sich mit der Tabellenstruktur, die dem relationalen Datenbankmodell zugrunde liegt, ideal abbilden. 11 11 12 - - **Geringe Datenredundanz** 13 - Das relationale Datenbankmodell legt klare Vorschriften zur Vermeidung von Redundanz durch verschiedene [Normalformen](#normalisierung) fest. Bei konsequenter Umsetzung ermöglichen relationale Datenbanksysteme eine nahezu redundanzfreie Datenhaltung. Dies erleichtert insbesondere die Pflege und Wartung von Datenbeständen, da Änderungen lediglich an einer einzigen Stelle vorgenommen werden müssen. 12 + - **Geringe Datenredundanz** 13 + Das relationale Datenbankmodell legt klare Vorschriften zur Vermeidung von Redundanz durch verschiedene [Normalformen](#normalisierung) fest. Bei konsequenter Umsetzung ermöglichen relationale Datenbanksysteme eine nahezu redundanzfreie Datenhaltung. Dies erleichtert insbesondere die Pflege und Wartung von Datenbeständen, da Änderungen lediglich an einer einzigen Stelle vorgenommen werden müssen. 14 14 15 - - **Hohe Datenkonsistenz** 16 - Normalisierte relationale Datenbanken ermöglichen eine konsistente Datenhaltung und tragen somit zur Datenkonsistenz bei. Relationale Datenbanksysteme bieten auch Funktionen, um Integritätsbedingungen zu definieren und automatisch zu überprüfen. Transaktionen, die die Datenkonsistenz gefährden könnten, sind ausgeschlossen. 15 + - **Hohe Datenkonsistenz** 16 + Normalisierte relationale Datenbanken ermöglichen eine konsistente Datenhaltung und tragen somit zur Datenkonsistenz bei. Relationale Datenbanksysteme bieten auch Funktionen, um Integritätsbedingungen zu definieren und automatisch zu überprüfen. Transaktionen, die die Datenkonsistenz gefährden könnten, sind ausgeschlossen. 17 17 18 - - **Mengenorientierte Datenverarbeitung** 19 - Das relationale Datenbanksystem basiert auf einer mengenorientierten Datenverarbeitung, bei der jede Entität in atomare Werte zerlegt wird. Dies ermöglicht die Verknüpfung verschiedener Entitäten über den Inhalt sowie komplexe Datenbankabfragen wie JOINs. 18 + - **Mengenorientierte Datenverarbeitung** 19 + Das relationale Datenbanksystem basiert auf einer mengenorientierten Datenverarbeitung, bei der jede Entität in atomare Werte zerlegt wird. Dies ermöglicht die Verknüpfung verschiedener Entitäten über den Inhalt sowie komplexe Datenbankabfragen wie JOINs. 20 20 21 - - **Einheitliche Abfragesprache** 22 - Für Abfragen relationaler Datenbanken hat sich die durch ein Gremium von ISO und IEC standardisierte Datenbanksprache SQL etabliert. Diese Standardisierung ermöglicht es, Anwendungen weitgehend unabhängig vom zugrunde liegenden Datenbank-Managementsystem zu entwickeln und auszuführen. Allerdings variiert der Support von SQL je nach DBMS nach wie vor erheblich. 21 + - **Einheitliche Abfragesprache** 22 + Für Abfragen relationaler Datenbanken hat sich die durch ein Gremium von ISO und IEC standardisierte Datenbanksprache SQL etabliert. Diese Standardisierung ermöglicht es, Anwendungen weitgehend unabhängig vom zugrunde liegenden Datenbank-Managementsystem zu entwickeln und auszuführen. Allerdings variiert der Support von SQL je nach DBMS nach wie vor erheblich. 23 23 24 24 ## Nachteile 25 25 26 - - **Big Data** 27 - Bei enormen Datenmengen zeigen sich die Grenzen relationaler Datenbanken, insbesondere in Bezug auf die Effizienz von [JOIN-Operationen](#join-operationen). In solchen Umgebungen, in denen Big Data verarbeitet wird, erweisen sich relationale Datenbanken aufgrund ihrer Performance-Belastung durch JOINs oft als weniger empfehlenswert. 26 + - **Big Data** 27 + Bei enormen Datenmengen zeigen sich die Grenzen relationaler Datenbanken, insbesondere in Bezug auf die Effizienz von [JOIN-Operationen](#join-operationen). In solchen Umgebungen, in denen Big Data verarbeitet wird, erweisen sich relationale Datenbanken aufgrund ihrer Performance-Belastung durch JOINs oft als weniger empfehlenswert. 28 28 29 - - **Tabellen nicht passend** 30 - Das scheinbar einfache tabellenbasierte Datenmodell und die Verknüpfung von Daten in relationalen Datenbanksystemen können in bestimmten Kontexten als Herausforderung erscheinen. Insbesondere die starre Struktur zweidimensionaler Tabellen stößt an ihre Grenzen, wenn es um die Abbildung komplexer Datentypen wie in Multimedia-Anwendungen und Big-Data-Szenarien geht. 29 + - **Tabellen nicht passend** 30 + Das scheinbar einfache tabellenbasierte Datenmodell und die Verknüpfung von Daten in relationalen Datenbanksystemen können in bestimmten Kontexten als Herausforderung erscheinen. Insbesondere die starre Struktur zweidimensionaler Tabellen stößt an ihre Grenzen, wenn es um die Abbildung komplexer Datentypen wie in Multimedia-Anwendungen und Big-Data-Szenarien geht. 31 31 32 - - **Fehlende Hierarchie in den Datenbankstrukturen** 33 - Ein zentrales Defizit relationaler Datenbanken im Vergleich zu Objektdatenbanken liegt in der fehlenden Möglichkeit, hierarchisch strukturierte Klassen in den Datenbankschemata umzusetzen. Die Unmöglichkeit, untergeordnete Entitäten mit den Eigenschaften ihrer übergeordneten Entitäten zu versehen, führt zu einer einheitlichen Hierarchieebene und schließt die Erstellung von Sub-Tupeln aus. 32 + - **Fehlende Hierarchie in den Datenbankstrukturen** 33 + Ein zentrales Defizit relationaler Datenbanken im Vergleich zu Objektdatenbanken liegt in der fehlenden Möglichkeit, hierarchisch strukturierte Klassen in den Datenbankschemata umzusetzen. Die Unmöglichkeit, untergeordnete Entitäten mit den Eigenschaften ihrer übergeordneten Entitäten zu versehen, führt zu einer einheitlichen Hierarchieebene und schließt die Erstellung von Sub-Tupeln aus. 34 34 35 - - **Segmentierung der Daten und komplexe Abfragen** 36 - Die fundamentale Praxis der Datensegmentierung durch Normalisierung in relationalen Datenbanksystemen kann zu einer fragmentierten Datenhaltung führen. Das Zusammenführen von thematisch zusammenhängenden Daten gestaltet sich schwieriger, was zu komplexen Abfragen über mehrere Tabellen und damit zu einer potenziellen Beeinträchtigung der Performance auf der Anwendungsebene führen kann. 35 + - **Segmentierung der Daten und komplexe Abfragen** 36 + Die fundamentale Praxis der Datensegmentierung durch Normalisierung in relationalen Datenbanksystemen kann zu einer fragmentierten Datenhaltung führen. Das Zusammenführen von thematisch zusammenhängenden Daten gestaltet sich schwieriger, was zu komplexen Abfragen über mehrere Tabellen und damit zu einer potenziellen Beeinträchtigung der Performance auf der Anwendungsebene führen kann. 37 37 38 38 ## Konzepte 39 39 ··· 49 49 50 50 Transaktionen sind mehrere Operationen, welche so zu einer Einheit verbunden sind, dass entweder alle oder gar kein Schritt ausgeführt wird. Sprich, Transaktionen sind atomar. Dies wird beim ACID-Transaktionsmodell (Akronym) erneuert ersichtlich: 51 51 52 - - **A**tomar 53 - Transaktionen sind nicht aufspaltbar. 52 + - **A**tomar 53 + Transaktionen sind nicht aufspaltbar. 54 54 55 - - **C**onsistent 56 - Relationale Datenbanken haben eine hohe Datenkonsistenz (_Strong Consistency_). Das bedeutet, dass zu jedem Zeitpunkt alle Daten richtig sein müssen. [_Eventual Consistency_](#base-transaktionen) bedeutet, dass die Datenrichtigkeit irgendwann gegeben sein wird (nicht gezwungenermaßen jetzt sofort). 55 + - **C**onsistent 56 + Relationale Datenbanken haben eine hohe Datenkonsistenz (_Strong Consistency_). Das bedeutet, dass zu jedem Zeitpunkt alle Daten richtig sein müssen. [_Eventual Consistency_](/de/databases/document-oriented-databases#base-transaktionen) bedeutet, dass die Datenrichtigkeit irgendwann gegeben sein wird (nicht gezwungenermaßen jetzt sofort). 57 57 58 - Bei SQL-Datenbanken wird diese hohe Datenkonsistenz mittels Constraints (`NOT NULL`, `PRIMARY KEY` / `FOREIGN KEY`, `UNIQUE`, `CHECK`, `DEFAULT`) gewährleistet. 58 + Bei SQL-Datenbanken wird diese hohe Datenkonsistenz mittels Constraints (`NOT NULL`, `PRIMARY KEY` / `FOREIGN KEY`, `UNIQUE`, `CHECK`, `DEFAULT`) gewährleistet. 59 59 60 - - **I**solated 61 - Sobald eine Transaktion Daten bearbeitet, werden diese Daten gesperrt, damit keine anderen Transaktionen die Daten überschreiben können. 60 + - **I**solated 61 + Sobald eine Transaktion Daten bearbeitet, werden diese Daten gesperrt, damit keine anderen Transaktionen die Daten überschreiben können. 62 62 63 - - **D**urable 64 - Die Daten werden selbst bei einem Ausfall gespeichert. Somit werden die Ergebnisse im Rahmen einer Transaktion sogar bei Ausfallzeiten fortlaufend geliefert. 63 + - **D**urable 64 + Die Daten werden selbst bei einem Ausfall gespeichert. Somit werden die Ergebnisse im Rahmen einer Transaktion sogar bei Ausfallzeiten fortlaufend geliefert. 65 65 66 66 #### Isolation verbessern 67 67 ··· 105 105 106 106 ### SQLite 107 107 108 - ### MariaDB 108 + ### MariaDB
+10 -10
starlight/src/content/docs/de/decentralised-systems/azure-functions.mdx
··· 26 26 27 27 Jede Azure Function ist eine einfache Funktion in C## oder [anderen Programmiersprachen](https://learn.microsoft.com/de-de/azure/azure-functions/supported-languages?tabs=isolated-process%2Cv4&pivots=programming-language-csharp). Dabei benötigt jede AF (Azure Function) einen Trigger, bei welchen sie ausgeführt werden soll. Es gibt viele verschiedene Arten von Triggern: 28 28 29 - | Azure Function Trigger | 30 - | ------------------------------------------------------------------------------- | 31 - | HTTP Trigger (Ausführung bei HTTP Request) | 32 - | Timer Trigger (Ausführung in Intervallen) | 33 - | Queue Trigger (Ausführung bei neuer Message in [Queue Storage](#queue-storage)) | 34 - | Blob Trigger (Ausführung bei Dateiupload in [Blob Storage](#blob-storage)) | 35 - | Cosmos DB Trigger | 36 - | Event Grid Trigger | 37 - | Event Hub Trigger | 38 - | Custom Bindings (.NET) | 29 + | Azure Function Trigger | 30 + | ------------------------------------------------------------------------------------------------------------------------ | 31 + | HTTP Trigger (Ausführung bei HTTP Request) | 32 + | Timer Trigger (Ausführung in Intervallen) | 33 + | Queue Trigger (Ausführung bei neuer Message in [Queue Storage](/de/decentralised-systems/storage-account#queue-storage)) | 34 + | Blob Trigger (Ausführung bei Dateiupload in [Blob Storage](/de/decentralised-systems/storage-account#blob-storage)) | 35 + | Cosmos DB Trigger | 36 + | Event Grid Trigger | 37 + | Event Hub Trigger | 38 + | Custom Bindings (.NET) | 39 39 40 40 ### Timer Trigger 41 41
+1 -1
starlight/src/content/docs/de/decentralised-systems/durable-functions.mdx
··· 81 81 82 82 ## Activity 83 83 84 - Eine Activity ist eine normale Azure Function, welche vom Orchestrator ein oder mehrere Male aufgerufen werden kann. Für die Activity gelten die gleichen Regeln wie für eine [Azure Function](#azure-functions). 84 + Eine Activity ist eine normale Azure Function, welche vom Orchestrator ein oder mehrere Male aufgerufen werden kann. Für die Activity gelten die gleichen Regeln wie für eine [Azure Function](/de/decentralised-systems/azure-functions). 85 85 86 86 ```csharp 87 87 [FunctionName("SayHello")]
+2 -2
starlight/src/content/docs/de/embedded-programming/analogue-digital-converter.mdx
··· 69 69 70 70 #### Normal Mode 71 71 72 - Beim normalen Modus muss die Konvertierung von analogen auf digitales Signal jedes mal manuell gestartet werden. Sobald die Messung abgeschlossen ist, wird die entsprechende ISR aufgerufen. Meistens startet man die nächste Messung direkt nach der Absolvierung des Durchlaufs des [Interrupts](#interrupts). 72 + Beim normalen Modus muss die Konvertierung von analogen auf digitales Signal jedes mal manuell gestartet werden. Sobald die Messung abgeschlossen ist, wird die entsprechende ISR aufgerufen. Meistens startet man die nächste Messung direkt nach der Absolvierung des Durchlaufs des [Interrupts](/de/embedded-programming/interrupts). 73 73 74 74 ```c 75 75 int main(void) ··· 94 94 95 95 #### Free Running Mode 96 96 97 - Es gibt die Möglichkeit den ADC so einzustellen, dass er so schnell wie er nur kann hintereinander unendlich oft automatisch getriggert wird. Dabei entsteht die Gefahr, dass bei einer länger andauernden Ausführung des ADC [Interrupts](#interrupts) die nächste Ausführung gestartet wird, bevor die aktuell Ausführung überhaupt fertig ist. 97 + Es gibt die Möglichkeit den ADC so einzustellen, dass er so schnell wie er nur kann hintereinander unendlich oft automatisch getriggert wird. Dabei entsteht die Gefahr, dass bei einer länger andauernden Ausführung des ADC [Interrupts](/de/embedded-programming/interrupts) die nächste Ausführung gestartet wird, bevor die aktuell Ausführung überhaupt fertig ist. 98 98 99 99 ```c 100 100 ADCSRA |= (1<<ADATE);
+4 -4
starlight/src/content/docs/de/embedded-programming/button.mdx
··· 8 8 9 9 Grundsätzlich gibt es zwei verschiedene Arten, Tasten zu verwenden: 10 10 11 - - Active Low Beschaltung => Pull-Up Widerstand 12 - - Active High Beschaltung => Pull-Down Widerstand 11 + - Active Low Beschaltung => Pull-Up Widerstand 12 + - Active High Beschaltung => Pull-Down Widerstand 13 13 14 - Diese beiden Arten müssen auf [Code-Ebene](#code-1) unterschiedlich verarbeitet werden. 14 + Diese beiden Arten müssen auf [Code-Ebene](#code) unterschiedlich verarbeitet werden. 15 15 16 16 ### Active Low / Pull-Up 17 17 ··· 152 152 153 153 ### Mit Interrupts 154 154 155 - Mit Interrupts hat man den Vorteil, dass man nicht in der while-Schleife ständig eine Methode aufrufen muss, welche die Tasten abfragt. Dieses Verhalten wird bei den [Interrupts](#interrupts) noch besser erklärt. 155 + Mit Interrupts hat man den Vorteil, dass man nicht in der while-Schleife ständig eine Methode aufrufen muss, welche die Tasten abfragt. Dieses Verhalten wird bei den [Interrupts](/de/embedded-programming/interrupts) noch besser erklärt. 156 156 157 157 #### Direkt externe Interrupts 158 158
+56 -52
starlight/src/content/docs/de/embedded-programming/pointer.mdx
··· 35 35 Die Funktionalitäten von `*` und `&` werden in dieser Tabelle dargestellt: 36 36 37 37 <table> 38 - <thead> 39 - <tr> 40 - <th>Symbol</th> 41 - <th>Funktion</th> 42 - <th style="min-width: 200px;">Beispiel</th> 43 - </tr> 44 - </thead> 45 - <tbody> 46 - <tr> 47 - <td rowspan="2"> 48 - <code>*</code> 49 - </td> 50 - <td> 51 - Pointer erstellen 52 - <blockquote> 53 - <strong><a href="https://stackoverflow.com/questions/5590150/difference-between-int-p-and-int-p-declaration">Anmerkung</a></strong>: 54 - Die Position des Sternchens relativ zum 55 - Variablennamen macht keinen Unterschied. Jedoch gilt das Sternchen immer nur für 56 - die folgende Variable! In Beispiel 4 wird demnach genau wie in Beispiel 3 nur 57 - ein Pointer und eine normale Variable erstellt. 58 - </blockquote> 59 - </td> 60 - <td> 61 - <code>int *p;</code> 62 - <br /> 63 - <code>int* p;</code> 64 - <br /> 65 - <code>int *p, q;</code> 66 - <br /> 67 - <code>int* p, q;</code> 68 - </td> 69 - </tr> 70 - <tr> 71 - <td>den Wert des Pointers auslesen (Dereferenzierung)</td> 72 - <td> 73 - <code>int i = *p;</code> 74 - </td> 75 - </tr> 76 - <tr> 77 - <td> 78 - <code>&</code> 79 - </td> 80 - <td> 81 - Mit dem Adressoperator kann man einen Wert zu einem Pointer konvertieren (die 82 - Adresse des Wertes auslesen). 83 - </td> 84 - <td> 85 - <code>int *p = &i;</code> 86 - </td> 87 - </tr> 88 - </tbody> 38 + <thead> 39 + <tr> 40 + <th>Symbol</th> 41 + <th>Funktion</th> 42 + <th style="min-width: 200px;">Beispiel</th> 43 + </tr> 44 + </thead> 45 + <tbody> 46 + <tr> 47 + <td rowspan="2"> 48 + <code>*</code> 49 + </td> 50 + <td> 51 + Pointer erstellen 52 + <blockquote> 53 + <strong> 54 + <a href="https://stackoverflow.com/questions/5590150/difference-between-int-p-and-int-p-declaration"> 55 + Anmerkung 56 + </a> 57 + </strong> 58 + : Die Position des Sternchens relativ zum Variablennamen macht keinen 59 + Unterschied. Jedoch gilt das Sternchen immer nur für die folgende 60 + Variable! In Beispiel 4 wird demnach genau wie in Beispiel 3 nur ein 61 + Pointer und eine normale Variable erstellt. 62 + </blockquote> 63 + </td> 64 + <td> 65 + <code>int *p;</code> 66 + <br /> 67 + <code>int* p;</code> 68 + <br /> 69 + <code>int *p, q;</code> 70 + <br /> 71 + <code>int* p, q;</code> 72 + </td> 73 + </tr> 74 + <tr> 75 + <td>den Wert des Pointers auslesen (Dereferenzierung)</td> 76 + <td> 77 + <code>int i = *p;</code> 78 + </td> 79 + </tr> 80 + <tr> 81 + <td> 82 + <code>&</code> 83 + </td> 84 + <td> 85 + Mit dem Adressoperator kann man einen Wert zu einem Pointer konvertieren 86 + (die Adresse des Wertes auslesen). 87 + </td> 88 + <td> 89 + <code>int *p = &i;</code> 90 + </td> 91 + </tr> 92 + </tbody> 89 93 </table> 90 94 91 95 ## mit Arrays arbeiten ··· 134 138 } 135 139 ``` 136 140 137 - Bei Strings, sprich Array von Zeichen, wird beim Erstellen automatisch ein Terminierungssymbol (`\0`) nach dem Array gespeichert, sodass man untige `while`-Schleife zum Ausgeben verwenden kann. Die `while`-Schleife hört automatisch am Ende der Zeichenkette auf, da das Terminierungszeichen `\0` einer falschen Bedingung entspricht. Genau auf diese Art und Weise werden beim [USART](#daten-senden) die Zeichen einzeln hintereinander versendet. 141 + Bei Strings, sprich Array von Zeichen, wird beim Erstellen automatisch ein Terminierungssymbol (`\0`) nach dem Array gespeichert, sodass man untige `while`-Schleife zum Ausgeben verwenden kann. Die `while`-Schleife hört automatisch am Ende der Zeichenkette auf, da das Terminierungszeichen `\0` einer falschen Bedingung entspricht. Genau auf diese Art und Weise werden beim [USART](/de/embedded-programming/usart#daten-senden) die Zeichen einzeln hintereinander versendet. 138 142 139 143 ```c 140 144 char buffer[10] = "Hallo";
+62 -9
starlight/src/content/docs/de/embedded-programming/special-function-register.mdx
··· 7 7 Nachstehende Tabelle fasst die SFR für die drei Ports jeweils zusammen. 8 8 9 9 <table> 10 - <tr><th></th><th>Data Direction Register</th><th>Ausgangsregister</th><th>Eingangsregister</th></tr> 11 - <tr><td>B</td><td><code>DDRB</code></td><td><code>PORTB</code></td><td><code>PINB</code></td></tr> 12 - <tr><td>C</td><td><code>DDRC</code></td><td><code>PORTC</code></td><td><code>PINC</code></td></tr> 13 - <tr><td>D</td><td><code>DDRD</code></td><td><code>PORTD</code></td><td><code>PIND</code></td></tr> 14 - <tr><td>Beschreibung</td> 15 - <td>Jedes Pin kann entweder ein Eingang oder ein Ausgang sein. Diese Flussrichtung der Daten, kann mittels Data Direction Register eingestellt werden. Da standardmäßig alle <code>DDR</code> auf <code>0</code> gesetzt sind, ist auch <strong>standardmäßig alles ein Eingang</strong>. Mit dem Code unten kann man die jeweilgen Pins auf Ausgänge setzen (für LED zB).</td> 16 - <td>Will man intern bei dem jeweiligen Pin <code>5V</code> anlegen, so kann man dies tun, indem man das korrespondierende Ausgangsregister auf <code>1</code> setzt.</td> 17 - <td>Die Eingangsregister erlauben Konfigurationen, welche beim Arbeiten mit Tasten von Entscheidung sind.</td></tr> 10 + <tr> 11 + <th></th> 12 + <th>Data Direction Register</th> 13 + <th>Ausgangsregister</th> 14 + <th>Eingangsregister</th> 15 + </tr> 16 + <tr> 17 + <td>B</td> 18 + <td> 19 + <code>DDRB</code> 20 + </td> 21 + <td> 22 + <code>PORTB</code> 23 + </td> 24 + <td> 25 + <code>PINB</code> 26 + </td> 27 + </tr> 28 + <tr> 29 + <td>C</td> 30 + <td> 31 + <code>DDRC</code> 32 + </td> 33 + <td> 34 + <code>PORTC</code> 35 + </td> 36 + <td> 37 + <code>PINC</code> 38 + </td> 39 + </tr> 40 + <tr> 41 + <td>D</td> 42 + <td> 43 + <code>DDRD</code> 44 + </td> 45 + <td> 46 + <code>PORTD</code> 47 + </td> 48 + <td> 49 + <code>PIND</code> 50 + </td> 51 + </tr> 52 + <tr> 53 + <td>Beschreibung</td> 54 + <td> 55 + Jedes Pin kann entweder ein Eingang oder ein Ausgang sein. Diese 56 + Flussrichtung der Daten, kann mittels Data Direction Register eingestellt 57 + werden. Da standardmäßig alle <code>DDR</code> auf <code>0</code> gesetzt 58 + sind, ist auch <strong>standardmäßig alles ein Eingang</strong>. Mit dem 59 + Code unten kann man die jeweilgen Pins auf Ausgänge setzen (für LED zB). 60 + </td> 61 + <td> 62 + Will man intern bei dem jeweiligen Pin <code>5V</code> anlegen, so kann 63 + man dies tun, indem man das korrespondierende Ausgangsregister auf{" "} 64 + <code>1</code> setzt. 65 + </td> 66 + <td> 67 + Die Eingangsregister erlauben Konfigurationen, welche beim Arbeiten mit 68 + Tasten von Entscheidung sind. 69 + </td> 70 + </tr> 18 71 </table> 19 72 20 73 ## Beispiele ··· 58 111 } 59 112 ``` 60 113 61 - Meistens verwendet man bei der Abfrage von Tasteneingaben die [`Interne Pull-Up Widerstand`-Methode](#active-low--pull-up). Hierbei liegen 0V an, wenn die Taste gedrückt ist, was bedeutet, dass die Bedinung negiert werden muss. Um diese dann noch zu entprellen (auf Softwareebene) macht man ein Delay. 114 + Meistens verwendet man bei der Abfrage von Tasteneingaben die [`Interne Pull-Up Widerstand`-Methode](/de/embedded-programming/button#active-low--pull-up). Hierbei liegen 0V an, wenn die Taste gedrückt ist, was bedeutet, dass die Bedinung negiert werden muss. Um diese dann noch zu entprellen (auf Softwareebene) macht man ein Delay. 62 115 63 116 ```c del="!" 64 117 if (!(PIND & (1<<PIND1)))
+14 -14
starlight/src/content/docs/de/embedded-programming/spi.mdx
··· 10 10 11 11 Dabei muss die Kommunikation immer vom Controller aus gestartet werden. Ein Peripheral kann nur Daten senden, wenn er vom Controller dazu aufgefordert wird. 12 12 13 - Das SPI verwendet separate Takt- und Datenleitungen sowie eine Auswahlleitung, um das Gerät auszuwählen, mit dem Sie sprechen möchten. Dies ist auch einer der Unterschiede zum [USART](#usart---universal-synchronous-and-asynchronous-receiver-transmitter), welches keine synchrone Schnittstelle ist, da es keine Garantie gibt, dass beide Seiten mit der gleichen Taktrate laufen. Beim USART müssen sich die beiden Seiten im Vorhinein einigen, mit welcher Übertragungsgeschwindigkeit ([Baudrate](#baud-rate)) sie kommunizieren und es müssen zusätzliche Start- und Stoppbits übertragen werden. 13 + Das SPI verwendet separate Takt- und Datenleitungen sowie eine Auswahlleitung, um das Gerät auszuwählen, mit dem Sie sprechen möchten. Dies ist auch einer der Unterschiede zum [USART](/de/embedded-programming/usart), welches keine synchrone Schnittstelle ist, da es keine Garantie gibt, dass beide Seiten mit der gleichen Taktrate laufen. Beim USART müssen sich die beiden Seiten im Vorhinein einigen, mit welcher Übertragungsgeschwindigkeit ([Baudrate](/de/embedded-programming/usart#baud-rate)) sie kommunizieren und es müssen zusätzliche Start- und Stoppbits übertragen werden. 14 14 15 15 :::note 16 16 Einige Dokumentationen verwenden noch die veralteten Begriffe, wie `Master` oder `Slave`. Aufgrund ihrer historischen Verbindung mit Rassismus werden diese Begriffe heutzutage durch neutralere Alternativen ersetzt. Folgende Tabelle zeigt die Änderungen diesbezüglich: ··· 28 28 29 29 ### Clock 30 30 31 - Genau wie der [Timer](#timer--counter) benötigt das SPI einen Prescaler, um den Systemtakt anzupassen. Mithilfe dieser Tabelle ([Datenblatt](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=141)) und diesen Registern kann man den Prescaler einstellen: 31 + Genau wie der [Timer](/de/embedded-programming/timer) benötigt das SPI einen Prescaler, um den Systemtakt anzupassen. Mithilfe dieser Tabelle ([Datenblatt](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=141)) und diesen Registern kann man den Prescaler einstellen: 32 32 33 33 | `SPI2X` | `SPR1` | `SPR0` | `SCK` Frequency | 34 34 | ------- | ------ | ------ | --------------------- | ··· 89 89 Der Prozess dieses Ablaufs ist in diesem Diagramm nochmal dargestellt: 90 90 91 91 <img 92 - src="/images/embedded_programming/spi/transfer_data.png" 93 - alt="Data Transfer" 94 - class="light-only" 92 + src="/images/embedded_programming/spi/transfer_data.png" 93 + alt="Data Transfer" 94 + class="light-only" 95 95 /> 96 96 <img 97 - src="/images/embedded_programming/spi/transfer_data_dark.png" 98 - alt="Data Transfer" 99 - class="dark-only" 97 + src="/images/embedded_programming/spi/transfer_data_dark.png" 98 + alt="Data Transfer" 99 + class="dark-only" 100 100 /> 101 101 102 102 Und anschließend werden die berechneten Daten vom Peripheral zum Controller gesendet: ··· 111 111 ``` 112 112 113 113 <img 114 - src="/images/embedded_programming/spi/transfer_data_2.png" 115 - alt="Data Transfer" 116 - class="light-only" 114 + src="/images/embedded_programming/spi/transfer_data_2.png" 115 + alt="Data Transfer" 116 + class="light-only" 117 117 /> 118 118 <img 119 - src="/images/embedded_programming/spi/transfer_data_2_dark.png" 120 - alt="Data Transfer" 121 - class="dark-only" 119 + src="/images/embedded_programming/spi/transfer_data_2_dark.png" 120 + alt="Data Transfer" 121 + class="dark-only" 122 122 /> 123 123 124 124 ## Code
+45 -45
starlight/src/content/docs/de/embedded-programming/timer.mdx
··· 4 4 5 5 Der Timer ist ein sehr nützliches Instrument in der hardwarenahen Programmierung und eignet sich besonders gut für zeitbasierte Vorgänge, wie zum Beispiel: 6 6 7 - - Delay (Programmverzögerung) um bestimmte Anzahl an Sekunden 8 - - regelmäßig ADC triggern 9 - - DC-Motor drehzahlgesteuert zu betreiben 7 + - Delay (Programmverzögerung) um bestimmte Anzahl an Sekunden 8 + - regelmäßig ADC triggern 9 + - DC-Motor drehzahlgesteuert zu betreiben 10 10 11 11 ## Theorie 12 12 13 13 Der ATmega 328p hat 3 verschiedene Timer: 14 14 15 - - TC0: 8-bit 16 - - TC1: 16-bit 17 - - TC2: 8-bit; async 15 + - TC0: 8-bit 16 + - TC1: 16-bit 17 + - TC2: 8-bit; async 18 18 19 19 :::note 20 20 Ersetzen Sie im gesamten Artikel das `n` immer mit der jeweiligen Nummer des Timers, welchen Sie gerade verwenden (TC0: n = 0; TC1: n = 1; ...). Im ATmega328P Datenblatt, ist TC0 [Kapitel 14](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=74), TC1 [Kapitel 15](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=89) und TC2 [Kapitel 17](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=116). ··· 162 162 163 163 Für den normalen Modus beim Timer können folgende Konfigurationen getroffen werden: 164 164 165 - - `WGMn0`, `WGMn1` und `WGMn2` (und `WGM13`) auf 0 setzen (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 165 + - `WGMn0`, `WGMn1` und `WGMn2` (und `WGM13`) auf 0 setzen (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 166 166 167 - ```c 168 - // Timer Modus auf Normal Mode setzen 169 - TCCRnA &= ~((1<<WGMn0) | (1<<WGMn1)); 170 - TCCRnB &= ~((1<<WGMn2)); 171 - ``` 167 + ```c 168 + // Timer Modus auf Normal Mode setzen 169 + TCCRnA &= ~((1<<WGMn0) | (1<<WGMn1)); 170 + TCCRnB &= ~((1<<WGMn2)); 171 + ``` 172 172 173 - - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 173 + - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 174 174 175 - ```c 176 - // Prescaler einstellen - Beispiel 1024 177 - TCCRnB |= (1<<CSn0) | (1<<CSn2); 178 - TCCRnB &= ~(1<<CSn1); 179 - ``` 175 + ```c 176 + // Prescaler einstellen - Beispiel 1024 177 + TCCRnB |= (1<<CSn0) | (1<<CSn2); 178 + TCCRnB &= ~(1<<CSn1); 179 + ``` 180 180 181 - Nutzen Sie [diese](#prescaler-1) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 181 + Nutzen Sie [diese](#prescaler) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 182 182 183 183 #### `TCNTn` vorladen 184 184 ··· 220 220 221 221 Für den CTC Modus beim Timer müssen/können folgende Konfigurationen getroffen werden: 222 222 223 - - `WGMnx` richtig setzen (TC0 / TC2: `WGMn1`; TC1: `WGM12` (und `WGM13`)) 224 - (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 223 + - `WGMnx` richtig setzen (TC0 / TC2: `WGMn1`; TC1: `WGM12` (und `WGM13`)) 224 + (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 225 225 226 - - `OCIEnx` auf 1 setzen (siehe [14.9.6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=88), [15.11.8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=112) oder [17.11.6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=132)) 226 + - `OCIEnx` auf 1 setzen (siehe [14.9.6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=88), [15.11.8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=112) oder [17.11.6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=132)) 227 227 228 - ```c 229 - // Interrupts aktivieren - Beispiel Compare Match A 230 - TIMSKn |= (1<<OCIEnA); 231 - ``` 228 + ```c 229 + // Interrupts aktivieren - Beispiel Compare Match A 230 + TIMSKn |= (1<<OCIEnA); 231 + ``` 232 232 233 - - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 233 + - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 234 234 235 - ```c 236 - // Prescaler einstellen - Beispiel 256 237 - TCCRnB |= (1<<CSn2); 238 - TCCRnB &= ~((1<<CSn0) | (1<<CSn1)); 239 - ``` 235 + ```c 236 + // Prescaler einstellen - Beispiel 256 237 + TCCRnB |= (1<<CSn2); 238 + TCCRnB &= ~((1<<CSn0) | (1<<CSn1)); 239 + ``` 240 240 241 - Nutzen Sie [diese](#prescaler-1) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 241 + Nutzen Sie [diese](#prescaler) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 242 242 243 243 :::tip[Aufgabe] 244 244 Erstellen Sie ein Programm, bei welchem eine ISR alle **vier Millisekunden** ausgeführt wird! Nutzen Sie dafür den Timer im CTC Mode! ··· 279 279 280 280 Für den PWM Modus beim Timer müssen/können folgende Konfigurationen getroffen werden: 281 281 282 - - `WGMnx` richtig setzen 283 - (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 282 + - `WGMnx` richtig setzen 283 + (siehe [Table 14-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=86), [Table 15-5](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=109) oder [Table 17-8](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=130)) 284 284 285 - - invertierenden / nicht-invertierenden Modus einstellen 285 + - invertierenden / nicht-invertierenden Modus einstellen 286 286 287 - - `COMnA0` und `COMnA1` (siehe [Table 14-3 und 14-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=84), [Table 15-3 und 15-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=108) oder [Table 17-3 und 17-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=128)) 287 + - `COMnA0` und `COMnA1` (siehe [Table 14-3 und 14-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=84), [Table 15-3 und 15-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=108) oder [Table 17-3 und 17-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=128)) 288 288 289 - - `COMnB0` und `COMnB1` (siehe [Table 14-6 und 14-7](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=85), [Table 15-3 und 15-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=108) oder [Table 17-6 und 17-7](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=129)) 289 + - `COMnB0` und `COMnB1` (siehe [Table 14-6 und 14-7](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=85), [Table 15-3 und 15-4](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=108) oder [Table 17-6 und 17-7](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=129)) 290 290 291 - - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 291 + - `CSn0`, `CSn1` und `CSn2` einstellen (siehe [Table 14-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=87), [Table 15-6](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=110) oder [Table 17-9](https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf#page=131)) 292 292 293 - ```c 294 - // Prescaler einstellen - Beispiel 64 295 - TCCRnB |= (1<<CSn0) | (1<<CSn1); 296 - TCCRnB &= ~(1<<CSn2); 297 - ``` 293 + ```c 294 + // Prescaler einstellen - Beispiel 64 295 + TCCRnB |= (1<<CSn0) | (1<<CSn1); 296 + TCCRnB &= ~(1<<CSn2); 297 + ``` 298 298 299 - Nutzen Sie [diese](#prescaler-1) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 299 + Nutzen Sie [diese](#prescaler) Tabelle, um herauszufinden, welcher Prescaler Wert in Ihrem Program am meisten Sinn macht. 300 300 301 301 :::tip[Aufgabe] 302 302 Erstellen Sie ein Programm, bei welchem eine ISR alle **vier Millisekunden** ausgeführt wird! Nutzen Sie dafür den Timer im CTC Mode!
+1 -1
starlight/src/content/docs/de/embedded-programming/usart.mdx
··· 66 66 67 67 ### Daten senden 68 68 69 - Um die Implementierung zu erleichtern, verwendet man [Pointer](#pointer). Dies ist die Methode für einzelne [ASCII-Zeichen](https://www.torsten-horn.de/techdocs/ascii.htm). 69 + Um die Implementierung zu erleichtern, verwendet man [Pointer](/de/embedded-programming/pointer). Dies ist die Methode für einzelne [ASCII-Zeichen](https://www.torsten-horn.de/techdocs/ascii.htm). 70 70 71 71 ```c 72 72 void write_char(char str) {
+1 -1
starlight/src/content/docs/de/imprint.md
··· 2 2 title: Impressum 3 3 template: splash 4 4 sidebar: 5 - hidden: true 5 + hidden: true 6 6 --- 7 7 8 8 Angaben gemäß § 5 E-Commerce-Gesetz (ECG)
+17 -6
starlight/src/content/docs/de/index.mdx
··· 24 24 25 25 <CardGrid stagger> 26 26 <Card title="Schnuppere ins Wissen!" icon="random"> 27 - Du interessierst sich für technisches Wissen von einer HTL? Entdecke das Mutanuq-Universum! 27 + Du interessierst sich für technisches Wissen von einer HTL? Entdecke das 28 + Mutanuq-Universum! 28 29 </Card> 29 30 <Card title="Seie ein Mitbegründer dieser Webseite" icon="add-document"> 30 - Schaue einmal bei <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> vorbei und erstelle einen Pull Request! 31 + Schaue einmal bei{" "} 32 + <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> vorbei und 33 + erstelle einen Pull Request! 31 34 </Card> 32 35 <Card title="Unterstütze unsere Arbeit" icon="rocket"> 33 - Ich würde mich riesig freuen, wenn du mich unterstützen würdest mittels <a href="https://www.paypal.com/donate/?hosted_button_id=WDQ5D2VQ6SWEC">PayPal</a>, <a href="https://www.patreon.com/trueberryless">Patreon</a> oder <a href="https://ko-fi.com/trueberryless">Ko-fi</a>. 36 + Ich würde mich riesig freuen, wenn du mich unterstützen würdest mittels{" "} 37 + <a href="https://www.paypal.com/donate/?hosted_button_id=WDQ5D2VQ6SWEC"> 38 + PayPal 39 + </a> 40 + , <a href="https://www.patreon.com/trueberryless">Patreon</a> oder{" "} 41 + <a href="https://ko-fi.com/trueberryless">Ko-fi</a>. 34 42 </Card> 35 43 <Card title="Vergib einen Stern" icon="star"> 36 - Gib dem Projekt auf <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> einen Stern! 44 + Gib dem Projekt auf{" "} 45 + <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> einen 46 + Stern! 37 47 </Card> 38 48 <Card title="Verbesser gefundene Fehler" icon="pencil"> 39 - Wenn dir irgendwelche inhaltlichen Fehler oder Rechtschreibfehler auffallen, klicke ganz unten auf `Seite bearbeiten`, um diese auszubessern! 49 + Wenn dir irgendwelche inhaltlichen Fehler oder Rechtschreibfehler auffallen, 50 + klicke ganz unten auf `Seite bearbeiten`, um diese auszubessern! 40 51 </Card> 41 52 </CardGrid> 42 53 ··· 54 65 55 66 --- 56 67 57 - [Impressum](/de/imprint) 68 + [Impressum](/de/imprint/)
+2 -2
starlight/src/content/docs/de/software-development/design-patterns/behavioral-design-patterns/command.md
··· 2 2 title: Command 3 3 --- 4 4 5 - Das Command Design Pattern ist auch als Action und Transaction Pattern bekannt. 5 + Das Command Entwurfsmuster ist auch als Action und Transaction Pattern bekannt. 6 6 7 7 ## Problem 8 8 ··· 36 36 37 37 public override void Undo() => Robot.MoveUp(); 38 38 } 39 - ``` 39 + ```
+4 -4
starlight/src/content/docs/de/software-development/design-patterns/creational-design-patterns/singleton.md
··· 4 4 5 5 ## Problem 6 6 7 - Das Singleton Design Patterns sorgt dafür, dass eine Klasse nur eine einzige Instanz haben kann. Außerdem kann auf diese eine Instanz global - im gesamten Programm - zugegriffen werden. 7 + Das Singleton Entwurfsmuster sorgt dafür, dass eine Klasse nur eine einzige Instanz haben kann. Außerdem kann auf diese eine Instanz global - im gesamten Programm - zugegriffen werden. 8 8 9 9 ## Lösung 10 10 ··· 14 14 15 15 ## Code 16 16 17 - Einfaches Singleton Design Pattern: 17 + Einfaches Singleton Entwurfsmuster: 18 18 19 19 ```csharp 20 20 public class Singleton ··· 27 27 } 28 28 ``` 29 29 30 - Threadsicheres Singleton Design Pattern mittels Double-Checked-Locking-Pattern: 30 + Threadsicheres Singleton Entwurfsmuster mittels Double-Checked-Locking-Pattern: 31 31 32 32 ```csharp 33 33 public class Singleton ··· 52 52 return _instance; 53 53 } 54 54 } 55 - ``` 55 + ```
+2 -14
starlight/src/content/docs/de/software-development/design-patterns/index.mdx
··· 1 1 --- 2 - title: Design Patterns 2 + title: Entwurfsmuster 3 3 --- 4 4 5 - In der Softwareentwicklung kommt es oft vor, dass ähnliche Problemstellungen gelöst werden müssen. Um bereits durchdachte Lösungen für diese Probleme effizienter umsetzen und entwickeln zu können, gibt es **Design Patterns**. 6 - 7 - :::note[Hinweis] 8 - Alle Design Patterns und Kategorien werden hier mit dem englisch Originalnamen genannt, um eine sprachliche Konsistenz zu schaffen. 9 - ::: 10 - 11 - import { LinkCard, CardGrid } from '@astrojs/starlight/components'; 12 - 13 - <CardGrid> 14 - <LinkCard title="Creational Design Patterns" href="/software-development/design-patterns/creational-design-patterns/" /> 15 - <LinkCard title="Structural Design Patterns" href="/software-development/design-patterns/structural-design-patterns/" /> 16 - <LinkCard title="Behavioral Design Patterns" href="/software-development/design-patterns/behavioral-design-patterns/" /> 17 - </CardGrid> 5 + In der Softwareentwicklung kommt es oft vor, dass ähnliche Problemstellungen gelöst werden müssen. Um bereits durchdachte Lösungen für diese Probleme effizienter umsetzen und entwickeln zu können, gibt es **Entwurfsmuster**.
+1 -1
starlight/src/content/docs/en/imprint.md
··· 2 2 title: Imprint 3 3 template: splash 4 4 sidebar: 5 - hidden: true 5 + hidden: true 6 6 --- 7 7 8 8 Information according to § 5 of the Austrian E-Commerce Act (ECG)
+16 -6
starlight/src/content/docs/en/index.mdx
··· 27 27 28 28 <CardGrid stagger> 29 29 <Card title="Sniff into the knowledge" icon="random"> 30 - You're interested in technical college knowledge? Explore the Mutanuq universe! 30 + You're interested in technical college knowledge? Explore the Mutanuq 31 + universe! 31 32 </Card> 32 33 <Card title="Contribute to the universe" icon="add-document"> 33 - Check out the project on <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> and create pull requests. 34 + Check out the project on{" "} 35 + <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a> and create 36 + pull requests. 34 37 </Card> 35 38 <Card title="Support my work" icon="rocket"> 36 - I would really appreciate if you support my work, either on <a href="https://www.paypal.com/donate/?hosted_button_id=WDQ5D2VQ6SWEC">PayPal</a>, <a href="https://www.patreon.com/trueberryless">Patreon</a> or <a href="https://ko-fi.com/trueberryless">Ko-fi</a>. 39 + I would really appreciate if you support my work, either on{" "} 40 + <a href="https://www.paypal.com/donate/?hosted_button_id=WDQ5D2VQ6SWEC"> 41 + PayPal 42 + </a> 43 + , <a href="https://www.patreon.com/trueberryless">Patreon</a> or{" "} 44 + <a href="https://ko-fi.com/trueberryless">Ko-fi</a>. 37 45 </Card> 38 46 <Card title="Star the project" icon="star"> 39 - Give the Mutanuq project a star on <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a>! 47 + Give the Mutanuq project a star on{" "} 48 + <a href="https://github.com/trueberryless-org/mutanuq">GitHub</a>! 40 49 </Card> 41 50 <Card title="Correct my mistakes" icon="pencil"> 42 - If you notice any errors in content or spelling mistakes, click on `Edit page` at the bottom to correct them! 51 + If you notice any errors in content or spelling mistakes, click on `Edit 52 + page` at the bottom to correct them! 43 53 </Card> 44 54 </CardGrid> 45 55 ··· 57 67 58 68 --- 59 69 60 - [Imprint](/en/imprint) 70 + [Imprint](/en/imprint/)