From 713d4531f3896e5ad172bc56a1573a555b605c67 Mon Sep 17 00:00:00 2001 From: jdalton Date: Sun, 8 Jun 2025 12:35:53 -0400 Subject: [PATCH] Make the purl object returned by getPurlObject have a PURL_Type --- src/commands/fix/npm-fix.mts | 3 +-- src/commands/fix/pnpm-fix.mts | 3 +-- src/utils/purl.mts | 20 +++++++++++++++++--- src/utils/socket-package-alert.mts | 6 +----- src/utils/socket-url.mts | 6 +----- 5 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/commands/fix/npm-fix.mts b/src/commands/fix/npm-fix.mts index b6ed16246..db4bd0ef3 100644 --- a/src/commands/fix/npm-fix.mts +++ b/src/commands/fix/npm-fix.mts @@ -64,7 +64,6 @@ import type { NodeClass, } from '../../shadow/npm/arborist/types.mts' import type { CResult } from '../../types.mts' -import type { PURL_Type } from '../../utils/alert/artifact.mts' import type { EnvDetails } from '../../utils/package-environment.mts' import type { RangeStyle } from '../../utils/semver.mts' import type { PackageJson } from '@socketsecurity/registry/lib/packages' @@ -252,7 +251,7 @@ export async function npmFix( logger.indent() spinner?.indent() - if (getManifestData(partialPurlObj.type as PURL_Type, name)) { + if (getManifestData(partialPurlObj.type, name)) { debugFn(`found: Socket Optimize variant for ${name}`) } // eslint-disable-next-line no-await-in-loop diff --git a/src/commands/fix/pnpm-fix.mts b/src/commands/fix/pnpm-fix.mts index 26d257ac3..e2dbb3061 100644 --- a/src/commands/fix/pnpm-fix.mts +++ b/src/commands/fix/pnpm-fix.mts @@ -70,7 +70,6 @@ import { idToPurl } from '../../utils/spec.mts' import type { SocketBranchParseResult } from './git.mts' import type { NodeClass } from '../../shadow/npm/arborist/types.mts' import type { CResult, StringKeyValueObject } from '../../types.mts' -import type { PURL_Type } from '../../utils/alert/artifact.mts' import type { EnvDetails } from '../../utils/package-environment.mts' import type { RangeStyle } from '../../utils/semver.mts' import type { PackageJson } from '@socketsecurity/registry/lib/packages' @@ -327,7 +326,7 @@ export async function pnpmFix( logger.indent() spinner?.indent() - if (getManifestData(partialPurlObj.type as PURL_Type, name)) { + if (getManifestData(partialPurlObj.type, name)) { debugFn(`found: Socket Optimize variant for ${name}`) } // eslint-disable-next-line no-await-in-loop diff --git a/src/utils/purl.mts b/src/utils/purl.mts index 9f55753d9..47501c1e8 100644 --- a/src/utils/purl.mts +++ b/src/utils/purl.mts @@ -1,7 +1,21 @@ import { PackageURL } from '@socketregistry/packageurl-js' -import type { SocketArtifact } from './alert/artifact.mts' +import type { PURL_Type, SocketArtifact } from './alert/artifact.mts' -export function getPurlObject(purl: string | PackageURL | SocketArtifact) { - return typeof purl === 'string' ? PackageURL.fromString(purl) : purl +export function getPurlObject(purl: string): PackageURL & { type: PURL_Type } +export function getPurlObject( + purl: PackageURL, +): PackageURL & { type: PURL_Type } +export function getPurlObject( + purl: SocketArtifact, +): SocketArtifact & { type: PURL_Type } +export function getPurlObject( + purl: string | PackageURL | SocketArtifact, +): (PackageURL | SocketArtifact) & { type: PURL_Type } +export function getPurlObject( + purl: string | PackageURL | SocketArtifact, +): (PackageURL | SocketArtifact) & { type: PURL_Type } { + return typeof purl === 'string' + ? (PackageURL.fromString(purl) as PackageURL & { type: PURL_Type }) + : (purl as (PackageURL | SocketArtifact) & { type: PURL_Type }) } diff --git a/src/utils/socket-package-alert.mts b/src/utils/socket-package-alert.mts index 51b15fa18..220a6885b 100644 --- a/src/utils/socket-package-alert.mts +++ b/src/utils/socket-package-alert.mts @@ -555,11 +555,7 @@ export function logAlertsMap( const pkgName = resolvePackageName(purlObj) const hyperlink = format.hyperlink( pkgName, - getSocketDevPackageOverviewUrl( - purlObj.type as PURL_Type, - pkgName, - purlObj.version, - ), + getSocketDevPackageOverviewUrl(purlObj.type, pkgName, purlObj.version), ) const isAboveTheFold = aboveTheFoldPurls.has(purl) if (isAboveTheFold) { diff --git a/src/utils/socket-url.mts b/src/utils/socket-url.mts index e85092c21..96057a920 100644 --- a/src/utils/socket-url.mts +++ b/src/utils/socket-url.mts @@ -25,11 +25,7 @@ export function getSocketDevPackageOverviewUrlFromPurl( ): string { const purlObj = getPurlObject(purl) const fullName = getPkgFullNameFromPurl(purlObj) - return getSocketDevPackageOverviewUrl( - purlObj.type as PURL_Type, - fullName, - purlObj.version, - ) + return getSocketDevPackageOverviewUrl(purlObj.type, fullName, purlObj.version) } export function getSocketDevPackageOverviewUrl(