diff --git a/bin/wappalyzer-build b/bin/wappalyzer-build index 331ff06d4..78aa462c7 100755 --- a/bin/wappalyzer-build +++ b/bin/wappalyzer-build @@ -17,6 +17,10 @@ jsonlint -ist $'\t' $WAPPALYZER_ROOT/src/apps.json wappalyzer links +# Npm Module +mkdir -p $WAPPALYZER_ROOT/build/wappalyzer_npm/ +cp -R $WAPPALYZER_ROOT/src/drivers/npm/* $WAPPALYZER_ROOT/build/wappalyzer_npm/ + # Mozilla Firefox echo "Building Firefox driver..." diff --git a/src/apps.json b/src/apps.json index 0a93bacf0..b1afcc430 100755 --- a/src/apps.json +++ b/src/apps.json @@ -1314,19 +1314,30 @@ "script": "dhtmlxcommon\\.js", "website": "dhtmlx.com" }, - "Discuz! X": { + "DNN": { "cats": [ - 2 + 1 ], + "env": "^DotNetNuke$", + "headers": { + "Cookie": "dnn_IsMobile=", + "DNNOutputCache": "", + "Set-Cookie": "DotNetNukeAnonymous=", + "X-Compressed-By": "DotNetNuke" + }, + "html": [ + "", + "", + "]* href=\"[^\"]*materialize(?:\\.min)?\\.css", + "implies": "jQuery", + "script": "materialize(?:\\.min)?\\.js", + "website": "materializecss.com" + }, "MathJax": { "cats": [ 25 @@ -3764,13 +3802,6 @@ "implies": "PHP", "website": "moodle.org" }, - "Kotisivukone": { - "cats": [ - 1 - ], - "script": "kotisivukone(?:\\.min)?\\.js", - "website": "www.kotisivukone.fi" - }, "Motion-httpd": { "cats": [ 22 @@ -3944,24 +3975,6 @@ }, "website": "nginx.org" }, - "Odoo": { - "cats": [ - 1, - 6 - ], - "implies": [ - "Python", - "PostgreSQL", - "node.js", - "Less" - ], - "meta": { - "generator": "Odoo" - }, - "script": "/web/js/(?:web\\.assets_common/|website\\.assets_frontend/)\\;confidence:25", - "html": "]* href=[^>]+/web/css/(?:web\\.assets_common/|website\\.assets_frontend/)\\;confidence:25", - "website": "odoo.com" - }, "OWL Carousel": { "cats": [ 5, @@ -3990,12 +4003,37 @@ "implies": "Laravel", "website": "octobercms.com" }, + "Odoo": { + "cats": [ + 1, + 6 + ], + "html": "]* href=[^>]+/web/css/(?:web\\.assets_common/|website\\.assets_frontend/)\\;confidence:25", + "implies": [ + "Python", + "PostgreSQL", + "node.js", + "Less" + ], + "meta": { + "generator": "Odoo" + }, + "script": "/web/js/(?:web\\.assets_common/|website\\.assets_frontend/)\\;confidence:25", + "website": "odoo.com" + }, "OmniTouch 8660 My Teamwork": { "cats": [ 19 ], "website": "enterprise.alcatel-lucent.com" }, + "OneAPM": { + "cats": [ + 10 + ], + "env": "^BWEUM", + "website": "www.oneapm.com" + }, "OneStat": { "cats": [ 10 @@ -4737,6 +4775,16 @@ "script": "require.*\\.js", "website": "requirejs.org" }, + "Resin": { + "cats": [ + 22 + ], + "headers": { + "Server": "^Resin(?:/(\\S*))?;version=\\1" + }, + "implies": "Java", + "website": "caucho.com" + }, "Reveal.js": { "cats": [ 12 @@ -4999,6 +5047,17 @@ "script": "select2.*\\.js", "website": "select2.github.io" }, + "Semantic-ui": { + "cats": [ + 18 + ], + "html": [ + "(?:
]+\">)\\;confidence:30", + "(?:]+semantic(?:\\.css|\\.min\\.css)\">)" + ], + "script": "(?:semantic(?:\\.js|\\.min\\.js))", + "website": "semantic-ui.com" + }, "Sencha Touch": { "cats": [ 12, @@ -5113,7 +5172,11 @@ "cats": [ 6 ], - "implies": [ "PHP", "MySQL", "jQuery" ], + "implies": [ + "PHP", + "MySQL", + "jQuery" + ], "meta": { "application-name": "Shopware" }, @@ -5558,6 +5621,17 @@ "url": "/neos/", "website": "neos.typo3.org" }, + "Taiga": { + "cats": [ + 13 + ], + "env": "^taigaConfig$", + "implies": [ + "Django", + "AngularJS" + ], + "website": "taiga.io" + }, "Tealeaf": { "cats": [ 10 @@ -6077,7 +6151,7 @@ "script": [ "vue(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", "/([\\d.]+)/vue(\\.min)?\\.js\\;version:\\1", - "vue.*\\.js;\\confidence:20" + "vue.*\\.js\\;confidence:20" ], "website": "vuejs.org" }, @@ -6110,6 +6184,16 @@ "implies": "WordPress", "website": "wp-rocket.me" }, + "Warp": { + "cats": [ + 22 + ], + "headers": { + "Server": "^Warp/(\\d+(?:\\.\\d+)+)?$;version:\\1" + }, + "implies": "Haskell", + "website": "www.stackage.org/package/warp" + }, "Web Optimizer": { "cats": [ 10 @@ -6147,13 +6231,6 @@ }, "website": "www.webgui.org" }, - "webpack": { - "cats": [ - 44 - ], - "env": "^webpackJsonp$", - "website": "webpack.github.io" - }, "WebPublisher": { "cats": [ 1 @@ -6523,17 +6600,6 @@ "script": "mc\\.yandex\\.ru\\/metrika\\/watch\\.js", "website": "metrika.yandex.com" }, - "Yesod": { - "cats": [ - 18, - 22 - ], - "headers": { - "Server": "Warp/\\d+(\\.\\d+)+" - }, - "implies": "Haskell", - "website": "www.yesodweb.com" - }, "Yieldlab": { "cats": [ 36 @@ -6553,6 +6619,15 @@ ], "website": "yiiframework.com" }, + "Yoast SEO": { + "cats": [ + 32 + ], + "html": [ + " + + + + + + + + + + + + +
+
+
+
+
+

Preso Engines

+ "Presentation Engines" +
+
+ +
+
By | CodeLanka
+
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/src/drivers/npm/test/test.js b/src/drivers/npm/test/test.js index ce4426172..8e994d1cc 100644 --- a/src/drivers/npm/test/test.js +++ b/src/drivers/npm/test/test.js @@ -1,4 +1,5 @@ -var assert = require("assert") +var assert = require("assert") +var fs = require('fs') describe('wappalyzer', function(){ describe('detectFromUrl', function(){ @@ -24,4 +25,41 @@ describe('wappalyzer', function(){ }) }) + describe('detectFromHTML', function(){ + it('should have the expected apps detected when passed raw info', function(done){ + + var wappalyzer = require("../index"); + + var expect = ['AngularJS','Font Awesome','Google Font API','Twitter Bootstrap','jQuery']; + + var options={ + url : "http://codelanka.github.io/Presentation-Engines", + hostname:"codelanka.github.io", + debug:false + } + + var data = { + + url: options.url, + headers: require('./sample.headers.json'), + html: fs.readFileSync('./test/sample.html').toString(), + headers: { + + headers: {} + + } + + }; + + wappalyzer.detectFromHTML(options, data, function (err,apps) { + + assert.equal(expect[0], apps[0]); + assert.equal(expect[1], apps[1]); + assert.equal(expect[2], apps[2]); + assert.equal(expect[3], apps[3]); + done(); + }) + + }) + }) }) diff --git a/src/icons/HTTP Kit.png b/src/icons/HTTP Kit.png new file mode 100644 index 000000000..2e51915b0 Binary files /dev/null and b/src/icons/HTTP Kit.png differ diff --git a/src/icons/Liveinternet.png b/src/icons/Liveinternet.png new file mode 100644 index 000000000..816d41d3c Binary files /dev/null and b/src/icons/Liveinternet.png differ diff --git a/src/icons/Materialize CSS.png b/src/icons/Materialize CSS.png new file mode 100644 index 000000000..12be1b4a9 Binary files /dev/null and b/src/icons/Materialize CSS.png differ diff --git a/src/icons/OneAPM.png b/src/icons/OneAPM.png new file mode 100644 index 000000000..cd4f53149 Binary files /dev/null and b/src/icons/OneAPM.png differ diff --git a/src/icons/Resin.png b/src/icons/Resin.png new file mode 100644 index 000000000..1e26b7269 Binary files /dev/null and b/src/icons/Resin.png differ diff --git a/src/icons/Semantic-ui.png b/src/icons/Semantic-ui.png new file mode 100644 index 000000000..709d35e62 Binary files /dev/null and b/src/icons/Semantic-ui.png differ diff --git a/src/icons/Taiga.png b/src/icons/Taiga.png new file mode 100644 index 000000000..5021fab1b Binary files /dev/null and b/src/icons/Taiga.png differ diff --git a/src/icons/Yesod.png b/src/icons/Warp.png similarity index 100% rename from src/icons/Yesod.png rename to src/icons/Warp.png diff --git a/src/icons/Yoast SEO.png b/src/icons/Yoast SEO.png new file mode 100644 index 000000000..c4929656c Binary files /dev/null and b/src/icons/Yoast SEO.png differ