diff --git a/__tests__/__snapshots__/normalize-manifest.js.snap b/__tests__/__snapshots__/normalize-manifest.js.snap index eb903b98d4..96bece70ad 100644 --- a/__tests__/__snapshots__/normalize-manifest.js.snap +++ b/__tests__/__snapshots__/normalize-manifest.js.snap @@ -62,9 +62,12 @@ Array [ exports[`dangerous bin name: dangerous bin name 1`] = ` Array [ + "foo: Invalid bin entry for \\".\\" (in \\"foo\\").", + "foo: Invalid bin entry for \\"..\\" (in \\"foo\\").", "foo: Invalid bin entry for \\"/tmp/foo\\" (in \\"foo\\").", "foo: Invalid bin entry for \\"../tmp/foo\\" (in \\"foo\\").", "foo: Invalid bin entry for \\"tmp/../../foo\\" (in \\"foo\\").", + "foo: Invalid bin entry for \\"build:cli\\" (in \\"foo\\").", "foo: No license field", ] `; diff --git a/__tests__/fixtures/normalize-manifest/dangerous bin name/actual.json b/__tests__/fixtures/normalize-manifest/dangerous bin name/actual.json index d70ea69e80..2b429e5e9f 100644 --- a/__tests__/fixtures/normalize-manifest/dangerous bin name/actual.json +++ b/__tests__/fixtures/normalize-manifest/dangerous bin name/actual.json @@ -1,9 +1,13 @@ { - "name": "foo", - "version": "", - "bin": { - "/tmp/foo": "main.js", - "../tmp/foo": "main.js", - "tmp/../../foo": "main.js" - } + "name": "foo", + "version": "", + "bin": { + ".": "main.js", + "..": "main.js", + "/tmp/foo": "main.js", + "../tmp/foo": "main.js", + "tmp/../../foo": "main.js", + "build:cli": "main.js", + "build.cli": "main.js" + } } diff --git a/__tests__/fixtures/normalize-manifest/dangerous bin name/expected.json b/__tests__/fixtures/normalize-manifest/dangerous bin name/expected.json index 80ce110c76..b7f6cf75df 100644 --- a/__tests__/fixtures/normalize-manifest/dangerous bin name/expected.json +++ b/__tests__/fixtures/normalize-manifest/dangerous bin name/expected.json @@ -1,5 +1,7 @@ { - "name": "foo", - "version": "", - "bin": {} + "name": "foo", + "version": "", + "bin": { + "build.cli": "main.js" + } } diff --git a/src/util/normalize-manifest/fix.js b/src/util/normalize-manifest/fix.js index 7d9796dee3..ef7b7798d6 100644 --- a/src/util/normalize-manifest/fix.js +++ b/src/util/normalize-manifest/fix.js @@ -12,7 +12,7 @@ const semver = require('semver'); const path = require('path'); const url = require('url'); -const VALID_BIN_KEYS = /^[a-z0-9_-]+$/i; +const VALID_BIN_KEYS = /^(?!\.{0,2}$)[a-z0-9._-]+$/i; const LICENSE_RENAMES: {[key: string]: ?string} = { 'MIT/X11': 'MIT',