@@ -74,13 +74,9 @@ type Explanation = {
74
74
} | null
75
75
76
76
type InstallEffect = {
77
- action : Diff [ 'action' ]
78
77
existing : NodeClass [ 'pkgid' ] | null
79
78
pkgid : NodeClass [ 'pkgid' ]
80
- resolved : NodeClass [ 'resolved' ]
81
- location : NodeClass [ 'location' ]
82
- oldPackage : PURLParts | null
83
- newPackage : PURLParts
79
+ repository_url : string
84
80
}
85
81
86
82
type NodeClass = Omit <
@@ -147,13 +143,6 @@ interface KnownModules {
147
143
'proc-log' : typeof import ( 'proc-log' )
148
144
}
149
145
150
- type PURLParts = {
151
- type : 'npm'
152
- namespace_and_name : string
153
- version : string
154
- repository_url : URL [ 'href' ]
155
- }
156
-
157
146
type RequireTransformer < T extends keyof KnownModules > = (
158
147
mod : KnownModules [ T ]
159
148
) => KnownModules [ T ]
@@ -283,8 +272,8 @@ async function* batchScan(
283
272
)
284
273
> {
285
274
const query = {
286
- packages : pkgIds . map ( pkgid => {
287
- const { name, version } = pkgidParts ( pkgid )
275
+ packages : pkgIds . map ( id => {
276
+ const { name, version } = pkgidParts ( id )
288
277
return {
289
278
eco : 'npm' ,
290
279
pkg : name ,
@@ -390,28 +379,25 @@ async function packagesHaveRiskyIssues(
390
379
pkgs : InstallEffect [ ] ,
391
380
output ?: Writable
392
381
) : Promise < boolean > {
382
+ const spinner = yoctoSpinner ( {
383
+ stream : output
384
+ } )
393
385
let result = false
394
- let remaining = pkgs . length
386
+ let { length : remaining } = pkgs
395
387
if ( ! remaining ) {
396
- yoctoSpinner ( ) . success ( 'No changes detected' )
388
+ spinner . success ( 'No changes detected' )
397
389
return result
398
390
}
399
-
400
391
const getText = ( ) => `Looking up data for ${ remaining } packages`
401
-
402
- const spinner = yoctoSpinner ( {
403
- stream : output
404
- } ) . start ( getText ( ) )
392
+ spinner . start ( getText ( ) )
405
393
406
394
try {
407
- for await ( const pkgData of batchScan ( pkgs . map ( pkg => pkg . pkgid ) ) ) {
408
- let failures : { block ?: boolean ; raw ?: any ; type ?: string } [ ] = [ ]
409
- let displayWarning = false
410
-
411
- const name = pkgData . pkg
412
- const version = pkgData . ver
395
+ for await ( const pkgData of batchScan ( pkgs . map ( p => p . pkgid ) ) ) {
396
+ const { pkg : name , ver : version } = pkgData
413
397
const id = `${ name } @${ version } `
414
398
399
+ let displayWarning = false
400
+ let failures : { block ?: boolean ; raw ?: any ; type ?: string } [ ] = [ ]
415
401
if ( pkgData . type === 'missing' ) {
416
402
result = true
417
403
failures . push ( {
@@ -430,7 +416,7 @@ async function packagesHaveRiskyIssues(
430
416
// Before we ask about problematic issues, check to see if they
431
417
// already existed in the old version if they did, be quiet.
432
418
const pkg = pkgs . find (
433
- pkg => pkg . pkgid === id && pkg . existing ?. startsWith ( `${ name } @` )
419
+ p => p . pkgid === id && p . existing ?. startsWith ( `${ name } @` )
434
420
)
435
421
if ( pkg ?. existing ) {
436
422
// eslint-disable-next-line no-await-in-loop
@@ -455,7 +441,7 @@ async function packagesHaveRiskyIssues(
455
441
}
456
442
}
457
443
if ( ! blocked ) {
458
- const pkg = pkgs . find ( pkg => pkg . pkgid === id )
444
+ const pkg = pkgs . find ( p => p . pkgid === id )
459
445
if ( pkg ) {
460
446
await tarball . stream (
461
447
id ,
@@ -469,9 +455,8 @@ async function packagesHaveRiskyIssues(
469
455
}
470
456
}
471
457
if ( displayWarning ) {
472
- spinner . stop ( )
473
- output ?. write (
474
- `(socket) ${ formatter . hyperlink ( id , `https://socket.dev/npm/package/${ name } /overview/${ version } ` ) } contains risks:\n`
458
+ spinner . stop (
459
+ `(socket) ${ formatter . hyperlink ( id , `https://socket.dev/npm/package/${ name } /overview/${ version } ` ) } contains risks:`
475
460
)
476
461
failures . sort ( ( a , b ) => ( a . raw . type < b . raw . type ? - 1 : 1 ) )
477
462
const lines = new Set ( )
@@ -495,9 +480,7 @@ async function packagesHaveRiskyIssues(
495
480
}
496
481
return result
497
482
} finally {
498
- if ( spinner . isSpinning ) {
499
- spinner . stop ( )
500
- }
483
+ spinner . stop ( )
501
484
}
502
485
}
503
486
@@ -508,18 +491,11 @@ function pkgidParts(pkgid: string) {
508
491
return { name, version }
509
492
}
510
493
511
- function toPURL ( pkgid : string , resolved : string ) : PURLParts {
512
- const repo = resolved
513
- . replace ( / # [ \s \S ] * $ / u, '' )
514
- . replace ( / \? [ \s \S ] * $ / u, '' )
515
- . replace ( / \/ [ ^ / ] * \/ - \/ [ \s \S ] * $ / u, '' )
516
- const { name, version } = pkgidParts ( pkgid )
517
- return {
518
- type : 'npm' ,
519
- namespace_and_name : name ,
520
- version,
521
- repository_url : repo
522
- }
494
+ function toRepoUrl ( resolved : string ) : string {
495
+ return resolved
496
+ . replace ( / # [ \s \S ] * $ / , '' )
497
+ . replace ( / \? [ \s \S ] * $ / , '' )
498
+ . replace ( / \/ [ ^ / ] * \/ - \/ [ \s \S ] * $ / , '' )
523
499
}
524
500
525
501
function walk (
@@ -560,15 +536,8 @@ function walk(
560
536
) {
561
537
needInfoOn . push ( {
562
538
existing,
563
- action : diff . action ,
564
- location : diff . ideal . location ,
565
539
pkgid : diff . ideal . pkgid ,
566
- newPackage : toPURL ( diff . ideal . pkgid , diff . ideal . resolved ) ,
567
- oldPackage :
568
- diff . actual && diff . actual . resolved
569
- ? toPURL ( diff . actual . pkgid , diff . actual . resolved )
570
- : null ,
571
- resolved : diff . ideal . resolved
540
+ repository_url : toRepoUrl ( diff . ideal . resolved )
572
541
} )
573
542
}
574
543
}
@@ -1300,10 +1269,7 @@ export class SafeArborist extends Arborist {
1300
1269
options [ 'save' ] = old . save
1301
1270
options [ 'saveBundle' ] = old . saveBundle
1302
1271
// Nothing to check, mmm already installed or all private?
1303
- if (
1304
- diff . findIndex ( c => c . newPackage . repository_url === NPM_REGISTRY_URL ) ===
1305
- - 1
1306
- ) {
1272
+ if ( diff . findIndex ( c => c . repository_url === NPM_REGISTRY_URL ) === - 1 ) {
1307
1273
return await this [ kRiskyReify ] ( ...args )
1308
1274
}
1309
1275
let proceed = ENV . UPDATE_SOCKET_OVERRIDES_IN_PACKAGE_LOCK_FILE
0 commit comments