Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
TestRunner.prototype._makeBowerSandbox = function _makeBowerSandbox(next) {
if (this._cancelled) return next('cancelled');
// check bower.json, component.json, and .bower.json
BowerJson.find(this._root, function(error, file) {
if (error) return next(['No bower json file found', error]);
BowerJson.read(file, function(error, info) {
if (error) return next(['Invalid bower.json', error]);
if (!(typeof info.name === 'string')) return next('package name is required');
// Make sure the name doesn't break out of our sandbox
var packageRoot = path.resolve(this._sandbox, info.name);
if (packageRoot.indexOf(this._sandbox) !== 0) {
return next('Inavlid package name: ' + info.name);
}
shelljs.mv(this._root, packageRoot);
this._root = packageRoot;
next();
}.bind(this));
BowerJson.find(this._root, function(error, file) {
if (error) return next(['No bower json file found', error]);
BowerJson.read(file, function(error, info) {
if (error) return next(['Invalid bower.json', error]);
if (!(typeof info.name === 'string')) return next('package name is required');
// Make sure the name doesn't break out of our sandbox
var packageRoot = path.resolve(this._sandbox, info.name);
if (packageRoot.indexOf(this._sandbox) !== 0) {
return next('Inavlid package name: ' + info.name);
}
shelljs.mv(this._root, packageRoot);
this._root = packageRoot;
next();
}.bind(this));
}.bind(this));
};
bowerJson.find(path.resolve(options.directory, package), function(err, filename){
if (!filename){
output[package] = {licenses: 'UNKNOWN'};
completed.push(package);
return;
}
bowerJson.read(filename, function(err, bowerData){
if (!!err) {
callback(null, err);
return;
}
var moduleInfo = {licenses: []};
if (bowerData.license) moduleInfo.licenses = moduleInfo.licenses.concat(bowerData.license);
if (bowerData.repository) moduleInfo.repository = bowerData.repository;
if (bowerData.homepage) moduleInfo.homepage = bowerData.homepage;
// enhance with npm-license
npmLicense.init({start: path.resolve(options.directory, package)}, function(npmData){
var npmVersion;
if (Object.keys(npmData).length > 0)
npmVersion = Object.keys(npmData)[0].split('@')[1];
}, function (err) {
// No json file was found, assume one
if (err.code === 'ENOENT' && options.assume) {
return [bowerJson.parse(options.assume, options), false, true];
}
err.details = err.message;
if (err.file) {
err.message = 'Failed to read ' + err.file;
err.data = { filename: err.file };
} else {
err.message = 'Failed to read json from ' + file;
}
throw err;
});
}
function(err) {
// No json file was found, assume one
if (err.code === 'ENOENT' && options.assume) {
return [bowerJson.parse(options.assume, options), false, true];
}
err.details = err.message;
if (err.file) {
err.message = 'Failed to read ' + err.file;
err.data = { filename: err.file };
} else {
err.message = 'Failed to read json from ' + file;
}
throw err;
}
);
it('validate', function(){
const data = fs.readFileSync(__dirname+'/../bower.json');
const json = JSON.parse(data);
const bj = require('bower-json');
const norm = bj.parse(json);
assert.equal(json.main, "causality.js");
});
});
async.eachSeries(Object.keys(d), function (dep, next) {
bowerJSON.find(__root + '/bower_components/' + dep, function (err, file) {
if (file) {
return next();
}
console.log('installing ' + dep);
bower.commands
.install([dep + '#' + d[dep]], {
save: false,
force: true,
forceLatest: true
})
.on('error', function (err) {
console.log('error installing bower dependency ' + dep + ' for ' + self.name);
console.log(err);
next();
})
.on('end', function () {
packages.forEach(function(package){
bowerJson.find(path.resolve(options.directory, package), function(err, filename){
if (!filename){
output[package] = {licenses: 'UNKNOWN'};
completed.push(package);
return;
}
bowerJson.read(filename, function(err, bowerData){
if (!!err) {
callback(null, err);
return;
}
var moduleInfo = {licenses: []};
if (bowerData.license) moduleInfo.licenses = moduleInfo.licenses.concat(bowerData.license);
if (bowerData.repository) moduleInfo.repository = bowerData.repository;
if (bowerData.homepage) moduleInfo.homepage = bowerData.homepage;
return new Promise(function (resolve, reject) {
bowerJson.find('.', function (err, filename) {
if (err) {
reject(err);
} else {
resolve(filename);
}
});
}).then(function (filename) {
return fs.readFileAsync(filename, 'utf8').then(function (content) {
#!/usr/bin/env node
'use strict';
var path = require('path');
var packageJSON = require(path.join(__dirname, 'package.json'));
var bowerFile = path.join(__dirname, 'bower.json');
var bowerJSON = require('bower-json').parse(
require(bowerFile),
{normalize: true}
);
bowerJSON.version = packageJSON.version;
require('fs').writeFileSync(
bowerFile,
JSON.stringify(bowerJSON, null, 2) + '\n'
);