In [1]:
. ./nbs_header.ps1
. ./core.ps1
In [2]:
# rustup component add clippy rust-src rustfmt
In [3]:
# rustup target add wasm32-unknown-unknown
In [4]:
# rustup update
In [5]:
if (!(Search-Command "cargo-binstall")) {
# { cargo +nightly-2025-11-01 install --timings cargo-binstall --locked } | Invoke-Block -OnError Continue
if ($IsWindows) {
Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr "https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.ps1").Content
} else {
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
}
}
In [6]:
if (!(Search-Command "cargo-outdated")) {
$url = git ls-remote --get-url
$owner = ($url -split '/' | Select-Object -Last 2 | Select-Object -First 1) -replace '\.git$', '' ?? $env:GITHUB_REPOSITORY_OWNER
$domain = ($url -split '/' | Select-Object -Last 3 | Select-Object -First 1) ?? $env:GITHUB_SERVER_URL -replace 'https?://', ''
Write-Output "polyglot/scripts/init.livemd / url: $url / owner: $owner / domain: $domain"
{ cargo binstall -y --git https://$domain/$owner/cargo-outdated.git --locked cargo-outdated } | Invoke-Block -OnError Continue
}
polyglot/scripts/init.livemd / url: https://github.com/i574n/polyglot / owner: i574n / domain: github.com ──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: 'cargo binstall -y --git https://$domain/$owner/cargo-outdated.git --locked cargo-outdated' INFO resolve: Resolving package: 'cargo-outdated' INFO Cloning with worktree::receiving pack: Enumerating objects → 34.0 objects INFO ℹCloning with worktree::receiving pack::create index file::indexing → done 34.0 objects in 0.00s (11.7K objects/s) INFO ℹCloning with worktree::receiving pack::create index file::decompressing → done 210.1KB in 0.00s (71.7MB/s) INFO ℹCloning with worktree::receiving pack::create index file::Resolving → done 34.0 objects in 0.05s (672.0 objects/s) INFO ℹCloning with worktree::receiving pack::create index file::Decoding → done 210.1KB in 0.05s (4.2MB/s) INFO ✓Cloning with worktree::receiving pack::create index file::writing index file → done 2.0KB in 0.00s (35.2MB/s) INFO ✓Cloning with worktree::receiving pack::create index file → done 34.0 objects in 0.05s (633.0 objects/s) INFO ℹCloning with worktree::receiving pack::read pack → done 56.8KB in 0.06s (989.3KB/s) INFO ℹCloning with worktree::receiving pack::checkout → done 27.0 files in 0.00s (19.9K files/s) INFO ℹCloning with worktree::receiving pack::writing → done 208.7KB in 0.00s (151.7MB/s) WARN Failed to send quickinstall report for package cargo-outdated-0.15.0-x86_64-unknown-linux-gnu: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/cargo-outdated-0.15.0-x86_64-unknown-linux-gnu.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/cargo-outdated-0.15.0-x86_64-unknown-linux-gnu.tar.gz) WARN Failed to send quickinstall report for package cargo-outdated-0.15.0-x86_64-unknown-linux-musl: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/cargo-outdated-0.15.0-x86_64-unknown-linux-musl.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/cargo-outdated-0.15.0-x86_64-unknown-linux-musl.tar.gz) WARN The package cargo-outdated v0.15.0 (x86_64-unknown-linux-musl) has been downloaded from github.com INFO This will install the following binaries: INFO - cargo-outdated (cargo-outdated -> /home/runner/.cargo/bin/cargo-outdated) INFO Installing binaries... INFO Done in 907.924757ms core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 64G 81G 45% /
In [7]:
if (!(Search-Command "sccache")) {
# { cargo install --timings sccache --locked } | Invoke-Block -OnError Continue
{ cargo binstall -y sccache } | Invoke-Block -OnError Continue
}
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: 'cargo binstall -y sccache' INFO resolve: Resolving package: 'sccache' WARN Failed to send quickinstall report for package sccache-0.18.0-x86_64-unknown-linux-musl: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/sccache-0.18.0-x86_64-unknown-linux-musl.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/sccache-0.18.0-x86_64-unknown-linux-musl.tar.gz) WARN Failed to send quickinstall report for package sccache-0.18.0-x86_64-unknown-linux-gnu: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/sccache-0.18.0-x86_64-unknown-linux-gnu.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/sccache-0.18.0-x86_64-unknown-linux-gnu.tar.gz) WARN resolve: When resolving sccache bin sccache-dist is not found. But since it requires features dist-server, this bin is ignored. WARN The package sccache v0.18.0 (x86_64-unknown-linux-musl) has been downloaded from github.com INFO This will install the following binaries: INFO - sccache (sccache -> /home/runner/.cargo/bin/sccache) INFO Installing binaries... INFO Done in 980.78009ms core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 64G 81G 45% /
In [8]:
if (!(Search-Command "wasm-pack")) {
# { cargo install --timings wasm-pack --locked } | Invoke-Block -OnError Continue
{ cargo binstall -y wasm-pack } | Invoke-Block -OnError Continue
}
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: 'cargo binstall -y wasm-pack' INFO resolve: Resolving package: 'wasm-pack' WARN Failed to send quickinstall report for package wasm-pack-0.15.0-x86_64-unknown-linux-musl: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/wasm-pack-0.15.0-x86_64-unknown-linux-musl.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/wasm-pack-0.15.0-x86_64-unknown-linux-musl.tar.gz) WARN Failed to send quickinstall report for package wasm-pack-0.15.0-x86_64-unknown-linux-gnu: Failed to download from remote: could not HEAD https://warehouse-clerk-tmp.vercel.app/api/crate/wasm-pack-0.15.0-x86_64-unknown-linux-gnu.tar.gz: HTTP status client error (402 Payment Required) for url (https://warehouse-clerk-tmp.vercel.app/api/crate/wasm-pack-0.15.0-x86_64-unknown-linux-gnu.tar.gz) WARN The package wasm-pack v0.15.0 (x86_64-unknown-linux-musl) has been downloaded from github.com INFO This will install the following binaries: INFO - wasm-pack (wasm-pack -> /home/runner/.cargo/bin/wasm-pack) INFO Installing binaries... INFO Done in 716.68923ms core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 64G 81G 45% /
In [9]:
if (!(Search-Command "trunk")) {
# { cargo install --timings trunk --version 0.21.14 } | Invoke-Block -OnError Continue
{ cargo binstall -y trunk --version 0.21.14 } | Invoke-Block -OnError Continue
}
In [10]:
if (!(Search-Command "nix")) {
{ . $(Search-Command bunx) --bun playwright@1.44.0 install } | Invoke-Block -OnError Continue
}
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: '. $(Search-Command bunx) --bun playwright@1.44.0 install' Downloading Chromium 125.0.6422.26 (playwright build v1117) from https://playwright.azureedge.net/builds/chromium/1117/chromium-linux.zip | | 0% of 156.8 MiB |■■■■■■■■ | 10% of 156.8 MiB |■■■■■■■■■■■■■■■■ | 20% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 156.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 156.8 MiB Chromium 125.0.6422.26 (playwright build v1117) downloaded to /home/runner/.cache/ms-playwright/chromium-1117 Downloading FFMPEG playwright build v1009 from https://playwright.azureedge.net/builds/ffmpeg/1009/ffmpeg-linux.zip | | 0% of 2.6 MiB |■■■■■■■■ | 10% of 2.6 MiB |■■■■■■■■■■■■■■■■ | 21% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 41% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 74% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 92% of 2.6 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 2.6 MiB FFMPEG playwright build v1009 downloaded to /home/runner/.cache/ms-playwright/ffmpeg-1009 Downloading Firefox 125.0.1 (playwright build v1449) from https://playwright.azureedge.net/builds/firefox/1449/firefox-ubuntu-22.04.zip | | 0% of 85.7 MiB |■■■■■■■■ | 10% of 85.7 MiB |■■■■■■■■■■■■■■■■ | 20% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 85.7 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 85.7 MiB Firefox 125.0.1 (playwright build v1449) downloaded to /home/runner/.cache/ms-playwright/firefox-1449 Downloading Webkit 17.4 (playwright build v2003) from https://playwright.azureedge.net/builds/webkit/2003/webkit-ubuntu-22.04.zip | | 0% of 84.8 MiB |■■■■■■■■ | 10% of 84.8 MiB |■■■■■■■■■■■■■■■■ | 20% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■ | 30% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 40% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 50% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 60% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 70% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 80% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ | 90% of 84.8 MiB |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■| 100% of 84.8 MiB Webkit 17.4 (playwright build v2003) downloaded to /home/runner/.cache/ms-playwright/webkit-2003 core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 65G 80G 46% /
In [11]:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
In [12]:
{ Install-Module -Name PowerShellGet -Force -AllowClobber -Scope CurrentUser } | Invoke-Block -OnError Continue
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: 'Install-Module -Name PowerShellGet -Force -AllowClobber -Scope CurrentUser' core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 65G 80G 46% /
In [13]:
{ if ((Get-PSRepository -Name PSGallery).InstallationPolicy -ne 'Trusted') { Set-PSRepository -Name PSGallery -InstallationPolicy Trusted } } | Invoke-Block -OnError Continue
────────────────────────────────────────────────────────────────────────────────
core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock:
'if ((Get-PSRepository -Name PSGallery).InstallationPolicy -ne 'Trusted') { Set-PSRepository -Name PSGallery -InstallationPolicy Trusted }'
# Invoke-Block / $retry: 1/1 / $Location: / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $OnError: Continue / $exitcode: 0 / $Error: 'Cannot find a variable with the name 'PackageManagementProvider'. Cannot find a variable with the name 'SourceLocation'.' / $ScriptBlock:
'if ((Get-PSRepository -Name PSGallery).InstallationPolicy -ne 'Trusted') { Set-PSRepository -Name PSGallery -InstallationPolicy Trusted }'
/ $result:
''
/ $output:
''
core.Invoke-Block / df - /dev/root
Filesystem Size Used Avail Use% Mounted on
/dev/root 145G 65G 80G 46% /
In [14]:
{ . $(Search-Command bun) install --cwd .. --frozen-lockfile } | Invoke-Block
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: '. $(Search-Command bun) install --cwd .. --frozen-lockfile' bun install v1.4.2 (744846f84) + @types/node@22.10.10 + npm-check-updates@17.1.14 + typescript@5.5.0-dev.20240404 4 packages installed [94.00ms] core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 80G 46% /
In [15]:
{ . "$ScriptDir/dep_spiral.ps1" } | Invoke-Block
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: '. "$ScriptDir/dep_spiral.ps1"' dep_spiral.ps1 / url: https://github.com/i574n/polyglot / owner: i574n / domain: github.com ──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/deps/The-Spiral-Language / $ScriptBlock: 'git pull' Already up to date. core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 80G 46% / core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 80G 46% /
In [16]:
{ . "$ScriptDir/dep_spiral_extension.ps1" } | Invoke-Block -OnError Continue
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: '. "$ScriptDir/dep_spiral_extension.ps1"' core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 80G 46% /
In [17]:
if (!(Test-Path ../deps/hyperui/.next/package.json)) {
{ . "$ScriptDir/dep_hyperui.ps1" } | Invoke-Block
}
──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/scripts / $ScriptBlock: '. "$ScriptDir/dep_hyperui.ps1"' dep_hyperui.ps1 / url: https://github.com/i574n/polyglot / owner: i574n / domain: github.com ──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/deps/hyperui / $ScriptBlock: 'git pull' Already up to date. core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 80G 46% / ──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/deps/hyperui / $ScriptBlock: '. $(Search-Command bun) install --frozen-lockfile' bun install v1.4.2 (744846f84) + @eslint/eslintrc@3.3.1 + @formkit/auto-animate@0.9.0 + @next/eslint-plugin-next@15.5.2 + @radix-ui/react-tooltip@1.2.8 + @tailwindcss/cli@4.1.16 + @tailwindcss/forms@0.5.10 + @tailwindcss/postcss@4.1.16 + @tailwindcss/typography@0.5.19 + @typescript-eslint/parser@8.46.2 + eslint@9.35.0 + eslint-config-next@15.5.2 + eslint-plugin-react@7.37.5 + eslint-plugin-unicorn@61.0.2 + fast-glob@3.3.3 + gray-matter@4.0.3 + next-mdx-remote@5.0.0 + postcss@8.5.6 + prettier@3.6.2 + prettier-plugin-tailwindcss@0.6.14 + prismjs@1.30.0 + react-intersection-observer@9.16.0 + rehype-external-links@3.0.0 + remark@15.0.1 + remark-html@16.0.1 + tailwindcss@4.1.16 + typescript@5.9.3 + next@15.5.2 + react@19.1.1 + react-dom@19.1.1 655 packages installed [1.98s] Blocked 1 postinstall. Run `bun pm untrusted` for details. core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 79G 46% / ──────────────────────────────────────────────────────────────────────────────── core.Invoke-Block / Get-Location: /home/runner/work/polyglot/polyglot/deps/hyperui / $ScriptBlock: '. $(Search-Command bun) --bun run build' ⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache Attention: Next.js now collects completely anonymous telemetry regarding usage. This information is used to shape Next.js' roadmap and prioritize features. You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL: https://nextjs.org/telemetry ▲ Next.js 15.5.2 Creating an optimized production build ... ✓ Compiled successfully in 9.9s Linting and checking validity of types ... Collecting page data ... Generating static pages (0/21) ... Generating static pages (5/21) Generating static pages (10/21) Generating static pages (15/21) ✓ Generating static pages (21/21) Finalizing page optimization ... Collecting build traces ... Route (app) Size First Load JS ┌ ○ / 622 B 106 kB ├ ○ /_not-found 135 B 102 kB ├ ● /[components]/[category] 625 B 106 kB ├ ● /[components]/[category]/[collection] 1.77 kB 140 kB ├ ● /about/[slug] 966 B 136 kB ├ ├ /about/acknowledgements ├ └ /about/faqs ├ ƒ /api/search 135 B 102 kB ├ ○ /blog 625 B 106 kB ├ ● /blog/[slug] 966 B 136 kB ├ ├ /blog/how-to-write-better-containers-in-tailwindcss ├ ├ /blog/remove-number-input-spinners-with-tailwindcss ├ ├ /blog/animated-border-gradient-with-tailwindcss ├ └ [+6 more paths] ├ ○ /favourites 876 B 136 kB ├ ○ /robots.txt 135 B 102 kB └ ○ /sitemap.xml 135 B 102 kB + First Load JS shared by all 102 kB ├ chunks/255-e3bf15caf1f1e0f9.js 45.9 kB ├ chunks/4bd1b696-c023c6e3521b1417.js 54.4 kB └ other shared chunks (total) 1.92 kB ○ (Static) prerendered as static content ● (SSG) prerendered as static HTML (uses generateStaticParams) ƒ (Dynamic) server-rendered on demand core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 79G 46% / core.Invoke-Block / df - /dev/root Filesystem Size Used Avail Use% Mounted on /dev/root 145G 66G 79G 46% /