diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json index 27d8580ac..faa6df018 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.4.17", + "version": "6.5.17", "author": "Wappalyzer", "license": "MIT", "repository": { @@ -42,4 +42,4 @@ "dependencies": { "puppeteer": "^5.3.0" } -} +} \ No newline at end of file diff --git a/src/drivers/webextension/css/styles.css b/src/drivers/webextension/css/styles.css index 6cd41dafb..bd756173d 100644 --- a/src/drivers/webextension/css/styles.css +++ b/src/drivers/webextension/css/styles.css @@ -266,7 +266,7 @@ a:hover { flex-direction: column; justify-content: center; padding: 1.5rem 1.5rem 1rem 1.5rem; - height: 12rem; + height: 14rem; width: 36rem; } @@ -299,7 +299,8 @@ a:hover { color: white; cursor: pointer; font-size: .9rem; - padding: .8rem 3rem; + padding: 0 3rem; + height: 3rem; } .terms__accept:hover { diff --git a/src/drivers/webextension/images/icon_19.png b/src/drivers/webextension/images/icon_19.png index 9668bc65a..67b7fb326 100644 Binary files a/src/drivers/webextension/images/icon_19.png and b/src/drivers/webextension/images/icon_19.png differ diff --git a/src/drivers/webextension/images/icon_32.png b/src/drivers/webextension/images/icon_32.png index 6f0c5c3e1..d7adaa7a0 100644 Binary files a/src/drivers/webextension/images/icon_32.png and b/src/drivers/webextension/images/icon_32.png differ diff --git a/src/drivers/webextension/images/icons/ApostropheCMS.svg b/src/drivers/webextension/images/icons/ApostropheCMS.svg new file mode 100644 index 000000000..30dad2d1b --- /dev/null +++ b/src/drivers/webextension/images/icons/ApostropheCMS.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/drivers/webextension/images/icons/Plataforma NEO.svg b/src/drivers/webextension/images/icons/Plataforma NEO.svg new file mode 100644 index 000000000..5a112f6e0 --- /dev/null +++ b/src/drivers/webextension/images/icons/Plataforma NEO.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index 81557cddc..909239623 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -445,9 +445,11 @@ const Driver = { await Driver.setIcon(url, resolved) - const tabs = await promisify(chrome.tabs, 'query', { url }) + if (url) { + const tabs = await promisify(chrome.tabs, 'query', { url }) - tabs.forEach(({ id }) => (Driver.cache.tabs[id] = resolved)) + tabs.forEach(({ id }) => (Driver.cache.tabs[id] = resolved)) + } Driver.log({ hostname, technologies: resolved }) @@ -483,6 +485,10 @@ const Driver = { ;({ icon } = pinned || technologies[0] || { icon }) } + if (!url) { + return + } + ;(await promisify(chrome.tabs, 'query', { url })).forEach( ({ id: tabId }) => { chrome.browserAction.setBadgeText( diff --git a/src/drivers/webextension/js/options.js b/src/drivers/webextension/js/options.js index dd3aefe49..cfa4c8b48 100644 --- a/src/drivers/webextension/js/options.js +++ b/src/drivers/webextension/js/options.js @@ -2,7 +2,7 @@ /* eslint-env browser */ /* globals Utils, chrome */ -const { i18n, getOption, setOption } = Utils +const { agent, i18n, getOption, setOption } = Utils const Options = { /** @@ -16,6 +16,9 @@ const Options = { document.querySelector('body').classList.add('theme-mode') } + const termsAccepted = + agent === 'chrome' || (await getOption('termsAccepted', false)) + ;[ ['upgradeMessage', true], ['dynamicIcon', false], @@ -31,7 +34,9 @@ const Options = { ) .parentNode.querySelector('input') - el.checked = !!(await getOption(option, defaultValue)) + el.checked = + !!(await getOption(option, defaultValue)) && + (option !== 'tracking' || termsAccepted) el.addEventListener('click', async () => { await setOption(option, !!el.checked) diff --git a/src/drivers/webextension/js/utils.js b/src/drivers/webextension/js/utils.js index bdc935326..cf10fa852 100644 --- a/src/drivers/webextension/js/utils.js +++ b/src/drivers/webextension/js/utils.js @@ -3,7 +3,11 @@ /* globals chrome */ const Utils = { - agent: chrome.extension.getURL('/').startsWith('moz-') ? 'firefox' : 'chrome', + agent: chrome.extension.getURL('/').startsWith('moz-') + ? 'firefox' + : chrome.extension.getURL('/').startsWith('safari-') + ? 'safari' + : 'chrome', /** * Use promises instead of callbacks diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index 06e8d131f..a6e2f0776 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.4.16", + "version": "6.5.17", "default_locale": "en", "manifest_version": 2, "icons": { @@ -76,4 +76,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 a25674615..34a984e14 100644 --- a/src/package.json +++ b/src/package.json @@ -13,7 +13,7 @@ "software" ], "homepage": "https://www.wappalyzer.com/", - "version": "6.4.17", + "version": "6.5.17", "author": "Wappalyzer", "license": "MIT", "repository": { @@ -32,4 +32,4 @@ "files": [ "wappalyzer.js" ] -} +} \ No newline at end of file diff --git a/src/technologies.json b/src/technologies.json index 1e8a78b3b..3d36a2942 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -983,37 +983,11 @@ "bm_sv": "", "bm_sz": "" }, - "implies": "Akamai", "description": "Akamai Bot Manager detect bots using device fingerprinting bot signatures.", "icon": "akamai.svg", + "implies": "Akamai", "website": "http://akamai.com/bot-manager" }, - "Bugcrowd": { - "cats": [ - 16 - ], - "description": "Bugcrowd is a crowdsourced cybersecurity platform.", - "icon": "Bugcrowd.svg", - "dns": { - "TXT": [ - "bugcrowd-verification" - ] - }, - "website": "https://www.bugcrowd.com" - }, - "Detectify": { - "cats": [ - 16 - ], - "description": "Detectify is an automated scanner that checks your web application for vulnerabilities.", - "icon": "Detectify.svg", - "dns": { - "TXT": [ - "detectify-verification" - ] - }, - "website": "https://detectify.com/" - }, "Akaunting": { "cats": [ 55, @@ -1230,6 +1204,20 @@ "implies": "Amazon Web Services", "website": "http://aws.amazon.com/s3/" }, + "Amazon SES": { + "cats": [ + 75 + ], + "description": "Amazon Simple Email Service (SES) is an email service that enables developers to send mail from within any application.", + "dns": { + "TXT": [ + "amazonses\\.com" + ] + }, + "icon": "aws.svg", + "implies": "Amazon Web Services", + "website": "https://aws.amazon.com/ses/" + }, "Amazon Web Services": { "cats": [ 62 @@ -1872,12 +1860,12 @@ 59 ], "description": "Promise based HTTP client for the browser and node.js", - "scripts": [ - "/axios(@|/)([\\d.]+)(?:/[a-z]+)?/axios(?:.min)?\\.js\\;version:\\2" - ], "js": { "axios.get": "" }, + "scripts": [ + "/axios(@|/)([\\d.]+)(?:/[a-z]+)?/axios(?:.min)?\\.js\\;version:\\2" + ], "website": "https://github.com/axios/axios" }, "Azure": { @@ -2485,6 +2473,19 @@ "scripts": "/bugsnag.*\\.js", "website": "http://bugsnag.com" }, + "Bugcrowd": { + "cats": [ + 16 + ], + "description": "Bugcrowd is a crowdsourced cybersecurity platform.", + "dns": { + "TXT": [ + "bugcrowd-verification" + ] + }, + "icon": "Bugcrowd.svg", + "website": "https://www.bugcrowd.com" + }, "Bugzilla": { "cats": [ 13 @@ -4002,6 +4003,19 @@ "scripts": "dedeajax", "website": "http://dedecms.com" }, + "Detectify": { + "cats": [ + 16 + ], + "description": "Detectify is an automated scanner that checks your web application for vulnerabilities.", + "dns": { + "TXT": [ + "detectify-verification" + ] + }, + "icon": "Detectify.svg", + "website": "https://detectify.com/" + }, "Didomi": { "cats": [ 67 @@ -4341,6 +4355,22 @@ "scripts": "\\*berajs.beracode.com\\*", "website": "https://duopana.com/" }, + "Dynamic Yield": { + "cats": [ + 74 + ], + "cookies": { + "_dy_geo": "", + "_dy_ses_load_seq": "" + }, + "description": "Dynamic Yield is a provider of automated conversion optimization tools for marketers and retailers.", + "icon": "DynamicYield.svg", + "js": { + "recommendationContext": "" + }, + "scripts": "cdn\\.dynamicyield\\.\\w+/", + "website": "https://www.dynamicyield.com" + }, "Dynamicweb": { "cats": [ 1, @@ -4357,22 +4387,6 @@ }, "website": "http://www.dynamicweb.dk" }, - "Dynamic Yield": { - "cats": [ - 74 - ], - "icon": "DynamicYield.svg", - "description": "Dynamic Yield is a provider of automated conversion optimization tools for marketers and retailers.", - "cookies": { - "_dy_geo": "", - "_dy_ses_load_seq": "" - }, - "js": { - "recommendationContext": "" - }, - "scripts": "cdn\\.dynamicyield\\.\\w+/", - "website": "https://www.dynamicyield.com" - }, "Dynatrace": { "cats": [ 10 @@ -4751,15 +4765,6 @@ "icon": "syncfusion.svg", "website": "https://www.syncfusion.com/javascript-ui-controls" }, - "Estore Shopserve": { - "cats": [ - 6 - ], - "description": "Estore Shopserve is an all-in-one payment processing and ecommerce solution.", - "icon": "EstoreShopserve.svg", - "scripts": "cart\\d+\\.shopserve\\.jp/", - "website": "https://estore.co.jp/shopserve" - }, "Estore Compare": { "cats": [ 74 @@ -4769,6 +4774,15 @@ "scripts": "cdn\\d+\\.estore\\.jp/", "website": "https://estore.co.jp/estorecompare/" }, + "Estore Shopserve": { + "cats": [ + 6 + ], + "description": "Estore Shopserve is an all-in-one payment processing and ecommerce solution.", + "icon": "EstoreShopserve.svg", + "scripts": "cart\\d+\\.shopserve\\.jp/", + "website": "https://estore.co.jp/shopserve" + }, "Etherpad": { "cats": [ 24 @@ -5075,6 +5089,7 @@ "cats": [ 59 ], + "icon": "FingerprintJS.svg", "js": { "Fingerprint": "(\\d)?$\\;version:\\1", "Fingerprint2": "", @@ -5085,7 +5100,6 @@ "fingerprint(\\d)?(?:\\.min)?\\.js\\;version:\\1", "/fingerprintjs@(\\d)\\;version:\\1" ], - "icon": "FingerprintJS.svg", "website": "https://fingerprintjs.com/" }, "Firebase": { @@ -5931,21 +5945,6 @@ ], "website": "https://www.google.fr/adsense/start/" }, - "Plausible": { - "cats": [ - 10, - 61 - ], - "cookies": { - }, - "description": "Plausible is an open-source alternative to Google Analytics.", - "icon": "Plausible.svg", - "js": { - "plausible": "" - }, - "scripts": "plausible\\.io/js/plausible\\.js", - "website": "https://plausible.io/" - }, "Google Analytics": { "cats": [ 10, @@ -6507,14 +6506,14 @@ 62 ], "description": "Heroku is a cloud platform as a service (PaaS) supporting several programming languages.", - "headers": { - "Via": "[\\d.-]+ vegur$" - }, "dns": { "TXT": [ "heroku-domain-verification" ] }, + "headers": { + "Via": "[\\d.-]+ vegur$" + }, "icon": "heroku.svg", "implies": [ "Amazon Web Services" @@ -6671,13 +6670,13 @@ 32 ], "description": "HubSpot is a marketing and sales software that helps companies attract visitors, convert leads, and close customers.", - "html": "