diff --git a/README.md b/README.md
index dfa2df4..ca22f9d 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,23 @@
# MoveToLinux
-Move to Linux is an informational website project which allows its user to interactively
+Move to Linux is an informational website project which allows its user to interactively
learn more about Linux.
## Dependencies
This project uses Astro, Tailwind CSS, and Breeze icons.
+## Images
+
+Images, excluding logos, are mostly captured from VMs in this project. You are
+free to contribute better images if they can reflect real hardware better.
+
+Anaconda WebUI compress icon (`./src/assets/icons/fa-compress-arrows-alt.svg`)
+sourced from Patternfly Icons.
+
## License
This project is licensed under MIT License.
+
+Logos of other projects (such as Linux Distributions, located in `./public/logos`)
+belong to their respective owner.
diff --git a/astro.config.mjs b/astro.config.mjs
index 29227a6..738d887 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -1,30 +1,40 @@
// @ts-check
-import { defineConfig } from 'astro/config';
+import { defineConfig, envField } from 'astro/config';
import tailwindcss from '@tailwindcss/vite';
import { fileURLToPath } from 'node:url';
import solidJs from "@astrojs/solid-js";
+import mdx from "@astrojs/mdx";
+
// https://astro.build/config
export default defineConfig({
- i18n: {
- locales: ["en", "th"],
- defaultLocale: "en",
- routing: {
- prefixDefaultLocale: true,
- redirectToDefaultLocale: false
- }
- },
+ i18n: {
+ locales: ["en", "th"],
+ defaultLocale: "en",
+ routing: {
+ prefixDefaultLocale: true,
+ redirectToDefaultLocale: false
+ }
+ },
- vite: {
- plugins: [tailwindcss()],
- resolve: {
- alias: {
- "@": fileURLToPath(new URL("./src", import.meta.url))
- }
- }
- },
+ env: {
+ schema: {
+ // Example value: https://movetolinux.example.com
+ // If unset, code will use Astro.url.host instead, which is most likely "http://localhost:4321"
+ ORIGIN: envField.string({ context: "server", access: "public", optional: true })
+ }
+ },
- integrations: [solidJs()]
+ vite: {
+ plugins: [tailwindcss()],
+ resolve: {
+ alias: {
+ "@": fileURLToPath(new URL("./src", import.meta.url))
+ }
+ }
+ },
+
+ integrations: [solidJs(), mdx()]
});
\ No newline at end of file
diff --git a/package.json b/package.json
index 27651e9..bc7434b 100644
--- a/package.json
+++ b/package.json
@@ -9,14 +9,19 @@
"astro": "astro"
},
"dependencies": {
+ "@astrojs/mdx": "^4.3.5",
"@astrojs/solid-js": "^5.1.1",
"@tailwindcss/vite": "^4.1.13",
"astro": "^5.13.7",
+ "party-js": "^2.2.0",
+ "qrcode-generator": "^2.0.4",
+ "sharp": "^0.34.3",
"solid-js": "^1.9.9",
"tailwindcss": "^4.1.13"
},
"packageManager": "pnpm@10.15.1+sha512.34e538c329b5553014ca8e8f4535997f96180a1d0f614339357449935350d924e22f8614682191264ec33d1462ac21561aff97f6bb18065351c162c7e8f6de67",
"devDependencies": {
- "@types/node": "^24.3.1"
+ "@types/node": "^24.3.1",
+ "wrangler": "^4.37.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ebea1e8..83089e3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,9 @@ importers:
.:
dependencies:
+ '@astrojs/mdx':
+ specifier: ^4.3.5
+ version: 4.3.5(astro@5.13.7(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.50.1)(typescript@5.9.2))
'@astrojs/solid-js':
specifier: ^5.1.1
version: 5.1.1(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(solid-js@1.9.9)
@@ -17,6 +20,15 @@ importers:
astro:
specifier: ^5.13.7
version: 5.13.7(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.50.1)(typescript@5.9.2)
+ party-js:
+ specifier: ^2.2.0
+ version: 2.2.0
+ qrcode-generator:
+ specifier: ^2.0.4
+ version: 2.0.4
+ sharp:
+ specifier: ^0.34.3
+ version: 0.34.3
solid-js:
specifier: ^1.9.9
version: 1.9.9
@@ -27,6 +39,9 @@ importers:
'@types/node':
specifier: ^24.3.1
version: 24.3.1
+ wrangler:
+ specifier: ^4.37.0
+ version: 4.37.0
packages:
@@ -39,6 +54,12 @@ packages:
'@astrojs/markdown-remark@6.3.6':
resolution: {integrity: sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug==}
+ '@astrojs/mdx@4.3.5':
+ resolution: {integrity: sha512-YB3Hhsvl1BxyY0ARe1OrnVzLNKDPXAz9epYvmL+MQ8A85duSsSLQaO3GHB6/qZJKNoLmP6PptOtCONCKkbhPeQ==}
+ engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ peerDependencies:
+ astro: ^5.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}
@@ -141,129 +162,302 @@ packages:
'@capsizecss/unpack@2.4.0':
resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==}
+ '@cloudflare/kv-asset-handler@0.4.0':
+ resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
+ engines: {node: '>=18.0.0'}
+
+ '@cloudflare/unenv-preset@2.7.3':
+ resolution: {integrity: sha512-tsQQagBKjvpd9baa6nWVIv399ejiqcrUBBW6SZx6Z22+ymm+Odv5+cFimyuCsD/fC1fQTwfRmwXBNpzvHSeGCw==}
+ peerDependencies:
+ unenv: 2.0.0-rc.21
+ workerd: ^1.20250828.1
+ peerDependenciesMeta:
+ workerd:
+ optional: true
+
+ '@cloudflare/workerd-darwin-64@1.20250906.0':
+ resolution: {integrity: sha512-E+X/YYH9BmX0ew2j/mAWFif2z05NMNuhCTlNYEGLkqMe99K15UewBqajL9pMcMUKxylnlrEoK3VNxl33DkbnPA==}
+ engines: {node: '>=16'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@cloudflare/workerd-darwin-arm64@1.20250906.0':
+ resolution: {integrity: sha512-X5apsZ1SFW4FYTM19ISHf8005FJMPfrcf4U5rO0tdj+TeJgQgXuZ57IG0WeW7SpLVeBo8hM6WC8CovZh41AfnA==}
+ engines: {node: '>=16'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@cloudflare/workerd-linux-64@1.20250906.0':
+ resolution: {integrity: sha512-rlKzWgsLnlQ5Nt9W69YBJKcmTmZbOGu0edUsenXPmc6wzULUxoQpi7ZE9k3TfTonJx4WoQsQlzCUamRYFsX+0Q==}
+ engines: {node: '>=16'}
+ cpu: [x64]
+ os: [linux]
+
+ '@cloudflare/workerd-linux-arm64@1.20250906.0':
+ resolution: {integrity: sha512-DdedhiQ+SeLzpg7BpcLrIPEZ33QKioJQ1wvL4X7nuLzEB9rWzS37NNNahQzc1+44rhG4fyiHbXBPOeox4B9XVA==}
+ engines: {node: '>=16'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@cloudflare/workerd-windows-64@1.20250906.0':
+ resolution: {integrity: sha512-Q8Qjfs8jGVILnZL6vUpQ90q/8MTCYaGR3d1LGxZMBqte8Vr7xF3KFHPEy7tFs0j0mMjnqCYzlofmPNY+9ZaDRg==}
+ engines: {node: '>=16'}
+ cpu: [x64]
+ os: [win32]
+
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
'@emnapi/runtime@1.5.0':
resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+ '@esbuild/aix-ppc64@0.25.4':
+ resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [aix]
+
'@esbuild/aix-ppc64@0.25.9':
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
+ '@esbuild/android-arm64@0.25.4':
+ resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [android]
+
'@esbuild/android-arm64@0.25.9':
resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
+ '@esbuild/android-arm@0.25.4':
+ resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [android]
+
'@esbuild/android-arm@0.25.9':
resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
+ '@esbuild/android-x64@0.25.4':
+ resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [android]
+
'@esbuild/android-x64@0.25.9':
resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
+ '@esbuild/darwin-arm64@0.25.4':
+ resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [darwin]
+
'@esbuild/darwin-arm64@0.25.9':
resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
+ '@esbuild/darwin-x64@0.25.4':
+ resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [darwin]
+
'@esbuild/darwin-x64@0.25.9':
resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
+ '@esbuild/freebsd-arm64@0.25.4':
+ resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [freebsd]
+
'@esbuild/freebsd-arm64@0.25.9':
resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
+ '@esbuild/freebsd-x64@0.25.4':
+ resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [freebsd]
+
'@esbuild/freebsd-x64@0.25.9':
resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
+ '@esbuild/linux-arm64@0.25.4':
+ resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [linux]
+
'@esbuild/linux-arm64@0.25.9':
resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
+ '@esbuild/linux-arm@0.25.4':
+ resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==}
+ engines: {node: '>=18'}
+ cpu: [arm]
+ os: [linux]
+
'@esbuild/linux-arm@0.25.9':
resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
+ '@esbuild/linux-ia32@0.25.4':
+ resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [linux]
+
'@esbuild/linux-ia32@0.25.9':
resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
+ '@esbuild/linux-loong64@0.25.4':
+ resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==}
+ engines: {node: '>=18'}
+ cpu: [loong64]
+ os: [linux]
+
'@esbuild/linux-loong64@0.25.9':
resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
+ '@esbuild/linux-mips64el@0.25.4':
+ resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==}
+ engines: {node: '>=18'}
+ cpu: [mips64el]
+ os: [linux]
+
'@esbuild/linux-mips64el@0.25.9':
resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
+ '@esbuild/linux-ppc64@0.25.4':
+ resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==}
+ engines: {node: '>=18'}
+ cpu: [ppc64]
+ os: [linux]
+
'@esbuild/linux-ppc64@0.25.9':
resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
+ '@esbuild/linux-riscv64@0.25.4':
+ resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==}
+ engines: {node: '>=18'}
+ cpu: [riscv64]
+ os: [linux]
+
'@esbuild/linux-riscv64@0.25.9':
resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
+ '@esbuild/linux-s390x@0.25.4':
+ resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==}
+ engines: {node: '>=18'}
+ cpu: [s390x]
+ os: [linux]
+
'@esbuild/linux-s390x@0.25.9':
resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
+ '@esbuild/linux-x64@0.25.4':
+ resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [linux]
+
'@esbuild/linux-x64@0.25.9':
resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
+ '@esbuild/netbsd-arm64@0.25.4':
+ resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [netbsd]
+
'@esbuild/netbsd-arm64@0.25.9':
resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
+ '@esbuild/netbsd-x64@0.25.4':
+ resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [netbsd]
+
'@esbuild/netbsd-x64@0.25.9':
resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
+ '@esbuild/openbsd-arm64@0.25.4':
+ resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
'@esbuild/openbsd-arm64@0.25.9':
resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
+ '@esbuild/openbsd-x64@0.25.4':
+ resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [openbsd]
+
'@esbuild/openbsd-x64@0.25.9':
resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
engines: {node: '>=18'}
@@ -276,57 +470,113 @@ packages:
cpu: [arm64]
os: [openharmony]
+ '@esbuild/sunos-x64@0.25.4':
+ resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [sunos]
+
'@esbuild/sunos-x64@0.25.9':
resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
+ '@esbuild/win32-arm64@0.25.4':
+ resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [win32]
+
'@esbuild/win32-arm64@0.25.9':
resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
+ '@esbuild/win32-ia32@0.25.4':
+ resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==}
+ engines: {node: '>=18'}
+ cpu: [ia32]
+ os: [win32]
+
'@esbuild/win32-ia32@0.25.9':
resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
+ '@esbuild/win32-x64@0.25.4':
+ resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==}
+ engines: {node: '>=18'}
+ cpu: [x64]
+ os: [win32]
+
'@esbuild/win32-x64@0.25.9':
resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
+ '@img/sharp-darwin-arm64@0.33.5':
+ resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [darwin]
+
'@img/sharp-darwin-arm64@0.34.3':
resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [darwin]
+ '@img/sharp-darwin-x64@0.33.5':
+ resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [darwin]
+
'@img/sharp-darwin-x64@0.34.3':
resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [darwin]
+ '@img/sharp-libvips-darwin-arm64@1.0.4':
+ resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
+ cpu: [arm64]
+ os: [darwin]
+
'@img/sharp-libvips-darwin-arm64@1.2.0':
resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==}
cpu: [arm64]
os: [darwin]
+ '@img/sharp-libvips-darwin-x64@1.0.4':
+ resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
+ cpu: [x64]
+ os: [darwin]
+
'@img/sharp-libvips-darwin-x64@1.2.0':
resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==}
cpu: [x64]
os: [darwin]
+ '@img/sharp-libvips-linux-arm64@1.0.4':
+ resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
+ cpu: [arm64]
+ os: [linux]
+
'@img/sharp-libvips-linux-arm64@1.2.0':
resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==}
cpu: [arm64]
os: [linux]
+ '@img/sharp-libvips-linux-arm@1.0.5':
+ resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
+ cpu: [arm]
+ os: [linux]
+
'@img/sharp-libvips-linux-arm@1.2.0':
resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==}
cpu: [arm]
@@ -337,32 +587,64 @@ packages:
cpu: [ppc64]
os: [linux]
+ '@img/sharp-libvips-linux-s390x@1.0.4':
+ resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
+ cpu: [s390x]
+ os: [linux]
+
'@img/sharp-libvips-linux-s390x@1.2.0':
resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==}
cpu: [s390x]
os: [linux]
+ '@img/sharp-libvips-linux-x64@1.0.4':
+ resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
+ cpu: [x64]
+ os: [linux]
+
'@img/sharp-libvips-linux-x64@1.2.0':
resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==}
cpu: [x64]
os: [linux]
+ '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
+ resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
+ cpu: [arm64]
+ os: [linux]
+
'@img/sharp-libvips-linuxmusl-arm64@1.2.0':
resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==}
cpu: [arm64]
os: [linux]
+ '@img/sharp-libvips-linuxmusl-x64@1.0.4':
+ resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
+ cpu: [x64]
+ os: [linux]
+
'@img/sharp-libvips-linuxmusl-x64@1.2.0':
resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==}
cpu: [x64]
os: [linux]
+ '@img/sharp-linux-arm64@0.33.5':
+ resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
'@img/sharp-linux-arm64@0.34.3':
resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ '@img/sharp-linux-arm@0.33.5':
+ resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm]
+ os: [linux]
+
'@img/sharp-linux-arm@0.34.3':
resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -375,30 +657,59 @@ packages:
cpu: [ppc64]
os: [linux]
+ '@img/sharp-linux-s390x@0.33.5':
+ resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [s390x]
+ os: [linux]
+
'@img/sharp-linux-s390x@0.34.3':
resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
+ '@img/sharp-linux-x64@0.33.5':
+ resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
'@img/sharp-linux-x64@0.34.3':
resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ '@img/sharp-linuxmusl-arm64@0.33.5':
+ resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
'@img/sharp-linuxmusl-arm64@0.34.3':
resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
+ '@img/sharp-linuxmusl-x64@0.33.5':
+ resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
'@img/sharp-linuxmusl-x64@0.34.3':
resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
+ '@img/sharp-wasm32@0.33.5':
+ resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [wasm32]
+
'@img/sharp-wasm32@0.34.3':
resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -410,12 +721,24 @@ packages:
cpu: [arm64]
os: [win32]
+ '@img/sharp-win32-ia32@0.33.5':
+ resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ia32]
+ os: [win32]
+
'@img/sharp-win32-ia32@0.34.3':
resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ia32]
os: [win32]
+ '@img/sharp-win32-x64@0.33.5':
+ resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [win32]
+
'@img/sharp-win32-x64@0.34.3':
resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -442,9 +765,24 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@mdx-js/mdx@3.1.1':
+ resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
+
'@oslojs/encoding@1.1.0':
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
+ '@poppinss/colors@4.1.5':
+ resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==}
+
+ '@poppinss/dumper@0.6.4':
+ resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==}
+
+ '@poppinss/exception@1.2.2':
+ resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==}
+
'@rollup/pluginutils@5.3.0':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
engines: {node: '>=14.0.0'}
@@ -580,6 +918,13 @@ packages:
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
+ '@sindresorhus/is@7.1.0':
+ resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==}
+ engines: {node: '>=18'}
+
+ '@speed-highlight/core@1.2.7':
+ resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==}
+
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
@@ -688,6 +1033,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.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
@@ -700,6 +1048,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==}
@@ -709,12 +1060,29 @@ packages:
'@types/node@24.3.1':
resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==}
+ '@types/unist@2.0.11':
+ resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
+
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ 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'}
+
+ acorn@8.14.0:
+ resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
acorn@8.15.0:
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
engines: {node: '>=0.4.0'}
@@ -749,6 +1117,10 @@ packages:
array-iterate@2.0.1:
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
+ astring@1.9.0:
+ resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
+ hasBin: true
+
astro@5.13.7:
resolution: {integrity: sha512-Of2tST7ErbE4y1dVb4aWDXaQSIRBAfraJ4jDqaA3PzPRJOn6Ina36+tQ+8BezjYqiWwRRJdOEE07PRAJXnsddw==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -781,6 +1153,9 @@ packages:
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ blake3-wasm@2.1.5:
+ resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
+
blob-to-buffer@1.2.9:
resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==}
@@ -819,6 +1194,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'}
@@ -843,6 +1221,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'}
@@ -958,9 +1339,23 @@ packages:
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
engines: {node: '>=0.12'}
+ error-stack-parser-es@1.0.5:
+ resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==}
+
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.25.4:
+ resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==}
+ engines: {node: '>=18'}
+ hasBin: true
+
esbuild@0.25.9:
resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==}
engines: {node: '>=18'}
@@ -974,6 +1369,24 @@ packages:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
+ 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@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -983,6 +1396,13 @@ packages:
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+ exit-hook@2.2.1:
+ resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
+ engines: {node: '>=6'}
+
+ exsolve@1.0.7:
+ resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -1024,6 +1444,9 @@ packages:
github-slugger@2.0.0:
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -1045,9 +1468,15 @@ packages:
hast-util-raw@9.1.0:
resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
+ hast-util-to-estree@3.1.3:
+ resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
+
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@8.0.0:
resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
@@ -1075,12 +1504,24 @@ packages:
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==}
+ 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}
@@ -1090,6 +1531,9 @@ packages:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
+ 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'}
@@ -1215,6 +1659,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==}
@@ -1245,6 +1693,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@4.1.0:
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
@@ -1288,12 +1748,30 @@ 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@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
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@2.0.1:
resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
@@ -1324,6 +1802,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@2.0.1:
resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
@@ -1348,6 +1829,16 @@ packages:
micromark@4.0.2:
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
+ mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
+ miniflare@4.20250906.2:
+ resolution: {integrity: sha512-SXGv8Rdd91b6UXZ5eW3rde/gSJM6WVLItMNFV7u9axUVhACvpT4CB5p80OBfi2OOsGfOuFQ6M6s8tMxJbzioVw==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+
minipass@7.1.2:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -1432,12 +1923,24 @@ packages:
pako@0.2.9:
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
+ parse-entities@4.0.2:
+ resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
+
parse-latin@7.0.0:
resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ party-js@2.2.0:
+ resolution: {integrity: sha512-50hGuALCpvDTrQLPQ1fgUgxKIWAH28ShVkmeK/3zhO0YJyCqkhrZhQEkWPxDYLvbFJ7YAXyROmFEu35gKpZLtQ==}
+
+ path-to-regexp@6.3.0:
+ resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
+
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -1467,6 +1970,9 @@ packages:
property-information@7.1.0:
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
+ qrcode-generator@2.0.4:
+ resolution: {integrity: sha512-mZSiP6RnbHl4xL2Ap5HfkjLnmxfKcPWpWe/c+5XxCuetEenqmNFf1FH/ftXPCtFG5/TDobjsjz6sSNL0Sr8Z9g==}
+
radix3@1.1.2:
resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
@@ -1474,6 +1980,20 @@ 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@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
@@ -1489,6 +2009,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-stringify@10.0.1:
resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
@@ -1498,6 +2021,9 @@ packages:
remark-gfm@4.0.1:
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
+ remark-mdx@3.1.1:
+ resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
+
remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
@@ -1550,6 +2076,10 @@ packages:
resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
engines: {node: '>=10'}
+ sharp@0.33.5:
+ resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+
sharp@0.34.3:
resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -1579,9 +2109,17 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
+
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ stoppable@1.1.0:
+ resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
+ engines: {node: '>=4', npm: '>=6'}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -1601,6 +2139,16 @@ packages:
resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
engines: {node: '>=12'}
+ style-to-js@1.1.17:
+ resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==}
+
+ style-to-object@1.0.9:
+ resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==}
+
+ supports-color@10.2.2:
+ resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
+ engines: {node: '>=18'}
+
tailwindcss@4.1.13:
resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==}
@@ -1665,6 +2213,13 @@ packages:
undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
+ undici@7.14.0:
+ resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==}
+ engines: {node: '>=20.18.1'}
+
+ unenv@2.0.0-rc.21:
+ resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==}
+
unicode-properties@1.4.1:
resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==}
@@ -1686,6 +2241,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@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
@@ -1859,10 +2417,37 @@ packages:
resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
engines: {node: '>=18'}
+ workerd@1.20250906.0:
+ resolution: {integrity: sha512-ryVyEaqXPPsr/AxccRmYZZmDAkfQVjhfRqrNTlEeN8aftBk6Ca1u7/VqmfOayjCXrA+O547TauebU+J3IpvFXw==}
+ engines: {node: '>=16'}
+ hasBin: true
+
+ wrangler@4.37.0:
+ resolution: {integrity: sha512-W8IbQohQbUHFn4Hz2kh8gi0SdyFV/jyi9Uus+WrTz0F0Dc9W5qKPCjLbxibeE53+YPHyoI25l65O7nSlwX+Z6Q==}
+ engines: {node: '>=18.0.0'}
+ hasBin: true
+ peerDependencies:
+ '@cloudflare/workers-types': ^4.20250906.0
+ peerDependenciesMeta:
+ '@cloudflare/workers-types':
+ optional: true
+
wrap-ansi@9.0.2:
resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
engines: {node: '>=18'}
+ ws@8.18.0:
+ resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
xxhash-wasm@1.1.0:
resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
@@ -1889,6 +2474,12 @@ packages:
resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
engines: {node: '>=18'}
+ youch-core@0.3.3:
+ resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==}
+
+ youch@4.1.0-beta.10:
+ resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
+
zod-to-json-schema@3.24.6:
resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
peerDependencies:
@@ -1900,6 +2491,9 @@ packages:
typescript: ^4.9.4 || ^5.0.2
zod: ^3
+ zod@3.22.3:
+ resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
+
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
@@ -1938,6 +2532,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/mdx@4.3.5(astro@5.13.7(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.50.1)(typescript@5.9.2))':
+ dependencies:
+ '@astrojs/markdown-remark': 6.3.6
+ '@mdx-js/mdx': 3.1.1
+ acorn: 8.15.0
+ astro: 5.13.7(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.50.1)(typescript@5.9.2)
+ es-module-lexer: 1.7.0
+ estree-util-visit: 2.0.0
+ hast-util-to-html: 9.0.5
+ kleur: 4.1.5
+ 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.3.0':
dependencies:
prismjs: 1.30.0
@@ -2093,131 +2706,279 @@ snapshots:
transitivePeerDependencies:
- encoding
+ '@cloudflare/kv-asset-handler@0.4.0':
+ dependencies:
+ mime: 3.0.0
+
+ '@cloudflare/unenv-preset@2.7.3(unenv@2.0.0-rc.21)(workerd@1.20250906.0)':
+ dependencies:
+ unenv: 2.0.0-rc.21
+ optionalDependencies:
+ workerd: 1.20250906.0
+
+ '@cloudflare/workerd-darwin-64@1.20250906.0':
+ optional: true
+
+ '@cloudflare/workerd-darwin-arm64@1.20250906.0':
+ optional: true
+
+ '@cloudflare/workerd-linux-64@1.20250906.0':
+ optional: true
+
+ '@cloudflare/workerd-linux-arm64@1.20250906.0':
+ optional: true
+
+ '@cloudflare/workerd-windows-64@1.20250906.0':
+ optional: true
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
'@emnapi/runtime@1.5.0':
dependencies:
tslib: 2.8.1
optional: true
+ '@esbuild/aix-ppc64@0.25.4':
+ optional: true
+
'@esbuild/aix-ppc64@0.25.9':
optional: true
+ '@esbuild/android-arm64@0.25.4':
+ optional: true
+
'@esbuild/android-arm64@0.25.9':
optional: true
+ '@esbuild/android-arm@0.25.4':
+ optional: true
+
'@esbuild/android-arm@0.25.9':
optional: true
+ '@esbuild/android-x64@0.25.4':
+ optional: true
+
'@esbuild/android-x64@0.25.9':
optional: true
+ '@esbuild/darwin-arm64@0.25.4':
+ optional: true
+
'@esbuild/darwin-arm64@0.25.9':
optional: true
+ '@esbuild/darwin-x64@0.25.4':
+ optional: true
+
'@esbuild/darwin-x64@0.25.9':
optional: true
+ '@esbuild/freebsd-arm64@0.25.4':
+ optional: true
+
'@esbuild/freebsd-arm64@0.25.9':
optional: true
+ '@esbuild/freebsd-x64@0.25.4':
+ optional: true
+
'@esbuild/freebsd-x64@0.25.9':
optional: true
+ '@esbuild/linux-arm64@0.25.4':
+ optional: true
+
'@esbuild/linux-arm64@0.25.9':
optional: true
+ '@esbuild/linux-arm@0.25.4':
+ optional: true
+
'@esbuild/linux-arm@0.25.9':
optional: true
+ '@esbuild/linux-ia32@0.25.4':
+ optional: true
+
'@esbuild/linux-ia32@0.25.9':
optional: true
+ '@esbuild/linux-loong64@0.25.4':
+ optional: true
+
'@esbuild/linux-loong64@0.25.9':
optional: true
+ '@esbuild/linux-mips64el@0.25.4':
+ optional: true
+
'@esbuild/linux-mips64el@0.25.9':
optional: true
+ '@esbuild/linux-ppc64@0.25.4':
+ optional: true
+
'@esbuild/linux-ppc64@0.25.9':
optional: true
+ '@esbuild/linux-riscv64@0.25.4':
+ optional: true
+
'@esbuild/linux-riscv64@0.25.9':
optional: true
+ '@esbuild/linux-s390x@0.25.4':
+ optional: true
+
'@esbuild/linux-s390x@0.25.9':
optional: true
+ '@esbuild/linux-x64@0.25.4':
+ optional: true
+
'@esbuild/linux-x64@0.25.9':
optional: true
+ '@esbuild/netbsd-arm64@0.25.4':
+ optional: true
+
'@esbuild/netbsd-arm64@0.25.9':
optional: true
+ '@esbuild/netbsd-x64@0.25.4':
+ optional: true
+
'@esbuild/netbsd-x64@0.25.9':
optional: true
+ '@esbuild/openbsd-arm64@0.25.4':
+ optional: true
+
'@esbuild/openbsd-arm64@0.25.9':
optional: true
+ '@esbuild/openbsd-x64@0.25.4':
+ optional: true
+
'@esbuild/openbsd-x64@0.25.9':
optional: true
'@esbuild/openharmony-arm64@0.25.9':
optional: true
+ '@esbuild/sunos-x64@0.25.4':
+ optional: true
+
'@esbuild/sunos-x64@0.25.9':
optional: true
+ '@esbuild/win32-arm64@0.25.4':
+ optional: true
+
'@esbuild/win32-arm64@0.25.9':
optional: true
+ '@esbuild/win32-ia32@0.25.4':
+ optional: true
+
'@esbuild/win32-ia32@0.25.9':
optional: true
+ '@esbuild/win32-x64@0.25.4':
+ optional: true
+
'@esbuild/win32-x64@0.25.9':
optional: true
+ '@img/sharp-darwin-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.0.4
+ optional: true
+
'@img/sharp-darwin-arm64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.2.0
optional: true
+ '@img/sharp-darwin-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.0.4
+ optional: true
+
'@img/sharp-darwin-x64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-darwin-x64': 1.2.0
optional: true
+ '@img/sharp-libvips-darwin-arm64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-darwin-arm64@1.2.0':
optional: true
+ '@img/sharp-libvips-darwin-x64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-darwin-x64@1.2.0':
optional: true
+ '@img/sharp-libvips-linux-arm64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-linux-arm64@1.2.0':
optional: true
+ '@img/sharp-libvips-linux-arm@1.0.5':
+ optional: true
+
'@img/sharp-libvips-linux-arm@1.2.0':
optional: true
'@img/sharp-libvips-linux-ppc64@1.2.0':
optional: true
+ '@img/sharp-libvips-linux-s390x@1.0.4':
+ optional: true
+
'@img/sharp-libvips-linux-s390x@1.2.0':
optional: true
+ '@img/sharp-libvips-linux-x64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-linux-x64@1.2.0':
optional: true
+ '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-linuxmusl-arm64@1.2.0':
optional: true
+ '@img/sharp-libvips-linuxmusl-x64@1.0.4':
+ optional: true
+
'@img/sharp-libvips-linuxmusl-x64@1.2.0':
optional: true
+ '@img/sharp-linux-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.0.4
+ optional: true
+
'@img/sharp-linux-arm64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linux-arm64': 1.2.0
optional: true
+ '@img/sharp-linux-arm@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.0.5
+ optional: true
+
'@img/sharp-linux-arm@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linux-arm': 1.2.0
@@ -2228,26 +2989,51 @@ snapshots:
'@img/sharp-libvips-linux-ppc64': 1.2.0
optional: true
+ '@img/sharp-linux-s390x@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.0.4
+ optional: true
+
'@img/sharp-linux-s390x@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linux-s390x': 1.2.0
optional: true
+ '@img/sharp-linux-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.0.4
+ optional: true
+
'@img/sharp-linux-x64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linux-x64': 1.2.0
optional: true
+ '@img/sharp-linuxmusl-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
+ optional: true
+
'@img/sharp-linuxmusl-arm64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-arm64': 1.2.0
optional: true
+ '@img/sharp-linuxmusl-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.4
+ optional: true
+
'@img/sharp-linuxmusl-x64@0.34.3':
optionalDependencies:
'@img/sharp-libvips-linuxmusl-x64': 1.2.0
optional: true
+ '@img/sharp-wasm32@0.33.5':
+ dependencies:
+ '@emnapi/runtime': 1.5.0
+ optional: true
+
'@img/sharp-wasm32@0.34.3':
dependencies:
'@emnapi/runtime': 1.5.0
@@ -2256,9 +3042,15 @@ snapshots:
'@img/sharp-win32-arm64@0.34.3':
optional: true
+ '@img/sharp-win32-ia32@0.33.5':
+ optional: true
+
'@img/sharp-win32-ia32@0.34.3':
optional: true
+ '@img/sharp-win32-x64@0.33.5':
+ optional: true
+
'@img/sharp-win32-x64@0.34.3':
optional: true
@@ -2285,8 +3077,55 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@mdx-js/mdx@3.1.1':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@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.2
+ 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
+
'@oslojs/encoding@1.1.0': {}
+ '@poppinss/colors@4.1.5':
+ dependencies:
+ kleur: 4.1.5
+
+ '@poppinss/dumper@0.6.4':
+ dependencies:
+ '@poppinss/colors': 4.1.5
+ '@sindresorhus/is': 7.1.0
+ supports-color: 10.2.2
+
+ '@poppinss/exception@1.2.2': {}
+
'@rollup/pluginutils@5.3.0(rollup@4.50.1)':
dependencies:
'@types/estree': 1.0.8
@@ -2391,6 +3230,10 @@ snapshots:
'@shikijs/vscode-textmate@10.0.2': {}
+ '@sindresorhus/is@7.1.0': {}
+
+ '@speed-highlight/core@1.2.7': {}
+
'@swc/helpers@0.5.17':
dependencies:
tslib: 2.8.1
@@ -2491,6 +3334,10 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
+ '@types/estree-jsx@1.0.5':
+ dependencies:
+ '@types/estree': 1.0.8
+
'@types/estree@1.0.8': {}
'@types/fontkit@2.0.8':
@@ -2505,6 +3352,8 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
+ '@types/mdx@2.0.13': {}
+
'@types/ms@2.1.0': {}
'@types/nlcst@2.0.3':
@@ -2515,10 +3364,20 @@ snapshots:
dependencies:
undici-types: 7.10.0
+ '@types/unist@2.0.11': {}
+
'@types/unist@3.0.3': {}
'@ungap/structured-clone@1.3.0': {}
+ 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.15.0: {}
ansi-align@3.0.1:
@@ -2542,6 +3401,8 @@ snapshots:
array-iterate@2.0.1: {}
+ astring@1.9.0: {}
+
astro@5.13.7(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(rollup@4.50.1)(typescript@5.9.2):
dependencies:
'@astrojs/compiler': 2.12.2
@@ -2669,6 +3530,8 @@ snapshots:
base64-js@1.5.1: {}
+ blake3-wasm@2.1.5: {}
+
blob-to-buffer@1.2.9: {}
boxen@8.0.1:
@@ -2707,6 +3570,8 @@ snapshots:
character-entities@2.0.2: {}
+ character-reference-invalid@2.0.1: {}
+
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
@@ -2721,25 +3586,23 @@ snapshots:
clsx@2.1.1: {}
+ collapse-white-space@2.1.0: {}
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
- optional: true
- color-name@1.1.4:
- optional: true
+ color-name@1.1.4: {}
color-string@1.9.1:
dependencies:
color-name: 1.1.4
simple-swizzle: 0.2.2
- optional: true
color@4.2.3:
dependencies:
color-convert: 2.0.1
color-string: 1.9.1
- optional: true
comma-separated-tokens@2.0.3: {}
@@ -2817,8 +3680,52 @@ snapshots:
entities@6.0.1: {}
+ error-stack-parser-es@1.0.5: {}
+
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.3
+
+ esbuild@0.25.4:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.25.4
+ '@esbuild/android-arm': 0.25.4
+ '@esbuild/android-arm64': 0.25.4
+ '@esbuild/android-x64': 0.25.4
+ '@esbuild/darwin-arm64': 0.25.4
+ '@esbuild/darwin-x64': 0.25.4
+ '@esbuild/freebsd-arm64': 0.25.4
+ '@esbuild/freebsd-x64': 0.25.4
+ '@esbuild/linux-arm': 0.25.4
+ '@esbuild/linux-arm64': 0.25.4
+ '@esbuild/linux-ia32': 0.25.4
+ '@esbuild/linux-loong64': 0.25.4
+ '@esbuild/linux-mips64el': 0.25.4
+ '@esbuild/linux-ppc64': 0.25.4
+ '@esbuild/linux-riscv64': 0.25.4
+ '@esbuild/linux-s390x': 0.25.4
+ '@esbuild/linux-x64': 0.25.4
+ '@esbuild/netbsd-arm64': 0.25.4
+ '@esbuild/netbsd-x64': 0.25.4
+ '@esbuild/openbsd-arm64': 0.25.4
+ '@esbuild/openbsd-x64': 0.25.4
+ '@esbuild/sunos-x64': 0.25.4
+ '@esbuild/win32-arm64': 0.25.4
+ '@esbuild/win32-ia32': 0.25.4
+ '@esbuild/win32-x64': 0.25.4
+
esbuild@0.25.9:
optionalDependencies:
'@esbuild/aix-ppc64': 0.25.9
@@ -2852,6 +3759,35 @@ snapshots:
escape-string-regexp@5.0.0: {}
+ estree-util-attach-comments@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+
+ 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.8
+ 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@2.0.2: {}
estree-walker@3.0.3:
@@ -2860,6 +3796,10 @@ snapshots:
eventemitter3@5.0.1: {}
+ exit-hook@2.2.1: {}
+
+ exsolve@1.0.7: {}
+
extend@3.0.2: {}
fast-deep-equal@3.1.3: {}
@@ -2896,6 +3836,8 @@ snapshots:
github-slugger@2.0.0: {}
+ glob-to-regexp@0.4.1: {}
+
graceful-fs@4.2.11: {}
h3@1.15.4:
@@ -2954,6 +3896,27 @@ snapshots:
web-namespaces: 2.0.1
zwitch: 2.0.4
+ hast-util-to-estree@3.1.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@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.1.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.17
+ unist-util-position: 5.0.0
+ zwitch: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+
hast-util-to-html@9.0.5:
dependencies:
'@types/hast': 3.0.4
@@ -2968,6 +3931,26 @@ snapshots:
stringify-entities: 4.0.4
zwitch: 2.0.4
+ hast-util-to-jsx-runtime@2.3.6:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@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.1.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.17
+ unist-util-position: 5.0.0
+ vfile-message: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+
hast-util-to-parse5@8.0.0:
dependencies:
'@types/hast': 3.0.4
@@ -3007,15 +3990,27 @@ snapshots:
import-meta-resolve@4.2.0: {}
+ inline-style-parser@0.2.4: {}
+
iron-webcrypto@1.2.1: {}
- is-arrayish@0.3.2:
- optional: true
+ 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: {}
+
+ is-decimal@2.0.1: {}
is-docker@3.0.0: {}
is-fullwidth-code-point@3.0.0: {}
+ is-hexadecimal@2.0.1: {}
+
is-inside-container@1.0.0:
dependencies:
is-docker: 3.0.0
@@ -3107,6 +4102,8 @@ snapshots:
'@babel/types': 7.28.4
source-map-js: 1.2.1
+ markdown-extensions@2.0.0: {}
+
markdown-table@3.0.4: {}
mdast-util-definitions@6.0.0:
@@ -3196,6 +4193,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.3
+ 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@4.1.0:
dependencies:
'@types/mdast': 4.0.4
@@ -3312,6 +4358,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.8
+ 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.8
+ 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.3
+
+ 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.8
+ 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.3
+
+ 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@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -3325,6 +4422,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.8
+ 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.3
+
micromark-factory-space@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -3377,6 +4486,16 @@ snapshots:
micromark-util-encode@2.0.1: {}
+ micromark-util-events-to-acorn@2.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@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.3
+
micromark-util-html-tag-name@2.0.1: {}
micromark-util-normalize-identifier@2.0.1:
@@ -3426,6 +4545,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ mime@3.0.0: {}
+
+ miniflare@4.20250906.2:
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ acorn: 8.14.0
+ acorn-walk: 8.3.2
+ exit-hook: 2.2.1
+ glob-to-regexp: 0.4.1
+ sharp: 0.33.5
+ stoppable: 1.1.0
+ undici: 7.14.0
+ workerd: 1.20250906.0
+ ws: 8.18.0
+ youch: 4.1.0-beta.10
+ zod: 3.22.3
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
minipass@7.1.2: {}
minizlib@3.0.2:
@@ -3489,6 +4628,16 @@ snapshots:
pako@0.2.9: {}
+ 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.2.0
+ 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
@@ -3502,6 +4651,12 @@ snapshots:
dependencies:
entities: 6.0.1
+ party-js@2.2.0: {}
+
+ path-to-regexp@6.3.0: {}
+
+ pathe@2.0.3: {}
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -3525,10 +4680,41 @@ snapshots:
property-information@7.1.0: {}
+ qrcode-generator@2.0.4: {}
+
radix3@1.1.2: {}
readdirp@4.1.2: {}
+ recma-build-jsx@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ 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.8
+ 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.8
+ estree-util-to-js: 2.0.0
+ unified: 11.0.5
+ vfile: 6.0.3
+
regex-recursion@6.0.2:
dependencies:
regex-utilities: 2.3.0
@@ -3551,6 +4737,14 @@ snapshots:
hast-util-raw: 9.1.0
vfile: 6.0.3
+ rehype-recma@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/hast': 3.0.4
+ hast-util-to-estree: 3.1.3
+ transitivePeerDependencies:
+ - supports-color
+
rehype-stringify@10.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -3575,6 +4769,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ remark-mdx@3.1.1:
+ dependencies:
+ mdast-util-mdx: 3.0.0
+ micromark-extension-mdxjs: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
remark-parse@11.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -3669,6 +4870,32 @@ snapshots:
seroval@1.3.2: {}
+ sharp@0.33.5:
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.4
+ semver: 7.7.2
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.33.5
+ '@img/sharp-darwin-x64': 0.33.5
+ '@img/sharp-libvips-darwin-arm64': 1.0.4
+ '@img/sharp-libvips-darwin-x64': 1.0.4
+ '@img/sharp-libvips-linux-arm': 1.0.5
+ '@img/sharp-libvips-linux-arm64': 1.0.4
+ '@img/sharp-libvips-linux-s390x': 1.0.4
+ '@img/sharp-libvips-linux-x64': 1.0.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.4
+ '@img/sharp-linux-arm': 0.33.5
+ '@img/sharp-linux-arm64': 0.33.5
+ '@img/sharp-linux-s390x': 0.33.5
+ '@img/sharp-linux-x64': 0.33.5
+ '@img/sharp-linuxmusl-arm64': 0.33.5
+ '@img/sharp-linuxmusl-x64': 0.33.5
+ '@img/sharp-wasm32': 0.33.5
+ '@img/sharp-win32-ia32': 0.33.5
+ '@img/sharp-win32-x64': 0.33.5
+
sharp@0.34.3:
dependencies:
color: 4.2.3
@@ -3697,7 +4924,6 @@ snapshots:
'@img/sharp-win32-arm64': 0.34.3
'@img/sharp-win32-ia32': 0.34.3
'@img/sharp-win32-x64': 0.34.3
- optional: true
shiki@3.12.2:
dependencies:
@@ -3713,7 +4939,6 @@ snapshots:
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
- optional: true
sisteransi@1.0.5: {}
@@ -3736,8 +4961,12 @@ snapshots:
source-map-js@1.2.1: {}
+ source-map@0.7.6: {}
+
space-separated-tokens@2.0.2: {}
+ stoppable@1.1.0: {}
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -3763,6 +4992,16 @@ snapshots:
dependencies:
ansi-regex: 6.2.2
+ style-to-js@1.1.17:
+ dependencies:
+ style-to-object: 1.0.9
+
+ style-to-object@1.0.9:
+ dependencies:
+ inline-style-parser: 0.2.4
+
+ supports-color@10.2.2: {}
+
tailwindcss@4.1.13: {}
tapable@2.2.3: {}
@@ -3809,6 +5048,16 @@ snapshots:
undici-types@7.10.0: {}
+ undici@7.14.0: {}
+
+ unenv@2.0.0-rc.21:
+ dependencies:
+ defu: 6.1.4
+ exsolve: 1.0.7
+ ohash: 2.0.11
+ pathe: 2.0.3
+ ufo: 1.6.1
+
unicode-properties@1.4.1:
dependencies:
base64-js: 1.5.1
@@ -3849,6 +5098,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@5.0.0:
dependencies:
'@types/unist': 3.0.3
@@ -3957,12 +5210,38 @@ snapshots:
dependencies:
string-width: 7.2.0
+ workerd@1.20250906.0:
+ optionalDependencies:
+ '@cloudflare/workerd-darwin-64': 1.20250906.0
+ '@cloudflare/workerd-darwin-arm64': 1.20250906.0
+ '@cloudflare/workerd-linux-64': 1.20250906.0
+ '@cloudflare/workerd-linux-arm64': 1.20250906.0
+ '@cloudflare/workerd-windows-64': 1.20250906.0
+
+ wrangler@4.37.0:
+ dependencies:
+ '@cloudflare/kv-asset-handler': 0.4.0
+ '@cloudflare/unenv-preset': 2.7.3(unenv@2.0.0-rc.21)(workerd@1.20250906.0)
+ blake3-wasm: 2.1.5
+ esbuild: 0.25.4
+ miniflare: 4.20250906.2
+ path-to-regexp: 6.3.0
+ unenv: 2.0.0-rc.21
+ workerd: 1.20250906.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
wrap-ansi@9.0.2:
dependencies:
ansi-styles: 6.2.3
string-width: 7.2.0
strip-ansi: 7.1.2
+ ws@8.18.0: {}
+
xxhash-wasm@1.1.0: {}
yallist@3.1.1: {}
@@ -3979,6 +5258,19 @@ snapshots:
yoctocolors@2.1.2: {}
+ youch-core@0.3.3:
+ dependencies:
+ '@poppinss/exception': 1.2.2
+ error-stack-parser-es: 1.0.5
+
+ youch@4.1.0-beta.10:
+ dependencies:
+ '@poppinss/colors': 4.1.5
+ '@poppinss/dumper': 0.6.4
+ '@speed-highlight/core': 1.2.7
+ cookie: 1.0.2
+ youch-core: 0.3.3
+
zod-to-json-schema@3.24.6(zod@3.25.76):
dependencies:
zod: 3.25.76
@@ -3988,6 +5280,8 @@ snapshots:
typescript: 5.9.2
zod: 3.25.76
+ zod@3.22.3: {}
+
zod@3.25.76: {}
zwitch@2.0.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index fd050a4..9af3c7d 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,2 +1,5 @@
onlyBuiltDependencies:
- '@tailwindcss/oxide'
+ - esbuild
+ - sharp
+ - workerd
diff --git a/src/assets/icons/fa-compress-arrows-alt.svg b/src/assets/icons/fa-compress-arrows-alt.svg
new file mode 100644
index 0000000..7e09726
--- /dev/null
+++ b/src/assets/icons/fa-compress-arrows-alt.svg
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/src/assets/imgs/Fedora/AfterInstall/OnboardDone.png b/src/assets/imgs/Fedora/AfterInstall/OnboardDone.png
new file mode 100644
index 0000000..f72a3e1
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/OnboardDone.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/OnboardDoneCropped.png b/src/assets/imgs/Fedora/AfterInstall/OnboardDoneCropped.png
new file mode 100644
index 0000000..6325e86
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/OnboardDoneCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/OptionalTour.png b/src/assets/imgs/Fedora/AfterInstall/OptionalTour.png
new file mode 100644
index 0000000..11c1261
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/OptionalTour.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/Password.png b/src/assets/imgs/Fedora/AfterInstall/Password.png
new file mode 100644
index 0000000..17a1d2a
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/Password.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/PasswordCropped.png b/src/assets/imgs/Fedora/AfterInstall/PasswordCropped.png
new file mode 100644
index 0000000..eb7522f
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/PasswordCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/Privacy.png b/src/assets/imgs/Fedora/AfterInstall/Privacy.png
new file mode 100644
index 0000000..7615145
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/Privacy.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/PrivacyCropped.png b/src/assets/imgs/Fedora/AfterInstall/PrivacyCropped.png
new file mode 100644
index 0000000..6b9a652
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/PrivacyCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepo.png b/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepo.png
new file mode 100644
index 0000000..1ac416f
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepo.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepoCropped.png b/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepoCropped.png
new file mode 100644
index 0000000..4acae5c
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/ThirdPartyRepoCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/TimeZone.png b/src/assets/imgs/Fedora/AfterInstall/TimeZone.png
new file mode 100644
index 0000000..7a98348
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/TimeZone.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/TimeZoneCropped.png b/src/assets/imgs/Fedora/AfterInstall/TimeZoneCropped.png
new file mode 100644
index 0000000..0cebd51
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/TimeZoneCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/Typing.png b/src/assets/imgs/Fedora/AfterInstall/Typing.png
new file mode 100644
index 0000000..d54ae07
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/Typing.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/TypingCropped.png b/src/assets/imgs/Fedora/AfterInstall/TypingCropped.png
new file mode 100644
index 0000000..25def69
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/TypingCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/Username.png b/src/assets/imgs/Fedora/AfterInstall/Username.png
new file mode 100644
index 0000000..230c0f6
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/Username.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/UsernameCropped.png b/src/assets/imgs/Fedora/AfterInstall/UsernameCropped.png
new file mode 100644
index 0000000..fb1851f
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/UsernameCropped.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/Welcome.png b/src/assets/imgs/Fedora/AfterInstall/Welcome.png
new file mode 100644
index 0000000..14844d8
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/Welcome.png differ
diff --git a/src/assets/imgs/Fedora/AfterInstall/WelcomeCropped.png b/src/assets/imgs/Fedora/AfterInstall/WelcomeCropped.png
new file mode 100644
index 0000000..dc7f748
Binary files /dev/null and b/src/assets/imgs/Fedora/AfterInstall/WelcomeCropped.png differ
diff --git a/src/assets/imgs/Fedora/Boot/BootOptionRestoration.png b/src/assets/imgs/Fedora/Boot/BootOptionRestoration.png
new file mode 100644
index 0000000..09ef936
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/BootOptionRestoration.png differ
diff --git a/src/assets/imgs/Fedora/Boot/BootOptionRestoration_Cropped.png b/src/assets/imgs/Fedora/Boot/BootOptionRestoration_Cropped.png
new file mode 100644
index 0000000..e0cf97a
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/BootOptionRestoration_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Boot/ContinueBootOption.png b/src/assets/imgs/Fedora/Boot/ContinueBootOption.png
new file mode 100644
index 0000000..ab85699
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/ContinueBootOption.png differ
diff --git a/src/assets/imgs/Fedora/Boot/ContinueBootOption_Cropped.png b/src/assets/imgs/Fedora/Boot/ContinueBootOption_Cropped.png
new file mode 100644
index 0000000..563c18e
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/ContinueBootOption_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Boot/MSIBootMenu.jpg b/src/assets/imgs/Fedora/Boot/MSIBootMenu.jpg
new file mode 100644
index 0000000..008e638
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/MSIBootMenu.jpg differ
diff --git a/src/assets/imgs/Fedora/Boot/MSIBootMenu_Cropped.jpg b/src/assets/imgs/Fedora/Boot/MSIBootMenu_Cropped.jpg
new file mode 100644
index 0000000..8012c39
Binary files /dev/null and b/src/assets/imgs/Fedora/Boot/MSIBootMenu_Cropped.jpg differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/EraseConfirmation.png b/src/assets/imgs/Fedora/FedoraMediaWriter/EraseConfirmation.png
new file mode 100644
index 0000000..0854ea1
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/EraseConfirmation.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/Finished.png b/src/assets/imgs/Fedora/FedoraMediaWriter/Finished.png
new file mode 100644
index 0000000..c701399
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/Finished.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/RestoreOption.png b/src/assets/imgs/Fedora/FedoraMediaWriter/RestoreOption.png
new file mode 100644
index 0000000..afeee5e
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/RestoreOption.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/SelectFedoraRelease_Workstation.png b/src/assets/imgs/Fedora/FedoraMediaWriter/SelectFedoraRelease_Workstation.png
new file mode 100644
index 0000000..d7ad7b0
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/SelectFedoraRelease_Workstation.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/SelectImageSource.png b/src/assets/imgs/Fedora/FedoraMediaWriter/SelectImageSource.png
new file mode 100644
index 0000000..e196b8c
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/SelectImageSource.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/WriteOptions.png b/src/assets/imgs/Fedora/FedoraMediaWriter/WriteOptions.png
new file mode 100644
index 0000000..d22ec50
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/WriteOptions.png differ
diff --git a/src/assets/imgs/Fedora/FedoraMediaWriter/Writing.png b/src/assets/imgs/Fedora/FedoraMediaWriter/Writing.png
new file mode 100644
index 0000000..c005b83
Binary files /dev/null and b/src/assets/imgs/Fedora/FedoraMediaWriter/Writing.png differ
diff --git a/src/assets/imgs/Fedora/Install/Check.png b/src/assets/imgs/Fedora/Install/Check.png
new file mode 100644
index 0000000..8645e7c
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Check.png differ
diff --git a/src/assets/imgs/Fedora/Install/Check_Cropped.png b/src/assets/imgs/Fedora/Install/Check_Cropped.png
new file mode 100644
index 0000000..c65bbb4
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Check_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked.png b/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked.png
new file mode 100644
index 0000000..9d73845
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked.png differ
diff --git a/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked_Cropped.png b/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked_Cropped.png
new file mode 100644
index 0000000..7800175
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/DiskEncryptionUnchecked_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/GRUB.png b/src/assets/imgs/Fedora/Install/GRUB.png
new file mode 100644
index 0000000..b7fc6c6
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/GRUB.png differ
diff --git a/src/assets/imgs/Fedora/Install/GRUB_Cropped.png b/src/assets/imgs/Fedora/Install/GRUB_Cropped.png
new file mode 100644
index 0000000..89d1bf7
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/GRUB_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/Install_Language.png b/src/assets/imgs/Fedora/Install/Install_Language.png
new file mode 100644
index 0000000..0065ebd
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Install_Language.png differ
diff --git a/src/assets/imgs/Fedora/Install/InstallationFinished.png b/src/assets/imgs/Fedora/Install/InstallationFinished.png
new file mode 100644
index 0000000..63fc4d3
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/InstallationFinished.png differ
diff --git a/src/assets/imgs/Fedora/Install/InstallationFinished_Cropped.png b/src/assets/imgs/Fedora/Install/InstallationFinished_Cropped.png
new file mode 100644
index 0000000..19bf862
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/InstallationFinished_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/InstallationMethod.png b/src/assets/imgs/Fedora/Install/InstallationMethod.png
new file mode 100644
index 0000000..b61b514
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/InstallationMethod.png differ
diff --git a/src/assets/imgs/Fedora/Install/InstallationMethod_Cropped.png b/src/assets/imgs/Fedora/Install/InstallationMethod_Cropped.png
new file mode 100644
index 0000000..afbf0c4
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/InstallationMethod_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/Installing.png b/src/assets/imgs/Fedora/Install/Installing.png
new file mode 100644
index 0000000..439aeb5
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Installing.png differ
diff --git a/src/assets/imgs/Fedora/Install/Installing_Cropped.png b/src/assets/imgs/Fedora/Install/Installing_Cropped.png
new file mode 100644
index 0000000..ff7b2ec
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Installing_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/Overview.png b/src/assets/imgs/Fedora/Install/Overview.png
new file mode 100644
index 0000000..8e56381
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Overview.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpace.png b/src/assets/imgs/Fedora/Install/ReclaimSpace.png
new file mode 100644
index 0000000..e89b6c8
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpace.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpaceDone.png b/src/assets/imgs/Fedora/Install/ReclaimSpaceDone.png
new file mode 100644
index 0000000..e073257
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpaceDone.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpaceDone_Cropped.png b/src/assets/imgs/Fedora/Install/ReclaimSpaceDone_Cropped.png
new file mode 100644
index 0000000..36ab69b
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpaceDone_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider.png b/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider.png
new file mode 100644
index 0000000..2131cb8
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider_Cropped.png b/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider_Cropped.png
new file mode 100644
index 0000000..be74e5d
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpaceSlider_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReclaimSpace_Cropped.png b/src/assets/imgs/Fedora/Install/ReclaimSpace_Cropped.png
new file mode 100644
index 0000000..4fdfdbd
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReclaimSpace_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/RestartMenu.png b/src/assets/imgs/Fedora/Install/RestartMenu.png
new file mode 100644
index 0000000..ae62d43
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/RestartMenu.png differ
diff --git a/src/assets/imgs/Fedora/Install/RestartMenu_Cropped.png b/src/assets/imgs/Fedora/Install/RestartMenu_Cropped.png
new file mode 100644
index 0000000..c22c4f8
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/RestartMenu_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReviewAndInstall.png b/src/assets/imgs/Fedora/Install/ReviewAndInstall.png
new file mode 100644
index 0000000..9c7e7d1
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReviewAndInstall.png differ
diff --git a/src/assets/imgs/Fedora/Install/ReviewAndInstall_Cropped.png b/src/assets/imgs/Fedora/Install/ReviewAndInstall_Cropped.png
new file mode 100644
index 0000000..c270a1d
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/ReviewAndInstall_Cropped.png differ
diff --git a/src/assets/imgs/Fedora/Install/Welcome.png b/src/assets/imgs/Fedora/Install/Welcome.png
new file mode 100644
index 0000000..31c71af
Binary files /dev/null and b/src/assets/imgs/Fedora/Install/Welcome.png differ
diff --git a/src/assets/imgs/fedora42_kdeplasma.avif b/src/assets/imgs/Fedora/fedora42_kdeplasma.avif
similarity index 99%
rename from src/assets/imgs/fedora42_kdeplasma.avif
rename to src/assets/imgs/Fedora/fedora42_kdeplasma.avif
index b96e0c1..63f02bf 100644
Binary files a/src/assets/imgs/fedora42_kdeplasma.avif and b/src/assets/imgs/Fedora/fedora42_kdeplasma.avif differ
diff --git a/src/assets/imgs/fedora42_kdeplasma.png b/src/assets/imgs/Fedora/fedora42_kdeplasma.png
similarity index 100%
rename from src/assets/imgs/fedora42_kdeplasma.png
rename to src/assets/imgs/Fedora/fedora42_kdeplasma.png
diff --git a/src/assets/imgs/fedora42_workstation.avif b/src/assets/imgs/Fedora/fedora42_workstation.avif
similarity index 99%
rename from src/assets/imgs/fedora42_workstation.avif
rename to src/assets/imgs/Fedora/fedora42_workstation.avif
index e655777..cef1884 100644
Binary files a/src/assets/imgs/fedora42_workstation.avif and b/src/assets/imgs/Fedora/fedora42_workstation.avif differ
diff --git a/src/assets/imgs/fedora42_workstation.png b/src/assets/imgs/Fedora/fedora42_workstation.png
similarity index 100%
rename from src/assets/imgs/fedora42_workstation.png
rename to src/assets/imgs/Fedora/fedora42_workstation.png
diff --git a/src/assets/imgs/FedoraMediaWriter_SelectFedoraRelease.avif b/src/assets/imgs/FedoraMediaWriter_SelectFedoraRelease.avif
deleted file mode 100644
index 497a790..0000000
Binary files a/src/assets/imgs/FedoraMediaWriter_SelectFedoraRelease.avif and /dev/null differ
diff --git a/src/assets/imgs/FedoraMediaWriter_SelectImageSource.avif b/src/assets/imgs/FedoraMediaWriter_SelectImageSource.avif
deleted file mode 100644
index 34a6aa7..0000000
Binary files a/src/assets/imgs/FedoraMediaWriter_SelectImageSource.avif and /dev/null differ
diff --git a/src/components/ChoiceList.astro b/src/components/ChoiceList.astro
new file mode 100644
index 0000000..ff0bb2f
--- /dev/null
+++ b/src/components/ChoiceList.astro
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/components/Party.astro b/src/components/Party.astro
new file mode 100644
index 0000000..9d70025
--- /dev/null
+++ b/src/components/Party.astro
@@ -0,0 +1,8 @@
+
diff --git a/src/components/QRCode.astro b/src/components/QRCode.astro
new file mode 100644
index 0000000..771e18a
--- /dev/null
+++ b/src/components/QRCode.astro
@@ -0,0 +1,26 @@
+---
+import { ORIGIN } from "astro:env/server";
+import qrcode from "qrcode-generator";
+
+const { msg, width, height } = Astro.props;
+
+const qr = qrcode(0, "M");
+
+let data = msg;
+
+if (msg.startsWith("/")) {
+ data = (ORIGIN ?? Astro.url.host) + msg;
+}
+
+qr.addData(data);
+qr.make();
+let img = qr.createImgTag();
+
+if (width !== undefined) {
+ img = img.replace(/width="[0-9]+"/, `width="${width}"`);
+}
+
+img = img.replace(">", ' style="image-rendering: pixelated;">');
+---
+
+
diff --git a/src/content.config.ts b/src/content.config.ts
new file mode 100644
index 0000000..2940e4c
--- /dev/null
+++ b/src/content.config.ts
@@ -0,0 +1,13 @@
+import { defineCollection, z } from "astro:content";
+
+import { glob, file } from "astro/loaders";
+
+const distroGuide = defineCollection({
+ loader: glob({ pattern: "**/*.mdx", base: "./src/data/distro" }),
+ schema: z.object({
+ title: z.string(),
+ description: z.string().optional(),
+ })
+});
+
+export const collections = { distroGuide };
diff --git a/src/data/fedora.ts b/src/data/distro/fedora/fedora.ts
similarity index 91%
rename from src/data/fedora.ts
rename to src/data/distro/fedora/fedora.ts
index 9e99965..f8c6b20 100644
--- a/src/data/fedora.ts
+++ b/src/data/distro/fedora/fedora.ts
@@ -1,9 +1,9 @@
import type { Dialog } from "@/lib/tinyvn";
import { getRelativeLocaleUrl } from "astro:i18n";
-import fedoraWorkstation from "@/assets/imgs/fedora42_workstation.avif";
-import fedoraWorkstationPng from "@/assets/imgs/fedora42_workstation.png";
-import fedoraPlasma from "@/assets/imgs/fedora42_kdeplasma.avif";
-import fedoraPlasmaPng from "@/assets/imgs/fedora42_kdeplasma.png";
+import fedoraWorkstation from "@/assets/imgs/Fedora/fedora42_workstation.avif";
+import fedoraWorkstationPng from "@/assets/imgs/Fedora/fedora42_workstation.png";
+import fedoraPlasma from "@/assets/imgs/Fedora/fedora42_kdeplasma.avif";
+import fedoraPlasmaPng from "@/assets/imgs/Fedora/fedora42_kdeplasma.png";
const fedoraDialogs: Dialog[] = [
{
@@ -145,7 +145,7 @@ appearance. KDE Plasma (Right) may be more familiar for Windows users.`,
{
action: "link",
text: "Continue",
- data: getRelativeLocaleUrl("en", "fedora/workstation/0")
+ data: getRelativeLocaleUrl("en", "distro/fedora/workstation/0")
}
]
}, // 8
@@ -164,7 +164,7 @@ appearance. KDE Plasma (Right) may be more familiar for Windows users.`,
{
action: "link",
text: "Continue",
- data: getRelativeLocaleUrl("en", "fedora/plasma/0")
+ data: getRelativeLocaleUrl("en", "distro/fedora/plasma/0")
}
]
} // 9
diff --git a/src/data/distro/fedora/workstation/0.mdx b/src/data/distro/fedora/workstation/0.mdx
new file mode 100644
index 0000000..3cbae6f
--- /dev/null
+++ b/src/data/distro/fedora/workstation/0.mdx
@@ -0,0 +1,25 @@
+---
+title: Fedora Media Writer
+description: Choosing to download Fedora automatically.
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import selectImageSource from "@/assets/imgs/Fedora/FedoraMediaWriter/SelectImageSource.png";
+
+
+
+Select "Download automatically" and click Next.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/1.mdx b/src/data/distro/fedora/workstation/1.mdx
new file mode 100644
index 0000000..1a68cd8
--- /dev/null
+++ b/src/data/distro/fedora/workstation/1.mdx
@@ -0,0 +1,25 @@
+---
+title: Select Fedora Release
+description: Select the Fedora release according to your choosing.
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import selectImageSource from "@/assets/imgs/Fedora/FedoraMediaWriter/SelectFedoraRelease_Workstation.png";
+
+
+
+Select "Fedora Workstation" and click Next.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/2.mdx b/src/data/distro/fedora/workstation/2.mdx
new file mode 100644
index 0000000..913e930
--- /dev/null
+++ b/src/data/distro/fedora/workstation/2.mdx
@@ -0,0 +1,31 @@
+---
+title: Write Options
+description: Selecting the USB flash drive write options
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import writeOptions from "@/assets/imgs/Fedora/FedoraMediaWriter/WriteOptions.png";
+
+
+
+Select the latest version available (as of writing, is version 42) and make
+sure you're choosing the right device in the USB Drive dropdown.
+
+Optionally, check "Delete download after writing" if you'd like to save space
+and do not plan to format a USB flash drive again with Fedora anytime soon.
+
+Then, Click "Write"
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/3.mdx b/src/data/distro/fedora/workstation/3.mdx
new file mode 100644
index 0000000..166083f
--- /dev/null
+++ b/src/data/distro/fedora/workstation/3.mdx
@@ -0,0 +1,27 @@
+---
+title: Erase Confirmation
+description: Confirming the formatting of the USB drive.
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import eraseConfirmation from "@/assets/imgs/Fedora/FedoraMediaWriter/EraseConfirmation.png";
+
+
+
+**The entire device that you have selected will be wiped.** Click "Write" if
+you have absolutely made sure that the selected device does not have important
+data on it. This action is **irreversible.**
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/4.mdx b/src/data/distro/fedora/workstation/4.mdx
new file mode 100644
index 0000000..da5e3ca
--- /dev/null
+++ b/src/data/distro/fedora/workstation/4.mdx
@@ -0,0 +1,26 @@
+---
+title: Wait
+description: Wait while Fedora Media Writer does its thing.
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import writing from "@/assets/imgs/Fedora/FedoraMediaWriter/Writing.png";
+
+
+
+Now, wait while Fedora Media Writer is downloading and writing to your USB
+flash drive. You can do something else while it does its thing.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/5.mdx b/src/data/distro/fedora/workstation/5.mdx
new file mode 100644
index 0000000..a9637ad
--- /dev/null
+++ b/src/data/distro/fedora/workstation/5.mdx
@@ -0,0 +1,25 @@
+---
+title: Finished
+description: Finished! Get ready to install.
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import finished from "@/assets/imgs/Fedora/FedoraMediaWriter/Finished.png";
+
+
+
+Done! Next, We'll start the real installation process.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/0.mdx b/src/data/distro/fedora/workstation/afterInstall/0.mdx
new file mode 100644
index 0000000..54a2a81
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/0.mdx
@@ -0,0 +1,23 @@
+---
+title: Willkommen
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import welcome from "@/assets/imgs/Fedora/AfterInstall/WelcomeCropped.png";
+
+
+
+Confirm your language selection and simply click "Next".
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/1.mdx b/src/data/distro/fedora/workstation/afterInstall/1.mdx
new file mode 100644
index 0000000..8957070
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/1.mdx
@@ -0,0 +1,25 @@
+---
+title: Keyboard Layout
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import keyboard from "@/assets/imgs/Fedora/AfterInstall/TypingCropped.png";
+
+
+
+Select your preferred keyboard layout and click "Next".
+
+(Don't worry bilinguals, You'll be able to add another keyboard layout later!)
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/2.mdx b/src/data/distro/fedora/workstation/afterInstall/2.mdx
new file mode 100644
index 0000000..721267a
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/2.mdx
@@ -0,0 +1,28 @@
+---
+title: Privacy
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import welcome from "@/assets/imgs/Fedora/AfterInstall/PrivacyCropped.png";
+
+
+
+Check whether you want location services and automatic problem reporting.
+
+You can disable the location service if you do not plan to use any apps
+that rely on your location such as Maps.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/3.mdx b/src/data/distro/fedora/workstation/afterInstall/3.mdx
new file mode 100644
index 0000000..3fc005c
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/3.mdx
@@ -0,0 +1,23 @@
+---
+title: On the topic of time
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import timeZone from "@/assets/imgs/Fedora/AfterInstall/TimeZoneCropped.png";
+
+
+
+Search for your city (or the one near you) to select the time zone.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/4.mdx b/src/data/distro/fedora/workstation/afterInstall/4.mdx
new file mode 100644
index 0000000..d38d327
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/4.mdx
@@ -0,0 +1,28 @@
+---
+title: Parties!
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import image from "@/assets/imgs/Fedora/AfterInstall/ThirdPartyRepoCropped.png";
+
+
+
+Choose whether you want third-party
+repositories
+
+It is recommended that you enable it to ensure access to a wide-variety of
+software and any drivers that you may need now or in the future.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/5.mdx b/src/data/distro/fedora/workstation/afterInstall/5.mdx
new file mode 100644
index 0000000..f4f8053
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/5.mdx
@@ -0,0 +1,29 @@
+---
+title: What is thy name?
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import image from "@/assets/imgs/Fedora/AfterInstall/UsernameCropped.png";
+
+
+
+I think this is obvious enough. Full names can have spaces and whatever you
+fancy and username mostly just contains alphanumeric characters
+under 64 characters in length.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/6.mdx b/src/data/distro/fedora/workstation/afterInstall/6.mdx
new file mode 100644
index 0000000..48ab6e4
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/6.mdx
@@ -0,0 +1,27 @@
+---
+title: "********"
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import image from "@/assets/imgs/Fedora/AfterInstall/PasswordCropped.png";
+
+
+
+Set a new password for your new user account. Just use whatever but most
+importantly, **Don't forget them.** (Write it down in a note somewhere if you
+must)
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/7.mdx b/src/data/distro/fedora/workstation/afterInstall/7.mdx
new file mode 100644
index 0000000..b348dd5
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/7.mdx
@@ -0,0 +1,26 @@
+---
+title: Hooray
+---
+
+import { Picture } from "astro:assets";
+import Party from "@/components/Party.astro";
+import ChoiceList from "@/components/ChoiceList.astro";
+import image from "@/assets/imgs/Fedora/AfterInstall/OnboardDoneCropped.png";
+
+
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/afterInstall/8.mdx b/src/data/distro/fedora/workstation/afterInstall/8.mdx
new file mode 100644
index 0000000..1ca5554
--- /dev/null
+++ b/src/data/distro/fedora/workstation/afterInstall/8.mdx
@@ -0,0 +1,28 @@
+---
+title: Hooray
+---
+
+import { Picture } from "astro:assets";
+import Party from "@/components/Party.astro";
+import ChoiceList from "@/components/ChoiceList.astro";
+import image from "@/assets/imgs/Fedora/AfterInstall/OptionalTour.png";
+
+
+
+Now press the Super key (or also called the Windows key) and get into the
+overview of your desktop! You may receive this tour invitation and I would
+recommend that you take the tour to learn your way around the desktop.
+
+
+
+ Back Home
+
+
diff --git a/src/data/distro/fedora/workstation/install/0.mdx b/src/data/distro/fedora/workstation/install/0.mdx
new file mode 100644
index 0000000..8bcc4bf
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/0.mdx
@@ -0,0 +1,21 @@
+---
+title: Installation
+description: The steps of installing Fedora Linux
+---
+
+import ChoiceList from "@/components/ChoiceList.astro";
+import QRCode from "@/components/QRCode.astro";
+
+The steps after this will require you to restart the machine you're going to
+install Linux on. If that is the machine you're viewing this guide on, You
+should likely switch to a phone or other devices.
+
+
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/1.mdx b/src/data/distro/fedora/workstation/install/1.mdx
new file mode 100644
index 0000000..e7b9c34
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/1.mdx
@@ -0,0 +1,18 @@
+---
+title: Restart
+description: Restarting your machine to boot from the USB flash drive
+---
+
+import ChoiceList from "@/components/ChoiceList.astro";
+
+Next, you'll need to restart your machine to boot from the USB flash drive.
+
+Please look up the boot menu key for your laptop/mainboard manufacturer and
+then when restarting, Press that key repeatedly until the "Boot Menu" pops
+up.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/10.mdx b/src/data/distro/fedora/workstation/install/10.mdx
new file mode 100644
index 0000000..308c6e4
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/10.mdx
@@ -0,0 +1,32 @@
+---
+title: Installation Method
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import installMethod from "@/assets/imgs/Fedora/Install/InstallationMethod_Cropped.png";
+
+
+
+
+ "Share disk with other operating system" - Share disk space, have more than one OS on your machine
+
+ "Use entire disk" - Wipe the entire thing and install Fedora
+
+ We won't talk about the third option in the picture because it's advanced™
+
+
+
+
+
+
+ I choose to share
+
+
+ Use the entire thang
+
+
diff --git a/src/data/distro/fedora/workstation/install/11.mdx b/src/data/distro/fedora/workstation/install/11.mdx
new file mode 100644
index 0000000..1b6a3b0
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/11.mdx
@@ -0,0 +1,23 @@
+---
+title: Sharing is caring
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import reclaimSpace from "@/assets/imgs/Fedora/Install/ReclaimSpace_Cropped.png";
+import ResizeIcon from "@/assets/icons/fa-compress-arrows-alt.svg";
+
+
+
+You should likely resize the biggest partition, which in the picture is `sda3`
+with 67.9 GB of total space (which in the example system, is the Windows C
+drive). Click
+to resize.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/12.mdx b/src/data/distro/fedora/workstation/install/12.mdx
new file mode 100644
index 0000000..6f7581b
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/12.mdx
@@ -0,0 +1,22 @@
+---
+title: Resize it!
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import reclaimSpace from "@/assets/imgs/Fedora/Install/ReclaimSpaceSlider_Cropped.png";
+
+
+
+Choose a new size for your partition. Please also keep in mind the available
+space of your partition. Simply click "Resize" after you're done.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/13.mdx b/src/data/distro/fedora/workstation/install/13.mdx
new file mode 100644
index 0000000..f3cf5fa
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/13.mdx
@@ -0,0 +1,21 @@
+---
+title: Reclaim Territory
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import reclaimSpace from "@/assets/imgs/Fedora/Install/ReclaimSpaceDone_Cropped.png";
+
+
+
+Now, Verify your configuration and click "Reclaim space".
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/14.mdx b/src/data/distro/fedora/workstation/install/14.mdx
new file mode 100644
index 0000000..6ef7e6b
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/14.mdx
@@ -0,0 +1,27 @@
+---
+title: Disk Encryption
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import diskEncryption from "@/assets/imgs/Fedora/Install/DiskEncryptionUnchecked_Cropped.png";
+
+
+
+
+ You can optionally encrypt your disk. If you wish to encrypt, Check the
+ checkbox and enter the required information. If not, Just go ahead and
+ press "Next".
+
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/15.mdx b/src/data/distro/fedora/workstation/install/15.mdx
new file mode 100644
index 0000000..fa3a396
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/15.mdx
@@ -0,0 +1,25 @@
+---
+title: Review and Install
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import reviewAndInstall from "@/assets/imgs/Fedora/Install/ReviewAndInstall_Cropped.png";
+
+
+
+
+ Review what the installer is going to do, and press "Install"!
+
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/16.mdx b/src/data/distro/fedora/workstation/install/16.mdx
new file mode 100644
index 0000000..ab000b9
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/16.mdx
@@ -0,0 +1,24 @@
+---
+title: Installing...
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import installing from "@/assets/imgs/Fedora/Install/Installing_Cropped.png";
+
+
+
+Patiently wait. Eat some snacks, listen to some music, find something else to do.
+
+This process should take around 5-10 minutes or longer depending on your
+hardware speed and internet connection.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/17.mdx b/src/data/distro/fedora/workstation/install/17.mdx
new file mode 100644
index 0000000..2a60415
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/17.mdx
@@ -0,0 +1,21 @@
+---
+title: You slayed it
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import installing from "@/assets/imgs/Fedora/Install/InstallationFinished_Cropped.png";
+
+
+
+Done!
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/18.mdx b/src/data/distro/fedora/workstation/install/18.mdx
new file mode 100644
index 0000000..11b298a
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/18.mdx
@@ -0,0 +1,26 @@
+---
+title: Your journey begins anew
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import restart from "@/assets/imgs/Fedora/Install/RestartMenu_Cropped.png";
+
+
+
+Now, go to the top right corner of your desktop and click to open the System
+menu, then press the power button and restart. (Remember this menu, you'll use
+it often!)
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/2.mdx b/src/data/distro/fedora/workstation/install/2.mdx
new file mode 100644
index 0000000..20f8ca2
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/2.mdx
@@ -0,0 +1,25 @@
+---
+title: Boot Menu
+description: Choose your USB flash drive
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import bootMenu from "@/assets/imgs/Fedora/Boot/MSIBootMenu_Cropped.jpg";
+
+
+
+ Example: MSI Boot Menu
+
+
+In the next 3 steps, Please read what's on here first before putting it into
+action as it will mostly require fast actions.
+
+After the boot menu pops up, use the arrow keys (Up/Down) on your keyboard to
+select the USB flash drive then press Enter.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/3.mdx b/src/data/distro/fedora/workstation/install/3.mdx
new file mode 100644
index 0000000..3af12a4
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/3.mdx
@@ -0,0 +1,29 @@
+---
+title: Boot Menu
+description: Choose your USB flash drive
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import bootOption from "@/assets/imgs/Fedora/Boot/BootOptionRestoration_Cropped.png";
+
+
+
+
+ You _may_ see this screen if you have secure boot enabled, Press any key on
+ your keyboard to stop your system from restarting.
+
+ You can ignore this step (and the next) if you do not face this screen.
+
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/4.mdx b/src/data/distro/fedora/workstation/install/4.mdx
new file mode 100644
index 0000000..8514b99
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/4.mdx
@@ -0,0 +1,26 @@
+---
+title: Boot Menu
+description: Choose your USB flash drive
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import continueBoot from "@/assets/imgs/Fedora/Boot/ContinueBootOption_Cropped.png";
+
+
+
+
+ After that, press the arrow down key to select "Continue boot" and then
+ press Enter.
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/5.mdx b/src/data/distro/fedora/workstation/install/5.mdx
new file mode 100644
index 0000000..3334491
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/5.mdx
@@ -0,0 +1,27 @@
+---
+title: GRUB Menu
+description: Entering Fedora Linux
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import continueBoot from "@/assets/imgs/Fedora/Install/GRUB_Cropped.png";
+
+
+
+
+ You can simply press Enter to continue. However, If your machine is
+ slow, You could skip the test by pressing the arrow up key and Enter to
+ directly enter the desktop.
+
+
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/6.mdx b/src/data/distro/fedora/workstation/install/6.mdx
new file mode 100644
index 0000000..f04dcb0
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/6.mdx
@@ -0,0 +1,23 @@
+---
+title: Integrity Check
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import check from "@/assets/imgs/Fedora/Install/Check_Cropped.png";
+
+
+
+If you didn't skip the test, You will see this screen.
+Simply wait for it to complete and you'll go right into
+the desktop.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/7.mdx b/src/data/distro/fedora/workstation/install/7.mdx
new file mode 100644
index 0000000..12eb0c7
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/7.mdx
@@ -0,0 +1,24 @@
+---
+title: Welcome
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import overview from "@/assets/imgs/Fedora/Install/Overview.png";
+
+
+
+Welcome to the desktop! You're in the "Overview" view and you can simply click
+on the Welcome window to get started in installing Fedora Workstation, or
+optionally, you could explore and play with it a little first.
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/8.mdx b/src/data/distro/fedora/workstation/install/8.mdx
new file mode 100644
index 0000000..2f06297
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/8.mdx
@@ -0,0 +1,22 @@
+---
+title: Install
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import welcome from "@/assets/imgs/Fedora/Install/Welcome.png";
+
+
+
+So, let's get started on the real installation. Click "Install Fedora..."
+
+
+
+ Continue
+
+
diff --git a/src/data/distro/fedora/workstation/install/9.mdx b/src/data/distro/fedora/workstation/install/9.mdx
new file mode 100644
index 0000000..665cae1
--- /dev/null
+++ b/src/data/distro/fedora/workstation/install/9.mdx
@@ -0,0 +1,22 @@
+---
+title: Language
+---
+
+import { Picture } from "astro:assets";
+import ChoiceList from "@/components/ChoiceList.astro";
+import language from "@/assets/imgs/Fedora/Install/Install_Language.png";
+
+
+
+Select your preferred language and click Next.
+
+
+
+ Continue
+
+
diff --git a/src/data/distroquiz.ts b/src/data/distroquiz.ts
index b4aa775..0dc0fe0 100644
--- a/src/data/distroquiz.ts
+++ b/src/data/distroquiz.ts
@@ -70,7 +70,7 @@ const distroQuizDialogs: Dialog[] = [
{
text: "Continue",
action: "link",
- data: getRelativeLocaleUrl("en", "fedora/0"),
+ data: getRelativeLocaleUrl("en", "distro/fedora/0"),
},
],
}, // 3
diff --git a/src/pages/en/contents.astro b/src/pages/en/contents.astro
new file mode 100644
index 0000000..f0f6a25
--- /dev/null
+++ b/src/pages/en/contents.astro
@@ -0,0 +1,140 @@
+---
+import BasicLayout from "@/layouts/BasicLayout.astro";
+import distroQuizDialogs from "@/data/distroquiz";
+import { getRelativeLocaleUrl } from "astro:i18n";
+import fedoraDialogs from "@/data/distro/fedora/fedora";
+import { getCollection } from "astro:content";
+
+const docs = await getCollection("distroGuide");
+---
+
+
+
+
+ distroquiz
+
+ {
+ distroQuizDialogs.map((v, i) => (
+
+
+ {v.title}
+
+
+ ))
+ }
+
+
+
+ Fedora Linux
+
+ Fedora Workstation
+
+ {
+ docs
+ .filter((v) => {
+ const index = v.id.substring(19);
+ return !Number.isNaN(parseInt(index));
+ })
+ .map((v, i) => (
+
+
+ {v.data.title}
+
+
+ ))
+ }
+
+
+ Installation
+
+ {
+ docs
+ .filter((v) => {
+ const index = v.id.substring(27);
+ return !Number.isNaN(parseInt(index));
+ })
+ .map((v, i) => (
+
+
+ {v.data.title}
+
+
+ ))
+ }
+
+
+
+ After Installation
+
+ {
+ docs
+ .filter((v) => {
+ const index = v.id.substring(32);
+ return !Number.isNaN(parseInt(index));
+ })
+ .map((v, i) => (
+
+
+ {v.data.title}
+
+
+ ))
+ }
+
+
+
+
+ {
+ fedoraDialogs.map((v, i) => (
+
+
+ {v.title}
+
+
+ ))
+ }
+
+
+
+
+
+
diff --git a/src/pages/en/distro/[...id].astro b/src/pages/en/distro/[...id].astro
new file mode 100644
index 0000000..98db017
--- /dev/null
+++ b/src/pages/en/distro/[...id].astro
@@ -0,0 +1,29 @@
+---
+import TransitionLayout from "@/layouts/TransitionLayout.astro";
+import type { GetStaticPaths } from "astro";
+import { getCollection, render } from "astro:content";
+
+export const getStaticPaths = (async () => {
+ const docs = await getCollection("distroGuide");
+
+ return docs.map((doc) => ({
+ params: { id: doc.id },
+ props: { doc },
+ }));
+}) satisfies GetStaticPaths;
+
+const { doc } = Astro.props;
+const { Content } = await render(doc);
+---
+
+
+
+
+
{doc.data.title}
+
+
+
+
diff --git a/src/pages/en/fedora/[index].astro b/src/pages/en/distro/fedora/[index].astro
similarity index 80%
rename from src/pages/en/fedora/[index].astro
rename to src/pages/en/distro/fedora/[index].astro
index 033354a..c68649e 100644
--- a/src/pages/en/fedora/[index].astro
+++ b/src/pages/en/distro/fedora/[index].astro
@@ -1,8 +1,8 @@
---
import TransitionLayout from "@/layouts/TransitionLayout.astro";
-import { getChoices, mapStaticPaths, type Dialog } from "@/lib/tinyvn";
+import { getChoices, mapStaticPaths } from "@/lib/tinyvn";
import type { GetStaticPaths } from "astro";
-import dialogs from "@/data/fedora";
+import dialogs from "@/data/distro/fedora/fedora";
export const getStaticPaths = (() => {
return mapStaticPaths(dialogs);
@@ -19,7 +19,7 @@ const { title, content, choices } = Astro.props;
diff --git a/src/pages/en/index.astro b/src/pages/en/index.astro
index 9c4eb8b..d510488 100644
--- a/src/pages/en/index.astro
+++ b/src/pages/en/index.astro
@@ -70,7 +70,14 @@ const startLink = getRelativeLocaleUrl("en", "start");
- Made with ♥ from lines-of-codes.
+
+ Made with ♥ from lines-of-codes.
diff --git a/src/pages/en/privacy.astro b/src/pages/en/privacy.astro
new file mode 100644
index 0000000..94507b5
--- /dev/null
+++ b/src/pages/en/privacy.astro
@@ -0,0 +1,70 @@
+---
+import BasicLayout from "@/layouts/BasicLayout.astro";
+---
+
+
+
+ Privacy Policy
+
+
+ Privacy Policy written on 16th September 2025. In effect
+ immediately.
+
+
+ Definitions
+
+ "We" refers to the operator(s) of the website.
+
+ Your Information
+
+
+ We do not store or keep track of your information for longer than
+ necessary.
+
+
+ Definition of "necessary"
+
+
+ Your information is only stored as long as the server needs it to
+ process your request and serve you the webpage.
+
+
+ Changes to this policy
+
+
+ When this policy is edited in a way that changes its meaning such as
+ how we collect, process and store data, A prominent banner shall be
+ made visible on the main page of the website. Changes to this policy
+ will be notified at least 30 days before it is in effect.
+
+
+
+ What doesn't consider as a meaning change are minor changes such as
+ corrections/clarifications of inaccurate statements that does not
+ change the overall meaning of the policy and spelling or
+ grammartical fixes.
+
+
+ Contact
+
+ If you have questions or suggestions, Please reach out to
+ linesofcodes[at]dailitation[dot]xyz
+
+
+
+
+
diff --git a/wrangler.jsonc b/wrangler.jsonc
new file mode 100644
index 0000000..8ed2631
--- /dev/null
+++ b/wrangler.jsonc
@@ -0,0 +1,9 @@
+{
+ "$schema": "node_modules/wrangler/config-schema.json",
+ "name": "movetolinux",
+ // Update to today's date
+ "compatibility_date": "2025-09-15",
+ "assets": {
+ "directory": "./dist"
+ }
+}
\ No newline at end of file