From 4eba1ec5889399dc5936972ed82102a062a57b77 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:09:08 +0200 Subject: [PATCH 01/13] move to pnpm v10 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2a3c500e3b08..08085fb4e66e 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "typescript": "^5.9.3", "vitest": "^4.1.5" }, - "packageManager": "pnpm@9.6.0", + "packageManager": "pnpm@10.33.4", "pnpm": { "patchedDependencies": { "@parcel/watcher@2.5.1": "patches/@parcel__watcher@2.5.1.patch", From 7e342f86524b269c85512f338170de6a4bb42151 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:17:42 +0200 Subject: [PATCH 02/13] use codemod to migrate from pnpm v10 to v11 --- package.json | 8 +------- pnpm-workspace.yaml | 3 +++ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 08085fb4e66e..9cd1a2eb68db 100644 --- a/package.json +++ b/package.json @@ -60,11 +60,5 @@ "typescript": "^5.9.3", "vitest": "^4.1.5" }, - "packageManager": "pnpm@10.33.4", - "pnpm": { - "patchedDependencies": { - "@parcel/watcher@2.5.1": "patches/@parcel__watcher@2.5.1.patch", - "lightningcss@1.32.0": "patches/lightningcss@1.32.0.patch" - } - } + "packageManager": "pnpm@11.1.3" } diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 42cba5ceb7b2..4696d0476d6f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,3 +18,6 @@ catalog: lightningcss-linux-x64-gnu: 1.32.0 lightningcss-linux-x64-musl: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 +patchedDependencies: + '@parcel/watcher@2.5.1': patches/@parcel__watcher@2.5.1.patch + lightningcss@1.32.0: patches/lightningcss@1.32.0.patch From 8a69bfc0831893d6269ee3b47a4d54c9173b744e Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:20:54 +0200 Subject: [PATCH 03/13] allowBuilds and `pnpm install` with pnpm v11 --- pnpm-lock.yaml | 412 +++++++++++--------------------------------- pnpm-workspace.yaml | 9 + 2 files changed, 105 insertions(+), 316 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c968ace1b3d..c5bb0ec4c249 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,12 +44,8 @@ catalogs: version: 5.106.2 patchedDependencies: - '@parcel/watcher@2.5.1': - hash: p6xahr7zs4c5qsorj3exeppxhm - path: patches/@parcel__watcher@2.5.1.patch - lightningcss@1.32.0: - hash: mz3chiqe2jbihxa25xumd4ogum - path: patches/lightningcss@1.32.0.patch + '@parcel/watcher@2.5.1': c22241764997c5af4980d3be22550ae47858f14849dca486726653fa127eb69c + lightningcss@1.32.0: 1d4a8800d60d13d42887b88b3a86576df4b451670308145fb432ec8abbf40930 importers: @@ -78,7 +74,7 @@ importers: version: 4.3.0(prettier@3.8.3)(typescript@5.9.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.14)(tsx@4.19.1)(typescript@5.9.3)(yaml@2.6.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.14)(typescript@5.9.3)(yaml@2.6.0) turbo: specifier: ^2.9.6 version: 2.9.6 @@ -87,9 +83,19 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.5 - version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0)) + version: 4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0)) crates/node: + devDependencies: + '@napi-rs/cli': + specifier: 3.6.2 + version: 3.6.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.17)(node-addon-api@8.3.0) + '@napi-rs/wasm-runtime': + specifier: ^1.1.4 + version: 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + emnapi: + specifier: 1.10.0 + version: 1.10.0(node-addon-api@8.3.0) optionalDependencies: '@tailwindcss/oxide-android-arm64': specifier: workspace:* @@ -127,16 +133,6 @@ importers: '@tailwindcss/oxide-win32-x64-msvc': specifier: workspace:* version: link:npm/win32-x64-msvc - devDependencies: - '@napi-rs/cli': - specifier: 3.6.2 - version: 3.6.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@22.19.17)(node-addon-api@8.3.0) - '@napi-rs/wasm-runtime': - specifier: ^1.1.4 - version: 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - emnapi: - specifier: 1.10.0 - version: 1.10.0(node-addon-api@8.3.0) crates/node/npm/android-arm-eabi: {} @@ -211,7 +207,7 @@ importers: dependencies: '@parcel/watcher': specifier: ^2.5.1 - version: 2.5.1(patch_hash=p6xahr7zs4c5qsorj3exeppxhm) + version: 2.5.1(patch_hash=c22241764997c5af4980d3be22550ae47858f14849dca486726653fa127eb69c) '@tailwindcss/node': specifier: workspace:* version: link:../@tailwindcss-node @@ -244,7 +240,7 @@ importers: version: 2.7.0 lightningcss: specifier: 'catalog:' - version: 1.32.0(patch_hash=mz3chiqe2jbihxa25xumd4ogum) + version: 1.32.0(patch_hash=1d4a8800d60d13d42887b88b3a86576df4b451670308145fb432ec8abbf40930) magic-string: specifier: ^0.30.21 version: 0.30.21 @@ -440,7 +436,7 @@ importers: version: 22.19.17 vite: specifier: 'catalog:' - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0) + version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0) packages/@tailwindcss-webpack: dependencies: @@ -482,7 +478,7 @@ importers: version: 1.7.2 lightningcss: specifier: 'catalog:' - version: 1.32.0(patch_hash=mz3chiqe2jbihxa25xumd4ogum) + version: 1.32.0(patch_hash=1d4a8800d60d13d42887b88b3a86576df4b451670308145fb432ec8abbf40930) magic-string: specifier: ^0.30.21 version: 0.30.21 @@ -562,7 +558,7 @@ importers: version: link:../../packages/@tailwindcss-vite '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0)) + version: 6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0)) react: specifier: ^19.2.5 version: 19.2.5 @@ -584,7 +580,7 @@ importers: version: 1.3.13 vite: specifier: 'catalog:' - version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0) + version: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0) packages: @@ -601,204 +597,102 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.0': resolution: {integrity: sha512-KuZrd2hRjz01y5JK9mEBSD3Vj3mbCvemhT466rSuJYeE/hjuBrHfjjcjMdTm/sz7au+++sdbJZJmuBwQLuw68A==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.0': resolution: {integrity: sha512-CC3vt4+1xZrs97/PKDkl0yN7w8edvU2vZvAFGD16n9F0Cvniy5qvzRXjfO1l94efczkkQE6g1x0i73Qf5uthOQ==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.0': resolution: {integrity: sha512-j67aezrPNYWJEOHUNLPj9maeJte7uSMM6gMoxfPC9hOg8N02JuQi/T7ewumf4tNvJadFkvLZMlAq73b9uwdMyQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.0': resolution: {integrity: sha512-wurMkF1nmQajBO1+0CJmcN17U4BP6GqNSROP8t0X/Jiw2ltYGLHpEksp9MpoBqkrFR3kv2/te6Sha26k3+yZ9Q==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.0': resolution: {integrity: sha512-uJOQKYCcHhg07DL7i8MzjvS2LaP7W7Pn/7uA0B5S1EnqAirJtbyw4yC5jQ5qcFjHK9l6o/MX9QisBg12kNkdHg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.0': resolution: {integrity: sha512-8mG6arH3yB/4ZXiEnXof5MK72dE6zM9cDvUcPtxhUZsDjESl9JipZYW60C3JGreKCEP+p8P/72r69m4AZGJd5g==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.0': resolution: {integrity: sha512-9FHtyO988CwNMMOE3YIeci+UV+x5Zy8fI2qHNpsEtSF83YPBmE8UWmfYAQg6Ux7Gsmd4FejZqnEUZCMGaNQHQw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.0': resolution: {integrity: sha512-zCMeMXI4HS/tXvJz8vWGexpZj2YVtRAihHLk1imZj4efx1BQzN76YFeKqlDr3bUWI26wHwLWPd3rwh6pe4EV7g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.0': resolution: {integrity: sha512-AS18v0V+vZiLJyi/4LphvBE+OIX682Pu7ZYNsdUHyUKSoRwdnOsMf6FDekwoAFKej14WAkOef3zAORJgAtXnlQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.0': resolution: {integrity: sha512-t76XLQDpxgmq2cNXKTVEB7O7YMb42atj2Re2Haf45HkaUpjM2J0UuJZDuaGbPbamzZ7bawyGFUkodL+zcE+jvQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.0': resolution: {integrity: sha512-Mz1jxqm/kfgKkc/KLHC5qIujMvnnarD9ra1cEcrs7qshTUSksPihGrWHVG5+osAIQ68577Zpww7SGapmzSt4Nw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.0': resolution: {integrity: sha512-QbEREjdJeIreIAbdG2hLU1yXm1uu+LTdzoq1KCo4G4pFOLlvIspBm36QrQOar9LFduavoWX2msNFAAAY9j4BDg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.0': resolution: {integrity: sha512-sJz3zRNe4tO2wxvDpH/HYJilb6+2YJxo/ZNbVdtFiKDufzWq4JmKAiHy9iGoLjAV7r/W32VgaHGkk35cUXlNOg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.0': resolution: {integrity: sha512-z9N10FBD0DCS2dmSABDBb5TLAyF1/ydVb+N4pi88T45efQ/w4ohr/F/QYCkxDPnkhkp6AIpIcQKQ8F0ANoA2JA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.0': resolution: {integrity: sha512-pQdyAIZ0BWIC5GyvVFn5awDiO14TkT/19FTmFcPdDec94KJ1uZcmFs21Fo8auMXzD4Tt+diXu1LW1gHus9fhFQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.0': resolution: {integrity: sha512-hPlRWR4eIDDEci953RI1BLZitgi5uqcsjKMxwYfmi4LcwyWo2IcRP+lThVnKjNtk90pLS8nKdroXYOqW+QQH+w==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.0': resolution: {integrity: sha512-1hBWx4OUJE2cab++aVZ7pObD6s+DK4mPGpemtnAORBvb5l/g5xFGk0vc0PjSkrDs0XaXj9yyob3d14XqvnQ4gw==} engines: {node: '>=18'} @@ -811,36 +705,18 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.0': resolution: {integrity: sha512-xbbOdfn06FtcJ9d0ShxxvSn2iUsGd/lgPIO2V3VZIPDbEaIj1/3nBBe1AwuEZKXVXkMmpr6LUAgMkLD/4D2PPA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.0': resolution: {integrity: sha512-fWgqR8uNbCQ/GGv0yhzttj6sU/9Z5/Sv/VGU3F5OuXK6J6SlriONKrQ7tNlwBrJZXRYk5jUhuWvF7GYzGguBZQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.0': resolution: {integrity: sha512-aCwlRdSNMNxkGGqQajMUza6uXzR/U0dIl1QmLjPtRbLOx3Gy3otfFu/VjATy4yQzo9yFDGTxYDo1FfAD9oRD2A==} engines: {node: '>=18'} @@ -853,48 +729,24 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.0': resolution: {integrity: sha512-Q1KY1iJafM+UX6CFEL+F4HRTgygmEW568YMqDA5UV97AuZSm21b7SXIrRJDwXWPzr8MGr75fUZPV67FdtMHlHA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.0': resolution: {integrity: sha512-W1eyGNi6d+8kOmZIwi/EDjrL9nxQIQ0MiGqe/AWc6+IaHloxHSGoeRgDRKHFISThLmsewZ5nHFvGFWdBYlgKPg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.0': resolution: {integrity: sha512-30z1aKL9h22kQhilnYkORFYt+3wp7yZsHWus+wSKAJR8JtdfI76LJ4SBdMsCopTR3z/ORqVu5L1vtnHZWVj4cQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.0': resolution: {integrity: sha512-aIitBcjQeyOhMTImhLZmtxfdOcuNRpwlPNmlFKPcHQYPhEssw75Cl1TSXJXpMkzaua9FUetx/4OQKq7eJul5Cg==} engines: {node: '>=18'} @@ -931,89 +783,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -1292,42 +1160,49 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/lzma-linux-arm64-musl@1.4.5': resolution: {integrity: sha512-yWjcPDgJ2nIL3KNvi4536dlT/CcCWO0DUyEOlBs/SacG7BeD6IjGh6yYzd3/X1Y3JItCbZoDoLUH8iB1lTXo3w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/lzma-linux-ppc64-gnu@1.4.5': resolution: {integrity: sha512-0XRhKuIU/9ZjT4WDIG/qnX7Xz7mSQHYZo9Gb3MP2gcvBgr6BA4zywQ9k3gmQaPn9ECE+CZg2V7DV7kT+x2pUMQ==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/lzma-linux-riscv64-gnu@1.4.5': resolution: {integrity: sha512-QrqDIPEUUB23GCpyQj/QFyMlr8SGxxyExeZz9OWFnHfb70kXdTLWrHS/hEI1Ru+lSbQ/6xRqeoGyQ4Aqdg+/RA==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/lzma-linux-s390x-gnu@1.4.5': resolution: {integrity: sha512-k8RVM5aMhW86E9H0QXdquwojew4H3SwPxbRVbl49/COJQWCUjGi79X6mYruMnMPEznZinUiT1jgKbFo2A00NdA==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/lzma-linux-x64-gnu@1.4.5': resolution: {integrity: sha512-6rMtBgnIq2Wcl1rQdZsnM+rtCcVCbws1nF8S2NzaUsVaZv8bjrPiAa0lwg4Eqnn1d9lgwqT+cZgm5m+//K08Kw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/lzma-linux-x64-musl@1.4.5': resolution: {integrity: sha512-eiadGBKi7Vd0bCArBUOO/qqRYPHt/VQVvGyYvDFt6C2ZSIjlD+HuOl+2oS1sjf4CFjK4eDIog6EdXnL0NE6iyQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/lzma-wasm32-wasi@1.4.5': resolution: {integrity: sha512-+VyHHlr68dvey6fXc2hehw9gHVFIW3TtGF1XkcbAu65qVXsA9D/T+uuoRVqhE+JCyFHFrO0ixRbZDRK1XJt1sA==} @@ -1397,36 +1272,42 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/tar-linux-arm64-musl@1.1.0': resolution: {integrity: sha512-L/y1/26q9L/uBqiW/JdOb/Dc94egFvNALUZV2WCGKQXc6UByPBMgdiEyW2dtoYxYYYYc+AKD+jr+wQPcvX2vrQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/tar-linux-ppc64-gnu@1.1.0': resolution: {integrity: sha512-EPE1K/80RQvPbLRJDJs1QmCIcH+7WRi0F73+oTe1582y9RtfGRuzAkzeBuAGRXAQEjRQw/RjtNqr6UTJ+8UuWQ==} engines: {node: '>= 10'} cpu: [ppc64] os: [linux] + libc: [glibc] '@napi-rs/tar-linux-s390x-gnu@1.1.0': resolution: {integrity: sha512-B2jhWiB1ffw1nQBqLUP1h4+J1ovAxBOoe5N2IqDMOc63fsPZKNqF1PvO/dIem8z7LL4U4bsfmhy3gBfu547oNQ==} engines: {node: '>= 10'} cpu: [s390x] os: [linux] + libc: [glibc] '@napi-rs/tar-linux-x64-gnu@1.1.0': resolution: {integrity: sha512-tbZDHnb9617lTnsDMGo/eAMZxnsQFnaRe+MszRqHguKfMwkisc9CCJnks/r1o84u5fECI+J/HOrKXgczq/3Oww==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/tar-linux-x64-musl@1.1.0': resolution: {integrity: sha512-dV6cODlzbO8u6Anmv2N/ilQHq/AWz0xyltuXoLU3yUyXbZcnWYZuB2rL8OBGPmqNcD+x9NdScBNXh7vWN0naSQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/tar-wasm32-wasi@1.1.0': resolution: {integrity: sha512-jIa9nb2HzOrfH0F8QQ9g3WE4aMH5vSI5/1NYVNm9ysCmNjCCtMXCAhlI3WKCdm/DwHf0zLqdrrtDFXODcNaqMw==} @@ -1496,24 +1377,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/wasm-tools-linux-arm64-musl@1.0.1': resolution: {integrity: sha512-jAasbIvjZXCgX0TCuEFQr+4D6Lla/3AAVx2LmDuMjgG4xoIXzjKWl7c4chuaD+TI+prWT0X6LJcdzFT+ROKGHQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/wasm-tools-linux-x64-gnu@1.0.1': resolution: {integrity: sha512-Plgk5rPqqK2nocBGajkMVbGm010Z7dnUgq0wtnYRZbzWWxwWcXfZMPa8EYxrK4eE8SzpI7VlZP1tdVsdjgGwMw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/wasm-tools-linux-x64-musl@1.0.1': resolution: {integrity: sha512-GW7AzGuWxtQkyHknHWYFdR0CHmW6is8rG2Rf4V6GNmMpmwtXt/ItWYWtBe4zqJWycMNazpfZKSw/BpT7/MVCXQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/wasm-tools-wasm32-wasi@1.0.1': resolution: {integrity: sha512-/nQVSTrqSsn7YdAc2R7Ips/tnw5SPUcl3D7QrXCNGPqjbatIspnaexvaOYNyKMU6xPu+pc0BTnKVmqhlJJCPLA==} @@ -1562,24 +1447,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@next/swc-linux-arm64-musl@16.2.6': resolution: {integrity: sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@next/swc-linux-x64-gnu@16.2.6': resolution: {integrity: sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@next/swc-linux-x64-musl@16.2.6': resolution: {integrity: sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@next/swc-win32-arm64-msvc@16.2.6': resolution: {integrity: sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==} @@ -1773,30 +1662,35 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-glibc@2.5.6': resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm-musl@2.5.6': resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-glibc@2.5.6': resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} @@ -1809,6 +1703,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-musl@2.5.6': resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} @@ -1821,6 +1716,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-glibc@2.5.6': resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} @@ -1833,6 +1729,7 @@ packages: engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-musl@2.5.6': resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} @@ -1934,36 +1831,42 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==} @@ -2028,56 +1931,67 @@ packages: resolution: {integrity: sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.44.0': resolution: {integrity: sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.44.0': resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.44.0': resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.44.0': resolution: {integrity: sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': resolution: {integrity: sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.44.0': resolution: {integrity: sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.44.0': resolution: {integrity: sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.44.0': resolution: {integrity: sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.44.0': resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.44.0': resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.44.0': resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} @@ -2576,11 +2490,6 @@ packages: es-toolkit@1.43.0: resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.0: resolution: {integrity: sha512-jd0f4NHbD6cALCyGElNpGAOtWxSq46l9X/sWB0Nzd5er4Kz2YTm+Vl0qKFT9KUJvD8+fiO8AvoHhFvEatfVixA==} engines: {node: '>=18'} @@ -2700,9 +2609,6 @@ packages: get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -3244,9 +3150,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -3499,11 +3402,6 @@ packages: typescript: optional: true - tsx@4.19.1: - resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} - engines: {node: '>=18.0.0'} - hasBin: true - turbo@2.9.6: resolution: {integrity: sha512-+v2QJey7ZUeUiuigkU+uFfklvNUyPI2VO2vBpMYJA+a1hKFLFiKtUYlRHdb3P9CrAvMzi0upbjI4WT+zKtqkBg==} hasBin: true @@ -3702,153 +3600,81 @@ snapshots: dependencies: tslib: 2.8.1 - '@esbuild/aix-ppc64@0.23.1': - optional: true - '@esbuild/aix-ppc64@0.27.0': optional: true - '@esbuild/android-arm64@0.23.1': - optional: true - '@esbuild/android-arm64@0.27.0': optional: true - '@esbuild/android-arm@0.23.1': - optional: true - '@esbuild/android-arm@0.27.0': optional: true - '@esbuild/android-x64@0.23.1': - optional: true - '@esbuild/android-x64@0.27.0': optional: true - '@esbuild/darwin-arm64@0.23.1': - optional: true - '@esbuild/darwin-arm64@0.27.0': optional: true - '@esbuild/darwin-x64@0.23.1': - optional: true - '@esbuild/darwin-x64@0.27.0': optional: true - '@esbuild/freebsd-arm64@0.23.1': - optional: true - '@esbuild/freebsd-arm64@0.27.0': optional: true - '@esbuild/freebsd-x64@0.23.1': - optional: true - '@esbuild/freebsd-x64@0.27.0': optional: true - '@esbuild/linux-arm64@0.23.1': - optional: true - '@esbuild/linux-arm64@0.27.0': optional: true - '@esbuild/linux-arm@0.23.1': - optional: true - '@esbuild/linux-arm@0.27.0': optional: true - '@esbuild/linux-ia32@0.23.1': - optional: true - '@esbuild/linux-ia32@0.27.0': optional: true - '@esbuild/linux-loong64@0.23.1': - optional: true - '@esbuild/linux-loong64@0.27.0': optional: true - '@esbuild/linux-mips64el@0.23.1': - optional: true - '@esbuild/linux-mips64el@0.27.0': optional: true - '@esbuild/linux-ppc64@0.23.1': - optional: true - '@esbuild/linux-ppc64@0.27.0': optional: true - '@esbuild/linux-riscv64@0.23.1': - optional: true - '@esbuild/linux-riscv64@0.27.0': optional: true - '@esbuild/linux-s390x@0.23.1': - optional: true - '@esbuild/linux-s390x@0.27.0': optional: true - '@esbuild/linux-x64@0.23.1': - optional: true - '@esbuild/linux-x64@0.27.0': optional: true '@esbuild/netbsd-arm64@0.27.0': optional: true - '@esbuild/netbsd-x64@0.23.1': - optional: true - '@esbuild/netbsd-x64@0.27.0': optional: true - '@esbuild/openbsd-arm64@0.23.1': - optional: true - '@esbuild/openbsd-arm64@0.27.0': optional: true - '@esbuild/openbsd-x64@0.23.1': - optional: true - '@esbuild/openbsd-x64@0.27.0': optional: true '@esbuild/openharmony-arm64@0.27.0': optional: true - '@esbuild/sunos-x64@0.23.1': - optional: true - '@esbuild/sunos-x64@0.27.0': optional: true - '@esbuild/win32-arm64@0.23.1': - optional: true - '@esbuild/win32-arm64@0.27.0': optional: true - '@esbuild/win32-ia32@0.23.1': - optional: true - '@esbuild/win32-ia32@0.27.0': optional: true - '@esbuild/win32-x64@0.23.1': - optional: true - '@esbuild/win32-x64@0.27.0': optional: true @@ -4593,7 +4419,7 @@ snapshots: '@parcel/watcher-win32-x64@2.5.6': {} - '@parcel/watcher@2.5.1(patch_hash=p6xahr7zs4c5qsorj3exeppxhm)': + '@parcel/watcher@2.5.1(patch_hash=c22241764997c5af4980d3be22550ae47858f14849dca486726653fa127eb69c)': dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 @@ -4846,10 +4672,10 @@ snapshots: '@types/semver@7.7.1': {} - '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0))': + '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0) + vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0) '@vitest/expect@4.1.5': dependencies: @@ -4860,13 +4686,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0))': + '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0))': dependencies: '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0) + vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0) '@vitest/pretty-format@4.1.5': dependencies: @@ -5197,34 +5023,6 @@ snapshots: es-toolkit@1.43.0: {} - esbuild@0.23.1: - optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - optional: true - esbuild@0.27.0: optionalDependencies: '@esbuild/aix-ppc64': 0.27.0 @@ -5350,11 +5148,6 @@ snapshots: get-port-please@3.2.0: {} - get-tsconfig@4.10.0: - dependencies: - resolve-pkg-maps: 1.0.0 - optional: true - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -5485,7 +5278,7 @@ snapshots: lightningcss-win32-x64-msvc@1.32.0: {} - lightningcss@1.32.0(patch_hash=mz3chiqe2jbihxa25xumd4ogum): + lightningcss@1.32.0(patch_hash=1d4a8800d60d13d42887b88b3a86576df4b451670308145fb432ec8abbf40930): dependencies: detect-libc: 2.1.2 optionalDependencies: @@ -5732,13 +5525,12 @@ snapshots: optionalDependencies: postcss: 8.5.14 - postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.14)(tsx@4.19.1)(yaml@2.6.0): + postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.14)(yaml@2.6.0): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 2.7.0 postcss: 8.5.14 - tsx: 4.19.1 yaml: 2.6.0 postcss-nested@6.2.0(postcss@8.5.14): @@ -5831,9 +5623,6 @@ snapshots: resolve-from@5.0.0: {} - resolve-pkg-maps@1.0.0: - optional: true - resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -6121,7 +5910,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.14)(tsx@4.19.1)(typescript@5.9.3)(yaml@2.6.0): + tsup@8.5.1(jiti@2.7.0)(postcss@8.5.14)(typescript@5.9.3)(yaml@2.6.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.0) cac: 6.7.14 @@ -6132,7 +5921,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.14)(tsx@4.19.1)(yaml@2.6.0) + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.14)(yaml@2.6.0) resolve-from: 5.0.0 rollup: 4.44.0 source-map: 0.7.6 @@ -6149,14 +5938,6 @@ snapshots: - tsx - yaml - tsx@4.19.1: - dependencies: - esbuild: 0.23.1 - get-tsconfig: 4.10.0 - optionalDependencies: - fsevents: 2.3.3 - optional: true - turbo@2.9.6: optionalDependencies: '@turbo/darwin-64': 2.9.6 @@ -6204,9 +5985,9 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0): + vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0): dependencies: - lightningcss: 1.32.0(patch_hash=mz3chiqe2jbihxa25xumd4ogum) + lightningcss: 1.32.0(patch_hash=1d4a8800d60d13d42887b88b3a86576df4b451670308145fb432ec8abbf40930) picomatch: 4.0.4 postcss: 8.5.14 rolldown: 1.0.0-rc.17 @@ -6217,13 +5998,12 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 terser: 5.31.6 - tsx: 4.19.1 yaml: 2.6.0 - vitest@4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0)): + vitest@4.1.5(@types/node@22.19.17)(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0)): dependencies: '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0)) + '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0)) '@vitest/pretty-format': 4.1.5 '@vitest/runner': 4.1.5 '@vitest/snapshot': 4.1.5 @@ -6240,7 +6020,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(tsx@4.19.1)(yaml@2.6.0) + vite: 8.0.10(@types/node@22.19.17)(esbuild@0.27.0)(jiti@2.7.0)(terser@5.31.6)(yaml@2.6.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.17 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4696d0476d6f..0387eecf157b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,6 +5,15 @@ packages: - 'playgrounds/*' - 'integrations' +allowBuilds: + '@parcel/watcher': true + bun: true + esbuild: true + sharp: false + tree-sitter: true + tree-sitter-javascript: true + tree-sitter-typescript: true + catalog: '@types/node': ^22.19.17 prettier: 3.8.3 From bb90c54f667e179d9714660454a991b9c69784de Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:27:59 +0200 Subject: [PATCH 04/13] remove `pnpm-lock.yaml` from `wasm32-wasi` package --- crates/node/npm/wasm32-wasi/pnpm-lock.yaml | 75 ---------------------- 1 file changed, 75 deletions(-) delete mode 100644 crates/node/npm/wasm32-wasi/pnpm-lock.yaml diff --git a/crates/node/npm/wasm32-wasi/pnpm-lock.yaml b/crates/node/npm/wasm32-wasi/pnpm-lock.yaml deleted file mode 100644 index 5cd70ea37835..000000000000 --- a/crates/node/npm/wasm32-wasi/pnpm-lock.yaml +++ /dev/null @@ -1,75 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@emnapi/core': - specifier: ^1.5.0 - version: 1.5.0 - '@emnapi/runtime': - specifier: ^1.5.0 - version: 1.5.0 - '@emnapi/wasi-threads': - specifier: ^1.1.0 - version: 1.1.0 - '@napi-rs/wasm-runtime': - specifier: ^1.0.5 - version: 1.0.5 - '@tybys/wasm-util': - specifier: ^0.10.1 - version: 0.10.1 - tslib: - specifier: ^2.4.0 - version: 2.8.1 - -packages: - - '@emnapi/core@1.5.0': - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} - - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - - '@napi-rs/wasm-runtime@1.0.5': - resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} - - '@tybys/wasm-util@0.10.1': - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - -snapshots: - - '@emnapi/core@1.5.0': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - - '@emnapi/runtime@1.5.0': - dependencies: - tslib: 2.8.1 - - '@emnapi/wasi-threads@1.1.0': - dependencies: - tslib: 2.8.1 - - '@napi-rs/wasm-runtime@1.0.5': - dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.1 - - '@tybys/wasm-util@0.10.1': - dependencies: - tslib: 2.8.1 - - tslib@2.8.1: {} From 5d908438faa2006687b8d74aa28eb4c21ad67c49 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:28:59 +0200 Subject: [PATCH 05/13] move `nodeLinker` to `pnpm-workspace.yaml` --- crates/node/npm/wasm32-wasi/.npmrc | 1 - pnpm-workspace.yaml | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) delete mode 100644 crates/node/npm/wasm32-wasi/.npmrc diff --git a/crates/node/npm/wasm32-wasi/.npmrc b/crates/node/npm/wasm32-wasi/.npmrc deleted file mode 100644 index d67f3748837b..000000000000 --- a/crates/node/npm/wasm32-wasi/.npmrc +++ /dev/null @@ -1 +0,0 @@ -node-linker=hoisted diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0387eecf157b..2b8cb8c87f0f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -27,6 +27,11 @@ catalog: lightningcss-linux-x64-gnu: 1.32.0 lightningcss-linux-x64-musl: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 + patchedDependencies: '@parcel/watcher@2.5.1': patches/@parcel__watcher@2.5.1.patch lightningcss@1.32.0: patches/lightningcss@1.32.0.patch + +packageConfigs: + '@tailwindcss/oxide-wasm32-wasi': + nodeLinker: hoisted From 49807873ed0341298d4f607c75726bf5d86f68d4 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 12:38:18 +0200 Subject: [PATCH 06/13] manually add `--config.node-linker=hoisted` when bundledDependencies are used --- scripts/pack-packages.mjs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scripts/pack-packages.mjs b/scripts/pack-packages.mjs index a3d34da6fcfd..18fdabe3fe29 100644 --- a/scripts/pack-packages.mjs +++ b/scripts/pack-packages.mjs @@ -21,18 +21,22 @@ let workspaces = new Map() for (let path of paths) { let pkg = await fs.readFile(path, 'utf8').then(JSON.parse) if (pkg.private) continue - workspaces.set(pkg.name, { version: pkg.version ?? '', dir: dirname(path) }) + workspaces.set(pkg.name, { + version: pkg.version ?? '', + dir: dirname(path), + hasBundledDependencies: Boolean(pkg.bundledDependencies?.length), + }) } // Clean dist folder await fs.rm(path.join(root, 'dist'), { recursive: true, force: true }) Promise.all( - [...workspaces.entries()].map(async ([name, { dir }]) => { + [...workspaces.entries()].map(async ([name, { dir, hasBundledDependencies }]) => { function pack() { return new Promise((resolve) => { exec( - `pnpm pack --pack-gzip-level=0 --pack-destination="${path.join(root, 'dist').replace(/\\/g, '\\\\')}"`, + `pnpm pack --pack-gzip-level=0 --pack-destination="${path.join(root, 'dist').replace(/\\/g, '\\\\')}"${hasBundledDependencies ? ' --config.node-linker=hoisted' : ''}`, { cwd: dir }, (err, stdout, stderr) => { if (err) { From 86f6842c57a3f1f151663252755eb46e49912d9f Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 13:04:08 +0200 Subject: [PATCH 07/13] use `dist/` files for `require` and `cache*` related files The issue is sthat for `require` in exports, the file has to be in CommonJS syntax. But that only happens once we compile. We can try to modify the the .cts file directly to get it into a more CommonJS-style file. But I think it's safer to just rely on the build files. This is only necessary for our Next.js playground where we require CommonJS. Other spots that use `@tailwindcss/node` during tests will still use the src file in TypeScript / ESM format. --- packages/@tailwindcss-node/package.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/@tailwindcss-node/package.json b/packages/@tailwindcss-node/package.json index be9c13972308..3e23eb4eb69d 100644 --- a/packages/@tailwindcss-node/package.json +++ b/packages/@tailwindcss-node/package.json @@ -40,16 +40,15 @@ ".": { "types": "./src/index.ts", "import": "./src/index.ts", - "require": "./src/index.cts" + "require": "./dist/index.js" }, "./require-cache": { - "types": "./src/require-cache.ts", - "import": "./src/require-cache.ts", - "require": "./src/require-cache.cts" + "types": "./dist/require-cache.d.ts", + "default": "./dist/require-cache.js" }, "./esm-cache-loader": { - "types": "./src/esm-cache.loader.mts", - "default": "./src/esm-cache.loader.mts" + "types": "./dist/esm-cache.loader.d.mts", + "default": "./dist/esm-cache.loader.mjs" } }, "dependencies": { From 43da4113f875d776bea43542e364bc40679554ce Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 13:19:36 +0200 Subject: [PATCH 08/13] move `nodeLinker` to the top-level --- pnpm-workspace.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2b8cb8c87f0f..5fb7107d3785 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -32,6 +32,8 @@ patchedDependencies: '@parcel/watcher@2.5.1': patches/@parcel__watcher@2.5.1.patch lightningcss@1.32.0: patches/lightningcss@1.32.0.patch -packageConfigs: - '@tailwindcss/oxide-wasm32-wasi': - nodeLinker: hoisted +# TODO: Scope this just for the oxide-wasm32-wasi package +nodeLinker: hoisted +# packageConfigs: +# '@tailwindcss/oxide-wasm32-wasi': +# nodeLinker: hoisted From bd3b44984c60e793cae063afb4434e2c63ba46cc Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 13:27:08 +0200 Subject: [PATCH 09/13] bump `turbo` --- package.json | 2 +- pnpm-lock.yaml | 58 +++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 9cd1a2eb68db..83f0781e1fc5 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "prettier-plugin-embed": "^0.5.1", "prettier-plugin-organize-imports": "^4.3.0", "tsup": "^8.5.1", - "turbo": "^2.9.6", + "turbo": "^2.9.14", "typescript": "^5.9.3", "vitest": "^4.1.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5bb0ec4c249..dac9852792c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,8 +76,8 @@ importers: specifier: ^8.5.1 version: 8.5.1(jiti@2.7.0)(postcss@8.5.14)(typescript@5.9.3)(yaml@2.6.0) turbo: - specifier: ^2.9.6 - version: 2.9.6 + specifier: ^2.9.14 + version: 2.9.14 typescript: specifier: ^5.9.3 version: 5.9.3 @@ -2033,33 +2033,33 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@turbo/darwin-64@2.9.6': - resolution: {integrity: sha512-X/56SnVXIQZBLKwniGTwEQTGmtE5brSACnKMBWpY3YafuxVYefrC2acamfjgxP7BG5w3I+6jf0UrLoSzgPcSJg==} + '@turbo/darwin-64@2.9.14': + resolution: {integrity: sha512-t7QiPflaEyBE4oayeZtSmu4mEfjgIrcNlNNl1z1dmIVPqEdtA7+CfTf8d7KXsOGPh6aNgWjKxyvQg9uGfDQF+A==} cpu: [x64] os: [darwin] - '@turbo/darwin-arm64@2.9.6': - resolution: {integrity: sha512-aalBeSl4agT/QtYGDyf/XLajedWzUC9Vg/pm/YO6QQ93vkQ91Vz5uK1ta5RbVRDozQSz4njxUNqRNmOXDzW+qw==} + '@turbo/darwin-arm64@2.9.14': + resolution: {integrity: sha512-d23147mC9BsCPA9mJ0h/ubcpbRgcJBXbcG3+Vq7YLhjz3IXuvQsJ1UXH8f4MD76ZjJ4m/E4aRdJV+MW88CDfbw==} cpu: [arm64] os: [darwin] - '@turbo/linux-64@2.9.6': - resolution: {integrity: sha512-YKi05jnNHaD7vevgYwahpzGwbsNNTwzU2c7VZdmdFm7+cGDP4oREUWSsainiMfRqjRuolQxBwRn8wf1jmu+YZA==} + '@turbo/linux-64@2.9.14': + resolution: {integrity: sha512-P3ZKB5tuUDdDQWuAsACGUR1qv9W7BNWxdxqVJ0kZNuNNPRaVYTPPikLcp79+GiEcW3npsR+KyP38lnQiBc5aSA==} cpu: [x64] os: [linux] - '@turbo/linux-arm64@2.9.6': - resolution: {integrity: sha512-02o/ZS69cOYEDczXvOB2xmyrtzjQ2hVFtWZK1iqxXUfzMmTjZK4UumrfNnjckSg+gqeBfnPRHa0NstA173Ik3g==} + '@turbo/linux-arm64@2.9.14': + resolution: {integrity: sha512-ZRTlzcUMrrPv9ZuDzRF9n60Ym13bKeG9jDB8WjxyLhWNzV+AJQN+zdpIk3NJYf2zQsGUm1mNar2P0elRzLw25g==} cpu: [arm64] os: [linux] - '@turbo/windows-64@2.9.6': - resolution: {integrity: sha512-wVdQjvnBI15wB6JrA+43CtUtagjIMmX6XYO758oZHAsCNSxqRlJtdyujih0D8OCnwCRWiGWGI63zAxR0hO6s9g==} + '@turbo/windows-64@2.9.14': + resolution: {integrity: sha512-exanwN6sIduZwykYeiTQj8kCmOhazP5WOz3bvXMcYtjhL6Z3iRWLewKrXCBq0bqwSP3iBMb/AerRCnHI4lx46A==} cpu: [x64] os: [win32] - '@turbo/windows-arm64@2.9.6': - resolution: {integrity: sha512-1XUUyWW0W6FTSqGEhU8RHVqb2wP1SPkr7hIvBlMEwH9jr+sJQK5kqeosLJ/QaUv4ecSAd1ZhIrLoW7qslAzT4A==} + '@turbo/windows-arm64@2.9.14': + resolution: {integrity: sha512-fVdCsnmYoKICsycbWuuGp6Jvi51/3G/UluFWuAUCvR8PIW5IJkAk5BM9UF8PSm0Q2IphWHFZjYEgjHsh3B9y/g==} cpu: [arm64] os: [win32] @@ -3402,8 +3402,8 @@ packages: typescript: optional: true - turbo@2.9.6: - resolution: {integrity: sha512-+v2QJey7ZUeUiuigkU+uFfklvNUyPI2VO2vBpMYJA+a1hKFLFiKtUYlRHdb3P9CrAvMzi0upbjI4WT+zKtqkBg==} + turbo@2.9.14: + resolution: {integrity: sha512-BQqXRr4UoWI3UPFrtznCLykYHxwxWh53iCB57x092jPMjIlW1wnm3N895g5irpiXmnxUhREBB0n6+y8BHhs4nw==} hasBin: true typanion@3.14.0: @@ -4603,22 +4603,22 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: link:packages/tailwindcss - '@turbo/darwin-64@2.9.6': + '@turbo/darwin-64@2.9.14': optional: true - '@turbo/darwin-arm64@2.9.6': + '@turbo/darwin-arm64@2.9.14': optional: true - '@turbo/linux-64@2.9.6': + '@turbo/linux-64@2.9.14': optional: true - '@turbo/linux-arm64@2.9.6': + '@turbo/linux-arm64@2.9.14': optional: true - '@turbo/windows-64@2.9.6': + '@turbo/windows-64@2.9.14': optional: true - '@turbo/windows-arm64@2.9.6': + '@turbo/windows-arm64@2.9.14': optional: true '@tybys/wasm-util@0.10.1': @@ -5938,14 +5938,14 @@ snapshots: - tsx - yaml - turbo@2.9.6: + turbo@2.9.14: optionalDependencies: - '@turbo/darwin-64': 2.9.6 - '@turbo/darwin-arm64': 2.9.6 - '@turbo/linux-64': 2.9.6 - '@turbo/linux-arm64': 2.9.6 - '@turbo/windows-64': 2.9.6 - '@turbo/windows-arm64': 2.9.6 + '@turbo/darwin-64': 2.9.14 + '@turbo/darwin-arm64': 2.9.14 + '@turbo/linux-64': 2.9.14 + '@turbo/linux-arm64': 2.9.14 + '@turbo/windows-64': 2.9.14 + '@turbo/windows-arm64': 2.9.14 typanion@3.14.0: {} From c842fd47c7625433a9f51778ee0496cca2883917 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 13:39:04 +0200 Subject: [PATCH 10/13] tmp: add `tailwindcss` as a dependency of the root Because of the `nodeLinker: hoisted`, resolutions of dependencies start from the root where `tailwindcss` couldn't be found. I don't like this, I don't like the top-level `nodeLinker` setup. But going to see if we can get further with this setup in CI. --- package.json | 1 + pnpm-lock.yaml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/package.json b/package.json index 83f0781e1fc5..5e3026778ffe 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "prettier": "catalog:", "prettier-plugin-embed": "^0.5.1", "prettier-plugin-organize-imports": "^4.3.0", + "tailwindcss": "workspace:*", "tsup": "^8.5.1", "turbo": "^2.9.14", "typescript": "^5.9.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dac9852792c4..5bd878f86e58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,6 +72,9 @@ importers: prettier-plugin-organize-imports: specifier: ^4.3.0 version: 4.3.0(prettier@3.8.3)(typescript@5.9.3) + tailwindcss: + specifier: workspace:* + version: link:packages/tailwindcss tsup: specifier: ^8.5.1 version: 8.5.1(jiti@2.7.0)(postcss@8.5.14)(typescript@5.9.3)(yaml@2.6.0) From 1da9a6771847b53d400e1d28414e9398d294ffea Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 14:06:13 +0200 Subject: [PATCH 11/13] use `pnpm-workspace.yaml` for overrides, instead of storing in `package.json` --- integrations/package.json | 3 ++- integrations/utils.ts | 34 ++++++++++++++++++++++++---------- integrations/vite/nuxt.test.ts | 11 ++++++----- pnpm-lock.yaml | 3 +++ 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/integrations/package.json b/integrations/package.json index 8c0d83543a30..83dcaa2ff54e 100644 --- a/integrations/package.json +++ b/integrations/package.json @@ -5,6 +5,7 @@ "devDependencies": { "dedent": "1.7.1", "fast-glob": "^3.3.3", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.1", + "yaml": "^2.6.0" } } diff --git a/integrations/utils.ts b/integrations/utils.ts index c1e5e80628dc..e85658e3c179 100644 --- a/integrations/utils.ts +++ b/integrations/utils.ts @@ -8,10 +8,14 @@ import path from 'node:path' import { promisify, stripVTControlCharacters } from 'node:util' import { RawSourceMap, SourceMapConsumer } from 'source-map-js' import { test as defaultTest, type ExpectStatic } from 'vitest' +import * as Yaml from 'yaml' import { createLineTable } from '../packages/tailwindcss/src/source-maps/line-table' import { escape } from '../packages/tailwindcss/src/utils/escape' const REPO_ROOT = path.join(__dirname, '..') +const ROOT_PNPM_WORKSPACE = Yaml.parse( + await fs.readFile(path.join(REPO_ROOT, 'pnpm-workspace.yaml'), 'utf8'), +) const PUBLIC_PACKAGES = (await fs.readdir(path.join(REPO_ROOT, 'dist'))).map((name) => name.replace('tailwindcss-', '@tailwindcss/').replace('.tgz', ''), ) @@ -308,6 +312,8 @@ export function test( if (filename.endsWith('package.json')) { content = await overwriteVersionsInPackageJson(content) + } else if (filename.endsWith('pnpm-workspace.yaml')) { + content = overwriteVersionsInPnpmWorkspace(content) } // Ensure that files written on Windows use \r\n line ending @@ -409,6 +415,7 @@ export function test( config.fs['.gitignore'] ??= txt` node_modules/ ` + config.fs['pnpm-workspace.yaml'] ??= '' for (let [filename, content] of Object.entries(config.fs)) { await context.fs.write(filename, content) @@ -502,28 +509,35 @@ async function overwriteVersionsInPackageJson(content: string): Promise } } + return JSON.stringify(json, null, 2) +} + +function overwriteVersionsInPnpmWorkspace(content: string): string { + let workspace = content.trim() === '' ? {} : Yaml.parse(content) + + workspace.allowBuilds = ROOT_PNPM_WORKSPACE.allowBuilds + workspace.overrides ||= {} + // Inject transitive dependency overwrite. This is necessary because // @tailwindcss/vite internally depends on a specific version of // @tailwindcss/oxide and we instead want to resolve it to the locally built // version. - json.pnpm ||= {} - json.pnpm.overrides ||= {} for (let pkg of PUBLIC_PACKAGES) { if (pkg === 'tailwindcss') { // We want to be explicit about the `tailwindcss` package so our tests can // also import v3 without conflicting v4 tarballs. - json.pnpm.overrides['@tailwindcss/node>tailwindcss'] = resolveVersion(pkg) - json.pnpm.overrides['@tailwindcss/upgrade>tailwindcss'] = resolveVersion(pkg) - json.pnpm.overrides['@tailwindcss/cli>tailwindcss'] = resolveVersion(pkg) - json.pnpm.overrides['@tailwindcss/postcss>tailwindcss'] = resolveVersion(pkg) - json.pnpm.overrides['@tailwindcss/vite>tailwindcss'] = resolveVersion(pkg) - json.pnpm.overrides['@tailwindcss/webpack>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/node>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/upgrade>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/cli>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/postcss>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/vite>tailwindcss'] = resolveVersion(pkg) + workspace.overrides['@tailwindcss/webpack>tailwindcss'] = resolveVersion(pkg) } else { - json.pnpm.overrides[pkg] = resolveVersion(pkg) + workspace.overrides[pkg] = resolveVersion(pkg) } } - return JSON.stringify(json, null, 2) + return Yaml.stringify(workspace) } function resolveVersion(dependency: string) { diff --git a/integrations/vite/nuxt.test.ts b/integrations/vite/nuxt.test.ts index 110b1d17365f..20f367020455 100644 --- a/integrations/vite/nuxt.test.ts +++ b/integrations/vite/nuxt.test.ts @@ -8,6 +8,7 @@ import { retryAssertion, test, ts, + yaml, } from '../utils' const SETUP = { @@ -21,14 +22,14 @@ const SETUP = { "nitropack": "2.11.0", "tailwindcss": "workspace:^", "vue": "latest" - }, - "pnpm": { - "overrides": { - "nuxi": "3.28.0" - } } } `, + 'pnpm-workspace.yaml': yaml` + # + overrides: + nuxi: 3.28.0 + `, 'nuxt.config.ts': ts` import tailwindcss from '@tailwindcss/vite' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5bd878f86e58..e7ddf339f4df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -193,6 +193,9 @@ importers: source-map-js: specifier: ^1.2.1 version: 1.2.1 + yaml: + specifier: ^2.6.0 + version: 2.6.0 packages/@tailwindcss-browser: devDependencies: From 565e50ca9c46f29e9baa3f7ed843bf1465d28f9a Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 14:19:46 +0200 Subject: [PATCH 12/13] use the workspace We do need the workspace for the overrides to work --- integrations/cli/index.test.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/integrations/cli/index.test.ts b/integrations/cli/index.test.ts index 409a9de7cd41..c1ad011d6538 100644 --- a/integrations/cli/index.test.ts +++ b/integrations/cli/index.test.ts @@ -565,6 +565,12 @@ describe.each([ // Only ignore files called ignore-*.html in the actual git repo 'home/project/.gitignore': 'ignore-*.html', + 'pnpm-workspace.yaml': yaml` + # + packages: + - home/project + `, + 'home/project/package.json': json` { "type": "module", @@ -596,7 +602,7 @@ describe.each([ installDependencies: false, }, async ({ fs, root, exec }) => { - await exec(`pnpm install --ignore-workspace`, { + await exec(`pnpm install`, { cwd: path.join(root, 'home/project'), }) From 0ca8023586333a90899670ff1e873729d718e33e Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 May 2026 14:25:25 +0200 Subject: [PATCH 13/13] merge `allowBuilds` from the test --- integrations/utils.ts | 5 ++++- integrations/vite/index.test.ts | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/integrations/utils.ts b/integrations/utils.ts index e85658e3c179..217f8a9a4797 100644 --- a/integrations/utils.ts +++ b/integrations/utils.ts @@ -515,7 +515,10 @@ async function overwriteVersionsInPackageJson(content: string): Promise function overwriteVersionsInPnpmWorkspace(content: string): string { let workspace = content.trim() === '' ? {} : Yaml.parse(content) - workspace.allowBuilds = ROOT_PNPM_WORKSPACE.allowBuilds + workspace.allowBuilds = { + ...ROOT_PNPM_WORKSPACE.allowBuilds, + ...workspace.allowBuilds, + } workspace.overrides ||= {} // Inject transitive dependency overwrite. This is necessary because diff --git a/integrations/vite/index.test.ts b/integrations/vite/index.test.ts index 4c936a2a23af..9fdf01c329c9 100644 --- a/integrations/vite/index.test.ts +++ b/integrations/vite/index.test.ts @@ -1075,6 +1075,11 @@ test( } } `, + 'pnpm-workspace.yaml': yaml` + # + allowBuilds: + es5-ext: true + `, 'vite.config.ts': ts` import tailwindcss from '@tailwindcss/vite' import { defineConfig } from 'vite'