diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 52fce025..ebe925d6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,6 @@ # Chris rules EVERYTHING (including paths listed below) -* @ChrisTitusTech \ No newline at end of file +* @ChrisTitusTech + +# Seanh1917 (ANGRYxScotsmans) is the docs guy +docs/ @ChrisTitusTech @seanh1995 +tools/devdocs-generator.* @ChrisTitusTech @seanh1995 \ No newline at end of file diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 77a7e9cc..798b223d 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -1,4 +1,4 @@ -name: Deploy Hugo site to Pages +name: Deploy Astro site to Pages on: push: @@ -30,23 +30,13 @@ jobs: if: github.repository == 'ChrisTitusTech/winutil' runs-on: ubuntu-latest env: - HUGO_VERSION: 0.156.0 - HUGO_ENVIRONMENT: production TZ: America/Chicago steps: - - name: Install Hugo CLI - run: | - wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ - && sudo dpkg -i ${{ runner.temp }}/hugo.deb - name: Checkout uses: actions/checkout@v7 with: - submodules: recursive fetch-depth: 0 persist-credentials: false - - name: Setup Pages - id: pages - uses: actions/configure-pages@v6 - name: Generate Dev Docs from JSON shell: pwsh @@ -65,7 +55,7 @@ jobs: branch: docs-update delete-branch: true add-paths: | - docs/content/dev/ + docs/src/content/docs/code-reference/ config/tweaks.json config/feature.json labels: | @@ -78,35 +68,10 @@ jobs: echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" - - name: Install Node.js dependencies - run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" - - name: Cache Restore - id: cache-restore - uses: actions/cache/restore@v6 + - name: Install, build, and upload your site + uses: withastro/action@v6 with: - path: | - ${{ runner.temp }}/hugo_cache - key: hugo-${{ github.run_id }} - restore-keys: hugo- - - name: Build with Hugo - run: | - hugo \ - --gc \ - --minify \ - --cleanDestinationDir \ - --source docs \ - --cacheDir "${{ runner.temp }}/hugo_cache" - - name: Cache Save - id: cache-save - uses: actions/cache/save@v6 - with: - path: | - ${{ runner.temp }}/hugo_cache - key: ${{ steps.cache-restore.outputs.cache-primary-key }} - - name: Upload artifact - uses: actions/upload-pages-artifact@v5 - with: - path: ./docs/public + path: docs deploy: if: github.repository == 'ChrisTitusTech/winutil' diff --git a/.gitignore b/.gitignore index 038c7354..712df037 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ desktop.ini .vscode/ .idea/ -# hugo files -docs/public/ -docs/.hugo_build.lock -docs/resources/ +# hugo files (archived docs) +docs-old/public/ +docs-old/.hugo_build.lock +docs-old/resources/ diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..6240da8b --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..1b7f5c3d --- /dev/null +++ b/docs/README.md @@ -0,0 +1,49 @@ +# Starlight Starter Kit: Basics + +[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build) + +``` +npm create astro@latest -- --template starlight +``` + +> πŸ§‘β€πŸš€ **Seasoned astronaut?** Delete this file. Have fun! + +## πŸš€ Project Structure + +Inside of your Astro + Starlight project, you'll see the following folders and files: + +``` +. +β”œβ”€β”€ public/ +β”œβ”€β”€ src/ +β”‚ β”œβ”€β”€ assets/ +β”‚ β”œβ”€β”€ content/ +β”‚ β”‚ └── docs/ +β”‚ └── content.config.ts +β”œβ”€β”€ astro.config.mjs +β”œβ”€β”€ package.json +└── tsconfig.json +``` + +Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name. + +Images can be added to `src/assets/` and embedded in Markdown with a relative link. + +Static assets, like favicons, can be placed in the `public/` directory. + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `npm install` | Installs dependencies | +| `npm run dev` | Starts local dev server at `localhost:4321` | +| `npm run build` | Build your production site to `./dist/` | +| `npm run preview` | Preview your build locally, before deploying | +| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `npm run astro -- --help` | Get help using the Astro CLI | + +## πŸ‘€ Want to learn more? + +Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat). diff --git a/docs/archetypes/default.md b/docs/archetypes/default.md deleted file mode 100644 index 3e72f68c..00000000 --- a/docs/archetypes/default.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: '{{ replace .File.ContentBaseName "-" " " | title }}' -description: "" -date: '{{ .Date }}' -draft: true ---- diff --git a/docs/assets/images/Fork-Button-Light.png b/docs/assets/images/Fork-Button-Light.png deleted file mode 100644 index 11d56fea..00000000 Binary files a/docs/assets/images/Fork-Button-Light.png and /dev/null differ diff --git a/docs/assets/images/updates-tab-new.png b/docs/assets/images/updates-tab-new.png deleted file mode 100644 index e88eea0a..00000000 Binary files a/docs/assets/images/updates-tab-new.png and /dev/null differ diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs new file mode 100644 index 00000000..63201b5b --- /dev/null +++ b/docs/astro.config.mjs @@ -0,0 +1,64 @@ +// @ts-check +import { defineConfig } from 'astro/config'; +import starlight from '@astrojs/starlight'; + +// https://astro.build/config +export default defineConfig({ + site: 'https://winutil.christitus.com/', + integrations: [ + starlight({ + title: 'WinUtil', + description: "Chris Titus Tech's Windows Utility β€” install apps, apply tweaks, run fixes, and manage Windows from one place.", + logo: { + src: './src/assets/branding/navlogo.png', + replacesTitle: true, + }, + favicon: '/favicon.svg', + social: [ + { icon: 'github', label: 'GitHub', href: 'https://github.com/ChrisTitusTech/winutil' }, + { icon: 'discord', label: 'Discord', href: 'https://discord.gg/RUbZUZyByQ' }, + ], + customCss: ['./src/styles/theme.css'], + components: { + ThemeProvider: './src/components/ThemeProvider.astro', + Hero: './src/components/Hero.astro', + Header: './src/components/Header.astro', + Footer: './src/components/Footer.astro', + }, + editLink: { + baseUrl: 'https://github.com/ChrisTitusTech/winutil/edit/main/docs/', + }, + sidebar: [ + { + label: 'User Guide', + items: [ + { label: 'Overview', slug: 'guides' }, + { label: 'Getting Started', slug: 'guides/getting-started' }, + { label: 'Applications', slug: 'guides/application' }, + { label: 'Tweaks', slug: 'guides/tweaks' }, + { label: 'Features', slug: 'guides/features' }, + { label: 'Updates', slug: 'guides/updates' }, + { label: 'Automation', slug: 'guides/automation' }, + { label: 'Win11 Creator', slug: 'guides/win11creator' }, + ], + }, + { + label: 'Code Reference', + items: [ + { label: 'Architecture & Design', slug: 'code-reference/architecture' }, + { label: 'Tweaks Reference', items: [{ autogenerate: { directory: 'code-reference/tweaks' } }] }, + { label: 'Features Reference', items: [{ autogenerate: { directory: 'code-reference/features' } }] }, + ], + }, + { + label: 'Help', + items: [ + { label: 'FAQ', slug: 'faq' }, + { label: 'Known Issues', slug: 'known-issues' }, + { label: 'Contributing', slug: 'contributing' }, + ], + }, + ], + }), + ], +}); diff --git a/docs/content/_index.md b/docs/content/_index.md deleted file mode 100644 index a37da09e..00000000 --- a/docs/content/_index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Welcome to WinUtil Documentation! -toc: false -width: full ---- - -
- Version - GitHub Downloads - Discord Community Server -
- -Welcome to the official documentation for WinUtil, your go-to utility for optimizing and managing your Windows environment. Whether you’re an IT professional, power user, or regular user, WinUtil provides a comprehensive set of tools to enhance your Windows experience. - -{{< image src="images/Title-Screen" alt="WinUtil title screen" >}} - -## Running the latest release of WinUtil - -* You will first need to start a PowerShell terminal **as Admin**. -* Now you can run the following command: - -``` -irm "https://christitus.com/win" | iex -``` - - -> [!IMPORTANT] -> WinUtil is updated frequently as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information. diff --git a/docs/content/dev/_index.md b/docs/content/dev/_index.md deleted file mode 100644 index 4d48a6c6..00000000 --- a/docs/content/dev/_index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Developer Reference -weight: 3 -toc: false ---- - -> [!NOTE] -> This section contains code-only references. For end-user documentation, see the [User Guide](../userguide/). - -## Architecture - -- [Architecture & Design](architecture/) - Code structure, data flow, and how Winutil works internally - -## Tweaks - -### Essential Tweaks - -{{< autolinks section="dev/tweaks/essential-tweaks" >}} - -### Advanced Tweaks (CAUTION) - -{{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}} - -### Customize Preferences - -{{< autolinks section="dev/tweaks/customize-preferences" >}} - -### Performance Plans - -{{< autolinks section="dev/tweaks/performance-plans" >}} - -## Features - -### Fixes - -{{< autolinks section="dev/features/fixes" >}} - -### Legacy Windows Panels - -{{< autolinks section="dev/features/legacy-windows-panels" >}} - -### Features - -{{< autolinks section="dev/features/features" >}} - -### Remote Access - -{{< autolinks section="dev/features/remote-access" >}} - -### Powershell Profile Powershell 7+ Only - -{{< autolinks section="dev/features/powershell-profile-powershell-7--only" >}} diff --git a/docs/content/dev/features/Features/DisableLegacyRecovery.md b/docs/content/dev/features/Features/DisableLegacyRecovery.md deleted file mode 100644 index e268e966..00000000 --- a/docs/content/dev/features/Features/DisableLegacyRecovery.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Legacy F8 Boot Recovery - Disable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=107} - "WPFFeatureDisableLegacyRecovery": { - "Content": "Legacy F8 Boot Recovery - Disable", - "Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", - "category": "Features", - "panel": "1", - "feature": [], - "InvokeScript": [ - "bcdedit /set bootmenupolicy standard" - ], -``` diff --git a/docs/content/dev/features/Features/EnableLegacyRecovery.md b/docs/content/dev/features/Features/EnableLegacyRecovery.md deleted file mode 100644 index f146818a..00000000 --- a/docs/content/dev/features/Features/EnableLegacyRecovery.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Legacy F8 Boot Recovery - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=96} - "WPFFeatureEnableLegacyRecovery": { - "Content": "Legacy F8 Boot Recovery - Enable", - "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", - "category": "Features", - "panel": "1", - "feature": [], - "InvokeScript": [ - "bcdedit /set bootmenupolicy legacy" - ], -``` diff --git a/docs/content/dev/features/Features/RegBackup.md b/docs/content/dev/features/Features/RegBackup.md deleted file mode 100644 index 4fda2145..00000000 --- a/docs/content/dev/features/Features/RegBackup.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Registry Backup (Daily Task 12:30am) - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=79} - "WPFFeatureRegBackup": { - "Content": "Registry Backup (Daily Task 12:30am) - Enable", - "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.", - "category": "Features", - "panel": "1", - "feature": [], - "InvokeScript": [ - " - New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force - New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force - $action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"' - $trigger = New-ScheduledTaskTrigger -Daily -At 00:30 - Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System' - " - ], -``` diff --git a/docs/content/dev/features/Features/Sandbox.md b/docs/content/dev/features/Features/Sandbox.md deleted file mode 100644 index d41ea73f..00000000 --- a/docs/content/dev/features/Features/Sandbox.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Windows Sandbox - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=118} - "WPFFeaturesSandbox": { - "Content": "Windows Sandbox - Enable", - "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.", - "category": "Features", - "panel": "1", - "feature": [ - "Containers-DisposableClientVM" - ], -``` diff --git a/docs/content/dev/features/Features/_index.md b/docs/content/dev/features/Features/_index.md deleted file mode 100644 index 99a10baa..00000000 --- a/docs/content/dev/features/Features/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Features" -weight: 1 -toc: false ---- - -{{< autolinks section="dev/features/features" >}} diff --git a/docs/content/dev/features/Features/dotnet.md b/docs/content/dev/features/Features/dotnet.md deleted file mode 100644 index e854ddc0..00000000 --- a/docs/content/dev/features/Features/dotnet.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: ".NET Framework (Versions 2, 3, 4) - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=2} - "WPFFeaturesdotnet": { - "Content": ".NET Framework (Versions 2, 3, 4) - Enable", - "Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.", - "category": "Features", - "panel": "1", - "feature": [ - "NetFx4-AdvSrvs", - "NetFx3" - ], - "InvokeScript": [], -``` diff --git a/docs/content/dev/features/Features/hyperv.md b/docs/content/dev/features/Features/hyperv.md deleted file mode 100644 index 5cb158a3..00000000 --- a/docs/content/dev/features/Features/hyperv.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Hyper-V - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=24} - "WPFFeatureshyperv": { - "Content": "Hyper-V - Enable", - "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.", - "category": "Features", - "panel": "1", - "feature": [ - "Microsoft-Hyper-V-All" - ], -``` diff --git a/docs/content/dev/features/Features/legacymedia.md b/docs/content/dev/features/Features/legacymedia.md deleted file mode 100644 index 0c797cd2..00000000 --- a/docs/content/dev/features/Features/legacymedia.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: "Legacy Media Components (WMP, DirectPlay) - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=34} - "WPFFeatureslegacymedia": { - "Content": "Legacy Media Components (WMP, DirectPlay) - Enable", - "Description": "Enables legacy programs from previous versions of Windows.", - "category": "Features", - "panel": "1", - "feature": [ - "WindowsMediaPlayer", - "MediaPlayback", - "DirectPlay", - "LegacyComponents" - ], - "InvokeScript": [], -``` diff --git a/docs/content/dev/features/Features/nfs.md b/docs/content/dev/features/Features/nfs.md deleted file mode 100644 index 5a301818..00000000 --- a/docs/content/dev/features/Features/nfs.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Network File System (NFS) - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=60} - "WPFFeaturenfs": { - "Content": "Network File System (NFS) - Enable", - "Description": "Network File System (NFS) is a mechanism for storing files on a network.", - "category": "Features", - "panel": "1", - "feature": [ - "ServicesForNFS-ClientOnly", - "ClientForNFS-Infrastructure", - "NFS-Administration" - ], - "InvokeScript": [ - "nfsadmin client stop", - "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0", - "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0", - "nfsadmin client start", - "nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i" - ], -``` diff --git a/docs/content/dev/features/Features/wsl.md b/docs/content/dev/features/Features/wsl.md deleted file mode 100644 index c50ffaca..00000000 --- a/docs/content/dev/features/Features/wsl.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Windows Subsystem for Linux (WSL) - Enable" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=48} - "WPFFeaturewsl": { - "Content": "Windows Subsystem for Linux (WSL) - Enable", - "Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.", - "category": "Features", - "panel": "1", - "feature": [ - "VirtualMachinePlatform", - "Microsoft-Windows-Subsystem-Linux" - ], - "InvokeScript": [], -``` diff --git a/docs/content/dev/features/Fixes/Autologin.md b/docs/content/dev/features/Fixes/Autologin.md deleted file mode 100644 index 36cbb016..00000000 --- a/docs/content/dev/features/Fixes/Autologin.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "AutoLogon - Run" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFPanelAutologin.ps1",linenos=inline,linenostart=1} -function Invoke-WPFPanelAutologin { - Invoke-WebRequest -Uri https://live.sysinternals.com/Autologon.exe -OutFile "$winutildir\autologin.exe" - Start-Process -FilePath "$winutildir\autologin.exe" -ArgumentList /accepteula -} -``` diff --git a/docs/content/dev/features/Fixes/DISM.md b/docs/content/dev/features/Fixes/DISM.md deleted file mode 100644 index b262a640..00000000 --- a/docs/content/dev/features/Fixes/DISM.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "System Corruption Scan - Run" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFSystemRepair.ps1",linenos=inline,linenostart=1} -function Invoke-WPFSystemRepair { - <# - .SYNOPSIS - Checks for system corruption using SFC, and DISM - Checks for disk failure using Chkdsk - - .DESCRIPTION - 1. Chkdsk - Checks for disk errors, which can cause system file corruption and notifies of early disk failure - 2. SFC - scans protected system files for corruption and fixes them - 3. DISM - Repair a corrupted Windows operating system image - #> - - Start-Process cmd.exe -ArgumentList "/c chkdsk /scan /perf" -NoNewWindow -Wait - Start-Process cmd.exe -ArgumentList "/c sfc /scannow" -NoNewWindow -Wait - Start-Process cmd.exe -ArgumentList "/c dism /online /cleanup-image /restorehealth" -NoNewWindow -Wait - - Write-Host "==> Finished System Repair" - Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" -} -``` diff --git a/docs/content/dev/features/Fixes/NTPPool.md b/docs/content/dev/features/Fixes/NTPPool.md deleted file mode 100644 index d3e8990b..00000000 --- a/docs/content/dev/features/Fixes/NTPPool.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "NTP Server - Enable" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFFixesNTPPool.ps1",linenos=inline,linenostart=1} -function Invoke-WPFFixesNTPPool { - <# - .SYNOPSIS - Configures Windows to use pool.ntp.org for NTP synchronization - - .DESCRIPTION - Replaces the default Windows NTP server (time.windows.com) with - pool.ntp.org for improved time synchronization accuracy and reliability. - #> - - Start-Service w32time - w32tm /config /update /manualpeerlist:"pool.ntp.org,0x8" /syncfromflags:MANUAL - - Restart-Service w32time - w32tm /resync - - Write-Host "=================================" - Write-Host "-- NTP Configuration Complete ---" - Write-Host "=================================" -} -``` diff --git a/docs/content/dev/features/Fixes/Network.md b/docs/content/dev/features/Fixes/Network.md deleted file mode 100644 index ef633a43..00000000 --- a/docs/content/dev/features/Fixes/Network.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Network - Reset" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFFixesNetwork.ps1",linenos=inline,linenostart=1} -function Invoke-WPFFixesNetwork { - netsh winsock reset - netsh int ip reset - Write-Host "Network Configuration has been Reset. Please restart your computer." -} -``` diff --git a/docs/content/dev/features/Fixes/Update.md b/docs/content/dev/features/Fixes/Update.md deleted file mode 100644 index 42a0bfea..00000000 --- a/docs/content/dev/features/Fixes/Update.md +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: "Windows Update - Reset" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFFixesUpdate.ps1",linenos=inline,linenostart=1} -function Invoke-WPFFixesUpdate { - - <# - - .SYNOPSIS - Performs various tasks in an attempt to repair Windows Update - - .DESCRIPTION - 1. (Aggressive Only) Scans the system for corruption using the Invoke-WPFSystemRepair function - 2. Stops Windows Update Services - 3. Remove the QMGR Data file, which stores BITS jobs - 4. (Aggressive Only) Renames the DataStore and CatRoot2 folders - DataStore - Contains the Windows Update History and Log Files - CatRoot2 - Contains the Signatures for Windows Update Packages - 5. Renames the Windows Update Download Folder - 6. Deletes the Windows Update Log - 7. (Aggressive Only) Resets the Security Descriptors on the Windows Update Services - 8. Reregisters the BITS and Windows Update DLLs - 9. Removes the WSUS client settings - 10. Resets WinSock - 11. Gets and deletes all BITS jobs - 12. Sets the startup type of the Windows Update Services then starts them - 13. Forces Windows Update to check for updates - - .PARAMETER Aggressive - If specified, the script will take additional steps to repair Windows Update that are more dangerous, take a significant amount of time, or are generally unnecessary - - #> - - param($Aggressive = $false) - - Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0 - Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" - Write-Host "Starting Windows Update Repair..." - # Wait for the first progress bar to show, otherwise the second one won't show - Start-Sleep -Milliseconds 200 - - if ($Aggressive) { - Invoke-WPFSystemRepair - } - - - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Stopping Windows Update Services..." -PercentComplete 10 - # Stop the Windows Update Services - Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping BITS..." -PercentComplete 0 - Stop-Service -Name BITS -Force - Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping wuauserv..." -PercentComplete 20 - Stop-Service -Name wuauserv -Force - Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping appidsvc..." -PercentComplete 40 - Stop-Service -Name appidsvc -Force - Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Stopping cryptsvc..." -PercentComplete 60 - Stop-Service -Name cryptsvc -Force - Write-Progress -Id 2 -ParentId 0 -Activity "Stopping Services" -Status "Completed" -PercentComplete 100 - - - # Remove the QMGR Data file - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Renaming/Removing Files..." -PercentComplete 20 - Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing QMGR Data files..." -PercentComplete 0 - Remove-Item "$env:allusersprofile\Application Data\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue - - - if ($Aggressive) { - # Rename the Windows Update Log and Signature Folders - Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Log, Download, and Signature Folder..." -PercentComplete 20 - Rename-Item $env:systemroot\SoftwareDistribution\DataStore DataStore.bak -ErrorAction SilentlyContinue - Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue - } - - # Rename the Windows Update Download Folder - Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Renaming the Windows Update Download Folder..." -PercentComplete 20 - Rename-Item $env:systemroot\SoftwareDistribution\Download Download.bak -ErrorAction SilentlyContinue - - # Delete the legacy Windows Update Log - Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Removing the old Windows Update log..." -PercentComplete 80 - Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue - Write-Progress -Id 3 -ParentId 0 -Activity "Renaming/Removing Files" -Status "Completed" -PercentComplete 100 - - - if ($Aggressive) { - # Reset the Security Descriptors on the Windows Update Services - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25 - Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0 - Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait - Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50 - Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait - Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100 - } - - - # Reregister the BITS and Windows Update DLLs - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Reregistering DLLs..." -PercentComplete 40 - $oldLocation = Get-Location - Set-Location $env:systemroot\system32 - $i = 0 - $DLLs = @( - "atl.dll", "urlmon.dll", "mshtml.dll", "shdocvw.dll", "browseui.dll", - "jscript.dll", "vbscript.dll", "scrrun.dll", "msxml.dll", "msxml3.dll", - "msxml6.dll", "actxprxy.dll", "softpub.dll", "wintrust.dll", "dssenh.dll", - "rsaenh.dll", "gpkcsp.dll", "sccbase.dll", "slbcsp.dll", "cryptdlg.dll", - "oleaut32.dll", "ole32.dll", "shell32.dll", "initpki.dll", "wuapi.dll", - "wuaueng.dll", "wuaueng1.dll", "wucltui.dll", "wups.dll", "wups2.dll", - "wuweb.dll", "qmgr.dll", "qmgrprxy.dll", "wucltux.dll", "muweb.dll", "wuwebv.dll" - ) - foreach ($dll in $DLLs) { - Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Registering $dll..." -PercentComplete ($i / $DLLs.Count * 100) - $i++ - Start-Process -NoNewWindow -FilePath "regsvr32.exe" -ArgumentList "/s", $dll - } - Set-Location $oldLocation - Write-Progress -Id 5 -ParentId 0 -Activity "Reregistering DLLs" -Status "Completed" -PercentComplete 100 - - - # Remove the WSUS client settings - if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") { - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60 - Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0 - Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError "NUL" - Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError "NUL" - Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError "NUL" - Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100 - } - - # Remove Group Policy Windows Update settings - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing Group Policy Windows Update settings..." -PercentComplete 60 - Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -PercentComplete 0 - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue - Write-Host "Defaulting driver offering through Windows Update..." - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue - Write-Host "Defaulting Windows Update automatic restart..." - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue - Write-Host "Clearing ANY Windows Update Policy settings..." - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays" -ErrorAction SilentlyContinue - Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKCU:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKCU:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue - Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue - Start-Process -NoNewWindow -FilePath "secedit" -ArgumentList "/configure", "/cfg", "$env:windir\inf\defltbase.inf", "/db", "defltbase.sdb", "/verbose" -Wait - Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicyUsers" -Wait - Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicy" -Wait - Start-Process -NoNewWindow -FilePath "gpupdate" -ArgumentList "/force" -Wait - Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -Status "Completed" -PercentComplete 100 - - - # Reset WinSock - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65 - Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0 - Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" - Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" - Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" - Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100 - - - # Get and delete all BITS jobs - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Deleting BITS jobs..." -PercentComplete 75 - Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Deleting BITS jobs..." -PercentComplete 0 - Get-BitsTransfer | Remove-BitsTransfer - Write-Progress -Id 8 -ParentId 0 -Activity "Deleting BITS jobs" -Status "Completed" -PercentComplete 100 - - - # Change the startup type of the Windows Update Services and start them - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Starting Windows Update Services..." -PercentComplete 90 - Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting BITS..." -PercentComplete 0 - Get-Service BITS | Set-Service -StartupType Manual -PassThru | Start-Service - Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting wuauserv..." -PercentComplete 25 - Get-Service wuauserv | Set-Service -StartupType Manual -PassThru | Start-Service - Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting AppIDSvc..." -PercentComplete 50 - # The AppIDSvc service is protected, so the startup type has to be changed in the registry - Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\AppIDSvc" -Name "Start" -Value "3" # Manual - Start-Service AppIDSvc - Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Starting CryptSvc..." -PercentComplete 75 - Get-Service CryptSvc | Set-Service -StartupType Manual -PassThru | Start-Service - Write-Progress -Id 9 -ParentId 0 -Activity "Starting Windows Update Services" -Status "Completed" -PercentComplete 100 - - - # Force Windows Update to check for updates - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95 - Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0 - try { - (New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow() - } catch { - Set-WinUtilTaskbaritem -state "Error" -overlay "warning" - Write-Warning "Failed to create Windows Update COM object: $_" - } - Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow" - Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100 - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100 - - Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" - - $ButtonType = [System.Windows.MessageBoxButton]::OK - $MessageboxTitle = "Reset Windows Update " - $Messageboxbody = ("Stock settings loaded.`n Please reboot your computer") - $MessageIcon = [System.Windows.MessageBoxImage]::Information - - [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon) - Write-Host "===============================================" - Write-Host "-- Reset All Windows Update Settings to Stock -" - Write-Host "===============================================" - - # Remove the progress bars - Write-Progress -Id 0 -Activity "Repairing Windows Update" -Completed - Write-Progress -Id 1 -Activity "Scanning for corruption" -Completed - Write-Progress -Id 2 -Activity "Stopping Services" -Completed - Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed - Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed - Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed - Write-Progress -Id 6 -Activity "Removing Group Policy Windows Update settings" -Completed - Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed - Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed - Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed - Write-Progress -Id 10 -Activity "Forcing discovery" -Completed -} -``` diff --git a/docs/content/dev/features/Fixes/Winget.md b/docs/content/dev/features/Fixes/Winget.md deleted file mode 100644 index fa32076d..00000000 --- a/docs/content/dev/features/Fixes/Winget.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "WinGet - Reinstall" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFFixesWinget.ps1",linenos=inline,linenostart=1} -function Invoke-WPFFixesWinget { - - <# - - .SYNOPSIS - Fixes WinGet by running `choco install winget` - .DESCRIPTION - BravoNorris for the fantastic idea of a button to reinstall WinGet - #> - # Install Choco if not already present - try { - Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo" - Write-Host "==> Starting WinGet Repair" - Install-WinUtilWinget - } catch { - Write-Error "Failed to install WinGet: $_" - Set-WinUtilTaskbaritem -state "Error" -overlay "warning" - } finally { - Write-Host "==> Finished WinGet Repair" - Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" - } - -} -``` diff --git a/docs/content/dev/features/Fixes/_index.md b/docs/content/dev/features/Fixes/_index.md deleted file mode 100644 index 76f58da0..00000000 --- a/docs/content/dev/features/Fixes/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Fixes" -weight: 2 -toc: false ---- - -{{< autolinks section="dev/features/fixes" >}} diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Computer.md b/docs/content/dev/features/Legacy-Windows-Panels/Computer.md deleted file mode 100644 index 4aa6f849..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Computer.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Computer Management" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=182} - "WPFPanelComputer": { - "Content": "Computer Management", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "compmgmt.msc" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Control.md b/docs/content/dev/features/Legacy-Windows-Panels/Control.md deleted file mode 100644 index bc6cfe98..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Control.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Control Panel" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=193} - "WPFPanelControl": { - "Content": "Control Panel", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "control" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Firewall.md b/docs/content/dev/features/Legacy-Windows-Panels/Firewall.md deleted file mode 100644 index f7c17eba..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Firewall.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Windows Defender Firewall" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=314} - "WPFPanelFirewall": { - "Content": "Windows Defender Firewall", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "firewall.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Mouse.md b/docs/content/dev/features/Legacy-Windows-Panels/Mouse.md deleted file mode 100644 index 6f54d745..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Mouse.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Mouse Properties" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=204} - "WPFPanelMouse": { - "Content": "Mouse Properties", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "main.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Network.md b/docs/content/dev/features/Legacy-Windows-Panels/Network.md deleted file mode 100644 index fbd5af48..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Network.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Network Connections" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=215} - "WPFPanelNetwork": { - "Content": "Network Connections", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "ncpa.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Power.md b/docs/content/dev/features/Legacy-Windows-Panels/Power.md deleted file mode 100644 index cf902a2e..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Power.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Power Panel" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=226} - "WPFPanelPower": { - "Content": "Power Panel", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "powercfg.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Printer.md b/docs/content/dev/features/Legacy-Windows-Panels/Printer.md deleted file mode 100644 index 77b4436d..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Printer.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Printer Panel" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=237} - "WPFPanelPrinter": { - "Content": "Printer Panel", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "Start-Process 'shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}'" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Programs.md b/docs/content/dev/features/Legacy-Windows-Panels/Programs.md deleted file mode 100644 index 74bcd5fa..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Programs.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Programs and Features" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=248} - "WPFPanelPrograms": { - "Content": "Programs and Features", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "appwiz.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Region.md b/docs/content/dev/features/Legacy-Windows-Panels/Region.md deleted file mode 100644 index 0b22cf3d..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Region.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Region" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=259} - "WPFPanelRegion": { - "Content": "Region", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "intl.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Restore.md b/docs/content/dev/features/Legacy-Windows-Panels/Restore.md deleted file mode 100644 index 4150356a..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Restore.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Windows Restore" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=325} - "WPFPanelRestore": { - "Content": "Windows Restore", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "rstrui.exe" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Security.md b/docs/content/dev/features/Legacy-Windows-Panels/Security.md deleted file mode 100644 index cfcd78f6..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Security.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Security and Maintenance" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=270} - "WPFPanelSecurity": { - "Content": "Security and Maintenance", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "wscui.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Sound.md b/docs/content/dev/features/Legacy-Windows-Panels/Sound.md deleted file mode 100644 index 1dfd0bac..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Sound.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Sound Settings" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=281} - "WPFPanelSound": { - "Content": "Sound Settings", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "mmsys.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/System.md b/docs/content/dev/features/Legacy-Windows-Panels/System.md deleted file mode 100644 index 31e2b3c5..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/System.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "System Properties" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=292} - "WPFPanelSystem": { - "Content": "System Properties", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "sysdm.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/Timedate.md b/docs/content/dev/features/Legacy-Windows-Panels/Timedate.md deleted file mode 100644 index 2f281556..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/Timedate.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Time and Date" -description: "" ---- - -```json {filename="config/feature.json",linenos=inline,linenostart=303} - "WPFPanelTimedate": { - "Content": "Time and Date", - "category": "Legacy Windows Panels", - "panel": "2", - "Type": "Button", - "ButtonWidth": "300", - "InvokeScript": [ - "timedate.cpl" - ], -``` diff --git a/docs/content/dev/features/Legacy-Windows-Panels/_index.md b/docs/content/dev/features/Legacy-Windows-Panels/_index.md deleted file mode 100644 index b09a97bc..00000000 --- a/docs/content/dev/features/Legacy-Windows-Panels/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Legacy Windows Panels" -weight: 3 -toc: false ---- - -{{< autolinks section="dev/features/legacy-windows-panels" >}} diff --git a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/InstallPSProfile.md b/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/InstallPSProfile.md deleted file mode 100644 index c9d8734c..00000000 --- a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/InstallPSProfile.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "CTT PowerShell Profile - Install" -description: "" ---- - -```powershell {filename="functions/private/Invoke-WinUtilInstallPSProfile.ps1",linenos=inline,linenostart=1} -function Invoke-WinUtilInstallPSProfile { - if (-not (Get-Command wt)) { - Write-Host "Windows Terminal not found. Installing..." - Install-WinUtilWinget - winget install Microsoft.WindowsTerminal --source winget --silent - } - - if (-not (Get-Command pwsh)) { - Write-Host "PowerShell 7 not found. Installing..." - Install-WinUtilWinget - winget install Microsoft.PowerShell --source winget --installer-type wix --silent - } - - wt new-tab pwsh -NoExit -Command "irm https://github.com/ChrisTitusTech/powershell-profile/raw/main/setup.ps1 | iex" -} -``` diff --git a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/UninstallPSProfile.md b/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/UninstallPSProfile.md deleted file mode 100644 index 276d7165..00000000 --- a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/UninstallPSProfile.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "CTT PowerShell Profile - Remove" -description: "" ---- - -```powershell {filename="functions/private/Invoke-WinUtilUninstallPSProfile.ps1",linenos=inline,linenostart=1} -function Invoke-WinUtilUninstallPSProfile { - - if (Test-Path ($Profile + ".bak")) { - Move-Item -Path ($Profile + ".bak") -Destination $Profile - } else { - Remove-Item -Path $Profile - } - - Write-Host "Successfully uninstalled CTT PowerShell Profile." -ForegroundColor Green -} -``` diff --git a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/_index.md b/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/_index.md deleted file mode 100644 index c31e1e8b..00000000 --- a/docs/content/dev/features/Powershell-Profile-Powershell-7--Only/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Powershell Profile Powershell 7+ Only" -weight: 5 -toc: false ---- - -{{< autolinks section="dev/features/powershell-profile-powershell-7--only" >}} diff --git a/docs/content/dev/features/Remote-Access/SSHServer.md b/docs/content/dev/features/Remote-Access/SSHServer.md deleted file mode 100644 index 6a635196..00000000 --- a/docs/content/dev/features/Remote-Access/SSHServer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "OpenSSH Server - Enable" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFSSHServer.ps1",linenos=inline,linenostart=1} -function Invoke-WPFSSHServer { - <# - - .SYNOPSIS - Invokes the OpenSSH Server install in a runspace - - #> - - Invoke-WPFRunspace -ScriptBlock { - - Invoke-WinUtilSSHServer - - Write-Host "=======================================" - Write-Host "-- OpenSSH Server installed! ---" - Write-Host "=======================================" - } -} -``` diff --git a/docs/content/dev/features/Remote-Access/_index.md b/docs/content/dev/features/Remote-Access/_index.md deleted file mode 100644 index e557a9e3..00000000 --- a/docs/content/dev/features/Remote-Access/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Remote Access" -weight: 4 -toc: false ---- - -{{< autolinks section="dev/features/remote-access" >}} diff --git a/docs/content/dev/features/_index.md b/docs/content/dev/features/_index.md deleted file mode 100644 index 1680214a..00000000 --- a/docs/content/dev/features/_index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Features" -weight: 1 -toc: false ---- - -### Fixes - -{{< autolinks section="dev/features/fixes" >}} - -### Legacy Windows Panels - -{{< autolinks section="dev/features/legacy-windows-panels" >}} - -### Features - -{{< autolinks section="dev/features/features" >}} - -### Remote Access - -{{< autolinks section="dev/features/remote-access" >}} - -### Powershell Profile Powershell 7+ Only - -{{< autolinks section="dev/features/powershell-profile-powershell-7--only" >}} diff --git a/docs/content/dev/tweaks/Customize-Preferences/BatteryPercentage.md b/docs/content/dev/tweaks/Customize-Preferences/BatteryPercentage.md deleted file mode 100644 index 8ba29709..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/BatteryPercentage.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "System Tray Battery Percentage" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1268} - "WPFToggleBatteryPercentage": { - "Content": "System Tray Battery Percentage", - "Description": "Shows numeric battery percentage next to the battery icon in the system tray.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "IsBatteryPercentageEnabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/BingSearch.md b/docs/content/dev/tweaks/Customize-Preferences/BingSearch.md deleted file mode 100644 index a9de7d07..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/BingSearch.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Start Menu Bing Search" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1621} - "WPFToggleBingSearch": { - "Content": "Start Menu Bing Search", - "Description": "Toggles Bing web search results in Windows Search.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search", - "Name": "BingSearchEnabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/DarkMode.md b/docs/content/dev/tweaks/Customize-Preferences/DarkMode.md deleted file mode 100644 index 8ed1da9d..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/DarkMode.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Dark Theme for Windows" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1286} - "WPFToggleDarkMode": { - "Content": "Dark Theme for Windows", - "Description": "Dark Mode for the system and applications.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", - "Name": "AppsUseLightTheme", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "false" - }, - { - "Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize", - "Name": "SystemUsesLightTheme", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "false" - } - ], - "InvokeScript": [ - " - Invoke-WinUtilExplorerUpdate - if ($sync.ThemeButton.Content -eq [char]0xF08C) { - Invoke-WinutilThemeChange -theme \"Auto\" - } - " - ], - "UndoScript": [ - " - Invoke-WinUtilExplorerUpdate - if ($sync.ThemeButton.Content -eq [char]0xF08C) { - Invoke-WinutilThemeChange -theme \"Auto\" - } - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/DetailedBSoD.md b/docs/content/dev/tweaks/Customize-Preferences/DetailedBSoD.md deleted file mode 100644 index dd6f3e1c..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/DetailedBSoD.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "BSoD Verbose Mode" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1242} - "WPFToggleDetailedBSoD": { - "Content": "BSoD Verbose Mode", - "Description": "Gives more information when you blue screen.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl", - "Name": "DisplayParameters", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - }, - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl", - "Name": "DisableEmoticon", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/DisableLockscreen.md b/docs/content/dev/tweaks/Customize-Preferences/DisableLockscreen.md deleted file mode 100644 index a36a8860..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/DisableLockscreen.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Lock Screen - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1657} - "WPFTweaksDisableLockscreen": { - "Content": "Lock Screen - Disable", - "Description": "Skips the lock screen entirely and goes directly to the sign-in screen on boot and wake.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Personalization", - "Name": "NoLockScreen", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/GameMode.md b/docs/content/dev/tweaks/Customize-Preferences/GameMode.md deleted file mode 100644 index e7c3d930..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/GameMode.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Game Mode" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1800} - "WPFToggleGameMode": { - "Content": "Game Mode", - "Description": "Toggles Windows prioritizes gaming performance by allocating system resources to games.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\GameBar", - "Name": "AllowAutoGameMode", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\GameBar", - "Name": "AutoGameModeEnabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/HiddenFiles.md b/docs/content/dev/tweaks/Customize-Preferences/HiddenFiles.md deleted file mode 100644 index 697d4f38..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/HiddenFiles.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "File Explorer Hidden Files" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1356} - "WPFToggleHiddenFiles": { - "Content": "File Explorer Hidden Files", - "Description": "Reveals hidden files in Explorer.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "Hidden", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - } - ], - "InvokeScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], - "UndoScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/HideSettingsHome.md b/docs/content/dev/tweaks/Customize-Preferences/HideSettingsHome.md deleted file mode 100644 index 5b6999b9..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/HideSettingsHome.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Settings Home Page" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1603} - "WPFToggleHideSettingsHome": { - "Content": "Settings Home Page", - "Description": "Toggles the Home Page in the Windows Settings app.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", - "Name": "SettingsPageVisibility", - "Value": "show:home", - "Type": "String", - "OriginalValue": "hide:home", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/LoginBlur.md b/docs/content/dev/tweaks/Customize-Preferences/LoginBlur.md deleted file mode 100644 index 2512e48e..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/LoginBlur.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Logon Screen Acrylic Blur" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1639} - "WPFToggleLoginBlur": { - "Content": "Logon Screen Acrylic Blur", - "Description": "Toggles the acrylic blur effect on login screen background.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System", - "Name": "DisableAcrylicBackgroundOnLogon", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/LongPaths.md b/docs/content/dev/tweaks/Customize-Preferences/LongPaths.md deleted file mode 100644 index e29bcf26..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/LongPaths.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Enable Long Paths" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1826} - "WPFToggleLongPaths": { - "Content": "Enable Long Paths", - "Description": "Toggles support for file paths longer than 260 characters in Explorer.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\FileSystem", - "Name": "LongPathsEnabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/MouseAcceleration.md b/docs/content/dev/tweaks/Customize-Preferences/MouseAcceleration.md deleted file mode 100644 index 62ac73ab..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/MouseAcceleration.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Mouse Acceleration" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1489} - "WPFToggleMouseAcceleration": { - "Content": "Mouse Acceleration", - "Description": "Makes it so Cursor movement is affected by the speed of your physical mouse movements.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Control Panel\\Mouse", - "Name": "MouseSpeed", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - }, - { - "Path": "HKCU:\\Control Panel\\Mouse", - "Name": "MouseThreshold1", - "Value": "6", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - }, - { - "Path": "HKCU:\\Control Panel\\Mouse", - "Name": "MouseThreshold2", - "Value": "10", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/MultiplaneOverlay.md b/docs/content/dev/tweaks/Customize-Preferences/MultiplaneOverlay.md deleted file mode 100644 index fb0bd4ee..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/MultiplaneOverlay.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Multiplane Overlay" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1463} - "WPFToggleMultiplaneOverlay": { - "Content": "Multiplane Overlay", - "Description": "Multiplane Overlay compose multiple image layers, which can sometimes cause issues with graphics cards.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\Dwm", - "Name": "OverlayTestMode", - "Value": "0", - "Type": "DWord", - "OriginalValue": "5", - "DefaultState": "true" - }, - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\GraphicsDrivers", - "Name": "DisableOverlays", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/NewOutlook.md b/docs/content/dev/tweaks/Customize-Preferences/NewOutlook.md deleted file mode 100644 index c15e7702..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/NewOutlook.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: "Microsoft Outlook New Version" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1402} - "WPFToggleNewOutlook": { - "Content": "Microsoft Outlook New Version", - "Description": "This will ensures the classic Outlook application is used.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\SOFTWARE\\Microsoft\\Office\\16.0\\Outlook\\Preferences", - "Name": "UseNewOutlook", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Office\\16.0\\Outlook\\Options\\General", - "Name": "HideNewOutlookToggle", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - }, - { - "Path": "HKCU:\\Software\\Policies\\Microsoft\\Office\\16.0\\Outlook\\Options\\General", - "Name": "DoNewOutlookAutoMigration", - "Value": "0", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - }, - { - "Path": "HKCU:\\Software\\Policies\\Microsoft\\Office\\16.0\\Outlook\\Preferences", - "Name": "NewOutlookMigrationUserSetting", - "Value": "0", - "Type": "DWord", - "OriginalValue": "", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/NumLock.md b/docs/content/dev/tweaks/Customize-Preferences/NumLock.md deleted file mode 100644 index 3f210a59..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/NumLock.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Num Lock on Startup" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1523} - "WPFToggleNumLock": { - "Content": "Num Lock on Startup", - "Description": "Toggle the Num Lock key state when your computer starts.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKU:\\.Default\\Control Panel\\Keyboard", - "Name": "InitialKeyboardIndicators", - "Value": "2", - "Type": "String", - "OriginalValue": "0", - "DefaultState": "false" - }, - { - "Path": "HKCU:\\Control Panel\\Keyboard", - "Name": "InitialKeyboardIndicators", - "Value": "2", - "Type": "String", - "OriginalValue": "0", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/S3Sleep.md b/docs/content/dev/tweaks/Customize-Preferences/S3Sleep.md deleted file mode 100644 index 832864f9..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/S3Sleep.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "S3 Sleep" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1585} - "WPFToggleS3Sleep": { - "Content": "S3 Sleep", - "Description": "Toggles between Modern Standby and S3 Sleep, which cuts off power to the CPU while continuing to refresh the memory.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power", - "Name": "PlatformAoAcOverride", - "Value": "0", - "Type": "DWord", - "OriginalValue": "", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/Scrollbars.md b/docs/content/dev/tweaks/Customize-Preferences/Scrollbars.md deleted file mode 100644 index 2cd284da..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/Scrollbars.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Scrollbars Always Visible" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1444} - "WPFToggleScrollbars": { - "Content": "Scrollbars Always Visible", - "Description": "If enabled, scrollbars will always be visible. If disabled, Windows will automatically hide scrollbars when not in use.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Control Panel\\Accessibility", - "Name": "DynamicScrollbars", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "false", - "link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/scrollbars" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/ShowExt.md b/docs/content/dev/tweaks/Customize-Preferences/ShowExt.md deleted file mode 100644 index 5f435afc..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/ShowExt.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "File Explorer File Extensions" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1328} - "WPFToggleShowExt": { - "Content": "File Explorer File Extensions", - "Description": "Shows .file extensions in Explorer (.exe, .png, etc.)", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "HideFileExt", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "false" - } - ], - "InvokeScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], - "UndoScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/StandbyFix.md b/docs/content/dev/tweaks/Customize-Preferences/StandbyFix.md deleted file mode 100644 index 3bb71bbb..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/StandbyFix.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "S0 Sleep Network Connectivity" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1567} - "WPFToggleStandbyFix": { - "Content": "S0 Sleep Network Connectivity", - "Description": "Toggles network connectivity during S0 Sleep which is low power idle in modern laptops.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\SOFTWARE\\Policies\\Microsoft\\Power\\PowerSettings\\f15576e8-98b7-4186-b944-eafa664402d9", - "Name": "ACSettingIndex", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/StartMenuRecommendations.md b/docs/content/dev/tweaks/Customize-Preferences/StartMenuRecommendations.md deleted file mode 100644 index 32bb1804..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/StartMenuRecommendations.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Start Menu Recommendations" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1674} - "WPFToggleStartMenuRecommendations": { - "Content": "Start Menu Recommendations", - "Description": "Toggles the recommendations section in the Start Menu. WARNING: This will also disable Windows Spotlight on your Lock Screen as a side effect.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\PolicyManager\\current\\device\\Start", - "Name": "HideRecommendedSection", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\PolicyManager\\current\\device\\Education", - "Name": "IsEducationEnvironment", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer", - "Name": "HideRecommendedSection", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1", - "DefaultState": "true" - } - ], - "InvokeScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], - "UndoScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/StickyKeys.md b/docs/content/dev/tweaks/Customize-Preferences/StickyKeys.md deleted file mode 100644 index c2848248..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/StickyKeys.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Sticky Keys" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1718} - "WPFToggleStickyKeys": { - "Content": "Sticky Keys", - "Description": "Toggles the Sticky Keys, which activate when clicking shift rapidly.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Control Panel\\Accessibility\\StickyKeys", - "Name": "Flags", - "Value": "506", - "Type": "DWord", - "OriginalValue": "58", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/TaskView.md b/docs/content/dev/tweaks/Customize-Preferences/TaskView.md deleted file mode 100644 index be24795a..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/TaskView.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Taskbar Task View Icon" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1782} - "WPFToggleTaskView": { - "Content": "Taskbar Task View Icon", - "Description": "Toggles the Task View Button in the Taskbar.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "ShowTaskViewButton", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/TaskbarAlignment.md b/docs/content/dev/tweaks/Customize-Preferences/TaskbarAlignment.md deleted file mode 100644 index 004dfe94..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/TaskbarAlignment.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Taskbar Centered Icons" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1736} - "WPFToggleTaskbarAlignment": { - "Content": "Taskbar Centered Icons", - "Description": "Toggles the Taskbar alignment either to the left or center.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "TaskbarAl", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], - "InvokeScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], - "UndoScript": [ - " - Invoke-WinUtilExplorerUpdate -action \"restart\" - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/TaskbarSearch.md b/docs/content/dev/tweaks/Customize-Preferences/TaskbarSearch.md deleted file mode 100644 index 76a70b94..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/TaskbarSearch.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Taskbar Search Icon" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1764} - "WPFToggleTaskbarSearch": { - "Content": "Taskbar Search Icon", - "Description": "Toggles the Search Button on the Taskbar.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search", - "Name": "SearchboxTaskbarMode", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/VerboseLogon.md b/docs/content/dev/tweaks/Customize-Preferences/VerboseLogon.md deleted file mode 100644 index 9385c68d..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/VerboseLogon.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Logon Verbose Mode" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1384} - "WPFToggleVerboseLogon": { - "Content": "Logon Verbose Mode", - "Description": "Show detailed messages during startup/shutdown.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", - "Name": "VerboseStatus", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0", - "DefaultState": "false" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/WindowSnapping.md b/docs/content/dev/tweaks/Customize-Preferences/WindowSnapping.md deleted file mode 100644 index b623a407..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/WindowSnapping.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Window Snapping" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1549} - "WPFToggleWindowSnapping": { - "Content": "Window Snapping", - "Description": "Toggles the window snapping feature when dragging windows.", - "category": "Customize Preferences", - "panel": "2", - "Type": "Toggle", - "registry": [ - { - "Path": "HKCU:\\Control Panel\\Desktop", - "Name": "WindowArrangementActive", - "Value": "1", - "Type": "String", - "OriginalValue": "0", - "DefaultState": "true" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Customize-Preferences/_index.md b/docs/content/dev/tweaks/Customize-Preferences/_index.md deleted file mode 100644 index ddc2a936..00000000 --- a/docs/content/dev/tweaks/Customize-Preferences/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Customize Preferences" -weight: 3 -toc: false ---- - -### Customize Preferences - -{{< autolinks section="dev/tweaks/customize-preferences" >}} diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Activity.md b/docs/content/dev/tweaks/Essential-Tweaks/Activity.md deleted file mode 100644 index 3e1f3f56..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Activity.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Activity History - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=2} - "WPFTweaksActivity": { - "Content": "Activity History - Disable", - "Description": "Erases recent docs, clipboard, and run history.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System", - "Name": "EnableActivityFeed", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System", - "Name": "PublishUserActivities", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System", - "Name": "UploadUserActivities", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/ConsumerFeatures.md b/docs/content/dev/tweaks/Essential-Tweaks/ConsumerFeatures.md deleted file mode 100644 index a86a876e..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/ConsumerFeatures.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "ConsumerFeatures - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=430} - "WPFTweaksConsumerFeatures": { - "Content": "ConsumerFeatures - Disable", - "Description": "Stops promoted app installs and reduces app suggestions from Microsoft Store content.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent", - "Name": "DisableWindowsConsumerFeatures", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DeleteTempFiles.md b/docs/content/dev/tweaks/Essential-Tweaks/DeleteTempFiles.md deleted file mode 100644 index 6500d0fb..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DeleteTempFiles.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Temporary Files - Remove" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1082} - "WPFTweaksDeleteTempFiles": { - "Content": "Temporary Files - Remove", - "Description": "Erases TEMP Folders.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - " - Remove-Item -Path \"$Env:Temp\\*\" -Recurse -Force - Remove-Item -Path \"$Env:SystemRoot\\Temp\\*\" -Recurse -Force - " - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DeliveryOptimization.md b/docs/content/dev/tweaks/Essential-Tweaks/DeliveryOptimization.md deleted file mode 100644 index 8d201fae..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DeliveryOptimization.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Delivery Optimization - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=571} - "WPFTweaksDeliveryOptimization": { - "Content": "Delivery Optimization - Disable", - "Description": "Stops Windows from using your bandwidth to upload updates to other PCs on the internet or local network.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DeliveryOptimization", - "Name": "DODownloadMode", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DisableBitLocker.md b/docs/content/dev/tweaks/Essential-Tweaks/DisableBitLocker.md deleted file mode 100644 index ed675a37..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DisableBitLocker.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "BitLocker - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=613} - "WPFTweaksDisableBitLocker": { - "Content": "BitLocker - Disable", - "Description": "Disables BitLocker.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - "Disable-BitLocker -MountPoint $Env:SystemDrive" - ], - "UndoScript": [ - "Enable-BitLocker -MountPoint $Env:SystemDrive" - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DisableExplorerAutoDiscovery.md b/docs/content/dev/tweaks/Essential-Tweaks/DisableExplorerAutoDiscovery.md deleted file mode 100644 index 91fcd147..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DisableExplorerAutoDiscovery.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "File Explorer Automatic Folder Discovery - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1187} - "WPFTweaksDisableExplorerAutoDiscovery": { - "Content": "File Explorer Automatic Folder Discovery - Disable", - "Description": "Windows Explorer automatically tries to guess the type of the folder based on its contents, slowing down the browsing experience. WARNING! Will disable File Explorer grouping.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - " - # Previously detected folders - $bags = \"HKCU:\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\Bags\" - - # Folder types lookup table - $bagMRU = \"HKCU:\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\BagMRU\" - - # Flush Explorer view database - Remove-Item -Path $bags -Recurse -Force - Write-Host \"Removed $bags\" - - Remove-Item -Path $bagMRU -Recurse -Force - Write-Host \"Removed $bagMRU\" - - # Every folder - $allFolders = \"HKCU:\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\Bags\\AllFolders\\Shell\" - - if (!(Test-Path $allFolders)) { - New-Item -Path $allFolders -Force - Write-Host \"Created $allFolders\" - } - - # Generic view - New-ItemProperty -Path $allFolders -Name \"FolderType\" -Value \"NotSpecified\" -PropertyType String -Force - Write-Host \"Set FolderType to NotSpecified\" - - Write-Host Please sign out and back in, or restart your computer to apply the changes! - " - ], - "UndoScript": [ - " - # Previously detected folders - $bags = \"HKCU:\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\Bags\" - - # Folder types lookup table - $bagMRU = \"HKCU:\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\Shell\\BagMRU\" - - # Flush Explorer view database - Remove-Item -Path $bags -Recurse -Force - Write-Host \"Removed $bags\" - - Remove-Item -Path $bagMRU -Recurse -Force - Write-Host \"Removed $bagMRU\" - - Write-Host Please sign out and back in, or restart your computer to apply the changes! - " - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DisableStoreSearch.md b/docs/content/dev/tweaks/Essential-Tweaks/DisableStoreSearch.md deleted file mode 100644 index 579c4802..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DisableStoreSearch.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Microsoft Store Recommended Search Results - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=96} - "WPFTweaksDisableStoreSearch": { - "Content": "Microsoft Store Recommended Search Results - Disable", - "Description": "Will not display recommended Microsoft Store apps when searching for apps in the Start menu.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - "icacls \"$Env:LocalAppData\\Packages\\Microsoft.WindowsStore_8wekyb3d8bbwe\\LocalState\\store.db\" /deny Everyone:F" - ], - "UndoScript": [ - "icacls \"$Env:LocalAppData\\Packages\\Microsoft.WindowsStore_8wekyb3d8bbwe\\LocalState\\store.db\" /grant Everyone:F" - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/DiskCleanup.md b/docs/content/dev/tweaks/Essential-Tweaks/DiskCleanup.md deleted file mode 100644 index fa6141b8..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/DiskCleanup.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Disk Cleanup - Run" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1069} - "WPFTweaksDiskCleanup": { - "Content": "Disk Cleanup - Run", - "Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - " - cleanmgr.exe /d C: /VERYLOWDISK - Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase - " - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar.md b/docs/content/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar.md deleted file mode 100644 index dba13d77..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "End Task With Right Click - Enable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=855} - "WPFTweaksEndTaskOnTaskbar": { - "Content": "End Task With Right Click - Enable", - "Description": "Enables option to end task when right clicking a program in the taskbar.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings", - "Name": "TaskbarEndTask", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Hiber.md b/docs/content/dev/tweaks/Essential-Tweaks/Hiber.md deleted file mode 100644 index 1d95b983..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Hiber.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Hibernation - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=32} - "WPFTweaksHiber": { - "Content": "Hibernation - Disable", - "Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the PC off. It really should never be used.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power", - "Name": "HibernateEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings", - "Name": "ShowHibernateOption", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - } - ], - "InvokeScript": [ - "powercfg.exe /hibernate off" - ], - "UndoScript": [ - "powercfg.exe /hibernate on" - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Location.md b/docs/content/dev/tweaks/Essential-Tweaks/Location.md deleted file mode 100644 index ab9fbec9..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Location.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Location Tracking - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=109} - "WPFTweaksLocation": { - "Content": "Location Tracking - Disable", - "Description": "Disables Location Tracking.", - "category": "Essential Tweaks", - "panel": "1", - "service": [ - { - "Name": "lfsvc", - "StartupType": "Disable", - "OriginalType": "Manual" - } - ], - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\location", - "Name": "Value", - "Value": "Deny", - "Type": "String", - "OriginalValue": "Allow" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Sensor\\Overrides\\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}", - "Name": "SensorPermissionState", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKLM:\\SYSTEM\\Maps", - "Name": "AutoUpdateEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/PreventDeviceMetadataFromNetwork.md b/docs/content/dev/tweaks/Essential-Tweaks/PreventDeviceMetadataFromNetwork.md deleted file mode 100644 index 0f2c9550..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/PreventDeviceMetadataFromNetwork.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Prevent Device Companion Apps" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=947} - "WPFTweaksPreventDeviceMetadataFromNetwork": { - "Content": "Prevent Device Companion Apps", - "Description": "Prevents additional software from being installed when plugging in devices (e.g. Ads when plugging in a monitor). Poses potential security risk.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata", - "Name": "PreventDeviceMetadataFromNetwork", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/RestorePoint.md b/docs/content/dev/tweaks/Essential-Tweaks/RestorePoint.md deleted file mode 100644 index cacc66cc..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/RestorePoint.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "Restore Point - Create" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=828} - "WPFTweaksRestorePoint": { - "Content": "Restore Point - Create", - "Description": "Creates a restore point at runtime in case a revert is needed from WinUtil modifications.", - "category": "Essential Tweaks", - "panel": "1", - "Checked": "False", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore", - "Name": "SystemRestorePointCreationFrequency", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1440" - } - ], - "InvokeScript": [ - " - if (-not (Get-ComputerRestorePoint)) { - Enable-ComputerRestore -Drive $Env:SystemDrive - } - - Checkpoint-Computer -Description \"System Restore Point created by WinUtil\" -RestorePointType MODIFY_SETTINGS - Write-Host \"System Restore Point Created Successfully\" -ForegroundColor Green - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/RevertStartMenu.md b/docs/content/dev/tweaks/Essential-Tweaks/RevertStartMenu.md deleted file mode 100644 index 2e5e5515..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/RevertStartMenu.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Start Menu Previous Layout - Enable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=80} - "WPFTweaksRevertStartMenu": { - "Content": "Start Menu Previous Layout - Enable", - "Description": "Bring back the old Start Menu layout from before the gradual rollout of the new one in 25H2. On newer versions of Windows !!THIS TWEAK WILL NOT WORK!!", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\ControlSet001\\Control\\FeatureManagement\\Overrides\\8\\3036241548", - "Name": "EnabledState", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Services.md b/docs/content/dev/tweaks/Essential-Tweaks/Services.md deleted file mode 100644 index 1366213c..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Services.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: "Services - Set to Manual" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=146} - "WPFTweaksServices": { - "Content": "Services - Set to Manual", - "Description": "Sets some services to Manual startup and adjusts the SvcHostSplitThresholdInKB registry value to better match system memory, which can significantly reduce the number of svchost.exe processes.", - "category": "Essential Tweaks", - "panel": "1", - "service": [ - { - "Name": "CscService", - "StartupType": "Disabled", - "OriginalType": "Manual" - }, - { - "Name": "DiagTrack", - "StartupType": "Disabled", - "OriginalType": "Automatic" - }, - { - "Name": "MapsBroker", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "StorSvc", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "SharedAccess", - "StartupType": "Disabled", - "OriginalType": "Automatic" - } - ], - "InvokeScript": [ - " - $Memory = (Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum).Sum / 1KB - Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\" -Name SvcHostSplitThresholdInKB -Value $Memory - " - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Telemetry.md b/docs/content/dev/tweaks/Essential-Tweaks/Telemetry.md deleted file mode 100644 index a42192d2..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Telemetry.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: "Telemetry - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=446} - "WPFTweaksTelemetry": { - "Content": "Telemetry - Disable", - "Description": "Disables Microsoft Telemetry.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\AdvertisingInfo", - "Name": "Enabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Privacy", - "Name": "TailoredExperiencesWithDiagnosticDataEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Speech_OneCore\\Settings\\OnlineSpeechPrivacy", - "Name": "HasAccepted", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Input\\TIPC", - "Name": "Enabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\InputPersonalization", - "Name": "RestrictImplicitInkCollection", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\InputPersonalization", - "Name": "RestrictImplicitTextCollection", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\InputPersonalization\\TrainedDataStore", - "Name": "HarvestContacts", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Personalization\\Settings", - "Name": "AcceptedPrivacyPolicy", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\DataCollection", - "Name": "AllowTelemetry", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "Start_TrackProgs", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System", - "Name": "PublishUserActivities", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Siuf\\Rules", - "Name": "NumberOfSIUFInPeriod", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - } - ], - "InvokeScript": [ - " - # Disable Defender Auto Sample Submission - Set-MpPreference -SubmitSamplesConsent 2 - - # Disable (Connected User Experiences and Telemetry) Service - Set-Service -Name diagtrack -StartupType Disabled - - # Disable (Windows Error Reporting Manager) Service - Set-Service -Name wermgr -StartupType Disabled - - # Disable PowerShell 7 telemetry - [Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '1', 'Machine') - - Remove-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Siuf\\Rules\" -Name PeriodInNanoSeconds - " - ], - "UndoScript": [ - " - # Enable Defender Auto Sample Submission - Set-MpPreference -SubmitSamplesConsent 1 - - # Enable (Connected User Experiences and Telemetry) Service - Set-Service -Name diagtrack -StartupType Automatic - - # Enable (Windows Error Reporting Manager) Service - Set-Service -Name wermgr -StartupType Automatic - - # Enable PowerShell 7 telemetry - [Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '', 'Machine') - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/WPBT.md b/docs/content/dev/tweaks/Essential-Tweaks/WPBT.md deleted file mode 100644 index eeb54803..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/WPBT.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Windows Platform Binary Table (WPBT) - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=931} - "WPFTweaksWPBT": { - "Content": "Windows Platform Binary Table (WPBT) - Disable", - "Description": "If enabled, WPBT allows your computer vendor to execute programs at boot time, such as anti-theft software, software drivers, as well as force install software without user consent. Poses potential security risk.", - "category": "Essential Tweaks", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", - "Name": "DisableWpbtExecution", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/Essential-Tweaks/Widget.md b/docs/content/dev/tweaks/Essential-Tweaks/Widget.md deleted file mode 100644 index 560b0d9a..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/Widget.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Widgets - Remove" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=61} - "WPFTweaksWidget": { - "Content": "Widgets - Remove", - "Description": "Removes the annoying widgets in the bottom left of the Taskbar.", - "category": "Essential Tweaks", - "panel": "1", - "InvokeScript": [ - " - # Sometimes if you dont stop the Widgets process the removal may fail - - Get-Process *Widget* | Stop-Process - Get-AppxPackage Microsoft.WidgetsPlatformRuntime -AllUsers | Remove-AppxPackage -AllUsers - Get-AppxPackage MicrosoftWindows.Client.WebExperience -AllUsers | Remove-AppxPackage -AllUsers - - Invoke-WinUtilExplorerUpdate -action \"restart\" - Write-Host \"Removed widgets\" - " - ], -``` diff --git a/docs/content/dev/tweaks/Essential-Tweaks/_index.md b/docs/content/dev/tweaks/Essential-Tweaks/_index.md deleted file mode 100644 index 4fa2fe70..00000000 --- a/docs/content/dev/tweaks/Essential-Tweaks/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Essential Tweaks" -weight: 1 -toc: false ---- - -### Essential Tweaks - -{{< autolinks section="dev/tweaks/essential-tweaks" >}} diff --git a/docs/content/dev/tweaks/Performance-Plans/_index.md b/docs/content/dev/tweaks/Performance-Plans/_index.md deleted file mode 100644 index 42f31144..00000000 --- a/docs/content/dev/tweaks/Performance-Plans/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Performance Plans" -weight: 4 -toc: false ---- - -### Performance Plans - -{{< autolinks section="dev/tweaks/performance-plans" >}} diff --git a/docs/content/dev/tweaks/_index.md b/docs/content/dev/tweaks/_index.md deleted file mode 100644 index c2c02344..00000000 --- a/docs/content/dev/tweaks/_index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Tweaks" -weight: 2 -toc: false ---- - -### Essential Tweaks - -{{< autolinks section="dev/tweaks/essential-tweaks" >}} - -### Advanced Tweaks (CAUTION) - -{{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}} - -### Customize Preferences - -{{< autolinks section="dev/tweaks/customize-preferences" >}} - -### Performance Plans - -{{< autolinks section="dev/tweaks/performance-plans" >}} diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet.md deleted file mode 100644 index f5a5c8d8..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Adobe URL Block List - Enable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1027} - "WPFTweaksBlockAdobeNet": { - "Content": "Adobe URL Block List - Enable", - "Description": "Reduces user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "InvokeScript": [ - " - $hostsUrl = Invoke-RestMethod -Uri https://github.com/Ruddernation-Designs/Adobe-URL-Block-List/raw/refs/heads/master/hosts - Add-Content -Path \"$Env:SystemRoot\\System32\\drivers\\etc\\hosts\" -Value $hostsUrl - - ipconfig /flushdns - Write-Host 'Added Adobe url block list from host file' - " - ], - "UndoScript": [ - " - Set-Content \"$Env:SystemRoot\\System32\\drivers\\etc\\hosts\" ( - (Get-Content \"$Env:SystemRoot\\System32\\drivers\\etc\\hosts\") -join \"`n\" -replace '(?s)#New Ver.*', '' - ) - - ipconfig /flushdns - Write-Host 'Removed Adobe url block list from host file' - " - ], -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BraveDebloat.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BraveDebloat.md deleted file mode 100644 index 3d1dc5d3..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/BraveDebloat.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "Brave Browser - Debloat" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=186} - "WPFTweaksBraveDebloat": { - "Content": "Brave Browser - Debloat", - "Description": "Disables various annoyances like Brave Rewards, Leo AI, Crypto Wallet and VPN.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveRewardsDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveWalletDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveVPNDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveAIChatEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveStatsPingEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveNewsDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveTalkDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "TorDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "BraveP3AEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "UrlKeyedAnonymizedDataCollectionEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "SafeBrowsingExtendedReportingEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave", - "Name": "MetricsReportingEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableBGapps.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableBGapps.md deleted file mode 100644 index dd9be5c2..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableBGapps.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Background Apps - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1155} - "WPFTweaksDisableBGapps": { - "Content": "Background Apps - Disable", - "Description": "Disables all Microsoft Store apps from running in the background, which has to be done individually since Windows 11.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\BackgroundAccessApplications", - "Name": "GlobalUserDisabled", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO.md deleted file mode 100644 index 0717b305..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Fullscreen Optimizations - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1171} - "WPFTweaksDisableFSO": { - "Content": "Fullscreen Optimizations - Disable", - "Description": "Disables FSO in all applications. NOTE: This will disable Color Management in Exclusive Fullscreen.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\System\\GameConfigStore", - "Name": "GameDVR_DXGIHonorFSEWindowsCompatible", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableIPv6.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableIPv6.md deleted file mode 100644 index e868cfde..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableIPv6.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "IPv6 - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1133} - "WPFTweaksDisableIPv6": { - "Content": "IPv6 - Disable", - "Description": "Disables IPv6.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", - "Name": "DisabledComponents", - "Value": "255", - "Type": "DWord", - "OriginalValue": "0" - } - ], - "InvokeScript": [ - "Disable-NetAdapterBinding -Name * -ComponentID ms_tcpip6" - ], - "UndoScript": [ - "Enable-NetAdapterBinding -Name * -ComponentID ms_tcpip6" - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableNotifications.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableNotifications.md deleted file mode 100644 index e878362f..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableNotifications.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "System Tray Notifications & Calendar - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1004} - "WPFTweaksDisableNotifications": { - "Content": "System Tray Notifications & Calendar - Disable", - "Description": "Disables all Notifications INCLUDING Calendar.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer", - "Name": "DisableNotificationCenter", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\PushNotifications", - "Name": "ToastEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableWarningForUnsignedRdp.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableWarningForUnsignedRdp.md deleted file mode 100644 index ab6e2329..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableWarningForUnsignedRdp.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "RDP Unsigned File Warnings - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=279} - "WPFTweaksDisableWarningForUnsignedRdp": { - "Content": "RDP Unsigned File Warnings - Disable", - "Description": "Disables warnings shown when launching unsigned RDP files introduced with the latest Windows 10 and 11 updates.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows NT\\Terminal Services\\Client", - "Name": "RedirectionWarningDialogVersion", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\SOFTWARE\\Microsoft\\Terminal Server Client", - "Name": "RdpLaunchConsentAccepted", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md deleted file mode 100644 index 18d7fecf..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Visual Effects - Set to Best Performance" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=716} - "WPFTweaksDisplay": { - "Content": "Visual Effects - Set to Best Performance", - "Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Control Panel\\Desktop", - "Name": "DragFullWindows", - "Value": "0", - "Type": "String", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Control Panel\\Desktop", - "Name": "MenuShowDelay", - "Value": "200", - "Type": "String", - "OriginalValue": "400" - }, - { - "Path": "HKCU:\\Control Panel\\Desktop\\WindowMetrics", - "Name": "MinAnimate", - "Value": "0", - "Type": "String", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Control Panel\\Keyboard", - "Name": "KeyboardDelay", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "ListviewAlphaSelect", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "ListviewShadow", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "TaskbarAnimations", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VisualEffects", - "Name": "VisualFXSetting", - "Value": "3", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\DWM", - "Name": "EnableAeroPeek", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "TaskbarMn", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "ShowTaskViewButton", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search", - "Name": "SearchboxTaskbarMode", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - } - ], - "InvokeScript": [ - "Set-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name \"UserPreferencesMask\" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0))" - ], - "UndoScript": [ - "Remove-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name \"UserPreferencesMask\"" - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/EdgeDebloat.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/EdgeDebloat.md deleted file mode 100644 index 6ca9b7e7..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/EdgeDebloat.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: "Microsoft Edge - Debloat" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=302} - "WPFTweaksEdgeDebloat": { - "Content": "Microsoft Edge - Debloat", - "Description": "Disables various telemetry options, popups, and other annoyances in Edge.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate", - "Name": "CreateDesktopShortcutDefault", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "PersonalizationReportingEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge\\ExtensionInstallBlocklist", - "Name": "1", - "Value": "ofefcgjbeghpigppfmkologfjadafddi", - "Type": "String", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "ShowRecommendationsEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "HideFirstRunExperience", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "UserFeedbackAllowed", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "ConfigureDoNotTrack", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "AlternateErrorPagesEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "EdgeCollectionsEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "EdgeShoppingAssistantEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "MicrosoftEdgeInsiderPromotionEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "ShowMicrosoftRewards", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "WebWidgetAllowed", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "DiagnosticData", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "EdgeAssetDeliveryServiceEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "WalletDonationEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", - "Name": "DefaultBrowserSettingsCampaignEnabled", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/IPv46.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/IPv46.md deleted file mode 100644 index bf5bcfba..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/IPv46.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "IPv6 - Set IPv4 as Preferred" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1095} - "WPFTweaksIPv46": { - "Content": "IPv6 - Set IPv4 as Preferred", - "Description": "Setting the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", - "Name": "DisabledComponents", - "Value": "32", - "Type": "DWord", - "OriginalValue": "0" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md deleted file mode 100644 index 3230c222..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "O&O ShutUp10++ - Run" -description: "" ---- - -```powershell {filename="functions/public/Invoke-WPFOOSU.ps1",linenos=inline,linenostart=1} -function Invoke-WPFOOSU { - if ($sync.ProcessRunning) { - Show-WinUtilMessage -Message "Another process is currently running." -Title "WinUtil" -Button "OK" -Icon "Warning" - return - } - - $downloadPath = Join-Path $sync.winutildir "ooshutup10.exe" - $sync.ProcessRunning = $true - - Invoke-WPFRunspace -ParameterList @(,("downloadPath", $downloadPath)) -ScriptBlock { - param($downloadPath) - - $hasUI = $null -ne $sync.Form -and $null -ne $sync.Form.Dispatcher - - try { - Write-WinUtilLog -Component "OOSU" -Message "Downloading O&O ShutUp10++." - if ($hasUI) { - Set-WinUtilTweaksProgressIndicator -Visible $true -Label "Downloading O&O ShutUp10++ (0%)" -Percent 0 - } - - Save-WinUtilFile -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -DestinationPath $downloadPath -ProgressCallback { - param($percent) - - if ($hasUI) { - Set-WinUtilTweaksProgressIndicator -Visible $true -Label "Downloading O&O ShutUp10++ ($percent%)" -Percent $percent - } - } - - if ($hasUI) { - Set-WinUtilTweaksProgressIndicator -Visible $true -Label "Launching O&O ShutUp10++" -Percent 100 - } - Start-Process -FilePath $downloadPath - - Write-WinUtilLog -Component "OOSU" -Message "O&O ShutUp10++ launched." - if ($hasUI) { - Set-WinUtilTweaksProgressIndicator -Visible $true -Label "O&O ShutUp10++ launched" -Percent 100 - } - } - catch { - Write-WinUtilLog -Level "ERROR" -Component "OOSU" -Message "O&O ShutUp10++ download failed: $($_.Exception.Message)" - if ($hasUI) { - Set-WinUtilTweaksProgressIndicator -Visible $true -Label "O&O ShutUp10++ download failed" -Percent 100 - } - Write-Error "Couldn't download O&O ShutUp10. Please make sure you have an active Internet connection." - } - finally { - $sync.ProcessRunning = $false - } - } -} -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RazerBlock.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RazerBlock.md deleted file mode 100644 index 96e93339..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RazerBlock.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Razer Software Auto-Install - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=963} - "WPFTweaksRazerBlock": { - "Content": "Razer Software Auto-Install - Disable", - "Description": "Blocks ALL Razer Software installations. The hardware works fine without any software.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\DriverSearching", - "Name": "SearchOrderConfig", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - }, - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Device Installer", - "Name": "DisableCoInstallers", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0" - } - ], - "InvokeScript": [ - " - $RazerPath = \"$Env:SystemRoot\\Installer\\Razer\" - - if (Test-Path $RazerPath) { - Remove-Item $RazerPath\\* -Recurse -Force - } else { - New-Item -Path $RazerPath -ItemType Directory - } - - icacls $RazerPath /deny \"Everyone:(W)\" - " - ], - "UndoScript": [ - " - icacls \"$Env:SystemRoot\\Installer\\Razer\" /remove:d Everyone - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge.md deleted file mode 100644 index 4a423ee2..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Microsoft Edge - Remove" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=587} - "WPFTweaksRemoveEdge": { - "Content": "Microsoft Edge - Remove", - "Description": "Uninstalls Microsoft Edge by creating dummy MicrosoftEdge.exe file in the legacy Edge folder. This tricks Windows into unlocking the official Edge uninstaller allowing for a system-level removal.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "InvokeScript": [ - " - $Path = Resolve-Path -Path \"$Env:ProgramFiles (x86)\\Microsoft\\Edge\\Application\\*\\Installer\\setup.exe\" | Select-Object -Last 1 - - if (Test-Path $Path) { - New-Item -Path \"$Env:SystemRoot\\SystemApps\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\\MicrosoftEdge.exe\" -Force - Start-Process -FilePath $Path -ArgumentList \"--uninstall --system-level --force-uninstall --delete-profile\" -Wait - Write-Host \"Microsoft Edge was removed\" - } else { - Write-Host \"Microsoft Edge is not installed\" - } - " - ], - "UndoScript": [ - " - Write-Host \"Installing Microsoft Edge...\" - winget install Microsoft.Edge --source winget - " - ], -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHomeAndGallery.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHomeAndGallery.md deleted file mode 100644 index a891e6bd..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHomeAndGallery.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "File Explorer Home and Gallery - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=686} - "WPFTweaksRemoveHomeAndGallery": { - "Content": "File Explorer Home and Gallery - Disable", - "Description": "Removes the Home and Gallery from Explorer and sets This PC as default.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\Software\\Classes\\CLSID\\{f874310e-b6b7-47dc-bc84-b9e6b38f5903}", - "Name": "System.IsPinnedToNameSpaceTree", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Classes\\CLSID\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}", - "Name": "System.IsPinnedToNameSpaceTree", - "Value": "0", - "Type": "DWord", - "OriginalValue": "" - }, - { - "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", - "Name": "LaunchTo", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOneDrive.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOneDrive.md deleted file mode 100644 index 454a3e84..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOneDrive.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "Microsoft OneDrive - Remove" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=642} - "WPFTweaksRemoveOneDrive": { - "Content": "Microsoft OneDrive - Remove", - "Description": "Denies permission to remove OneDrive user files, then uses its own uninstaller to remove it and restores the original permission afterward.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "InvokeScript": [ - " - # Deny permission to remove OneDrive folder - icacls $Env:OneDrive /deny \"Administrators:(D,DC)\" - - Write-Host \"Uninstalling OneDrive...\" - Start-Process -FilePath (Join-Path $Env:SystemRoot \"System32\\OneDriveSetup.exe\") -ArgumentList '/uninstall' -Wait - - # Some of OneDrive files use explorer, and OneDrive uses FileCoAuth - Write-Host \"Removing leftover OneDrive Files...\" - - Stop-Process -Name FileCoAuth,Explorer - - Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force - Remove-Item \"$Env:ProgramData\\Microsoft OneDrive\" -Recurse -Force - - # Grant back permission to access OneDrive folder - icacls $Env:OneDrive /grant \"Administrators:(D,DC)\" - - if (-not (Get-ChildItem -Path $Env:OneDrive)) { - Remove-Item -Path $Env:OneDrive -Recurse - [Environment]::SetEnvironmentVariable('OneDrive', $null, 'User') - } - - # Disable OneSyncSvc - Set-Service -Name OneSyncSvc -StartupType Disabled - " - ], - "UndoScript": [ - " - Write-Host \"Installing OneDrive\" - winget install Microsoft.Onedrive --source winget - - # Enabled OneSyncSvc - Set-Service -Name OneSyncSvc -StartupType Automatic - " - ], -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/ReservedStorage.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/ReservedStorage.md deleted file mode 100644 index de019018..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/ReservedStorage.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Disable Reserved Storage" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=815} - "WPFTweaksReservedStorage": { - "Content": "Disable Reserved Storage", - "Description": "Disables Windows Reserved Storage (7-10 GB held for updates/temp files). Recommended only on small drives. Re-enable before major Windows feature updates to avoid installation failures.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "InvokeScript": [ - "DISM /Online /Set-ReservedStorageState /State:Disabled" - ], - "UndoScript": [ - "DISM /Online /Set-ReservedStorageState /State:Enabled" - ], -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu.md deleted file mode 100644 index c0879a8b..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Right-Click Menu Previous Layout - Enable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1053} - "WPFTweaksRightClickMenu": { - "Content": "Right-Click Menu Previous Layout - Enable", - "Description": "Restores the classic context menu when right-clicking in File Explorer, replacing the simplified Windows 11 version.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "InvokeScript": [ - " - New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name InprocServer32 -Value \"\" -Force - Stop-Process -Name explorer - " - ], - "UndoScript": [ - "Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse" - ], -``` diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Storage.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Storage.md deleted file mode 100644 index 3c97698f..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Storage.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Storage Sense - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=871} - "WPFTweaksStorage": { - "Content": "Storage Sense - Disable", - "Description": "Storage Sense deletes temp files automatically.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\StorageSense\\Parameters\\StoragePolicy", - "Name": "01", - "Value": "0", - "Type": "DWord", - "OriginalValue": "1" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Teredo.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Teredo.md deleted file mode 100644 index 63051174..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Teredo.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Teredo - Disable" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1111} - "WPFTweaksTeredo": { - "Content": "Teredo - Disable", - "Description": "Teredo network tunneling is an IPv6 feature that can cause additional latency, but may cause problems with some games.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", - "Name": "DisabledComponents", - "Value": "1", - "Type": "DWord", - "OriginalValue": "0" - } - ], - "InvokeScript": [ - "netsh interface teredo set state disabled" - ], - "UndoScript": [ - "netsh interface teredo set state default" - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md deleted file mode 100644 index 1dd9f475..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Date & Time - Set Time to UTC" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=626} - "WPFTweaksUTC": { - "Content": "Date & Time - Set Time to UTC", - "Description": "Essential for computers that are dual booting. Fixes the time sync with Linux systems.", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation", - "Name": "RealTimeIsUniversal", - "Value": "1", - "Type": "QWord", - "OriginalValue": "0" - } - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/WindowsAI.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/WindowsAI.md deleted file mode 100644 index 447ddb4f..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/WindowsAI.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Windows AI - Disable And Remove" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=887} - "WPFTweaksWindowsAI": { - "Content": "Windows AI - Disable And Remove", - "Description": "Removes and disables all AI features/packages", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "registry": [ - { - "Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", - "Name": "SettingsPageVisibility", - "Value": "hide:aicomponents", - "Type": "String", - "OriginalValue": "" - }, - { - "Path": "HKLM:\\SOFTWARE\\Policies\\WindowsNotepad", - "Name": "DisableAIFeatures", - "Value": "1", - "Type": "DWord", - "OriginalValue": "" - } - ], - "InvokeScript": [ - " - $Appx = (Get-AppxPackage MicrosoftWindows.Client.CoreAI).PackageFullName - $Sid = (Get-LocalUser $Env:UserName).Sid.Value - - New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\EndOfLife\\$Sid\\$Appx\" -Force - - Get-AppxPackage -AllUsers \"*Copilot*\" | Remove-AppxPackage -AllUsers - winget uninstall -e --name \"Copilot\" --silent --force --accept-source-agreements 2>$null - Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers - - if ($Appx) { - Remove-AppxPackage $Appx - } - - Set-Service -Name WSAIFabricSvc -StartupType Disabled - Disable-WindowsOptionalFeature -FeatureName Recall -Online -NoRestart - - Write-Host \"Windows AI Disabled\" - " - ], -``` - -## Registry Changes - -Applications and System Components store and retrieve configuration data to modify Windows settings, so we can use the registry to change many settings in one place. - -You can find information about the registry on [Wikipedia](https://en.wikipedia.org/wiki/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/_index.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/_index.md deleted file mode 100644 index 08cc8f05..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Advanced Tweaks (CAUTION)" -weight: 2 -toc: false ---- - -### Advanced Tweaks (CAUTION) - -{{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}} diff --git a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md b/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md deleted file mode 100644 index cca9868b..00000000 --- a/docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "DNS - Set to:" -description: "" ---- - -```json {filename="config/tweaks.json",linenos=inline,linenostart=1851} - "WPFchangedns": { - "Content": "DNS - Set to:", - "category": "z__Advanced Tweaks - CAUTION", - "panel": "1", - "Type": "Combobox", - "ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult", -``` diff --git a/docs/content/userguide/application/_index.md b/docs/content/userguide/application/_index.md deleted file mode 100644 index 4d282fb6..00000000 --- a/docs/content/userguide/application/_index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Applications -weight: 3 -prev: /userguide/getting-started/ -next: /userguide/tweaks/ ---- - -Use the Applications tab to install, upgrade, uninstall, and review supported apps from one place. WinUtil relies on package manager support for these actions, so the available results depend on what WinGet can detect and manage on your system. - -{{< tabs >}} - - {{< tab name="Installation & Updates" selected=true >}} - * Choose the applications you want to install or upgrade. - * For programs not currently installed, this action will install them. - * For programs already installed, this action will update them to the latest version. - * Click the `Install/Upgrade Selected` button to start the installation or upgrade process. - - {{< image src="images/install-pics/installation" alt="Install or upgrade selected applications" >}} - {{< /tab >}} - - {{< tab name="Upgrade All" >}} - * Simply press the `Upgrade All` button. - * This upgrades every supported installed program without individual selection. - - {{< image src="images/install-pics/install-apps" alt="Upgrade all applications" >}} - {{< /tab >}} - - {{< tab name="Uninstall" >}} - * Select the programs you wish to uninstall. - * Click the `Uninstall Selected` button to remove them. - - {{< image src="images/install-pics/uninstall-apps" alt="Uninstall selected applications" >}} - {{< /tab >}} - - {{< tab name="Show Installed Apps" >}} - * Click the `Show Installed Apps` button. - * This scans for and selects installed applications supported by WinGet. - - {{< image src="images/install-pics/show-installed-apps" alt="Show installed apps" >}} - {{< /tab >}} - - {{< tab name="Clear Selection" >}} - * Click the `Clear Selection` button. - * This clears all current selections. - - {{< image src="images/install-pics/clear-selection-apps" alt="Clear app selections" >}} - {{< /tab >}} -{{< /tabs >}} - -> [!TIP] -> If you have trouble finding an application, press `Ctrl + F` and search for its name. The list filters as you type. - -> [!NOTE] -> `Show Installed Apps` only selects software that WinGet can identify. Apps installed outside supported package sources may not appear. - -> [!IMPORTANT] -> Before uninstalling or upgrading apps, close any running programs first. Some packages may still prompt for input or fail if their source is unavailable. diff --git a/docs/content/userguide/getting-started/_index.md b/docs/content/userguide/getting-started/_index.md deleted file mode 100644 index efb16343..00000000 --- a/docs/content/userguide/getting-started/_index.md +++ /dev/null @@ -1,256 +0,0 @@ ---- -title: Getting Started -weight: 2 -prev: /userguide/ -next: /userguide/application/ ---- - -## Welcome to Winutil! - -Winutil helps you install apps, apply system tweaks, run common fixes, and manage Windows settings from one place. This guide covers the safest way to get started and the first actions most users take. - -## System Requirements - -Before running Winutil, ensure your system meets these requirements: - -> [!IMPORTANT] -> Windows 10 is not supported by Winutil. Windows 10 reached the end of support on **October 14, 2025**. - -- **Operating System**: Windows 11 -- **PowerShell**: Version 5.1 or later (included by default in Windows 11) -- **Administrator Access**: Required for system-level changes -- **Internet Connection**: Required for downloading applications and updates -- **.NET Framework**: Version 4.5 or later (usually pre-installed) - -## Installation - -Winutil doesn't require traditional installation. It runs directly from PowerShell as a script. - -### Step 1: Open PowerShell as Administrator - -There are several ways to open PowerShell with admin rights: - -**Method 1: Start Menu (Recommended)** - -1. Right-click the Windows Start button -2. Select "Terminal (Admin)" - -**Method 2: Search Method** - -1. Press the `Windows` key -2. Type "PowerShell" or "Terminal" -3. Press `Ctrl + Shift + Enter` to launch as administrator -4. Or right-click and select "Run as administrator" - -**Method 3: Run Dialog** - -1. Press `Windows + R` -2. Type `powershell` -3. Press `Ctrl + Shift + Enter` - -### Step 2: Run the Launch Command - -With PowerShell running as Administrator, run one of the following commands depending on the release channel you want. - -**Stable release (recommended)** - -```powershell -irm "https://christitus.com/win" | iex -``` - -**Development branch (bleeding edge β€” for testing only)** - -```powershell -irm "https://christitus.com/windev" | iex -``` - -> [!NOTE] -> - The `irm` command downloads the script, and `iex` executes it. This is safe when downloading from the official source. -> - The development branch may contain experimental changes and should only be used for testing on non-production systems. - -### Step 3: Wait for Winutil to Load - -The first time you run Winutil, it may take a few moments to: - -- Download the latest version -- Initialize the interface -- Load all features and settings - -## First Time Setup - -### Understanding the Interface - -Winutil opens with a clean, tabbed interface: - -**Main Tabs**: - -- **Install**: Browse and install applications -- **Tweaks**: Apply system optimizations and customizations -- **Config**: Access system tools and utilities -- **Updates**: Manage Windows updates -- **Win11 Creator**: Build a customized Windows 11 ISO from an official Microsoft image. - -## Your First Actions - -Here are some recommended first steps for new users: - -### 1. Create a Restore Point - -Before making any changes, create a system restore point: - -1. Go to the **Tweaks** tab -2. Find "Create Restore Point" under Essential Tweaks -3. Check the box and click **Run Tweaks** - -This gives you a rollback point if needed. - -### 2. Install Essential Applications - -1. Navigate to the **Install** tab -2. Browse categories or use the search bar -3. Check the applications you want to install -4. Click "Install/Upgrade Selected" at the bottom - -### 3. Apply Basic Tweaks - -For a better Windows experience with minimal risk: - -1. Go to the **Tweaks** tab -2. Select the **Standard** preset for a balanced configuration -3. Review the selected tweaks -4. Click **Run Tweaks** - -> [!NOTE] -> Some tweaks, fixes, and update changes may require a restart or sign-out before the full effect is visible. - -## Common Tasks - -### Installing Applications - -**Single Application**: - -1. Open the **Install** tab -2. Search for the application name -3. Check the box next to it -4. Click "Install/Upgrade Selected" - -**Multiple Applications**: - -1. Check multiple application boxes -2. All checked apps will install in sequence -3. Install and uninstall progress is shown in the window-level bottom panel, including the current package or package-manager batch and overall completion - -### Applying Tweaks - -**Essential Tweaks** (Safe for all users): - -1. Go to the **Tweaks** tab -2. Select from the Essential Tweaks section -3. Click **Run Tweaks** - -**Advanced Tweaks** (Use with caution): - -1. Only modify if you understand the implications -2. Always create a restore point first -3. Review documentation for each tweak - -**Undoing Tweaks**: - -1. Select the same tweaks you applied -2. Click **Undo Selected Tweaks** -3. The system reverts to the previous state - -### Using Quick Fixes - -For common Windows issues: - -1. Go to the **Config** tab -2. Navigate to the **Fixes** section -3. Select the appropriate fix: - - **Reset Network**: Fixes network connectivity issues - - **Reset Windows Update**: Resolves update problems - - **System Corruption Scan**: Repairs corrupted system files - - **WinGet Reinstall**: Fixes package manager issues - -### Changing DNS Servers - -For improved privacy and speed: - -1. Go to the **Tweaks** tab -2. Find the DNS section -3. Select a provider: - - **Cloudflare**: Fast and privacy-focused - - **Google**: Reliable and widely used - - **Quad9**: Security-focused with malware blocking - - **AdGuard**: Blocks ads and trackers -4. Click **Apply** - -## Understanding Presets - -Winutil offers several preset configurations: - -- **Minimal**: Minimal changes that keep most Windows features -- **Standard**: A good middle ground for most users -- **Advanced**: Selects a focused set of safer advanced tweaks. - -## Safety Tips - -βœ… **DO**: - -- Create restore points before major changes -- Read tweak descriptions before applying -- Start with Essential Tweaks -- Keep Windows up to date -- Back up important data - -❌ **DON'T**: - -- Apply all tweaks at once without understanding them -- Skip creating restore points -- Use Advanced Tweaks without research -- Disable security features unless necessary -- Run on production systems without testing - -## Troubleshooting First Run - -### Script Won't Download - -If the launch command fails: - -- Make sure PowerShell or Terminal is running as Administrator. -- Confirm the PC has internet access and can reach `christitus.com`. -- Retry from a normal PowerShell session rather than a restricted enterprise shell profile. -- If the command starts and then closes immediately, reopen Terminal as Administrator and run it again so you can read the error output. - -If it still fails, check the [Known Issues](/knownissues/) page. - -## Next Steps - -Now that you're set up, explore these guides: - -- [Applications Guide](../application/) - Learn about installing, upgrading, and uninstalling software -- [Tweaks Guide](../tweaks/) - Understand system optimizations -- [FAQ](/faq/) - Common questions and answers - -## Getting Help - -If you need assistance: - -- **Documentation**: Browse this documentation site -- **Known Issues**: Check the [Known Issues](/knownissues/) page -- **Discord**: Join the [community Discord server](https://discord.gg/RUbZUZyByQ) -- **GitHub Issues**: Report bugs on [GitHub](https://github.com/ChrisTitusTech/winutil/issues) -- **YouTube**: Watch [video tutorials](https://www.youtube.com/watch?v=6UQZ5oQg8XA) - -## Quick Reference Card - -| Task | Location | Action | -| ---- | -------- | ------ | -| Install or upgrade apps | Install tab | Check boxes -> Install/Upgrade Selected | -| Uninstall apps | Install tab | Check boxes -> Uninstall Selected | -| Apply tweaks | Tweaks tab | Select tweaks -> Run Tweaks | -| Undo tweaks | Tweaks tab | Select tweaks -> Undo Selected Tweaks | -| Create restore point | Tweaks tab | Essential Tweaks section | -| Fix network | Config tab | Fixes -> Reset Network | -| Change DNS | Tweaks tab | DNS section | -| Open Control Panel | Config tab | Legacy Windows Panels | diff --git a/docs/go.mod b/docs/go.mod deleted file mode 100644 index e9a2130f..00000000 --- a/docs/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/ChrisTitusTech/WinUtil - -go 1.26 - -require github.com/imfing/hextra v0.12.3 // indirect diff --git a/docs/go.sum b/docs/go.sum deleted file mode 100644 index afa86809..00000000 --- a/docs/go.sum +++ /dev/null @@ -1,2 +0,0 @@ -github.com/imfing/hextra v0.12.3 h1:DZHY2rUWYteyzjlHi9r4n7Bb5e2Q+6LXe4C1Dqn0ZjM= -github.com/imfing/hextra v0.12.3/go.mod h1:vi+yhpq8YPp/aghvJlNKVnJKcPJ/VyAEcfC1BSV9ARo= diff --git a/docs/hugo.toml b/docs/hugo.toml deleted file mode 100644 index ffe40b8f..00000000 --- a/docs/hugo.toml +++ /dev/null @@ -1,140 +0,0 @@ -baseURL = "https://winutil.christitus.com/" -languageCode = "en-us" -title = "WinUtil Documentation" -enableGitInfo = true -canonifyURLs = true - -[[module.mounts]] - source = "assets" - target = "assets" - -[[module.imports]] -path = "github.com/imfing/hextra" - -[[menu.main]] -identifier = "userguide" -name = "User Guides" -pageRef = "/userguide" -weight = 1 - -[[menu.main]] -identifier = "documentation" -name = "Developer Documentation" -weight = 2 - -[[menu.main]] -identifier = "contribution-guides" -name = "Contribution Guides" -pageRef = "CONTRIBUTING.md" -weight = 1 -parent = "documentation" - -[[menu.main]] -identifier = "developer-documentation" -name = "Developer Docs" -pageRef = "/dev" -weight = 2 -parent = "documentation" - -[[menu.main]] -identifier = "help" -name = "Help" -weight = 3 - -[[menu.main]] -identifier = "faq" -name = "FAQ" -pageRef = "faq.md" -weight = 1 -parent = "help" - -[[menu.main]] -identifier = "known-issues" -name = "Known Issues" -pageRef = "KnownIssues.md" -weight = 2 -parent = "help" - -[[menu.main]] -identifier = "forums" -name = "Forums" -url = "https://forum.christitus.com/" -weight = 3 -parent = "help" - -[[menu.main]] -name = "Store" -url = "https://christitus.com/downloads/" -weight = 5 - -[[menu.main]] -name = "Search" -weight = 6 - - [menu.main.params] - type = "search" - -[[menu.main]] -name = "GitHub" -weight = 7 -url = "https://github.com/christitustech/winutil" - - [menu.main.params] - icon = "github" - -[params] -description = "Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates" -displayUpdatedDate = true -dateFormat = "January 2, 2006" - - [params.navbar] - displayTitle = false - displayLogo = true - - [params.navbar.logo] - path = "navlogo.png" - dark = "navlogo.png" - link = "/" - width = 150 - height = 50 - - [params.theme] - default = "system" - displayToggle = true - - [params.page] - width = "wide" - - [params.footer] - enable = true - displayCopyright = true - displayPoweredBy = false - width = "normal" - -[params.highlight.copy] -enable = true -display = "hover" - -[menu] - - [[menu.sidebar]] - name = "Links" - weight = 1 - [menu.sidebar.params] - type = "separator" - - [[menu.sidebar]] - name = "GitHub Repo β†—" - url = "https://github.com/ChrisTitusTech/winutil" - weight = 2 - - [[menu.sidebar]] - name = "Discord Server β†—" - url = "https://discord.gg/RUbZUZyByQ" - weight = 3 - - -[markup] - [markup.goldmark] - [markup.goldmark.renderer] - unsafe = true diff --git a/docs/i18n/en.yaml b/docs/i18n/en.yaml deleted file mode 100644 index 8ea7eea2..00000000 --- a/docs/i18n/en.yaml +++ /dev/null @@ -1,23 +0,0 @@ -copyright: "©  Chris Titus Tech. All rights reserved." -backToTop: "Scroll to top" -changeLanguage: "Change language" -changeTheme: "Change theme" -copy: "Copy" -copied: "Copied!" -copyAsMarkdown: "Copy as Markdown" -copyPage: "Copy Page" -copyCode: "Copy code" -dark: "Dark" -editThisPage: "Edit this page on GitHub β†’" -lastUpdated: "Last updated on" -light: "Light" -next: "Next" -noResultsFound: "No results found." -onThisPage: "On this page" -poweredBy: "Powered by Chris Titus Tech" -previous: "Prev" -readMore: "Read more β†’" -searchPlaceholder: "Search..." -system: "System" -tags: "Tags" -viewAsMarkdown: "View as Markdown" diff --git a/docs/layouts/shortcodes/autolinks.html b/docs/layouts/shortcodes/autolinks.html deleted file mode 100644 index 9243b038..00000000 --- a/docs/layouts/shortcodes/autolinks.html +++ /dev/null @@ -1,17 +0,0 @@ -{{- $section := .Get "section" | lower -}} -{{- $pages := slice -}} -{{- range .Site.RegularPages -}} -{{- if in .RelPermalink $section -}} -{{- $pageTitle := .Title -}} -{{- if eq $pageTitle "" -}} - {{- $pageTitle = .File.BaseFileName | humanize | title -}} -{{- end -}} -{{- $pageDesc := .Description -}} -{{- $pages = $pages | append (dict "title" $pageTitle "description" $pageDesc "url" .RelPermalink) -}} -{{- end -}} -{{- end -}} -
    -{{- range sort $pages "title" "asc" }} -
  • {{ .title }}{{ with .description }} - {{ . }}{{ end }}
  • -{{- end }} -
