11import constants from '../../../../constants'
22
33import type { SafeNode } from '../node'
4- import type { Diff } from '@npmcli/arborist'
4+ import type { Diff as BaseDiff } from '@npmcli/arborist'
5+
6+ export type SafeDiff = Omit <
7+ BaseDiff ,
8+ | 'actual'
9+ | 'children'
10+ | 'filterSet'
11+ | 'ideal'
12+ | 'leaves'
13+ | 'removed'
14+ | 'shrinkwrapInflated'
15+ | 'unchanged'
16+ > & {
17+ actual : SafeNode
18+ children : SafeDiff [ ]
19+ filterSet : Set < SafeNode >
20+ ideal : SafeNode
21+ leaves : SafeNode [ ]
22+ parent : SafeDiff | null
23+ removed : SafeNode [ ]
24+ shrinkwrapInflated : Set < SafeNode >
25+ unchanged : SafeNode [ ]
26+ }
527
628const { LOOP_SENTINEL , NPM_REGISTRY_URL , SOCKET_CLI_FIX_PACKAGE_LOCK_FILE } =
729 constants
@@ -14,9 +36,9 @@ function getUrlOrigin(input: string): string {
1436}
1537
1638export type PackageDetail = {
17- pkgid : SafeNode [ 'pkgid' ]
39+ node : SafeNode
1840 origin : string
19- existing ?: SafeNode [ 'pkgid' ] | undefined
41+ existing ?: SafeNode | undefined
2042}
2143
2244type GetPackagesToQueryFromDiffOptions = {
@@ -25,7 +47,7 @@ type GetPackagesToQueryFromDiffOptions = {
2547}
2648
2749export function getPackagesToQueryFromDiff (
28- diff_ : Diff | null ,
50+ diff_ : SafeDiff | null ,
2951 options ?: GetPackagesToQueryFromDiffOptions
3052) : PackageDetail [ ] {
3153 const {
@@ -41,7 +63,7 @@ export function getPackagesToQueryFromDiff(
4163 if ( ! diff_ ) {
4264 return details
4365 }
44- const queue : Diff [ ] = [ ...diff_ . children ]
66+ const queue : SafeDiff [ ] = [ ...diff_ . children ]
4567 let pos = 0
4668 let { length : queueLength } = queue
4769 while ( pos < queueLength ) {
@@ -56,7 +78,7 @@ export function getPackagesToQueryFromDiff(
5678 // The `oldNode`, i.e. the `actual` node, will be `undefined` if the diff
5779 // action is 'ADD'.
5880 const { actual : oldNode , ideal : pkgNode } = diff
59- let existing
81+ let existing : SafeNode | undefined
6082 let keep = false
6183 if ( action === 'CHANGE' ) {
6284 if ( pkgNode ?. package . version !== oldNode ?. package . version ) {
@@ -65,7 +87,7 @@ export function getPackagesToQueryFromDiff(
6587 oldNode ?. package . name &&
6688 oldNode . package . name === pkgNode ?. package . name
6789 ) {
68- existing = oldNode . pkgid
90+ existing = oldNode
6991 }
7092 } else {
7193 // TODO: Add proper debug mode.
@@ -78,7 +100,7 @@ export function getPackagesToQueryFromDiff(
78100 const origin = getUrlOrigin ( pkgNode . resolved )
79101 if ( includeUnknownOrigin || origin === NPM_REGISTRY_URL ) {
80102 details . push ( {
81- pkgid : pkgNode . pkgid ,
103+ node : pkgNode ,
82104 origin,
83105 existing
84106 } )
@@ -95,11 +117,10 @@ export function getPackagesToQueryFromDiff(
95117 const pkgNode = unchanged [ i ] !
96118 const origin = getUrlOrigin ( pkgNode . resolved ! )
97119 if ( includeUnknownOrigin || origin === NPM_REGISTRY_URL ) {
98- const { pkgid } = pkgNode
99120 details . push ( {
100- pkgid ,
121+ node : pkgNode ,
101122 origin,
102- existing : pkgid
123+ existing : pkgNode
103124 } )
104125 }
105126 }
0 commit comments