Skip to content

Commit d04111d

Browse files
authored
fix(view): filter out invalid semver (#7197)
1 parent b0a3ba0 commit d04111d

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

lib/commands/view.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,13 @@ class View extends BaseCommand {
211211

212212
const data = []
213213
const versions = pckmnt.versions || {}
214-
pckmnt.versions = Object.keys(versions).sort(semver.compareLoose)
214+
pckmnt.versions = Object.keys(versions).filter(v => {
215+
if (semver.valid(v)) {
216+
return true
217+
}
218+
log.info('view', `Ignoring invalid version: ${v}`)
219+
return false
220+
}).sort(semver.compareLoose)
215221

216222
// remove readme unless we asked for it
217223
if (args.indexOf('readme') === -1) {

tap-snapshots/test/lib/commands/view.js.test.cjs

+4
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ dist-tags:
190190
latest: 1.0.0
191191
`
192192

193+
exports[`test/lib/commands/view.js TAP package with invalid version > must match snapshot 1`] = `
194+
[ '1.0.0', '1.0.1' ]
195+
`
196+
193197
exports[`test/lib/commands/view.js TAP package with maintainers info as object > must match snapshot 1`] = `
194198
195199
pink@1.0.0 | Proprietary | deps: none | versions: 2

test/lib/commands/view.js

+8
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,8 @@ const packument = (nv, opts) => {
250250
},
251251
},
252252
'1.0.1': {},
253+
'100000000000000000.0.0': {
254+
},
253255
},
254256
},
255257
}
@@ -315,6 +317,12 @@ t.test('package with homepage', async t => {
315317
t.matchSnapshot(outputs.join('\n'))
316318
})
317319

320+
t.test('package with invalid version', async t => {
321+
const { view, outputs } = await loadMockNpm(t, { config: { unicode: false } })
322+
await view.exec(['orange', 'versions'])
323+
t.matchSnapshot(outputs.join('\n'))
324+
})
325+
318326
t.test('package with no versions', async t => {
319327
const { view, outputs } = await loadMockNpm(t, { config: { unicode: false } })
320328
await view.exec(['brown'])

0 commit comments

Comments
 (0)