diff --git a/docs/layouts/shortcodes/image.html b/docs/layouts/shortcodes/image.html deleted file mode 100644 index 5c182f1c..00000000 --- a/docs/layouts/shortcodes/image.html +++ /dev/null @@ -1,114 +0,0 @@ -{{/*Retrive Passed Shortcode Parameters*/}} -{{ $src := .Get "src" }} -{{ $alt := .Get "alt" }} - -{{/*Define sizes*/}} -{{ $Small := 200 }} -{{ $Medium := 600 }} -{{ $Large := 1000 }} - -{{/*Define Image variables as global variables to make them easily accessible in this shortcode*/}} -{{ $DarkImage := "" }} {{ $DarkSmallImage := "" }} {{ $DarkMediumImage := "" }} {{ $DarkLargeImage := "" }} -{{ $LightImage := "" }} {{ $LightSmallImage := "" }} {{ $LightMediumImage := "" }} {{ $LightLargeImage := "" }} -{{ $SingleImage := "" }} {{ $SingleSmallImage := "" }} {{ $SingleMediumImage := "" }} {{ $SingleLargeImage := "" }} - -{{/*Find images and update the previous Single,Dark,Light Images variables*/}} -{{ with resources.GetMatch (print $src ".jpg") }} {{ $SingleImage = . }} {{ end }} -{{ with resources.GetMatch (print $src "-Dark" ".jpg") }} {{ $DarkImage = . }} {{ end }} -{{ with resources.GetMatch (print $src "-Light" ".jpg") }} {{ $LightImage = . }} {{ end }} -{{ with resources.GetMatch (print $src ".png") }} {{ $SingleImage = . }} {{ end }} -{{ with resources.GetMatch (print $src "-Dark" ".png") }} {{ $DarkImage = . }} {{ end }} -{{ with resources.GetMatch (print $src "-Light" ".png") }} {{ $LightImage = . }} {{ end }} - -{{/*Applying Image Processing*/}} -{{ with $SingleImage }} - {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} - {{ $SingleImage = . }} - {{ end }} -{{ end }} -{{ with $DarkImage }} - {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} - {{ $DarkImage = . }} - {{ end }} -{{ end }} -{{ with $LightImage }} - {{ with .Resize (printf "%dx%d webp q50" .Width .Height) }} - {{ $LightImage = . }} - {{ end }} -{{ end }} - -{{/*Make different sized versions to images if applicable*/}} -{{ with $SingleImage }} - {{ if gt (.Width) ($Small) }} - {{ with .Resize (printf "%dx" $Small) }} - {{ $SingleSmallImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Medium) }} - {{ with .Resize (printf "%dx" $Medium) }} - {{ $SingleMediumImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Large) }} - {{ with .Resize (printf "%dx" $Large) }} - {{ $SingleLargeImage = . }} - {{ end }} - {{ end }} -{{ end }} -{{ with $DarkImage }} - {{ if gt (.Width) ($Small) }} - {{ with .Resize (printf "%dx" $Small) }} - {{ $DarkSmallImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Medium) }} - {{ with .Resize (printf "%dx" $Medium) }} - {{ $DarkMediumImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Large) }} - {{ with .Resize (printf "%dx" $Large) }} - {{ $DarkLargeImage = . }} - {{ end }} - {{ end }} -{{ end }} -{{ with $LightImage }} - {{ if gt (.Width) ($Small) }} - {{ with .Resize (printf "%dx" $Small) }} - {{ $LightSmallImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Medium) }} - {{ with .Resize (printf "%dx" $Medium) }} - {{ $LightMediumImage = . }} - {{ end }} - {{ end }} - {{ if gt (.Width) ($Large) }} - {{ with .Resize (printf "%dx" $Large) }} - {{ $LightLargeImage = . }} - {{ end }} - {{ end }} -{{ end }} - - -{{ if $SingleImage }} - - {{ with $SingleSmallImage }}{{ end }} - {{ with $SingleMediumImage }}{{ end }} - {{ with $SingleLargeImage }}{{ end }} - {{ with $SingleImage }}{{ end }} - -{{ else }} - - {{ with $DarkSmallImage }}{{ end }} - {{ with $DarkMediumImage }}{{ end }} - {{ with $DarkLargeImage }}{{ end }} - {{ with $DarkImage }}{{ end }} - {{ with $LightSmallImage }}{{ end }} - {{ with $LightMediumImage }}{{ end }} - {{ with $LightLargeImage }}{{ end }} - {{ with $LightImage }}{{ end }} - {{ with $LightImage }} - {{ else with $DarkImage }}{{ end }} - -{{ end }} diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 00000000..09a59f49 --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,6950 @@ +{ + "name": "docs-astro", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docs-astro", + "version": "0.0.1", + "dependencies": { + "@astrojs/starlight": "^0.41.5", + "@fontsource-variable/jetbrains-mono": "^5.3.0", + "@fontsource/geist-sans": "^5.3.0", + "astro": "^7.0.2", + "sharp": "^0.35.3" + } + }, + "node_modules/@astrojs/compiler-binding": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.3.2.tgz", + "integrity": "sha512-8w/9CWmYrAJJ8N0SY3O43ws2BgxoW6u3QsD8u2mE140lMYAlwh+tlNoUeSBq22wVheFuiBbR212l6ixZ2IIgCQ==", + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@astrojs/compiler-binding-darwin-arm64": "0.3.2", + "@astrojs/compiler-binding-darwin-x64": "0.3.2", + "@astrojs/compiler-binding-linux-arm64-gnu": "0.3.2", + "@astrojs/compiler-binding-linux-arm64-musl": "0.3.2", + "@astrojs/compiler-binding-linux-x64-gnu": "0.3.2", + "@astrojs/compiler-binding-linux-x64-musl": "0.3.2", + "@astrojs/compiler-binding-wasm32-wasi": "0.3.2", + "@astrojs/compiler-binding-win32-arm64-msvc": "0.3.2", + "@astrojs/compiler-binding-win32-x64-msvc": "0.3.2" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-arm64": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.3.2.tgz", + "integrity": "sha512-MM8tn8CSimcfytaOla4b6acN8mKWiL/rlAA1fpT3/Wl7dNGSE4y8FjTN/zJVNnb63CsLWG5zZwCt01TXtDKh9g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-darwin-x64": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.3.2.tgz", + "integrity": "sha512-2lXOlzf8xb7jLomRsf/aswh61/NnGusynB2OwFkK6k4pmOtpfXMYnG0PLfXrEvxXYj69NdCnmUYXtHDd+JOOag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.3.2.tgz", + "integrity": "sha512-BmU3kWj7qnLrd4vzm49zFEPJ5oFnn1tCT4Vt9hZbqdU5Cmb8GZl7fn6VFsnNfe7B18a2gIFtVzbLINtYl5kBjQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.3.2.tgz", + "integrity": "sha512-f0heT9ZZEseSu5bHCeb80eL2DH07ArE6U9xi1WT/PEusNjzPmEr3GJsjG1tRLo5VYUUYX7h3ScaqGmGrMOVGmw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.3.2.tgz", + "integrity": "sha512-M8fOUt0itRpqiGyoEA/ij184s8O+hqbCz3+YozRusOOM3osgGljpDThhbKAJjqh82wOo6FioQ4w8PBvU1XMD5Q==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-linux-x64-musl": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.3.2.tgz", + "integrity": "sha512-/Kebk8sO6HnLeSd691JkaAPfN7CqR9/KEXmWvyNPkaKNGmj8rTZ/lf2uXtnPu92Lan84UrKdIKVPy1fSo2encQ==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-wasm32-wasi": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.3.2.tgz", + "integrity": "sha512-pUA6xbcOSB7DhfzIArB8BCAkFfAIqriiR7zl5zOStd6oU2G0kIKj+GUdGnyXyhfiv881Hffyk5tC0mR18sDjDw==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^1.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.3.2.tgz", + "integrity": "sha512-ESruf+6Qkl1trHUFxI6GSf6t52j8yN2kCNSzMWdzt7V/T09tFHrYzrVaJQohb2C9bJUH76pNvX6Zb51+xCQc9Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.3.2.tgz", + "integrity": "sha512-wzzVrEbOwbsLWOdEbocskjMRx2aZPxJ7ZbmL+jnpBamFwmigm+2M/wzuM6JWncocgYwLic1csSpalBh96kQKXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/compiler-rs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.3.2.tgz", + "integrity": "sha512-xlx/T7JovIKduu4ucbTQUxQ5+Q8wxkHxhLjnZk3VlJbhbQ9RLvvuDk1p2YYFYFQ5y14dVm3FGGO4isQXa4F+Tg==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-binding": "0.3.2" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.10.2.tgz", + "integrity": "sha512-yt7fMgPYqSM4Tmr+taTW6Per+hjJ8Pk6lA1PAcDyqzOt8HzJ6Kje5WzCxA2Sd+9wsUW7uhkLeoTMK0cXPwH9rQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "js-yaml": "^4.3.0", + "picomatch": "^4.0.4", + "retext-smartypants": "^6.2.0", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "unified": "^11.0.5" + } + }, + "node_modules/@astrojs/markdown-remark": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.2.2.tgz", + "integrity": "sha512-FGfmK84zSNcrsBd0dl1gXE9JvZYElp8EXQa2jpHVAxG4deGKAp43wspxFupjADJX7MSsMRHwYCnfT6EyVmgeFQ==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.2", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.1", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.2", + "remark-smartypants": "^3.0.2", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.1.0", + "unist-util-visit-parents": "^6.0.2", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/markdown-satteri": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.3.5.tgz", + "integrity": "sha512-CvWVEFAbay7YO+i9SaqDJubipA5ckiVB89QWoMJ5XC0m5CtFg8JwZ7Kau6X9sYY7FZURH0w2l03ISH2jOS/RDQ==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.2", + "@astrojs/prism": "4.0.2", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "satteri": "^0.9.1" + } + }, + "node_modules/@astrojs/mdx": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-7.0.5.tgz", + "integrity": "sha512-wEM/HH1RiEntyPVagdiF+yArzfcYLKBB0C1RZspVidKZ97rRMbaqP1Nbl/GR0sJs8zwaceqxRymw8aOKKJRdYw==", + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.10.2", + "@astrojs/markdown-remark": "7.2.2", + "@mdx-js/mdx": "^3.1.1", + "acorn": "^8.16.0", + "es-module-lexer": "^2.0.0", + "estree-util-visit": "^2.0.0", + "hast-util-to-html": "^9.0.5", + "piccolore": "^0.1.3", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.1", + "remark-smartypants": "^3.0.2", + "source-map": "^0.7.6", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": ">=22.12.0" + }, + "peerDependencies": { + "@astrojs/markdown-satteri": "^0.3.1", + "astro": "^7.0.0" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-satteri": { + "optional": true + } + } + }, + "node_modules/@astrojs/prism": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz", + "integrity": "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==", + "license": "MIT", + "dependencies": { + "prismjs": "^1.30.0" + }, + "engines": { + "node": ">=22.12.0" + } + }, + "node_modules/@astrojs/sitemap": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.3.tgz", + "integrity": "sha512-f8euLVsyeAmAkSm/1M2Kb8sL8byQmfgbvBNaHFItCheTj/IpiJYSEWVcqDHZ/yEHxiS7+w87mQkzwZaPHmk5GA==", + "license": "MIT", + "dependencies": { + "sitemap": "^9.0.0", + "stream-replace-string": "^2.0.0", + "zod": "^4.3.6" + } + }, + "node_modules/@astrojs/starlight": { + "version": "0.41.5", + "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.41.5.tgz", + "integrity": "sha512-BNkyysByeqk9cXGNnd1fC1+kc9rrllo1Df/XD34wQg/I5HUX1Bc+F91aTktg17sapQs+mafzWSRgmURRyCNLKA==", + "license": "MIT", + "dependencies": { + "@astrojs/markdown-satteri": "^0.3.2", + "@astrojs/mdx": "^7.0.0", + "@astrojs/sitemap": "^3.7.2", + "@pagefind/default-ui": "^1.3.0", + "@types/hast": "^3.0.4", + "@types/js-yaml": "^4.0.9", + "@types/mdast": "^4.0.4", + "astro-expressive-code": "^0.44.0", + "bcp-47": "^2.1.0", + "hast-util-from-html": "^2.0.3", + "hast-util-select": "^6.0.4", + "hast-util-to-string": "^3.0.1", + "hastscript": "^9.0.1", + "i18next": "^26.0.7", + "js-yaml": "^4.1.1", + "klona": "^2.0.6", + "magic-string": "^0.30.21", + "mdast-util-directive": "^3.1.0", + "mdast-util-to-markdown": "^2.1.2", + "mdast-util-to-string": "^4.0.0", + "pagefind": "^1.5.2", + "rehype": "^13.0.2", + "rehype-format": "^5.0.1", + "remark-directive": "^4.0.0", + "satteri": "^0.9.1", + "ultrahtml": "^1.6.0", + "unified": "^11.0.5", + "unist-util-visit": "^5.1.0", + "vfile": "^6.0.3" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "^7.2.0", + "astro": "^7.0.2" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.3.tgz", + "integrity": "sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^4.4.0", + "dset": "^3.1.4", + "is-docker": "^4.0.0", + "package-manager-detector": "^1.6.0" + }, + "engines": { + "node": "18.20.8 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bruits/satteri-darwin-arm64": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.9.5.tgz", + "integrity": "sha512-iw4nZgx9v30lWo/MTngQqi1pI78KI0DnkSm+lVJGYdmPLgAyDNJigVhpG42/Iq55A6c1Ll8q66ljyyRiQUxwow==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-darwin-x64": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.9.5.tgz", + "integrity": "sha512-6T26Z5Kf3cFW2PSlk9p7zT7yVxvuBSiJvYyz9u8KjYwMTqZyIDOj2wDyNpxKV4+6yUVG7rddq2QwvG/8LJA2+Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-gnu": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.9.5.tgz", + "integrity": "sha512-u51id17uJwNEMK9nBlICsq6U31c+XVqQueVBkwRIzZG+gMpS8TOJctt5h5Wz33Z8xnMdTd+adtACVz0yHgGuOA==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-arm64-musl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.9.5.tgz", + "integrity": "sha512-v39HxiwGC5Rqm01HksP6+5Y+xKLPlsuVFgIgpEAo+SiQ22c+mJVhS3u7Z6ePAKdhL5NJoK1xq70kLz3L13AhpQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-gnu": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.9.5.tgz", + "integrity": "sha512-F3uO8uFp3pAP5ZGXttwvh57GS7s0lL953tnNdyI2gRyP4kOOkp6pyGojNJzCjkDvWI2Cvb9iNrKok3aqQPauAw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-linux-x64-musl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.9.5.tgz", + "integrity": "sha512-bicEqglLlz++mWyADaZoP0JY20s4vDfLjaPYgQqC+NI4zZLTOOg1T4GB8aqtc822Pqji8SQBmSrTb7CrP8i08Q==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@bruits/satteri-wasm32-wasi": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.9.5.tgz", + "integrity": "sha512-zauAuMwfPnKPUkd4AFixRFpXdgKwP2mKgxrIIo2gJzW0/ZneF9dbHnLkojSpaBnCCp7VUL1hIi5WWZvB1CqmAQ==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@bruits/satteri-win32-arm64-msvc": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.9.5.tgz", + "integrity": "sha512-SrfE7NEsgZjBvU3c+RR6oQRu0ToXY5uVJEbieXEF0YTctIV2zAVlbaMjWLts074QCgh3a+XHWkR/lWh2VH2LUg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@bruits/satteri-win32-x64-msvc": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.9.5.tgz", + "integrity": "sha512-5Kw9ZAtTGS8WHizyn+CJhjjfIQrw+7jcZodpmpXJjefnO15M8UexIi6JR2E5thyvsmHyhL6ZDDMUNR4bKJPd4g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@capsizecss/unpack": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", + "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@clack/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.3.tgz", + "integrity": "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.7.0.tgz", + "integrity": "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.4.3", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", + "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@emnapi/core": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-2.0.0-alpha.3.tgz", + "integrity": "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "2.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", + "integrity": "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@expressive-code/core": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.44.1.tgz", + "integrity": "sha512-3dDo9N8D7hYrLNNMMWFovg3+aDUtnQm7c7z0GZc1c0LEFVBc0Q6lKG+tVT28gDadOvsgOANfCn35fgpe97Pmgg==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.0.4", + "hast-util-select": "^6.0.2", + "hast-util-to-html": "^9.0.1", + "hast-util-to-text": "^4.0.1", + "hastscript": "^9.0.0", + "postcss": "^8.4.38", + "postcss-nested": "^6.0.1", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1" + } + }, + "node_modules/@expressive-code/plugin-frames": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.44.1.tgz", + "integrity": "sha512-HC/bdRao9225ApcgO/e3jn8ZOhldKO7ob1O/Tcipvtv7Vb5nMphZhMtD9uuywpvxkPYBHJi3504WhrKg05Dwqg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1" + } + }, + "node_modules/@expressive-code/plugin-shiki": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.44.1.tgz", + "integrity": "sha512-YApiZt3buUzBwL5tqj8G+sYC5NjMjRCHgQwr9bmGl69rtcHy6fE9dooWUeKYB978fJT2BuxT5FeHcF47rA3SEg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1", + "shiki": "^4.0.2" + } + }, + "node_modules/@expressive-code/plugin-text-markers": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.44.1.tgz", + "integrity": "sha512-B3BsJoJ8CFMlcIX9f+X9tcI3C4zPDO601+YuLi9GheSTNro7ZfqSjLptMQKBHOWZvxnAtY5zvIX7iO/qtBhNBg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1" + } + }, + "node_modules/@fontsource-variable/jetbrains-mono": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource-variable/jetbrains-mono/-/jetbrains-mono-5.3.0.tgz", + "integrity": "sha512-F32xpS2NsGYoQi2ADSkKTgpJj7ozajsGgDJ8woTnqjmIB+dxDIqImjl4pXZVEExu8UFZ2ndhmX18EBS/hdz3Lw==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/geist-sans": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/geist-sans/-/geist-sans-5.3.0.tgz", + "integrity": "sha512-AmG7cE1AvE4NHROPaOl1sN+a02cB5xy6pA/ZV76HXqWTCsJTV2SCBc9DTFHfJqnVOODm7HhXIYtUIb75NP5QXQ==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", + "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", + "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", + "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", + "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", + "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", + "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", + "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", + "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", + "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", + "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", + "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", + "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", + "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", + "cpu": [ + "arm" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", + "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", + "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", + "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", + "cpu": [ + "riscv64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", + "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", + "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", + "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", + "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", + "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", + "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", + "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", + "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", + "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.1.tgz", + "integrity": "sha512-KjZdi8Q1wh89gsVmghvbrMgWl6ZWmRmHV6wjB7/g4Zf0dyO+hH3neZUtuDNPO00qq5YE5RITVWvrIZKRaAmzGQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "license": "MIT" + }, + "node_modules/@oxc-project/types": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", + "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", + "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/default-ui": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.5.2.tgz", + "integrity": "sha512-pm1LMnQg8N2B3n2TnjKlhaFihpz6zTiA4HiGQ6/slKO/+8K9CAU5kcjdSSPgpuk1PMuuN4hxLipUIifnrkl3Sg==", + "license": "MIT" + }, + "node_modules/@pagefind/freebsd-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", + "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", + "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", + "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-arm64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", + "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", + "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.1.tgz", + "integrity": "sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.1.tgz", + "integrity": "sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.1.tgz", + "integrity": "sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.1.tgz", + "integrity": "sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "2.0.0-alpha.3", + "@emnapi/runtime": "2.0.0-alpha.3", + "@napi-rs/wasm-runtime": "^1.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-2.0.0-alpha.3.tgz", + "integrity": "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.3.1.tgz", + "integrity": "sha512-ANMDxuaPsNMdDC1m4vfvhlDmJweMwkE5XitTwrq2rWHx5jM+dlm4MmHt2PP6t0uejfR77SuhrhJ0zEijIF/uhA==", + "license": "MIT", + "dependencies": { + "@shikijs/primitive": "4.3.1", + "@shikijs/types": "4.3.1", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.5" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.3.1.tgz", + "integrity": "sha512-JBItcnPuYq7jVJdZo/vMj94r+szT7XEjHFX+mvFDGSEIbVAXAGyHAHzhbWzpGOwYidCZrErJLLgn2PVeiokHnQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.3.1", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^4.3.6" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.3.1.tgz", + "integrity": "sha512-OXyNMzg0pews+msMj4cHeqT4xiYKKvbnn6VbdAXxfoFl3SSx4fJTc8FadECuc5/H9p3BzhNAoAUXKwAu9rWYhg==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.3.1", + "@shikijs/vscode-textmate": "^10.0.2" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/langs": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.3.1.tgz", + "integrity": "sha512-m0l9nsDqgBHvbZbk7A0/kXz/impK3uB/c6rAn6Gpg/uPtdZRQ+alsN/17MU5thb68XTj/4DxkZAotrM0GGSpDQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/primitive": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.3.1.tgz", + "integrity": "sha512-CXQRQOYy1leqQ8ceTeJdmXv/bsUY++6QyLpXJ94LZAAYj5X2SKRdc5ipguv4NPyGVKItB2PPwUpRNe0Sjh5S1A==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.3.1", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/themes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.3.1.tgz", + "integrity": "sha512-dgpoJ4WqNi2yTmizQHBJ5zcX6j2lE6icN/0yt4l1kkf16jrY/pwPLoTb1ETsWMz0OBLf9ZNvwmxft+cH+N9qSA==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "4.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/types": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.3.1.tgz", + "integrity": "sha512-CHFxE0jztBIZRHH6gxXE7DXUCFXjReEGxZ/j0rfSLGKZuwp2xBYycEP14875DSa9KLL/6700oxIq6oO6ef9K2g==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", + "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/node": { + "version": "24.13.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz", + "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.3.tgz", + "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", + "license": "ISC" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/am-i-vibing": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz", + "integrity": "sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg==", + "license": "MIT", + "dependencies": { + "process-ancestry": "^0.1.0" + }, + "bin": { + "am-i-vibing": "dist/cli.mjs" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.1.6.tgz", + "integrity": "sha512-83x9rYbHazMaZkYrAFRVZXSQx2moFkz0F7cjTDUF3GWfS0a3p2vZXG1ZdhV86rStHApQCodBJW+XTD37xISIrQ==", + "license": "MIT", + "dependencies": { + "@astrojs/compiler-rs": "^0.3.2", + "@astrojs/internal-helpers": "0.10.2", + "@astrojs/markdown-satteri": "0.3.5", + "@astrojs/telemetry": "3.3.3", + "@capsizecss/unpack": "^4.0.0", + "@clack/prompts": "^1.1.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.3.0", + "am-i-vibing": "^0.4.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "ci-info": "^4.4.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^2.0.0", + "cookie": "^2.0.1", + "devalue": "^5.8.1", + "diff": "^8.0.3", + "dset": "^3.1.4", + "es-module-lexer": "^2.0.0", + "esbuild": "^0.28.0", + "flattie": "^1.1.1", + "fontace": "~0.4.1", + "get-tsconfig": "5.0.0-beta.4", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.2.0", + "js-yaml": "^4.3.0", + "jsonc-parser": "^3.3.1", + "magic-string": "^1.0.0", + "magicast": "^0.5.2", + "mrmime": "^2.0.1", + "neotraverse": "^1.0.1", + "obug": "^2.1.1", + "p-limit": "^7.3.0", + "p-queue": "^9.1.0", + "package-manager-detector": "^1.6.0", + "piccolore": "^0.1.3", + "picomatch": "^4.0.4", + "semver": "^7.7.4", + "shiki": "^4.0.2", + "smol-toml": "^1.6.0", + "svgo": "^4.0.1", + "tinyclip": "^0.1.12", + "tinyexec": "^1.0.4", + "tinyglobby": "^0.2.15", + "ultrahtml": "^1.6.0", + "unifont": "~0.7.4", + "unstorage": "^1.17.5", + "vite": "^8.0.13", + "vitefu": "^1.1.2", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^22.0.0", + "zod": "^4.3.6" + }, + "bin": { + "astro": "bin/astro.mjs" + }, + "engines": { + "node": ">=22.12.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.34.0 || ^0.35.0" + }, + "peerDependencies": { + "@astrojs/markdown-remark": "7.2.2" + }, + "peerDependenciesMeta": { + "@astrojs/markdown-remark": { + "optional": true + } + } + }, + "node_modules/astro-expressive-code": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.44.1.tgz", + "integrity": "sha512-DT1LnCqbHasBKlvzJ3m6LR4VI94wwx3W9EV/YbP1te4rqjOHsvsezHYuqb5MeLWLftXms/1FA9QBbwCo43DnJQ==", + "license": "MIT", + "dependencies": { + "rehype-expressive-code": "^0.44.1", + "url-extras": "^0.1.0" + }, + "peerDependencies": { + "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0" + } + }, + "node_modules/astro/node_modules/magic-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.1.0.tgz", + "integrity": "sha512-kS3VHe0nEPST2saQV4Rbkchcd3UBRkVTQHo1D3h/ZTwFDhai/mfKkmtPAtD129EOI7K3HlHIsFOt0WrI2/oU9g==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.1.tgz", + "integrity": "sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", + "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/common-ancestor-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", + "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">= 18" + } + }, + "node_modules/cookie": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cookie-es": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", + "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", + "license": "MIT" + }, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-selector-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.3.0.tgz", + "integrity": "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.0.tgz", + "integrity": "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==", + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/direction": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", + "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", + "license": "MIT", + "bin": { + "direction": "cli.js" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz", + "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==", + "license": "MIT" + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/expressive-code": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.44.1.tgz", + "integrity": "sha512-GakidxhapWDzpKLqEaFQ8wGk6gAqEtPQibu8+yPBfnDLgev5Vdsh1pasTxnrXL/mzIknyqeTwhMHTghdaiUrTg==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.44.1", + "@expressive-code/plugin-frames": "^0.44.1", + "@expressive-code/plugin-shiki": "^0.44.1", + "@expressive-code/plugin-text-markers": "^0.44.1" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", + "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", + "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", + "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fontace": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", + "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", + "license": "MIT", + "dependencies": { + "fontkitten": "^1.0.2" + } + }, + "node_modules/fontkitten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", + "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", + "license": "MIT", + "dependencies": { + "tiny-inflate": "^1.0.3" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "5.0.0-beta.4", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", + "integrity": "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==", + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "engines": { + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "license": "ISC" + }, + "node_modules/h3": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", + "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/hast-util-embedded": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", + "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-format": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-format/-/hast-util-format-1.1.0.tgz", + "integrity": "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-minify-whitespace": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "html-whitespace-sensitive-tag-names": "^3.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", + "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-body-ok-link": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz", + "integrity": "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-minify-whitespace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz", + "integrity": "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-is-body-ok-link": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-select": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.4.tgz", + "integrity": "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "bcp-47-match": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "css-selector-parser": "^3.0.0", + "devlop": "^1.0.0", + "direction": "^2.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "nth-check": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.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.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "license": "MIT" + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-whitespace-sensitive-tag-names": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.1.tgz", + "integrity": "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/i18next": { + "version": "26.3.6", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.6.tgz", + "integrity": "sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==", + "funding": [ + { + "type": "individual", + "url": "https://www.locize.com/i18next" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + }, + { + "type": "individual", + "url": "https://www.locize.com" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": "^5 || ^6 || ^7" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", + "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "license": "MIT" + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "11.5.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", + "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.4.tgz", + "integrity": "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "source-map-js": "^1.2.1" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", + "license": "CC0-1.0" + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neotraverse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", + "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz", + "integrity": "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obug": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, + "node_modules/oniguruma-parser": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", + "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", + "license": "MIT" + }, + "node_modules/oniguruma-to-es": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", + "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", + "license": "MIT", + "dependencies": { + "oniguruma-parser": "^0.12.2", + "regex": "^6.1.0", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/p-limit": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.1.tgz", + "integrity": "sha512-0trZaiG7Y7kN/Egy9a8j47t9osC0Tch4PaIWd9yGF6bvmlk7muExRvGNYb8sXBwEKMoNKsbNN9P8EefuQekE4Q==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.2.1" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.3.tgz", + "integrity": "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.4", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", + "license": "MIT" + }, + "node_modules/pagefind": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", + "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", + "license": "MIT", + "bin": { + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.5.2", + "@pagefind/darwin-x64": "1.5.2", + "@pagefind/freebsd-x64": "1.5.2", + "@pagefind/linux-arm64": "1.5.2", + "@pagefind/linux-x64": "1.5.2", + "@pagefind/windows-arm64": "1.5.2", + "@pagefind/windows-x64": "1.5.2" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/piccolore": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", + "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", + "license": "ISC" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-ancestry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", + "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/property-information": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", + "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", + "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "license": "MIT" + }, + "node_modules/rehype": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-expressive-code": { + "version": "0.44.1", + "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.44.1.tgz", + "integrity": "sha512-+VZgs7Evw4LXRN3owpoBNSTpYuW6GeOdjqcUT1TuY8o/4MGPtbd0EU7Bgrju7X8KrQ6SslOBAuGWJ5fV5TriJQ==", + "license": "MIT", + "dependencies": { + "expressive-code": "^0.44.1" + } + }, + "node_modules/rehype-format": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rehype-format/-/rehype-format-5.0.1.tgz", + "integrity": "sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-format": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-4.0.0.tgz", + "integrity": "sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.3.tgz", + "integrity": "sha512-gCaK+ndZ0hYezlqFegHFCVh2CQemsi0Npdh1qVM9bxlUFknjkbP6VmojWhddOCrbK0PbbacmYLWfTULRiT1eWA==", + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rolldown": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.1.tgz", + "integrity": "sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.142.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.1", + "@rolldown/binding-darwin-arm64": "1.2.1", + "@rolldown/binding-darwin-x64": "1.2.1", + "@rolldown/binding-freebsd-x64": "1.2.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.1", + "@rolldown/binding-linux-arm64-gnu": "1.2.1", + "@rolldown/binding-linux-arm64-musl": "1.2.1", + "@rolldown/binding-linux-ppc64-gnu": "1.2.1", + "@rolldown/binding-linux-s390x-gnu": "1.2.1", + "@rolldown/binding-linux-x64-gnu": "1.2.1", + "@rolldown/binding-linux-x64-musl": "1.2.1", + "@rolldown/binding-openharmony-arm64": "1.2.1", + "@rolldown/binding-wasm32-wasi": "1.2.1", + "@rolldown/binding-win32-arm64-msvc": "1.2.1", + "@rolldown/binding-win32-x64-msvc": "1.2.1" + } + }, + "node_modules/satteri": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.9.5.tgz", + "integrity": "sha512-ZuWVl+vnM64y+/TtX8Kosv2c00W+hLQiiwnEL6H0UKVVrxFqMw4D2CJHHQaouVd89OAhtBBfjWLqhKi3TVUV4w==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.5", + "@types/hast": "^3.0.4", + "@types/mdast": "^4.0.4", + "@types/unist": "^3.0.3" + }, + "optionalDependencies": { + "@bruits/satteri-darwin-arm64": "0.9.5", + "@bruits/satteri-darwin-x64": "0.9.5", + "@bruits/satteri-linux-arm64-gnu": "0.9.5", + "@bruits/satteri-linux-arm64-musl": "0.9.5", + "@bruits/satteri-linux-x64-gnu": "0.9.5", + "@bruits/satteri-linux-x64-musl": "0.9.5", + "@bruits/satteri-wasm32-wasi": "0.9.5", + "@bruits/satteri-win32-arm64-msvc": "0.9.5", + "@bruits/satteri-win32-x64-msvc": "0.9.5" + } + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", + "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.3", + "@img/sharp-darwin-x64": "0.35.3", + "@img/sharp-freebsd-wasm32": "0.35.3", + "@img/sharp-libvips-darwin-arm64": "1.3.2", + "@img/sharp-libvips-darwin-x64": "1.3.2", + "@img/sharp-libvips-linux-arm": "1.3.2", + "@img/sharp-libvips-linux-arm64": "1.3.2", + "@img/sharp-libvips-linux-ppc64": "1.3.2", + "@img/sharp-libvips-linux-riscv64": "1.3.2", + "@img/sharp-libvips-linux-s390x": "1.3.2", + "@img/sharp-libvips-linux-x64": "1.3.2", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", + "@img/sharp-libvips-linuxmusl-x64": "1.3.2", + "@img/sharp-linux-arm": "0.35.3", + "@img/sharp-linux-arm64": "0.35.3", + "@img/sharp-linux-ppc64": "0.35.3", + "@img/sharp-linux-riscv64": "0.35.3", + "@img/sharp-linux-s390x": "0.35.3", + "@img/sharp-linux-x64": "0.35.3", + "@img/sharp-linuxmusl-arm64": "0.35.3", + "@img/sharp-linuxmusl-x64": "0.35.3", + "@img/sharp-webcontainers-wasm32": "0.35.3", + "@img/sharp-win32-arm64": "0.35.3", + "@img/sharp-win32-ia32": "0.35.3", + "@img/sharp-win32-x64": "0.35.3" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/shiki": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.3.1.tgz", + "integrity": "sha512-oR+qDVi2OjX1tmDpyv+3KviX01KzO6Af+0NNnKnsp9491UEGz2YpxTuJboS/6VhYpTdqzmuJBuiTlrAWWJAssw==", + "license": "MIT", + "dependencies": { + "@shikijs/core": "4.3.1", + "@shikijs/engine-javascript": "4.3.1", + "@shikijs/engine-oniguruma": "4.3.1", + "@shikijs/langs": "4.3.1", + "@shikijs/themes": "4.3.1", + "@shikijs/types": "4.3.1", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", + "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^24.9.2", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.4.1" + }, + "bin": { + "sitemap": "dist/esm/cli.js" + }, + "engines": { + "node": ">=20.19.5", + "npm": ">=10.8.2" + } + }, + "node_modules/smol-toml": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.7.1.tgz", + "integrity": "sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stream-replace-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", + "license": "MIT" + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, + "node_modules/style-to-object": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.7" + } + }, + "node_modules/svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.2.tgz", + "integrity": "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==", + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.15.tgz", + "integrity": "sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==", + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz", + "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==", + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unifont": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.4.tgz", + "integrity": "sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==", + "license": "MIT", + "dependencies": { + "css-tree": "^3.1.0", + "ofetch": "^1.5.1", + "ohash": "^2.0.11" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", + "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/url-extras": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/url-extras/-/url-extras-0.1.0.tgz", + "integrity": "sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", + "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.23", + "rolldown": "~1.2.0", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "license": "MIT" + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", + "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..9f32b441 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,19 @@ +{ + "name": "docs-astro", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/starlight": "^0.41.5", + "@fontsource-variable/jetbrains-mono": "^5.3.0", + "@fontsource/geist-sans": "^5.3.0", + "astro": "^7.0.2", + "sharp": "^0.35.3" + } +} diff --git a/docs/static/favicon.svg b/docs/public/favicon.svg similarity index 100% rename from docs/static/favicon.svg rename to docs/public/favicon.svg diff --git a/docs/static/navlogo.png b/docs/src/assets/branding/navlogo.png similarity index 100% rename from docs/static/navlogo.png rename to docs/src/assets/branding/navlogo.png diff --git a/docs/assets/images/Title-Screen.png b/docs/src/assets/branding/title-screen.png similarity index 100% rename from docs/assets/images/Title-Screen.png rename to docs/src/assets/branding/title-screen.png diff --git a/docs/assets/images/Commit-GHD.png b/docs/src/assets/contributing/Commit-GHD.png similarity index 100% rename from docs/assets/images/Commit-GHD.png rename to docs/src/assets/contributing/Commit-GHD.png diff --git a/docs/assets/images/Complie.png b/docs/src/assets/contributing/Complie.png similarity index 100% rename from docs/assets/images/Complie.png rename to docs/src/assets/contributing/Complie.png diff --git a/docs/assets/images/Discard-GHD.png b/docs/src/assets/contributing/Discard-GHD.png similarity index 100% rename from docs/assets/images/Discard-GHD.png rename to docs/src/assets/contributing/Discard-GHD.png diff --git a/docs/assets/images/Fork-Button-Dark.png b/docs/src/assets/contributing/Fork-Button-Dark.png similarity index 100% rename from docs/assets/images/Fork-Button-Dark.png rename to docs/src/assets/contributing/Fork-Button-Dark.png diff --git a/docs/assets/images/Push-Commit.png b/docs/src/assets/contributing/Push-Commit.png similarity index 100% rename from docs/assets/images/Push-Commit.png rename to docs/src/assets/contributing/Push-Commit.png diff --git a/docs/src/assets/houston.webp b/docs/src/assets/houston.webp new file mode 100644 index 00000000..930c1649 Binary files /dev/null and b/docs/src/assets/houston.webp differ diff --git a/docs/assets/images/config-tab-new.png b/docs/src/assets/screenshots/config-tab-new.png similarity index 100% rename from docs/assets/images/config-tab-new.png rename to docs/src/assets/screenshots/config-tab-new.png diff --git a/docs/assets/images/install-pics/clear-selection-apps.png b/docs/src/assets/screenshots/install-pics/clear-selection-apps.png similarity index 100% rename from docs/assets/images/install-pics/clear-selection-apps.png rename to docs/src/assets/screenshots/install-pics/clear-selection-apps.png diff --git a/docs/assets/images/install-pics/install-apps.png b/docs/src/assets/screenshots/install-pics/install-apps.png similarity index 100% rename from docs/assets/images/install-pics/install-apps.png rename to docs/src/assets/screenshots/install-pics/install-apps.png diff --git a/docs/assets/images/install-pics/installation.png b/docs/src/assets/screenshots/install-pics/installation.png similarity index 100% rename from docs/assets/images/install-pics/installation.png rename to docs/src/assets/screenshots/install-pics/installation.png diff --git a/docs/assets/images/install-pics/show-installed-apps.png b/docs/src/assets/screenshots/install-pics/show-installed-apps.png similarity index 100% rename from docs/assets/images/install-pics/show-installed-apps.png rename to docs/src/assets/screenshots/install-pics/show-installed-apps.png diff --git a/docs/assets/images/install-pics/uninstall-apps.png b/docs/src/assets/screenshots/install-pics/uninstall-apps.png similarity index 100% rename from docs/assets/images/install-pics/uninstall-apps.png rename to docs/src/assets/screenshots/install-pics/uninstall-apps.png diff --git a/docs/assets/images/tweaks-tab-new.png b/docs/src/assets/screenshots/tweaks-tab-new.png similarity index 100% rename from docs/assets/images/tweaks-tab-new.png rename to docs/src/assets/screenshots/tweaks-tab-new.png diff --git a/docs/assets/images/win11creator-tab-new.png b/docs/src/assets/screenshots/win11creator-tab-new.png similarity index 100% rename from docs/assets/images/win11creator-tab-new.png rename to docs/src/assets/screenshots/win11creator-tab-new.png diff --git a/docs/src/components/CornerCard.astro b/docs/src/components/CornerCard.astro new file mode 100644 index 00000000..6dae451f --- /dev/null +++ b/docs/src/components/CornerCard.astro @@ -0,0 +1,123 @@ +--- +// Feature card with small corner brackets instead of a shadow/colored border. +import { Icon } from '@astrojs/starlight/components'; +import type { ComponentProps } from 'astro/types'; + +interface Props { + icon: ComponentProps['name']; + title: string; +} + +const { icon, title } = Astro.props; +--- + +
+
+ + diff --git a/docs/src/components/Footer.astro b/docs/src/components/Footer.astro new file mode 100644 index 00000000..b2c98846 --- /dev/null +++ b/docs/src/components/Footer.astro @@ -0,0 +1,87 @@ +--- +import EditLink from 'virtual:starlight/components/EditLink'; +import LastUpdated from 'virtual:starlight/components/LastUpdated'; +import Pagination from 'virtual:starlight/components/Pagination'; +import config from 'virtual:starlight/user-config'; +import { Icon } from '@astrojs/starlight/components'; + +const year = new Date().getFullYear(); +--- + + + + diff --git a/docs/src/components/Header.astro b/docs/src/components/Header.astro new file mode 100644 index 00000000..f544e4c1 --- /dev/null +++ b/docs/src/components/Header.astro @@ -0,0 +1,178 @@ +--- +import config from 'virtual:starlight/user-config'; + +import LanguageSelect from 'virtual:starlight/components/LanguageSelect'; +import Search from 'virtual:starlight/components/Search'; +import SiteTitle from 'virtual:starlight/components/SiteTitle'; +import SocialIcons from 'virtual:starlight/components/SocialIcons'; +import ThemeSelect from 'virtual:starlight/components/ThemeSelect'; + +/** + * Render the `Search` component if Pagefind is enabled or the default search component has been overridden. + */ +const shouldRenderSearch = + config.pagefind || config.components.Search !== '@astrojs/starlight/components/Search.astro'; +--- + +
+
+ +
+
+ {shouldRenderSearch && } +
+
+ + + + +
+
+ + diff --git a/docs/src/components/Hero.astro b/docs/src/components/Hero.astro new file mode 100644 index 00000000..4a3de267 --- /dev/null +++ b/docs/src/components/Hero.astro @@ -0,0 +1,294 @@ +--- +// Custom hero override: eyebrow, heading, tagline, actions, badges, screenshot. +import { Image } from 'astro:assets'; +import { Icon } from '@astrojs/starlight/components'; + +// Matches Starlight's internal PAGE_TITLE_ID (used by the skip-to-content link). +const PAGE_TITLE_ID = '_top'; + +const { data } = Astro.locals.starlightRoute.entry; +const { title = data.title, tagline, image, actions = [] } = data.hero || {}; +const { heroEyebrow, heroCaption, heroBadges = [] } = data; + +let heroImage: ImageMetadata | undefined; +if (image && 'file' in image) heroImage = image.file; +--- + +
+ + +
+
+ {heroEyebrow &&

{heroEyebrow}

} +

+ {tagline &&

} + { + actions.length > 0 && ( +

+ {actions.map(({ icon, link: href, text, variant = 'primary' }) => ( + + {text} + {icon?.name && ( + + )} + + ))} +
+ ) + } + {heroCaption &&

{heroCaption}

} +

+ { + heroImage && ( +
+
+
+ winutil.ps1 +
+ + + +
+
+ {image?.alt +
+
+ ) + } +
+ { + heroBadges.length > 0 && ( +
+
+ {heroBadges.map(({ src, alt, href }) => + href ? ( + + {alt} + + ) : ( + {alt} + ) + )} +
+
+ ) + } +
+ + diff --git a/docs/src/components/ThemeProvider.astro b/docs/src/components/ThemeProvider.astro new file mode 100644 index 00000000..3d27d872 --- /dev/null +++ b/docs/src/components/ThemeProvider.astro @@ -0,0 +1,36 @@ +--- +// Overrides Starlight's default ThemeProvider: dark by default regardless of OS preference, unless the visitor has explicitly picked a theme before. +import { Icon } from '@astrojs/starlight/components'; +--- + + + + diff --git a/docs/src/content.config.ts b/docs/src/content.config.ts new file mode 100644 index 00000000..2139691b --- /dev/null +++ b/docs/src/content.config.ts @@ -0,0 +1,29 @@ +import { defineCollection } from 'astro:content'; +import { z } from 'astro/zod'; +import { docsLoader } from '@astrojs/starlight/loaders'; +import { docsSchema } from '@astrojs/starlight/schema'; + +export const collections = { + docs: defineCollection({ + loader: docsLoader(), + schema: docsSchema({ + extend: () => + z.object({ + // Small uppercase kicker line above the hero heading, e.g. "Open Source Windows Setup Utility". + heroEyebrow: z.string().optional(), + // Muted one-liner below the hero actions, e.g. "Self-hosted. Script-powered. No installer.". + heroCaption: z.string().optional(), + // Badge images (shields.io, dcbadge, etc.) shown in a row at the bottom of the hero. + heroBadges: z + .array( + z.object({ + src: z.string(), + alt: z.string(), + href: z.string().optional(), + }) + ) + .optional(), + }), + }), + }), +}; diff --git a/docs/content/dev/architecture.md b/docs/src/content/docs/code-reference/architecture.mdx similarity index 97% rename from docs/content/dev/architecture.md rename to docs/src/content/docs/code-reference/architecture.mdx index 490b64a7..8faf950c 100644 --- a/docs/content/dev/architecture.md +++ b/docs/src/content/docs/code-reference/architecture.mdx @@ -1,7 +1,6 @@ --- title: Architecture & Design -weight: 1 -toc: true +description: How WinUtil's GUI, functions, and JSON configuration files fit together, plus a deep dive into the Win11 Creator subsystem. --- ## Overview @@ -342,7 +341,7 @@ Update UI ### applications.json Structure -```json {filename="config/applications.json"} +```json title="config/applications.json" { "WPFInstall": { "category": "Browsers", @@ -365,7 +364,7 @@ Update UI ### tweaks.json Structure -```json {filename="config/tweaks.json"} +```json title="config/tweaks.json" { "WPFTweaksTelemetry": { "Content": "Disable Telemetry", @@ -504,7 +503,7 @@ $sync.form.Dispatcher.Invoke([action]{ ### Adding a New Application 1. Edit `config/applications.json`: -```json {filename="config/applications.json"} +```json title="config/applications.json" { "WPFInstallNewApp": { "category": "Utilities", @@ -522,7 +521,7 @@ $sync.form.Dispatcher.Invoke([action]{ ### Adding a New Tweak 1. Edit `config/tweaks.json`: -```json {filename="config/tweaks.json"} +```json title="config/tweaks.json" { "WPFTweaksNewTweak": { "Content": "New Tweak", @@ -654,10 +653,10 @@ Outputs `winutil.ps1` in the root directory. ## Related Documentation -- [Contributing Guide](../../contributing/) - How to contribute code -- [User Guide](../../userguide/) - End-user documentation -- [Win11 Creator Guide](../../userguide/win11creator/) - Building customized Windows 11 ISOs -- [FAQ](../../faq/) - Common questions +- [Contributing Guide](/contributing/) - How to contribute code +- [User Guide](/guides/) - End-user documentation +- [Win11 Creator Guide](/guides/win11creator/) - Building customized Windows 11 ISOs +- [FAQ](/faq/) - Common questions ## Additional Resources diff --git a/docs/content/CONTRIBUTING.md b/docs/src/content/docs/contributing.mdx similarity index 76% rename from docs/content/CONTRIBUTING.md rename to docs/src/content/docs/contributing.mdx index bb44f8c3..c3a254df 100644 --- a/docs/content/CONTRIBUTING.md +++ b/docs/src/content/docs/contributing.mdx @@ -1,9 +1,8 @@ --- -toc: true +title: Contributing +description: How to test, report issues, and contribute code to WinUtil. --- -# How to Contribute? - ## Testing * Test the latest changes to WinUtil by running the pre-release and reporting issues you are encountering to help us continually improve WinUtil! @@ -14,8 +13,9 @@ toc: true irm https://christitus.com/windev | iex ``` -> [!IMPORTANT] -> **Keep in mind** That this is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production! +:::caution +**Keep in mind** That this is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production! +::: ## Issues @@ -27,19 +27,21 @@ irm https://christitus.com/windev | iex * If you're doing code changes, then you can submit a PR to the `main` branch. -> [!IMPORTANT] -> Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST! +:::caution +Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST! +::: -> [!IMPORTANT] -> Do not open a pull request that adds support for other languages to WinUtil for now, until we decide how we want to move forward with language support. +:::caution +Do not open a pull request that adds support for other languages to WinUtil for now, until we decide how we want to move forward with language support. +::: * When creating pull requests, it is essential to thoroughly document all changes made. This includes, but is not limited to, documenting any additions made to the `tweaks` section and corresponding `undo tweak`, so users are able to remove the newly added tweaks if necessary, and comprehensive documentation is required for all code changes. Document your changes and briefly explain why you made your changes in your Pull Request Description. Failure to adhere to this format may result in the denial of the pull request. Additionally, any code lacking sufficient documentation may also be denied. * By following these guidelines, we can maintain a high standard of quality and ensure that the codebase remains organized and well-documented. -> [!NOTE] -> -> When creating a function, please include "WPF" or "WinUtil" in the file name so it can be loaded into the runspace. +:::note +When creating a function, please include "WPF" or "WinUtil" in the file name so it can be loaded into the runspace. +::: ## Walk through @@ -68,23 +70,23 @@ graph TD classDef default stroke:#333,stroke-width:4px,font-size:12pt; ``` -> [!NOTE] -> -> This is a diagram to guide you through the process. It may vary depending on the type of change you're making. +:::note +This is a diagram to guide you through the process. It may vary depending on the type of change you're making. +::: ### Fork the Repo * Fork the WinUtil Repository [here](https://github.com/ChrisTitusTech/winutil) to create a copy that will be available in your repository list. -{{< image src="images/Fork-Button" alt="Fork Image" >}} +![Fork Image](../../assets/contributing/Fork-Button-Dark.png) ### Clone the Fork -> [!TIP] -> -> While you can make your changes directly through the Web, we recommend cloning the repo to your device using the application GitHub Desktop (available in WinUtil) to test your fork easily. +:::tip +While you can make your changes directly through the Web, we recommend cloning the repo to your device using the application GitHub Desktop (available in WinUtil) to test your fork easily. +::: * Install GitHub Desktop if it is not already installed. * Log in using the same GitHub account you used to fork WinUtil. -* Choose the fork under "Your Repositories" and press "clone {repo name}" +* Choose the fork under "Your Repositories" and press "clone `{repo name}`" * Create a new branch and name it something relatable to your changes. * Now you can modify WinUtil to your liking using your preferred text editor. @@ -99,22 +101,22 @@ graph TD * Run the following command to compile and run WinUtil: * `.\Compile.ps1 -run` -{{< image src="images/Complie" alt="Compile" >}} +![Compile](../../assets/contributing/Complie.png) * After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below. ### Committing the changes * Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following: -{{< image src="images/Discard-GHD" alt="Push Commit Image" >}} +![Push Commit Image](../../assets/contributing/Discard-GHD.png) * Now, commit your changes once you are happy with the result. -{{< image src="images/Commit-GHD" alt="Commit Image" >}} +![Commit Image](../../assets/contributing/Commit-GHD.png) * Push the changes to upload them to your fork on github.com. -{{< image src="images/Push-Commit" alt="Push Commit Image" >}} +![Push Commit Image](../../assets/contributing/Push-Commit.png) ### Making a PR * To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is no WinUtil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build. diff --git a/docs/content/faq.md b/docs/src/content/docs/faq.mdx similarity index 77% rename from docs/content/faq.md rename to docs/src/content/docs/faq.mdx index ec2c8b94..cd8aef9f 100644 --- a/docs/content/faq.md +++ b/docs/src/content/docs/faq.mdx @@ -1,68 +1,81 @@ --- title: Frequently Asked Questions -toc: true +description: Common questions about installing, running, and troubleshooting WinUtil. --- -## General Questions +## General questions ### Is Windows 10 still supported? -No. Windows 10 is no longer supported by WinUtil because it reached the end of support on **October 14, 2025**. -WinUtil is focused on Windows 11. + +No. Windows 10 is no longer supported by WinUtil because it reached the end of support on **October 14, 2025**. WinUtil is focused on Windows 11. ### How do I uninstall WinUtil? + You do not need to uninstall WinUtil. Because it runs as a PowerShell script, it is loaded into memory only while it is open. Once you close it, it is removed from memory and does not remain installed on your system. ### Is WinUtil safe to use? + Yes, WinUtil is open source, and the code is publicly available on GitHub. Thousands of users run it daily. However, like any system modification tool, you should: + - Run it as Administrator (required) - Create a restore point before major changes - Understand what tweaks you're applying -- Run only from [official source](https://github.com/ChrisTitusTech/winutil/) +- Run only from the [official source](https://github.com/ChrisTitusTech/winutil/) ### Do I need to keep running WinUtil? + No. Once you've applied tweaks or installed applications, you can close WinUtil. Changes persist after closing. You only need to run WinUtil again when you want to make additional changes or undo tweaks. -### Does Winutil require internet access? -- **For downloading**: Yes, installing applications requires the Internet +### Does WinUtil require internet access? + +- **For downloading**: Yes, installing applications requires the internet - **For tweaks**: No, most tweaks work offline - **Initial run**: Yes, to run the latest script ### How often is WinUtil updated? + WinUtil is actively maintained with frequent updates. New features, bug fixes, and application additions are released regularly. The script auto-downloads the latest version each time you run it. -## Installation & Running +## Installation & running ### How do I run WinUtil? + 1. Open PowerShell as Administrator 2. Run: `irm "https://christitus.com/win" | iex` 3. Wait for the GUI to appear ### Why do I need Administrator rights? + WinUtil makes system-level changes (registry edits, service modifications, software installation) that require elevated permissions. Without admin rights, most features won't work. ### The script won't download. What do I do? + Try these solutions in order: 1. **Use the direct GitHub link**: + ```powershell irm https://github.com/ChrisTitusTech/winutil/releases/latest/download/Winutil.ps1 | iex ``` 2. **Force TLS 1.2**: + ```powershell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 irm "https://christitus.com/win" | iex ``` - > [!NOTE] - > On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you encounter download or security protocol errors. + :::note + On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you encounter download or security protocol errors. + ::: 3. **Change DNS** to Cloudflare (1.1.1.1) or Google (8.8.8.8) - 4. **Use a VPN** if GitHub is blocked in your region ### I get an "Execution Policy" error. How do I fix it? + Run this command first to allow script execution: + ```powershell Set-ExecutionPolicy Unrestricted -Scope Process -Force irm "https://christitus.com/win" | iex @@ -70,11 +83,13 @@ irm "https://christitus.com/win" | iex This only affects the current PowerShell session and is safe. -## Tweaks & Modifications +## Tweaks & modifications ### I applied a tweak and now something doesn't work. What do I do? + If you applied a tweak and it breaks something, you can revert it: -1. Open Winutil again + +1. Open WinUtil again 2. Go to the **Tweaks** tab 3. Select the same tweak you applied 4. Click **Undo Selected Tweaks** @@ -83,7 +98,9 @@ If you applied a tweak and it breaks something, you can revert it: Alternatively, use System Restore if you created a restore point. ### Which tweaks are safe to apply? + **Safe for everyone (Essential Tweaks)**: + - Disable Telemetry - Disable Activity History - Disable Location Tracking @@ -91,27 +108,33 @@ Alternatively, use System Restore if you created a restore point. - Run Disk Cleanup - Create Restore Point -**(Advanced Tweaks)** should only be run by advanced users. +**Advanced Tweaks** should only be run by advanced users. ### Will tweaks survive Windows Updates? + Most tweaks persist through updates, but some may be reset by major Windows feature updates. You may need to reapply certain tweaks afterwards. ### Can I create my own tweak presets? -Currently, Winutil uses predefined presets (Standard, Minimal). Custom presets aren't directly supported in the GUI, but you can script your preferred configuration. + +Currently, WinUtil uses predefined presets (Standard, Minimal). Custom presets aren't directly supported in the GUI, but you can script your preferred configuration. ### What's the difference between Essential and Advanced tweaks? + - **Essential Tweaks**: Safe for most users, improve performance/privacy with minimal risk - **Advanced Tweaks**: More aggressive changes that may break functionality or compatibility. Use with caution. -## Application Installation +## Application installation -### How does Winutil install applications? -Winutil uses Windows Package Manager (WinGet) and Chocolatey to automate installations. It downloads applications from official sources and installs them silently without bloatware. +### How does WinUtil install applications? + +WinUtil uses Windows Package Manager (WinGet) and Chocolatey to automate installations. It downloads applications from official sources and installs them silently without bloatware. ### Can I install multiple applications at once? + Yes! Check the boxes for all applications you want, then click "Install Selected". They'll install sequentially. ### WinGet isn't working. How do I fix it? + 1. Go to the **Config** tab 2. Find the **Fixes** section 3. Click **WinGet Reinstall** @@ -119,49 +142,62 @@ Yes! Check the boxes for all applications you want, then click "Install Selected 5. Try installing applications again ### Do installed applications have bloatware or bundled software? + No. WinGet and Chocolatey install clean versions of applications without bundled offers, toolbars, or bloatware. -### Can I uninstall applications through Winutil? -Winutil primarily focuses on installing and managing applications rather than providing a full GUI for uninstalling every program. To remove applications you can: +### Can I uninstall applications through WinUtil? + +WinUtil primarily focuses on installing and managing applications rather than providing a full GUI for uninstalling every program. To remove applications you can: + - Use Windows Settings > Apps > Installed apps to uninstall programs. - Use package manager commands in PowerShell (for example `winget uninstall ` or `choco uninstall `). -- Some packages installed by Winutil (AppX/MSIX) include removal helpers; check the app entry or use Winutil's remove helpers when available. +- Some packages installed by WinUtil (AppX/MSIX) include removal helpers; check the app entry or use WinUtil's remove helpers when available. ### Will installed apps auto-update? -Applications with built-in update mechanisms will auto-update. You can also update them via WinGet/Chocolatey commands or through Winutil's "Upgrade Selected" feature. -## Updates & Maintenance +Applications with built-in update mechanisms will auto-update. You can also update them via WinGet/Chocolatey commands or through WinUtil's "Upgrade Selected" feature. + +## Updates & maintenance ### Should I disable Windows Updates? + Generally, **no**. Security updates are important. However, you might: + - Use "Security Updates Only" to avoid feature updates - Pause updates temporarily for stability - Disable only during critical work periods ### How do I re-enable updates after disabling them? -1. Open Winutil + +1. Open WinUtil 2. Go to the **Updates** tab 3. Click **Default Updates** 4. Updates will resume normally ### What's the difference between "Security Updates Only" and "Disable Updates"? + - **Security Updates Only**: Installs critical security patches, blocks feature updates (major versions) - **Disable Updates**: Blocks ALL updates including security (not recommended) ## Troubleshooting -### Winutil won't open after running the command +### WinUtil won't open after running the command + Possible causes: + 1. **Antivirus blocking**: Add PowerShell exception 2. **Not run as Admin**: Restart PowerShell as Administrator 3. **Corrupted download**: Close PowerShell, reopen, try again 4. **Windows Defender**: Allow the script -### My antivirus flags Winutil as malicious -This is a false positive. Winutil makes system changes that antivirus programs may flag. The code is open source and audited. Add an exception if needed. +### My antivirus flags WinUtil as malicious + +This is a false positive. WinUtil makes system changes that antivirus programs may flag. The code is open source and audited. Add an exception if needed. ### An application failed to install + Troubleshooting steps: + 1. Check your internet connection 2. Try installing just that one application 3. Review error messages in the output panel @@ -169,40 +205,50 @@ Troubleshooting steps: 5. Try the WinGet Reinstall fix ### Network tweaks broke my internet connection -1. Open Winutil + +1. Open WinUtil 2. Go to **Config** > **Fixes** 3. Click **Reset Network** 4. Restart your computer 5. Connection should be restored ### I can't access certain Windows features after applying tweaks + Undo the tweaks that might have affected those features: -1. Reopen Winutil + +1. Reopen WinUtil 2. Select the tweaks you applied 3. Click **Undo Selected Tweaks** If that doesn't work, use System Restore to revert to a previous state. -## Advanced Topics +## Advanced topics -### Can I run Winutil on Windows Server? -Yes, Winutil works on Windows Server editions, though some features may not be applicable or may behave differently. +### Can I run WinUtil on Windows Server? -### Does Winutil work with Windows LTSC? -Yes, Winutil works with Windows 10/11 LTSC editions. Some applications may not be available depending on your configuration. +Yes, WinUtil works on Windows Server editions, though some features may not be applicable or may behave differently. + +### Does WinUtil work with Windows LTSC? + +Yes, WinUtil works with Windows 10/11 LTSC editions. Some applications may not be available depending on your configuration. + +### Can I use WinUtil in a corporate/enterprise environment? -### Can I use Winutil in a corporate/enterprise environment? Yes, but check your organization's policies first. Some tweaks may conflict with Group Policy or other corporate requirements. -### How do I automate Winutil for multiple PCs? -See the [Automation Guide](/userguide/automation/) for details on: +### How do I automate WinUtil for multiple PCs? + +See the [Automation Guide](/guides/automation/) for details on: + - Configuration files - PowerShell parameters - Batch deployment - Silent installation -### Can I contribute to Winutil? +### Can I contribute to WinUtil? + Yes! Contributions are welcome: + - Report bugs on GitHub Issues - Submit pull requests for fixes/features - Improve documentation @@ -210,13 +256,16 @@ Yes! Contributions are welcome: See the [Contributing Guide](/contributing/) for details. -## Privacy & Security +## Privacy & security -### Does Winutil collect any data? -No, Winutil itself doesn't collect or transmit any user data. It's a local PowerShell script. +### Does WinUtil collect any data? + +No, WinUtil itself doesn't collect or transmit any user data. It's a local PowerShell script. ### What telemetry does the Disable Telemetry tweak block? + It disables: + - Windows diagnostic data collection - Activity history tracking - Feedback requests @@ -224,12 +273,15 @@ It disables: - Error reporting (optional) ### Will removing Microsoft Store affect security updates? + No, Windows security updates are independent of the Microsoft Store. ## Performance -### Will Winutil make my PC faster? +### Will WinUtil make my PC faster? + Tweaks can improve performance by: + - Reducing background processes - Disabling unnecessary services - Cleaning temporary files @@ -238,29 +290,32 @@ Tweaks can improve performance by: Results may vary depending on your system. ### What's the best preset for gaming? + Use the **Desktop** preset, then additionally apply: + - Disable GameDVR - Ultimate Performance power plan - Disable full-screen optimizations (Advanced) - Set display for performance (Advanced) -### How much RAM does Winutil use? -Winutil itself uses about 50-100 MB while running. Once closed, it is removed from memory. +### How much RAM does WinUtil use? -## Error Messages +WinUtil itself uses about 50-100 MB while running. Once closed, it is removed from memory. + +## Error messages ### "Access Denied" errors + - Ensure PowerShell is running as Administrator - Check if the antivirus is blocking changes - Verify you have ownership of files/registry keys - -## Still Need Help? +## Still need help? Can't find your answer? Try these resources: -- **[Known Issues](/knownissues/)** - Check if it's a known problem -- **[User Guide](/userguide/)** - Comprehensive documentation -- **[Discord Community](https://discord.gg/RUbZUZyByQ)** - Get help from other users -- **[GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues)** - Report bugs -- **[YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)** - Video walkthrough +- **[Known Issues](/known-issues/)** β€” Check if it's a known problem +- **[User Guide](/guides/getting-started/)** β€” Comprehensive documentation +- **[Discord Community](https://discord.gg/RUbZUZyByQ)** β€” Get help from other users +- **[GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues)** β€” Report bugs +- **[YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)** β€” Video walkthrough diff --git a/docs/src/content/docs/guides/application.mdx b/docs/src/content/docs/guides/application.mdx new file mode 100644 index 00000000..58a78196 --- /dev/null +++ b/docs/src/content/docs/guides/application.mdx @@ -0,0 +1,57 @@ +--- +title: Applications +description: Use the Applications tab in WinUtil to install, upgrade, uninstall, and review supported apps. +sidebar: + order: 2 +--- + +import { Tabs, TabItem } from '@astrojs/starlight/components'; + +Use the Applications tab to install, upgrade, uninstall, and review supported apps from one place. WinUtil relies on package manager support for these actions, so the available results depend on what WinGet can detect and manage on your system. + + + +* Choose the applications you want to install or upgrade. + * For programs not currently installed, this action will install them. + * For programs already installed, this action will update them to the latest version. +* Click the `Install/Upgrade Selected` button to start the installation or upgrade process. + +![Install or upgrade selected applications](../../../assets/screenshots/install-pics/installation.png) + + +* Simply press the `Upgrade All` button. +* This upgrades every supported installed program without individual selection. + +![Upgrade all applications](../../../assets/screenshots/install-pics/install-apps.png) + + +* Select the programs you wish to uninstall. +* Click the `Uninstall Selected` button to remove them. + +![Uninstall selected applications](../../../assets/screenshots/install-pics/uninstall-apps.png) + + +* Click the `Show Installed Apps` button. +* This scans for and selects installed applications supported by WinGet. + +![Show installed apps](../../../assets/screenshots/install-pics/show-installed-apps.png) + + +* Click the `Clear Selection` button. +* This clears all current selections. + +![Clear app selections](../../../assets/screenshots/install-pics/clear-selection-apps.png) + + + +:::tip +If you have trouble finding an application, press `Ctrl + F` and search for its name. The list filters as you type. +::: + +:::note +`Show Installed Apps` only selects software that WinGet can identify. Apps installed outside supported package sources may not appear. +::: + +:::caution +Before uninstalling or upgrading apps, close any running programs first. Some packages may still prompt for input or fail if their source is unavailable. +::: diff --git a/docs/content/userguide/automation/_index.md b/docs/src/content/docs/guides/automation.mdx similarity index 80% rename from docs/content/userguide/automation/_index.md rename to docs/src/content/docs/guides/automation.mdx index 61c22ecc..f44efae9 100644 --- a/docs/content/userguide/automation/_index.md +++ b/docs/src/content/docs/guides/automation.mdx @@ -1,8 +1,8 @@ --- title: Automation -weight: 7 -prev: /userguide/updates/ -next: /userguide/win11creator/ +description: Run WinUtil from an exported configuration file or a preset to automate setups across multiple PCs. +sidebar: + order: 6 --- Use Automation to run WinUtil from an exported configuration file. @@ -40,5 +40,6 @@ This is useful for: - Reusing a known-good baseline after reinstalling Windows - Standardizing deployments for labs, workstations, or personal setups -> [!NOTE] -> Run the command in an elevated PowerShell session so WinUtil can apply system-level changes. +:::note +Run the command in an elevated PowerShell session so WinUtil can apply system-level changes. +::: diff --git a/docs/content/userguide/features/_index.md b/docs/src/content/docs/guides/features.mdx similarity index 87% rename from docs/content/userguide/features/_index.md rename to docs/src/content/docs/guides/features.mdx index 0c4e3e5d..ca5a76b8 100644 --- a/docs/content/userguide/features/_index.md +++ b/docs/src/content/docs/guides/features.mdx @@ -1,15 +1,15 @@ --- title: Features -weight: 5 -prev: /userguide/tweaks/ -next: /userguide/updates/ +description: Install optional Windows components and run common repair tasks from the Features and Fixes sections. +sidebar: + order: 4 --- Use the **Features** and **Fixes** sections to install optional Windows components and run common repair tasks. This page maps to the **Config** tab in WinUtil. Some actions complete immediately, while others may prompt, download files from Microsoft, or require a restart before the change is fully available. -{{< image src="images/config-tab-new" alt="Config tab with features and fixes" >}} +![Config tab with features and fixes](../../../assets/screenshots/config-tab-new.png) ## Windows Features diff --git a/docs/src/content/docs/guides/getting-started.mdx b/docs/src/content/docs/guides/getting-started.mdx new file mode 100644 index 00000000..dcffba8f --- /dev/null +++ b/docs/src/content/docs/guides/getting-started.mdx @@ -0,0 +1,259 @@ +--- +title: Getting Started +description: The safest way to get started with WinUtil and the first actions most users take. +sidebar: + order: 1 +--- + +## Welcome to WinUtil! + +WinUtil helps you install apps, apply system tweaks, run common fixes, and manage Windows settings from one place. This guide covers the safest way to get started and the first actions most users take. + +## System requirements + +Before running WinUtil, ensure your system meets these requirements: + +:::caution +Windows 10 is not supported by WinUtil. Windows 10 reached the end of support on **October 14, 2025**. +::: + +- **Operating system**: Windows 11 +- **PowerShell**: Version 5.1 or later (included by default in Windows 11) +- **Administrator access**: Required for system-level changes +- **Internet connection**: Required for downloading applications and updates +- **.NET Framework**: Version 4.5 or later (usually pre-installed) + +## Installation + +WinUtil doesn't require traditional installation. It runs directly from PowerShell as a script. + +### Step 1: Open PowerShell as Administrator + +There are several ways to open PowerShell with admin rights: + +**Method 1: Start menu (recommended)** + +1. Right-click the Windows Start button. +2. Select "Terminal (Admin)". + +**Method 2: Search method** + +1. Press the `Windows` key. +2. Type "PowerShell" or "Terminal". +3. Press `Ctrl + Shift + Enter` to launch as administrator. +4. Or right-click and select "Run as administrator". + +**Method 3: Run dialog** + +1. Press `Windows + R`. +2. Type `powershell`. +3. Press `Ctrl + Shift + Enter`. + +### Step 2: Run the launch command + +With PowerShell running as Administrator, run one of the following commands depending on the release channel you want. + +**Stable release (recommended)** + +```powershell +irm "https://christitus.com/win" | iex +``` + +**Development branch (bleeding edge β€” for testing only)** + +```powershell +irm "https://christitus.com/windev" | iex +``` + +:::note +- The `irm` command downloads the script, and `iex` executes it. This is safe when downloading from the official source. +- The development branch may contain experimental changes and should only be used for testing on non-production systems. +::: + +### Step 3: Wait for WinUtil to load + +The first time you run WinUtil, it may take a few moments to: + +- Download the latest version +- Initialize the interface +- Load all features and settings + +## First time setup + +### Understanding the interface + +WinUtil opens with a clean, tabbed interface: + +**Main tabs**: + +- **Install**: Browse and install applications +- **Tweaks**: Apply system optimizations and customizations +- **Config**: Access system tools and utilities +- **Updates**: Manage Windows updates +- **Win11 Creator**: Build a customized Windows 11 ISO from an official Microsoft image + +## Your first actions + +Here are some recommended first steps for new users: + +### 1. Create a restore point + +Before making any changes, create a system restore point: + +1. Go to the **Tweaks** tab. +2. Find "Create Restore Point" under Essential Tweaks. +3. Check the box and click **Run Tweaks**. + +This gives you a rollback point if needed. + +### 2. Install essential applications + +1. Navigate to the **Install** tab. +2. Browse categories or use the search bar. +3. Check the applications you want to install. +4. Click "Install/Upgrade Selected" at the bottom. + +### 3. Apply basic tweaks + +For a better Windows experience with minimal risk: + +1. Go to the **Tweaks** tab. +2. Select the **Standard** preset for a balanced configuration. +3. Review the selected tweaks. +4. Click **Run Tweaks**. + +:::note +Some tweaks, fixes, and update changes may require a restart or sign-out before the full effect is visible. +::: + +## Common tasks + +### Installing applications + +**Single application**: + +1. Open the **Install** tab. +2. Search for the application name. +3. Check the box next to it. +4. Click "Install/Upgrade Selected". + +**Multiple applications**: + +1. Check multiple application boxes. +2. All checked apps will install in sequence. +3. Install and uninstall progress is shown in the window-level bottom panel, including the current package or package-manager batch and overall completion. + +### Applying tweaks + +**Essential tweaks** (safe for all users): + +1. Go to the **Tweaks** tab. +2. Select from the Essential Tweaks section. +3. Click **Run Tweaks**. + +**Advanced tweaks** (use with caution): + +1. Only modify if you understand the implications. +2. Always create a restore point first. +3. Review documentation for each tweak. + +**Undoing tweaks**: + +1. Select the same tweaks you applied. +2. Click **Undo Selected Tweaks**. +3. The system reverts to the previous state. + +### Using quick fixes + +For common Windows issues: + +1. Go to the **Config** tab. +2. Navigate to the **Fixes** section. +3. Select the appropriate fix: + - **Reset Network**: Fixes network connectivity issues + - **Reset Windows Update**: Resolves update problems + - **System Corruption Scan**: Repairs corrupted system files + - **WinGet Reinstall**: Fixes package manager issues + +### Changing DNS servers + +For improved privacy and speed: + +1. Go to the **Tweaks** tab. +2. Find the DNS section. +3. Select a provider: + - **Cloudflare**: Fast and privacy-focused + - **Google**: Reliable and widely used + - **Quad9**: Security-focused with malware blocking + - **AdGuard**: Blocks ads and trackers +4. Click **Apply**. + +## Understanding presets + +WinUtil offers several preset configurations: + +- **Minimal**: Minimal changes that keep most Windows features +- **Standard**: A good middle ground for most users +- **Advanced**: Selects a focused set of safer advanced tweaks + +## Safety tips + +βœ… **Do**: + +- Create restore points before major changes +- Read tweak descriptions before applying +- Start with Essential Tweaks +- Keep Windows up to date +- Back up important data + +❌ **Don't**: + +- Apply all tweaks at once without understanding them +- Skip creating restore points +- Use Advanced Tweaks without research +- Disable security features unless necessary +- Run on production systems without testing + +## Troubleshooting first run + +### Script won't download + +If the launch command fails: + +- Make sure PowerShell or Terminal is running as Administrator. +- Confirm the PC has internet access and can reach `christitus.com`. +- Retry from a normal PowerShell session rather than a restricted enterprise shell profile. +- If the command starts and then closes immediately, reopen Terminal as Administrator and run it again so you can read the error output. + +If it still fails, check the [Known Issues](/known-issues/) page. + +## Next steps + +Now that you're set up, explore these guides: + +- [Applications Guide](/guides/application/) β€” Learn about installing, upgrading, and uninstalling software +- [Tweaks Guide](/guides/tweaks/) β€” Understand system optimizations +- [FAQ](/faq/) β€” Common questions and answers + +## Getting help + +If you need assistance: + +- **Documentation**: Browse this documentation site +- **Known Issues**: Check the [Known Issues](/known-issues/) page +- **Discord**: Join the [community Discord server](https://discord.gg/RUbZUZyByQ) +- **GitHub Issues**: Report bugs on [GitHub](https://github.com/ChrisTitusTech/winutil/issues) +- **YouTube**: Watch [video tutorials](https://www.youtube.com/watch?v=6UQZ5oQg8XA) + +## Quick reference card + +| Task | Location | Action | +| ---- | -------- | ------ | +| Install or upgrade apps | Install tab | Check boxes β†’ Install/Upgrade Selected | +| Uninstall apps | Install tab | Check boxes β†’ Uninstall Selected | +| Apply tweaks | Tweaks tab | Select tweaks β†’ Run Tweaks | +| Undo tweaks | Tweaks tab | Select tweaks β†’ Undo Selected Tweaks | +| Create restore point | Tweaks tab | Essential Tweaks section | +| Fix network | Config tab | Fixes β†’ Reset Network | +| Change DNS | Tweaks tab | DNS section | +| Open Control Panel | Config tab | Legacy Windows Panels | diff --git a/docs/content/userguide/_index.md b/docs/src/content/docs/guides/index.mdx similarity index 68% rename from docs/content/userguide/_index.md rename to docs/src/content/docs/guides/index.mdx index ba92676e..bb64f4b7 100644 --- a/docs/content/userguide/_index.md +++ b/docs/src/content/docs/guides/index.mdx @@ -1,18 +1,15 @@ --- title: User Guide -weight: 2 -breadcrumbs: false -cascade: - type: docs - params: - reversePagination: false - breadcrumbs: false +description: Overview of the WinUtil User Guide β€” installing apps, applying tweaks, running fixes, and managing updates. +sidebar: + order: 0 --- Welcome to the official User Guide for **Winutil**, your all-in-one Windows toolkit. -> [!IMPORTANT] -> Windows 10 is not supported by Winutil. Windows 10 reached the end of support on **October 14, 2025**. +:::caution +Windows 10 is not supported by Winutil. Windows 10 reached the end of support on **October 14, 2025**. +::: ## What is Winutil? @@ -39,13 +36,13 @@ Winutil is designed for: New to Winutil? Follow the guides below in order to get up and running quickly: -1. **[Getting Started](getting-started/)** - Learn how to launch Winutil and understand the basics. -2. **[Applications](application/)** - Install, update, and remove apps with ease. -3. **[Tweaks](tweaks/)** - Apply performance, privacy, and usability improvements. -4. **[Features](features/)** - Explore built-in tools and common Windows fixes. -5. **[Updates](updates/)** - Configure how Windows Update behaves on your system. -6. **[Automation](automation/)** - Automate setups and reuse configurations across PCs. -7. **[Win11 Creator](win11creator/)** - Build a custom debloated Windows 11 ISO. +1. **[Getting Started](/guides/getting-started/)** - Learn how to launch Winutil and understand the basics. +2. **[Applications](/guides/application/)** - Install, update, and remove apps with ease. +3. **[Tweaks](/guides/tweaks/)** - Apply performance, privacy, and usability improvements. +4. **[Features](/guides/features/)** - Explore built-in tools and common Windows fixes. +5. **[Updates](/guides/updates/)** - Configure how Windows Update behaves on your system. +6. **[Automation](/guides/automation/)** - Automate setups and reuse configurations across PCs. +7. **[Win11 Creator](/guides/win11creator/)** - Build a custom debloated Windows 11 ISO. ## Main Features @@ -53,13 +50,13 @@ New to Winutil? Follow the guides below in order to get up and running quickly: Browse and install hundreds of popular applications with a single click. No more hunting for download links or dealing with installer bloat. -**[Read the Applications Guide β†’](application/)** +**[Read the Applications Guide β†’](/guides/application/)** ### System Tweaks Apply optimizations for performance, privacy, and usability. Choose from preset configurations or customize individual tweaks. -**[Read the Tweaks Guide β†’](tweaks/)** +**[Read the Tweaks Guide β†’](/guides/tweaks/)** ### Config & Fixes @@ -69,7 +66,7 @@ Quick fixes for common Windows problems: - Repair system files - Access legacy Windows panels -**[Read the Features Guide β†’](features/)** +**[Read the Features Guide β†’](/guides/features/)** ### Update Management @@ -79,7 +76,7 @@ Take control of Windows Updates with options to: - Pause updates - Manage driver updates -**[Read the Updates Guide β†’](updates/)** +**[Read the Updates Guide β†’](/guides/updates/)** ### Automation @@ -89,13 +86,13 @@ Automate Winutil configurations for: - Consistent configurations - Scripted installations -**[Read the Automation Guide β†’](automation/)** +**[Read the Automation Guide β†’](/guides/automation/)** ### Windows 11 Creator Build a custom Windows 11 ISO with bloatware removed, telemetry disabled, and hardware requirement checks bypassed. You can then export it as an ISO file or write it directly to a USB drive. -**[Read the Win11 Creator Guide β†’](win11creator/)** +**[Read the Win11 Creator Guide β†’](/guides/win11creator/)** ## Safety and Best Practices @@ -127,8 +124,8 @@ Before using Winutil: Need help? - **Documentation**: You're reading it. Use the navigation menu. -- **FAQ**: Check [Frequently Asked Questions](../faq/) -- **Known Issues**: Review [Known Issues](../knownissues/) +- **FAQ**: Check [Frequently Asked Questions](/faq/) +- **Known Issues**: Review [Known Issues](/known-issues/) - **Discord**: Join the [community Discord](https://discord.gg/RUbZUZyByQ) - **GitHub**: Report bugs on [GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues) - **YouTube**: Watch [video tutorials](https://www.youtube.com/watch?v=6UQZ5oQg8XA) @@ -143,20 +140,16 @@ Want to help improve Winutil? - **Improve Docs**: Help expand this documentation - **Share Knowledge**: Help others in Discord -**[Read Contributing Guide β†’](../contributing/)** +**[Read Contributing Guide β†’](/contributing/)** ## Video Tutorial -Watch the complete WinUtil overview: +Watch the complete WinUtil overview: [https://www.youtube.com/watch?v=6UQZ5oQg8XA](https://www.youtube.com/watch?v=6UQZ5oQg8XA) -{{< youtube id=6UQZ5oQg8XA loading=lazy >}} - -Ready to get started? Head to the **[Getting Started Guide](getting-started/)**. +Ready to get started? Head to the **[Getting Started Guide](/guides/getting-started/)**. ## Next Dive right into the following section to get started: -{{< cards >}} - {{< card link="getting-started" title="Getting Started" icon="document-text" subtitle="Learn how to use WinUtil." >}} -{{< /cards >}} +**[Getting Started](/guides/getting-started/)** β€” Learn how to use WinUtil. diff --git a/docs/content/userguide/tweaks/_index.md b/docs/src/content/docs/guides/tweaks.mdx similarity index 89% rename from docs/content/userguide/tweaks/_index.md rename to docs/src/content/docs/guides/tweaks.mdx index ef16108b..cd3af0b5 100644 --- a/docs/content/userguide/tweaks/_index.md +++ b/docs/src/content/docs/guides/tweaks.mdx @@ -1,11 +1,11 @@ --- title: Tweaks -weight: 4 -prev: /userguide/application/ -next: /userguide/features/ +description: Apply recommended Windows changes, review optional presets, and adjust supporting settings such as DNS and power plans. +sidebar: + order: 3 --- -{{< image src="images/tweaks-tab-new" alt="Image of Tweaks Tab" >}} +![Image of Tweaks Tab](../../../assets/screenshots/tweaks-tab-new.png) Use the Tweaks tab to apply recommended Windows changes, review optional presets, and adjust a few supporting settings such as DNS and power plans. Start with a preset unless you already know which individual tweaks you want. @@ -23,11 +23,13 @@ Use the quick-selection buttons at the top of the Tweaks tab to speed up setup: * **Select Tweaks**: Choose the tweaks you want to apply. You can use the presets available at the top for convenience. * **Run Tweaks**: After selecting the desired tweaks, click **Run Tweaks** at the bottom of the screen. -> [!NOTE] -> To see what each preset includes, view [preset.json](https://github.com/ChrisTitusTech/winutil/blob/main/config/preset.json). +:::note +To see what each preset includes, view [preset.json](https://github.com/ChrisTitusTech/winutil/blob/main/config/preset.json). +::: -> [!IMPORTANT] -> Some tweaks take effect immediately, while others may require Explorer to restart, a sign-out, or a full reboot. +:::caution +Some tweaks take effect immediately, while others may require Explorer to restart, a sign-out, or a full reboot. +::: ### Undo Tweaks * **Open the Tweaks tab**: Go to the **Tweaks** tab located next to **Install**. @@ -51,8 +53,7 @@ Advanced Tweaks are for users who understand the side effects of deeper Windows ### O&O ShutUp10++ [O&O ShutUp10++](https://www.oo-software.com/en/shutup10) can be launched from WinUtil with one click. It is a free privacy tool for Windows that helps users manage telemetry, update behavior, and app permission settings. -{{< youtube id=3HvNr8eMcv0 loading=lazy >}} - +Watch a walkthrough: [https://www.youtube.com/watch?v=3HvNr8eMcv0](https://www.youtube.com/watch?v=3HvNr8eMcv0) ### DNS diff --git a/docs/content/userguide/updates/_index.md b/docs/src/content/docs/guides/updates.mdx similarity index 94% rename from docs/content/userguide/updates/_index.md rename to docs/src/content/docs/guides/updates.mdx index d8f6e02e..49b06c93 100644 --- a/docs/content/userguide/updates/_index.md +++ b/docs/src/content/docs/guides/updates.mdx @@ -1,8 +1,8 @@ --- title: Updates -weight: 6 -prev: /userguide/features/ -next: /userguide/automation/ +description: Choose how aggressively Windows Update is managed on your system with WinUtil's three update modes. +sidebar: + order: 5 --- WinUtil provides three update modes so you can choose how aggressively Windows Update is managed on your system: diff --git a/docs/content/userguide/win11Creator/_index.md b/docs/src/content/docs/guides/win11creator.mdx similarity index 70% rename from docs/content/userguide/win11Creator/_index.md rename to docs/src/content/docs/guides/win11creator.mdx index e2c81942..7d112a92 100644 --- a/docs/content/userguide/win11Creator/_index.md +++ b/docs/src/content/docs/guides/win11creator.mdx @@ -1,20 +1,25 @@ --- title: Win11 Creator -weight: 8 -prev: /userguide/automation/ +description: Build a custom, debloated Windows 11 ISO from an official Microsoft image using WinUtil's Win11 Creator tool. +sidebar: + order: 7 --- +import { Tabs, TabItem } from '@astrojs/starlight/components'; + ## Using WinUtil's Win11 Creator WinUtil includes a built-in **Win11 Creator** tool that lets you take an official Windows 11 ISO and produce a customized, debloated version. The resulting image can remove telemetry, bypass hardware requirement checks, and enable local account setup out of the box. You can export the result as a new ISO file or write it directly to a USB drive. -{{< image src="images/win11creator-tab-new" alt="Win11 Creator tab in WinUtil" >}} +![Win11 Creator tab in WinUtil](../../../assets/screenshots/win11creator-tab-new.png) -> [!IMPORTANT] -> You need an **official Windows 11 ISO** from [Microsoft's website](https://www.microsoft.com/en-us/software-download/windows11) before starting. Custom, modified, or non-official ISOs are not supported. The process uses ~10–15 GB of temporary disk space, so make sure you have room. +:::caution +You need an **official Windows 11 ISO** from [Microsoft's website](https://www.microsoft.com/en-us/software-download/windows11) before starting. Custom, modified, or non-official ISOs are not supported. The process uses ~10–15 GB of temporary disk space, so make sure you have room. +::: -> [!NOTE] -> This workflow is intended for fresh Windows installs, not in-place upgrades of an existing installation. +:::note +This workflow is intended for fresh Windows installs, not in-place upgrades of an existing installation. +::: --- @@ -32,8 +37,9 @@ WinUtil includes a built-in **Win11 Creator** tool that lets you take an officia 2. WinUtil mounts the ISO, checks for a valid `install.wim` or `install.esd`, and reads the available editions (Home, Pro, Enterprise, etc.). 3. Once verified, select your desired **edition** from the dropdown β€” Pro is selected by default if available. -> [!NOTE] -> This step takes around 10–30 seconds, depending on your drive speed. +:::note +This step takes around 10–30 seconds, depending on your drive speed. +::: --- @@ -76,32 +82,29 @@ A live log shows progress as each step completes. This stage usually takes **10 Once the modification is complete, choose how to save your image: -{{< tabs >}} + + +1. Click **Save as an ISO File**. +2. Choose a save location (defaults to your Desktop as `Win11_Modified_yyyyMMdd.iso`). +3. WinUtil builds a dual BIOS/UEFI bootable ISO using `oscdimg.exe`. - {{< tab name="Save as ISO" selected=true >}} - 1. Click **Save as an ISO File**. - 2. Choose a save location (defaults to your Desktop as `Win11_Modified_yyyyMMdd.iso`). - 3. WinUtil builds a dual BIOS/UEFI bootable ISO using `oscdimg.exe`. +:::note +`oscdimg.exe` (part of the Windows ADK) is required. If it's not found, WinUtil will attempt to install it automatically via WinGet. If that fails, install it manually: `winget install -e --id Microsoft.OSCDIMG` +::: + + +1. Click **Write Directly to a USB Drive**. +2. Select your USB drive from the dropdown (click **Refresh** if it doesn't appear). +3. Click **Erase & Write to USB** and confirm the warning β€” **all data on the drive will be permanently erased**. +4. WinUtil formats the drive as GPT with a 512 MB EFI partition and copies the modified Windows files. - > [!NOTE] - > `oscdimg.exe` (part of the Windows ADK) is required. If it's not found, WinUtil will attempt to install it automatically via WinGet. If that fails, install it manually: `winget install -e --id Microsoft.OSCDIMG` +:::danger +Double-check you have selected the correct drive before confirming. This operation cannot be undone. +::: - - {{< /tab >}} - - {{< tab name="Write to USB" >}} - 1. Click **Write Directly to a USB Drive**. - 2. Select your USB drive from the dropdown (click **Refresh** if it doesn't appear). - 3. Click **Erase & Write to USB** and confirm the warning β€” **all data on the drive will be permanently erased**. - 4. WinUtil formats the drive as GPT with a 512 MB EFI partition and copies the modified Windows files. - - > [!WARNING] - > Double-check you have selected the correct drive before confirming. This operation cannot be undone. - - **Minimum USB size:** 8 GB recommended. Writing takes 10–20 minutes. - {{< /tab >}} - -{{< /tabs >}} +**Minimum USB size:** 8 GB recommended. Writing takes 10–20 minutes. + + --- @@ -142,8 +145,10 @@ When you install Windows 11 from your modified ISO: - Download official Windows 11 media from [Microsoft](https://www.microsoft.com/en-us/software-download/windows11). - If you prefer to write a finished ISO with another tool, common choices include [Rufus](https://rufus.ie/) or [Ventoy](https://www.ventoy.net/). -> [!NOTE] -> Always download Windows ISOs from official Microsoft sources or trusted tools like Rufus/UUP Dump to avoid tampered images. +:::note +Always download Windows ISOs from official Microsoft sources or trusted tools like Rufus/UUP Dump to avoid tampered images. +::: -> [!NOTE] -> Newer Windows 11 ISOs may not boot correctly on older versions of Ventoy β€” make sure Ventoy is up to date before use. If issues persist after updating, this is a Ventoy compatibility limitation outside of WinUtil's control. +:::note +Newer Windows 11 ISOs may not boot correctly on older versions of Ventoy β€” make sure Ventoy is up to date before use. If issues persist after updating, this is a Ventoy compatibility limitation outside of WinUtil's control. +::: diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx new file mode 100644 index 00000000..5213a4ec --- /dev/null +++ b/docs/src/content/docs/index.mdx @@ -0,0 +1,199 @@ +--- +title: Documentation +description: Chris Titus Tech's Windows Utility β€” install apps, apply tweaks, run fixes, and manage Windows from one place. +template: splash +editUrl: false +heroEyebrow: Open Source Windows Setup Utility +heroCaption: Free. Open source. No installer, no telemetry, no bloat. +heroBadges: + - src: https://img.shields.io/github/v/release/ChrisTitusTech/winutil?color=%230567ff&label=Latest%20Release&style=for-the-badge + alt: Latest release + href: https://github.com/ChrisTitusTech/winutil/releases/latest + - src: https://img.shields.io/github/downloads/ChrisTitusTech/winutil/winutil.ps1?label=Total%20Downloads&style=for-the-badge + alt: Total downloads + - src: https://dcbadge.limes.pink/api/server/https://discord.gg/RUbZUZyByQ + alt: Discord community server + href: https://discord.gg/RUbZUZyByQ +hero: + title: Set up Windows the way you actually want it + tagline: Install apps, apply tweaks, run fixes, and manage Windows updates β€” all from one script, one window, no fuss. + image: + file: ../../assets/branding/title-screen.png + actions: + - text: Get Started + link: /guides/getting-started/ + icon: right-arrow + - text: View on GitHub + link: https://github.com/ChrisTitusTech/winutil + icon: external + variant: secondary +--- + +import { Icon, Code } from '@astrojs/starlight/components'; +import CornerCard from '../../components/CornerCard.astro'; + +{/* Trust bar: icon + label chips under the hero. */} +
+
+ Open source + No installer + No telemetry added + Everything reversible + Windows 11 ready +
+
+ +{/* Problem section: pain points WinUtil solves. */} +
+
+
+

Windows setup is easy to start and tedious to finish

+

A fresh install works fine out of the box. Getting it configured the way you actually want takes an afternoon of registry edits, forum posts, and forgotten steps.

+
+
    +
  • Essential apps mean a dozen separate installers, each with its own bundled toolbar to decline.
  • +
  • Privacy and telemetry settings are scattered across half a dozen different settings panels.
  • +
  • The tweaks worth applying live in year-old forum threads, mixed in with outdated or risky advice.
  • +
  • Undoing a tweak means remembering exactly what you changed and how.
  • +
  • Doing it all again on the next machine means starting from zero.
  • +
+
+
+ +{/* Solution grid: how WinUtil addresses each problem above. */} +
+
+
+

WinUtil puts a real control panel on top of Windows

+

Instead of stitching together installers, registry hacks, and forum wisdom, you manage the whole setup from one window.

+
+
+
+
+

Install without the bloat

+

WinGet and Chocolatey install clean builds of your everyday apps, with no bundled toolbars or bundled offers.

+
+
+
+

Tweak with a checkbox

+

Essential and advanced tweaks for privacy, performance, and UI behavior are one click away, grouped by what they actually do.

+
+
+
+

Undo what you don't like

+

Nearly every tweak can be reverted from the same panel, so trying something risky doesn't mean a full reinstall.

+
+
+
+

Fix what's broken

+

One-click repairs for networking, Windows Update, and WinGet handle the fixes people usually paste from a forum thread.

+
+
+
+

Manage updates your way

+

Switch between full updates, security-only updates, or fully paused β€” and back again β€” without digging through Group Policy.

+
+
+
+

Build your own ISO

+

Win11 Creator debloats and preconfigures an official Microsoft image, so new installs start from your baseline.

+
+
+
+
+ +{/* Feature grid: CornerCard highlights. */} +
+
+
+

Everything you need to set up a machine, once

+
+
+ + WinUtil doesn't collect or transmit anything. It's a script that runs, makes the changes you selected, and exits. + + + Tweaks are applied through documented, undoable actions instead of one-way registry edits. + + + Minimal, Standard, and Advanced presets give you a sane starting point instead of picking through every tweak individually. + + + Application installs go through package managers you can audit, not opaque bundled installers. + + + Drive WinUtil unattended with config files and parameters for repeatable rollouts across machines. + + + Debloat and preconfigure a Windows 11 image before it's ever installed. + +
+
+
+ +{/* Step timeline: quick-start walkthrough + secondary CTA. */} +
+
+
+

From a blank terminal to a configured PC

+
+
+
+ 1 +

Open PowerShell as Administrator

+

Right-click the Start button and choose Terminal (Admin), or launch PowerShell and elevate manually.

+
+
+ 2 +

Run the launch command

+

Downloads and starts the latest release.

+ +
+
+ 3 +

Install, tweak, fix, update

+

Work through the Install, Tweaks, Config, and Updates tabs β€” everything is undoable.

+
+
+ +
+
+ +{/* Benefit checklist. */} +
+
+
+

Built for the gap between a fresh install and a finished machine

+

Registry edits and PowerShell one-liners work. WinUtil makes them repeatable.

+
+
    +
  • You keep full control β€” every tweak is visible, documented, and reversible.
  • +
  • You gain a single interface for installs, tweaks, fixes, and updates instead of five different tools.
  • +
  • You avoid the bundled toolbars and bloat that come with most software installers.
  • +
+
+
+ +{/* Final CTA. */} +
+
+

Stop hunting for the same fixes every time

+

Get a script that installs, tweaks, fixes, and updates Windows from one window.

+ +

Free and open source. No installer, no telemetry, no account required.

+
+
diff --git a/docs/content/KnownIssues.md b/docs/src/content/docs/known-issues.mdx similarity index 96% rename from docs/content/KnownIssues.md rename to docs/src/content/docs/known-issues.mdx index 1cbc2c4d..438ff01b 100644 --- a/docs/content/KnownIssues.md +++ b/docs/src/content/docs/known-issues.mdx @@ -1,6 +1,6 @@ --- title: Known Issues -toc: true +description: Known problems with WinUtil and how to work around them. --- ### Download not working diff --git a/docs/src/styles/fonts.css b/docs/src/styles/fonts.css new file mode 100644 index 00000000..5c3bbf2a --- /dev/null +++ b/docs/src/styles/fonts.css @@ -0,0 +1,6 @@ +/* Self-hosted fonts: Geist for UI text, JetBrains Mono for code. Avoids external requests at runtime. */ +@import '@fontsource/geist-sans/400.css'; +@import '@fontsource/geist-sans/500.css'; +@import '@fontsource/geist-sans/600.css'; +@import '@fontsource/geist-sans/700.css'; +@import '@fontsource-variable/jetbrains-mono'; diff --git a/docs/src/styles/theme.css b/docs/src/styles/theme.css new file mode 100644 index 00000000..90b92b45 --- /dev/null +++ b/docs/src/styles/theme.css @@ -0,0 +1,476 @@ +/* WinUtil docs theme: grayscale palette with WinUtil blue (#0567ff) as the single accent, dark by default. */ +@import './fonts.css'; + +:root { + --sl-font: 'Geist', var(--sl-font-system); + --sl-font-mono: 'JetBrains Mono Variable', var(--sl-font-system-mono); + + /* WinUtil brand blue, matching the app logo (#0567ff). */ + --wu-accent-h: 216; + --wu-accent: hsl(var(--wu-accent-h) 100% 51%); + --wu-accent-dim: hsl(var(--wu-accent-h) 90% 45%); + + --wu-radius-sm: 0.5rem; + --wu-radius: 0.625rem; + --wu-radius-lg: 1rem; +} + +/* Dark mode (default). */ +:root, +::backdrop { + --sl-color-accent-low: hsl(var(--wu-accent-h) 60% 18%); + --sl-color-accent: var(--wu-accent); + --sl-color-accent-high: hsl(var(--wu-accent-h) 100% 85%); + + --sl-color-white: #fafafa; + --sl-color-gray-1: #ededed; + --sl-color-gray-2: #b8b8b8; + --sl-color-gray-3: #8c8c8c; + --sl-color-gray-4: #4a4a4a; + --sl-color-gray-5: #2a2a2a; + --sl-color-gray-6: #171717; + --sl-color-black: #0a0a0a; + + --sl-color-bg: #0a0a0a; + --sl-color-bg-nav: #0d0d0d; + --sl-color-bg-sidebar: #0d0d0d; + --sl-color-bg-inline-code: #1b1b1b; + --sl-color-hairline-light: #2a2a2a; + --sl-color-hairline: #1e1e1e; + --sl-color-hairline-shade: #000; +} + +/* Light mode. */ +:root[data-theme='light'], +[data-theme='light'] ::backdrop { + --sl-color-accent-low: hsl(var(--wu-accent-h) 90% 92%); + --sl-color-accent: var(--wu-accent-dim); + --sl-color-accent-high: hsl(var(--wu-accent-h) 80% 34%); + + --sl-color-white: #0a0a0a; + --sl-color-gray-1: #171717; + --sl-color-gray-2: #333333; + --sl-color-gray-3: #737373; + --sl-color-gray-4: #a3a3a3; + --sl-color-gray-5: #d9d9d9; + --sl-color-gray-6: #f1f1f1; + --sl-color-gray-7: #fafafa; + --sl-color-black: #ffffff; + + --sl-color-bg: #ffffff; + --sl-color-bg-nav: #fafafa; + --sl-color-bg-inline-code: #f1f1f1; + --sl-color-hairline-light: #ececec; + --sl-color-hairline-shade: #ececec; +} + +/* Heading weight/tracking. */ +.sl-markdown-content :is(h1, h2, h3, h4, h5, h6) { + font-weight: 600; + letter-spacing: -0.01em; +} + +/* Rounded code blocks/inline code. */ +.sl-markdown-content code:not(:where(.not-content *)) { + border-radius: var(--wu-radius-sm); + border: 1px solid var(--sl-color-hairline-light); +} +.sl-markdown-content pre:not(:where(.not-content *)) { + border-radius: var(--wu-radius); + border: 1px solid var(--sl-color-hairline-light); +} +.starlight-aside { + border-radius: 0 var(--wu-radius-sm) var(--wu-radius-sm) 0; +} + +/* Windows-style minimize/maximize/close glyph for the code blocks */ +.expressive-code .frame.is-terminal .header::before { + left: auto !important; + right: 0.85rem !important; + width: 4.75rem !important; + height: 0.7rem !important; + opacity: 0.85 !important; + --ec-frm-trmIcon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 16' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M4 8h12'/%3E%3Crect x='42' y='3.5' width='12' height='9' rx='0.5'/%3E%3Cpath d='M80 3l12 10M92 3L80 13'/%3E%3C/svg%3E"); +} + +/* Cards (CardGrid / LinkCard): rounded, accent border on hover. */ +.sl-markdown-content .card, +a.link-card { + border-radius: var(--wu-radius) !important; + transition: + border-color 0.15s ease, + transform 0.15s ease; +} +.sl-markdown-content .card:hover, +a.link-card:hover { + border-color: var(--sl-color-accent); +} + +/* Sidebar + nav background/border. */ +.sidebar-pane, +header.header { + background-color: var(--sl-color-bg-nav); + border-color: var(--sl-color-hairline-light); +} + +/* Prevents a horizontal scrollbar from the hero's full-bleed 100vw background trick. */ +body { + overflow-x: hidden; +} + +/* ============================================================ + Landing page marketing sections. + ============================================================ */ + +/* Shared buttons (hero actions + mid-page + final CTA). */ +.wu-btn { + display: inline-flex; + align-items: center; + gap: 0.5em; + height: 2.5rem; + padding-inline: 1.5rem; + border-radius: var(--wu-radius-sm); + font-size: var(--sl-text-sm); + font-weight: 500; + line-height: 1; + text-decoration: none; + transition: + filter 0.15s ease, + border-color 0.15s ease, + color 0.15s ease; +} +/* The right/left-arrow glyph's visual weight sits high in its viewBox, so it + reads as floating above the label's baseline without this nudge. */ +.wu-btn .wu-icon-arrow { + position: relative; + top: 0.05em; +} +.wu-btn-primary { + background: var(--wu-accent); + color: #fff; +} +.wu-btn-primary:hover { + filter: brightness(1.1); +} +.wu-btn-secondary { + border: 1px solid var(--sl-color-hairline-light); + color: var(--sl-color-white); + background: transparent; +} +.wu-btn-secondary:hover { + border-color: var(--sl-color-accent); + color: var(--sl-color-accent); +} +/* Neutralizes any stray

MDX wraps around icon+text content, so it never breaks the flex row. */ +.wu-btn > p, +.wu-trust-item > p { + display: contents; +} + +/* Cancels Starlight's automatic 1.5rem inter-block margin inside our own grids/rows (it otherwise lands on item 2+ of each row and breaks alignment). */ +.sl-markdown-content .wu-section, +.sl-markdown-content .wu-solution-grid > *, +.sl-markdown-content .wu-feature-grid > *, +.sl-markdown-content .wu-timeline > *, +.sl-markdown-content .wu-problem-list > *, +.sl-markdown-content .wu-benefit-list > *, +.sl-markdown-content .wu-trust-bar > *, +.sl-markdown-content .wu-badges > *, +.sl-markdown-content .wu-btn-row > * { + margin-top: 0; +} + +/* Section shell: full-bleed hairline dividers, alternating tint, 72rem reading width. */ +.wu-section { + margin-inline: calc(-1 * var(--sl-content-pad-x)); + padding-inline: var(--sl-content-pad-x); + border-bottom: 1px solid var(--sl-color-hairline-light); + padding-block: clamp(3rem, 4vw + 1.5rem, 5.5rem); +} +.wu-section--trust { + padding-block: 2rem; +} +.wu-section--tint { + background-color: var(--sl-color-gray-7, var(--sl-color-gray-6)); +} +:root:not([data-theme='light']) .wu-section--tint { + background-color: color-mix(in srgb, var(--sl-color-gray-6) 60%, transparent); +} +.wu-section-inner { + max-width: 72rem; + margin-inline: auto; +} +.wu-text-narrow { + max-width: 44rem; + margin-inline: auto; +} + +.wu-section-head { + max-width: 42rem; + margin: 0 auto 2.5rem; + text-align: center; +} +.wu-section-head h2 { + margin: 0; + font-size: var(--sl-text-3xl); + font-weight: 700; + letter-spacing: -0.01em; + color: var(--sl-color-white); +} +.wu-section-head p { + margin: 0.75rem 0 0; + font-size: var(--sl-text-lg); + color: var(--sl-color-gray-3); +} +.wu-section-head.wu-align-left { + text-align: left; + margin-inline: 0; + max-width: none; +} + +/* Shields.io / dcbadge release, download, and Discord badges. */ +.wu-badges { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 0.5rem; + margin-bottom: 1.5rem; +} +.wu-badges img { + height: 1.75rem; + width: auto; + display: block; +} + +/* Trust bar: icon + label chips under the hero. */ +.wu-trust-bar { + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 0.75rem 1.25rem; +} +.wu-trust-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: var(--sl-text-sm); + font-weight: 500; + color: var(--sl-color-gray-3); +} +.wu-trust-item svg { + color: var(--sl-color-accent); + width: 1rem; + height: 1rem; +} + +/* Problem list: bullet-circle + text, left aligned. */ +.wu-problem-list { + display: flex; + flex-direction: column; + gap: 1.1rem; + margin: 2.5rem 0 0; + padding: 0; + list-style: none; +} +.wu-problem-list li { + display: flex; + align-items: flex-start; + gap: 1rem; + color: var(--sl-color-gray-3); +} +.wu-problem-list .wu-bullet { + flex: none; + display: flex; + align-items: center; + justify-content: center; + width: 1.5rem; + height: 1.5rem; + margin-top: 0.15rem; + border-radius: 999px; + background: var(--sl-color-gray-6); +} +.wu-problem-list .wu-bullet svg { + width: 0.85rem; + height: 0.85rem; + color: var(--sl-color-gray-3); +} + +/* Solution grid: icon-in-box above title + description. */ +.wu-solution-grid { + display: grid; + gap: 2rem; + margin-top: 3rem; +} +.wu-solution { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.wu-solution-icon { + display: flex; + align-items: center; + justify-content: center; + width: 2.5rem; + height: 2.5rem; + border-radius: var(--wu-radius-sm); + background: var(--sl-color-gray-6); + color: var(--sl-color-accent); +} +.wu-solution h3 { + margin: 0; + font-size: var(--sl-text-lg); + font-weight: 600; + color: var(--sl-color-white); +} +.wu-solution p { + margin: 0; + font-size: var(--sl-text-sm); + line-height: var(--sl-line-height); + color: var(--sl-color-gray-3); +} + +/* Feature grid: wraps instances. */ +.wu-feature-grid { + display: grid; + gap: 1.25rem; + margin-top: 3rem; +} + +/* Step timeline ("how it works"): connecting line through each numbered circle. */ +.wu-timeline { + position: relative; + max-width: 36rem; + margin: 3rem auto 0; + display: flex; + flex-direction: column; + gap: 2rem; +} +.wu-timeline::before { + content: ''; + position: absolute; + left: 1.25rem; + top: 1.25rem; + bottom: 1.25rem; + width: 1px; + background: var(--sl-color-hairline-light); +} +.wu-timeline-step { + position: relative; + display: flex; + flex-direction: column; + gap: 0.5rem; + padding-left: 3.5rem; +} +.wu-timeline-number { + position: absolute; + left: 0; + top: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 2.5rem; + height: 2.5rem; + border-radius: 999px; + border: 1px solid var(--sl-color-hairline-light); + background: var(--sl-color-bg); + font-weight: 700; + color: var(--sl-color-accent); +} +.wu-timeline-step h3 { + margin: 0; + font-size: var(--sl-text-lg); + font-weight: 600; + color: var(--sl-color-white); +} +.wu-timeline-step p { + margin: 0; + color: var(--sl-color-gray-3); +} +.wu-timeline-step code { + border-radius: var(--wu-radius-sm); +} + +/* Benefit checklist. */ +.wu-benefit-list { + display: flex; + flex-direction: column; + gap: 1rem; + margin: 2.5rem 0 0; + padding: 0; + list-style: none; +} +.wu-benefit-list li { + display: flex; + align-items: flex-start; + gap: 1rem; + color: var(--sl-color-white); +} +.wu-benefit-list .wu-check { + flex: none; + display: flex; + align-items: center; + justify-content: center; + width: 1.5rem; + height: 1.5rem; + margin-top: 0.15rem; + border-radius: 999px; + background: hsl(var(--wu-accent-h) 100% 51% / 0.12); +} +.wu-benefit-list .wu-check svg { + width: 0.85rem; + height: 0.85rem; + color: var(--sl-color-accent); +} + +/* Final call to action. */ +.wu-cta { + text-align: center; +} +.wu-cta h2 { + margin: 0; + font-size: var(--sl-text-3xl); + font-weight: 700; + letter-spacing: -0.01em; + color: var(--sl-color-white); +} +.wu-cta > p:first-of-type { + margin: 0.75rem 0 0; + font-size: var(--sl-text-lg); + color: var(--sl-color-gray-3); +} +.wu-cta .wu-btn-row { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.75rem; + margin-top: 2rem; +} +.wu-cta p.wu-cta-footnote { + margin-top: 2rem; + font-size: var(--sl-text-sm); + color: var(--sl-color-gray-3); +} + +/* Grid breakpoints: 1 col mobile, 2 col tablet, 3 col desktop. */ +@media (min-width: 40em) { + .wu-solution-grid { + grid-template-columns: repeat(2, 1fr); + } + .wu-feature-grid { + grid-template-columns: repeat(2, 1fr); + } +} +@media (min-width: 60em) { + .wu-solution-grid { + grid-template-columns: repeat(3, 1fr); + } + .wu-feature-grid { + grid-template-columns: repeat(3, 1fr); + } + .wu-timeline { + gap: 2.5rem; + } +} diff --git a/docs/static/CNAME b/docs/static/CNAME deleted file mode 100644 index 5c5e6a6d..00000000 --- a/docs/static/CNAME +++ /dev/null @@ -1 +0,0 @@ -winutil.christitus.com diff --git a/docs/static/android-chrome-192x192.png b/docs/static/android-chrome-192x192.png deleted file mode 100644 index 0fe939a7..00000000 Binary files a/docs/static/android-chrome-192x192.png and /dev/null differ diff --git a/docs/static/android-chrome-512x512.png b/docs/static/android-chrome-512x512.png deleted file mode 100644 index 33d192ca..00000000 Binary files a/docs/static/android-chrome-512x512.png and /dev/null differ diff --git a/docs/static/apple-touch-icon.png b/docs/static/apple-touch-icon.png deleted file mode 100644 index 9ffa9952..00000000 Binary files a/docs/static/apple-touch-icon.png and /dev/null differ diff --git a/docs/static/favicon-16x16.png b/docs/static/favicon-16x16.png deleted file mode 100644 index f4760305..00000000 Binary files a/docs/static/favicon-16x16.png and /dev/null differ diff --git a/docs/static/favicon-32x32.png b/docs/static/favicon-32x32.png deleted file mode 100644 index 5532ef6c..00000000 Binary files a/docs/static/favicon-32x32.png and /dev/null differ diff --git a/docs/static/favicon.ico b/docs/static/favicon.ico deleted file mode 100644 index f95955c6..00000000 Binary files a/docs/static/favicon.ico and /dev/null differ diff --git a/docs/static/site.webmanifest b/docs/static/site.webmanifest deleted file mode 100644 index 1dd91123..00000000 --- a/docs/static/site.webmanifest +++ /dev/null @@ -1 +0,0 @@ -{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 00000000..8bf91d3b --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +} diff --git a/tools/devdocs-generator.md b/tools/devdocs-generator.md index 41d56d3b..d89794b8 100644 --- a/tools/devdocs-generator.md +++ b/tools/devdocs-generator.md @@ -5,11 +5,11 @@ description: "How the devdocs-generator.ps1 script works" # Dev Docs Generator -The `devdocs-generator.ps1` script automatically generates Hugo-compatible markdown files for the development documentation. It pulls content directly from the JSON config files and PowerShell function files so the docs never go out of sync. +The `devdocs-generator.ps1` script automatically generates Astro/Starlight markdown (`.mdx`) files for the development documentation. It pulls content directly from the JSON config files and PowerShell function files so the docs never go out of sync. ## When Does it Run? -- Automatically triggered by the `docs.yaml` GitHub Actions workflow, which generates the `.md` files, commits them back to the repo, and then triggers Hugo to build the site +- Automatically triggered by the `docs.yaml` GitHub Actions workflow, which generates the `.mdx` files, commits them back to the repo, and then triggers the Astro build to build the site - Automatically runs during the pre-release workflow, committing the updated `"link"` properties back to the JSON config files - Watches `docs/**`, `config/tweaks.json`, `config/feature.json`, and `functions/**` for changes - Supports manual runs via `workflow_dispatch` @@ -30,8 +30,9 @@ The `devdocs-generator.ps1` script automatically generates Hugo-compatible markd ### 3. Cleans Up Old Docs -- Deletes all `.md` files (except `_index.md`) from `docs/content/dev/tweaks/` and `docs/content/dev/features/` +- Deletes all `.mdx` files from `docs/src/content/docs/code-reference/tweaks/` and `docs/src/content/docs/code-reference/features/` - This prevents duplicate or orphaned files from previous runs +- No category `index.mdx` landing pages exist yet; if one is added later, the matching exclusion in the script is left commented out ready to re-enable ### 4. Generates Tweak Documentation @@ -40,7 +41,6 @@ For each entry in `tweaks.json` that belongs to a documented category: - **Button type** entries get the mapped PowerShell function file embedded - **All other types** get the raw JSON snippet embedded with correct line numbers from the source file - Entries with **registry changes** get a Registry Changes section added -- Entries with **services** get the `Set-WinUtilService.ps1` function appended ### 5. Generates Feature Documentation @@ -51,8 +51,9 @@ For each entry in `feature.json` that belongs to a documented category: ### 6. Output Format -- Every `.md` file gets Hugo frontmatter with `title` and `description` -- Code blocks use Hugo syntax with filename labels and line numbers +- Every `.mdx` file gets Starlight frontmatter with `title` and `description` (description comes from the entry's `Description` field when present) +- A `:::note` aside points back at the source file (JSON config or PowerShell function) it was generated from +- Code blocks use Starlight/Expressive Code syntax with a `title` attribute naming the source file - Files are organized into category subdirectories matching the JSON `category` field ## Documented Categories @@ -70,7 +71,7 @@ The script generates docs for entries in these categories: ## File Structure ``` -docs/content/dev/ +docs/src/content/docs/code-reference/ tweaks/ Essential-Tweaks/ z--Advanced-Tweaks---CAUTION/ @@ -82,24 +83,26 @@ docs/content/dev/ Legacy-Windows-Panels/ ``` +The Starlight sidebar picks these up automatically via `autogenerate` entries in `docs/astro.config.mjs` for the `code-reference/tweaks` and `code-reference/features` directories, so no sidebar edits are needed when new entries are added. + ## How File Names Are Derived The script strips common prefixes from the JSON key names using the pattern `WPF(WinUtil|Toggle|Features?|Tweaks?|Panel|Fix(es)?)?`. For example: | JSON Key | Generated File | | ------------------- | -------------- | -| `WPFTweaksHiber` | `Hiber.md` | -| `WPFTweaksDeBloat` | `DeBloat.md` | -| `WPFFeatureshyperv` | `hyperv.md` | -| `WPFPanelDISM` | `DISM.md` | +| `WPFTweaksHiber` | `Hiber.mdx` | +| `WPFTweaksDeBloat` | `DeBloat.mdx` | +| `WPFFeatureshyperv` | `hyperv.mdx` | +| `WPFPanelDISM` | `DISM.mdx` | ## Key Points - The JSON config files are the single source of truth -- Manual edits to generated `.md` files will be overwritten on the next run -- The script does not modify `_index.md` or `architecture.md` - β€” do not delete `_index.md` or `architecture.md`, as they will need to be recreated manually. +- Manual edits to generated `.mdx` files will be overwritten on the next run +- The script only touches `docs/src/content/docs/code-reference/tweaks/` and `.../features/` β€” `architecture.mdx` and any other hand-written page under `code-reference/` are untouched + β€” if a category `index.mdx` landing page is added inside `tweaks/` or `features/`, uncomment the exclusion in the cleanup step first, or it will be deleted on the next run - Category directories are created automatically if they don't exist - The `"link"` property added to JSON entries is excluded from the displayed code blocks -- The `docs` workflow generates the `.md` files and commits them back to the repo before Hugo builds the site +- The `docs` workflow generates the `.mdx` files and commits them back to the repo before the Astro site is built - The `pre-release` workflow generates the `"link"` properties and commits them back to the repo diff --git a/tools/devdocs-generator.ps1 b/tools/devdocs-generator.ps1 index ab9b1adc..e3422a55 100644 --- a/tools/devdocs-generator.ps1 +++ b/tools/devdocs-generator.ps1 @@ -1,7 +1,7 @@ <# .DESCRIPTION - Generates Hugo markdown docs from config/tweaks.json and config/feature.json. - Run by the GitHub Actions docs workflow before Hugo build. + Generates Astro/Starlight markdown docs from config/tweaks.json and config/feature.json. + Run by the GitHub Actions docs workflow before the Astro build. #> function Update-Progress { @@ -81,12 +81,30 @@ function Get-RawJsonBlock { } } + # Include the item's own closing brace, stripped of the trailing comma that + # only exists to separate it from the next sibling in the parent object. + $closingLine = $JsonLines[$endIndex] -replace ',\s*$', '' + return @{ LineNumber = $startIndex + 1 - RawText = ($JsonLines[$startIndex..$lastContentIndex] -join "`r`n") + RawText = (($JsonLines[$startIndex..$lastContentIndex] + $closingLine) -join "`r`n") } } +function Get-GeneratedFromNote { + # Builds the Starlight ":::note" aside pointing back at the source file for an entry. + param ( + [Parameter(Mandatory)] + [string]$SourceRelativePath + ) + + $githubUrl = "https://github.com/ChrisTitusTech/winutil/blob/main/$SourceRelativePath" + $note = ":::note`r`n" + $note += "This page is generated from [``$SourceRelativePath``]($githubUrl). Edit the source file and regenerate the docs rather than editing this file directly.`r`n" + $note += ":::`r`n`r`n" + return $note +} + function Get-ButtonFunctionMapping { # Parses Invoke-WPFButton.ps1 and returns a hashtable of button name -> function name. param ( @@ -237,8 +255,8 @@ $repoRoot = Resolve-Path "$scriptDir/.." $tweaksJsonPath = "$repoRoot/config/tweaks.json" $featuresJsonPath = "$repoRoot/config/feature.json" -$tweaksOutputDir = "$repoRoot/docs/content/dev/tweaks" -$featuresOutputDir = "$repoRoot/docs/content/dev/features" +$tweaksOutputDir = "$repoRoot/docs/src/content/docs/code-reference/tweaks" +$featuresOutputDir = "$repoRoot/docs/src/content/docs/code-reference/features" $publicFunctionsDir = "$repoRoot/functions/public" $privateFunctionsDir = "$repoRoot/functions/private" @@ -282,21 +300,25 @@ Update-Progress "Building button-to-function mapping" 30 $buttonFunctionMap = Get-ButtonFunctionMapping -ButtonFilePath "$publicFunctionsDir/Invoke-WPFButton.ps1" Update-Progress "Updating documentation links in JSON" 40 -Add-LinkAttributeToJson -JsonFilePath $tweaksJsonPath -UrlPrefix "$baseUrl/dev/tweaks" -ItemNameToCut $itemnametocut -Add-LinkAttributeToJson -JsonFilePath $featuresJsonPath -UrlPrefix "$baseUrl/dev/features" -ItemNameToCut $itemnametocut +Add-LinkAttributeToJson -JsonFilePath $tweaksJsonPath -UrlPrefix "$baseUrl/code-reference/tweaks" -ItemNameToCut $itemnametocut +Add-LinkAttributeToJson -JsonFilePath $featuresJsonPath -UrlPrefix "$baseUrl/code-reference/features" -ItemNameToCut $itemnametocut # Reload lines after link update so line numbers in docs are accurate $tweaksLines = Get-Content -Path $tweaksJsonPath $featuresLines = Get-Content -Path $featuresJsonPath # ============================================================================== -# Clean up old generated .md files (preserve _index.md) +# Clean up old generated .mdx files # ============================================================================== Update-Progress "Cleaning up old generated docs" 45 foreach ($dir in @($tweaksOutputDir, $featuresOutputDir)) { - Get-ChildItem -Path $dir -Recurse -Filter *.md | Where-Object { - $_.Name -ne "_index.md" + if (-Not (Test-Path -Path $dir)) { continue } + Get-ChildItem -Path $dir -Recurse -Filter *.mdx | Where-Object { + # No category index.mdx pages exist yet. If one is added later as a + # category landing page, uncomment this line to keep it from being wiped. + # $_.Name -ne "index.mdx" + $true } | Remove-Item -Force } @@ -319,25 +341,28 @@ foreach ($itemName in $tweakNames) { $category = $item.category -replace '[^a-zA-Z0-9]', '-' $displayName = $itemName -replace $itemnametocut, '' $categoryDir = "$tweaksOutputDir/$category" - $filename = "$categoryDir/$displayName.md" + $filename = "$categoryDir/$displayName.mdx" if (-Not (Test-Path -Path $categoryDir)) { New-Item -ItemType Directory -Path $categoryDir | Out-Null } - $title = $item.Content -replace '"', '\"' - $content = "---`r`ntitle: `"$title`"`r`ndescription: `"`"`r`n---`r`n`r`n" + $title = $item.Content -replace '"', '\"' + $description = if ($item.Description) { $item.Description -replace '"', '\"' } else { '' } + $content = "---`r`ntitle: `"$title`"`r`ndescription: `"$description`"`r`n---`r`n`r`n" if ($item.Type -eq "Button") { $funcName = $buttonFunctionMap[$itemName] if ($funcName -and $functionFiles.ContainsKey($funcName)) { $func = $functionFiles[$funcName] - $content += "``````powershell {filename=`"$($func.RelativePath)`",linenos=inline,linenostart=1}`r`n" + $content += Get-GeneratedFromNote -SourceRelativePath $func.RelativePath + $content += "``````powershell title=`"$($func.RelativePath)`"`r`n" $content += $func.Content + "`r`n" $content += "```````r`n" } } else { $jsonBlock = Get-RawJsonBlock -ItemName $itemName -JsonLines $tweaksLines if ($jsonBlock) { - $content += "``````json {filename=`"config/tweaks.json`",linenos=inline,linenostart=$($jsonBlock.LineNumber)}`r`n" + $content += Get-GeneratedFromNote -SourceRelativePath "config/tweaks.json" + $content += "``````json title=`"config/tweaks.json`"`r`n" $content += $jsonBlock.RawText + "`r`n" $content += "```````r`n" } @@ -375,25 +400,28 @@ foreach ($itemName in $featureNames) { $category = $item.category -replace '[^a-zA-Z0-9]', '-' $displayName = $itemName -replace $itemnametocut, '' $categoryDir = "$featuresOutputDir/$category" - $filename = "$categoryDir/$displayName.md" + $filename = "$categoryDir/$displayName.mdx" if (-Not (Test-Path -Path $categoryDir)) { New-Item -ItemType Directory -Path $categoryDir | Out-Null } - $title = $item.Content -replace '"', '\"' - $content = "---`r`ntitle: `"$title`"`r`ndescription: `"`"`r`n---`r`n`r`n" + $title = $item.Content -replace '"', '\"' + $description = if ($item.Description) { $item.Description -replace '"', '\"' } else { '' } + $content = "---`r`ntitle: `"$title`"`r`ndescription: `"$description`"`r`n---`r`n`r`n" if ($item.category -in $functionEmbedCategories) { $funcName = if ($item.function) { $item.function } else { $buttonFunctionMap[$itemName] } if ($funcName -and $functionFiles.ContainsKey($funcName)) { $func = $functionFiles[$funcName] - $content += "``````powershell {filename=`"$($func.RelativePath)`",linenos=inline,linenostart=1}`r`n" + $content += Get-GeneratedFromNote -SourceRelativePath $func.RelativePath + $content += "``````powershell title=`"$($func.RelativePath)`"`r`n" $content += $func.Content + "`r`n" $content += "```````r`n" } } else { $jsonBlock = Get-RawJsonBlock -ItemName $itemName -JsonLines $featuresLines if ($jsonBlock) { - $content += "``````json {filename=`"config/feature.json`",linenos=inline,linenostart=$($jsonBlock.LineNumber)}`r`n" + $content += Get-GeneratedFromNote -SourceRelativePath "config/feature.json" + $content += "``````json title=`"config/feature.json`"`r`n" $content += $jsonBlock.RawText + "`r`n" $content += "```````r`n" }