diff --git a/src/apps.json b/src/apps.json index 079c10a31..e613e3a7f 100644 --- a/src/apps.json +++ b/src/apps.json @@ -158,11 +158,10 @@ "cats": [ 68 ], + "icon": "Accessibe.png", "script": "acsbap\\.com/.*/acsb\\.js", - "website": "https://accessibe.com/", - "icon": "Accessibe.png" + "website": "https://accessibe.com/" }, - "Acquia Cloud": { "cats": [ 62 @@ -242,9 +241,9 @@ "cats": [ 68 ], + "icon": "Adally.png", "script": "cloudfront\\.net/.*/adally\\.js", - "website": "https://adally.com/", - "icon": "Adally.png" + "website": "https://adally.com/" }, "Adcash": { "cats": [ @@ -552,11 +551,11 @@ "cookies": { "ak_bmsc": "", "bm_sv": "", - "bm_sz": "" + "bm_sz": "" }, "icon": "akamai.svg", "website": "http://akamai.com/bot-manager" - }, + }, "Akaunting": { "cats": [ 55 @@ -714,6 +713,18 @@ "implies": "Amazon Web Services", "website": "https://aws.amazon.com/elasticloadbalancing/" }, + "Amazon Pay": { + "cats": [ + 41 + ], + "html": "]*audioeye\\.com/frame/cookieStorage", + "icon": "AudioEye.png", "script": "audioeye\\.com/ae\\.js", - "website": "https://www.audioeye.com/", - "icon": "AudioEye.png" + "website": "https://www.audioeye.com/" }, "Aurelia": { "cats": [ @@ -1875,7 +1886,7 @@ "icon": "civic.png", "script": "cc\\.cdn\\.civiccomputing\\.com", "website": "https://www.civicuk.com/cookie-control" - }, + }, "CKEditor": { "cats": [ 24 @@ -2046,16 +2057,16 @@ 6 ], "html": [ - "]*href=[^>]*/Cart", - "]*href=[^>]*/Basket", - "]*href=[^>]*/Trolley", - "]*href=[^>]*/Bag", - "]*href=[^>]*/ShoppingBag", - "]*href=[^>]*/Checkout" + "]*href=[^>]*/Cart", + "]*href=[^>]*/Basket", + "]*href=[^>]*/Trolley", + "]*href=[^>]*/Bag", + "]*href=[^>]*/ShoppingBag", + "]*href=[^>]*/Checkout" ], "icon": "Cart-generic.svg", "website": "https://www.wappalyzer.com/technologies/ecommerce/cart-functionality" - }, + }, "Catberry.js": { "cats": [ 12, @@ -2588,31 +2599,23 @@ "script": "conversionlab\\.trackset\\.com/track/tsend\\.js", "website": "http://www.trackset.it/conversionlab" }, - "Cookiebot": { + "Cookie Script": { "cats": [ 67 ], - "icon": "Cookiebot.svg", - "script": "consent\\.cookiebot\\.com", - "website": "http://www.cookiebot.com" - }, + "icon": "CookieScript.png", + "script": "//cookie-script\\.com/s/", + "website": "https://cookie-script.com/" + }, "CookieHub": { "cats": [ 67 ], + "icon": "CookieHub.png", "script": [ - "cookiehub\\.net/.*\\.js" + "cookiehub\\.net/.*\\.js" ], - "icon": "CookieHub.png", "website": "https://www.cookiehub.com" - }, - "Cookie Script": { - "cats": [ - 67 - ], - "icon": "CookieScript.png", - "script": "//cookie-script\\.com/s/", - "website": "https://cookie-script.com/" }, "CookieYes": { "cats": [ @@ -2621,7 +2624,15 @@ "icon": "cookieyes.png", "script": "app\\.cookieyes\\.com/client_data/", "website": "https://www.cookieyes.com/" - }, + }, + "Cookiebot": { + "cats": [ + 67 + ], + "icon": "Cookiebot.svg", + "script": "consent\\.cookiebot\\.com", + "website": "http://www.cookiebot.com" + }, "Coppermine": { "cats": [ 7 @@ -3001,8 +3012,8 @@ ], "cookies": { "datadome": "", - "datadome-_zldt": "", - "datadome-_zldp": "" + "datadome-_zldp": "", + "datadome-_zldt": "" }, "headers": { "Server": "^DataDome$", @@ -3063,7 +3074,7 @@ "icon": "didomi.png", "script": "sdk\\.privacy-center\\.org/.*/loader\\.js", "website": "https://www.didomi.io/en/consent-preference-management" - }, + }, "DirectAdmin": { "cats": [ 9 @@ -3669,9 +3680,9 @@ "cats": [ 68 ], + "icon": "EqualWeb.png", "script": "cdn\\.equalweb\\.com.*\\.js", - "website": "https://www.equalweb.com/", - "icon": "EqualWeb.png" + "website": "https://www.equalweb.com/" }, "Erlang": { "cats": [ @@ -3712,14 +3723,6 @@ ], "website": "https://etherpad.org" }, - "eucookie.eu": { - "cats": [ - 67 - ], - "icon": "eucookie.png", - "script": "eucookie\\.eu/public/gdpr-cookie-consent\\.js", - "website": "https://www.eucookie.eu/" - }, "Exhibit": { "cats": [ 25 @@ -3833,9 +3836,9 @@ "cats": [ 68 ], + "icon": "Facil-iti.png", "script": "ws\\.facil-iti\\.com/tag/faciliti-tag\\.min\\.js", - "website": "https://www.facil-iti.com/", - "icon": "Facil-iti.png" + "website": "https://www.facil-iti.com/" }, "Fact Finder": { "cats": [ @@ -4041,6 +4044,17 @@ "script": "/flickity(?:\\.pkgd)?(?:\\.min)?\\.js", "website": "https://flickity.metafizzy.co/" }, + "Flow": { + "cats": [ + 6 + ], + "icon": "flow.png", + "script": [ + "shopify-cdn\\.flow\\.io", + "flow\\.min\\.js" + ], + "website": "https://www.flow.io/" + }, "FluxBB": { "cats": [ 2 @@ -4560,12 +4574,12 @@ "cats": [ 6 ], + "icon": "Globale.png", "script": [ - "web\\.global-e\\.com" + "web\\.global-e\\.com" ], - "icon": "Globale.png", "website": "https://www.global-e.com/" - }, + }, "Glyphicons": { "cats": [ 17 @@ -5133,12 +5147,13 @@ 62 ], "headers": { - "Via": "/[\\d.-]+ vegur$" + "Via": "[\\d.-]+ vegur$" }, "icon": "heroku.svg", "implies": [ "Amazon Web Services" ], + "url": "\\.herokuapp\\.com", "website": "https://www.heroku.com/" }, "Hexo": { @@ -5202,9 +5217,9 @@ "cats": [ 68 ], + "icon": "HikeOrders.png", "script": "hikeorders\\.com/main/assets/js/hko-accessibility\\.min\\.js", - "website": "https://hikeorders.com/", - "icon": "HikeOrders.png" + "website": "https://hikeorders.com/" }, "Hinza Advanced CMS": { "cats": [ @@ -5425,6 +5440,16 @@ "script": "^immutable\\.(?:min\\.)?js$", "website": "https://facebook.github.io/immutable-js/" }, + "Imperva": { + "cats": [ + 16 + ], + "icon": "Imperva.svg", + "script": [ + "/_Incapsula_Resource" + ], + "website": "https://www.imperva.com/" + }, "ImpressCMS": { "cats": [ 1 @@ -5662,12 +5687,12 @@ "cats": [ 67 ], + "icon": "iubenda.png", "script": [ - "iubenda\\.com/cookie-solution/confs/js/" + "iubenda\\.com/cookie-solution/confs/js/" ], - "icon": "iubenda.png", "website": "https://www.iubenda.com/" - }, + }, "J2Store": { "cats": [ 6 @@ -6844,9 +6869,9 @@ "cats": [ 68 ], + "icon": "Make-Sense.png", "script": "mk-sense\\.com/aweb\\?license", - "website": "https://mk-sense.com/", - "icon": "Make-Sense.png" + "website": "https://mk-sense.com/" }, "MakeShopKorea": { "cats": [ @@ -6976,7 +7001,7 @@ "script": "([\\d.]+)?/mathjax\\.js\\;version:\\1", "website": "https://www.mathjax.org" }, - "Matomo": { + "Matomo Analytics": { "cats": [ 10 ], @@ -6998,6 +7023,16 @@ "script": "piwik\\.js|piwik\\.php", "website": "https://matomo.org" }, + "Matomo Tag Manager": { + "cats": [ + 42 + ], + "icon": "Matomo.png", + "js": { + "window.MatomoTagManager": "" + }, + "website": "https://developer.matomo.org/guides/tagmanager/introduction" + }, "Mattermost": { "cats": [ 2 @@ -7205,12 +7240,12 @@ "cats": [ 67 ], + "icon": "metomic.png", "script": [ - "metomic\\.js" + "metomic\\.js" ], - "icon": "metomic.png", "website": "https://metomic.io" - }, + }, "Microsoft ASP.NET": { "cats": [ 18 @@ -7423,15 +7458,15 @@ ], "headers": { "X-Powered-By": "Mobify" - }, + }, "icon": "Mobify.png", "js": { "Mobify": "" }, "script": [ - "//cdn\\.mobify\\.com/", - "//a\\.mobify\\.com/" - ], + "//cdn\\.mobify\\.com/", + "//a\\.mobify\\.com/" + ], "website": "https://www.mobify.com" }, "Mobirise": { @@ -8162,7 +8197,7 @@ }, "icon": "OneTrust.png", "script": [ - "cdn\\.cookielaw\\.org", + "cdn\\.cookielaw\\.org", "optanon\\.blob\\.core\\.windows\\.net", "otSDKStub\\.js", "cdn\\.cookielaw\\.org", @@ -8509,7 +8544,7 @@ "icon": "osano.png", "script": "cookieconsent\\.min\\.js", "website": "https://www.osano.com/" - }, + }, "Outbrain": { "cats": [ 5 @@ -8788,13 +8823,13 @@ ], "cookies": { "_px3": "", - "_pxvid": "", "_pxff_cc": "", - "_pxhd": "" + "_pxhd": "", + "_pxvid": "" }, "icon": "perimeterx.svg", "website": "https://www.perimeterx.com/" - }, + }, "Perl": { "cats": [ 27 @@ -9326,7 +9361,7 @@ }, "script": "quantcast\\.mgr\\.consensu\\.org", "website": "https://www.quantcast.com/gdpr/consent-management-solution/" - }, + }, "Quantcast Measure": { "cats": [ 10 @@ -9543,14 +9578,6 @@ }, "website": "http://www.rayo.ir" }, - "Recite Me": { - "cats": [ - 68 - ], - "html": "api\\.reciteme\\.com/asset/js", - "website": "https://reciteme.com/", - "icon": "Recite Me.png" - }, "ReDoc": { "cats": [ 4 @@ -9594,6 +9621,14 @@ "icon": "RebelMouse.svg", "website": "https://www.rebelmouse.com/" }, + "Recite Me": { + "cats": [ + 68 + ], + "html": "api\\.reciteme\\.com/asset/js", + "icon": "Recite Me.png", + "website": "https://reciteme.com/" + }, "Red Hat": { "cats": [ 28 @@ -10094,6 +10129,16 @@ "icon": "salecycle.svg", "website": "https://www.salecycle.com/" }, + "Salesfloor": { + "cats": [ + 6 + ], + "icon": "salesfloor.png", + "script": [ + "salesFloor\\.js" + ], + "website": "https://salesfloor.net/" + }, "Salesforce": { "cats": [ 53 @@ -10240,12 +10285,12 @@ "cats": [ 67 ], + "icon": "seersco.png", "script": [ - "seersco.com/script/cb\\.js" + "seersco.com/script/cb\\.js" ], - "icon": "seersco.png", "website": "http://www.seersco.com" - }, + }, "Segment": { "cats": [ 10 @@ -10560,7 +10605,8 @@ }, "Signal": { "cats": [ - 32 + 32, + 42 ], "icon": "signal.png", "js": { @@ -11643,7 +11689,7 @@ "icon": "termly.svg", "script": "app\\.termly\\.io/embed\\.min\\.js", "website": "https://termly.io/" - }, + }, "Tessitura": { "cats": [ 53 @@ -11671,9 +11717,9 @@ "cats": [ 68 ], + "icon": "Texthelp.png", "script": "browsealoud\\.com/.*/browsealoud\\.js", - "website": "https://www.texthelp.com/en-gb/products/browsealoud/", - "icon": "Texthelp.png" + "website": "https://www.texthelp.com/en-gb/products/browsealoud/" }, "Textpattern CMS": { "cats": [ @@ -11698,7 +11744,7 @@ "THEHUT-.*\\.js" ], "website": "https://www.thg.com/" - }, + }, "Thelia": { "cats": [ 1, @@ -12143,14 +12189,6 @@ "script": "underscore.*\\.js(?:\\?ver=([\\d.]+))?\\;version:\\1", "website": "http://underscorejs.org" }, - "uRemediate": { - "cats": [ - 68 - ], - "script": "fecdn\\.user1st\\.info/Loader/head", - "website": "https://www.user1st.com/uremediate/", - "icon": "User1st.png" - }, "Uniconsent": { "cats": [ 67 @@ -12158,15 +12196,6 @@ "icon": "Uniconsent.png", "script": "cmp\\.uniconsent\\.mgr\\.consensu\\.org/dfp\\.js", "website": "https://www.uniconsent.com/" - }, - "UsableNet": { - "cats": [ - 68 - ], - "script": "\\.usablenet\\.com/pt/", - "html": "]*\\.usablenet\\.com/pt/", - "website": "https://usablenet.com/", - "icon": "UsableNet.png" }, "Usabilla": { "cats": [ @@ -12178,6 +12207,15 @@ }, "website": "http://usabilla.com" }, + "UsableNet": { + "cats": [ + 68 + ], + "html": "]*\\.usablenet\\.com/pt/", + "icon": "UsableNet.png", + "script": "\\.usablenet\\.com/pt/", + "website": "https://usablenet.com/" + }, "UserLike": { "cats": [ 52 @@ -12213,9 +12251,9 @@ "cats": [ 68 ], + "icon": "UserWay.png", "script": "cdn\\.userway\\.org/widget.*\\.js", - "website": "https://userway.org/", - "icon": "UserWay.png" + "website": "https://userway.org/" }, "Ushahidi": { "cats": [ @@ -12656,8 +12694,7 @@ ], "icon": "webAR.svg", "website": "https://modelviewer.dev/" - }, - + }, "WebGUI": { "cats": [ 1 @@ -13703,6 +13740,18 @@ "script": "basket.*\\.js\\;confidence:10", "website": "https://addyosmani.github.io/basket.js/" }, + "borderfree": { + "cats": [ + 6 + ], + "icon": "borderfree.png", + "script": [ + "global\\.prd\\.borderfree\\.com", + "wm\\.prd\\.borderfree\\.com", + "bfx\\.js" + ], + "website": "https://www.borderfree.com/" + }, "cPanel": { "cats": [ 9 @@ -13867,6 +13916,14 @@ "implies": "Node.js", "website": "http://endurojs.com" }, + "eucookie.eu": { + "cats": [ + 67 + ], + "icon": "eucookie.png", + "script": "eucookie\\.eu/public/gdpr-cookie-consent\\.js", + "website": "https://www.eucookie.eu/" + }, "experiencedCMS": { "cats": [ 1 @@ -13947,7 +14004,6 @@ "Server": "gunicorn(?:/([\\d.]+))?\\;version:\\1" }, "icon": "gunicorn.png", - "implies": "Python", "website": "http://gunicorn.org" }, "hCaptcha": { @@ -14026,16 +14082,6 @@ "url": "imperia/md/", "website": "https://www.pirobase-imperia.com/de/produkte/produktuebersicht/imperia-cms" }, - "Imperva": { - "cats": [ - 16 - ], - "script": [ - "/_Incapsula_Resource" - ], - "icon": "Imperva.svg", - "website": "https://www.imperva.com/" - }, "io4 CMS": { "cats": [ 1 @@ -14843,6 +14889,14 @@ "script": "/media/conv/js/jquery\\.js", "website": "https://uknowva.com" }, + "uRemediate": { + "cats": [ + 68 + ], + "icon": "User1st.png", + "script": "fecdn\\.user1st\\.info/Loader/head", + "website": "https://www.user1st.com/uremediate/" + }, "user.com": { "cats": [ 10 diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index bce3bf326..ab935d437 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -40,12 +40,6 @@ languageDetect.setLanguageType('iso2') const extensions = /^([^.]+$|\.(asp|aspx|cgi|htm|html|jsp|php)$)/ -const errorTypes = { - RESPONSE_NOT_OK: 'Response was not ok', - NO_RESPONSE: 'No response from server', - NO_HTML_DOCUMENT: 'No HTML document' -} - const { apps: technologies, categories } = JSON.parse( fs.readFileSync(path.resolve(`${__dirname}/apps.json`)) ) @@ -157,7 +151,7 @@ class Site { try { this.originalUrl = new URL(url) } catch (error) { - throw new Error(error.message || error.toString()) + throw new Error(error.toString()) } this.analyzedUrls = {} @@ -288,7 +282,10 @@ class Site { await Promise.race([ page.goto(url.href, { waitUntil: 'domcontentloaded' }), new Promise((resolve, reject) => - setTimeout(() => reject(new Error('Timeout')), this.options.maxWait) + setTimeout( + () => reject(new Error('The website took too long to respond')), + this.options.maxWait + ) ) ]) } catch (error) { @@ -411,7 +408,7 @@ class Site { this.log('Page closed') - throw new Error('NO_RESPONSE') + throw new Error('No response from server') } if (!this.language) { @@ -493,21 +490,9 @@ class Site { await this.batch(links.slice(0, this.options.maxUrls), depth + 1) } } catch (error) { - const type = - error.message && errorTypes[error.message] - ? error.message - : 'UNKNOWN_ERROR' - const message = - error.message && errorTypes[error.message] - ? errorTypes[error.message] - : 'Unknown error' - this.analyzedUrls[url.href] = { status: 0, - error: { - type, - message - } + error: error.message || error.toString() } this.error(error) @@ -515,21 +500,29 @@ class Site { return { urls: this.analyzedUrls, - applications: resolve(this.detections).map( - ({ name, confidence, version, icon, website, cpe, categories }) => ({ + technologies: resolve(this.detections).map( + ({ + slug, name, confidence, version, icon, website, cpe, - categories: categories.reduce( - (categories, { id, name }) => ({ - ...categories, - [id]: name - }), - {} - ) + categories + }) => ({ + slug, + name, + confidence, + version: version || null, + icon, + website, + cpe, + categories: categories.map(({ id, slug, name }) => ({ + id, + slug, + name + })) }) ), meta: { diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json index ec68a1286..84fcdcfb9 100644 --- a/src/drivers/npm/package.json +++ b/src/drivers/npm/package.json @@ -13,7 +13,7 @@ "software" ], "homepage": "https://www.wappalyzer.com", - "version": "6.0.15", + "version": "6.1.1", "author": "Wappalyzer", "license": "MIT", "repository": { @@ -38,4 +38,4 @@ "languagedetect": "^2.0.0", "puppeteer": "^2.0.0" } -} \ No newline at end of file +} diff --git a/src/drivers/webextension/images/icons/Amazon Pay.svg b/src/drivers/webextension/images/icons/Amazon Pay.svg new file mode 100644 index 000000000..19f29d4ff --- /dev/null +++ b/src/drivers/webextension/images/icons/Amazon Pay.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/drivers/webextension/images/icons/borderfree.png b/src/drivers/webextension/images/icons/borderfree.png new file mode 100644 index 000000000..532b684b3 Binary files /dev/null and b/src/drivers/webextension/images/icons/borderfree.png differ diff --git a/src/drivers/webextension/images/icons/flow.png b/src/drivers/webextension/images/icons/flow.png new file mode 100644 index 000000000..bda3be6cc Binary files /dev/null and b/src/drivers/webextension/images/icons/flow.png differ diff --git a/src/drivers/webextension/images/icons/salesfloor.png b/src/drivers/webextension/images/icons/salesfloor.png new file mode 100644 index 000000000..b0d348562 Binary files /dev/null and b/src/drivers/webextension/images/icons/salesfloor.png differ diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index 57c9ade6f..03c19ec2c 100644 --- a/src/drivers/webextension/manifest.json +++ b/src/drivers/webextension/manifest.json @@ -4,7 +4,7 @@ "author": "Wappalyzer", "homepage_url": "https://www.wappalyzer.com", "description": "Identify web technologies", - "version": "6.0.15", + "version": "6.0.16", "default_locale": "en", "manifest_version": 2, "icons": { @@ -68,4 +68,4 @@ "https://*/*" ], "content_security_policy": "script-src 'self'; object-src 'self'" -} +} \ No newline at end of file diff --git a/src/package.json b/src/package.json index 3e6f7d76a..365faa8de 100644 --- a/src/package.json +++ b/src/package.json @@ -13,7 +13,7 @@ "software" ], "homepage": "https://www.wappalyzer.com", - "version": "6.0.15", + "version": "6.1.1", "author": "Wappalyzer", "license": "MIT", "repository": { @@ -27,4 +27,4 @@ "files": [ "wappalyzer.js" ] -} \ No newline at end of file +}