@@ -3,13 +3,14 @@ import semver from 'semver'
33import { PackageURL } from '@socketregistry/packageurl-js'
44import { getManifestData } from '@socketsecurity/registry'
55import { debugFn } from '@socketsecurity/registry/lib/debug'
6- import { hasOwn } from '@socketsecurity/registry/lib/objects'
6+ import { getOwn , hasOwn } from '@socketsecurity/registry/lib/objects'
77import { fetchPackagePackument } from '@socketsecurity/registry/lib/packages'
88
99import constants from '../../constants.mts'
1010import { Edge } from './arborist/index.mts'
1111import { DiffAction } from './arborist/types.mts'
1212import { getAlertsMapFromPurls } from '../../utils/alerts-map.mts'
13+ import { toFilterConfig } from '../../utils/filter-config.mts'
1314import { npa } from '../../utils/npm-package-arg.mts'
1415import { applyRange , getMajor , getMinVersion } from '../../utils/semver.mts'
1516import { idToNpmPurl } from '../../utils/spec.mts'
@@ -24,7 +25,7 @@ import type {
2425import type { AliasResult } from '../../utils/npm-package-arg.mts'
2526import type { RangeStyle } from '../../utils/semver.mts'
2627import type {
27- AlertIncludeFilter ,
28+ AlertFilter ,
2829 AlertsByPurl ,
2930} from '../../utils/socket-package-alert.mts'
3031import type { EditablePackageJson } from '@socketsecurity/registry/lib/packages'
@@ -173,7 +174,7 @@ export function findPackageNodes(
173174
174175export type GetAlertsMapFromArboristOptions = {
175176 consolidate ?: boolean | undefined
176- include ?: AlertIncludeFilter | undefined
177+ filter ?: AlertFilter | undefined
177178 nothrow ?: boolean | undefined
178179 spinner ?: Spinner | undefined
179180}
@@ -185,28 +186,25 @@ export async function getAlertsMapFromArborist(
185186 const opts = {
186187 __proto__ : null ,
187188 consolidate : false ,
188- include : undefined ,
189189 nothrow : false ,
190190 ...options ,
191- } as GetAlertsMapFromArboristOptions
192-
193- opts . include = {
194- __proto__ : null ,
195- // Leave 'actions' unassigned so it can be given a default value in
196- // subsequent functions where `options` is passed.
197- // actions: undefined,
198- blocked : true ,
199- critical : true ,
200- cve : true ,
201- existing : false ,
202- unfixable : true ,
203- upgradable : false ,
204- ...opts . include ,
205- } as AlertIncludeFilter
191+ filter : toFilterConfig ( {
192+ // Leave 'actions' unassigned so it can be given a default value in
193+ // subsequent functions where `options` is passed.
194+ // actions: undefined,
195+ blocked : true ,
196+ critical : true ,
197+ cve : true ,
198+ existing : false ,
199+ fixable : false ,
200+ upgradable : false ,
201+ ...getOwn ( options , 'filter' ) ,
202+ } ) ,
203+ } as GetAlertsMapFromArboristOptions & { filter : AlertFilter }
206204
207205 const needInfoOn = getDetailsFromDiff ( arb . diff , {
208- include : {
209- unchanged : opts . include . existing ,
206+ filter : {
207+ existing : opts . filter . existing ,
210208 } ,
211209 } )
212210
@@ -228,17 +226,17 @@ export async function getAlertsMapFromArborist(
228226
229227 return await getAlertsMapFromPurls ( purls , {
230228 overrides,
231- ...options ,
229+ ...opts ,
232230 } )
233231}
234232
235- export type DiffQueryIncludeFilter = {
236- unchanged ?: boolean | undefined
233+ export type DiffQueryFilter = {
234+ existing ?: boolean | undefined
237235 unknownOrigin ?: boolean | undefined
238236}
239237
240238export type DiffQueryOptions = {
241- include ?: DiffQueryIncludeFilter | undefined
239+ filter ?: DiffQueryFilter | undefined
242240}
243241
244242export type PackageDetail = {
@@ -257,12 +255,11 @@ export function getDetailsFromDiff(
257255 return details
258256 }
259257
260- const include = {
261- __proto__ : null ,
262- unchanged : false ,
258+ const filterConfig = toFilterConfig ( {
259+ existing : false ,
263260 unknownOrigin : true ,
264- ...( { __proto__ : null , ... options } as DiffQueryOptions ) . include ,
265- } as DiffQueryIncludeFilter
261+ ...getOwn ( options , 'filter' ) ,
262+ } ) as DiffQueryFilter
266263
267264 const queue : Diff [ ] = [ ...diff . children ]
268265 let pos = 0
@@ -296,7 +293,7 @@ export function getDetailsFromDiff(
296293 }
297294 if ( keep && pkgNode ?. resolved && ( ! oldNode || oldNode . resolved ) ) {
298295 if (
299- include . unknownOrigin ||
296+ filterConfig . unknownOrigin ||
300297 getUrlOrigin ( pkgNode . resolved ) === NPM_REGISTRY_URL
301298 ) {
302299 details . push ( {
@@ -310,12 +307,12 @@ export function getDetailsFromDiff(
310307 queue [ queueLength ++ ] = child
311308 }
312309 }
313- if ( include . unchanged ) {
310+ if ( filterConfig . existing ) {
314311 const { unchanged } = diff
315312 for ( let i = 0 , { length } = unchanged ; i < length ; i += 1 ) {
316313 const pkgNode = unchanged [ i ] !
317314 if (
318- include . unknownOrigin ||
315+ filterConfig . unknownOrigin ||
319316 getUrlOrigin ( pkgNode . resolved ! ) === NPM_REGISTRY_URL
320317 ) {
321318 details . push ( {
0 commit comments