diff --git a/.gitignore b/.gitignore index 4976d3661..bb1fc0562 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ wappalyzer.xpi !.gitkeep node_modules/* + +drivers/npm/node_modules/ diff --git a/drivers/npm/.gitignore b/drivers/npm/.gitignore new file mode 100644 index 000000000..c7273df57 --- /dev/null +++ b/drivers/npm/.gitignore @@ -0,0 +1,3 @@ +wappalyzer.js +apps.json +node_modules/ diff --git a/drivers/npm/README.md b/drivers/npm/README.md new file mode 100644 index 000000000..8aa96b834 --- /dev/null +++ b/drivers/npm/README.md @@ -0,0 +1,96 @@ +# Wappalyzer + +This is npm module for wappalyzer + + npm install wappalyzer + + + var wappalyzer = require("wappalyzer"); + + + var options={ + url : "http://codelanka.github.io/Presentation-Engines", + hostname:"codelanka.github.io", + debug:false + } + + wappalyzer.detectFromUrl(options,function (err,apps,appInfo) { + console.log(err,apps,appInfo); + }) + + +####Output + + + null [ 'AngularJS', + 'Font Awesome', + 'Google Font API', + 'jQuery', + 'Twitter Bootstrap' ] { AngularJS: + { app: 'AngularJS', + confidence: + { 'script //([\\d.]+(\\-?rc[.\\d]*)*)/angular(\\.min)?\\.js/i': 100, + 'script /angular.*\\.js/i': 100 }, + confidenceTotal: 100, + detected: true, + excludes: [], + version: '1.3.5', + versions: [ '1.3.5' ] }, + 'Font Awesome': + { app: 'Font Awesome', + confidence: { 'html /]* href=[^>]+font-awesome(?:\\.min)?\\.css/i': 100 }, + confidenceTotal: 100, + detected: true, + excludes: [], + version: '', + versions: [] }, + 'Google Font API': + { app: 'Google Font API', + confidence: { 'html /]* href=[^>]+fonts\\.(?:googleapis|google)\\.com/i': 100 }, + confidenceTotal: 100, + detected: true, + excludes: [], + version: '', + versions: [] }, + jQuery: + { app: 'jQuery', + confidence: { 'script /jquery.*\\.js/i': 100 }, + confidenceTotal: 100, + detected: true, + excludes: [], + version: '', + versions: [] }, + 'Twitter Bootstrap': + { app: 'Twitter Bootstrap', + confidence: + { 'script /(?:twitter\\.github\\.com/bootstrap|bootstrap(?:\\.js|\\.min\\.js))/i': 100, + 'html /; rel=shortlink" + "Link": "; rel=shortlink" }, "implies": [ "Python", "Solr", "Java", "PostgreSQL\\;confidence:80" ] }, @@ -778,6 +778,12 @@ "cats": [ 22 ], "headers": { "Server": "CouchDB/([\\d.]+)\\;version:\\1" } }, + "Cowboy": { + "website": "ninenines.eu", + "cats": [ 18, 22 ], + "headers": { "Server": "Cowboy" }, + "implies": "Erlang" + }, "cPanel": { "website": "www.cpanel.net", "cats": [ 9 ], @@ -1064,6 +1070,11 @@ "headers": { "Server": "\\beHTTP(?: v?([\\d\\.]+))?\\;version:\\1" }, "implies": "HP ProCurve" }, + "Elm": { + "website": "elm-lang.org", + "cats": [ 27, 12 ], + "env": "^Elm$" + }, "ELOG": { "website": "midas.psi.ch/elog", "cats": [ 19 ], @@ -1442,7 +1453,7 @@ "Google PageSpeed": { "website": "developers.google.com/speed/pagespeed/mod", "cats": [ 23, 33 ], - "headers": { "X-Mod-Pagespeed": "([\\d.]+)\\;version:\\1" } + "headers": { "X-Mod-Pagespeed": "([\\d.]+)\\;version:\\1", "X-Page-Speed": "(.+)\\;version:\\1" } }, "Google Sites": { "website": "sites.google.com", @@ -3054,6 +3065,11 @@ "cats": [ 22 ], "headers": { "Server": "RAID HTTPServer(?:/([\\d.]+))?\\;version:\\1" } }, + "Ramda": { + "website": "ramdajs.com", + "cats": [ 12 ], + "script": "ramda.*\\.js" + }, "Raphael": { "website": "raphaeljs.com", "cats": [ 25 ], @@ -3159,6 +3175,12 @@ "headers": { "Server": "(?:mod_rails|mod_rack|Phusion(?:\\.|_)Passenger)\\;confidence:50", "X-Powered-By": "(?:mod_rails|mod_rack|Phusion[\\._ ]Passenger)(?: \\(mod_rails/mod_rack\\))?(?: ?/?([\\d\\.]+))?\\;version:\\1\\;confidence:50" }, "implies": "Ruby" }, + "RxJS" : { + "website": "reactive-extensions.github.io/RxJS/", + "cats": [ 12 ], + "script": "rx(?:\\.\\w+)?(?:\\.compat)?(?:\\.min)?\\.js", + "env": "^Rx$\\;confidence:20" + }, "S.Builder": { "website": "www.sbuilder.ru", "cats": [ 1 ], @@ -3488,6 +3510,14 @@ "headers": { "X-ServedBy": "squarespace" }, "env": "^Squarespace" }, + "SquirrelMail": { + "website": "squirrelmail.org", + "cats": [ 30 ], + "html": "SquirrelMail version ([.\\d]+)[^<]*