Skip to content

Commit 003286e

Browse files
shanisebaronaisaacs
authored andcommitted
fix: throw 403 for forbidden major/minor versions
Co-authored-by: @claudiahdz Co-authored-by: @emyl3 Co-authored-by: @rrconey PR-URL: #2 Credit: @claudiahdz Close: #2 Reviewed-by: @isaacs
1 parent ed0fc29 commit 003286e

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

index.js

+4
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@ function pickManifest (packument, wanted, opts) {
9696
target = stillFresh[0]
9797
}
9898

99+
if (!target && restrictedVersions) {
100+
target = semver.maxSatisfying(restrictedVersions, wanted, true)
101+
}
102+
99103
const manifest = (
100104
target &&
101105
packument.versions[target]

test/index.js

+40
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,46 @@ test('E403 if version is forbidden', t => {
147147
t.done()
148148
})
149149

150+
test('E403 if version is forbidden, provided a minor version', t => {
151+
const metadata = {
152+
policyRestrictions: {
153+
versions: {
154+
'2.1.0': { version: '2.1.0' },
155+
'2.1.5': { version: '2.1.5' }
156+
}
157+
},
158+
versions: {
159+
'1.0.0': { version: '1.0.0' },
160+
'2.0.0': { version: '2.0.0' },
161+
'2.0.5': { version: '2.0.5' }
162+
}
163+
}
164+
t.throws(() => {
165+
pickManifest(metadata, '2.1')
166+
}, {code: 'E403'}, 'got correct error on match failure')
167+
t.done()
168+
})
169+
170+
test('E403 if version is forbidden, provided a major version', t => {
171+
const metadata = {
172+
policyRestrictions: {
173+
versions: {
174+
'1.0.0': { version: '1.0.0' },
175+
'2.1.0': { version: '2.1.0' },
176+
'2.1.5': { version: '2.1.5' }
177+
}
178+
},
179+
versions: {
180+
'2.0.0': { version: '2.0.0' },
181+
'2.0.5': { version: '2.0.5' }
182+
}
183+
}
184+
t.throws(() => {
185+
pickManifest(metadata, '1')
186+
}, {code: 'E403'}, 'got correct error on match failure')
187+
t.done()
188+
})
189+
150190
test('if `defaultTag` matches a given range, use it', t => {
151191
const metadata = {
152192
'dist-tags': {

0 commit comments

Comments
 (0)