Skip to content

Commit 96d364c

Browse files
committedFeb 8, 2020
Never provide the string 'null' as an integrity value
1 parent aef0f62 commit 96d364c

File tree

6 files changed

+62
-12
lines changed

6 files changed

+62
-12
lines changed
 

‎lib/dir.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class DirFetcher extends Fetcher {
8585
return readPackageJson(this.resolved + '/package.json')
8686
.then(mani => this.package = {
8787
...mani,
88-
_integrity: String(this.integrity),
88+
_integrity: this.integrity && String(this.integrity),
8989
_resolved: this.resolved,
9090
_from: this.from,
9191
})

‎lib/fetcher.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class FetcherBase {
174174
stream.on('error', er => rej(er))
175175
stream.on('end', () => {
176176
const data = Buffer.concat(buf)
177-
data.integrity = String(this.integrity)
177+
data.integrity = this.integrity && String(this.integrity)
178178
data.resolved = this.resolved
179179
data.from = this.from
180180
return res(data)

‎lib/file.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class FileFetcher extends Fetcher {
2929
.then(() => readPackageJson(dir + '/package.json'))
3030
.then(mani => this.package = {
3131
...mani,
32-
_integrity: String(this.integrity),
32+
_integrity: this.integrity && String(this.integrity),
3333
_resolved: this.resolved,
3434
_from: this.from,
3535
}))
@@ -82,7 +82,7 @@ class FileFetcher extends Fetcher {
8282
...mani,
8383
dist: {
8484
tarball: `file:${this.resolved}`,
85-
integrity: String(this.integrity),
85+
integrity: this.integrity && String(this.integrity),
8686
}
8787
}
8888
}

‎lib/remote.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class RemoteFetcher extends Fetcher {
4949
'pacote-version': pacoteVersion,
5050
'pacote-req-type': 'tarball',
5151
'pacote-pkg-id': this.pkgid,
52-
'pacote-integrity': String(this.integrity),
52+
...(this.integrity ? { 'pacote-integrity': String(this.integrity) }
53+
: {}),
5354
}
5455
}
5556

‎tap-snapshots/test-dir.js-TAP.test.js

+47-7
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ exports[`test/dir.js TAP basic > manifest 1`] = `
1717
Object {
1818
"_from": "file:test/fixtures/abbrev",
1919
"_id": "abbrev@1.1.1",
20-
"_integrity": "null",
20+
"_integrity": null,
2121
"_resolved": "\${CWD}/test/fixtures/abbrev",
2222
"author": "Isaac Z. Schlueter <i@izs.me>",
2323
"description": "Like ruby's abbrev module, but in js",
@@ -75,15 +75,15 @@ Object {
7575
"1.1.1": Object {
7676
"_from": "file:test/fixtures/abbrev",
7777
"_id": "abbrev@1.1.1",
78-
"_integrity": "null",
78+
"_integrity": null,
7979
"_resolved": "\${CWD}/test/fixtures/abbrev",
8080
"author": "Isaac Z. Schlueter <i@izs.me>",
8181
"description": "Like ruby's abbrev module, but in js",
8282
"devDependencies": Object {
8383
"tap": "^10.1",
8484
},
8585
"dist": Object {
86-
"integrity": "null",
86+
"integrity": null,
8787
"tarball": "file:\${CWD}/test/fixtures/abbrev",
8888
},
8989
"files": Array [
@@ -109,7 +109,7 @@ exports[`test/dir.js TAP basic > saved package.json 1`] = `
109109
Object {
110110
"_from": "file:test/fixtures/abbrev",
111111
"_id": "abbrev@1.1.1",
112-
"_integrity": "null",
112+
"_integrity": null,
113113
"_resolved": "\${CWD}/test/fixtures/abbrev",
114114
"author": "Isaac Z. Schlueter <i@izs.me>",
115115
"description": "Like ruby's abbrev module, but in js",
@@ -133,6 +133,46 @@ Object {
133133
}
134134
`
135135

136+
exports[`test/dir.js TAP dir with integrity > packument 1`] = `
137+
Object {
138+
"dist-tags": Object {
139+
"latest": "1.1.1",
140+
},
141+
"name": "abbrev",
142+
"versions": Object {
143+
"1.1.1": Object {
144+
"_from": "file:test/fixtures/abbrev",
145+
"_id": "abbrev@1.1.1",
146+
"_integrity": "sha512-whatever-this-is-only-checked-if-we-extract-it",
147+
"_resolved": "\${CWD}/test/fixtures/abbrev",
148+
"author": "Isaac Z. Schlueter <i@izs.me>",
149+
"description": "Like ruby's abbrev module, but in js",
150+
"devDependencies": Object {
151+
"tap": "^10.1",
152+
},
153+
"dist": Object {
154+
"integrity": "sha512-whatever-this-is-only-checked-if-we-extract-it",
155+
"tarball": "file:\${CWD}/test/fixtures/abbrev",
156+
},
157+
"files": Array [
158+
"abbrev.js",
159+
],
160+
"license": "ISC",
161+
"main": "abbrev.js",
162+
"name": "abbrev",
163+
"repository": "http://github.com/isaacs/abbrev-js",
164+
"scripts": Object {
165+
"postpublish": "git push origin --all; git push origin --tags",
166+
"postversion": "npm publish",
167+
"preversion": "npm test",
168+
"test": "tap test.js --100",
169+
},
170+
"version": "1.1.1",
171+
},
172+
},
173+
}
174+
`
175+
136176
exports[`test/dir.js TAP make bins executable > results of unpack 1`] = `
137177
Object {
138178
"from": "file:test/fixtures/bin-object",
@@ -161,7 +201,7 @@ exports[`test/dir.js TAP with prepare script > manifest 1`] = `
161201
Object {
162202
"_from": "file:test/fixtures/prepare-script",
163203
"_id": "git-prepare-script@1.0.0",
164-
"_integrity": "null",
204+
"_integrity": null,
165205
"_resolved": "\${CWD}/test/fixtures/prepare-script",
166206
"devDependencies": Object {
167207
"abbrev": "^1.1.1",
@@ -186,13 +226,13 @@ Object {
186226
"1.0.0": Object {
187227
"_from": "file:test/fixtures/prepare-script",
188228
"_id": "git-prepare-script@1.0.0",
189-
"_integrity": "null",
229+
"_integrity": null,
190230
"_resolved": "\${CWD}/test/fixtures/prepare-script",
191231
"devDependencies": Object {
192232
"abbrev": "^1.1.1",
193233
},
194234
"dist": Object {
195-
"integrity": "null",
235+
"integrity": null,
196236
"tarball": "file:\${CWD}/test/fixtures/prepare-script",
197237
},
198238
"license": "ISC",

‎test/dir.js

+9
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ t.test('basic', t => {
2525
.then(() => f.manifest().then(mani => t.equal(mani, f.package)))
2626
})
2727

28+
t.test('dir with integrity', t => {
29+
const f = new DirFetcher(abbrevspec, {
30+
integrity: 'sha512-whatever-this-is-only-checked-if-we-extract-it',
31+
})
32+
t.same(f.types, ['directory'])
33+
t.resolveMatchSnapshot(f.packument(), 'packument')
34+
return t.end()
35+
})
36+
2837
const prepare = resolve(__dirname, 'fixtures/prepare-script')
2938
const preparespec = `file:${relative(process.cwd(), prepare)}`
3039

0 commit comments

Comments
 (0)
Please sign in to comment.