@@ -4,6 +4,7 @@ import { logger } from '@socketsecurity/registry/lib/logger'
44import { getOwn } from '@socketsecurity/registry/lib/objects'
55import { isNonEmptyString } from '@socketsecurity/registry/lib/strings'
66
7+ import { findSocketYmlSync } from './config.mts'
78import { toFilterConfig } from './filter-config.mts'
89import { extractPurlsFromPnpmLockfile } from './pnpm.mts'
910import { getPublicApiToken , setupSdk } from './sdk.mts'
@@ -36,6 +37,7 @@ export async function getAlertsMapFromPnpmLockfile(
3637export type GetAlertsMapFromPurlsOptions = {
3738 consolidate ?: boolean | undefined
3839 filter ?: AlertFilter | undefined
40+ onlyFixable ?: boolean | undefined
3941 overrides ?: { [ key : string ] : string } | undefined
4042 nothrow ?: boolean | undefined
4143 spinner ?: Spinner | undefined
@@ -45,14 +47,6 @@ export async function getAlertsMapFromPurls(
4547 purls : string [ ] | readonly string [ ] ,
4648 options ?: GetAlertsMapFromPurlsOptions | undefined ,
4749) : Promise < AlertsByPurl > {
48- const opts = {
49- __proto__ : null ,
50- consolidate : false ,
51- nothrow : false ,
52- ...options ,
53- filter : toFilterConfig ( getOwn ( options , 'filter' ) ) ,
54- } as GetAlertsMapFromPurlsOptions & { filter : AlertFilter }
55-
5650 const uniqPurls = arrayUnique ( purls )
5751 debugDir ( 'silly' , { purls : uniqPurls } )
5852
@@ -63,6 +57,18 @@ export async function getAlertsMapFromPurls(
6357 return alertsByPurl
6458 }
6559
60+ const opts = {
61+ __proto__ : null ,
62+ consolidate : false ,
63+ nothrow : false ,
64+ ...options ,
65+ filter : toFilterConfig ( getOwn ( options , 'filter' ) ) ,
66+ } as GetAlertsMapFromPurlsOptions & { filter : AlertFilter }
67+
68+ if ( opts . onlyFixable ) {
69+ opts . filter . fixable = true
70+ }
71+
6672 const { spinner } = opts
6773 const getText = ( ) => `Looking up data for ${ remaining } packages`
6874
@@ -71,14 +77,16 @@ export async function getAlertsMapFromPurls(
7177 const sockSdkCResult = await setupSdk ( { apiToken : getPublicApiToken ( ) } )
7278 if ( ! sockSdkCResult . ok ) {
7379 spinner ?. stop ( )
74- throw new Error ( 'Auth error: Try to run `socket login` first' )
80+ throw new Error ( 'Auth error: Run `socket login` first' )
7581 }
7682 const sockSdk = sockSdkCResult . data
83+ const socketYml = findSocketYmlSync ( ) ?. parsed
7784
7885 const alertsMapOptions = {
7986 overrides : opts . overrides ,
8087 consolidate : opts . consolidate ,
8188 filter : opts . filter ,
89+ socketYml,
8290 spinner,
8391 }
8492
@@ -90,18 +98,16 @@ export async function getAlertsMapFromPurls(
9098 queryParams : {
9199 alerts : 'true' ,
92100 compact : 'true' ,
101+ ...( opts . onlyFixable ? { fixable : 'true ' } : { } ) ,
93102 ...( Array . isArray ( opts . filter . actions )
94103 ? { actions : opts . filter . actions . join ( ',' ) }
95104 : { } ) ,
96105 } ,
97106 } ,
98107 ) ) {
99108 if ( batchResult . success ) {
100- await addArtifactToAlertsMap (
101- batchResult . data as CompactSocketArtifact ,
102- alertsByPurl ,
103- alertsMapOptions ,
104- )
109+ const artifact = batchResult . data as CompactSocketArtifact
110+ await addArtifactToAlertsMap ( artifact , alertsByPurl , alertsMapOptions )
105111 } else if ( ! opts . nothrow ) {
106112 spinner ?. stop ( )
107113 if ( isNonEmptyString ( batchResult . error ) ) {
0 commit comments