Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dalek-browser-ie

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dalek-browser-ie - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

report/coverage/coverage.png

116

Gruntfile.js

@@ -124,2 +124,17 @@ /* jshint camelcase: false */

// up version, tag & commit
bump: {
options: {
files: ['package.json'],
commit: true,
commitMessage: 'Release v%VERSION%',
commitFiles: ['package.json'],
createTag: true,
tagName: '%VERSION%',
tagMessage: '%VERSION%',
push: true,
pushTo: 'git@github.com:dalekjs/dalek-browser-ie.git'
}
},
// compress artifacts

@@ -246,2 +261,102 @@ compress: {

// archives the docs if a new version appears
grunt.registerTask('archive', function () {
var done = this.async();
grunt.util.spawn({cmd: 'git', args: ['describe', '--abbrev=0', '--tags']}, function (error, result) {
var lastTag = result.toString();
if (grunt.file.isFile('_raw/docs/' + lastTag + '/internetexplorer.html')) {
grunt.log.ok('Nothing to archive');
done();
return true;
}
if (!grunt.file.isDir('_raw/docs/' + lastTag)) {
grunt.file.mkdir('_raw/docs/' + lastTag);
}
grunt.file.copy('report/docs/internetexplorer.html', '_raw/docs/' + lastTag + '/internetexplorer.html');
grunt.log.ok('Archived document with version: ' + lastTag);
done();
});
});
// releases a new canary build
grunt.registerTask('release-canary', function () {
var done = this.async();
var pkg = grunt.config.get('pkg');
var canaryPkg = grunt.util._.clone(pkg);
Object.keys(canaryPkg.dependencies).forEach(function (pack) {
if (pack.search('dalek') !== -1) {
delete canaryPkg.dependencies[pack];
canaryPkg.dependencies[pack + '-canary'] = 'latest';
}
});
canaryPkg.name = canaryPkg.name + '-canary';
canaryPkg.version = canaryPkg.version + '-' + grunt.template.today('yyyy-mm-dd-HH-MM-ss');
grunt.file.write('package.json', JSON.stringify(canaryPkg, true, 2));
var npm = require('npm');
npm.load({}, function() {
npm.registry.adduser(process.env.npmuser, process.env.npmpass, process.env.npmmail, function(err) {
if (err) {
grunt.log.error(err);
grunt.file.write('package.json', JSON.stringify(pkg, true, 2));
done(false);
} else {
npm.config.set('email', process.env.npmmail, 'user');
npm.commands.publish([], function(err) {
grunt.file.write('package.json', JSON.stringify(pkg, true, 2));
grunt.log.ok('Published canary build to registry');
done(!err);
});
}
});
});
});
// release a new version
grunt.registerTask('release-package', function () {
var done = this.async();
var http = require('http');
var pkg = grunt.config.get('pkg');
var body = '';
http.get('http://registry.npmjs.org/' + pkg.name, function(res) {
res.on('data', function (data) {
body += data;
});
res.on('end', function () {
var versions = grunt.util._.pluck(JSON.parse(body).versions, 'version');
var currVersion = parseInt(pkg.version.replace(/\./gi, ''), 10);
var availableVersions = versions.map(function (version) {
return parseInt(version.replace(/\./gi, ''), 10);
});
if (!grunt.util._.contains(availableVersions, currVersion)) {
var npm = require('npm');
npm.load({}, function() {
npm.registry.adduser(process.env.npmuser, process.env.npmpass, process.env.npmmail, function(err) {
if (err) {
grunt.log.error(err);
done(false);
} else {
npm.config.set('email', process.env.npmmail, 'user');
npm.commands.publish([], function(err) {
grunt.log.ok('Released new version: ', pkg.version);
done(!err);
});
}
});
});
} else {
done();
}
});
});
});
// load 3rd party tasks

@@ -256,2 +371,3 @@ grunt.loadNpmTasks('grunt-contrib-jshint');

grunt.loadNpmTasks('grunt-plato');
grunt.loadNpmTasks('grunt-bump');
grunt.loadNpmTasks('grunt-include-replace');

@@ -258,0 +374,0 @@

169

index.js

@@ -29,4 +29,4 @@ /*!

var Q = require('q');
var spawn = require('child_process').spawn;
var exec = require('child_process').exec;
var cp = require('child_process');
var portscanner = require('portscanner');

@@ -58,2 +58,24 @@ // int. libs

*
* The Webdriver Server tries to open Port 5555 by default,
* if this port is blocked, it tries to use a port between 5555 & 5564
* You can specifiy a different port from within your [Dalekfile](/pages/config.html) like so:
*
* ```javascript
* "browsers": {
* "ie": {
* "port": 6555
* }
* }
* ```
*
* It is also possible to specify a range of ports:
*
* ```javascript
* "browsers": {
* "ie": {
* "portRange": [6100, 6120]
* }
* }
* ```
*
* @module DalekJS

@@ -92,4 +114,16 @@ * @class InternetExplorer

/**
* Default maximum port of the IEDriverServer
* The port is the highest port in the range that can be allocated
* by the IEDriverServer
*
* @property maxPort
* @type integer
* @default 5654
*/
maxPort: 5654,
/**
* Default host of the IEDriverServer
* The host may be overriden with
* The host may be overridden with
* a user configured value

@@ -105,2 +139,27 @@ *

/**
* Default desired capabilities that should be
* transferred when the browser session gets requested
*
* @property desiredCapabilities
* @type object
*/
desiredCapabilities: {
browserName: 'InternetExplorer'
},
/**
* Driver defaults, what should the driver be able to access.
*
* @property driverDefaults
* @type object
*/
driverDefaults: {
viewport: true,
status: true,
sessionInfo: true
},
/**
* Path to the IEDriverServer.exe file

@@ -125,2 +184,13 @@ *

/**
* IE processes that are running on startup,
* and therefor shouldn`t be closed
*
* @property openProcesses
* @type array
* @default []
*/
openProcesses: [],
/**
* Resolves the driver port

@@ -148,2 +218,13 @@ *

/**
* Resolves the maximum range for the driver port
*
* @method getMaxPort
* @return {integer} port Max WebDriver server port range
*/
getMaxPort: function () {
return this.maxPort;
},
/**
* Launches the driver

@@ -156,14 +237,18 @@ * (the driver takes care of launching the browser)

launch: function () {
launch: function (configuration, events, config) {
var deferred = Q.defer();
var stream = '';
this.spawned = spawn(iedriver.path, ['--port=' + this.getPort()]);
this.spawned.stdout.on('data', function (data) {
var dataStr = data + '';
stream += dataStr;
if (stream.search('Listening on port') !== -1) {
deferred.resolve();
}
});
// store injected configuration/log event handlers
this.reporterEvents = events;
this.configuration = configuration;
this.config = config;
// check for a user set port
var browsers = this.config.get('browsers');
if (browsers && Array.isArray(browsers)) {
browsers.forEach(this._checkUserDefinedPorts.bind(this));
}
// check if the current port is in use, if so, scan for free ports
portscanner.findAPortNotInUse(this.getPort(), this.getMaxPort(), this.getHost(), this._checkPorts.bind(this, deferred));
return deferred.promise;

@@ -187,3 +272,2 @@ },

// kill the browser process
console.log(svc[idx]);
this._kill(svc[idx].PID);

@@ -200,3 +284,56 @@ }

_checkPorts: function (deferred, err, port) {
// check if the port was blocked & if we need to switch to another port
if (this.port !== port) {
this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to port: ' + port);
this.port = port;
}
// invoke the ie driver afterwards
this._startIEdriver(deferred);
return this;
},
_startIEdriver: function (deferred) {
var stream = '';
this.spawned = cp.spawn(iedriver.path, ['--port=' + this.getPort()]);
this.spawned.stdout.on('data', function (data) {
var dataStr = data + '';
stream += dataStr;
if (stream.search('Listening on port') !== -1) {
deferred.resolve();
}
});
return this;
},
/**
* Process user defined ports
*
* @method _checkUserDefinedPorts
* @param {object} browser Browser configuration
* @chainable
* @private
*/
_checkUserDefinedPorts: function (browser) {
// check for a single defined port
if (browser.ie && browser.ie.port) {
this.port = parseInt(browser.ie.port, 10);
this.maxPort = this.port + 90;
this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to user defined port: ' + this.port);
}
// check for a port range
if (browser.ie && browser.ie.portRange && browser.ie.portRange.length === 2) {
this.port = parseInt(browser.ie.portRange[0], 10);
this.maxPort = parseInt(browser.ie.portRange[1], 10);
this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to user defined port(s): ' + this.port + ' -> ' + this.maxPort);
}
return this;
},
/**
* Lists all running processes (win only)

@@ -213,3 +350,3 @@ *

verbose = typeof verbose === 'boolean' ? verbose : false;
exec('tasklist /FO CSV' + (verbose === true ? ' /V' : ''), function (err, stdout) {
cp.exec('tasklist /FO CSV' + (verbose === true ? ' /V' : ''), function (err, stdout) {
var pi = stdout.split('\r\n');

@@ -268,3 +405,3 @@ var p = [];

}
exec('taskkill /PID ' + pid + (force === true ? ' /f' : ''),callback);
cp.exec('taskkill /PID ' + pid + (force === true ? ' /f' : ''),callback);
return this;

@@ -271,0 +408,0 @@ }

24

package.json
{
"name": "dalek-browser-ie",
"version": "0.0.1",
"version": "0.0.2",
"description": "Internet Explorer bindings for DalekJS",

@@ -40,5 +40,6 @@ "homepage": "http://dalekjs.com",

"ncp": "~0.4.2",
"npmconf": "~0.1.0",
"rimraf": "~2.2.0",
"q": "~0.9.6"
"npmconf": "~0.1.3",
"rimraf": "~2.2.2",
"q": "~0.9.7",
"portscanner": "~0.1.3"
},

@@ -48,6 +49,6 @@ "devDependencies": {

"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-jshint": "~0.6.2",
"grunt-contrib-yuidoc": "~0.4.0",
"grunt-contrib-compress": "~0.5.2",
"grunt-mocha-test": "~0.6.2",
"grunt-contrib-jshint": "~0.6.4",
"grunt-contrib-yuidoc": "~0.5.0",
"grunt-contrib-compress": "~0.5.1",
"grunt-mocha-test": "~0.7.0",
"grunt-complexity": "~0.1.3",

@@ -57,5 +58,10 @@ "grunt-plato": "~0.2.1",

"grunt-include-replace": "~1.1.0",
"grunt-conventional-changelog": "~1.0.0",
"grunt-concurrent": "~0.3.1",
"grunt-bump": "~0.0.11",
"load-grunt-tasks": "~0.1.0",
"time-grunt": "~0.1.1",
"blanket": "~1.1.5",
"chai": "~1.7.2"
"chai": "~1.8.0"
}
}

@@ -17,3 +17,3 @@ dalek-browser-ie

## Ressources
## Resources

@@ -20,0 +20,0 @@ [API Docs](http://dalekjs.com/package/dalek-browser-ie/master/api/index.html) -

@@ -13,3 +13,3 @@ YUI.add("yuidoc-meta", function(Y) {

"name": "DalekJS",
"description": "Internet Explorer Driver base class"
"description": "This module is a browser plugin for [DalekJS](//github.com/dalekjs/dalek).\nIt provides all a WebDriverServer & browser launcher for Internet Explorer.\n\nThe browser plugin can be installed with the following command:\n\n```bash\n$ npm install dalek-browser-ie --save-dev\n```\n\nYou can use the browser plugin by adding a config option to the your Dalekfile\n\n```javascript\n\"browsers\": [\"IE\"]\n```\n\nOr you can tell Dalek that it should test in this browser via the command line:\n\n```bash\n$ dalek mytest.js -b IE\n```\n\nThe Webdriver Server tries to open Port 5555 by default,\nif this port is blocked, it tries to use a port between 5555 & 5564\nYou can specifiy a different port from within your [Dalekfile](/pages/config.html) like so:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"port\": 6555 \n }\n}\n```\n\nIt is also possible to specify a range of ports:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"portRange\": [6100, 6120] \n }\n}\n```"
}

@@ -16,0 +16,0 @@ ]

@@ -5,3 +5,3 @@ {

"description": "Internet Explorer bindings for DalekJS",
"version": "0.0.1",
"version": "0.0.2",
"url": "http://dalekjs.com"

@@ -52,3 +52,3 @@ },

"line": 35,
"description": "Internet Explorer Driver base class",
"description": "This module is a browser plugin for [DalekJS](//github.com/dalekjs/dalek).\nIt provides all a WebDriverServer & browser launcher for Internet Explorer.\n\nThe browser plugin can be installed with the following command:\n\n```bash\n$ npm install dalek-browser-ie --save-dev\n```\n\nYou can use the browser plugin by adding a config option to the your Dalekfile\n\n```javascript\n\"browsers\": [\"IE\"]\n```\n\nOr you can tell Dalek that it should test in this browser via the command line:\n\n```bash\n$ dalek mytest.js -b IE\n```\n\nThe Webdriver Server tries to open Port 5555 by default,\nif this port is blocked, it tries to use a port between 5555 & 5564\nYou can specifiy a different port from within your [Dalekfile](/pages/config.html) like so:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"port\": 6555 \n }\n}\n```\n\nIt is also possible to specify a range of ports:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"portRange\": [6100, 6120] \n }\n}\n```",
"part": "InternetExplorer",

@@ -71,3 +71,3 @@ "api": ""

"line": 35,
"description": "Internet Explorer Driver base class"
"description": "This module is a browser plugin for [DalekJS](//github.com/dalekjs/dalek).\nIt provides all a WebDriverServer & browser launcher for Internet Explorer.\n\nThe browser plugin can be installed with the following command:\n\n```bash\n$ npm install dalek-browser-ie --save-dev\n```\n\nYou can use the browser plugin by adding a config option to the your Dalekfile\n\n```javascript\n\"browsers\": [\"IE\"]\n```\n\nOr you can tell Dalek that it should test in this browser via the command line:\n\n```bash\n$ dalek mytest.js -b IE\n```\n\nThe Webdriver Server tries to open Port 5555 by default,\nif this port is blocked, it tries to use a port between 5555 & 5564\nYou can specifiy a different port from within your [Dalekfile](/pages/config.html) like so:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"port\": 6555 \n }\n}\n```\n\nIt is also possible to specify a range of ports:\n\n```javascript\n\"browsers\": {\n \"ie\": {\n \"portRange\": [6100, 6120] \n }\n}\n```"
}

@@ -104,3 +104,3 @@ },

"file": "index.js",
"line": 47,
"line": 88,
"description": "Verbose version of the browser name",

@@ -118,3 +118,3 @@ "itemtype": "property",

"file": "index.js",
"line": 58,
"line": 99,
"description": "Default port of the IEDriverServer\nThe port may change, cause the port conflict resultion\ntool might pick another one, if the default one is blocked",

@@ -131,5 +131,17 @@ "itemtype": "property",

"file": "index.js",
"line": 70,
"description": "Default host of the IEDriverServer\nThe host may be overriden with\na user configured value",
"line": 111,
"description": "Default maximum port of the IEDriverServer\nThe port is the highest port in the range that can be allocated\nby the IEDriverServer",
"itemtype": "property",
"name": "maxPort",
"type": "integer",
"default": "5654",
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 123,
"description": "Default host of the IEDriverServer\nThe host may be overridden with\na user configured value",
"itemtype": "property",
"name": "host",

@@ -144,3 +156,25 @@ "type": "string",

"file": "index.js",
"line": 82,
"line": 135,
"description": "Default desired capabilities that should be\ntransferred when the browser session gets requested",
"itemtype": "property",
"name": "desiredCapabilities",
"type": "object",
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 147,
"description": "Driver defaults, what should the driver be able to access.",
"itemtype": "property",
"name": "driverDefaults",
"type": "object",
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 160,
"description": "Path to the IEDriverServer.exe file",

@@ -157,3 +191,3 @@ "itemtype": "property",

"file": "index.js",
"line": 92,
"line": 170,
"description": "Child process instance of the IEDriverServer",

@@ -169,3 +203,15 @@ "itemtype": "property",

"file": "index.js",
"line": 101,
"line": 179,
"description": "IE processes that are running on startup,\nand therefor shouldn`t be closed",
"itemtype": "property",
"name": "openProcesses",
"type": "array",
"default": "[]",
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 190,
"description": "Resolves the driver port",

@@ -184,3 +230,3 @@ "itemtype": "method",

"file": "index.js",
"line": 112,
"line": 201,
"description": "Returns the driver host",

@@ -199,3 +245,17 @@ "itemtype": "method",

"file": "index.js",
"line": 123,
"line": 212,
"description": "Resolves the maximum range for the driver port",
"itemtype": "method",
"name": "getMaxPort",
"return": {
"description": "port Max WebDriver server port range",
"type": "Integer"
},
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 223,
"description": "Launches the driver\n(the driver takes care of launching the browser)",

@@ -214,3 +274,3 @@ "itemtype": "method",

"file": "index.js",
"line": 146,
"line": 250,
"description": "Kills the driver & browser processes",

@@ -226,3 +286,23 @@ "itemtype": "method",

"file": "index.js",
"line": 173,
"line": 302,
"description": "Process user defined ports",
"itemtype": "method",
"name": "_checkUserDefinedPorts",
"params": [
{
"name": "browser",
"description": "Browser configuration",
"type": "Object"
}
],
"chainable": 1,
"access": "private",
"tagname": "",
"class": "Browser.InternetExplorer",
"module": "DalekJS",
"namespace": "Browser"
},
{
"file": "index.js",
"line": 329,
"description": "Lists all running processes (win only)",

@@ -254,3 +334,3 @@ "itemtype": "method",

"file": "index.js",
"line": 219,
"line": 375,
"description": "Kill a specific process (win only)",

@@ -302,3 +382,3 @@ "itemtype": "method",

"message": "unknown tag: api",
"line": " index.js:47"
"line": " index.js:88"
},

@@ -305,0 +385,0 @@ {

@@ -50,6 +50,6 @@ /*global $:false, _:false, Morris:false, __report:false, __history:false, __options: false */

value = el.data('bugs');
el.append(horizontalBar(value, value * 5, 'est errors', [1,5]));
el.append(horizontalBar(value, Math.min(value * 5, width), 'est errors', [1,5]));
value = el.data('lint');
el.append(horizontalBar(value, value * 5, 'lint errors', [1,10]));
el.append(horizontalBar(value, Math.min(value * 5, width), 'lint errors', [1,10]));
});

@@ -56,0 +56,0 @@ }

@@ -1,1 +0,1 @@

__history = [{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":222,"lloc":73,"functions":13,"deliveredBugs":1.0112929462777493,"maintainability":71.78514980517332,"lintErrors":0,"difficulty":33.1875}]
__history = [{"date":"Tue, 24 Sep 2013 05:41:49 GMT","sloc":378,"lloc":107,"functions":17,"deliveredBugs":1.702845200669233,"maintainability":70.73402342986031,"lintErrors":0,"difficulty":39.91044776119403}]

@@ -1,1 +0,1 @@

[{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":222,"lloc":73,"functions":13,"deliveredBugs":1.0112929462777493,"maintainability":71.78514980517332,"lintErrors":0,"difficulty":33.1875}]
[{"date":"Tue, 24 Sep 2013 05:41:49 GMT","sloc":378,"lloc":107,"functions":17,"deliveredBugs":1.702845200669233,"maintainability":70.73402342986031,"lintErrors":0,"difficulty":39.91044776119403}]

@@ -1,1 +0,1 @@

__report = {"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":222,"logical":73},"cyclomatic":13,"halstead":{"operators":{"distinct":27,"total":201,"identifiers":["__stripped__"]},"operands":{"distinct":96,"total":236,"identifiers":["__stripped__"]},"length":437,"vocabulary":123,"difficulty":33.1875,"volume":3033.8788388332478,"effort":100686.85396377841,"bugs":1.0112929462777493,"time":5593.714109098801}}},"functions":[{"name":"getPort","line":108,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444}}},{"name":"getHost","line":119,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444}}},{"name":"launch","line":131,"complexity":{"sloc":{"physical":14,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":8,"total":21,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":22,"identifiers":["__stripped__"]},"length":43,"vocabulary":25,"difficulty":5.176470588235294,"volume":199.68581616031315,"effort":1033.667754241621,"bugs":0.06656193872010438,"time":57.42598634675672}}},{"name":"<anonymous>","line":136,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":12,"identifiers":["__stripped__"]},"length":23,"vocabulary":18,"difficulty":6,"volume":95.90827503317318,"effort":575.4496501990391,"bugs":0.03196942501105773,"time":31.969425011057726}}},{"name":"kill","line":153,"complexity":{"sloc":{"physical":19,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":11,"identifiers":["__stripped__"]},"length":20,"vocabulary":12,"difficulty":2.75,"volume":71.69925001442313,"effort":197.1729375396636,"bugs":0.02389975000480771,"time":10.954052085536865}}},{"name":"<anonymous>","line":155,"complexity":{"sloc":{"physical":12,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":6,"identifiers":["__stripped__"]},"length":11,"vocabulary":8,"difficulty":1.7999999999999998,"volume":33,"effort":59.39999999999999,"bugs":0.011,"time":3.2999999999999994}}},{"name":"<anonymous>","line":157,"complexity":{"sloc":{"physical":9,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":16,"vocabulary":11,"difficulty":1.6875,"volume":55.350905898196764,"effort":93.40465370320705,"bugs":0.018450301966065587,"time":5.189147427955947}}},{"name":"<anonymous>","line":158,"complexity":{"sloc":{"physical":7,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":13,"difficulty":3.111111111111111,"volume":92.5109929535273,"effort":287.8119780776405,"bugs":0.030836997651175767,"time":15.989554337646695}}},{"name":"_list","line":183,"complexity":{"sloc":{"physical":35,"logical":3},"cyclomatic":3,"halstead":{"operators":{"distinct":8,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":11,"total":15,"identifiers":["__stripped__"]},"length":25,"vocabulary":19,"difficulty":5.454545454545454,"volume":106.19818783608963,"effort":579.262842742307,"bugs":0.03539939594536321,"time":32.18126904123928}}},{"name":"<anonymous>","line":185,"complexity":{"sloc":{"physical":30,"logical":20},"cyclomatic":5,"halstead":{"operators":{"distinct":15,"total":62,"identifiers":["__stripped__"]},"operands":{"distinct":29,"total":69,"identifiers":["__stripped__"]},"length":131,"vocabulary":44,"difficulty":17.844827586206897,"volume":715.185542041486,"effort":12762.36268987824,"bugs":0.2383951806804953,"time":709.0201494376801}}},{"name":"<anonymous>","line":189,"complexity":{"sloc":{"physical":5,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":6,"total":8,"identifiers":["__stripped__"]},"length":15,"vocabulary":10,"difficulty":2.6666666666666665,"volume":49.82892142331044,"effort":132.8771237954945,"bugs":0.016609640474436815,"time":7.382062433083028}}},{"name":"_kill","line":230,"complexity":{"sloc":{"physical":12,"logical":8},"cyclomatic":4,"halstead":{"operators":{"distinct":13,"total":18,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":24,"identifiers":["__stripped__"]},"length":42,"vocabulary":27,"difficulty":11.142857142857142,"volume":199.7052750908657,"effort":2225.2873510125037,"bugs":0.06656842503028856,"time":123.6270750562502}}},{"name":"<anonymous>","line":234,"complexity":{"sloc":{"physical":1,"logical":0},"cyclomatic":1,"halstead":{"operators":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"operands":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"length":0,"time":0,"bugs":0,"effort":0,"volume":0,"difficulty":0,"vocabulary":0}}}],"maintainability":71.78514980517332,"module":"index.js"},"jshint":{"messages":[]}}
__report = {"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":378,"logical":107},"cyclomatic":17,"halstead":{"operators":{"distinct":28,"total":314,"identifiers":["__stripped__"]},"operands":{"distinct":134,"total":382,"identifiers":["__stripped__"]},"length":696,"vocabulary":162,"difficulty":39.91044776119403,"volume":5108.535602007699,"effort":203883.94328012815,"bugs":1.702845200669233,"time":11326.885737784898},"params":21}},"functions":[{"name":"getPort","line":197,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"getHost","line":208,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"getMaxPort","line":219,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"launch","line":231,"complexity":{"sloc":{"physical":18,"logical":9},"cyclomatic":2,"halstead":{"operators":{"distinct":7,"total":37,"identifiers":["__stripped__"]},"operands":{"distinct":23,"total":45,"identifiers":["__stripped__"]},"length":82,"vocabulary":30,"difficulty":6.8478260869565215,"volume":402.3650288398985,"effort":2755.3257409688704,"bugs":0.13412167627996618,"time":153.07365227604836},"params":3}},{"name":"kill","line":257,"complexity":{"sloc":{"physical":18,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":11,"identifiers":["__stripped__"]},"length":20,"vocabulary":12,"difficulty":2.75,"volume":71.69925001442313,"effort":197.1729375396636,"bugs":0.02389975000480771,"time":10.954052085536865},"params":0}},{"name":"<anonymous>","line":259,"complexity":{"sloc":{"physical":11,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":6,"identifiers":["__stripped__"]},"length":11,"vocabulary":8,"difficulty":1.7999999999999998,"volume":33,"effort":59.39999999999999,"bugs":0.011,"time":3.2999999999999994},"params":1}},{"name":"<anonymous>","line":261,"complexity":{"sloc":{"physical":8,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":16,"vocabulary":11,"difficulty":1.6875,"volume":55.350905898196764,"effort":93.40465370320705,"bugs":0.018450301966065587,"time":5.189147427955947},"params":2}},{"name":"<anonymous>","line":262,"complexity":{"sloc":{"physical":6,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":11,"difficulty":2.857142857142857,"volume":62.26976913547136,"effort":177.91362610134675,"bugs":0.020756589711823786,"time":9.88409033896371},"params":1}},{"name":"_checkPorts","line":276,"complexity":{"sloc":{"physical":11,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":7,"total":12,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":19,"identifiers":["__stripped__"]},"length":31,"vocabulary":16,"difficulty":7.388888888888889,"volume":124,"effort":916.2222222222223,"bugs":0.04133333333333333,"time":50.90123456790124},"params":3}},{"name":"_startIEdriver","line":288,"complexity":{"sloc":{"physical":13,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":8,"total":17,"identifiers":["__stripped__"]},"operands":{"distinct":15,"total":20,"identifiers":["__stripped__"]},"length":37,"vocabulary":23,"difficulty":5.333333333333333,"volume":167.37179237410948,"effort":892.6495593285838,"bugs":0.055790597458036495,"time":49.59164218492132},"params":1}},{"name":"<anonymous>","line":292,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":12,"identifiers":["__stripped__"]},"length":23,"vocabulary":18,"difficulty":6,"volume":95.90827503317318,"effort":575.4496501990391,"bugs":0.03196942501105773,"time":31.969425011057726},"params":1}},{"name":"_checkUserDefinedPorts","line":311,"complexity":{"sloc":{"physical":17,"logical":9},"cyclomatic":3,"halstead":{"operators":{"distinct":8,"total":50,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":62,"identifiers":["__stripped__"]},"length":112,"vocabulary":27,"difficulty":13.052631578947368,"volume":532.5474002423085,"effort":6951.14501368908,"bugs":0.1775158000807695,"time":386.1747229827267},"params":1}},{"name":"_list","line":339,"complexity":{"sloc":{"physical":35,"logical":3},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":12,"total":16,"identifiers":["__stripped__"]},"length":27,"vocabulary":21,"difficulty":6,"volume":118.59257041502654,"effort":711.5554224901592,"bugs":0.03953085680500885,"time":39.530856805008845},"params":2}},{"name":"<anonymous>","line":341,"complexity":{"sloc":{"physical":30,"logical":20},"cyclomatic":5,"halstead":{"operators":{"distinct":15,"total":62,"identifiers":["__stripped__"]},"operands":{"distinct":29,"total":69,"identifiers":["__stripped__"]},"length":131,"vocabulary":44,"difficulty":17.844827586206897,"volume":715.185542041486,"effort":12762.36268987824,"bugs":0.2383951806804953,"time":709.0201494376801},"params":2}},{"name":"<anonymous>","line":345,"complexity":{"sloc":{"physical":5,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":6,"total":8,"identifiers":["__stripped__"]},"length":15,"vocabulary":10,"difficulty":2.6666666666666665,"volume":49.82892142331044,"effort":132.8771237954945,"bugs":0.016609640474436815,"time":7.382062433083028},"params":1}},{"name":"_kill","line":386,"complexity":{"sloc":{"physical":12,"logical":8},"cyclomatic":4,"halstead":{"operators":{"distinct":14,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":15,"total":25,"identifiers":["__stripped__"]},"length":44,"vocabulary":29,"difficulty":11.666666666666668,"volume":213.7511637856132,"effort":2493.7635774988207,"bugs":0.07125038792853773,"time":138.54242097215672},"params":3}},{"name":"<anonymous>","line":390,"complexity":{"sloc":{"physical":1,"logical":0},"cyclomatic":1,"halstead":{"operators":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"operands":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"length":0,"time":0,"bugs":0,"effort":0,"volume":0,"difficulty":0,"vocabulary":0},"params":0}}],"maintainability":70.73402342986031,"params":1.2352941176470589,"module":"index.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":222,"logical":73},"cyclomatic":13,"halstead":{"operators":{"distinct":27,"total":201,"identifiers":["__stripped__"]},"operands":{"distinct":96,"total":236,"identifiers":["__stripped__"]},"length":437,"vocabulary":123,"difficulty":33.1875,"volume":3033.8788388332478,"effort":100686.85396377841,"bugs":1.0112929462777493,"time":5593.714109098801}}},"functions":[{"name":"getPort","line":108,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444}}},{"name":"getHost","line":119,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444}}},{"name":"launch","line":131,"complexity":{"sloc":{"physical":14,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":8,"total":21,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":22,"identifiers":["__stripped__"]},"length":43,"vocabulary":25,"difficulty":5.176470588235294,"volume":199.68581616031315,"effort":1033.667754241621,"bugs":0.06656193872010438,"time":57.42598634675672}}},{"name":"<anonymous>","line":136,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":12,"identifiers":["__stripped__"]},"length":23,"vocabulary":18,"difficulty":6,"volume":95.90827503317318,"effort":575.4496501990391,"bugs":0.03196942501105773,"time":31.969425011057726}}},{"name":"kill","line":153,"complexity":{"sloc":{"physical":19,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":11,"identifiers":["__stripped__"]},"length":20,"vocabulary":12,"difficulty":2.75,"volume":71.69925001442313,"effort":197.1729375396636,"bugs":0.02389975000480771,"time":10.954052085536865}}},{"name":"<anonymous>","line":155,"complexity":{"sloc":{"physical":12,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":6,"identifiers":["__stripped__"]},"length":11,"vocabulary":8,"difficulty":1.7999999999999998,"volume":33,"effort":59.39999999999999,"bugs":0.011,"time":3.2999999999999994}}},{"name":"<anonymous>","line":157,"complexity":{"sloc":{"physical":9,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":16,"vocabulary":11,"difficulty":1.6875,"volume":55.350905898196764,"effort":93.40465370320705,"bugs":0.018450301966065587,"time":5.189147427955947}}},{"name":"<anonymous>","line":158,"complexity":{"sloc":{"physical":7,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":13,"difficulty":3.111111111111111,"volume":92.5109929535273,"effort":287.8119780776405,"bugs":0.030836997651175767,"time":15.989554337646695}}},{"name":"_list","line":183,"complexity":{"sloc":{"physical":35,"logical":3},"cyclomatic":3,"halstead":{"operators":{"distinct":8,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":11,"total":15,"identifiers":["__stripped__"]},"length":25,"vocabulary":19,"difficulty":5.454545454545454,"volume":106.19818783608963,"effort":579.262842742307,"bugs":0.03539939594536321,"time":32.18126904123928}}},{"name":"<anonymous>","line":185,"complexity":{"sloc":{"physical":30,"logical":20},"cyclomatic":5,"halstead":{"operators":{"distinct":15,"total":62,"identifiers":["__stripped__"]},"operands":{"distinct":29,"total":69,"identifiers":["__stripped__"]},"length":131,"vocabulary":44,"difficulty":17.844827586206897,"volume":715.185542041486,"effort":12762.36268987824,"bugs":0.2383951806804953,"time":709.0201494376801}}},{"name":"<anonymous>","line":189,"complexity":{"sloc":{"physical":5,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":6,"total":8,"identifiers":["__stripped__"]},"length":15,"vocabulary":10,"difficulty":2.6666666666666665,"volume":49.82892142331044,"effort":132.8771237954945,"bugs":0.016609640474436815,"time":7.382062433083028}}},{"name":"_kill","line":230,"complexity":{"sloc":{"physical":12,"logical":8},"cyclomatic":4,"halstead":{"operators":{"distinct":13,"total":18,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":24,"identifiers":["__stripped__"]},"length":42,"vocabulary":27,"difficulty":11.142857142857142,"volume":199.7052750908657,"effort":2225.2873510125037,"bugs":0.06656842503028856,"time":123.6270750562502}}},{"name":"<anonymous>","line":234,"complexity":{"sloc":{"physical":1,"logical":0},"cyclomatic":1,"halstead":{"operators":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"operands":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"length":0,"time":0,"bugs":0,"effort":0,"volume":0,"difficulty":0,"vocabulary":0}}}],"maintainability":71.78514980517332,"module":"index.js"},"jshint":{"messages":[]}}
{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":378,"logical":107},"cyclomatic":17,"halstead":{"operators":{"distinct":28,"total":314,"identifiers":["__stripped__"]},"operands":{"distinct":134,"total":382,"identifiers":["__stripped__"]},"length":696,"vocabulary":162,"difficulty":39.91044776119403,"volume":5108.535602007699,"effort":203883.94328012815,"bugs":1.702845200669233,"time":11326.885737784898},"params":21}},"functions":[{"name":"getPort","line":197,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"getHost","line":208,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"getMaxPort","line":219,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"length":4,"vocabulary":4,"difficulty":1,"volume":8,"effort":8,"bugs":0.0026666666666666666,"time":0.4444444444444444},"params":0}},{"name":"launch","line":231,"complexity":{"sloc":{"physical":18,"logical":9},"cyclomatic":2,"halstead":{"operators":{"distinct":7,"total":37,"identifiers":["__stripped__"]},"operands":{"distinct":23,"total":45,"identifiers":["__stripped__"]},"length":82,"vocabulary":30,"difficulty":6.8478260869565215,"volume":402.3650288398985,"effort":2755.3257409688704,"bugs":0.13412167627996618,"time":153.07365227604836},"params":3}},{"name":"kill","line":257,"complexity":{"sloc":{"physical":18,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":11,"identifiers":["__stripped__"]},"length":20,"vocabulary":12,"difficulty":2.75,"volume":71.69925001442313,"effort":197.1729375396636,"bugs":0.02389975000480771,"time":10.954052085536865},"params":0}},{"name":"<anonymous>","line":259,"complexity":{"sloc":{"physical":11,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":6,"identifiers":["__stripped__"]},"length":11,"vocabulary":8,"difficulty":1.7999999999999998,"volume":33,"effort":59.39999999999999,"bugs":0.011,"time":3.2999999999999994},"params":1}},{"name":"<anonymous>","line":261,"complexity":{"sloc":{"physical":8,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":16,"vocabulary":11,"difficulty":1.6875,"volume":55.350905898196764,"effort":93.40465370320705,"bugs":0.018450301966065587,"time":5.189147427955947},"params":2}},{"name":"<anonymous>","line":262,"complexity":{"sloc":{"physical":6,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":11,"difficulty":2.857142857142857,"volume":62.26976913547136,"effort":177.91362610134675,"bugs":0.020756589711823786,"time":9.88409033896371},"params":1}},{"name":"_checkPorts","line":276,"complexity":{"sloc":{"physical":11,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":7,"total":12,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":19,"identifiers":["__stripped__"]},"length":31,"vocabulary":16,"difficulty":7.388888888888889,"volume":124,"effort":916.2222222222223,"bugs":0.04133333333333333,"time":50.90123456790124},"params":3}},{"name":"_startIEdriver","line":288,"complexity":{"sloc":{"physical":13,"logical":4},"cyclomatic":1,"halstead":{"operators":{"distinct":8,"total":17,"identifiers":["__stripped__"]},"operands":{"distinct":15,"total":20,"identifiers":["__stripped__"]},"length":37,"vocabulary":23,"difficulty":5.333333333333333,"volume":167.37179237410948,"effort":892.6495593285838,"bugs":0.055790597458036495,"time":49.59164218492132},"params":1}},{"name":"<anonymous>","line":292,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":9,"total":12,"identifiers":["__stripped__"]},"length":23,"vocabulary":18,"difficulty":6,"volume":95.90827503317318,"effort":575.4496501990391,"bugs":0.03196942501105773,"time":31.969425011057726},"params":1}},{"name":"_checkUserDefinedPorts","line":311,"complexity":{"sloc":{"physical":17,"logical":9},"cyclomatic":3,"halstead":{"operators":{"distinct":8,"total":50,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":62,"identifiers":["__stripped__"]},"length":112,"vocabulary":27,"difficulty":13.052631578947368,"volume":532.5474002423085,"effort":6951.14501368908,"bugs":0.1775158000807695,"time":386.1747229827267},"params":1}},{"name":"_list","line":339,"complexity":{"sloc":{"physical":35,"logical":3},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":12,"total":16,"identifiers":["__stripped__"]},"length":27,"vocabulary":21,"difficulty":6,"volume":118.59257041502654,"effort":711.5554224901592,"bugs":0.03953085680500885,"time":39.530856805008845},"params":2}},{"name":"<anonymous>","line":341,"complexity":{"sloc":{"physical":30,"logical":20},"cyclomatic":5,"halstead":{"operators":{"distinct":15,"total":62,"identifiers":["__stripped__"]},"operands":{"distinct":29,"total":69,"identifiers":["__stripped__"]},"length":131,"vocabulary":44,"difficulty":17.844827586206897,"volume":715.185542041486,"effort":12762.36268987824,"bugs":0.2383951806804953,"time":709.0201494376801},"params":2}},{"name":"<anonymous>","line":345,"complexity":{"sloc":{"physical":5,"logical":2},"cyclomatic":2,"halstead":{"operators":{"distinct":4,"total":7,"identifiers":["__stripped__"]},"operands":{"distinct":6,"total":8,"identifiers":["__stripped__"]},"length":15,"vocabulary":10,"difficulty":2.6666666666666665,"volume":49.82892142331044,"effort":132.8771237954945,"bugs":0.016609640474436815,"time":7.382062433083028},"params":1}},{"name":"_kill","line":386,"complexity":{"sloc":{"physical":12,"logical":8},"cyclomatic":4,"halstead":{"operators":{"distinct":14,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":15,"total":25,"identifiers":["__stripped__"]},"length":44,"vocabulary":29,"difficulty":11.666666666666668,"volume":213.7511637856132,"effort":2493.7635774988207,"bugs":0.07125038792853773,"time":138.54242097215672},"params":3}},{"name":"<anonymous>","line":390,"complexity":{"sloc":{"physical":1,"logical":0},"cyclomatic":1,"halstead":{"operators":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"operands":{"distinct":0,"total":0,"identifiers":["__stripped__"]},"length":0,"time":0,"bugs":0,"effort":0,"volume":0,"difficulty":0,"vocabulary":0},"params":0}}],"maintainability":70.73402342986031,"params":1.2352941176470589,"module":"index.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

__history = [{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":178,"lloc":119,"functions":17,"deliveredBugs":1.8435132864660952,"maintainability":69.0704292884515,"lintErrors":0,"difficulty":35.79276315789473}]
__history = [{"date":"Tue, 24 Sep 2013 05:41:50 GMT","sloc":178,"lloc":119,"functions":17,"deliveredBugs":1.8435132864660952,"maintainability":69.0704292884515,"lintErrors":0,"difficulty":35.79276315789473}]

@@ -1,1 +0,1 @@

[{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":178,"lloc":119,"functions":17,"deliveredBugs":1.8435132864660952,"maintainability":69.0704292884515,"lintErrors":0,"difficulty":35.79276315789473}]
[{"date":"Tue, 24 Sep 2013 05:41:50 GMT","sloc":178,"lloc":119,"functions":17,"deliveredBugs":1.8435132864660952,"maintainability":69.0704292884515,"lintErrors":0,"difficulty":35.79276315789473}]

@@ -1,1 +0,1 @@

__report = {"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218}}},"functions":[{"name":"getRequestOptions","line":29,"complexity":{"sloc":{"physical":16,"logical":11},"cyclomatic":3,"halstead":{"operators":{"distinct":12,"total":31,"identifiers":["__stripped__"]},"operands":{"distinct":16,"total":34,"identifiers":["__stripped__"]},"length":65,"vocabulary":28,"difficulty":12.75,"volume":312.4780699337442,"effort":3984.095391655239,"bugs":0.10415935664458141,"time":221.3386328697355}}},{"name":"requestBinary","line":46,"complexity":{"sloc":{"physical":33,"logical":6},"cyclomatic":1,"halstead":{"operators":{"distinct":6,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":21,"identifiers":["__stripped__"]},"length":40,"vocabulary":23,"difficulty":3.7058823529411766,"volume":180.94247824228052,"effort":670.5515370155101,"bugs":0.0603141594140935,"time":37.25286316752834}}},{"name":"<anonymous>","line":52,"complexity":{"sloc":{"physical":24,"logical":8},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":22,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":26,"identifiers":["__stripped__"]},"length":48,"vocabulary":28,"difficulty":6.157894736842105,"volume":230.75303625876498,"effort":1420.9529074881843,"bugs":0.07691767875292166,"time":78.94182819378801}}},{"name":"<anonymous>","line":56,"complexity":{"sloc":{"physical":8,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":16,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":25,"identifiers":["__stripped__"]},"length":41,"vocabulary":26,"difficulty":6.61764705882353,"volume":192.7180284437848,"effort":1275.3398941132818,"bugs":0.06423934281459492,"time":70.85221633962676}}},{"name":"<anonymous>","line":65,"complexity":{"sloc":{"physical":5,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":18,"difficulty":2,"volume":104.2481250360578,"effort":208.4962500721156,"bugs":0.03474937501201927,"time":11.583125004006423}}},{"name":"extractDownload","line":80,"complexity":{"sloc":{"physical":29,"logical":17},"cyclomatic":2,"halstead":{"operators":{"distinct":16,"total":41,"identifiers":["__stripped__"]},"operands":{"distinct":33,"total":52,"identifiers":["__stripped__"]},"length":93,"vocabulary":49,"difficulty":12.606060606060606,"volume":522.1680155027144,"effort":6582.481649973612,"bugs":0.17405600516757147,"time":365.693424998534}}},{"name":"<anonymous>","line":99,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":5,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":12,"difficulty":3.5714285714285716,"volume":64.52932501298082,"effort":230.4618750463601,"bugs":0.02150977500432694,"time":12.80343750257556}}},{"name":"copyIntoPlace","line":110,"complexity":{"sloc":{"physical":19,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":14,"total":40,"identifiers":["__stripped__"]},"operands":{"distinct":26,"total":44,"identifiers":["__stripped__"]},"length":84,"vocabulary":40,"difficulty":11.846153846153847,"volume":447.04195997053847,"effort":5295.727833497148,"bugs":0.14901398665684615,"time":294.20710186095266}}},{"name":"fixFilePermissions","line":130,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":6,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":12,"identifiers":["__stripped__"]},"length":18,"vocabulary":10,"difficulty":1.5,"volume":59.794705707972525,"effort":89.69205856195879,"bugs":0.019931568569324175,"time":4.9828921423310435}}},{"name":"mkdir","line":134,"complexity":{"sloc":{"physical":6,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":6,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":11,"identifiers":["__stripped__"]},"length":21,"vocabulary":13,"difficulty":4.714285714285714,"volume":77.70923408096293,"effort":366.3435320959681,"bugs":0.025903078026987644,"time":20.352418449776007}}},{"name":"<anonymous>","line":141,"complexity":{"sloc":{"physical":44,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":48,"identifiers":["__stripped__"]},"operands":{"distinct":27,"total":50,"identifiers":["__stripped__"]},"length":98,"vocabulary":36,"difficulty":8.333333333333334,"volume":506.6526501413466,"effort":4222.105417844556,"bugs":0.1688842167137822,"time":234.56141210247532}}},{"name":"<anonymous>","line":156,"complexity":{"sloc":{"physical":7,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":18,"identifiers":["__stripped__"]},"length":29,"vocabulary":17,"difficulty":1.9285714285714288,"volume":118.53642239625987,"effort":228.6059574785012,"bugs":0.03951214079875329,"time":12.700330971027846}}},{"name":"<anonymous>","line":180,"complexity":{"sloc":{"physical":4,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":14,"vocabulary":10,"difficulty":1.125,"volume":46.50699332842308,"effort":52.32036749447596,"bugs":0.01550233110947436,"time":2.9066870830264424}}},{"name":"<anonymous>","line":177,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":3,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":5,"identifiers":["__stripped__"]},"length":8,"vocabulary":7,"difficulty":1,"volume":22.458839376460833,"effort":22.458839376460833,"bugs":0.007486279792153611,"time":1.2477132986922685}}},{"name":"<anonymous>","line":174,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}},{"name":"<anonymous>","line":171,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}},{"name":"<anonymous>","line":168,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}}],"maintainability":69.0704292884515,"module":"install.js"},"jshint":{"messages":[]}}
__report = {"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218},"params":16}},"functions":[{"name":"getRequestOptions","line":29,"complexity":{"sloc":{"physical":16,"logical":11},"cyclomatic":3,"halstead":{"operators":{"distinct":12,"total":31,"identifiers":["__stripped__"]},"operands":{"distinct":16,"total":34,"identifiers":["__stripped__"]},"length":65,"vocabulary":28,"difficulty":12.75,"volume":312.4780699337442,"effort":3984.095391655239,"bugs":0.10415935664458141,"time":221.3386328697355},"params":1}},{"name":"requestBinary","line":46,"complexity":{"sloc":{"physical":33,"logical":6},"cyclomatic":1,"halstead":{"operators":{"distinct":6,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":21,"identifiers":["__stripped__"]},"length":40,"vocabulary":23,"difficulty":3.7058823529411766,"volume":180.94247824228052,"effort":670.5515370155101,"bugs":0.0603141594140935,"time":37.25286316752834},"params":2}},{"name":"<anonymous>","line":52,"complexity":{"sloc":{"physical":24,"logical":8},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":22,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":26,"identifiers":["__stripped__"]},"length":48,"vocabulary":28,"difficulty":6.157894736842105,"volume":230.75303625876498,"effort":1420.9529074881843,"bugs":0.07691767875292166,"time":78.94182819378801},"params":1}},{"name":"<anonymous>","line":56,"complexity":{"sloc":{"physical":8,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":16,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":25,"identifiers":["__stripped__"]},"length":41,"vocabulary":26,"difficulty":6.61764705882353,"volume":192.7180284437848,"effort":1275.3398941132818,"bugs":0.06423934281459492,"time":70.85221633962676},"params":1}},{"name":"<anonymous>","line":65,"complexity":{"sloc":{"physical":5,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":18,"difficulty":2,"volume":104.2481250360578,"effort":208.4962500721156,"bugs":0.03474937501201927,"time":11.583125004006423},"params":0}},{"name":"extractDownload","line":80,"complexity":{"sloc":{"physical":29,"logical":17},"cyclomatic":2,"halstead":{"operators":{"distinct":16,"total":41,"identifiers":["__stripped__"]},"operands":{"distinct":33,"total":52,"identifiers":["__stripped__"]},"length":93,"vocabulary":49,"difficulty":12.606060606060606,"volume":522.1680155027144,"effort":6582.481649973612,"bugs":0.17405600516757147,"time":365.693424998534},"params":2}},{"name":"<anonymous>","line":99,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":5,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":12,"difficulty":3.5714285714285716,"volume":64.52932501298082,"effort":230.4618750463601,"bugs":0.02150977500432694,"time":12.80343750257556},"params":1}},{"name":"copyIntoPlace","line":110,"complexity":{"sloc":{"physical":19,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":14,"total":40,"identifiers":["__stripped__"]},"operands":{"distinct":26,"total":44,"identifiers":["__stripped__"]},"length":84,"vocabulary":40,"difficulty":11.846153846153847,"volume":447.04195997053847,"effort":5295.727833497148,"bugs":0.14901398665684615,"time":294.20710186095266},"params":2}},{"name":"fixFilePermissions","line":130,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":6,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":12,"identifiers":["__stripped__"]},"length":18,"vocabulary":10,"difficulty":1.5,"volume":59.794705707972525,"effort":89.69205856195879,"bugs":0.019931568569324175,"time":4.9828921423310435},"params":2}},{"name":"mkdir","line":134,"complexity":{"sloc":{"physical":6,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":6,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":11,"identifiers":["__stripped__"]},"length":21,"vocabulary":13,"difficulty":4.714285714285714,"volume":77.70923408096293,"effort":366.3435320959681,"bugs":0.025903078026987644,"time":20.352418449776007},"params":1}},{"name":"<anonymous>","line":141,"complexity":{"sloc":{"physical":44,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":48,"identifiers":["__stripped__"]},"operands":{"distinct":27,"total":50,"identifiers":["__stripped__"]},"length":98,"vocabulary":36,"difficulty":8.333333333333334,"volume":506.6526501413466,"effort":4222.105417844556,"bugs":0.1688842167137822,"time":234.56141210247532},"params":2}},{"name":"<anonymous>","line":156,"complexity":{"sloc":{"physical":7,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":18,"identifiers":["__stripped__"]},"length":29,"vocabulary":17,"difficulty":1.9285714285714288,"volume":118.53642239625987,"effort":228.6059574785012,"bugs":0.03951214079875329,"time":12.700330971027846},"params":0}},{"name":"<anonymous>","line":180,"complexity":{"sloc":{"physical":4,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":14,"vocabulary":10,"difficulty":1.125,"volume":46.50699332842308,"effort":52.32036749447596,"bugs":0.01550233110947436,"time":2.9066870830264424},"params":1}},{"name":"<anonymous>","line":177,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":3,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":5,"identifiers":["__stripped__"]},"length":8,"vocabulary":7,"difficulty":1,"volume":22.458839376460833,"effort":22.458839376460833,"bugs":0.007486279792153611,"time":1.2477132986922685},"params":0}},{"name":"<anonymous>","line":174,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}},{"name":"<anonymous>","line":171,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}},{"name":"<anonymous>","line":168,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}}],"maintainability":69.0704292884515,"params":0.9411764705882353,"module":"install.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218}}},"functions":[{"name":"getRequestOptions","line":29,"complexity":{"sloc":{"physical":16,"logical":11},"cyclomatic":3,"halstead":{"operators":{"distinct":12,"total":31,"identifiers":["__stripped__"]},"operands":{"distinct":16,"total":34,"identifiers":["__stripped__"]},"length":65,"vocabulary":28,"difficulty":12.75,"volume":312.4780699337442,"effort":3984.095391655239,"bugs":0.10415935664458141,"time":221.3386328697355}}},{"name":"requestBinary","line":46,"complexity":{"sloc":{"physical":33,"logical":6},"cyclomatic":1,"halstead":{"operators":{"distinct":6,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":21,"identifiers":["__stripped__"]},"length":40,"vocabulary":23,"difficulty":3.7058823529411766,"volume":180.94247824228052,"effort":670.5515370155101,"bugs":0.0603141594140935,"time":37.25286316752834}}},{"name":"<anonymous>","line":52,"complexity":{"sloc":{"physical":24,"logical":8},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":22,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":26,"identifiers":["__stripped__"]},"length":48,"vocabulary":28,"difficulty":6.157894736842105,"volume":230.75303625876498,"effort":1420.9529074881843,"bugs":0.07691767875292166,"time":78.94182819378801}}},{"name":"<anonymous>","line":56,"complexity":{"sloc":{"physical":8,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":16,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":25,"identifiers":["__stripped__"]},"length":41,"vocabulary":26,"difficulty":6.61764705882353,"volume":192.7180284437848,"effort":1275.3398941132818,"bugs":0.06423934281459492,"time":70.85221633962676}}},{"name":"<anonymous>","line":65,"complexity":{"sloc":{"physical":5,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":18,"difficulty":2,"volume":104.2481250360578,"effort":208.4962500721156,"bugs":0.03474937501201927,"time":11.583125004006423}}},{"name":"extractDownload","line":80,"complexity":{"sloc":{"physical":29,"logical":17},"cyclomatic":2,"halstead":{"operators":{"distinct":16,"total":41,"identifiers":["__stripped__"]},"operands":{"distinct":33,"total":52,"identifiers":["__stripped__"]},"length":93,"vocabulary":49,"difficulty":12.606060606060606,"volume":522.1680155027144,"effort":6582.481649973612,"bugs":0.17405600516757147,"time":365.693424998534}}},{"name":"<anonymous>","line":99,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":5,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":12,"difficulty":3.5714285714285716,"volume":64.52932501298082,"effort":230.4618750463601,"bugs":0.02150977500432694,"time":12.80343750257556}}},{"name":"copyIntoPlace","line":110,"complexity":{"sloc":{"physical":19,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":14,"total":40,"identifiers":["__stripped__"]},"operands":{"distinct":26,"total":44,"identifiers":["__stripped__"]},"length":84,"vocabulary":40,"difficulty":11.846153846153847,"volume":447.04195997053847,"effort":5295.727833497148,"bugs":0.14901398665684615,"time":294.20710186095266}}},{"name":"fixFilePermissions","line":130,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":6,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":12,"identifiers":["__stripped__"]},"length":18,"vocabulary":10,"difficulty":1.5,"volume":59.794705707972525,"effort":89.69205856195879,"bugs":0.019931568569324175,"time":4.9828921423310435}}},{"name":"mkdir","line":134,"complexity":{"sloc":{"physical":6,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":6,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":11,"identifiers":["__stripped__"]},"length":21,"vocabulary":13,"difficulty":4.714285714285714,"volume":77.70923408096293,"effort":366.3435320959681,"bugs":0.025903078026987644,"time":20.352418449776007}}},{"name":"<anonymous>","line":141,"complexity":{"sloc":{"physical":44,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":48,"identifiers":["__stripped__"]},"operands":{"distinct":27,"total":50,"identifiers":["__stripped__"]},"length":98,"vocabulary":36,"difficulty":8.333333333333334,"volume":506.6526501413466,"effort":4222.105417844556,"bugs":0.1688842167137822,"time":234.56141210247532}}},{"name":"<anonymous>","line":156,"complexity":{"sloc":{"physical":7,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":18,"identifiers":["__stripped__"]},"length":29,"vocabulary":17,"difficulty":1.9285714285714288,"volume":118.53642239625987,"effort":228.6059574785012,"bugs":0.03951214079875329,"time":12.700330971027846}}},{"name":"<anonymous>","line":180,"complexity":{"sloc":{"physical":4,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":14,"vocabulary":10,"difficulty":1.125,"volume":46.50699332842308,"effort":52.32036749447596,"bugs":0.01550233110947436,"time":2.9066870830264424}}},{"name":"<anonymous>","line":177,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":3,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":5,"identifiers":["__stripped__"]},"length":8,"vocabulary":7,"difficulty":1,"volume":22.458839376460833,"effort":22.458839376460833,"bugs":0.007486279792153611,"time":1.2477132986922685}}},{"name":"<anonymous>","line":174,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}},{"name":"<anonymous>","line":171,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}},{"name":"<anonymous>","line":168,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005}}}],"maintainability":69.0704292884515,"module":"install.js"},"jshint":{"messages":[]}}
{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218},"params":16}},"functions":[{"name":"getRequestOptions","line":29,"complexity":{"sloc":{"physical":16,"logical":11},"cyclomatic":3,"halstead":{"operators":{"distinct":12,"total":31,"identifiers":["__stripped__"]},"operands":{"distinct":16,"total":34,"identifiers":["__stripped__"]},"length":65,"vocabulary":28,"difficulty":12.75,"volume":312.4780699337442,"effort":3984.095391655239,"bugs":0.10415935664458141,"time":221.3386328697355},"params":1}},{"name":"requestBinary","line":46,"complexity":{"sloc":{"physical":33,"logical":6},"cyclomatic":1,"halstead":{"operators":{"distinct":6,"total":19,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":21,"identifiers":["__stripped__"]},"length":40,"vocabulary":23,"difficulty":3.7058823529411766,"volume":180.94247824228052,"effort":670.5515370155101,"bugs":0.0603141594140935,"time":37.25286316752834},"params":2}},{"name":"<anonymous>","line":52,"complexity":{"sloc":{"physical":24,"logical":8},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":22,"identifiers":["__stripped__"]},"operands":{"distinct":19,"total":26,"identifiers":["__stripped__"]},"length":48,"vocabulary":28,"difficulty":6.157894736842105,"volume":230.75303625876498,"effort":1420.9529074881843,"bugs":0.07691767875292166,"time":78.94182819378801},"params":1}},{"name":"<anonymous>","line":56,"complexity":{"sloc":{"physical":8,"logical":5},"cyclomatic":2,"halstead":{"operators":{"distinct":9,"total":16,"identifiers":["__stripped__"]},"operands":{"distinct":17,"total":25,"identifiers":["__stripped__"]},"length":41,"vocabulary":26,"difficulty":6.61764705882353,"volume":192.7180284437848,"effort":1275.3398941132818,"bugs":0.06423934281459492,"time":70.85221633962676},"params":1}},{"name":"<anonymous>","line":65,"complexity":{"sloc":{"physical":5,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":14,"identifiers":["__stripped__"]},"length":25,"vocabulary":18,"difficulty":2,"volume":104.2481250360578,"effort":208.4962500721156,"bugs":0.03474937501201927,"time":11.583125004006423},"params":0}},{"name":"extractDownload","line":80,"complexity":{"sloc":{"physical":29,"logical":17},"cyclomatic":2,"halstead":{"operators":{"distinct":16,"total":41,"identifiers":["__stripped__"]},"operands":{"distinct":33,"total":52,"identifiers":["__stripped__"]},"length":93,"vocabulary":49,"difficulty":12.606060606060606,"volume":522.1680155027144,"effort":6582.481649973612,"bugs":0.17405600516757147,"time":365.693424998534},"params":2}},{"name":"<anonymous>","line":99,"complexity":{"sloc":{"physical":7,"logical":4},"cyclomatic":2,"halstead":{"operators":{"distinct":5,"total":8,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":10,"identifiers":["__stripped__"]},"length":18,"vocabulary":12,"difficulty":3.5714285714285716,"volume":64.52932501298082,"effort":230.4618750463601,"bugs":0.02150977500432694,"time":12.80343750257556},"params":1}},{"name":"copyIntoPlace","line":110,"complexity":{"sloc":{"physical":19,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":14,"total":40,"identifiers":["__stripped__"]},"operands":{"distinct":26,"total":44,"identifiers":["__stripped__"]},"length":84,"vocabulary":40,"difficulty":11.846153846153847,"volume":447.04195997053847,"effort":5295.727833497148,"bugs":0.14901398665684615,"time":294.20710186095266},"params":2}},{"name":"fixFilePermissions","line":130,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":6,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":12,"identifiers":["__stripped__"]},"length":18,"vocabulary":10,"difficulty":1.5,"volume":59.794705707972525,"effort":89.69205856195879,"bugs":0.019931568569324175,"time":4.9828921423310435},"params":2}},{"name":"mkdir","line":134,"complexity":{"sloc":{"physical":6,"logical":3},"cyclomatic":2,"halstead":{"operators":{"distinct":6,"total":10,"identifiers":["__stripped__"]},"operands":{"distinct":7,"total":11,"identifiers":["__stripped__"]},"length":21,"vocabulary":13,"difficulty":4.714285714285714,"volume":77.70923408096293,"effort":366.3435320959681,"bugs":0.025903078026987644,"time":20.352418449776007},"params":1}},{"name":"<anonymous>","line":141,"complexity":{"sloc":{"physical":44,"logical":13},"cyclomatic":3,"halstead":{"operators":{"distinct":9,"total":48,"identifiers":["__stripped__"]},"operands":{"distinct":27,"total":50,"identifiers":["__stripped__"]},"length":98,"vocabulary":36,"difficulty":8.333333333333334,"volume":506.6526501413466,"effort":4222.105417844556,"bugs":0.1688842167137822,"time":234.56141210247532},"params":2}},{"name":"<anonymous>","line":156,"complexity":{"sloc":{"physical":7,"logical":5},"cyclomatic":1,"halstead":{"operators":{"distinct":3,"total":11,"identifiers":["__stripped__"]},"operands":{"distinct":14,"total":18,"identifiers":["__stripped__"]},"length":29,"vocabulary":17,"difficulty":1.9285714285714288,"volume":118.53642239625987,"effort":228.6059574785012,"bugs":0.03951214079875329,"time":12.700330971027846},"params":0}},{"name":"<anonymous>","line":180,"complexity":{"sloc":{"physical":4,"logical":2},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":5,"identifiers":["__stripped__"]},"operands":{"distinct":8,"total":9,"identifiers":["__stripped__"]},"length":14,"vocabulary":10,"difficulty":1.125,"volume":46.50699332842308,"effort":52.32036749447596,"bugs":0.01550233110947436,"time":2.9066870830264424},"params":1}},{"name":"<anonymous>","line":177,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":3,"identifiers":["__stripped__"]},"operands":{"distinct":5,"total":5,"identifiers":["__stripped__"]},"length":8,"vocabulary":7,"difficulty":1,"volume":22.458839376460833,"effort":22.458839376460833,"bugs":0.007486279792153611,"time":1.2477132986922685},"params":0}},{"name":"<anonymous>","line":174,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}},{"name":"<anonymous>","line":171,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}},{"name":"<anonymous>","line":168,"complexity":{"sloc":{"physical":3,"logical":1},"cyclomatic":1,"halstead":{"operators":{"distinct":2,"total":2,"identifiers":["__stripped__"]},"operands":{"distinct":3,"total":3,"identifiers":["__stripped__"]},"length":5,"vocabulary":5,"difficulty":1,"volume":11.60964047443681,"effort":11.60964047443681,"bugs":0.0038698801581456034,"time":0.6449800263576005},"params":0}}],"maintainability":69.0704292884515,"params":0.9411764705882353,"module":"install.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

__history = [{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":15,"lloc":3,"functions":0,"deliveredBugs":0.02792060276175576,"maintainability":78.82511690686519,"lintErrors":0,"difficulty":2.6}]
__history = [{"date":"Tue, 24 Sep 2013 05:41:50 GMT","sloc":15,"lloc":3,"functions":0,"deliveredBugs":0.02792060276175576,"maintainability":78.82511690686519,"lintErrors":0,"difficulty":2.6}]

@@ -1,1 +0,1 @@

[{"date":"Fri, 19 Jul 2013 14:25:10 GMT","sloc":15,"lloc":3,"functions":0,"deliveredBugs":0.02792060276175576,"maintainability":78.82511690686519,"lintErrors":0,"difficulty":2.6}]
[{"date":"Tue, 24 Sep 2013 05:41:50 GMT","sloc":15,"lloc":3,"functions":0,"deliveredBugs":0.02792060276175576,"maintainability":78.82511690686519,"lintErrors":0,"difficulty":2.6}]

@@ -1,1 +0,1 @@

__report = {"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496}}},"functions":[],"maintainability":78.82511690686519,"module":"lib/iedriver.js"},"jshint":{"messages":[]}}
__report = {"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496},"params":0}},"functions":[],"maintainability":78.82511690686519,"params":0,"module":"lib/iedriver.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496}}},"functions":[],"maintainability":78.82511690686519,"module":"lib/iedriver.js"},"jshint":{"messages":[]}}
{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496},"params":0}},"functions":[],"maintainability":78.82511690686519,"params":0,"module":"lib/iedriver.js"},"jshint":{"messages":[]}}

@@ -1,1 +0,1 @@

__history = [{"date":"Fri, 19 Jul 2013 14:25:11 GMT","total":{"sloc":415,"maintainability":219.68069600049003},"average":{"sloc":138,"maintainability":"73.23"}}]
__history = [{"date":"Tue, 24 Sep 2013 05:41:50 GMT","total":{"sloc":571,"maintainability":218.62956962517703},"average":{"sloc":190,"maintainability":"72.88"}}]

@@ -1,1 +0,1 @@

[{"date":"Fri, 19 Jul 2013 14:25:11 GMT","total":{"sloc":415,"maintainability":219.68069600049003},"average":{"sloc":138,"maintainability":"73.23"}}]
[{"date":"Tue, 24 Sep 2013 05:41:50 GMT","total":{"sloc":571,"maintainability":218.62956962517703},"average":{"sloc":190,"maintainability":"72.88"}}]

@@ -1,1 +0,1 @@

__report = {"summary":{"total":{"sloc":415,"maintainability":219.68069600049003},"average":{"sloc":138,"maintainability":"73.23"}},"reports":[{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":222,"logical":73},"cyclomatic":13,"halstead":{"operators":{"distinct":27,"total":201,"identifiers":["__stripped__"]},"operands":{"distinct":96,"total":236,"identifiers":["__stripped__"]},"length":437,"vocabulary":123,"difficulty":33.1875,"volume":3033.8788388332478,"effort":100686.85396377841,"bugs":1.0112929462777493,"time":5593.714109098801}}},"module":"index.js","maintainability":71.78514980517332}},{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218}}},"module":"install.js","maintainability":69.0704292884515}},{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496}}},"module":"lib/iedriver.js","maintainability":78.82511690686519}}]}
__report = {"summary":{"total":{"sloc":571,"maintainability":218.62956962517703},"average":{"sloc":190,"maintainability":"72.88"}},"reports":[{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":378,"logical":107},"cyclomatic":17,"halstead":{"operators":{"distinct":28,"total":314,"identifiers":["__stripped__"]},"operands":{"distinct":134,"total":382,"identifiers":["__stripped__"]},"length":696,"vocabulary":162,"difficulty":39.91044776119403,"volume":5108.535602007699,"effort":203883.94328012815,"bugs":1.702845200669233,"time":11326.885737784898},"params":21}},"module":"index.js","maintainability":70.73402342986031}},{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218},"params":16}},"module":"install.js","maintainability":69.0704292884515}},{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496},"params":0}},"module":"lib/iedriver.js","maintainability":78.82511690686519}}]}

@@ -1,1 +0,1 @@

{"summary":{"total":{"sloc":415,"maintainability":219.68069600049003},"average":{"sloc":138,"maintainability":"73.23"}},"reports":[{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":222,"logical":73},"cyclomatic":13,"halstead":{"operators":{"distinct":27,"total":201,"identifiers":["__stripped__"]},"operands":{"distinct":96,"total":236,"identifiers":["__stripped__"]},"length":437,"vocabulary":123,"difficulty":33.1875,"volume":3033.8788388332478,"effort":100686.85396377841,"bugs":1.0112929462777493,"time":5593.714109098801}}},"module":"index.js","maintainability":71.78514980517332}},{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218}}},"module":"install.js","maintainability":69.0704292884515}},{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496}}},"module":"lib/iedriver.js","maintainability":78.82511690686519}}]}
{"summary":{"total":{"sloc":571,"maintainability":218.62956962517703},"average":{"sloc":190,"maintainability":"72.88"}},"reports":[{"info":{"file":"index.js","fileShort":"index.js","fileSafe":"index_js","link":"files/index_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":25,"complexity":{"sloc":{"physical":378,"logical":107},"cyclomatic":17,"halstead":{"operators":{"distinct":28,"total":314,"identifiers":["__stripped__"]},"operands":{"distinct":134,"total":382,"identifiers":["__stripped__"]},"length":696,"vocabulary":162,"difficulty":39.91044776119403,"volume":5108.535602007699,"effort":203883.94328012815,"bugs":1.702845200669233,"time":11326.885737784898},"params":21}},"module":"index.js","maintainability":70.73402342986031}},{"info":{"file":"install.js","fileShort":"install.js","fileSafe":"install_js","link":"files/install_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":7,"complexity":{"sloc":{"physical":178,"logical":119},"cyclomatic":12,"halstead":{"operators":{"distinct":27,"total":336,"identifiers":["__stripped__"]},"operands":{"distinct":152,"total":403,"identifiers":["__stripped__"]},"length":739,"vocabulary":179,"difficulty":35.79276315789473,"volume":5530.539859398285,"effort":197953.30332273926,"bugs":1.8435132864660952,"time":10997.40574015218},"params":16}},"module":"install.js","maintainability":69.0704292884515}},{"info":{"file":"lib/iedriver.js","fileShort":"lib/iedriver.js","fileSafe":"lib_iedriver_js","link":"files/lib_iedriver_js/index.html"},"jshint":{"messages":0},"complexity":{"aggregate":{"line":8,"complexity":{"sloc":{"physical":15,"logical":3},"cyclomatic":1,"halstead":{"operators":{"distinct":4,"total":9,"identifiers":["__stripped__"]},"operands":{"distinct":10,"total":13,"identifiers":["__stripped__"]},"length":22,"vocabulary":14,"difficulty":2.6,"volume":83.76180828526728,"effort":217.78070154169492,"bugs":0.02792060276175576,"time":12.098927863427496},"params":0}},"module":"lib/iedriver.js","maintainability":78.82511690686519}}]}
{
"instrumentation": "node-jscoverage",
"sloc": 59,
"sloc": 81,
"hits": 10,
"misses": 49,
"coverage": 16.94915254237288,
"misses": 71,
"coverage": 12.345679012345679,
"files": [
{
"filename": "/Users/sgolasch/GitHub/dalekjs/dalek-browser-ie/index.js",
"coverage": 12.5,
"filename": "/home/ubuntu/src/github.com/dalekjs/dalek-browser-ie/index.js",
"coverage": 8.974358974358974,
"hits": 7,
"misses": 49,
"sloc": 56,
"misses": 71,
"sloc": 78,
"source": {

@@ -128,7 +128,7 @@ "1": {

"29": {
"source": "var spawn = require('child_process').spawn;",
"source": "var cp = require('child_process');",
"coverage": 1
},
"30": {
"source": "var exec = require('child_process').exec;",
"source": "var portscanner = require('portscanner');",
"coverage": 1

@@ -157,247 +157,247 @@ },

"36": {
"source": " * Internet Explorer Driver base class",
"source": " * This module is a browser plugin for [DalekJS](//github.com/dalekjs/dalek).",
"coverage": ""
},
"37": {
"source": " *",
"source": " * It provides all a WebDriverServer & browser launcher for Internet Explorer.",
"coverage": ""
},
"38": {
"source": " * @module DalekJS",
"source": " *",
"coverage": ""
},
"39": {
"source": " * @class InternetExplorer",
"source": " * The browser plugin can be installed with the following command:",
"coverage": ""
},
"40": {
"source": " * @namespace Browser",
"source": " *",
"coverage": ""
},
"41": {
"source": " * @part InternetExplorer",
"source": " * ```bash",
"coverage": ""
},
"42": {
"source": " * @api",
"source": " * $ npm install dalek-browser-ie --save-dev",
"coverage": ""
},
"43": {
"source": " */",
"source": " * ```",
"coverage": ""
},
"44": {
"source": "",
"source": " *",
"coverage": ""
},
"45": {
"source": "var InternetExplorer = {",
"coverage": 1
"source": " * You can use the browser plugin by adding a config option to the your Dalekfile",
"coverage": ""
},
"46": {
"source": "",
"source": " *",
"coverage": ""
},
"47": {
"source": " /**",
"source": " * ```javascript",
"coverage": ""
},
"48": {
"source": " * Verbose version of the browser name",
"source": " * \"browsers\": [\"IE\"]",
"coverage": ""
},
"49": {
"source": " *",
"source": " * ```",
"coverage": ""
},
"50": {
"source": " * @property longName",
"source": " *",
"coverage": ""
},
"51": {
"source": " * @type string",
"source": " * Or you can tell Dalek that it should test in this browser via the command line:",
"coverage": ""
},
"52": {
"source": " * @default Internet Explorer",
"source": " *",
"coverage": ""
},
"53": {
"source": " * @api",
"source": " * ```bash",
"coverage": ""
},
"54": {
"source": " */",
"source": " * $ dalek mytest.js -b IE",
"coverage": ""
},
"55": {
"source": "",
"source": " * ```",
"coverage": ""
},
"56": {
"source": " longName: 'Internet Explorer',",
"source": " *",
"coverage": ""
},
"57": {
"source": "",
"source": " * The Webdriver Server tries to open Port 5555 by default,",
"coverage": ""
},
"58": {
"source": " /**",
"source": " * if this port is blocked, it tries to use a port between 5555 & 5564",
"coverage": ""
},
"59": {
"source": " * Default port of the IEDriverServer",
"source": " * You can specifiy a different port from within your [Dalekfile](/pages/config.html) like so:",
"coverage": ""
},
"60": {
"source": " * The port may change, cause the port conflict resultion",
"source": " *",
"coverage": ""
},
"61": {
"source": " * tool might pick another one, if the default one is blocked",
"source": " * ```javascript",
"coverage": ""
},
"62": {
"source": " *",
"source": " * \"browsers\": {",
"coverage": ""
},
"63": {
"source": " * @property port",
"source": " * \"ie\": {",
"coverage": ""
},
"64": {
"source": " * @type integer",
"source": " * \"port\": 6555 ",
"coverage": ""
},
"65": {
"source": " * @default 5555",
"source": " * }",
"coverage": ""
},
"66": {
"source": " */",
"source": " * }",
"coverage": ""
},
"67": {
"source": "",
"source": " * ```",
"coverage": ""
},
"68": {
"source": " port: 5555,",
"source": " *",
"coverage": ""
},
"69": {
"source": "",
"source": " * It is also possible to specify a range of ports:",
"coverage": ""
},
"70": {
"source": " /**",
"source": " *",
"coverage": ""
},
"71": {
"source": " * Default host of the IEDriverServer",
"source": " * ```javascript",
"coverage": ""
},
"72": {
"source": " * The host may be overriden with",
"source": " * \"browsers\": {",
"coverage": ""
},
"73": {
"source": " * a user configured value",
"source": " * \"ie\": {",
"coverage": ""
},
"74": {
"source": " *",
"source": " * \"portRange\": [6100, 6120] ",
"coverage": ""
},
"75": {
"source": " * @property host",
"source": " * }",
"coverage": ""
},
"76": {
"source": " * @type string",
"source": " * }",
"coverage": ""
},
"77": {
"source": " * @default localhost",
"source": " * ```",
"coverage": ""
},
"78": {
"source": " */",
"source": " * ",
"coverage": ""
},
"79": {
"source": "",
"source": " * @module DalekJS",
"coverage": ""
},
"80": {
"source": " host: 'localhost',",
"source": " * @class InternetExplorer",
"coverage": ""
},
"81": {
"source": "",
"source": " * @namespace Browser",
"coverage": ""
},
"82": {
"source": " /**",
"source": " * @part InternetExplorer",
"coverage": ""
},
"83": {
"source": " * Path to the IEDriverServer.exe file",
"source": " * @api",
"coverage": ""
},
"84": {
"source": " *",
"source": " */",
"coverage": ""
},
"85": {
"source": " * @property path",
"source": "",
"coverage": ""
},
"86": {
"source": " * @type string",
"coverage": ""
"source": "var InternetExplorer = {",
"coverage": 1
},
"87": {
"source": " * @default /",
"source": "",
"coverage": ""
},
"88": {
"source": " */",
"source": " /**",
"coverage": ""
},
"89": {
"source": "",
"source": " * Verbose version of the browser name",
"coverage": ""
},
"90": {
"source": " path: '/',",
"source": " *",
"coverage": ""
},
"91": {
"source": "",
"source": " * @property longName",
"coverage": ""
},
"92": {
"source": " /**",
"source": " * @type string",
"coverage": ""
},
"93": {
"source": " * Child process instance of the IEDriverServer",
"source": " * @default Internet Explorer",
"coverage": ""
},
"94": {
"source": " *",
"source": " * @api",
"coverage": ""
},
"95": {
"source": " * @property spawned",
"source": " */",
"coverage": ""
},
"96": {
"source": " * @type null|Object",
"source": "",
"coverage": ""
},
"97": {
"source": " */",
"source": " longName: 'Internet Explorer',",
"coverage": ""

@@ -410,15 +410,15 @@ },

"99": {
"source": " spawned: null,",
"source": " /**",
"coverage": ""
},
"100": {
"source": "",
"source": " * Default port of the IEDriverServer",
"coverage": ""
},
"101": {
"source": " /**",
"source": " * The port may change, cause the port conflict resultion",
"coverage": ""
},
"102": {
"source": " * Resolves the driver port",
"source": " * tool might pick another one, if the default one is blocked",
"coverage": ""

@@ -431,71 +431,71 @@ },

"104": {
"source": " * @method getPort",
"source": " * @property port",
"coverage": ""
},
"105": {
"source": " * @return {integer} port WebDriver server port",
"source": " * @type integer",
"coverage": ""
},
"106": {
"source": " */",
"source": " * @default 5555",
"coverage": ""
},
"107": {
"source": "",
"source": " */",
"coverage": ""
},
"108": {
"source": " getPort: function () {",
"source": "",
"coverage": ""
},
"109": {
"source": " return this.port;",
"coverage": 0
"source": " port: 5555,",
"coverage": ""
},
"110": {
"source": " },",
"source": "",
"coverage": ""
},
"111": {
"source": "",
"source": " /**",
"coverage": ""
},
"112": {
"source": " /**",
"source": " * Default maximum port of the IEDriverServer",
"coverage": ""
},
"113": {
"source": " * Returns the driver host",
"source": " * The port is the highest port in the range that can be allocated",
"coverage": ""
},
"114": {
"source": " *",
"source": " * by the IEDriverServer",
"coverage": ""
},
"115": {
"source": " * @method getHost",
"source": " *",
"coverage": ""
},
"116": {
"source": " * @return {string} host WebDriver server hostname",
"source": " * @property maxPort",
"coverage": ""
},
"117": {
"source": " */",
"source": " * @type integer",
"coverage": ""
},
"118": {
"source": "",
"source": " * @default 5654",
"coverage": ""
},
"119": {
"source": " getHost: function () {",
"source": " */",
"coverage": ""
},
"120": {
"source": " return this.host;",
"coverage": 0
"source": "",
"coverage": ""
},
"121": {
"source": " },",
"source": " maxPort: 5654,",
"coverage": ""

@@ -512,494 +512,1118 @@ },

"124": {
"source": " * Launches the driver",
"source": " * Default host of the IEDriverServer",
"coverage": ""
},
"125": {
"source": " * (the driver takes care of launching the browser)",
"source": " * The host may be overridden with",
"coverage": ""
},
"126": {
"source": " *",
"source": " * a user configured value",
"coverage": ""
},
"127": {
"source": " * @method launch",
"source": " *",
"coverage": ""
},
"128": {
"source": " * @return {object} promise Browser promise",
"source": " * @property host",
"coverage": ""
},
"129": {
"source": " */",
"source": " * @type string",
"coverage": ""
},
"130": {
"source": "",
"source": " * @default localhost",
"coverage": ""
},
"131": {
"source": " launch: function () {",
"source": " */",
"coverage": ""
},
"132": {
"source": " var deferred = Q.defer();",
"coverage": 0
"source": "",
"coverage": ""
},
"133": {
"source": " var stream = '';",
"coverage": 0
"source": " host: 'localhost',",
"coverage": ""
},
"134": {
"source": " this.spawned = spawn(iedriver.path, ['--port=' + this.getPort()]);",
"coverage": 0
"source": "",
"coverage": ""
},
"135": {
"source": "",
"source": " /**",
"coverage": ""
},
"136": {
"source": " this.spawned.stdout.on('data', function (data) {",
"coverage": 0
"source": " * Default desired capabilities that should be",
"coverage": ""
},
"137": {
"source": " var dataStr = data + '';",
"coverage": 0
"source": " * transferred when the browser session gets requested",
"coverage": ""
},
"138": {
"source": " stream += dataStr;",
"coverage": 0
"source": " *",
"coverage": ""
},
"139": {
"source": " if (stream.search('Listening on port') !== -1) {",
"coverage": 0
"source": " * @property desiredCapabilities",
"coverage": ""
},
"140": {
"source": " deferred.resolve();",
"coverage": 0
"source": " * @type object",
"coverage": ""
},
"141": {
"source": " }",
"source": " */",
"coverage": ""
},
"142": {
"source": " });",
"source": "",
"coverage": ""
},
"143": {
"source": " desiredCapabilities: {",
"coverage": ""
},
"144": {
"source": " browserName: 'InternetExplorer'",
"coverage": ""
},
"145": {
"source": " },",
"coverage": ""
},
"146": {
"source": "",
"coverage": ""
},
"147": {
"source": " /**",
"coverage": ""
},
"148": {
"source": " * Driver defaults, what should the driver be able to access.",
"coverage": ""
},
"149": {
"source": " *",
"coverage": ""
},
"150": {
"source": " * @property driverDefaults",
"coverage": ""
},
"151": {
"source": " * @type object",
"coverage": ""
},
"152": {
"source": " */",
"coverage": ""
},
"153": {
"source": "",
"coverage": ""
},
"154": {
"source": " driverDefaults: {",
"coverage": ""
},
"155": {
"source": " viewport: true,",
"coverage": ""
},
"156": {
"source": " status: true,",
"coverage": ""
},
"157": {
"source": " sessionInfo: true",
"coverage": ""
},
"158": {
"source": " },",
"coverage": ""
},
"159": {
"source": "",
"coverage": ""
},
"160": {
"source": " /**",
"coverage": ""
},
"161": {
"source": " * Path to the IEDriverServer.exe file",
"coverage": ""
},
"162": {
"source": " *",
"coverage": ""
},
"163": {
"source": " * @property path",
"coverage": ""
},
"164": {
"source": " * @type string",
"coverage": ""
},
"165": {
"source": " * @default /",
"coverage": ""
},
"166": {
"source": " */",
"coverage": ""
},
"167": {
"source": "",
"coverage": ""
},
"168": {
"source": " path: '/',",
"coverage": ""
},
"169": {
"source": "",
"coverage": ""
},
"170": {
"source": " /**",
"coverage": ""
},
"171": {
"source": " * Child process instance of the IEDriverServer",
"coverage": ""
},
"172": {
"source": " *",
"coverage": ""
},
"173": {
"source": " * @property spawned",
"coverage": ""
},
"174": {
"source": " * @type null|Object",
"coverage": ""
},
"175": {
"source": " */",
"coverage": ""
},
"176": {
"source": "",
"coverage": ""
},
"177": {
"source": " spawned: null,",
"coverage": ""
},
"178": {
"source": "",
"coverage": ""
},
"179": {
"source": " /**",
"coverage": ""
},
"180": {
"source": " * IE processes that are running on startup,",
"coverage": ""
},
"181": {
"source": " * and therefor shouldn`t be closed",
"coverage": ""
},
"182": {
"source": " *",
"coverage": ""
},
"183": {
"source": " * @property openProcesses",
"coverage": ""
},
"184": {
"source": " * @type array",
"coverage": ""
},
"185": {
"source": " * @default [] ",
"coverage": ""
},
"186": {
"source": " */",
"coverage": ""
},
"187": {
"source": "",
"coverage": ""
},
"188": {
"source": " openProcesses: [],",
"coverage": ""
},
"189": {
"source": "",
"coverage": ""
},
"190": {
"source": " /**",
"coverage": ""
},
"191": {
"source": " * Resolves the driver port",
"coverage": ""
},
"192": {
"source": " *",
"coverage": ""
},
"193": {
"source": " * @method getPort",
"coverage": ""
},
"194": {
"source": " * @return {integer} port WebDriver server port",
"coverage": ""
},
"195": {
"source": " */",
"coverage": ""
},
"196": {
"source": "",
"coverage": ""
},
"197": {
"source": " getPort: function () {",
"coverage": ""
},
"198": {
"source": " return this.port;",
"coverage": 0
},
"199": {
"source": " },",
"coverage": ""
},
"200": {
"source": "",
"coverage": ""
},
"201": {
"source": " /**",
"coverage": ""
},
"202": {
"source": " * Returns the driver host",
"coverage": ""
},
"203": {
"source": " *",
"coverage": ""
},
"204": {
"source": " * @method getHost",
"coverage": ""
},
"205": {
"source": " * @return {string} host WebDriver server hostname",
"coverage": ""
},
"206": {
"source": " */",
"coverage": ""
},
"207": {
"source": "",
"coverage": ""
},
"208": {
"source": " getHost: function () {",
"coverage": ""
},
"209": {
"source": " return this.host;",
"coverage": 0
},
"210": {
"source": " },",
"coverage": ""
},
"211": {
"source": "",
"coverage": ""
},
"212": {
"source": " /**",
"coverage": ""
},
"213": {
"source": " * Resolves the maximum range for the driver port",
"coverage": ""
},
"214": {
"source": " *",
"coverage": ""
},
"215": {
"source": " * @method getMaxPort",
"coverage": ""
},
"216": {
"source": " * @return {integer} port Max WebDriver server port range",
"coverage": ""
},
"217": {
"source": " */",
"coverage": ""
},
"218": {
"source": "",
"coverage": ""
},
"219": {
"source": " getMaxPort: function () {",
"coverage": ""
},
"220": {
"source": " return this.maxPort;",
"coverage": 0
},
"221": {
"source": " },",
"coverage": ""
},
"222": {
"source": "",
"coverage": ""
},
"223": {
"source": " /**",
"coverage": ""
},
"224": {
"source": " * Launches the driver",
"coverage": ""
},
"225": {
"source": " * (the driver takes care of launching the browser)",
"coverage": ""
},
"226": {
"source": " *",
"coverage": ""
},
"227": {
"source": " * @method launch",
"coverage": ""
},
"228": {
"source": " * @return {object} promise Browser promise",
"coverage": ""
},
"229": {
"source": " */",
"coverage": ""
},
"230": {
"source": "",
"coverage": ""
},
"231": {
"source": " launch: function (configuration, events, config) {",
"coverage": ""
},
"232": {
"source": " var deferred = Q.defer();",
"coverage": 0
},
"233": {
"source": "",
"coverage": ""
},
"234": {
"source": " // store injected configuration/log event handlers",
"coverage": ""
},
"235": {
"source": " this.reporterEvents = events;",
"coverage": 0
},
"236": {
"source": " this.configuration = configuration;",
"coverage": 0
},
"237": {
"source": " this.config = config;",
"coverage": 0
},
"238": {
"source": "",
"coverage": ""
},
"239": {
"source": " // check for a user set port",
"coverage": ""
},
"240": {
"source": " var browsers = this.config.get('browsers');",
"coverage": 0
},
"241": {
"source": " if (browsers && Array.isArray(browsers)) {",
"coverage": 0
},
"242": {
"source": " browsers.forEach(this._checkUserDefinedPorts.bind(this));",
"coverage": 0
},
"243": {
"source": " }",
"coverage": ""
},
"244": {
"source": "",
"coverage": ""
},
"245": {
"source": " // check if the current port is in use, if so, scan for free ports",
"coverage": ""
},
"246": {
"source": " portscanner.findAPortNotInUse(this.getPort(), this.getMaxPort(), this.getHost(), this._checkPorts.bind(this, deferred));",
"coverage": 0
},
"247": {
"source": " return deferred.promise;",
"coverage": 0
},
"144": {
"248": {
"source": " },",
"coverage": ""
},
"145": {
"249": {
"source": "",
"coverage": ""
},
"146": {
"250": {
"source": " /**",
"coverage": ""
},
"147": {
"251": {
"source": " * Kills the driver & browser processes",
"coverage": ""
},
"148": {
"252": {
"source": " *",
"coverage": ""
},
"149": {
"253": {
"source": " * @method kill",
"coverage": ""
},
"150": {
"254": {
"source": " * @chainable",
"coverage": ""
},
"151": {
"255": {
"source": " */",
"coverage": ""
},
"152": {
"256": {
"source": "",
"coverage": ""
},
"153": {
"257": {
"source": " kill: function () {",
"coverage": ""
},
"154": {
"258": {
"source": " // get a list of all running processes",
"coverage": ""
},
"155": {
"259": {
"source": " this._list(function(svc){",
"coverage": 0
},
"156": {
"260": {
"source": " // filter out the browser process",
"coverage": ""
},
"157": {
"261": {
"source": " svc.forEach(function (item, idx) {",
"coverage": 0
},
"158": {
"262": {
"source": " Object.keys(item).forEach(function (key) {",
"coverage": 0
},
"159": {
"263": {
"source": " if(svc[idx][key] === 'iexplore.exe') {",
"coverage": 0
},
"160": {
"264": {
"source": " // kill the browser process",
"coverage": ""
},
"161": {
"source": " console.log(svc[idx]);",
"coverage": 0
},
"162": {
"265": {
"source": " this._kill(svc[idx].PID);",
"coverage": 0
},
"163": {
"266": {
"source": " }",
"coverage": ""
},
"164": {
"267": {
"source": " }.bind(this));",
"coverage": ""
},
"165": {
"268": {
"source": " }.bind(this));",
"coverage": ""
},
"166": {
"269": {
"source": " }.bind(this),true);",
"coverage": ""
},
"167": {
"270": {
"source": "",
"coverage": ""
},
"168": {
"271": {
"source": " // kill the driver process",
"coverage": ""
},
"169": {
"272": {
"source": " this.spawned.kill('SIGTERM');",
"coverage": 0
},
"170": {
"273": {
"source": " return this;",
"coverage": 0
},
"171": {
"274": {
"source": " },",
"coverage": ""
},
"172": {
"275": {
"source": "",
"coverage": ""
},
"173": {
"276": {
"source": " _checkPorts: function (deferred, err, port) {",
"coverage": ""
},
"277": {
"source": " // check if the port was blocked & if we need to switch to another port",
"coverage": ""
},
"278": {
"source": " if (this.port !== port) {",
"coverage": 0
},
"279": {
"source": " this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to port: ' + port);",
"coverage": 0
},
"280": {
"source": " this.port = port;",
"coverage": 0
},
"281": {
"source": " }",
"coverage": ""
},
"282": {
"source": "",
"coverage": ""
},
"283": {
"source": " // invoke the ie driver afterwards",
"coverage": ""
},
"284": {
"source": " this._startIEdriver(deferred);",
"coverage": 0
},
"285": {
"source": " return this;",
"coverage": 0
},
"286": {
"source": " },",
"coverage": ""
},
"287": {
"source": "",
"coverage": ""
},
"288": {
"source": " _startIEdriver: function (deferred) {",
"coverage": ""
},
"289": {
"source": " var stream = '';",
"coverage": 0
},
"290": {
"source": " this.spawned = cp.spawn(iedriver.path, ['--port=' + this.getPort()]);",
"coverage": 0
},
"291": {
"source": "",
"coverage": ""
},
"292": {
"source": " this.spawned.stdout.on('data', function (data) {",
"coverage": 0
},
"293": {
"source": " var dataStr = data + '';",
"coverage": 0
},
"294": {
"source": " stream += dataStr;",
"coverage": 0
},
"295": {
"source": " if (stream.search('Listening on port') !== -1) {",
"coverage": 0
},
"296": {
"source": " deferred.resolve();",
"coverage": 0
},
"297": {
"source": " }",
"coverage": ""
},
"298": {
"source": " });",
"coverage": ""
},
"299": {
"source": " return this;",
"coverage": 0
},
"300": {
"source": " },",
"coverage": ""
},
"301": {
"source": "",
"coverage": ""
},
"302": {
"source": " /**",
"coverage": ""
},
"174": {
"303": {
"source": " * Process user defined ports",
"coverage": ""
},
"304": {
"source": " *",
"coverage": ""
},
"305": {
"source": " * @method _checkUserDefinedPorts",
"coverage": ""
},
"306": {
"source": " * @param {object} browser Browser configuration",
"coverage": ""
},
"307": {
"source": " * @chainable",
"coverage": ""
},
"308": {
"source": " * @private",
"coverage": ""
},
"309": {
"source": " */",
"coverage": ""
},
"310": {
"source": "",
"coverage": ""
},
"311": {
"source": " _checkUserDefinedPorts: function (browser) {",
"coverage": ""
},
"312": {
"source": " // check for a single defined port",
"coverage": ""
},
"313": {
"source": " if (browser.ie && browser.ie.port) {",
"coverage": 0
},
"314": {
"source": " this.port = parseInt(browser.ie.port, 10);",
"coverage": 0
},
"315": {
"source": " this.maxPort = this.port + 90;",
"coverage": 0
},
"316": {
"source": " this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to user defined port: ' + this.port);",
"coverage": 0
},
"317": {
"source": " }",
"coverage": ""
},
"318": {
"source": "",
"coverage": ""
},
"319": {
"source": " // check for a port range",
"coverage": ""
},
"320": {
"source": " if (browser.ie && browser.ie.portRange && browser.ie.portRange.length === 2) {",
"coverage": 0
},
"321": {
"source": " this.port = parseInt(browser.ie.portRange[0], 10);",
"coverage": 0
},
"322": {
"source": " this.maxPort = parseInt(browser.ie.portRange[1], 10);",
"coverage": 0
},
"323": {
"source": " this.reporterEvents.emit('report:log:system', 'dalek-browser-ie: Switching to user defined port(s): ' + this.port + ' -> ' + this.maxPort);",
"coverage": 0
},
"324": {
"source": " }",
"coverage": ""
},
"325": {
"source": "",
"coverage": ""
},
"326": {
"source": " return this;",
"coverage": 0
},
"327": {
"source": " },",
"coverage": ""
},
"328": {
"source": "",
"coverage": ""
},
"329": {
"source": " /**",
"coverage": ""
},
"330": {
"source": " * Lists all running processes (win only)",
"coverage": ""
},
"175": {
"331": {
"source": " *",
"coverage": ""
},
"176": {
"332": {
"source": " * @method _list",
"coverage": ""
},
"177": {
"333": {
"source": " * @param {Function} callback Receives the process object as the only callback argument",
"coverage": ""
},
"178": {
"334": {
"source": " * @param {Boolean} [verbose=false] Verbose output",
"coverage": ""
},
"179": {
"335": {
"source": " * @chainable",
"coverage": ""
},
"180": {
"336": {
"source": " * @private",
"coverage": ""
},
"181": {
"337": {
"source": " */",
"coverage": ""
},
"182": {
"338": {
"source": "",
"coverage": ""
},
"183": {
"339": {
"source": " _list: function(callback, verbose) {",
"coverage": ""
},
"184": {
"340": {
"source": " verbose = typeof verbose === 'boolean' ? verbose : false;",
"coverage": 0
},
"185": {
"source": " exec('tasklist /FO CSV' + (verbose === true ? ' /V' : ''), function (err, stdout) {",
"341": {
"source": " cp.exec('tasklist /FO CSV' + (verbose === true ? ' /V' : ''), function (err, stdout) {",
"coverage": 0
},
"186": {
"342": {
"source": " var pi = stdout.split('\\r\\n');",
"coverage": 0
},
"187": {
"343": {
"source": " var p = [];",
"coverage": 0
},
"188": {
"344": {
"source": "",
"coverage": ""
},
"189": {
"345": {
"source": " pi.forEach(function (line) {",
"coverage": 0
},
"190": {
"346": {
"source": " if (line.trim().length !== 0) {",
"coverage": 0
},
"191": {
"347": {
"source": " p.push(line);",
"coverage": 0
},
"192": {
"348": {
"source": " }",
"coverage": ""
},
"193": {
"349": {
"source": " });",
"coverage": ""
},
"194": {
"350": {
"source": "",
"coverage": ""
},
"195": {
"351": {
"source": " var proc = [];",
"coverage": 0
},
"196": {
"352": {
"source": " var head = null;",
"coverage": 0
},
"197": {
"353": {
"source": " while (p.length > 1) {",
"coverage": 0
},
"198": {
"354": {
"source": " var rec = p.shift();",
"coverage": 0
},
"199": {
"355": {
"source": " rec = rec.replace(/\\\"\\,/gi,'\";').replace(/\\\"|\\'/gi,'').split(';');",
"coverage": 0
},
"200": {
"356": {
"source": " if (head === null){",
"coverage": 0
},
"201": {
"357": {
"source": " head = rec;",
"coverage": 0
},
"202": {
"358": {
"source": " for (var i=0;i<head.length;i++){",
"coverage": 0
},
"203": {
"359": {
"source": " head[i] = head[i].replace(/ /gi,'');",
"coverage": 0
},
"204": {
"360": {
"source": " }",
"coverage": ""
},
"205": {
"361": {
"source": " } else {",
"coverage": ""
},
"206": {
"362": {
"source": " var tmp = {};",
"coverage": 0
},
"207": {
"363": {
"source": " for (var j=0;j<rec.length;j++){",
"coverage": 0
},
"208": {
"364": {
"source": " tmp[head[j]] = rec[j].replace(/\\\"|\\'/gi,'');",
"coverage": 0
},
"209": {
"365": {
"source": " }",
"coverage": ""
},
"210": {
"366": {
"source": " proc.push(tmp);",
"coverage": 0
},
"211": {
"367": {
"source": " }",
"coverage": ""
},
"212": {
"368": {
"source": " }",
"coverage": ""
},
"213": {
"369": {
"source": " callback(proc);",
"coverage": 0
},
"214": {
"370": {
"source": " });",
"coverage": ""
},
"215": {
"371": {
"source": "",
"coverage": ""
},
"216": {
"372": {
"source": " return this;",
"coverage": 0
},
"217": {
"373": {
"source": " },",
"coverage": ""
},
"218": {
"374": {
"source": "",
"coverage": ""
},
"219": {
"375": {
"source": " /**",
"coverage": ""
},
"220": {
"376": {
"source": " * Kill a specific process (win only)",
"coverage": ""
},
"221": {
"377": {
"source": " *",
"coverage": ""
},
"222": {
"378": {
"source": " * @method _kill",
"coverage": ""
},
"223": {
"379": {
"source": " * @param {Number} PID Process ID",
"coverage": ""
},
"224": {
"380": {
"source": " * @param {Boolean} [force=false] Force close the process.",
"coverage": ""
},
"225": {
"381": {
"source": " * @param {Function} [callback] Callback after process has been killed",
"coverage": ""
},
"226": {
"382": {
"source": " * @chainable",
"coverage": ""
},
"227": {
"383": {
"source": " * @private",
"coverage": ""
},
"228": {
"384": {
"source": " */",
"coverage": ""
},
"229": {
"385": {
"source": "",
"coverage": ""
},
"230": {
"386": {
"source": " _kill: function(pid, force, callback) {",
"coverage": ""
},
"231": {
"387": {
"source": " if (!pid){",
"coverage": 0
},
"232": {
"388": {
"source": " throw new Error('PID is required for the kill operation.');",
"coverage": 0
},
"233": {
"389": {
"source": " }",
"coverage": ""
},
"234": {
"390": {
"source": " callback = callback || function(){};",
"coverage": 0
},
"235": {
"391": {
"source": " if (typeof force === 'function'){",
"coverage": 0
},
"236": {
"392": {
"source": " callback = force;",
"coverage": 0
},
"237": {
"393": {
"source": " force = false;",
"coverage": 0
},
"238": {
"394": {
"source": " }",
"coverage": ""
},
"239": {
"source": " exec('taskkill /PID ' + pid + (force === true ? ' /f' : ''),callback);",
"395": {
"source": " cp.exec('taskkill /PID ' + pid + (force === true ? ' /f' : ''),callback);",
"coverage": 0
},
"240": {
"396": {
"source": " return this;",
"coverage": 0
},
"241": {
"397": {
"source": " }",
"coverage": ""
},
"242": {
"398": {
"source": "",
"coverage": ""
},
"243": {
"399": {
"source": "};",
"coverage": ""
},
"244": {
"400": {
"source": "",
"coverage": ""
},
"245": {
"401": {
"source": "// expose the module",
"coverage": ""
},
"246": {
"402": {
"source": "module.exports = InternetExplorer;",
"coverage": 1
},
"247": {
"403": {
"source": "",

@@ -1011,3 +1635,3 @@ "coverage": ""

{
"filename": "/Users/sgolasch/GitHub/dalekjs/dalek-browser-ie/lib/iedriver.js",
"filename": "/home/ubuntu/src/github.com/dalekjs/dalek-browser-ie/lib/iedriver.js",
"coverage": 100,

@@ -1119,4 +1743,4 @@ "hits": 3,

"failures": 0,
"start": "2013-07-19T14:25:09.179Z",
"end": "2013-07-19T14:25:09.179Z",
"start": "2013-09-24T05:41:48.876Z",
"end": "2013-09-24T05:41:48.876Z",
"duration": 0

@@ -1123,0 +1747,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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