async match(content){ const electron = content.json.dependencies && 'electron' in content.json.dependencies ? coerce(content.json.dependencies.electron) : undefined; const electronDev = content.json.devDependencies && 'electron' in content.json.devDependencies ? coerce(content.json.devDependencies.electron) : undefined; let location = []; if (electron) { location.push({ line: 1, column: 0, id: this.id, description: this.description, shortenedURL: this.shortenedURL, properties: { "versionNumber": electron.raw }, severity: severity.INFORMATIONAL, confidence: confidence.CERTAIN, manualReview: false }); } if (electronDev) { location.push({ line: 1, column: 0, id: this.id, description: this.description, shortenedURL: this.shortenedURL, properties: { "versionNumber": electronDev.raw }, severity: severity.INFORMATIONAL, confidence: confidence.CERTAIN, manualReview: true }); } return location; }
function isVersionPrerelease(version) { const parsed = semver.parse(version); if (!parsed) return false; return Boolean(parsed.prerelease.length); }
export function minMatchingVersion(versionString) { try { const v = minVersion(versionString); return v.raw; } catch (_) { return undefined; } }
const getMajorVersion = (input) => semver.parse(input).major
// prior to -headers.tar.gz test('test process release - process.version = 0.10.41', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v0.10.41', null) t.equal(release.semver.version, '0.10.41') delete release.semver t.deepEqual(release, { version: '0.10.41', name: 'node', baseUrl: 'https://nodejs.org/dist/v0.10.41/', tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz', shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt', versionDir: '0.10.41', ia32: { libUrl: 'https://nodejs.org/dist/v0.10.41/node.lib', libPath: 'node.lib' }, x64: { libUrl: 'https://nodejs.org/dist/v0.10.41/x64/node.lib', libPath: 'x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/dist/v0.10.41/arm64/node.lib', libPath: 'arm64/node.lib' } }) })
const getMinorVersion = (input) => semver.parse(input).minor
function rangeToVersion(range) { try { return semver.coerce(range).version; } catch { return null; } }
test('test process release - process.version = 0.8.20', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v0.8.20', null) t.equal(release.semver.version, '0.8.20') delete release.semver t.deepEqual(release, { version: '0.8.20', name: 'node', baseUrl: 'https://nodejs.org/dist/v0.8.20/', tarballUrl: 'https://nodejs.org/dist/v0.8.20/node-v0.8.20.tar.gz', shasumsUrl: 'https://nodejs.org/dist/v0.8.20/SHASUMS256.txt', versionDir: '0.8.20', ia32: { libUrl: 'https://nodejs.org/dist/v0.8.20/node.lib', libPath: 'node.lib' }, x64: { libUrl: 'https://nodejs.org/dist/v0.8.20/x64/node.lib', libPath: 'x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/dist/v0.8.20/arm64/node.lib', libPath: 'arm64/node.lib' } }) })
test('test process release - process.version = 0.10.21', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v0.10.21', null) t.equal(release.semver.version, '0.10.21') delete release.semver t.deepEqual(release, { version: '0.10.21', name: 'node', baseUrl: 'https://nodejs.org/dist/v0.10.21/', tarballUrl: 'https://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz', shasumsUrl: 'https://nodejs.org/dist/v0.10.21/SHASUMS256.txt', versionDir: '0.10.21', ia32: { libUrl: 'https://nodejs.org/dist/v0.10.21/node.lib', libPath: 'node.lib' }, x64: { libUrl: 'https://nodejs.org/dist/v0.10.21/x64/node.lib', libPath: 'x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/dist/v0.10.21/arm64/node.lib', libPath: 'arm64/node.lib' } }) })
// has -headers.tar.gz test('test process release - process.release ~ node@0.10.42', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v0.10.42', null) t.equal(release.semver.version, '0.10.42') delete release.semver t.deepEqual(release, { version: '0.10.42', name: 'node', baseUrl: 'https://nodejs.org/dist/v0.10.42/', tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz', shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt', versionDir: '0.10.42', ia32: { libUrl: 'https://nodejs.org/dist/v0.10.42/node.lib', libPath: 'node.lib' }, x64: { libUrl: 'https://nodejs.org/dist/v0.10.42/x64/node.lib', libPath: 'x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/dist/v0.10.42/arm64/node.lib', libPath: 'arm64/node.lib' } }) })
// has -headers.tar.gz test('test process release - process.release ~ node@0.12.10', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v0.12.10', null) t.equal(release.semver.version, '0.12.10') delete release.semver t.deepEqual(release, { version: '0.12.10', name: 'node', baseUrl: 'https://nodejs.org/dist/v0.12.10/', tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz', shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt', versionDir: '0.12.10', ia32: { libUrl: 'https://nodejs.org/dist/v0.12.10/node.lib', libPath: 'node.lib' }, x64: { libUrl: 'https://nodejs.org/dist/v0.12.10/x64/node.lib', libPath: 'x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/dist/v0.12.10/arm64/node.lib', libPath: 'arm64/node.lib' } }) })
test('test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz', function (t) { t.plan(2) var release = processRelease([], { opts: { 'dist-url': 'https://foo.bar/baz' } }, 'v4.1.23', { name: 'node', headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz' }) t.equal(release.semver.version, '4.1.23') delete release.semver t.deepEqual(release, { version: '4.1.23', name: 'node', baseUrl: 'https://foo.bar/baz/v4.1.23/', tarballUrl: 'https://foo.bar/baz/v4.1.23/node-v4.1.23-headers.tar.gz', shasumsUrl: 'https://foo.bar/baz/v4.1.23/SHASUMS256.txt', versionDir: '4.1.23', ia32: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' }, x64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' }, arm64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' } }) })
test('test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/', function (t) { t.plan(2) var release = processRelease([], { opts: { 'dist-url': 'http://foo.bar/baz/' } }, 'v4.1.23', { name: 'frankenstein', headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23.tar.gz' }) t.equal(release.semver.version, '4.1.23') delete release.semver t.deepEqual(release, { version: '4.1.23', name: 'frankenstein', baseUrl: 'http://foo.bar/baz/v4.1.23/', tarballUrl: 'http://foo.bar/baz/v4.1.23/frankenstein-v4.1.23-headers.tar.gz', shasumsUrl: 'http://foo.bar/baz/v4.1.23/SHASUMS256.txt', versionDir: 'frankenstein-4.1.23', ia32: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' }, x64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' }, arm64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' } }) })
test('test process release - process.release ~ node@4.0.0-rc.4', function (t) { t.plan(2) var release = processRelease([], { opts: {} }, 'v4.0.0-rc.4', { name: 'node', headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz' }) t.equal(release.semver.version, '4.0.0-rc.4') delete release.semver t.deepEqual(release, { version: '4.0.0-rc.4', name: 'node', baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/', tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz', shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt', versionDir: '4.0.0-rc.4', ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' }, x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' }, arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' } }) })