diff --git a/astro.config.mjs b/astro.config.mjs index 0557d36..2b64d90 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -14,11 +14,13 @@ import { transformerTitle } from "@rudeigerc/shiki-transformer-title"; import cloudflare from '@astrojs/cloudflare'; +import mdx from '@astrojs/mdx'; + // https://astro.build/config export default defineConfig({ site: "https://vexide.dev", trailingSlash: "always", - integrations: [sitemap(), svelte(), markdown()], + integrations: [sitemap(), svelte(), markdown(), mdx()], markdown: { rehypePlugins: [ diff --git a/package.json b/package.json index 15af742..9bec8e8 100644 --- a/package.json +++ b/package.json @@ -14,24 +14,32 @@ "dependencies": { "@astrojs/check": "^0.9.4", "@astrojs/cloudflare": "^12.2.3", + "@astrojs/mdx": "^4.3.8", "@astrojs/sitemap": "^3.2.1", "@astrojs/svelte": "^7.0.5", "@rudeigerc/shiki-transformer-title": "^0.1.0", "@shikijs/transformers": "^1.29.2", + "@types/hast": "^3.0.4", "astro": "^5.4.2", "flexsearch": "^0.7.43", "fuzzysort": "^2.0.4", + "hast": "^1.0.0", "hast-util-from-html": "^2.0.3", + "hast-util-select": "^6.0.4", + "hast-util-to-string": "^3.0.1", + "hastscript": "^9.0.1", "prettier": "^3.5.3", "prettier-plugin-astro": "^0.12.3", "prettier-plugin-svelte": "^3.3.3", + "rehype": "^13.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-github-alerts": "^3.0.0", "rehype-slug": "^6.0.0", "shaku-code-annotate-shiki": "^0.10.0", "shaku-code-annotate-shiki-transformer": "^0.2.4", "svelte": "^5.22.4", - "typescript": "^5.8.2" + "typescript": "^5.8.2", + "unist-util-visit": "^5.0.0" }, "devDependencies": { "@astropub/md": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 19e08b9..c6882b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@astrojs/cloudflare': specifier: ^12.2.3 version: 12.2.3(@types/node@22.10.5)(astro@5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0))(yaml@2.7.0) + '@astrojs/mdx': + specifier: ^4.3.8 + version: 4.3.8(astro@5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0)) '@astrojs/sitemap': specifier: ^3.2.1 version: 3.2.1 @@ -26,6 +29,9 @@ importers: '@shikijs/transformers': specifier: ^1.29.2 version: 1.29.2 + '@types/hast': + specifier: ^3.0.4 + version: 3.0.4 astro: specifier: ^5.4.2 version: 5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0) @@ -35,9 +41,21 @@ importers: fuzzysort: specifier: ^2.0.4 version: 2.0.4 + hast: + specifier: ^1.0.0 + version: 1.0.0 hast-util-from-html: specifier: ^2.0.3 version: 2.0.3 + hast-util-select: + specifier: ^6.0.4 + version: 6.0.4 + hast-util-to-string: + specifier: ^3.0.1 + version: 3.0.1 + hastscript: + specifier: ^9.0.1 + version: 9.0.1 prettier: specifier: ^3.5.3 version: 3.5.3 @@ -47,6 +65,9 @@ importers: prettier-plugin-svelte: specifier: ^3.3.3 version: 3.3.3(prettier@3.5.3)(svelte@5.22.4) + rehype: + specifier: ^13.0.2 + version: 13.0.2 rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -68,10 +89,13 @@ importers: typescript: specifier: ^5.8.2 version: 5.8.2 + unist-util-visit: + specifier: ^5.0.0 + version: 5.0.0 devDependencies: '@astropub/md': specifier: ^1.0.0 - version: 1.0.0(@astrojs/markdown-remark@6.2.0) + version: 1.0.0(@astrojs/markdown-remark@6.3.8) wrangler: specifier: ^3.113.0 version: 3.113.0(@cloudflare/workers-types@4.20250303.0) @@ -102,6 +126,9 @@ packages: '@astrojs/internal-helpers@0.6.0': resolution: {integrity: sha512-XgHIJDQaGlFnTr0sDp1PiJrtqsWzbHP2qkTU+JpQ8SnBewKP2IKOe/wqCkl0CyfyRXRu3TSWu4t/cpYMVfuBNA==} + '@astrojs/internal-helpers@0.7.4': + resolution: {integrity: sha512-lDA9MqE8WGi7T/t2BMi+EAXhs4Vcvr94Gqx3q15cFEz8oFZMO4/SFBqYr/UcmNlvW+35alowkVj+w9VhLvs5Cw==} + '@astrojs/language-server@2.15.4': resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} hasBin: true @@ -117,10 +144,23 @@ packages: '@astrojs/markdown-remark@6.2.0': resolution: {integrity: sha512-LUDjgd9p1yG0qTFSocaj3GOLmZs8Hsw/pNtvqzvNY58Acebxvb/46vDO/e/wxYgsKgIfWS+p+ZI5SfOjoVrbCg==} + '@astrojs/markdown-remark@6.3.8': + resolution: {integrity: sha512-uFNyFWadnULWK2cOw4n0hLKeu+xaVWeuECdP10cQ3K2fkybtTlhb7J7TcScdjmS8Yps7oje9S/ehYMfZrhrgCg==} + + '@astrojs/mdx@4.3.8': + resolution: {integrity: sha512-PXT0n2FfZAWEmQi4u4AZ0OPDDrDIF+aXPZGT5HCf52dex5EV3htMByeJUqYIoXdmazAFTASub0vRZLWBqJhJ9w==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + peerDependencies: + astro: ^5.0.0 + '@astrojs/prism@3.2.0': resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@astrojs/sitemap@3.2.1': resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} @@ -235,8 +275,8 @@ packages: '@emmetio/stream-reader@2.2.0': resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emnapi/runtime@1.7.0': + resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==} '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} @@ -660,6 +700,9 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -785,24 +828,42 @@ packages: '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} + '@shikijs/core@3.14.0': + resolution: {integrity: sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw==} + '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} + '@shikijs/engine-javascript@3.14.0': + resolution: {integrity: sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ==} + '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@3.14.0': + resolution: {integrity: sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug==} + '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/langs@3.14.0': + resolution: {integrity: sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg==} + '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/themes@3.14.0': + resolution: {integrity: sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA==} + '@shikijs/transformers@1.29.2': resolution: {integrity: sha512-NHQuA+gM7zGuxGWP9/Ub4vpbwrYCrho9nQCLcCPfOe3Yc7LOYwmSuhElI688oiqIXk9dlZwDiyAG9vPBTuPJMA==} '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@3.14.0': + resolution: {integrity: sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -832,6 +893,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -847,6 +911,9 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -900,6 +967,11 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} @@ -914,6 +986,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -962,6 +1039,10 @@ packages: as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + astro@5.4.2: resolution: {integrity: sha512-9Z3fAniIRJaK/o43OroZA1wHUIU+qHiOR9ovlVT/2XQaN25QRXScIsKWlFp0G/zrx5OuuoJ+QnaoHHW061u26A==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} @@ -977,9 +1058,15 @@ packages: base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} @@ -1008,6 +1095,9 @@ packages: character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -1028,6 +1118,9 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1062,6 +1155,9 @@ packages: crossws@0.3.4: resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + css-selector-parser@3.1.3: + resolution: {integrity: sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg==} + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -1117,6 +1213,10 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} + direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} @@ -1156,6 +1256,15 @@ packages: es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} engines: {node: '>=12'} @@ -1189,6 +1298,24 @@ packages: esrap@1.4.5: resolution: {integrity: sha512-CjNMjkBWWZeHn+VX+gS8YvFwJ5+NDhg8aWZBSFJPR8qQduDNjbJodA2WcwCm7uQa5Rjqj+nZvVmceg1RbHFB9g==} + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + estree-walker@0.6.1: resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} @@ -1298,6 +1425,9 @@ packages: hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} @@ -1319,12 +1449,21 @@ packages: hast-util-sanitize@4.1.0: resolution: {integrity: sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==} + hast-util-select@6.0.4: + resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-html@8.0.4: resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} hast-util-to-html@9.0.5: resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-to-parse5@7.1.0: resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} @@ -1343,6 +1482,10 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hast@1.0.0: + resolution: {integrity: sha512-vFUqlRV5C+xqP76Wwq2SrM0kipnmpxJm7OfvVXpB35Fp+Fn4MV+ozr+JZr5qFvyR1q/U+Foim2x+3P+x9S1PLA==} + deprecated: Renamed to rehype + hastscript@7.2.0: resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} @@ -1367,9 +1510,21 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -1377,6 +1532,9 @@ packages: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1394,6 +1552,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -1475,6 +1636,10 @@ packages: magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -1511,6 +1676,18 @@ packages: mdast-util-gfm@3.1.0: resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-phrasing@3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} @@ -1570,6 +1747,21 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-factory-destination@1.1.0: resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} @@ -1582,6 +1774,9 @@ packages: micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-space@1.1.0: resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} @@ -1642,6 +1837,9 @@ packages: micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-html-tag-name@1.2.0: resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} @@ -1747,15 +1945,24 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + oniguruma-to-es@2.3.0: resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -1780,6 +1987,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} @@ -1862,6 +2072,10 @@ packages: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -1882,15 +2096,35 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + regex-recursion@5.1.1: resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} regex@5.1.1: resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + rehype-autolink-headings@7.1.0: resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} @@ -1903,6 +2137,9 @@ packages: rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} @@ -1918,6 +2155,9 @@ packages: remark-html@15.0.2: resolution: {integrity: sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==} + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} @@ -1927,6 +2167,9 @@ packages: remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-smartypants@3.0.2: resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} engines: {node: '>=16.0.0'} @@ -2028,6 +2271,9 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + shiki@3.14.0: + resolution: {integrity: sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g==} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -2043,6 +2289,10 @@ packages: resolution: {integrity: sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==} engines: {node: '>= 18'} + smol-toml@1.4.2: + resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} + engines: {node: '>= 18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2051,6 +2301,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -2094,6 +2348,12 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + style-to-js@1.1.18: + resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==} + + style-to-object@1.0.11: + resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==} + suf-log@2.5.3: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} @@ -2192,6 +2452,9 @@ packages: unist-util-modify-children@4.0.0: resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position@4.0.4: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} @@ -2632,6 +2895,8 @@ snapshots: '@astrojs/internal-helpers@0.6.0': {} + '@astrojs/internal-helpers@0.7.4': {} + '@astrojs/language-server@2.15.4(prettier-plugin-astro@0.12.3)(prettier@3.5.3)(typescript@5.8.2)': dependencies: '@astrojs/compiler': 2.10.4 @@ -2684,10 +2949,59 @@ snapshots: transitivePeerDependencies: - supports-color + '@astrojs/markdown-remark@6.3.8': + dependencies: + '@astrojs/internal-helpers': 0.7.4 + '@astrojs/prism': 3.3.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.2.0 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.14.0 + smol-toml: 1.4.2 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@4.3.8(astro@5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0))': + dependencies: + '@astrojs/markdown-remark': 6.3.8 + '@mdx-js/mdx': 3.1.1 + acorn: 8.15.0 + astro: 5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0) + es-module-lexer: 1.7.0 + estree-util-visit: 2.0.0 + hast-util-to-html: 9.0.5 + picocolors: 1.1.1 + rehype-raw: 7.0.0 + remark-gfm: 4.0.1 + remark-smartypants: 3.0.2 + source-map: 0.7.6 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + '@astrojs/prism@3.2.0': dependencies: prismjs: 1.29.0 + '@astrojs/prism@3.3.0': + dependencies: + prismjs: 1.30.0 + '@astrojs/sitemap@3.2.1': dependencies: sitemap: 8.0.0 @@ -2734,9 +3048,9 @@ snapshots: dependencies: yaml: 2.7.0 - '@astropub/md@1.0.0(@astrojs/markdown-remark@6.2.0)': + '@astropub/md@1.0.0(@astrojs/markdown-remark@6.3.8)': dependencies: - '@astrojs/markdown-remark': 6.2.0 + '@astrojs/markdown-remark': 6.3.8 '@babel/helper-string-parser@7.25.9': {} @@ -2805,7 +3119,7 @@ snapshots: '@emmetio/stream-reader@2.2.0': {} - '@emnapi/runtime@1.3.1': + '@emnapi/runtime@1.7.0': dependencies: tslib: 2.8.1 optional: true @@ -3029,7 +3343,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.3.1 + '@emnapi/runtime': 1.7.0 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -3060,6 +3374,36 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.15.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3152,25 +3496,51 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 2.3.0 + '@shikijs/engine-javascript@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/langs@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/themes@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/transformers@1.29.2': dependencies: '@shikijs/core': 1.29.2 @@ -3181,6 +3551,11 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.14.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.1)': @@ -3215,6 +3590,10 @@ snapshots: dependencies: '@types/ms': 2.1.0 + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.6 + '@types/estree@1.0.6': {} '@types/hast@2.3.10': @@ -3233,6 +3612,8 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/mdx@2.0.13': {} + '@types/ms@2.1.0': {} '@types/nlcst@2.0.3': @@ -3308,12 +3689,18 @@ snapshots: '@vscode/l10n@0.0.18': {} + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-walk@8.3.2: {} acorn@8.14.0: {} acorn@8.14.1: {} + acorn@8.15.0: {} + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -3358,6 +3745,8 @@ snapshots: dependencies: printable-characters: 1.0.42 + astring@1.9.0: {} + astro@5.4.2(@types/node@22.10.5)(rollup@4.34.9)(typescript@5.8.2)(yaml@2.7.0): dependencies: '@astrojs/compiler': 2.10.4 @@ -3461,8 +3850,12 @@ snapshots: base-64@1.0.0: {} + bcp-47-match@2.0.3: {} + blake3-wasm@2.1.5: {} + boolbase@1.0.0: {} + boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -3490,6 +3883,8 @@ snapshots: character-entities@2.0.2: {} + character-reference-invalid@2.0.1: {} + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -3506,6 +3901,8 @@ snapshots: clsx@2.1.1: {} + collapse-white-space@2.1.0: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -3538,6 +3935,8 @@ snapshots: dependencies: uncrypto: 0.1.3 + css-selector-parser@3.1.3: {} + cssesc@3.0.0: {} data-uri-to-buffer@2.0.2: {} @@ -3575,6 +3974,8 @@ snapshots: diff@5.2.0: {} + direction@2.0.1: {} + dlv@1.1.3: {} dom-serializer@2.0.0: @@ -3612,6 +4013,22 @@ snapshots: es-module-lexer@1.6.0: {} + es-module-lexer@1.7.0: {} + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.15.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + esbuild@0.17.19: optionalDependencies: '@esbuild/android-arm': 0.17.19 @@ -3679,6 +4096,35 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + estree-walker@0.6.1: {} estree-walker@2.0.2: {} @@ -3801,6 +4247,10 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 + hast-util-has-property@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -3851,6 +4301,45 @@ snapshots: dependencies: '@types/hast': 2.3.10 + hast-util-select@6.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 3.1.3 + devlop: 1.1.0 + direction: 2.0.1 + hast-util-has-property: 3.0.0 + hast-util-to-string: 3.0.1 + hast-util-whitespace: 3.0.0 + nth-check: 2.1.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.18 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + hast-util-to-html@8.0.4: dependencies: '@types/hast': 2.3.10 @@ -3879,6 +4368,26 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.18 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + hast-util-to-parse5@7.1.0: dependencies: '@types/hast': 2.3.10 @@ -3915,6 +4424,8 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hast@1.0.0: {} + hastscript@7.2.0: dependencies: '@types/hast': 2.3.10 @@ -3948,13 +4459,26 @@ snapshots: import-meta-resolve@4.1.0: {} + import-meta-resolve@4.2.0: {} + + inline-style-parser@0.2.4: {} + iron-webcrypto@1.2.1: {} + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + is-arrayish@0.3.2: optional: true is-buffer@2.0.5: {} + is-decimal@2.0.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -3965,6 +4489,8 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hexadecimal@2.0.1: {} + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 @@ -4039,6 +4565,8 @@ snapshots: '@babel/types': 7.26.9 source-map-js: 1.2.1 + markdown-extensions@2.0.0: {} + markdown-table@3.0.4: {} mdast-util-definitions@5.1.2: @@ -4151,6 +4679,55 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@3.0.1: dependencies: '@types/mdast': 3.0.15 @@ -4315,6 +4892,57 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + micromark-factory-destination@1.1.0: dependencies: micromark-util-character: 1.2.0 @@ -4341,6 +4969,18 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + micromark-factory-space@1.1.0: dependencies: micromark-util-character: 1.2.0 @@ -4445,6 +5085,16 @@ snapshots: micromark-util-encode@2.0.1: {} + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.6 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + micromark-util-html-tag-name@1.2.0: {} micromark-util-html-tag-name@2.0.1: {} @@ -4596,6 +5246,10 @@ snapshots: normalize-path@3.0.0: {} + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + ofetch@1.4.1: dependencies: destr: 2.0.3 @@ -4604,12 +5258,20 @@ snapshots: ohash@2.0.11: {} + oniguruma-parser@0.12.1: {} + oniguruma-to-es@2.3.0: dependencies: emoji-regex-xs: 1.0.0 regex: 5.1.1 regex-recursion: 5.1.1 + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -4631,6 +5293,16 @@ snapshots: p-try@2.2.0: {} + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -4705,6 +5377,8 @@ snapshots: prismjs@1.29.0: {} + prismjs@1.30.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -4720,17 +5394,54 @@ snapshots: readdirp@4.1.2: {} + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.6 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + regex-recursion@5.1.1: dependencies: regex: 5.1.1 regex-utilities: 2.3.0 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + regex-utilities@2.3.0: {} regex@5.1.1: dependencies: regex-utilities: 2.3.0 + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 @@ -4758,6 +5469,14 @@ snapshots: hast-util-raw: 9.1.0 vfile: 6.0.3 + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 @@ -4798,6 +5517,13 @@ snapshots: mdast-util-to-hast: 12.3.0 unified: 10.1.2 + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + remark-parse@10.0.2: dependencies: '@types/mdast': 3.0.15 @@ -4823,6 +5549,14 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + remark-smartypants@3.0.2: dependencies: retext: 9.0.0 @@ -5020,6 +5754,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@3.14.0: + dependencies: + '@shikijs/core': 3.14.0 + '@shikijs/engine-javascript': 3.14.0 + '@shikijs/engine-oniguruma': 3.14.0 + '@shikijs/langs': 3.14.0 + '@shikijs/themes': 3.14.0 + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -5036,10 +5781,14 @@ snapshots: smol-toml@1.3.1: {} + smol-toml@1.4.2: {} + source-map-js@1.2.1: {} source-map@0.6.1: {} + source-map@0.7.6: {} + sourcemap-codec@1.4.8: {} space-separated-tokens@2.0.2: {} @@ -5082,6 +5831,14 @@ snapshots: strip-bom@3.0.0: {} + style-to-js@1.1.18: + dependencies: + style-to-object: 1.0.11 + + style-to-object@1.0.11: + dependencies: + inline-style-parser: 0.2.4 + suf-log@2.5.3: dependencies: s.color: 0.0.15 @@ -5202,6 +5959,10 @@ snapshots: '@types/unist': 3.0.3 array-iterate: 2.0.1 + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-position@4.0.4: dependencies: '@types/unist': 2.0.11 diff --git a/public/blog/abort-handler.png b/public/blog/abort-handler.png new file mode 100644 index 0000000..1c4abd3 Binary files /dev/null and b/public/blog/abort-handler.png differ diff --git a/public/blog/hologram.webp b/public/blog/hologram.webp new file mode 100644 index 0000000..7b953d5 Binary files /dev/null and b/public/blog/hologram.webp differ diff --git a/public/blog/libstd-pr.png b/public/blog/libstd-pr.png new file mode 100644 index 0000000..ca4bf9d Binary files /dev/null and b/public/blog/libstd-pr.png differ diff --git a/public/blog/memory-permission-error.png b/public/blog/memory-permission-error.png new file mode 100644 index 0000000..4675702 Binary files /dev/null and b/public/blog/memory-permission-error.png differ diff --git a/public/blog/native-compilation.png b/public/blog/native-compilation.png new file mode 100644 index 0000000..239a9be Binary files /dev/null and b/public/blog/native-compilation.png differ diff --git a/public/blog/stars.svg b/public/blog/stars.svg new file mode 100644 index 0000000..9cb0848 --- /dev/null +++ b/public/blog/stars.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/blog/tokio.png b/public/blog/tokio.png new file mode 100644 index 0000000..2cd8b0c Binary files /dev/null and b/public/blog/tokio.png differ diff --git a/public/blog/vex-sdk.svg b/public/blog/vex-sdk.svg new file mode 100644 index 0000000..997ef61 --- /dev/null +++ b/public/blog/vex-sdk.svg @@ -0,0 +1,2 @@ +PROSlibv5rts.a(Partner SDK)vexidevex-sdk(vexide's SDK)VEXcodelibv5rt.a(VEXcode SDK)VEXos (CPU1)PlatformSDKOperating SystemVEXos (CPU0) \ No newline at end of file diff --git a/public/docs/abort-anatomy.png b/public/docs/abort-anatomy.png new file mode 100644 index 0000000..a88417a Binary files /dev/null and b/public/docs/abort-anatomy.png differ diff --git a/public/docs/config.svg b/public/docs/config.svg new file mode 100644 index 0000000..a772597 --- /dev/null +++ b/public/docs/config.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/connect-brain.svg b/public/docs/connect-brain.svg new file mode 100644 index 0000000..cf1027c --- /dev/null +++ b/public/docs/connect-brain.svg @@ -0,0 +1,4 @@ + + +eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO2d6XdcdTAwMWG3XHUwMDE2wL/3r/Bxv1x1MDAxNlX7lfrNu/FcdTAwMDIx3lxur+/kXGYwXHUwMDA24oEhMFx1MDAxONs9+d/fXHUwMDE1rllmSXEwzTRcdTAwMGa3aeNZXHUwMDE4jfS7q67Enz9tbW1HT31/+7etbf+x4Vx1MDAwNZ3mwFx1MDAxYm//4o4/+INhJ+zhKT75fVx1MDAxOI5cdTAwMDaNyZXtKOpcdTAwMGZ/+/XX2Vx1MDAxZKRcdTAwMTF2X+7yXHUwMDAzv+v3oiFe91x1MDAxZvx9a+vPyX/xTKfp7pVcdTAwMTeP4V1ku5RXnopVvzn6XFxcdTAwMWVXJ7dOLnptzMBvRF6vXHUwMDE1+LNTj3hcXFx0RpRcdTAwMTZcdTAwMTakXHUwMDAwwZlV07NPrp2GXHUwMDExXHLKcCM0p1bI6dlxp1x1MDAxObXdXHUwMDE1ilx1MDAxMia0XHUwMDE0RnNcdTAwMGJCW5he0vY7rXaE1zAh3DM4N6CYNFTNXHUwMDFl8tKi37bo9MgwXHUwMDFhhPf+Xlx1MDAxOIRcdTAwMDPX7J+Z7/6ZNbruNe5bg3DUa06viVx1MDAwNl5v2PdcdTAwMDbYS7Pr7jpBcFx1MDAxOT1NPlx1MDAxZHtcdTAwMWF7dTv2jNvXV4hcdTAwMWTPulx1MDAwYlx1MDAxZtpq9/yhXHUwMDFiXHQ2PVx1MDAxYfa9RidyncXo7C1cXFx1MDAwYvvF5mTQ/jtr08Dr+kU3ar1RXHUwMDEwTFx1MDAwZnd6Td+NxXbteeFpveZfT3tcdTAwMWTx2XCKv458mbXd991cdTAwMDdcdTAwMWJKXHUwMDAxNNfT4zPoXGYkjpbC3lx1MDAwNEAmQVqwyphZo4b7SF40+dA7L1x1MDAxOPqzXHUwMDExcC07mKNy9oKjftN7uYUhNdZYQCzE7EODTu8+/vZB2LifPeWnubeKgf7poFu93bk+XHUwMDBib2v7u/XPXHUwMDE11mjbcHnQqSFaWy2ospxSXHUwMDE5XHUwMDAzXXGilVx1MDAxNVZcdOSc8Tk5eCVdcE00Z9JyzjhcdTAwMTUqhXOrXGJjikt8dVx0TMNcdTAwMDbzVMw9ujLmjFlNNY6YSVx1MDAwMVx1MDAxZFx1MDAwNM1cdTAwMDSda9Q/Wuhv4XzavFlDp3A+XHUwMDE2PTkodGvdevU+uohu6qOLq/70NVx1MDAxN1x1MDAwMPVcdTAwMDaDcLw9PfPlr7/9Q1J01Hr2RmcnXHUwMDBm5Yo6u1x1MDAxZdePd646l62lpVxidVx1MDAwNLFcdTAwMDbtXHUwMDA0RT1uueFcdTAwMGJSJLglRoKRkks0XHUwMDA3Kmku0NpIXHUwMDE0XHKUXHUwMDEwZaSxTCalKPuSjVx1MDAxNC1IXHUwMDExX12KcJC0tVxmZJpcdTAwMTRJkSVFXHUwMDAyLHCG459ja6E+3Vx1MDAxNW6j0eORguerk9Jj9FguQpLzXHUwMDE3YVxcYNxQIEJcdTAwMTh0eqRiel5XTFx1MDAxOJeacFxyXHUwMDE2T0rnXHUwMDE4zZnaV8g1MWBcdTAwMTnlRjFE2NJcdTAwMTSXiL5cdTAwMDFqn1xuJtg6oZb5gVosXHUwMDBiNc+CWnE0XGbY62lIXHUwMDFiloW0kqjTODXyeyM9PdxcdTAwMGY7cbsz+9vWjJfJL9O///eX1KtcdTAwMGKZTMZuT1x1MDAxOKPAXHUwMDFiRntht9uJ8L0+uDbF2z+MvEG0i0PY6bXi5/xeM+PM5K5cdTAwMWQnfW3fS1x1MDAwMIH3zZ+Li6lcdTAwMWbUw/FSaqA/vDu8eDwoPpfoc71R+DQu71xceEk14Fx1MDAwN0GnP/TjikBcdTAwMTJlgFx1MDAxOVx1MDAxMFxmu24utJkoXHUwMDAyXHUwMDAxXHUwMDA0TyltXHUwMDEwK4x8ZsrwVVx1MDAwZjAgxiitQTKJLiMqi1x1MDAxNJ8x+5qNZljQXGZyZc0grdVcdTAwMDDUplk7wzKDI9T2INFcdTAwMTX57qrhK5hcdTAwMDdVdrBrvP3Hg4+H509R9/6+2Y6SmOMzYoxbqlxiXHUwMDE4kJxpiv+DmEOn0Vx1MDAxOaOSo1x1MDAxNFCkcz66f4XcXHUwMDEwhVx1MDAxMSfey7XSlKUgzlx04J3oNaJcdTAwMTSB4XNRaFx1MDAxZVx1MDAxY7pcdTAwMWNcdTAwMTGuVybcuXJcdTAwMWFj21R/XHUwMDBlbFx1MDAxNuEuYMW7XGb93oSvx/hlIep+XHUwMDEycObdXHUwMDE0Lpzrh8FTazK6f6cgXHUwMDBlqpZcdTAwMGWfP1x1MDAxNuneXXPU6lx1MDAxY1x1MDAwZqOH4fNyXG5CXHUwMDEzpIpcdKUlXHUwMDAz4DFvXHUwMDE4ONHMWOxYl/RQMs1cdTAwMWLGUN0orqycOMxpiVx1MDAxM2KFUKhitGJcdTAwMWNcdTAwMDQ3+cqc5EhFwOoqXHUwMDAyXHUwMDFkXHUwMDFhTrGzU1VcdTAwMDSPXHUwMDFmnVx1MDAxYUHQXHUwMDAyjKI/qIrIhNT9XHUwMDE0knz+oFqi1b1cdTAwMTlcXF15tfC6Uu08lOWwdXR1vJSWYIpQbVx1MDAxNMZcdTAwMTZcdTAwMTRVxZyv9OJGXHUwMDAwUZZpIzi3mslkXoihlsHIWiiLLjClXFzOQPymmDmfSmH2Uu+qXHUwMDE0zMpKXHUwMDAxbZ9illx1MDAxOZ06byAzo2Ym0C1Ep+NH9Vx1MDAxY7KxjN3+Q2mBQl2VSqNK5/fPOzefXHUwMDFiXHUwMDBmjfrJIz1ZOkVstCVUurkkXHRMJFLEWlx1MDAxMODoKHBjrZjP36f7XHUwMDBiYlx1MDAwZcmpJlx1MDAwMFx1MDAxY1x1MDAxNFxmvLXmXHUwMDE4mIm3RMxGXHUwMDFi3+r/XHUwMDEzvWBXT1x1MDAxMEtLXHUwMDA1gq/SpllcZs2cZsHR5yg735Ygnjbv3zzNclx1MDAxNjX6hf2no5NxY3wvmuKgUlx1MDAxODeWsaTYXGbCwaKTZrBcdTAwMGZRmGLiw1x0OuKSUux9boRIzlPSpLxYorVz3lxmd1Nf+Yq/czShsrOyXHUwMDFk5Vx1MDAxNChqJC1cdTAwMTN+9MS7zpZcdTAwMTeMTrVg9LtPv6/HjC5cXFx1MDAxZIPxXHUwMDA3taG0NDixt8PBKWc9fjPgXHUwMDFmfn/usOXkXHUwMDFmXHKkRdsppXAjOGP9Vf6BXG6tqHCTcFx1MDAxYul/P+nfXd2LpjgkVKZbS0iWKrxKP1x1MDAwZY7Udj71v5H+f7f0i1Zw31x1MDAxZLRtq1VcdTAwMGL4kFx1MDAwN9ftXHUwMDA3OFhK+o0loClcdTAwMTdgpMZYOjbltJH+dUn/3uqJNTCM2YxcdTAwMTCaQfzoNIRcdTAwMDaBXrZkciP9P4r0s9CcXHUwMDFmetXz4rE81/buZDxcdTAwMTbFz8vHz1x1MDAwMIRcdTAwMDFcdTAwMWFcdTAwMTHBtMQxnFxy4euMXHUwMDFjxVx1MDAxMZZSa8PmZy2nXHUwMDE1uYZwl5aRXHUwMDEy/UmMwlMyaUxcdTAwMTDkjVx1MDAwM1x1MDAwNlx1MDAxOdxoXHUwMDA1Ml9qIUf59v2VQ2iNrEtI8f3dUMvsKTkpLWqGXFxcdTAwMTfkfj1cdTAwMTj/aomVXHUwMDE2roxQaWMldlx1MDAwZY87uZqAmlx1MDAxNJxbqzmjyVlnzlxiSoZcdTAwMDZGmbBcdTAwMThuyU2N1fJQXHUwMDFmrGzrXHUwMDAwXFymn6dWUjCrsstvcSzRfWFryVx1MDAxN8/VK363MqtsLmP3r9PgzVxy5F+LR4pLXHUwMDE00DtywsbIdVx1MDAwNSVMu0p4JVx1MDAxNJVcdTAwMWFthFx1MDAxMnNXtby+Q4BQjVx1MDAxNkQxrkGjrVJJVv6ZXG4vL6Tt6nP79uN1UN5cdTAwMWSclmjxcJ8ubW1Bok+ipGJWaqWkXZzellxcXHUwMDExXGboXHUwMDAwPW7FXHK1SWvLJKHcMik541x1MDAxNn1cdTAwMWKeZm6zr8mDuc2RXHUwMDE3fnjzXHUwMDFlK1x1MDAwM6SRXCK9ptnM5UtjqklbqjFcbmfftDLgXHUwMDFmMrjdm+ejy1I5pIUrSq/bwHvdtlxcXHUwMDFldS5cYoYobjJcdTAwMGJcdTAwMDSPx5ZcdTAwMGV11FxcxlKBzVx1MDAwNptSzrhB/Vx1MDAxZFE/Wp10QdGUYtSZnm7KNMLGSIW2Kdf1jKfF0qigjj/ejulJo948kydNqC1NuraGuDo4aYVSXHUwMDE0Y6lcdTAwMDTpXHUwMDAwXGIpQ4mnzKTULG1Qf0/Uj1dHXHUwMDFktMWY1ui0eVx1MDAxNSMyq5bcKjHJXHUwMDA15HmhysmjXHUwMDEwg7tewdxcdTAwMWVcdTAwMWJcYu765qI9XHUwMDFjLY86XGKiKUNxdzXqMlx1MDAwNrokSlx1MDAxYcWkwFx1MDAwNlx1MDAwM00pu9lw/o6cXHUwMDE3V+ZcdTAwMWNcdTAwMWRRV6SeOn1odHZYZS1Hk41cdTAwMTFzjjlcdTAwMWbu949ZkXZcdTAwMDbtaiM4O7pvfKxcZveX51xcXHUwMDAywTZpbq1bj5Gi0pVAXHKhgGv0/+yG9LWSfrK6RlfMZXZMaqm6MdnpcreGw1x1MDAwMIU8++lcdTAwMDdmfPNcdTAwMTRFOzflXHUwMDAyOytcXJZFezxMSYxloc5cZlx1MDAwMTappJRuXHUwMDA1YtxPl1x1MDAwNDBYXHUwMDE1XHUwMDE2r4GNSl8v6Ker53+5sK6WLW1aaH5DjTjnVFxiy5hSeeb84sNw7/PVh8aH+/vC4VkpPP7Q1P7SnCuriOFIu5hMm1x1MDAwYlx1MDAxNuN8k3r5J0k/W12lu3I1ZVxyS1PpNrv4SVOl3ULqPDsv3aujUS1omefmTflqp3zZqbSDN+w9XHUwMDAynFihXHUwMDE1XHUwMDA3XGZJ3aRHgvT5zFx1MDAwYkvO629Qf0/Uz1dGnVOlwOKftNRcdTAwMGKq7syAVFNgKCc2z1q9WIaH6snFXHT+a+ote2O7/vHyXHR1XGY4iVsqwyxcdTAwMDW33PbrXHT1XHLq60W9tDLqxtUgqtSSNkZVtp8upCtcdTAwMWLPwYKxr5D+9FCDQ7hccoblgVxyhlx1MDAwN+dcdTAwMTW4rV69YerIXHUwMDEw4fY+k1x1MDAxMlx1MDAxNMOfXHUwMDA10rkyhLul4yCAWq7FhvS1kl5e3VOXxpXc0dRcdTAwMDIum006XHUwMDE3THGtdZ5Jv3rwdm5rp7Zjrr2qOLquXHUwMDFlqHLlXHIzR5xIV9ku3Vx1MDAwNlx1MDAxNZSLXHUwMDA06Vx1MDAxMrilXHUwMDFjw3Jr51x1MDAxN/9tUF9cdTAwMDfqXHUwMDFmVnfVKWfAheapicbs+lxya6XEXHUwMDFicz11NK7pRv+xxMPjMtjyyFx1MDAxY9ee95ZcdTAwMGZKtVx1MDAwNYK+i1x1MDAwMomKXVx1MDAwYp5U6lYrpoQwnFx0xTakr5X0i3coXHUwMDA3QNQ5l+k7YtrsmSPh1oGrfKN+U+ydlTWP2tV+eFx1MDAxOFx1MDAxNHvN3fPC8nv5aYxKuaZcdTAwMThvXG5ONWXxXHUwMDFkMYFcdTAwMDB2XHUwMDAyd5tmuozrRquvl/XK6qwrQY1lXCK1XHUwMDA03SZ1/XT9XHR3+izfrvrZs3pcdTAwMWEgPU+N0i21ldPWXHUwMDEx/7R86Vx1MDAwYqpy4nYvUdLtWTnfXHUwMDE1r1pcdTAwMWTc9m+GSkW1StufYIP6O6J+uTLqgjLNqEytqrbZVdVMU4Fear6rvG5cdTAwMGVFL1x1MDAxNI2b4mP7usbOXHUwMDBmKqXDkXrD7Fx1MDAxMVx1MDAxMFx1MDAwMXLipUhcbiaOOlx1MDAxMGuQcU6dyOtNVn29pF+tTLqlXHUwMDAyXHJw+ppCa7N39Fx1MDAwNoVcdTAwMDRQIfOs1M+v20+1XHUwMDEzZfpwcnBqXHUwMDBmgvuotHv4hvkjSaRxNlx1MDAwZoHWyVx1MDAxZL1cdTAwMTfzL5t6xvWSfr0y6dIw9LhV+qKCr+TUXHUwMDE1aHDVXHUwMDA0eSZdXHUwMDFjXHUwMDA3NVmoPpWC4+s7b3f/tN64/PiG+SNGlEWB5lKhf1x1MDAxNyvzSuRfNqSvlfTVa9SVcG5oekzKUvYnnVx1MDAxNVx1MDAwNVx1MDAxOFx1MDAwMZorneeg9HPdnvp+tVBcdTAwMWLt7u3aT+2+qUPvXHLTR4Bq23IpMZRxpVx1MDAxM19V6pv8y3pRv32HXCL1yTI/mZppZIxlu+qcusx6vtV66b794XRn8KxPq/SuK2j9ubyTstI3bVdNXHUwMDA0mVx1MDAxOXCrrLRcdTAwMDW7mFF3u2rSyaRcdTAwMDJKgaRcXC610l+6bbdcZtpCt2pcdTAwMGJtotx8zU5cdTAwMDbW1WWxzl7sL5kybs+OXHUwMDE0qmX2XHUwMDE3J2hFaVx1MDAxZb43YXp4fUv9XHUwMDBiSVx1MDAxY2f3/1x1MDAxNPucf/Vy/53j+1xuXHUwMDE1n4q8paq34V5kg9bvj0spXHUwMDAxRlx0TFx1MDAxMtSKoqlcdTAwMTPxVdBAmJBcdTAwMWG1J5PGLLfT10ZcdTAwMDe8tunvdEBtZVx1MDAxZKBQkFx1MDAwMVx1MDAwM+xUXHUwMDFkkKxcZpp+eYpcdTAwMTZC0O8/W7zRXHUwMDAxr/e9g1x1MDAwZVx1MDAxOH66XHUwMDFj3dSHt6VBN/TOz4NrdVJL0Vx1MDAwMZnxnSFcdTAwMWEmrlx1MDAxMlXSxjJcdTAwMTmCWqKZsm5PIKmlSEtPK0mYS1x1MDAxMjHqlrXRmVc12zNTXHUwMDEwgVx1MDAwNsuARmRcdTAwMTdy3HnYXHUwMDFkIUeKwU9XXGaLSL1uj4m6mfGUbbPdyaRzMEtDXHUwMDBi9Omo+bZFXGZTXHUwMDExWthcdTAwMWbzXHUwMDE1sch/nI3AXHUwMDFjoXul8cen9kXzU7/crFRKXVr04fJccttjWko5wjdr8UqOc3prXHUwMDEy8rLwMi+iYjRaRVx1MDAwNWhcdTAwMWRcdTAwMDV2oonZTKaJoNRcdTAwMTimNdOgU7bHYcJcdTAwMTKMK1xmcKWMXHUwMDEzqpT96OeU80Y4XHUwMDE2hSNj2XKadFhlrTaQ3CXW9XD2XHUwMDE3MYGbjlbftFx1MDAxNeZCK1bnd4ajw9BRXHUwMDFi9nqowbeitr9VXHUwMDFmeJ3eXHUwMDFmvSjcelxuR4OtRtjtj1wif/BHbzREXHUwMDFitOVtXV/ubjW8+ryuv1x1MDAwYnvRZef5RVx1MDAwNSxcdTAwMWM99LqdwI2RWnjoTtBpue7abuBcdTAwMWL6g+35Tos6XHIvmF7Q7TSb849q4IdiXHUwMDAz/UFxXHUwMDE5+1x1MDAxNFx1MDAwZTqtTs9cdTAwMGKusl50K/6eW195TW9cdTAwMTSFXHUwMDE1f/jyotFg5M/3uX88+9ZcdTAwMDf+4lx1MDAwZTjdM2Fw2+v3LyNcdTAwMWO1qSO2/dDxx7tJifr5bvLj9NdEwThp8if+25efvvxcdTAwMGZrLSrCIn0=Connect the brainto your computerusing a USB cable \ No newline at end of file diff --git a/public/docs/data-abort.png b/public/docs/data-abort.png new file mode 100644 index 0000000..1c4abd3 Binary files /dev/null and b/public/docs/data-abort.png differ diff --git a/public/docs/distance-sensor.svg b/public/docs/distance-sensor.svg new file mode 100644 index 0000000..485a5a7 --- /dev/null +++ b/public/docs/distance-sensor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/ferris-error.svg b/public/docs/ferris-error.svg new file mode 100644 index 0000000..b50b748 --- /dev/null +++ b/public/docs/ferris-error.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/imu-factory-calibration.png b/public/docs/imu-factory-calibration.png new file mode 100644 index 0000000..23fbf86 Binary files /dev/null and b/public/docs/imu-factory-calibration.png differ diff --git a/public/docs/imu-frame-of-reference.svg b/public/docs/imu-frame-of-reference.svg new file mode 100644 index 0000000..1d2e1f6 --- /dev/null +++ b/public/docs/imu-frame-of-reference.svg @@ -0,0 +1,2 @@ ++Z (Yaw)+Y (Pitch)+X (Roll)Gravity(+9.8m/s onthe Z-axis)2 \ No newline at end of file diff --git a/public/docs/imu-good-bad-mount.svg b/public/docs/imu-good-bad-mount.svg new file mode 100644 index 0000000..8a4d7b5 --- /dev/null +++ b/public/docs/imu-good-bad-mount.svg @@ -0,0 +1,2 @@ +GoodBad \ No newline at end of file diff --git a/public/docs/imu-heading-rotation.svg b/public/docs/imu-heading-rotation.svg new file mode 100644 index 0000000..a7a22c9 --- /dev/null +++ b/public/docs/imu-heading-rotation.svg @@ -0,0 +1,2 @@ +Heading: 0°Rotation: 0°Heading: 20°Rotation: 20°Heading: 340°Rotation: -20° \ No newline at end of file diff --git a/public/docs/imu-orientations.png b/public/docs/imu-orientations.png new file mode 100644 index 0000000..385e2c3 Binary files /dev/null and b/public/docs/imu-orientations.png differ diff --git a/public/docs/imu-pitch.svg b/public/docs/imu-pitch.svg new file mode 100644 index 0000000..61e1120 --- /dev/null +++ b/public/docs/imu-pitch.svg @@ -0,0 +1,2 @@ +pitch = 22 degrees \ No newline at end of file diff --git a/public/docs/imu-softmount.svg b/public/docs/imu-softmount.svg new file mode 100644 index 0000000..0fbe930 --- /dev/null +++ b/public/docs/imu-softmount.svg @@ -0,0 +1,2 @@ +IMURubber, MeshMetal \ No newline at end of file diff --git a/public/docs/inertial-sensor.svg b/public/docs/inertial-sensor.svg new file mode 100644 index 0000000..36053b0 --- /dev/null +++ b/public/docs/inertial-sensor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/motors.svg b/public/docs/motors.svg index d5405d7..3d703fc 100644 --- a/public/docs/motors.svg +++ b/public/docs/motors.svg @@ -1,10 +1,2 @@ - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/docs/optical-sensor.svg b/public/docs/optical-sensor.svg new file mode 100644 index 0000000..ed8a077 --- /dev/null +++ b/public/docs/optical-sensor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/panic-anatomy.png b/public/docs/panic-anatomy.png new file mode 100644 index 0000000..4562c9a Binary files /dev/null and b/public/docs/panic-anatomy.png differ diff --git a/public/docs/panic.png b/public/docs/panic.png new file mode 100644 index 0000000..d67f770 Binary files /dev/null and b/public/docs/panic.png differ diff --git a/public/docs/rotation-sensor.svg b/public/docs/rotation-sensor.svg new file mode 100644 index 0000000..18f2363 --- /dev/null +++ b/public/docs/rotation-sensor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/public/docs/smart-devices.svg b/public/docs/smart-devices.svg index 26d2765..5e4b90e 100644 --- a/public/docs/smart-devices.svg +++ b/public/docs/smart-devices.svg @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/docs/template-project.png b/public/docs/template-project.png new file mode 100644 index 0000000..e94541f Binary files /dev/null and b/public/docs/template-project.png differ diff --git a/public/docs/terminal-demo.mp4 b/public/docs/terminal-demo.mp4 index bfd5d55..65360f8 100644 Binary files a/public/docs/terminal-demo.mp4 and b/public/docs/terminal-demo.mp4 differ diff --git a/public/docs/upload-demo.mp4 b/public/docs/upload-demo.mp4 index 23bbacc..abd5397 100644 Binary files a/public/docs/upload-demo.mp4 and b/public/docs/upload-demo.mp4 differ diff --git a/public/images/thumbnails/rotated_grid.webp b/public/images/thumbnails/rotated_grid.webp deleted file mode 100644 index 00ab970..0000000 Binary files a/public/images/thumbnails/rotated_grid.webp and /dev/null differ diff --git a/public/images/thumbnails/twilight.png b/public/images/thumbnails/twilight.png new file mode 100644 index 0000000..08db633 Binary files /dev/null and b/public/images/thumbnails/twilight.png differ diff --git a/src/components/BlogCard.svelte b/src/components/BlogCard.svelte index 1a9513d..2eedc58 100644 --- a/src/components/BlogCard.svelte +++ b/src/components/BlogCard.svelte @@ -4,7 +4,7 @@ interface Props { title: string; description: string; - author: string; + author: { name?: string, github: string } | string; date: Date; url: string; thumbnail?: string | undefined; @@ -22,6 +22,9 @@ thumbnailAlt = undefined, style = "", }: Props = $props(); + + const authorGithub = ((author as any)?.github) ?? (author as string); + const authorName = ((author as any)?.name) ?? authorGithub;
@@ -35,13 +38,13 @@
- Author Profile + Author Profile - {author} • {date.toLocaleDateString("en-US", { timeZone: 'UTC' })} + {authorName} • {date.toLocaleDateString("en-US", { timeZone: 'UTC' })} - - )) - } - - -
- -
-
-
-

{currentPage.data.title}

- - Edit this page on GitHub - - - - -
-
- - - { - (prevPage || nextPage) && ( - - ) - } - -
-
+ + + vexide Logo + Docs + Tutorials + + API + + + Examples + + + + { + Object.entries(DOCS_SIDEBAR).map(([category, entries]) => ( + <> + {category} +
    + {entries.map(async (entry) => { + const page = await getEntry("docs", entry)!; + + return ( +
  • + + {page.data.title} + +
  • + ); + })} +
+ + )) + } +
+
+
+ +
+
+
+ {currentCategory} > { + currentPage.data.title + } +

{currentPage.data.title}

+ + { + currentPage.data.links && ( + + ) + } +
+
+ + + { + (prevPage || nextPage) && ( + + ) + } + +
+
diff --git a/src/pages/blog/index.astro b/src/pages/blog/index.astro index 52b1b9b..68f8a1c 100644 --- a/src/pages/blog/index.astro +++ b/src/pages/blog/index.astro @@ -9,73 +9,92 @@ const blogPosts = await getCollection("blog", ({ data }) => !data?.draft); --- - -

Blog

- - new Date(b.data.date).getTime() - new Date(a.data.date).getTime()) - .map((post, n) => { - return { - url: `/blog/posts/${post.slug}/`, - title: post.data.title, - description: post.data.description, - author: post.data.author, - date: new Date(post.data.date), - thumbnail: post.data.thumbnail?.url, - thumbnailAlt: post.data.thumbnail?.alt, - tag: post.data.tags[0], - }; - })} - /> -
-
+ +

