diff --git a/src/apps.json b/src/apps.json index c91391720..91fdc2f67 100644 --- a/src/apps.json +++ b/src/apps.json @@ -981,6 +981,14 @@ "icon": "apostrophecms.svg", "implies": "Node.js", "website": "http://apostrophecms.org" + }, + "AppDynamics": { + "cats": [ + 10 + ], + "icon": "AppDynamics.png", + "script": "adrum\\.js|adrum.([0-9].*)\\.js\\;version:\\1", + "website": "https://appdynamics.com" }, "AppNexus": { "cats": [ diff --git a/src/drivers/bookmarklet/driver.js b/src/drivers/bookmarklet/driver.js index fdddff2c5..361862657 100644 --- a/src/drivers/bookmarklet/driver.js +++ b/src/drivers/bookmarklet/driver.js @@ -1,7 +1,9 @@ -/* eslint-env browser */ -/* eslint-disable func-names, no-unused-expressions, no-restricted-globals */ -/* eslint-disable no-restricted-syntax, no-continue */ -/* global wappalyzer */ +/** + * Bookmarklet driver + */ + +/** global: wappalyzer */ +/** global: XMLHttpRequest */ (function () { wappalyzer.driver.document = document; @@ -14,7 +16,6 @@ * Log messages to console */ wappalyzer.driver.log = (message, source, type) => { - // eslint-disable-next-line no-console console.log(`[wappalyzer ${type}]`, `[${source}]`, message); }; @@ -50,14 +51,14 @@ if (xhr.readyState === 4 && xhr.status) { const headers = xhr.getAllResponseHeaders().split('\n'); - if (headers.length > 0 && headers[0]) { + if (headers.length > 0 && headers[0] != '') { wappalyzer.log(`responseHeaders: ${xhr.getAllResponseHeaders()}`, 'driver'); const responseHeaders = {}; headers.forEach((line) => { - let name; - let value; + let name, + value; if (line) { name = line.substring(0, line.indexOf(': ')); @@ -80,10 +81,6 @@ xhr.send(); } - function slugify(string) { - return string.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/--+/g, '-').replace(/(?:^-|-$)/, ''); - } - /** * Display apps */ @@ -106,13 +103,12 @@ continue; } - const { version, confidence } = detected[app]; - - category = wappalyzer.categories[wappalyzer.apps[app].cats[0]].name; + let version = detected[app].version, + confidence = detected[app].confidence; html += `
` - + `` + + `` + '' + ` ${app }${ @@ -126,7 +122,7 @@ category = wappalyzer.categories[wappalyzer.apps[app].cats[i]].name; - html += `${category}`; + html += `${category}`; } html += '
'; @@ -134,14 +130,25 @@ first = false; } } else { - html += '
No technologies detected
'; + html += '
No applications detected
'; } html += ''; container.innerHTML = html; + }, + + /** + * Open a tab + */ + function openTab(args) { + open(args.url); }; + function slugify(string) { + return string.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/--+/g, '-').replace(/(?:^-|-$)/, ''); + } + getPageContent(); getResponseHeaders(); }()); diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json index 6bad6ee83..330d7079d 100644 --- a/src/drivers/npm/package.json +++ b/src/drivers/npm/package.json @@ -2,7 +2,7 @@ "name": "wappalyzer", "description": "Identify technology on websites", "homepage": "https://www.wappalyzer.com", - "version": "5.9.34", + "version": "5.9.33", "author": "Wappalyzer", "license": "MIT", "repository": { diff --git a/src/icons/AppDynamics.png b/src/icons/AppDynamics.png new file mode 100644 index 000000000..1470b96fd Binary files /dev/null and b/src/icons/AppDynamics.png differ