From 1966af8b138a30ced579f6e4197ba584d86c5ac4 Mon Sep 17 00:00:00 2001 From: Christoffer Hallas Date: Thu, 8 Oct 2026 12:21:06 -0400 Subject: [PATCH 1/2] chore(www): fix format failures; make gate web install robust to system libvips Format SITE.md and std-reference.ts (whitespace/quote style only) so `scripts/gate web` is green. Set SHARP_IGNORE_GLOBAL_LIBVIPS for the gate's npm install and document it in www/README.md: on hosts with a system libvips, sharp otherwise attempts a source build and the install fails. Co-Authored-By: Claude Sonnet 5.5 --- scripts/gate | 4 +- www/README.md | 2 +- www/SITE.md | 8 +- www/package-lock.json | 139 +--------------------------------- www/src/docs/std-reference.ts | 32 ++++---- 5 files changed, 25 insertions(+), 160 deletions(-) diff --git a/scripts/gate b/scripts/gate index 6718d179..33de5aee 100755 --- a/scripts/gate +++ b/scripts/gate @@ -376,7 +376,9 @@ run_layer() { ;; web) if [[ ! -d www/node_modules ]]; then - run_quiet npm --prefix www install + # sharp (via @huggingface/transformers) tries a source build when the + # host has a system libvips; always use its prebuilt binary instead. + SHARP_IGNORE_GLOBAL_LIBVIPS=1 run_quiet npm --prefix www install fi run_quiet npm --prefix www run lint run_quiet npm --prefix www run format diff --git a/www/README.md b/www/README.md index ef53c2a5..9346039c 100644 --- a/www/README.md +++ b/www/README.md @@ -8,7 +8,7 @@ Public positioning, homepage outline, and nav rules: [`SITE.md`](SITE.md). ## Commands ```bash -npm install +npm install # on a host with a system libvips: SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install npm run dev npm run lint npm run format diff --git a/www/SITE.md b/www/SITE.md index 173d9568..27233135 100644 --- a/www/SITE.md +++ b/www/SITE.md @@ -245,10 +245,10 @@ Compile and native run stay on `xo` (LLVM). Learn, Community, and About. Copy lives in `src/docs/site.ts` (`footerLinkGroups`). -| Group | Links | -| --------- | ---------------------------------------------------------------------------------------------------------------- | -| Learn | Install, Try Echo, First program, Documents, Book, Echo 2026 | -| Community | GitHub. Omit Discord until a public invite URL exists. | +| Group | Links | +| --------- | --------------------------------------------------------------------------------------------------------------------------------- | +| Learn | Install, Try Echo, First program, Documents, Book, Echo 2026 | +| Community | GitHub. Omit Discord until a public invite URL exists. | | About | Christoffer Hallas (`https://christofferhallas.com`), Privacy (`/privacy`), Terms (`/terms`), Security (`/security`), MIT License | Public project mail on the site is `oss@christofferhallas.com`. diff --git a/www/package-lock.json b/www/package-lock.json index 1ea36072..8bc75137 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "xo-www", "version": "0.0.1", + "hasInstallScript": true, "dependencies": { "@fontsource/geist-mono": "^5.2.8", "@fontsource/inter": "^5.2.8", @@ -213,9 +214,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -232,9 +230,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -251,9 +246,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -270,9 +262,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -289,9 +278,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -308,9 +294,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -327,9 +310,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -346,9 +326,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -365,9 +342,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -390,9 +364,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -415,9 +386,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -440,9 +408,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -465,9 +430,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -490,9 +452,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -515,9 +474,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -540,9 +496,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -840,9 +793,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -860,9 +810,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -880,9 +827,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -900,9 +844,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -920,9 +861,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -940,9 +878,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -960,9 +895,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -980,9 +912,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1187,9 +1116,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1207,9 +1133,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1227,9 +1150,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1247,9 +1167,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1267,9 +1184,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1287,9 +1201,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1307,9 +1218,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1327,9 +1235,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1566,9 +1471,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1586,9 +1488,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1606,9 +1505,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1626,9 +1522,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1646,9 +1539,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1666,9 +1556,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1888,9 +1775,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1908,9 +1792,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -1928,9 +1809,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -1948,9 +1826,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2620,9 +2495,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2644,9 +2516,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2668,9 +2537,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2692,9 +2558,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/www/src/docs/std-reference.ts b/www/src/docs/std-reference.ts index e9bba5bb..a58b6b19 100644 --- a/www/src/docs/std-reference.ts +++ b/www/src/docs/std-reference.ts @@ -785,9 +785,9 @@ export const stdModules: StdModule[] = [ description: "Reads process stdin until EOF and returns the payload as bytes. Empty stdin is empty bytes. I/O errors use the result error arm.", params: "No parameters.", - returns: "Result of bytes, or error \"stdin read failed\".", + returns: 'Result of bytes, or error "stdin read failed".', example: - '/ std/io\n/ std/str\n\n| io.read() {\n $ b {\n io.print(str.from_bytes(b))\n }\n ! e {\n io.print(e)\n }\n}', + "/ std/io\n/ std/str\n\n| io.read() {\n $ b {\n io.print(str.from_bytes(b))\n }\n ! e {\n io.print(e)\n }\n}", }, ], }, @@ -1187,8 +1187,7 @@ export const stdModules: StdModule[] = [ "Returns a new list by applying f to each element. f must be a closed function value (no outer $ / ~ capture).", params: "xs: list. f: function of one argument.", returns: "New list of f results, same length as xs.", - example: - "/ std/list\n\n$ inc = (n) {\n ^ n + 1\n}\n$ ys = list.map([1, 2, 3], inc)", + example: "/ std/list\n\n$ inc = (n) {\n ^ n + 1\n}\n$ ys = list.map([1, 2, 3], inc)", }, { name: "filter", @@ -1656,7 +1655,8 @@ export const stdModules: StdModule[] = [ name: "parent", role: "Parent directory path", call: "path.parent(p)", - description: "Returns the parent directory of path p. Parent of /foo is /. Parent of a name with no slash is . Parent of / is /.", + description: + "Returns the parent directory of path p. Parent of /foo is /. Parent of a name with no slash is . Parent of / is /.", params: "p: path string.", returns: "Parent path string.", example: '/ std/path\n\n$ dir = path.parent("/foo")', @@ -1892,9 +1892,10 @@ export const stdModules: StdModule[] = [ name: "create_temp", role: "Create a temporary path", call: "fs.create_temp(prefix)", - description: "Creates an empty temporary file whose name starts with prefix and returns its path.", + description: + "Creates an empty temporary file whose name starts with prefix and returns its path.", params: "prefix: filename prefix string.", - returns: "Result. Ok arm: path string. Err arm: \"create_temp failed\".", + returns: 'Result. Ok arm: path string. Err arm: "create_temp failed".', example: '/ std/fs\n\n| fs.create_temp("echo") {\n $ p { }\n ! e { }\n}', }, { @@ -1913,7 +1914,7 @@ export const stdModules: StdModule[] = [ description: "Sets permission bits on path.", params: "path: file path as string or locator. mode: mode bits.", returns: "None.", - example: "/ std/fs\n\nfs.chmod(\"/tmp/a\", 420)", + example: '/ std/fs\n\nfs.chmod("/tmp/a", 420)', }, ], }, @@ -2212,11 +2213,10 @@ export const stdModules: StdModule[] = [ role: "Strict UTF-8 decode to a string", call: "utf8.decode(b)", description: - 'Decodes well-formed UTF-8 to a string. Invalid sequences fail. Use str.from_bytes for lossy decode.', + "Decodes well-formed UTF-8 to a string. Invalid sequences fail. Use str.from_bytes for lossy decode.", params: "b: bytes or string.", returns: 'Result. Ok arm: string. Err arm: "invalid utf-8".', - example: - '/ std/encoding/utf8\n\n| utf8.decode(b"hi") {\n $ t { }\n ! e { }\n}', + example: '/ std/encoding/utf8\n\n| utf8.decode(b"hi") {\n $ t { }\n ! e { }\n}', }, ], }, @@ -2311,7 +2311,7 @@ export const stdModules: StdModule[] = [ params: "data: zip bytes.", returns: 'Result. Ok arm: product { name, data }. Err arm: "zip unpack failed".', example: - '/ std/compress/zip\n\n$ e = zip.unpack_first(z)\n$ name = e.name\n$ body = e.data', + "/ std/compress/zip\n\n$ e = zip.unpack_first(z)\n$ name = e.name\n$ body = e.data", }, ], }, @@ -2529,7 +2529,7 @@ export const stdModules: StdModule[] = [ params: "key: 32-byte key. nonce: 12-byte nonce. ciphertext: bytes to decrypt.", returns: "Plaintext bytes, or failure on auth error.", example: - '/ std/crypto/aes_gcm\n\n| aes_gcm.decrypt(key, nonce, ciphertext) {\n $ p { }\n ! e { }\n}', + "/ std/crypto/aes_gcm\n\n| aes_gcm.decrypt(key, nonce, ciphertext) {\n $ p { }\n ! e { }\n}", }, ], }, @@ -2548,8 +2548,7 @@ export const stdModules: StdModule[] = [ description: "Fills n cryptographically secure random bytes.", params: "n: number of bytes.", returns: "n random bytes.", - example: - "/ std/crypto/random\n\n| random.fill(16) {\n $ b { }\n ! e { }\n}", + example: "/ std/crypto/random\n\n| random.fill(16) {\n $ b { }\n ! e { }\n}", }, { name: "u64", @@ -2842,7 +2841,8 @@ export const stdModules: StdModule[] = [ name: "listen", role: "Start listening; failure yields handle 0", call: "unix.listen(path)", - description: "Binds a Unix domain listener on path. On Windows the native returns handle 0.", + description: + "Binds a Unix domain listener on path. On Windows the native returns handle 0.", params: "path: socket path.", returns: "Unix listener product.", example: "/ std/net/unix\n\n$ listener = unix.listen(p'/tmp/echo.sock')", From 668c9d8f4b91ef0698da46a9aff2a78b7801688c Mon Sep 17 00:00:00 2001 From: Christoffer Hallas Date: Thu, 8 Oct 2026 12:22:04 -0400 Subject: [PATCH 2/2] chore(www): restore package-lock.json `npm install` in the gate rewrote the lockfile (dropped `libc` fields, added hasInstallScript). That was incidental; keep the lockfile as on main. Co-Authored-By: Claude Sonnet 5.5 --- www/package-lock.json | 139 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) diff --git a/www/package-lock.json b/www/package-lock.json index 8bc75137..1ea36072 100644 --- a/www/package-lock.json +++ b/www/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "xo-www", "version": "0.0.1", - "hasInstallScript": true, "dependencies": { "@fontsource/geist-mono": "^5.2.8", "@fontsource/inter": "^5.2.8", @@ -214,6 +213,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -230,6 +232,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -246,6 +251,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -262,6 +270,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -278,6 +289,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -294,6 +308,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -310,6 +327,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -326,6 +346,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -342,6 +365,9 @@ "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -364,6 +390,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -386,6 +415,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -408,6 +440,9 @@ "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -430,6 +465,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -452,6 +490,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -474,6 +515,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -496,6 +540,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -793,6 +840,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -810,6 +860,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -827,6 +880,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -844,6 +900,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -861,6 +920,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -878,6 +940,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -895,6 +960,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -912,6 +980,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1116,6 +1187,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1133,6 +1207,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1150,6 +1227,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1167,6 +1247,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1184,6 +1267,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1201,6 +1287,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1218,6 +1307,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1235,6 +1327,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1471,6 +1566,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1488,6 +1586,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1505,6 +1606,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1522,6 +1626,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1539,6 +1646,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1556,6 +1666,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1775,6 +1888,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1792,6 +1908,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1809,6 +1928,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1826,6 +1948,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -2495,6 +2620,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2516,6 +2644,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2537,6 +2668,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -2558,6 +2692,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [