@@ -20,30 +20,30 @@ outdated.usage = 'npm outdated [[<@scope>/]<pkg> ...]'
2020
2121outdated . completion = require ( './utils/completion/installed-deep.js' )
2222
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' )
3737const npmConfig = require ( './config/figgy-config.js' )
3838const figgyPudding = require ( 'figgy-pudding' )
3939const 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' )
4747
4848const OutdatedConfig = figgyPudding ( {
4949 also : { } ,
@@ -215,8 +215,8 @@ function makeJSON (list, opts) {
215215
216216function outdated_ ( args , path , tree , parentHas , depth , opts , cb ) {
217217 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
220220 if ( depth > opts . depth ) {
221221 return cb ( null , [ ] )
222222 }
@@ -298,10 +298,10 @@ function outdated_ (args, path, tree, parentHas, depth, opts, cb) {
298298
299299 var has = Object . create ( parentHas )
300300 tree . children . forEach ( function ( child ) {
301- if ( child . package . name && child . package . private ) {
301+ if ( moduleName ( child ) && child . package . private ) {
302302 deps = deps . filter ( function ( dep ) { return dep !== child } )
303303 }
304- has [ child . package . name ] = {
304+ has [ moduleName ( child ) ] = {
305305 version : child . isLink ? 'linked' : child . package . version ,
306306 from : child . isLink ? 'file:' + child . path : child . package . _from
307307 }
@@ -349,13 +349,6 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
349349 cb )
350350 }
351351
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-
359352 if ( args . length && args . indexOf ( dep ) === - 1 ) return skip ( )
360353
361354 if ( tree . isLink && req == null ) return skip ( )
@@ -374,11 +367,22 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
374367 } else if ( parsed . type === 'file' ) {
375368 return updateLocalDeps ( )
376369 } else {
377- return packument ( dep , opts . concat ( {
370+ return packument ( parsed , opts . concat ( {
378371 'prefer-online' : true
379372 } ) ) . nodeify ( updateDeps )
380373 }
381374
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+
382386 function updateLocalDeps ( latestRegistryVersion ) {
383387 fetchPackageMetadata ( 'file:' + parsed . fetchSpec , '.' , ( er , localDependency ) => {
384388 if ( er ) return cb ( )
@@ -405,6 +409,9 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
405409 function updateDeps ( er , d ) {
406410 if ( er ) return cb ( er )
407411
412+ if ( parsed . type === 'alias' ) {
413+ req = parsed . subSpec . rawSpec
414+ }
408415 try {
409416 var l = pickManifest ( d , 'latest' )
410417 var m = pickManifest ( d , req )
@@ -421,11 +428,20 @@ function shouldUpdate (args, tree, dep, has, req, depth, pkgpath, opts, cb, type
421428 var dFromUrl = m . _from && url . parse ( m . _from ) . protocol
422429 var cFromUrl = curr && curr . from && url . parse ( curr . from ) . protocol
423430
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+ }
429445 } else {
430446 skip ( )
431447 }
0 commit comments