From 8304d7110e83d2a4541203c61639458c40c448fd Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 11 Sep 2025 13:36:30 +0200 Subject: [PATCH 1/7] render Lightning CSS warnings --- packages/@tailwindcss-node/package.json | 1 + packages/@tailwindcss-node/src/optimize.ts | 44 ++++++++++++++++++++++ pnpm-lock.yaml | 18 ++------- 3 files changed, 48 insertions(+), 15 deletions(-) diff --git a/packages/@tailwindcss-node/package.json b/packages/@tailwindcss-node/package.json index 8f9c2f44e9fa..aa968de1aec2 100644 --- a/packages/@tailwindcss-node/package.json +++ b/packages/@tailwindcss-node/package.json @@ -42,6 +42,7 @@ "jiti": "^2.5.1", "lightningcss": "catalog:", "magic-string": "^0.30.18", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1", "tailwindcss": "workspace:*" } diff --git a/packages/@tailwindcss-node/src/optimize.ts b/packages/@tailwindcss-node/src/optimize.ts index ff1fd8364332..7e7f838ad240 100644 --- a/packages/@tailwindcss-node/src/optimize.ts +++ b/packages/@tailwindcss-node/src/optimize.ts @@ -1,6 +1,7 @@ import remapping from '@jridgewell/remapping' import { Features, transform } from 'lightningcss' import MagicString from 'magic-string' +import pc from 'picocolors' export interface OptimizeOptions { /** @@ -60,6 +61,49 @@ export function optimize( let result = optimize(Buffer.from(input), map) map = result.map?.toString() + // Because of `errorRecovery: true`, there could be warnings, so let's let the + // user know about them. + if (process.env.NODE_ENV !== 'test' && result.warnings.length > 0) { + let lines = input.split('\n') + + let output = [ + `Found ${result.warnings.length} ${result.warnings.length === 1 ? 'warning' : 'warnings'} while optimizing generated CSS:`, + ] + + for (let [idx, warning] of result.warnings.entries()) { + output.push('') + if (result.warnings.length > 1) { + output.push(`Issue #${idx + 1}:`) + } + + let context = 2 + + let start = Math.max(0, warning.loc.line - context - 1) + let end = Math.min(lines.length, warning.loc.line + context) + let gutterWidth = (warning.loc.line + context).toString().length + + let snippet = lines.slice(start, end).map((line, idx) => { + if (start + idx + 1 === warning.loc.line) { + return `${pc.dim(`${(start + idx + 1).toString().padStart(gutterWidth, ' ')} \u2502`)} ${line}` + } else { + return pc.dim(`${(start + idx + 1).toString().padStart(gutterWidth, ' ')} \u2502 ${line}`) + } + }) + + snippet.splice( + warning.loc.line - start, + 0, + `${' '.repeat(gutterWidth)} ${pc.dim('\u2506')}${' '.repeat(warning.loc.column - 1)} ${pc.yellow(`${pc.dim('^--')} ${warning.message}`)}`, + `${' '.repeat(gutterWidth)} ${pc.dim('\u2506')}`, + ) + + output.push(...snippet) + } + output.push('') + + console.warn(output.join('\n')) + } + result = optimize(result.code, map) map = result.map?.toString() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13458e7a73b8..c4309c6dac7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -252,6 +252,9 @@ importers: magic-string: specifier: ^0.30.18 version: 0.30.18 + picocolors: + specifier: ^1.1.1 + version: 1.1.1 source-map-js: specifier: ^1.2.1 version: 1.2.1 @@ -1993,7 +1996,6 @@ packages: '@parcel/watcher-darwin-arm64@2.5.1': resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} engines: {node: '>= 10.0.0'} - cpu: [arm64] os: [darwin] '@parcel/watcher-darwin-x64@2.5.0': @@ -2005,7 +2007,6 @@ packages: '@parcel/watcher-darwin-x64@2.5.1': resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} engines: {node: '>= 10.0.0'} - cpu: [x64] os: [darwin] '@parcel/watcher-freebsd-x64@2.5.0': @@ -2053,7 +2054,6 @@ packages: '@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] '@parcel/watcher-linux-arm64-musl@2.5.0': @@ -2065,7 +2065,6 @@ packages: '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} - cpu: [arm64] os: [linux] '@parcel/watcher-linux-x64-glibc@2.5.0': @@ -2077,7 +2076,6 @@ packages: '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} - cpu: [x64] os: [linux] '@parcel/watcher-linux-x64-musl@2.5.0': @@ -2089,7 +2087,6 @@ packages: '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} - cpu: [x64] os: [linux] '@parcel/watcher-wasm@2.5.0': @@ -2131,7 +2128,6 @@ packages: '@parcel/watcher-win32-x64@2.5.1': resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} engines: {node: '>= 10.0.0'} - cpu: [x64] os: [win32] '@parcel/watcher@2.5.0': @@ -2659,7 +2655,6 @@ packages: bun@1.2.20: resolution: {integrity: sha512-1ZGQynT+jPOHLY4IfzSubjbWcXsY2Z+irhW5D8RKC0wQ6KG4MvtgniAYQbSFYINGg8Wb2ydx+WgAG2BdhngAfw==} - cpu: [arm64, x64, aarch64] os: [darwin, linux, win32] hasBin: true @@ -3512,13 +3507,11 @@ packages: lightningcss-darwin-arm64@1.30.1: resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} - cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.1: resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} - cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.30.1: @@ -3536,25 +3529,21 @@ packages: lightningcss-linux-arm64-gnu@1.30.1: resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} - cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.1: resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} - cpu: [arm64] os: [linux] lightningcss-linux-x64-gnu@1.30.1: resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} - cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.1: resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} - cpu: [x64] os: [linux] lightningcss-win32-arm64-msvc@1.30.1: @@ -3566,7 +3555,6 @@ packages: lightningcss-win32-x64-msvc@1.30.1: resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} - cpu: [x64] os: [win32] lightningcss@1.30.1: From 9e2f595d9a0128586395ad0d6ec6a624ba1c6ffd Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 11 Sep 2025 14:37:49 +0200 Subject: [PATCH 2/7] replace `process.env.NODE_ENV` at build time --- packages/@tailwindcss-node/tsup.config.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/@tailwindcss-node/tsup.config.ts b/packages/@tailwindcss-node/tsup.config.ts index 0f2ac5855b19..3f2d184d54be 100644 --- a/packages/@tailwindcss-node/tsup.config.ts +++ b/packages/@tailwindcss-node/tsup.config.ts @@ -6,23 +6,35 @@ export default defineConfig([ minify: true, dts: true, entry: ['src/index.cts'], + define: { + 'process.env.NODE_ENV': '"production"', + }, }, { format: ['esm'], minify: true, dts: true, entry: ['src/index.ts'], + define: { + 'process.env.NODE_ENV': '"production"', + }, }, { format: ['esm'], minify: true, dts: true, entry: ['src/esm-cache.loader.mts'], + define: { + 'process.env.NODE_ENV': '"production"', + }, }, { format: ['cjs'], minify: true, dts: true, entry: ['src/require-cache.cts'], + define: { + 'process.env.NODE_ENV': '"production"', + }, }, ]) From f289ebb5f9907f445d6359ef4ce6df08b0cd8867 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 12 Sep 2025 11:22:04 +0200 Subject: [PATCH 3/7] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4640ea227e95..2b746da0148b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Do not generate `grid-row` utilities when configuring `grid-row-start` or `grid-row-end` ([#18907](https://github.com/tailwindlabs/tailwindcss/pull/18907)) - Prevent duplicate CSS when overwriting a static utility with a theme key ([#18056](https://github.com/tailwindlabs/tailwindcss/pull/18056)) - Do not migrate `variant = 'outline'` during upgrades ([#18922](https://github.com/tailwindlabs/tailwindcss/pull/18922)) +- Show Lightning CSS warnings (if any) when optimizing/minifying ([#18918](https://github.com/tailwindlabs/tailwindcss/pull/18918)) ## [4.1.13] - 2025-09-03 From e3234bfedfa265a157c27c437c1e8e2a76cf7f15 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 12 Sep 2025 11:35:13 +0200 Subject: [PATCH 4/7] drop line numbers We can't properly map them to the input, so I think that he line numbers will only be more confusing --- packages/@tailwindcss-node/src/optimize.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/@tailwindcss-node/src/optimize.ts b/packages/@tailwindcss-node/src/optimize.ts index 7e7f838ad240..9a65f799b182 100644 --- a/packages/@tailwindcss-node/src/optimize.ts +++ b/packages/@tailwindcss-node/src/optimize.ts @@ -80,21 +80,20 @@ export function optimize( let start = Math.max(0, warning.loc.line - context - 1) let end = Math.min(lines.length, warning.loc.line + context) - let gutterWidth = (warning.loc.line + context).toString().length let snippet = lines.slice(start, end).map((line, idx) => { if (start + idx + 1 === warning.loc.line) { - return `${pc.dim(`${(start + idx + 1).toString().padStart(gutterWidth, ' ')} \u2502`)} ${line}` + return `${pc.dim(`\u2502`)} ${line}` } else { - return pc.dim(`${(start + idx + 1).toString().padStart(gutterWidth, ' ')} \u2502 ${line}`) + return pc.dim(`\u2502 ${line}`) } }) snippet.splice( warning.loc.line - start, 0, - `${' '.repeat(gutterWidth)} ${pc.dim('\u2506')}${' '.repeat(warning.loc.column - 1)} ${pc.yellow(`${pc.dim('^--')} ${warning.message}`)}`, - `${' '.repeat(gutterWidth)} ${pc.dim('\u2506')}`, + `${pc.dim('\u2506')}${' '.repeat(warning.loc.column - 1)} ${pc.yellow(`${pc.dim('^--')} ${warning.message}`)}`, + `${pc.dim('\u2506')}`, ) output.push(...snippet) From 1f7c65e7836c6d987441653dc2ace6fcb0edee8d Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 12 Sep 2025 12:12:13 +0200 Subject: [PATCH 5/7] remove picocolors --- packages/@tailwindcss-node/package.json | 1 - pnpm-lock.yaml | 40 +++++-------------------- 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/packages/@tailwindcss-node/package.json b/packages/@tailwindcss-node/package.json index aa968de1aec2..8f9c2f44e9fa 100644 --- a/packages/@tailwindcss-node/package.json +++ b/packages/@tailwindcss-node/package.json @@ -42,7 +42,6 @@ "jiti": "^2.5.1", "lightningcss": "catalog:", "magic-string": "^0.30.18", - "picocolors": "^1.1.1", "source-map-js": "^1.2.1", "tailwindcss": "workspace:*" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4309c6dac7c..80e6174a8e6e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,39 +6,9 @@ settings: catalogs: default: - '@types/node': - specifier: ^20.19.0 - version: 20.19.1 lightningcss: specifier: 1.30.1 version: 1.30.1 - lightningcss-darwin-arm64: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-darwin-x64: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-linux-arm64-gnu: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-linux-arm64-musl: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-linux-x64-gnu: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-linux-x64-musl: - specifier: 1.30.1 - version: 1.30.1 - lightningcss-win32-x64-msvc: - specifier: 1.30.1 - version: 1.30.1 - prettier: - specifier: 3.5.0 - version: 3.5.0 - vite: - specifier: ^7.0.0 - version: 7.0.0 patchedDependencies: '@parcel/watcher@2.5.1': @@ -252,9 +222,6 @@ importers: magic-string: specifier: ^0.30.18 version: 0.30.18 - picocolors: - specifier: ^1.1.1 - version: 1.1.1 source-map-js: specifier: ^1.2.1 version: 1.2.1 @@ -3507,11 +3474,13 @@ packages: lightningcss-darwin-arm64@1.30.1: resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} + cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.1: resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} + cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.30.1: @@ -3529,21 +3498,25 @@ packages: lightningcss-linux-arm64-gnu@1.30.1: resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} + cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.1: resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} + cpu: [arm64] os: [linux] lightningcss-linux-x64-gnu@1.30.1: resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} + cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.1: resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} + cpu: [x64] os: [linux] lightningcss-win32-arm64-msvc@1.30.1: @@ -3555,6 +3528,7 @@ packages: lightningcss-win32-x64-msvc@1.30.1: resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} + cpu: [x64] os: [win32] lightningcss@1.30.1: From a7529bbf39c8050eb04dd602ddfe79341db9b0ac Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 12 Sep 2025 12:12:22 +0200 Subject: [PATCH 6/7] inline `dim` / `yellow` --- packages/@tailwindcss-node/src/optimize.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/@tailwindcss-node/src/optimize.ts b/packages/@tailwindcss-node/src/optimize.ts index 9a65f799b182..0fc75210274b 100644 --- a/packages/@tailwindcss-node/src/optimize.ts +++ b/packages/@tailwindcss-node/src/optimize.ts @@ -1,7 +1,6 @@ import remapping from '@jridgewell/remapping' import { Features, transform } from 'lightningcss' import MagicString from 'magic-string' -import pc from 'picocolors' export interface OptimizeOptions { /** @@ -83,17 +82,17 @@ export function optimize( let snippet = lines.slice(start, end).map((line, idx) => { if (start + idx + 1 === warning.loc.line) { - return `${pc.dim(`\u2502`)} ${line}` + return `${dim(`\u2502`)} ${line}` } else { - return pc.dim(`\u2502 ${line}`) + return dim(`\u2502 ${line}`) } }) snippet.splice( warning.loc.line - start, 0, - `${pc.dim('\u2506')}${' '.repeat(warning.loc.column - 1)} ${pc.yellow(`${pc.dim('^--')} ${warning.message}`)}`, - `${pc.dim('\u2506')}`, + `${dim('\u2506')}${' '.repeat(warning.loc.column - 1)} ${yellow(`${dim('^--')} ${warning.message}`)}`, + `${dim('\u2506')}`, ) output.push(...snippet) @@ -131,3 +130,11 @@ export function optimize( map, } } + +function dim(str: string) { + return `\x1B[2m${str}\x1B[22m` +} + +function yellow(str: string) { + return `\x1B[33m${str}\x1B[39m` +} From 76f0a6e8d996e767ee63520485a691f25fc25171 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 12 Sep 2025 12:22:27 +0200 Subject: [PATCH 7/7] reset pnpm-lock.yaml --- pnpm-lock.yaml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 80e6174a8e6e..13458e7a73b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9 +6,39 @@ settings: catalogs: default: + '@types/node': + specifier: ^20.19.0 + version: 20.19.1 lightningcss: specifier: 1.30.1 version: 1.30.1 + lightningcss-darwin-arm64: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-darwin-x64: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-linux-arm64-gnu: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-linux-arm64-musl: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-linux-x64-gnu: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-linux-x64-musl: + specifier: 1.30.1 + version: 1.30.1 + lightningcss-win32-x64-msvc: + specifier: 1.30.1 + version: 1.30.1 + prettier: + specifier: 3.5.0 + version: 3.5.0 + vite: + specifier: ^7.0.0 + version: 7.0.0 patchedDependencies: '@parcel/watcher@2.5.1': @@ -1963,6 +1993,7 @@ packages: '@parcel/watcher-darwin-arm64@2.5.1': resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} engines: {node: '>= 10.0.0'} + cpu: [arm64] os: [darwin] '@parcel/watcher-darwin-x64@2.5.0': @@ -1974,6 +2005,7 @@ packages: '@parcel/watcher-darwin-x64@2.5.1': resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} engines: {node: '>= 10.0.0'} + cpu: [x64] os: [darwin] '@parcel/watcher-freebsd-x64@2.5.0': @@ -2021,6 +2053,7 @@ packages: '@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] '@parcel/watcher-linux-arm64-musl@2.5.0': @@ -2032,6 +2065,7 @@ packages: '@parcel/watcher-linux-arm64-musl@2.5.1': resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} engines: {node: '>= 10.0.0'} + cpu: [arm64] os: [linux] '@parcel/watcher-linux-x64-glibc@2.5.0': @@ -2043,6 +2077,7 @@ packages: '@parcel/watcher-linux-x64-glibc@2.5.1': resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} engines: {node: '>= 10.0.0'} + cpu: [x64] os: [linux] '@parcel/watcher-linux-x64-musl@2.5.0': @@ -2054,6 +2089,7 @@ packages: '@parcel/watcher-linux-x64-musl@2.5.1': resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} engines: {node: '>= 10.0.0'} + cpu: [x64] os: [linux] '@parcel/watcher-wasm@2.5.0': @@ -2095,6 +2131,7 @@ packages: '@parcel/watcher-win32-x64@2.5.1': resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} engines: {node: '>= 10.0.0'} + cpu: [x64] os: [win32] '@parcel/watcher@2.5.0': @@ -2622,6 +2659,7 @@ packages: bun@1.2.20: resolution: {integrity: sha512-1ZGQynT+jPOHLY4IfzSubjbWcXsY2Z+irhW5D8RKC0wQ6KG4MvtgniAYQbSFYINGg8Wb2ydx+WgAG2BdhngAfw==} + cpu: [arm64, x64, aarch64] os: [darwin, linux, win32] hasBin: true