+ vexide Logovexide blog +

+ + + new Date(b.data.date).getTime() - + new Date(a.data.date).getTime(), + ) + .map((post, n) => { + return { + url: `/blog/posts/${post.slug}/`, + title: post.data.title, + description: post.data.description, + author: post.data.author, + date: new Date(post.data.date), + thumbnail: post.data.thumbnail?.url, + thumbnailAlt: post.data.thumbnail?.alt, + tag: post.data.tags[0], + }; + })} + /> +
+
diff --git a/src/pages/docs/search.astro b/src/pages/docs/search.astro index 6265619..ea86e3e 100644 --- a/src/pages/docs/search.astro +++ b/src/pages/docs/search.astro @@ -15,7 +15,7 @@ const resultCategories = Object.keys(results); .replace(/^[\s]*[-*+]\s+/gm, "") // unordered list .replace(/^[\s]*\d+\.\s+/gm, ""); // ordered list -const pages: SearchResult[] = (await getCollection("docs")).map((page) => ({ - title: page.data.title, - category: page.data.category, - excerpt: page.body, - slug: page.slug, -})); +const pages: SearchResult[] = await Promise.all( + Object.entries(DOCS_SIDEBAR).flatMap(([category, ids]) => + ids.map(async (id) => { + const page = await getEntry("docs", id)!; + + return { + title: page.data.title, + category, + excerpt: page.body, + slug: page.slug, + }; + }) + ) +); const index = new FlexSearch.Document({ tokenize: "forward",