<# .SYNOPSIS Builds the CHM reader (chmdec) to WebAssembly in Docker and copies it to frontend/vendor/local/chm@1/, where the site serves it from /vendor/. The exact chmdec source built is copied into source/ beside these files, so it is published at /source/chm/ with them. Nothing is installed on this machine; Docker Desktop must be running. #> $ErrorActionPreference = 'Continue' Set-Location $PSScriptRoot $dist = Join-Path $PSScriptRoot 'dist' if (Test-Path $dist) { Remove-Item -Recurse -Force $dist } & docker build --target export --output "type=local,dest=$dist" . if ($LASTEXITCODE -ne 0) { throw 'docker build failed' } $dest = Join-Path $PSScriptRoot '..\..\vendor\local\chm@1' New-Item -ItemType Directory -Force $dest | Out-Null Copy-Item (Join-Path $dist 'chm.mjs') $dest -Force Copy-Item (Join-Path $dist 'chm.wasm') $dest -Force $src = Join-Path $PSScriptRoot 'source' New-Item -ItemType Directory -Force $src | Out-Null Copy-Item (Join-Path $dist 'source\*') $src -Force Get-ChildItem $dest | Format-Table Name, Length