@@ -20,30 +20,30 @@ outdated.usage = 'npm outdated [[<@scope>/]<pkg> ...]'
20
20
21
21
outdated . completion = require ( './utils/completion/installed-deep.js' )
22
22
23
- var os = require ( 'os' )
24
- var url = require ( 'url' )
25
- var path = require ( 'path' )
26
- var readPackageTree = require ( 'read-package-tree' )
27
- var asyncMap = require ( 'slide' ) . asyncMap
28
- var color = require ( 'ansicolors' )
29
- var styles = require ( 'ansistyles' )
30
- var table = require ( 'text-table' )
31
- var semver = require ( 'semver' )
32
- var npa = require ( 'libnpm/parse-arg' )
33
- var pickManifest = require ( 'npm-pick-manifest' )
34
- var fetchPackageMetadata = require ( './fetch-package-metadata.js' )
35
- var mutateIntoLogicalTree = require ( './install/mutate-into-logical-tree.js' )
36
- var npm = require ( './npm.js' )
23
+ const os = require ( 'os' )
24
+ const url = require ( 'url' )
25
+ const path = require ( 'path' )
26
+ const readPackageTree = require ( 'read-package-tree' )
27
+ const asyncMap = require ( 'slide' ) . asyncMap
28
+ const color = require ( 'ansicolors' )
29
+ const styles = require ( 'ansistyles' )
30
+ const table = require ( 'text-table' )
31
+ const semver = require ( 'semver' )
32
+ const npa = require ( 'libnpm/parse-arg' )
33
+ const pickManifest = require ( 'npm-pick-manifest' )
34
+ const fetchPackageMetadata = require ( './fetch-package-metadata.js' )
35
+ const mutateIntoLogicalTree = require ( './install/mutate-into-logical-tree.js' )
36
+ const npm = require ( './npm.js' )
37
37
const npmConfig = require ( './config/figgy-config.js' )
38
38
const figgyPudding = require ( 'figgy-pudding' )
39
39
const packument = require ( 'libnpm/packument' )
40
- var long = npm . config . get ( 'long' )
41
- var isExtraneous = require ( './install/is-extraneous.js' )
42
- var computeMetadata = require ( './install/deps.js' ) . computeMetadata
43
- var computeVersionSpec = require ( './install/deps.js' ) . computeVersionSpec
44
- var moduleName = require ( './utils/module-name.js' )
45
- var output = require ( './utils/output.js' )
46
- var ansiTrim = require ( './utils/ansi-trim' )
40
+ const long = npm . config . get ( 'long' )
41
+ const isExtraneous = require ( './install/is-extraneous.js' )
42
+ const computeMetadata = require ( './install/deps.js' ) . computeMetadata
43
+ const computeVersionSpec = require ( './install/deps.js' ) . computeVersionSpec
44
+ const moduleName = require ( './utils/module-name.js' )
45
+ const output = require ( './utils/output.js' )
46
+ const ansiTrim = require ( './utils/ansi-trim' )
47
47
48
48
const OutdatedConfig = figgyPudding ( {
49
49
also : { } ,
@@ -215,8 +215,8 @@ function makeJSON (list, opts) {
215
215
216
216
function outdated_ ( args , path , tree , parentHas , depth , opts , cb ) {
217
217
if ( ! tree . package ) tree . package = { }
218
- if ( path && tree . package . name ) path += ' > ' + tree . package . name
219
- if ( ! path && tree . package . name ) path = tree . package . name
218
+ if ( path && moduleName ( tree ) ) path += ' > ' + tree . package . name
219
+ if ( ! path && moduleName ( tree ) ) path = tree . package . name
220
220
if ( depth > opts . depth ) {
221
221
return cb ( null , [ ] )
222
222
}
@@ -298,10 +298,10 @@ function outdated_ (args, path, tree, parentHas, depth, opts, cb) {
298
298
299
299
var has = Object . create ( parentHas )
300
300
tree . children . forEach ( function ( child ) {
301
- if ( child . package . name && child . package . private ) {
301
+ if ( moduleName ( child ) && child . package . private ) {
302
302
deps = deps . filter ( function ( dep ) { return dep !== child } )
303
303
}
304
- has [ child . package . name ] = {
304
+ has [ moduleName ( child ) ] = {
305
305
version : child . isLink ? 'linked' : child . package . version ,
306
306
from : child . isLink ? 'file:' + child . path : child . package . _from
307
307
}
@@ -349,13 +349,6 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
349
349
cb )
350
350
}
351
351
352
- function doIt ( wanted , latest ) {
353
- if ( ! long ) {
354
- return cb ( null , [ [ tree , dep , curr && curr . version , wanted , latest , req , null , pkgpath ] ] )
355
- }
356
- cb ( null , [ [ tree , dep , curr && curr . version , wanted , latest , req , type , pkgpath ] ] )
357
- }
358
-
359
352
if ( args . length && args . indexOf ( dep ) === - 1 ) return skip ( )
360
353
361
354
if ( tree . isLink && req == null ) return skip ( )
@@ -374,11 +367,22 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
374
367
} else if ( parsed . type === 'file' ) {
375
368
return updateLocalDeps ( )
376
369
} else {
377
- return packument ( dep , opts . concat ( {
370
+ return packument ( parsed , opts . concat ( {
378
371
'prefer-online' : true
379
372
} ) ) . nodeify ( updateDeps )
380
373
}
381
374
375
+ function doIt ( wanted , latest ) {
376
+ let c = curr && curr . version
377
+ if ( parsed . type === 'alias' ) {
378
+ c = `npm:${ parsed . subSpec . name } @${ c } `
379
+ }
380
+ if ( ! long ) {
381
+ return cb ( null , [ [ tree , dep , c , wanted , latest , req , null , pkgpath ] ] )
382
+ }
383
+ cb ( null , [ [ tree , dep , c , wanted , latest , req , type , pkgpath ] ] )
384
+ }
385
+
382
386
function updateLocalDeps ( latestRegistryVersion ) {
383
387
fetchPackageMetadata ( 'file:' + parsed . fetchSpec , '.' , ( er , localDependency ) => {
384
388
if ( er ) return cb ( )
@@ -405,6 +409,9 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
405
409
function updateDeps ( er , d ) {
406
410
if ( er ) return cb ( er )
407
411
412
+ if ( parsed . type === 'alias' ) {
413
+ req = parsed . subSpec . rawSpec
414
+ }
408
415
try {
409
416
var l = pickManifest ( d , 'latest' )
410
417
var m = pickManifest ( d , req )
@@ -421,11 +428,20 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
421
428
var dFromUrl = m . _from && url . parse ( m . _from ) . protocol
422
429
var cFromUrl = curr && curr . from && url . parse ( curr . from ) . protocol
423
430
424
- if ( ! curr ||
425
- ( dFromUrl && cFromUrl && m . _from !== curr . from ) ||
426
- m . version !== curr . version ||
427
- m . version !== l . version ) {
428
- doIt ( m . version , l . version )
431
+ if (
432
+ ! curr ||
433
+ ( dFromUrl && cFromUrl && m . _from !== curr . from ) ||
434
+ m . version !== curr . version ||
435
+ m . version !== l . version
436
+ ) {
437
+ if ( parsed . type === 'alias' ) {
438
+ doIt (
439
+ `npm:${ parsed . subSpec . name } @${ m . version } ` ,
440
+ `npm:${ parsed . subSpec . name } @${ l . version } `
441
+ )
442
+ } else {
443
+ doIt ( m . version , l . version )
444
+ }
429
445
} else {
430
446
skip ( )
431
447
}
0 commit comments