diff --git a/CHANGELOG.md b/CHANGELOG.md index a0bed774ea42..2b4eb9504083 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- Remove the `postinstall` script from oxide ([#19149])(https://github.com/tailwindlabs/tailwindcss/pull/19149) + ### Added - _Experimental_: Add `@container-size` utility ([#18901](https://github.com/tailwindlabs/tailwindcss/pull/18901)) diff --git a/crates/node/package.json b/crates/node/package.json index 97fefb26efd5..d6ed21faa69a 100644 --- a/crates/node/package.json +++ b/crates/node/package.json @@ -32,10 +32,6 @@ } }, "license": "MIT", - "dependencies": { - "tar": "^7.5.1", - "detect-libc": "^2.0.4" - }, "devDependencies": { "@napi-rs/cli": "^3.3.0", "@napi-rs/wasm-runtime": "^1.0.7", @@ -46,8 +42,7 @@ }, "files": [ "index.js", - "index.d.ts", - "scripts/install.js" + "index.d.ts" ], "publishConfig": { "provenance": true, @@ -61,8 +56,7 @@ "postbuild:wasm": "node ./scripts/move-artifacts.mjs", "dev": "cargo watch --quiet --shell 'npm run build'", "build:debug": "napi build --platform", - "version": "napi version", - "postinstall": "node ./scripts/install.js" + "version": "napi version" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "workspace:*", diff --git a/crates/node/scripts/install.js b/crates/node/scripts/install.js deleted file mode 100644 index f9cefe01c7c9..000000000000 --- a/crates/node/scripts/install.js +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/env node - -/** - * @tailwindcss/oxide postinstall script - * - * This script ensures that the correct binary for the current platform and - * architecture is downloaded and available. - */ - -const fs = require('fs') -const path = require('path') -const https = require('https') -const { extract } = require('tar') -const packageJson = require('../package.json') -const detectLibc = require('detect-libc') - -const version = packageJson.version - -function getPlatformPackageName() { - let platform = process.platform - let arch = process.arch - - let libc = '' - if (platform === 'linux') { - libc = detectLibc.isNonGlibcLinuxSync() ? 'musl' : 'gnu' - } - - // Map to our package naming conventions - switch (platform) { - case 'darwin': - return arch === 'arm64' ? '@tailwindcss/oxide-darwin-arm64' : '@tailwindcss/oxide-darwin-x64' - case 'win32': - if (arch === 'arm64') return '@tailwindcss/oxide-win32-arm64-msvc' - if (arch === 'ia32') return '@tailwindcss/oxide-win32-ia32-msvc' - return '@tailwindcss/oxide-win32-x64-msvc' - case 'linux': - if (arch === 'x64') { - return libc === 'musl' - ? '@tailwindcss/oxide-linux-x64-musl' - : '@tailwindcss/oxide-linux-x64-gnu' - } else if (arch === 'arm64') { - return libc === 'musl' - ? '@tailwindcss/oxide-linux-arm64-musl' - : '@tailwindcss/oxide-linux-arm64-gnu' - } else if (arch === 'arm') { - return '@tailwindcss/oxide-linux-arm-gnueabihf' - } - break - case 'freebsd': - return '@tailwindcss/oxide-freebsd-x64' - case 'android': - return '@tailwindcss/oxide-android-arm64' - default: - return '@tailwindcss/oxide-wasm32-wasi' - } -} - -function isPackageAvailable(packageName) { - try { - require.resolve(packageName) - return true - } catch (e) { - return false - } -} - -// Extract all files from a tarball to a destination directory -async function extractTarball(tarballStream, destDir) { - if (!fs.existsSync(destDir)) { - fs.mkdirSync(destDir, { recursive: true }) - } - - return new Promise((resolve, reject) => { - tarballStream - .pipe(extract({ cwd: destDir, strip: 1 })) - .on('error', (err) => reject(err)) - .on('end', () => resolve()) - }) -} - -async function downloadAndExtractBinary(packageName) { - let tarballUrl = `https://registry.npmjs.org/${packageName}/-/${packageName.replace('@tailwindcss/', '')}-${version}.tgz` - console.log(`Downloading ${tarballUrl}...`) - - return new Promise((resolve) => { - https - .get(tarballUrl, (response) => { - if (response.statusCode === 302 || response.statusCode === 301) { - // Handle redirects - https.get(response.headers.location, handleResponse).on('error', (err) => { - console.error('Download error:', err) - resolve() - }) - return - } - - handleResponse(response) - - async function handleResponse(response) { - try { - if (response.statusCode !== 200) { - throw new Error(`Download failed with status code: ${response.statusCode}`) - } - - await extractTarball( - response, - path.join(__dirname, '..', 'node_modules', ...packageName.split('/')), - ) - console.log(`Successfully downloaded and installed ${packageName}`) - } catch (error) { - console.error('Error during extraction:', error) - resolve() - } finally { - resolve() - } - } - }) - .on('error', (err) => { - console.error('Download error:', err) - resolve() - }) - }) -} - -async function main() { - // Don't run this script in the package source - try { - if (fs.existsSync(path.join(__dirname, '..', 'build.rs'))) { - return - } - - let packageName = getPlatformPackageName() - if (!packageName) return - if (isPackageAvailable(packageName)) return - - await downloadAndExtractBinary(packageName) - } catch (error) { - console.error(error) - return - } -} - -main() diff --git a/integrations/oxide/postinstall.test.ts b/integrations/oxide/postinstall.test.ts deleted file mode 100644 index 70683c82e525..000000000000 --- a/integrations/oxide/postinstall.test.ts +++ /dev/null @@ -1,73 +0,0 @@ -import fs from 'node:fs/promises' -import path from 'node:path' -import { js, json, test } from '../utils' - -test( - '@tailwindcss/oxide will fail when architecture-specific packages are missing', - { - fs: { - 'package.json': json` - { - "dependencies": { - "@tailwindcss/oxide": "workspace:^" - } - } - `, - 'test.js': js` - try { - let Scanner = require('@tailwindcss/oxide') - console.log('SUCCESS: @tailwindcss/oxide loaded successfully', Scanner) - } catch (error) { - console.log('FAILURE: Failed to load @tailwindcss/oxide:', error.message) - } - `, - }, - }, - async ({ exec, root, expect, fs }) => { - await removePlatformSpecificExtensions(path.join(root, 'node_modules')) - - // Get last published version - let version = (await exec('npm show @tailwindcss/oxide version')).trim() - // Ensure that we don't depend on a specific version number in the download - // script in case we bump the version number in the repository and CI is run - // before a release - let packageJson = JSON.parse(await fs.read('node_modules/@tailwindcss/oxide/package.json')) - packageJson.version = version - await fs.write( - 'node_modules/@tailwindcss/oxide/package.json', - JSON.stringify(packageJson, null, 2), - ) - - let opts = { - // Ensure that we don't include any node paths from the test runner - env: { NODE_PATH: '' }, - } - - expect(await exec('node test.js', opts)).toMatch(/FAILURE/) - - // Now run the post-install script - await exec('node node_modules/@tailwindcss/oxide/scripts/install.js', opts) - - expect(await exec('node test.js', opts)).toMatch(/SUCCESS/) - }, -) - -async function removePlatformSpecificExtensions(directory: string) { - let entries = await fs.readdir(directory, { withFileTypes: true }) - - for (let entry of entries) { - let fullPath = path.join(directory, entry.name) - - if (entry.name.startsWith('oxide-')) { - if (entry.isSymbolicLink()) { - await fs.unlink(fullPath) - } else if (entry.isFile()) { - await fs.unlink(fullPath) - } else if (entry.isDirectory()) { - await fs.rm(fullPath, { recursive: true, force: true }) - } - } else if (entry.isDirectory()) { - await removePlatformSpecificExtensions(fullPath) - } - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26d724e5daa6..d59447b45c79 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -87,13 +87,6 @@ importers: version: 2.0.5(@types/node@20.19.1)(lightningcss@1.30.2(patch_hash=tzyxy3asfxcqc7ihrooumyi5fm))(terser@5.31.6) crates/node: - dependencies: - detect-libc: - specifier: ^2.0.4 - version: 2.0.4 - tar: - specifier: ^7.5.1 - version: 7.5.1 optionalDependencies: '@tailwindcss/oxide-android-arm64': specifier: workspace:* @@ -1438,10 +1431,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} @@ -2726,10 +2715,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -3541,6 +3526,7 @@ packages: lightningcss-darwin-arm64@1.30.2: resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} engines: {node: '>= 12.0.0'} + cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.2: @@ -3594,6 +3580,7 @@ packages: lightningcss-win32-x64-msvc@1.30.2: resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} engines: {node: '>= 12.0.0'} + cpu: [x64] os: [win32] lightningcss@1.30.2: @@ -3685,10 +3672,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} - mlly@1.7.3: resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} @@ -4287,10 +4270,6 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar@7.5.1: - resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} - engines: {node: '>=18'} - terser@5.31.6: resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} engines: {node: '>=10'} @@ -4667,10 +4646,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - yaml@2.6.0: resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} @@ -5313,10 +5288,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - '@jridgewell/gen-mapping@0.3.12': dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -6499,8 +6470,6 @@ snapshots: dependencies: readdirp: 4.1.1 - chownr@3.0.0: {} - citty@0.1.6: dependencies: consola: 3.2.3 @@ -6849,8 +6818,8 @@ snapshots: '@typescript-eslint/parser': 8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4) eslint: 9.37.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)) eslint-plugin-jsx-a11y: 6.10.1(eslint@9.37.0(jiti@2.6.0)) eslint-plugin-react: 7.37.2(eslint@9.37.0(jiti@2.6.0)) eslint-plugin-react-hooks: 5.0.0(eslint@9.37.0(jiti@2.6.0)) @@ -6889,19 +6858,19 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 enhanced-resolve: 5.18.3 eslint: 9.37.0(jiti@2.6.0) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) fast-glob: 3.3.3 get-tsconfig: 4.10.0 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -6927,14 +6896,14 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4) eslint: 9.37.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)) transitivePeerDependencies: - supports-color @@ -6949,7 +6918,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -6960,7 +6929,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.37.0(jiti@2.6.0) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.11.0(eslint@9.37.0(jiti@2.6.0))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.37.0(jiti@2.6.0)))(eslint@9.37.0(jiti@2.6.0)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -7668,10 +7637,6 @@ snapshots: minipass@7.1.2: {} - minizlib@3.1.0: - dependencies: - minipass: 7.1.2 - mlly@1.7.3: dependencies: acorn: 8.14.0 @@ -8340,14 +8305,6 @@ snapshots: tapable@2.2.1: {} - tar@7.5.1: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.1.0 - yallist: 5.0.0 - terser@5.31.6: dependencies: '@jridgewell/source-map': 0.3.6 @@ -8739,8 +8696,6 @@ snapshots: yallist@3.1.1: {} - yallist@5.0.0: {} - yaml@2.6.0: {} yocto-queue@0.1.0: {}