From 585e2021fc92511a08168e75db327b036dabd1de Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 30 Oct 2026 11:10:38 +0000 Subject: [PATCH 01/28] install npmeta --- package.json | 1 + pnpm-lock.yaml | 9 +++++++++ pnpm-workspace.yaml | 1 + 3 files changed, 11 insertions(+) diff --git a/package.json b/package.json index 6dcc7e8801..cdb9e36036 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "ipaddr.js": "2.5.0", "marked": "18.0.9", "module-replacements": "3.3.0", + "npmeta": "0.1.0", "nuxt": "4.5.2", "nuxt-og-image": "6.7.8", "ofetch": "1.5.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d870ccfdeb..25a3e0703c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -216,6 +216,9 @@ importers: module-replacements: specifier: 3.3.0 version: 3.3.0 + npmeta: + specifier: 0.1.0 + version: 0.1.0 nuxt: specifier: 4.5.2 version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7)(@babel/plugin-syntax-typescript@7.29.7)(@oxc-project/types@0.154.0)(@parcel/watcher@2.5.6)(@rollup/plugin-babel@6.1.0)(@types/node@24.13.3)(@upstash/redis@1.38.2)(@vitejs/devtools-kit@0.4.10)(@voidzero-dev/vite-plus-core@1.3.0)(@volar/typescript@2.4.28)(@vue/compiler-sfc@3.5.42)(@vue/language-core@3.3.13)(better-sqlite3@13.0.3)(cac@7.0.0)(confbox@0.2.4)(db0@0.3.4)(dotenv@17.4.2)(encoding@0.1.13)(esbuild@0.28.1)(eslint@10.6.0)(giget@3.3.0)(ioredis@5.11.1)(lightningcss@1.33.0)(magicast@0.5.5)(optionator@0.9.4)(oxc-parser@0.144.0)(oxlint@1.88.0)(rolldown@1.2.4)(rollup-plugin-visualizer@7.0.1)(rollup@4.62.2)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.48.0)(typescript-native-bridge@6.0.3-bridge.13.tsgo.7.0.2)(vue-tsc@3.3.10)(webpack@5.108.4)(yaml@2.9.1) @@ -8530,6 +8533,10 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} + npmeta@0.1.0: + resolution: {integrity: sha512-hHcFtHvbXV7kuffxUDZAVaMhQd5HKmDbBFx6HKK5pUju1Miv90uYSDTSO3bl5at3IlNa1ZiMriKfnaGk7lZAAA==} + engines: {node: '>=22'} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -20604,6 +20611,8 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 + npmeta@0.1.0: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 604576184f..7df3db102b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -51,6 +51,7 @@ minimumReleaseAgeExclude: - '@nuxt/schema@4.5.2' - '@nuxt/vite-builder@4.5.2' - vue-data-ui@3.28.7 + - 'npmeta@0.1.0' minimumReleaseAgeExcludePrune: true From 875dd375d8325e6b0e2bcc4dbd997facec7e2df9 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 30 Oct 2026 11:13:55 +0000 Subject: [PATCH 02/28] chore: use `isBinaryOnlyPackage` from `npmeta` --- app/composables/usePackageComparison.ts | 1 + app/pages/package/[[org]]/[name].vue | 1 + shared/utils/binary-detection.ts | 23 ------- test/unit/app/utils/run-command.spec.ts | 52 +-------------- .../shared/utils/binary-detection.spec.ts | 65 +------------------ 5 files changed, 4 insertions(+), 138 deletions(-) diff --git a/app/composables/usePackageComparison.ts b/app/composables/usePackageComparison.ts index a26e1de515..9cb7664974 100644 --- a/app/composables/usePackageComparison.ts +++ b/app/composables/usePackageComparison.ts @@ -1,3 +1,4 @@ +import { isBinaryOnlyPackage } from 'npmeta' import { parsePackageSpec } from '#shared/utils/parse-package-param' import { getDependencyCount } from '~/utils/npm/dependency-count' diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index 0ff0a66b2c..eea3b5c6f1 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -1,4 +1,5 @@