diff --git a/lib/registry.js b/lib/registry.js index b4f890d3..e8ca16f5 100644 --- a/lib/registry.js +++ b/lib/registry.js @@ -165,6 +165,9 @@ class RegistryFetcher extends Fetcher { } if (this.integrity) { mani._integrity = String(this.integrity) + if (dist.signatures) { + mani._signatures = dist.signatures + } } this.package = rpj.normalize(mani) return this.package diff --git a/test/fixtures/abbrev-manifest-full.json b/test/fixtures/abbrev-manifest-full.json deleted file mode 100644 index 362f3122..00000000 --- a/test/fixtures/abbrev-manifest-full.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "abbrev", - "version": "1.1.1", - "description": "Like ruby's abbrev module, but in js", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "main": "abbrev.js", - "scripts": { - "test": "tap test.js --100", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --all; git push origin --tags" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/isaacs/abbrev-js.git" - }, - "license": "ISC", - "devDependencies": { - "tap": "^10.1" - }, - "files": [ - "abbrev.js" - ], - "gitHead": "a9ee72ebc8fe3975f1b0c7aeb3a8f2a806a432eb", - "bugs": { - "url": "https://github.com/isaacs/abbrev-js/issues" - }, - "homepage": "https://github.com/isaacs/abbrev-js#readme", - "_id": "abbrev@1.1.1", - "_npmVersion": "5.4.2", - "_nodeVersion": "8.5.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "dist": { - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "shasum": "f8f2c887ad10bf67f634f005b6987fed3179aac8", - "tarball": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - }, - "maintainers": [ - { - "name": "gabra", - "email": "jerry+1@npmjs.com" - }, - { - "name": "isaacs", - "email": "i@izs.me" - } - ], - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/abbrev-1.1.1.tgz_1506566833068_0.05750026390887797" - }, - "directories": {}, - "_resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "_integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" -} diff --git a/test/registry.js b/test/registry.js index 4b0491c7..9972e489 100644 --- a/test/registry.js +++ b/test/registry.js @@ -128,19 +128,26 @@ t.test('provide different type of integrity, concats', async t => { )) }) -t.test('provide matching integrity, totes ok', async t => { +t.test('provide matching integrity, totes ok, includes signature', async t => { const f = new RegistryFetcher('@isaacs/namespace-test', { registry, cache, // eslint-disable-next-line max-len integrity: 'sha512-5ZYe1LgwHIaag0p9loMwsf5N/wJ4XAuHVNhSO+qulQOXWnyJVuco6IZjo+5u4ZLF/GimdHJcX+QK892ONfOCqQ==', }) - return f.manifest().then(mani => - t.equal( - mani._integrity, + return f.manifest().then(mani => { + t.match(mani, { // eslint-disable-next-line max-len - 'sha512-5ZYe1LgwHIaag0p9loMwsf5N/wJ4XAuHVNhSO+qulQOXWnyJVuco6IZjo+5u4ZLF/GimdHJcX+QK892ONfOCqQ==' - )) + _integrity: 'sha512-5ZYe1LgwHIaag0p9loMwsf5N/wJ4XAuHVNhSO+qulQOXWnyJVuco6IZjo+5u4ZLF/GimdHJcX+QK892ONfOCqQ==', + _signatures: [ + { + keyid: 'SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA', + // eslint-disable-next-line max-len + sig: 'MEQCIHXwKYe70+xcDOvFhM1etZQFUKEwz9VarppUbp5/Ie1+AiAM7aZcT1a2JR0oF/XwjNb13YEHwiagnDapLgYbklRvtA==', + }, + ], + }) + }) }) t.test('404 fails with E404', t => {