Socket
Socket
Sign inDemoInstall

snyk-sbt-plugin

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

snyk-sbt-plugin - npm Package Compare versions

Comparing version 1.0.2 to 1.1.0

test/fixtures/sbt-single-config-dependency-output.txt

42

lib/parse-sbt.js
var tabdown = require('./tabdown');
function converStrToTree(dependenciesTextTree) {
function convertStrToTree(dependenciesTextTree) {
var lines = dependenciesTextTree.toString().split('\n') || [];
var newLines = dependenciesTextTree.toString().split('\n')
var newLines = lines
.map(function (line) {

@@ -105,9 +105,25 @@ return line.replace(/\u001b\[0m/g, '');

function parse(text, name, version) {
var tree = converStrToTree(text);
var snykTree = {
name: name,
version: version,
dependencies: [],
};
walkInTree(snykTree, tree);
var rootTree = convertStrToTree(text);
var snykTree;
var appTree;
if (rootTree.root.length === 1) {
// single build configuration
// - use parsed package name and version
// - use single project as root
appTree = rootTree.root[0];
snykTree = getPackageNameAndVersion(getKeys(appTree).pop());
snykTree.dependencies = [];
} else {
// multi build configuration
// - use provided package name and version
// - use complete tree as root
appTree = rootTree;
snykTree = {
multiBuild: true, // multi build == fake broken diamond! == beware
name: name,
version: version,
dependencies: [],
};
}
walkInTree(snykTree, appTree);
snykTree.dependencies = convertDepArrayToObject(snykTree.dependencies);

@@ -121,1 +137,9 @@ return snykTree;

};
function getKeys(obj) {
var keys = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) { keys.push(key); }
}
return keys;
}

@@ -20,10 +20,9 @@ {

"devDependencies": {
"fs": "0.0.1-security",
"jscs": "^3.0.7",
"semantic-release": "^6.3.6",
"sinon": "^2.3.2",
"tap": "^10.3.2",
"sinon": "^2.4.1",
"tap": "^10.7.0",
"tap-only": "0.0.5"
},
"version": "1.0.2"
"version": "1.1.0"
}

@@ -6,4 +6,4 @@ var fs = require('fs');

test('parse a `sbt dependencies` output', function (t) {
t.plan(4);
test('parse `sbt dependencies` output: multi configuration', function (t) {
t.plan(7);
var sbtOutput = fs.readFileSync(path.join(

@@ -13,2 +13,8 @@ __dirname, '..', 'fixtures', 'sbt-dependency-output.txt'), 'utf8');

t.equal(depTree.name,
'testApp',
'package name');
t.equal(depTree.version, '1.0.1', 'package version');
t.true(depTree.multiBuild, 'multi build flag set');
t.equal(depTree

@@ -51,3 +57,62 @@ .dependencies['myproject-common:myproject-common_2.11']

test('parse `sbt dependencies` output: single configuration', function (t) {
t.plan(9);
var sbtOutput = fs.readFileSync(path.join(
__dirname, '..', 'fixtures', 'sbt-single-config-dependency-output.txt'),
'utf8');
var depTree = parser.parse(sbtOutput, 'unused', 'unused');
t.equal(depTree.name,
'my-recommendation-spark-engine:my-recommendation-spark-engine_2.10',
'package name');
t.equal(depTree.version, '1.0-SNAPSHOT', 'package version');
t.equal(depTree.multiBuild, undefined, 'no multi build flag set');
t.equal(depTree
.dependencies['com.google.code.gson:gson']
.version,
'2.6.2', 'top level dependency');
t.equal(depTree
.dependencies['com.stratio.datasource:spark-mongodb_2.10']
.version,
'0.11.1', 'top level dependency');
t.equal(depTree
.dependencies['com.stratio.datasource:spark-mongodb_2.10']
.dependencies['org.mongodb:casbah-commons_2.10'].version,
'2.8.0', 'transient dependency');
t.equal(depTree
.dependencies['com.stratio.datasource:spark-mongodb_2.10']
.dependencies['org.mongodb:casbah-commons_2.10']
.dependencies['com.github.nscala-time:nscala-time_2.10'].version,
'1.0.0', 'transient dependency');
t.equal(depTree
.dependencies['com.stratio.datasource:spark-mongodb_2.10']
.dependencies['org.mongodb:casbah-commons_2.10']
.dependencies['com.github.nscala-time:nscala-time_2.10']
.dependencies['joda-time:joda-time'].version,
'2.5', 'transient dependency');
t.same(depTree
.dependencies['com.stratio.datasource:spark-mongodb_2.10']
.dependencies['org.mongodb:casbah-commons_2.10']
.dependencies['com.github.nscala-time:nscala-time_2.10']
.dependencies['joda-time:joda-time']
.from,
[
'my-recommendation-spark-engine:my-recommendation-spark-engine_2.10@' +
'1.0-SNAPSHOT',
'com.stratio.datasource:spark-mongodb_2.10@0.11.1',
'org.mongodb:casbah-commons_2.10@2.8.0',
'com.github.nscala-time:nscala-time_2.10@1.0.0',
'joda-time:joda-time@2.5',
],
'`from` array is good');
});
test('parse an error output', function (t) {

@@ -54,0 +119,0 @@ t.plan(1);

@@ -13,3 +13,2 @@ var fs = require('fs');

t.equal(result.package
.dependencies['com.example:hello_2.12']
.dependencies['axis:axis']

@@ -28,2 +27,5 @@ .dependencies['axis:axis-jaxrpc']

'build.sbt')
.then(function () {
t.fail('should not be reached');
})
.catch(function (result) {

@@ -30,0 +32,0 @@ t.pass('Error thrown correctly');

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc