{"_id":"escomplex","_rev":"294920","name":"escomplex","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","dist-tags":{"latest":"2.0.0-alpha"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"time":{"modified":"2021-06-03T18:56:36.000Z","created":"2013-10-15T21:37:40.409Z","2.0.0-alpha":"2016-02-27T21:11:52.318Z","1.3.0":"2015-10-21T10:51:43.221Z","1.2.0":"2015-03-02T17:05:03.576Z","1.1.0":"2015-02-23T21:15:31.503Z","1.0.0":"2014-12-27T16:39:36.956Z","0.2.6":"2014-12-21T13:21:35.129Z","0.2.5":"2014-10-10T09:29:46.600Z","0.2.4":"2014-10-09T08:28:20.236Z","0.2.3":"2014-05-14T12:30:44.555Z","0.2.2":"2013-12-11T09:29:01.175Z","0.2.1":"2013-11-03T09:43:28.435Z","0.2.0":"2013-11-02T22:08:46.386Z","0.1.3":"2013-10-20T19:51:16.892Z","0.1.2":"2013-10-16T21:43:19.756Z","0.1.1":"2013-10-16T18:18:48.144Z","0.1.0":"2013-10-15T21:37:40.409Z"},"users":{"gagan-bansal":true,"usex":true,"yonigoldberg":true,"ashbash":true},"author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"repository":{"type":"git","url":"git+https://github.com/jared-stilwell/escomplex.git"},"versions":{"2.0.0-alpha":{"name":"escomplex","version":"2.0.0-alpha","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/jared-stilwell/escomplex","bugs":{"url":"https://github.com/jared-stilwell/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"git+https://github.com/jared-stilwell/escomplex.git"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"contributors":[{"name":"Will Boyd","url":"https://github.com/lonekorean"},{"name":"Addison Higham","url":"https://github.com/addisonj"}],"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics"],"dependencies":{"check-types":"^5.1.0"},"devDependencies":{"chai":"^3.4.1","eslint":"^2.2.0","esprima":"^2.7.1","mocha":"^2.3.4","mockery":"1.4.x","sinon":"^1.16.1","spooks":"0.5.x"},"scripts":{"lint":"eslint test src","test":"mocha --ui tdd --reporter spec --colors"},"eslintConfig":{"extends":"eslint:recommended","parser":"esprima","env":{"node":true,"mocha":true}},"gitHead":"63c1407dda6e1732e7fff01e37f3f1ebcc0e4fd2","_id":"escomplex@2.0.0-alpha","_shasum":"fd6a79865d9baf57c4c3ed1b2fe677714e449606","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},"dist":{"shasum":"fd6a79865d9baf57c4c3ed1b2fe677714e449606","size":20350,"noattachment":false,"key":"/escomplex/-/escomplex-2.0.0-alpha.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-2.0.0-alpha.tgz"},"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/escomplex-2.0.0-alpha.tgz_1456607510947_0.7070196561980993"},"directories":{},"publish_time":1456607512318,"_cnpm_publish_time":1456607512318,"_hasShrinkwrap":false},"1.3.0":{"name":"escomplex","version":"1.3.0","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/jared-stilwell/escomplex","bugs":{"url":"https://github.com/jared-stilwell/escomplex/issues"},"license":"MIT","author":{"name":"Jared Stilwell","email":"jared.k.stilwell@gmail.com","url":"https://github.com/jared-stilwell"},"main":"./src","repository":{"type":"git","url":"git+https://github.com/jared-stilwell/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"^4.2.0","matrix-utilities":"^1.2.4"},"devDependencies":{"jshint":"^2.8.0","mocha":"^2.3.3","chai":"^3.3.0","escomplex-ast-moz":"^0.2.1","esprima":"^2.6.0"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"},{"name":"Addison Higham","url":"https://github.com/addisonj"},{"name":"Jared Stilwell","url":"https://github.com/jared-stilwell"}],"gitHead":"30bd8a5f80c82b124ded60c0efde3e6e575c1643","_id":"escomplex@1.3.0","_shasum":"1563376ab382b9c6de743189c786c0a7e9376370","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},"dist":{"shasum":"1563376ab382b9c6de743189c786c0a7e9376370","size":38111,"noattachment":false,"key":"/escomplex/-/escomplex-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-1.3.0.tgz"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1445424703221,"_cnpm_publish_time":1445424703221,"_hasShrinkwrap":false},"1.2.0":{"name":"escomplex","version":"1.2.0","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"2.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"},{"name":"Addison Higham","url":"https://github.com/addisonj"}],"gitHead":"9c59f8f8e9d59e4a7e4d74362c3628ee41e3dfcc","_id":"escomplex@1.2.0","_shasum":"9c204dee55a5cbac35c6684ea259678b8a54bab0","_from":".","_npmVersion":"2.6.0","_nodeVersion":"0.10.35","_npmUser":{"name":"addisonj","email":"addisonj@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"dist":{"shasum":"9c204dee55a5cbac35c6684ea259678b8a54bab0","size":40210,"noattachment":false,"key":"/escomplex/-/escomplex-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-1.2.0.tgz"},"directories":{},"publish_time":1425315903576,"_cnpm_publish_time":1425315903576,"_hasShrinkwrap":false},"1.1.0":{"name":"escomplex","version":"1.1.0","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"2.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"},{"name":"Addison Higham","url":"https://github.com/addisonj"}],"gitHead":"e0c53c373ce7187f6b87f4cbd5b30e13d61a1f91","_id":"escomplex@1.1.0","_shasum":"74b912b9ecfaeefa474d3c6e46c6e55ef0281e1b","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"addisonj","email":"addisonj@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"dist":{"shasum":"74b912b9ecfaeefa474d3c6e46c6e55ef0281e1b","size":20869,"noattachment":false,"key":"/escomplex/-/escomplex-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-1.1.0.tgz"},"directories":{},"publish_time":1424726131503,"_cnpm_publish_time":1424726131503,"_hasShrinkwrap":false},"1.0.0":{"name":"escomplex","version":"1.0.0","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"2.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"gitHead":"e1504ddee4ca8e0f68fb17ae3b44410b203f4b32","_id":"escomplex@1.0.0","_shasum":"8bcb1068dd25122f14040e5b8efd97bf7ee1d526","_from":".","_npmVersion":"2.1.8","_nodeVersion":"0.10.33","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"dist":{"shasum":"8bcb1068dd25122f14040e5b8efd97bf7ee1d526","size":18174,"noattachment":false,"key":"/escomplex/-/escomplex-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-1.0.0.tgz"},"directories":{},"publish_time":1419698376956,"_cnpm_publish_time":1419698376956,"_hasShrinkwrap":false},"0.2.6":{"name":"escomplex","version":"0.2.6","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"2.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"gitHead":"40c7b263a394e5c8e416cacaf1c7b038e70a36c6","_id":"escomplex@0.2.6","_shasum":"8f305ad505289aace694bfc6ccb3212dd8c2f503","_from":".","_npmVersion":"2.1.8","_nodeVersion":"0.10.33","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"dist":{"shasum":"8f305ad505289aace694bfc6ccb3212dd8c2f503","size":17703,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.6.tgz"},"directories":{},"publish_time":1419168095129,"_cnpm_publish_time":1419168095129,"_hasShrinkwrap":false},"0.2.5":{"name":"escomplex","version":"0.2.5","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"1.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"_id":"escomplex@0.2.5","dist":{"shasum":"48a889274c6b45e6614a51c753b64e288ddb2432","size":20614,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.5.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1412933386600,"_cnpm_publish_time":1412933386600,"_hasShrinkwrap":false},"0.2.4":{"name":"escomplex","version":"0.2.4","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"1.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"_id":"escomplex@0.2.4","dist":{"shasum":"628ea505d3296aa3d156249fd86320d36b0f13cb","size":20594,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.4.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1412843300236,"_cnpm_publish_time":1412843300236,"_hasShrinkwrap":false},"0.2.3":{"name":"escomplex","version":"0.2.3","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"1.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"_id":"escomplex@0.2.3","dist":{"shasum":"d7e76d5a18dd9b302237c121a953e63f862b2bd7","size":20576,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.3.tgz"},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1400070644555,"_cnpm_publish_time":1400070644555,"_hasShrinkwrap":false},"0.2.2":{"name":"escomplex","version":"0.2.2","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"1.1.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"},{"name":"Will Boyd","url":"https://github.com/lonekorean"}],"readmeFilename":"README.md","_id":"escomplex@0.2.2","dist":{"shasum":"f759bc3604b9d3aacbd95e4c9eaad6fb25b9aab8","size":20499,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.2.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1386754141175,"_cnpm_publish_time":1386754141175,"_hasShrinkwrap":false},"0.2.1":{"name":"escomplex","version":"0.2.1","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.7.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"}],"readmeFilename":"README.md","_id":"escomplex@0.2.1","dist":{"shasum":"5cbae0db160d391276ff2a520bfec699ab1bbc25","size":17430,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.1.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1383471808435,"_cnpm_publish_time":1383471808435,"_hasShrinkwrap":false},"0.2.0":{"name":"escomplex","version":"0.2.0","description":"Software complexity analysis of JavaScript-family abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.7.x","matrix-utilities":"1.2.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.x","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"npm run test-module && npm run test-project","test-module":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/module","test-project":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test/project"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},{"name":"Juzer Ali","url":"https://github.com/juzerali"},{"name":"Mark Trostler","url":"https://github.com/zzo"},{"name":"Wyatt Preul","url":"https://github.com/wpreul"},{"name":"Rowan Manning","url":"https://github.com/rowanmanning"},{"name":"Andrew Pennebaker","url":"https://github.com/mcandre"},{"name":"Nils Kenneweg","url":"https://github.com/nkenneweg"},{"name":"Eric Burin des Roziers","url":"https://github.com/Ericbdr"},{"name":"Tim Ruffles","url":"https://github.com/timruffles"}],"readmeFilename":"README.md","_id":"escomplex@0.2.0","dist":{"shasum":"d39b0adbf0030dffb2de524ce6f6d742bc5b24c0","size":16683,"noattachment":false,"key":"/escomplex/-/escomplex-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.2.0.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1383430126386,"_cnpm_publish_time":1383430126386,"_hasShrinkwrap":false},"0.1.3":{"name":"escomplex","version":"0.1.3","description":"Software complexity analysis of Mozilla-format abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.7.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","escomplex-ast-moz":"0.1.0","esprima":"1.0.x","coffee-script-redux":"2.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"}],"readmeFilename":"README.md","_id":"escomplex@0.1.3","dist":{"shasum":"fa9482b34ba853ce7fc1728dec246f9ebc881a27","size":14709,"noattachment":false,"key":"/escomplex/-/escomplex-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.1.3.tgz"},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1382298676892,"_cnpm_publish_time":1382298676892,"_hasShrinkwrap":false},"0.1.2":{"name":"escomplex","version":"0.1.2","description":"Software complexity analysis of Mozilla-format abstract syntax trees.","homepage":"https://github.com/philbooth/escomplex","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"license":"MIT","author":{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"},"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["escomplex","complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.6.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","esprima":"1.0.x"},"scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test"},"contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com","url":"https://github.com/philbooth"}],"readmeFilename":"README.md","_id":"escomplex@0.1.2","dist":{"shasum":"f13ef74d74b7fbf3b3b0716e70199134333aabc7","size":18340,"noattachment":false,"key":"/escomplex/-/escomplex-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.1.2.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1381959799756,"_cnpm_publish_time":1381959799756,"_hasShrinkwrap":false},"0.1.1":{"name":"escomplex","version":"0.1.1","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Reports code complexity metrics for Mozilla-format abstract syntax trees","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src","repository":{"type":"git","url":"https://github.com/philbooth/escomplex.git"},"keywords":["complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.6.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","esprima":"1.0.x"},"license":"MIT","scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"_id":"escomplex@0.1.1","dist":{"shasum":"2c26e682bc32b181f23c53a904ee7a4bd6e5fca3","size":18061,"noattachment":false,"key":"/escomplex/-/escomplex-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.1.1.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1381947528144,"_cnpm_publish_time":1381947528144,"_hasShrinkwrap":false},"0.1.0":{"name":"escomplex","version":"0.1.0","author":{"name":"Phil Booth","email":"pmbooth@gmail.com"},"description":"Reports code complexity metrics for Mozilla-format abstract syntax trees","contributors":[{"name":"Phil Booth","email":"pmbooth@gmail.com"}],"main":"./src/module","repository":{"type":"git","url":"https://github.com/philbooth/escomplex"},"keywords":["complexity","simplicity","cyclomatic","halstead","maintainability","dependencies","static","analysis","metrics","esprima","acorn","ast"],"dependencies":{"check-types":"0.6.x"},"devDependencies":{"jshint":"2.1.x","mocha":"1.13.x","chai":"1.8.x","esprima":"1.0.x"},"license":"MIT","scripts":{"lint":"./node_modules/jshint/bin/jshint src --config config/jshint.json","test":"./node_modules/mocha/bin/mocha --ui tdd --reporter spec --colors test"},"readmeFilename":"README.md","bugs":{"url":"https://github.com/philbooth/escomplex/issues"},"_id":"escomplex@0.1.0","dist":{"shasum":"be8b53d0e5500c8253823e2c13019831e68d3f3e","size":17833,"noattachment":false,"key":"/escomplex/-/escomplex-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/escomplex/download/escomplex-0.1.0.tgz"},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"philbooth","email":"pmbooth@gmail.com"},"maintainers":[{"name":"addisonj","email":""},{"name":"jaredstilwell","email":"jared.k.stilwell@gmail.com"},{"name":"philbooth","email":"pmbooth@gmail.com"}],"directories":{},"publish_time":1381873060409,"_cnpm_publish_time":1381873060409,"_hasShrinkwrap":false}},"readme":"# escomplex\n\n[![Build status][ci-image]][ci-status]\n[![Dependencies][dep-image]][dep-status]\n[![Dev Dependencies][devdep-image]][devdep-status]\n\nSoftware complexity analysis\nof JavaScript-family abstract syntax trees.\nThe back-end for [complexity-report].\n\n* [Metrics](#metrics)\n* [Links to research](#links-to-research)\n* [Installation](#installation)\n* [Usage](#usage)\n    * [Arguments](#arguments)\n        * [ast](#ast)\n        * [walker](#walker)\n        * [options](#options)\n    * [Result](#result)\n        * [For a single module](#for-a-single-module)\n        * [For multiple modules](#for-multiple-modules)\n* [Related projects](#related-projects)\n* [Development](#development)\n* [License](#license)\n\n## Metrics\n\nCurrently the library reports on:\n\n* Lines of code:\n  Both physical (the number of lines in a module or function)\n  and logical (a count of the imperative statements).\n  A crude measure.\n* Number of parameters:\n  Analysed statically\n  from the function signature,\n  so no accounting is made\n  for functions that rely on the `arguments` object.\n  Lower is better.\n* Cyclomatic complexity:\n  Defined by Thomas J. McCabe in 1976,\n  this is a count of the number of cycles\n  in the program flow control graph.\n  Effectively the number of distinct paths\n  through a block of code.\n  Lower is better.\n* Cyclomatic complexity density:\n  Proposed as a modification\n  to cyclomatic complexity\n  by Geoffrey K. Gill and Chris F. Kemerer in 1991,\n  this metric simply re-expresses it\n  as a percentage of the logical lines of code.\n  Lower is better.\n* Halstead metrics:\n  Defined by Maurice Halstead in 1977,\n  these metrics are calculated\n  from the numbers of operators\n  and operands in each function.\n  Lower is better.\n* Maintainability index:\n  Defined by Paul Oman & Jack Hagemeister in 1991,\n  this is a logarithmic scale\n  from negative infinity to 171,\n  calculated from\n  the logical lines of code,\n  the cyclomatix complexity\n  and the Halstead effort.\n  Higher is better.\n* Dependencies:\n  A count of the calls\n  to CommonJS and AMD `require`.\n  Analysed statically\n  from the function signature,\n  so no accounting is made\n  for dynamic calls\n  where a variable or function is\n  obscuring the nature of the dependency.\n  Lower is better.\n* First-order density:\n  The percentage of all possible internal dependencies\n  that are actually realised in the project.\n  Lower is better.\n* Change cost:\n  The percentage of modules affected,\n  on average,\n  when one module in the project\n  is changed.\n  Lower is better.\n* Core size:\n  The percentage of modules\n  that are both widely depended on\n  and themselves depend on other modules.\n  Lower is better.\n\nIt is important to note\nthat none of these metrics\ncan compete with the insight\nof a competent developer.\nAt best,\nthey are an automatable warning system,\nwhich can help to identify areas of code\nthat warrant closer inspection\nby a human being.\n\n## Links to research\n\n* [A Complexity Measure][mccabe],\n  by Thomas J McCabe.\n* [Cyclomatic Complexity Density and Software Maintenance Productivity][gillkemerer],\n  by Geoffrey K. Gill and Chris F. Kemerer.\n* [Resolving the Mysteries of the Halstead Measures][horstzuse],\n  by Horst Zuse.\n* [Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code][dsm],\n  by Alan MacCormack, John Rusnak and Carliss Baldwin.\n* [The Impact of Software Design Structure on Product Maintenance Costs and Measurement of Economic Benefits of Product Redesign][akaikine],\n  by Andrei Akaikine.\n* [A Systematic Review of Software Maintainability Prediction and Metrics][review],\n  by Mehwish Riaz, Emilia Mendes and Ewan Tempero.\n\n## Installation\n\nThe library is published on npm\nunder the name `escomplex`.\nTo install,\nyou can add it to the dependencies\nin your `package.json` file\nor simply run:\n\n```\nnpm i escomplex --save\n```\n\n## Usage\n\nYou can load escomplex\nin your own code\nby calling `require`:\n\n```javascript\nconst escomplex = require('escomplex');\n```\n\nescomplex exports two primary functions,\n`analyze` and `processResults`\n\n### analyse\n\n```javascript\nconst result = escomplex.analyse(source, options);\n```\n\n#### Arguments\n\n##### ast\n\nThe first argument, `source`, must be either a string or an array of objects. If it is an array, each object should include a `path` property that is either a relative or full path to the equivalent module on disk and a `code` with the contents of the module. As well as identifying each of the result objects, the path property is also used during dependency analysis.\n\n##### options\n\nThe third argument, `options`,\nis an optional object\ncontaining properties that modify\nsome of the complexity calculations:\n\n* `options.logicalor`:\n  Boolean indicating whether operator `||`\n  should be considered a source of cyclomatic complexity,\n  defaults to `true`.\n* `options.switchcase`:\n  Boolean indicating whether `switch` statements\n  should be considered a source of cyclomatic complexity,\n  defaults to `true`.\n* `options.forin`:\n  Boolean indicating whether `for`...`in` loops\n  should be considered a source of cyclomatic complexity,\n  defaults to `false`.\n* `options.trycatch`:\n  Boolean indicating whether `catch` clauses\n  should be considered a source of cyclomatic complexity,\n  defaults to `false`.\n* `options.newmi`:\n  Boolean indicating whether the maintainability\n  index should be rebased on a scale from 0 to 100,\n  defaults to `false`.\n* `options.skipCalculation`:\n  *only valid for when source is an array of files*\n  Boolean indicating if we should skip processing of certain values,\n  such as the adjacency and visibility matrixes,\n  core sizes, and average values loc, etc.\n* `options.noCoreSize`:\n  Skips creating the visibility matrix and calculating the coreSize,\n  which can be very expensive for large projects\n\n### processResults\n\n``` javascript\nconst noCoreSize = false;\nescomplex.processResults(result, noCoreSize);\n```\n\nThis function takes a report object\nand computes aggregate scores for all individual files and also adjacency and visibility matrices. This is useful for combining together multiple report objects and recomputing aggregate scores.\n\n#### Arguments\n\n##### Result\nA result object of the form:\n\n```JavaScript\nvar result = {\n  reports: [\n    {\n      // same format as module return\n    }\n  ]\n}\n```\n\n#### noCoreSize\na boolean indicating not to calculate the visibilityMatrix or core size\n\n\n### Result Format\nBoth `analyze` and `processResults`\nreturn a report of the following format,\nwith some variation depending on the given options.\n\n#### For a single module\n\nIf a single abstract syntax tree object\nis passed in the `ast` argument,\nthe result will be a report object\nthat looks like the following:\n\n```javascript\n{\n    maintainability: 171,\n    dependencies: [],\n    aggregate: {\n        sloc: {\n            logical: 0,\n            physical: 0\n        },\n        params: 0,\n        cyclomatic: 1,\n        cyclomaticDensity: 1,\n        halstead: {\n            vocabulary: 0,\n            difficulty: 0,\n            volume: 0,\n            effort: 0,\n            bugs: 0,\n            time: 0\n        }\n    },\n    functions: [\n        {\n            name: '',\n            line: 0,\n            sloc: {\n                logical: 0,\n                physical: 0\n            },\n            params: 0,\n            cyclomatic: 1,\n            cyclomaticDensity: 1,\n            halstead: {\n                vocabulary: 0,\n                difficulty: 0,\n                volume: 0,\n                effort: 0,\n                bugs: 0,\n                time: 0\n            }\n        },\n        ...\n    ]\n}\n```\n\nThe meaning of those values, briefly,\nis as follows\n(see [metrics](#metrics)\nfor more information\non each one):\n\n* `report.maintainability`:\n  The maintainability index for the module.\n* `report.dependencies`:\n  The array of CommonJS/AMD dependencies for the module.\n* `report.aggregate.sloc.physical`:\n  Physical lines of code for the module.\n  Will be `undefined`\n  if the syntax tree\n  is not annotated\n  with line number data.\n* `report.aggregate.sloc.logical`:\n  Logical lines of code for the module.\n* `report.aggregate.params`:\n  Parameter count for the module.\n* `report.aggregate.cyclomatic`:\n  Cyclomatic complexity for the module.\n* `report.aggregate.cyclomaticDensity`:\n  Cyclomatic complexity density for the module.\n* `report.aggregate.halstead.vocabulary`:\n  Halstead vocabulary size for the module.\n* `report.aggregate.halstead.difficulty`:\n  Halstead difficulty for the module.\n* `report.aggregate.halstead.volume`:\n  Halstead volume for the module.\n* `report.aggregate.halstead.effort`:\n  Halstead effort for the module.\n* `report.aggregate.halstead.bugs`:\n  Halstead bugs for the module.\n* `report.aggregate.halstead.time`:\n  Halstead time for the module.\n* `report.functions[n].name`:\n  Function name.\n* `report.functions[n].line`:\n  Line number that the function starts on.\n  Will be `undefined`\n  if the syntax tree\n  is not annotated\n  with line number data.\n* `report.functions[n].sloc.physical`:\n  Physical lines of code for the function.\n  Will be `undefined`\n  if the syntax tree\n  is not annotated\n  with line number data.\n* `report.functions[n].sloc.logical`:\n  Logical lines of code for the function.\n* `report.functions[n].params`:\n  Parameter count for the function.\n* `report.functions[n].cyclomatic`:\n  Cyclomatic complexity for the function.\n* `report.functions[n].cyclomaticDensity`:\n  Cyclomatic complexity density for the function.\n* `report.functions[n].halstead.vocabulary`:\n  Halstead vocabulary size for the function.\n* `report.functions[n].halstead.difficulty`:\n  Halstead difficulty for the function.\n* `report.functions[n].halstead.volume`:\n  Halstead volume for the function.\n* `report.functions[n].halstead.effort`:\n  Halstead effort for the function.\n* `report.functions[n].halstead.bugs`:\n  Halstead bugs for the function.\n* `report.functions[n].halstead.time`:\n  Halstead time for the function.\n\n#### For multiple modules\n\nIf an array of sources is passed in the `source` argument, the result will be an object\nthat looks like the following:\n\n```javascript\n{\n    reports: [\n        ...\n    ],\n    adjacencyMatrix: [\n        [ 0 ]\n    ],\n    firstOrderDensity: 0,\n    visibilityMatrix: [\n        [ 0 ]\n    ],\n    changeCost: 100,\n    coreSize: 100,\n    loc: 0,\n    cyclomatic: 1,\n    effort: 0,\n    params: 0,\n    maintainability: 171\n}\n```\n\nThose properties\nare defined as follows:\n\n* `result.reports`:\n  An array of report objects,\n  each one in the same format\n  [described above](#for-a-single-module)\n  but with an extra property `path`\n  that matches the `path` property\n  from its corresponding syntax tree.\n  This `path` property is required\n  because the reports array gets sorted\n  during dependency analysis.\n* `result.adjacencyMatrix`:\n  The adjacency\n  design structure matrix (DSM)\n  for the project.\n  This is a two-dimensional array,\n  each dimension with the same order and length\n  as the `reports` array.\n  Each row and column\n  represents its equivalent\n  indexed module\n  from the `reports` array,\n  with values along the horizontal\n  being `1`\n  when that module\n  directly depends on another\n  and values along the vertical\n  being `1`\n  when that module\n  is directly depended on by another.\n  All other values are `0`.\n* `result.firstOrderDensity`:\n  The first-order density for the project.\n* `result.visibilityMatrix`:\n  The visibility DSM for the project.\n  Like the adjacency matrix,\n  but expanded to incorporate\n  indirect dependencies.\n  Will be missing if `noCoreSize` is passed\n  as an option.\n* `result.changeCost`:\n  The change cost for the project.\n  Will be missing if `noCoreSize` is passed\n  as an option.\n* `result.coreSize`:\n  The core size for the project.\n* `result.loc`:\n  The average per-function\n  count of logical lines of code.\n* `result.cyclomatic`:\n  The average per-function\n  cyclomatic complexity.\n* `result.effort`:\n  The average per-function\n  Halstead effort.\n* `result.params`:\n  The average per-function\n  parameter count.\n* `result.maintainability`:\n  The average per-module\n  maintainability index.\n\n## Related projects\n\n* [plato]:\n  JavaScript source code visualization, static analysis, and complexity tool.\n* [jsc]:\n  JavaScript source code complexity tool.\n* [bob]:\n  Minimalist-omakase build tool for node.js projects.\n* [cardio]:\n  A web application health tool.\n* [grunt-complexity][grunt]:\n  A JavaScript complexity analysis grunt task.\n* [brackets-crjs][brackets]:\n  Brackets extension.\n* [jscomplexity]:\n  JS cyclomatic complexity report generator.\n* [karma-complexity-processor][karma]:\n  A preprocessor for karma runner to give some metrics about code complexity.\n* [crlint]:\n  JS linter based on complexity report results.\n\n## Development\n\nRefer to the [contribution guidelines][contributions]\nbefore submitting a pull request.\n\nSource code is in `/src`.\nUnit tests are in `/test`.\nYou can run the tests with `npm test`.\nYou can run the linter with `npm run lint`.\nMake sure you've installed\nall the dependencies\nwith `npm install`\nfirst.\n\n## License\n\n[MIT][license]\n\n[ci-image]: https://secure.travis-ci.org/jared-stilwell/escomplex.png?branch=master\n[ci-status]: http://travis-ci.org/#!/jared-stilwell/escomplex\n[dep-image]:https://david-dm.org/jared-stilwell/escomplex.svg\n[dep-status]:https://david-dm.org/jared-stilwell/escomplex\n[devdep-image]:https://david-dm.org/jared-stilwell/escomplex/dev-status.svg\n[devdep-status]:https://david-dm.org/jared-stilwell/escomplex#info=devDependencies&view=table\n[complexity-report]: https://github.com/jared-stilwell/complexity-report\n[escomplex-ast-moz]: https://github.com/jared-stilwell/escomplex-ast-moz\n[api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n[esprima]: http://esprima.org/\n[acorn]: http://marijnhaverbeke.nl/acorn\n[mccabe]: http://www.literateprogramming.com/mccabe.pdf\n[gillkemerer]: http://www.pitt.edu/~ckemerer/CK%20research%20papers/CyclomaticComplexityDensity_GillKemerer91.pdf\n[horstzuse]: http://horst-zuse.homepage.t-online.de/z-halstead-final-05-1.pdf\n[dsm]: http://www.people.hbs.edu/cbaldwin/DR2/MRBDesignStructure17thSep1.pdf\n[akaikine]: http://sdm.mit.edu/docs/akaikine_thesis.pdf\n[review]: http://www.rose-hulman.edu/Users/faculty/young/CS-Classes/csse575/Resources/maintainabilityMeas05314233.pdf\n[plato]: https://github.com/es-analysis/plato\n[jsc]: https://github.com/bahmutov/js-complexity-viz\n[bob]: https://github.com/cliffano/bob\n[cardio]: https://github.com/auchenberg/cardio\n[grunt]: https://github.com/vigetlabs/grunt-complexity\n[brackets]: https://github.com/sahlas/brackets-crjs\n[jscomplexity]: https://github.com/slyg/jscomplexity\n[karma]: https://github.com/lorenzofox3/karma-complexity-preprocessor\n[crlint]: https://github.com/spion/crlint.js\n[contributions]: https://github.com/jared-stilwell/escomplex/blob/master/CONTRIBUTING.md\n[license]: https://github.com/jared-stilwell/escomplex/blob/master/COPYING\n","_attachments":{},"homepage":"https://github.com/jared-stilwell/escomplex","bugs":{"url":"https://github.com/jared-stilwell/escomplex/issues"},"license":"MIT"}