diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js
index 35ec8a2a8..826384929 100644
--- a/src/drivers/npm/driver.js
+++ b/src/drivers/npm/driver.js
@@ -1002,12 +1002,9 @@ class Site {
if (this.cache[url.href]) {
const resolved = resolve(this.detections)
- const requires = Wappalyzer.requires
- .filter(({ name, technologies }) =>
- resolved.some(({ name: _name }) => _name === name)
- )
- .map(({ technologies }) => technologies)
- .flat()
+ const requires = Wappalyzer.requires.filter(({ name, technologies }) =>
+ resolved.some(({ name: _name }) => _name === name)
+ )
await Promise.all(
Object.keys(requires).map(async (name) => {
diff --git a/src/drivers/webextension/_locales/ca/messages.json b/src/drivers/webextension/_locales/ca/messages.json
index 4abf3f187..d382b94e7 100644
--- a/src/drivers/webextension/_locales/ca/messages.json
+++ b/src/drivers/webextension/_locales/ca/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json
index 6fa57f57e..76d4b9506 100644
--- a/src/drivers/webextension/_locales/de/messages.json
+++ b/src/drivers/webextension/_locales/de/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/el/messages.json b/src/drivers/webextension/_locales/el/messages.json
index d081e7248..1012cd7ca 100644
--- a/src/drivers/webextension/_locales/el/messages.json
+++ b/src/drivers/webextension/_locales/el/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json
index 59f58dfa2..142891b7a 100644
--- a/src/drivers/webextension/_locales/en/messages.json
+++ b/src/drivers/webextension/_locales/en/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/es/messages.json b/src/drivers/webextension/_locales/es/messages.json
index 8f26d5757..018ba6409 100644
--- a/src/drivers/webextension/_locales/es/messages.json
+++ b/src/drivers/webextension/_locales/es/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/fa/messages.json b/src/drivers/webextension/_locales/fa/messages.json
index 05ddfa5c8..ce9442213 100644
--- a/src/drivers/webextension/_locales/fa/messages.json
+++ b/src/drivers/webextension/_locales/fa/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/fr/messages.json b/src/drivers/webextension/_locales/fr/messages.json
index 3c3674338..bae622379 100644
--- a/src/drivers/webextension/_locales/fr/messages.json
+++ b/src/drivers/webextension/_locales/fr/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/gl_ES/messages.json b/src/drivers/webextension/_locales/gl_ES/messages.json
index 578a6b1d6..d00a755c5 100644
--- a/src/drivers/webextension/_locales/gl_ES/messages.json
+++ b/src/drivers/webextension/_locales/gl_ES/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/gr/messages.json b/src/drivers/webextension/_locales/gr/messages.json
index 6d1f5ba95..93de33be6 100644
--- a/src/drivers/webextension/_locales/gr/messages.json
+++ b/src/drivers/webextension/_locales/gr/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/id/messages.json b/src/drivers/webextension/_locales/id/messages.json
index e5c8301fa..0cea2e6c1 100644
--- a/src/drivers/webextension/_locales/id/messages.json
+++ b/src/drivers/webextension/_locales/id/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/it/messages.json b/src/drivers/webextension/_locales/it/messages.json
index f42d0d0fe..26d05c6db 100644
--- a/src/drivers/webextension/_locales/it/messages.json
+++ b/src/drivers/webextension/_locales/it/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/ja/messages.json b/src/drivers/webextension/_locales/ja/messages.json
index e4da2a79c..3427f7ed3 100644
--- a/src/drivers/webextension/_locales/ja/messages.json
+++ b/src/drivers/webextension/_locales/ja/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "言語" },
"attributeEmail": { "message": "Eメールアドレス" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "電話番号" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/ko/messages.json b/src/drivers/webextension/_locales/ko/messages.json
index df970e38e..d0a419b2c 100644
--- a/src/drivers/webextension/_locales/ko/messages.json
+++ b/src/drivers/webextension/_locales/ko/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP 지역" },
"attributeLanguage": { "message": "언어" },
"attributeEmail": { "message": "이메일 주소" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "휴대폰 번호" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json
index d869ce66e..59b54b663 100644
--- a/src/drivers/webextension/_locales/pl/messages.json
+++ b/src/drivers/webextension/_locales/pl/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/pt/messages.json b/src/drivers/webextension/_locales/pt/messages.json
index 0921f9b27..6e21ae7f7 100644
--- a/src/drivers/webextension/_locales/pt/messages.json
+++ b/src/drivers/webextension/_locales/pt/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/pt_BR/messages.json b/src/drivers/webextension/_locales/pt_BR/messages.json
index 299969804..879502590 100644
--- a/src/drivers/webextension/_locales/pt_BR/messages.json
+++ b/src/drivers/webextension/_locales/pt_BR/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/ro/messages.json b/src/drivers/webextension/_locales/ro/messages.json
index 4c253c69c..a57cb791f 100644
--- a/src/drivers/webextension/_locales/ro/messages.json
+++ b/src/drivers/webextension/_locales/ro/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json
index 687ddca32..6e16c4b59 100644
--- a/src/drivers/webextension/_locales/ru/messages.json
+++ b/src/drivers/webextension/_locales/ru/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/sk/messages.json b/src/drivers/webextension/_locales/sk/messages.json
index e20832a02..1a98108c5 100644
--- a/src/drivers/webextension/_locales/sk/messages.json
+++ b/src/drivers/webextension/_locales/sk/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/tr/messages.json b/src/drivers/webextension/_locales/tr/messages.json
index 619ea9bc3..8a4f6e0fe 100644
--- a/src/drivers/webextension/_locales/tr/messages.json
+++ b/src/drivers/webextension/_locales/tr/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/uk/messages.json b/src/drivers/webextension/_locales/uk/messages.json
index dad6d7ec5..c7d649b22 100644
--- a/src/drivers/webextension/_locales/uk/messages.json
+++ b/src/drivers/webextension/_locales/uk/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/uz/messages.json b/src/drivers/webextension/_locales/uz/messages.json
index b3f466e6a..c8ea6219a 100644
--- a/src/drivers/webextension/_locales/uz/messages.json
+++ b/src/drivers/webextension/_locales/uz/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/zh_CN/messages.json b/src/drivers/webextension/_locales/zh_CN/messages.json
index 84f3e4599..3cb82b4ac 100644
--- a/src/drivers/webextension/_locales/zh_CN/messages.json
+++ b/src/drivers/webextension/_locales/zh_CN/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/_locales/zh_TW/messages.json b/src/drivers/webextension/_locales/zh_TW/messages.json
index 1556c4287..dbb9793fd 100644
--- a/src/drivers/webextension/_locales/zh_TW/messages.json
+++ b/src/drivers/webextension/_locales/zh_TW/messages.json
@@ -51,6 +51,8 @@
"attributeIpRegion": { "message": "IP region" },
"attributeLanguage": { "message": "Language" },
"attributeEmail": { "message": "Email address" },
+ "attributeVerifiedEmail": { "message": "Email address (verified)" },
+ "attributeSafeEmail": { "message": "Email address (safe)" },
"attributePhone": { "message": "Phone number" },
"attributeSkype": { "message": "Skype" },
"attributeWhatsapp": { "message": "WhatsApp" },
diff --git a/src/drivers/webextension/images/icons/ADPLAN.png b/src/drivers/webextension/images/icons/ADPLAN.png
deleted file mode 100644
index c06788629..000000000
Binary files a/src/drivers/webextension/images/icons/ADPLAN.png and /dev/null differ
diff --git a/src/drivers/webextension/images/icons/Aero Commerce.svg b/src/drivers/webextension/images/icons/Aero Commerce.svg
new file mode 100644
index 000000000..7bebbd2e9
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Aero Commerce.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Complianz.png b/src/drivers/webextension/images/icons/Complianz.png
new file mode 100644
index 000000000..701830a03
Binary files /dev/null and b/src/drivers/webextension/images/icons/Complianz.png differ
diff --git a/src/drivers/webextension/images/icons/Dukaan.svg b/src/drivers/webextension/images/icons/Dukaan.svg
new file mode 100644
index 000000000..de4a3ed8f
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Dukaan.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/ElasticAPM.png b/src/drivers/webextension/images/icons/ElasticAPM.png
new file mode 100644
index 000000000..6b1796f87
Binary files /dev/null and b/src/drivers/webextension/images/icons/ElasticAPM.png differ
diff --git a/src/drivers/webextension/images/icons/Exponea.svg b/src/drivers/webextension/images/icons/Exponea.svg
new file mode 100644
index 000000000..d1a9aba54
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Exponea.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/drivers/webextension/images/icons/FOXY.IO.svg b/src/drivers/webextension/images/icons/FOXY.IO.svg
new file mode 100644
index 000000000..206eb0e0a
--- /dev/null
+++ b/src/drivers/webextension/images/icons/FOXY.IO.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/drivers/webextension/images/icons/Findify.svg b/src/drivers/webextension/images/icons/Findify.svg
new file mode 100644
index 000000000..7aa77d3d0
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Findify.svg
@@ -0,0 +1,16 @@
+
diff --git a/src/drivers/webextension/images/icons/Flow.png b/src/drivers/webextension/images/icons/Flow.png
new file mode 100644
index 000000000..2c61b06de
Binary files /dev/null and b/src/drivers/webextension/images/icons/Flow.png differ
diff --git a/src/drivers/webextension/images/icons/Freshop.png b/src/drivers/webextension/images/icons/Freshop.png
new file mode 100644
index 000000000..a9dbfbe9c
Binary files /dev/null and b/src/drivers/webextension/images/icons/Freshop.png differ
diff --git a/src/drivers/webextension/images/icons/Iluria.png b/src/drivers/webextension/images/icons/Iluria.png
new file mode 100644
index 000000000..b0f76e013
Binary files /dev/null and b/src/drivers/webextension/images/icons/Iluria.png differ
diff --git a/src/drivers/webextension/images/icons/Mediavine.svg b/src/drivers/webextension/images/icons/Mediavine.svg
new file mode 100644
index 000000000..916dae647
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Mediavine.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Moove.svg b/src/drivers/webextension/images/icons/Moove.svg
new file mode 100644
index 000000000..cb39d6b36
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Moove.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Nagich.svg b/src/drivers/webextension/images/icons/Nagich.svg
new file mode 100644
index 000000000..57ff00d32
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Nagich.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Nuvemshop.svg b/src/drivers/webextension/images/icons/Nuvemshop.svg
new file mode 100644
index 000000000..530d17314
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Nuvemshop.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/drivers/webextension/images/icons/Orckestra.svg b/src/drivers/webextension/images/icons/Orckestra.svg
new file mode 100644
index 000000000..db84c2944
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Orckestra.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Smile.svg b/src/drivers/webextension/images/icons/Smile.svg
new file mode 100644
index 000000000..2e18cdb8a
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Smile.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/SplitIt.svg b/src/drivers/webextension/images/icons/SplitIt.svg
new file mode 100644
index 000000000..a146226ea
--- /dev/null
+++ b/src/drivers/webextension/images/icons/SplitIt.svg
@@ -0,0 +1,13 @@
+
diff --git a/src/drivers/webextension/images/icons/Subbly.svg b/src/drivers/webextension/images/icons/Subbly.svg
new file mode 100644
index 000000000..4241e65e8
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Subbly.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Ueeshop.png b/src/drivers/webextension/images/icons/Ueeshop.png
new file mode 100644
index 000000000..769497ebf
Binary files /dev/null and b/src/drivers/webextension/images/icons/Ueeshop.png differ
diff --git a/src/drivers/webextension/images/icons/Usercentrics.svg b/src/drivers/webextension/images/icons/Usercentrics.svg
new file mode 100644
index 000000000..45355353b
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Usercentrics.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/drivers/webextension/images/icons/Wisepops.svg b/src/drivers/webextension/images/icons/Wisepops.svg
new file mode 100644
index 000000000..f51d645bc
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Wisepops.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/drivers/webextension/images/icons/e-goi.svg b/src/drivers/webextension/images/icons/e-goi.svg
new file mode 100644
index 000000000..c11891e52
--- /dev/null
+++ b/src/drivers/webextension/images/icons/e-goi.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/flow.png b/src/drivers/webextension/images/icons/flow.png
deleted file mode 100644
index bda3be6cc..000000000
Binary files a/src/drivers/webextension/images/icons/flow.png and /dev/null differ
diff --git a/src/drivers/webextension/images/icons/nuvem.png b/src/drivers/webextension/images/icons/nuvem.png
deleted file mode 100644
index 9def18ea7..000000000
Binary files a/src/drivers/webextension/images/icons/nuvem.png and /dev/null differ
diff --git a/src/drivers/webextension/js/popup.js b/src/drivers/webextension/js/popup.js
index f7c006dd7..567547444 100644
--- a/src/drivers/webextension/js/popup.js
+++ b/src/drivers/webextension/js/popup.js
@@ -145,19 +145,16 @@ const Popup = {
Popup.driver('getDetections').then(Popup.onGetDetections.bind(this))
})
- el.termsButtonDecline('.terms__button--decline').addEventListener(
- 'click',
- async () => {
- await setOption('termsAccepted', true)
- await setOption('tracking', false)
+ el.termsButtonDecline.addEventListener('click', async () => {
+ await setOption('termsAccepted', true)
+ await setOption('tracking', false)
- el.terms.classList.add('terms--hidden')
- el.footer.classList.remove('footer--hidden')
- el.tabPro.classList.remove('tab--disabled')
+ el.terms.classList.add('terms--hidden')
+ el.footer.classList.remove('footer--hidden')
+ el.tabPro.classList.remove('tab--disabled')
- Popup.driver('getDetections').then(Popup.onGetDetections.bind(this))
- }
- )
+ Popup.driver('getDetections').then(Popup.onGetDetections.bind(this))
+ })
}
let url
diff --git a/src/technologies.json b/src/technologies.json
index 4d35423dd..be239df02 100644
--- a/src/technologies.json
+++ b/src/technologies.json
@@ -455,17 +455,6 @@
"icon": "ebis.png",
"website": "http://www.ebis.ne.jp"
},
- "ADPLAN": {
- "cats": [
- 10
- ],
- "icon": "ADPLAN.png",
- "scripts": [
- "^https?://[^.]+\\.adplan7\\.com/\\;version:7",
- "^https?://(?!o\\.)\\w+\\.advg\\.jp/"
- ],
- "website": "https://www.adplan7.com/"
- },
"AMP": {
"cats": [
12
@@ -1227,6 +1216,21 @@
],
"website": "http://blogengine.ru"
},
+ "Aero Commerce": {
+ "cats": [
+ 6
+ ],
+ "description": "Aero Commerce is a performance-based platform designed with the evolving needs of retailers in mind.",
+ "icon": "Aero Commerce.svg",
+ "js": {
+ "AeroEvents.on": ""
+ },
+ "saas": true,
+ "pricing": [
+ "poa"
+ ],
+ "website": "https://www.aerocommerce.com"
+ },
"Affiliate B": {
"cats": [
71,
@@ -2102,6 +2106,7 @@
"__APOLLO_CLIENT__": "",
"__APOLLO_CLIENT__.version": "^(.+)$\\;version:\\1"
},
+ "dom": "script#__APOLLO_STATE__",
"website": "https://www.apollographql.com"
},
"ApostropheCMS": {
@@ -6257,6 +6262,22 @@
"saas": true,
"website": "https://www.duda.co/website-builder"
},
+ "Dukaan": {
+ "cats": [
+ 6
+ ],
+ "description": "Dukaan is a hosted ecommerce solution made in India.",
+ "icon": "Dukaan.svg",
+ "meta": {
+ "apple-mobile-web-app-title": "^MyDukaan$"
+ },
+ "scripts": "apps\\.mydukaan\\.io/",
+ "pricing": [
+ "poa"
+ ],
+ "saas": true,
+ "website": "https://mydukaan.io"
+ },
"Duopana": {
"cats": [
1,
@@ -6282,9 +6303,15 @@
"description": "Dynamic Yield is a provider of automated conversion optimisation tools for marketers and retailers.",
"icon": "DynamicYield.svg",
"js": {
- "recommendationContext": ""
+ "_dy_memStore": "",
+ "DY.AdDetection": "",
+ "DYExps.sectionConfig": ""
},
- "scripts": "cdn\\.dynamicyield\\.\\w+/",
+ "scripts": "cdn(?:-eu)?\\.dynamicyield\\.\\w+/",
+ "saas": true,
+ "pricing": [
+ "poa"
+ ],
"website": "https://www.dynamicyield.com"
},
"Dynamicweb": {
@@ -6492,6 +6519,22 @@
"url": "https?://(?:[^/]+\\.)?edgecastcdn\\.net/",
"website": "http://www.edgecast.com"
},
+ "Elastic APM": {
+ "cats": [
+ 10,
+ 13,
+ 78
+ ],
+ "implies": [
+ "Elasticsearch"
+ ],
+ "description": "Elastic APM offers free and open application performance monitoring.",
+ "icon": "ElasticAPM.png",
+ "js": {
+ "elasticApm": ""
+ },
+ "website": "https://www.elastic.co/apm"
+ },
"Elasticsearch": {
"cats": [
29
@@ -6858,6 +6901,23 @@
"scripts": "expertrec\\.com/api/js/ci_common\\.js\\?id=.*",
"website": "https://www.expertrec.com"
},
+ "Exponea": {
+ "cats": [
+ 32
+ ],
+
+ "description": "Exponea is a cloud-based marketing analysis platform suitable for large and midsize organisations in a variety of industries.",
+ "icon": "Exponea.svg",
+ "js": {
+ "exponea.version": "^v([\\d.]+)$\\;version:\\1"
+ },
+ "scripts": "(?:\\.exponea\\.com)?/js/exponea\\.min\\.js",
+ "saas": true,
+ "pricing": [
+ "poa"
+ ],
+ "website": "https://go.exponea.com"
+ },
"Express": {
"cats": [
18,
@@ -7179,6 +7239,25 @@
"saas": true,
"website": "https://www.financeads.com"
},
+ "Findify": {
+ "cats": [
+ 29,
+ 76
+ ],
+ "description": "Findify is an intelligent ecommerce search, navigation and personalisation solution.",
+ "icon": "Findify.svg",
+ "js": {
+ "findify": "",
+ "FindifyAnalytics": ""
+ },
+ "scripts": "@findify/bundle@([\\d.]+)/dist/.+\\.js\\;version:\\1",
+ "saas": true,
+ "pricing": [
+ "mid",
+ "recurring"
+ ],
+ "website": "https://www.findify.io"
+ },
"FingerprintJS": {
"cats": [
59,
@@ -7356,10 +7435,16 @@
"cats": [
6
],
- "icon": "flow.png",
- "scripts": [
- "shopify-cdn\\.flow\\.io",
- "flow\\.min\\.js"
+ "description": "Flow is an ecommerce platform that enables brands and retailers to sell their merchandise to customers internationally by creating localized shopping experiences.",
+ "icon": "Flow.png",
+ "js": {
+ "flow.countryPicker": "",
+ "flow_cart_localize": ""
+ },
+ "scripts": "(?:shopify-)?cdn\\.flow\\.io/",
+ "saas": true,
+ "pricing": [
+ "poa"
],
"website": "https://www.flow.io/"
},
@@ -7557,6 +7642,20 @@
},
"website": "http://foswiki.org"
},
+ "FOXY.IO": {
+ "cats": [
+ 6
+ ],
+ "description": "FOXY.IO is a software company that specialises in hosted ecommerce software for small to enterprise level businesses.",
+ "icon": "FOXY.IO.svg",
+ "saas": true,
+ "scripts": "cdn\\.foxycart\\.com",
+ "pricing": [
+ "payg",
+ "recurring"
+ ],
+ "website": "https://www.foxy.io"
+ },
"FreeBSD": {
"cats": [
28
@@ -7605,6 +7704,26 @@
"scripts": "wchat\\.freshchat\\.com/js/widget\\.js",
"website": "https://www.freshworks.com/live-chat-software/"
},
+ "Freshop": {
+ "cats": [
+ 6
+ ],
+ "description": "Freshop is an online platform for grocers.",
+ "icon": "Freshop.png",
+ "meta": {
+ "author": "^Freshop, Inc\\.$"
+ },
+ "js": {
+ "freshop": "",
+ "freshopInitialized": ""
+ },
+ "scripts": "asset(?:cdn)?\\.freshop\\.com/",
+ "saas": true,
+ "pricing": [
+ "payg"
+ ],
+ "website": "https://www.freshop.com"
+ },
"Freshworks CRM": {
"cats": [
53,
@@ -9068,7 +9187,6 @@
},
"pricing": [
"low",
- "mid",
"recurring"
],
"saas": true,
@@ -9356,6 +9474,18 @@
"scripts": "js\\.usemessages\\.com",
"website": "https://www.hubspot.com/products/crm/live-chat"
},
+ "HubSpot Cookie": {
+ "cats": [
+ 67
+ ],
+ "description": "HubSpot Cookie is a cookie compliance tool from HubSpot.",
+ "icon": "HubSpot.png",
+ "js": {
+ "_hsp": ""
+ },
+ "scripts": "js\\.hs-banner\\.com/\\d+\\.js",
+ "website": "https://knowledge.hubspot.com/reports/what-cookies-does-hubspot-set-in-a-visitor-s-browser"
+ },
"Hugo": {
"cats": [
57
@@ -12301,6 +12431,21 @@
},
"website": "http://www.mediaelementjs.com"
},
+ "Mediavine": {
+ "cats": [
+ 36
+ ],
+ "description": "Mediavine is a full service ad management platform.",
+ "icon": "Mediavine.svg",
+ "js": {
+ "$mediavine.web": ""
+ },
+ "cookies": {
+ "mediavine_session": ""
+ },
+ "scripts": "\\.mediavine\\.com/",
+ "website": "https://www.mediavine.com"
+ },
"MediaWiki": {
"cats": [
8
@@ -13035,6 +13180,23 @@
"scripts": "mootools.*\\.js",
"website": "https://mootools.net"
},
+ "Moove GDPR Consent": {
+ "cats": [
+ 67
+ ],
+ "description": "Moove GDPR Consent is a GDPR Cookie Compliance plugin for Wordpress.",
+ "icon": "Moove.svg",
+ "js": {
+ "moove_frontend_gdpr_scripts": ""
+ },
+ "requires": "WordPress",
+ "saas": true,
+ "pricing": [
+ "low",
+ "recurring"
+ ],
+ "website": "https://www.mooveagency.com/wordpress/gdpr-cookie-compliance-plugin"
+ },
"Moodle": {
"cats": [
21
@@ -13305,6 +13467,22 @@
"scripts": "nv\\.d3(?:\\.min)?\\.js",
"website": "http://nvd3.org"
},
+ "Nagich": {
+ "cats": [
+ 68
+ ],
+ "description": "Nagich is a website accessibility software provider from Israel.",
+ "icon": "Nagich.svg",
+ "js": {
+ "interdeal.version": "([\\d.]+)\\;version:\\1"
+ },
+ "scripts": "\\.nagich\\.co(?:m|\\.il)\/core\/([\\d.]+)\/accessibility\\.js\\;version:\\1",
+ "saas": true,
+ "pricing": [
+ "poa"
+ ],
+ "website": "https://www.nagich.co.il"
+ },
"Najva": {
"cats": [
32
@@ -13607,10 +13785,18 @@
"cats": [
6
],
- "html": "