<# .SYNOPSIS Builds VTracer's WebAssembly core in Docker and copies it to frontend/vendor/local/vtracer@1/, where the site serves it from /vendor/. Keeps the Cargo.lock the build used beside this script, so later builds use the same crates. Bump the @N (and VTRACER_BASE in src/app/image-to-svg/trace.ts) before rebuilding once a version has shipped. 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\vtracer@1' New-Item -ItemType Directory -Force $dest | Out-Null foreach ($f in 'vtracer.js', 'vtracer_bg.wasm', 'LICENSE') { Copy-Item (Join-Path $dist $f) $dest -Force } Copy-Item (Join-Path $dist 'Cargo.lock') $PSScriptRoot -Force Get-ChildItem $dest | Format-Table Name, Length