diff --git a/src/drivers/npm/README.md b/src/drivers/npm/README.md index 170854e86..7c1d950e6 100644 --- a/src/drivers/npm/README.md +++ b/src/drivers/npm/README.md @@ -66,9 +66,9 @@ const options = { htmlMaxRows: 2000, }; -;(async function() { - const wappalyzer = new Wappalyzer(options) +const wappalyzer = new Wappalyzer(options) +;(async function() { try { await wappalyzer.init() @@ -98,9 +98,9 @@ const Wappalyzer = require('wappalyzer'); const urls = ['https://www.wappalyzer.com', 'https://www.example.com'] -;(async function() { - const wappalyzer = await new Wappalyzer() +const wappalyzer = new Wappalyzer() +;(async function() { try { await wappalyzer.init() diff --git a/src/drivers/webextension/images/icons/AB Tasty.svg b/src/drivers/webextension/images/icons/AB Tasty.svg new file mode 100644 index 000000000..f210380ed --- /dev/null +++ b/src/drivers/webextension/images/icons/AB Tasty.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Appian.png b/src/drivers/webextension/images/icons/Appian.png new file mode 100644 index 000000000..caa3abc62 Binary files /dev/null and b/src/drivers/webextension/images/icons/Appian.png differ diff --git a/src/drivers/webextension/images/icons/Bluecore.svg b/src/drivers/webextension/images/icons/Bluecore.svg new file mode 100644 index 000000000..1b6354e34 --- /dev/null +++ b/src/drivers/webextension/images/icons/Bluecore.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Branch.png b/src/drivers/webextension/images/icons/Branch.png new file mode 100644 index 000000000..5a16197df Binary files /dev/null and b/src/drivers/webextension/images/icons/Branch.png differ diff --git a/src/drivers/webextension/images/icons/Bronto.svg b/src/drivers/webextension/images/icons/Bronto.svg new file mode 100644 index 000000000..cc74432e3 --- /dev/null +++ b/src/drivers/webextension/images/icons/Bronto.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Choices.png b/src/drivers/webextension/images/icons/Choices.png new file mode 100644 index 000000000..8a14f87d7 Binary files /dev/null and b/src/drivers/webextension/images/icons/Choices.png differ diff --git a/src/drivers/webextension/images/icons/Fomo.png b/src/drivers/webextension/images/icons/Fomo.png new file mode 100644 index 000000000..fc3d93f03 Binary files /dev/null and b/src/drivers/webextension/images/icons/Fomo.png differ diff --git a/src/drivers/webextension/images/icons/GetSocial.png b/src/drivers/webextension/images/icons/GetSocial.png new file mode 100644 index 000000000..fe39a5cd0 Binary files /dev/null and b/src/drivers/webextension/images/icons/GetSocial.png differ diff --git a/src/drivers/webextension/images/icons/HCL Commerce.svg b/src/drivers/webextension/images/icons/HCL Commerce.svg new file mode 100644 index 000000000..b8e38f310 --- /dev/null +++ b/src/drivers/webextension/images/icons/HCL Commerce.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Instapage.svg b/src/drivers/webextension/images/icons/Instapage.svg new file mode 100644 index 000000000..8e370f7c5 --- /dev/null +++ b/src/drivers/webextension/images/icons/Instapage.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/drivers/webextension/images/icons/Kameleoon.svg b/src/drivers/webextension/images/icons/Kameleoon.svg new file mode 100644 index 000000000..602ee9f81 --- /dev/null +++ b/src/drivers/webextension/images/icons/Kameleoon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/drivers/webextension/images/icons/Kibo.png b/src/drivers/webextension/images/icons/Kibo.png new file mode 100644 index 000000000..486985126 Binary files /dev/null and b/src/drivers/webextension/images/icons/Kibo.png differ diff --git a/src/drivers/webextension/images/icons/NSWgov.png b/src/drivers/webextension/images/icons/NSWgov.png new file mode 100644 index 000000000..27cd90f39 Binary files /dev/null and b/src/drivers/webextension/images/icons/NSWgov.png differ diff --git a/src/drivers/webextension/images/icons/Qubit.png b/src/drivers/webextension/images/icons/Qubit.png new file mode 100644 index 000000000..15553de75 Binary files /dev/null and b/src/drivers/webextension/images/icons/Qubit.png differ diff --git a/src/drivers/webextension/images/icons/Sanity.svg b/src/drivers/webextension/images/icons/Sanity.svg new file mode 100644 index 000000000..969563127 --- /dev/null +++ b/src/drivers/webextension/images/icons/Sanity.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/drivers/webextension/images/icons/Segment.png b/src/drivers/webextension/images/icons/Segment.png deleted file mode 100644 index f9c595f08..000000000 Binary files a/src/drivers/webextension/images/icons/Segment.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Segment.svg b/src/drivers/webextension/images/icons/Segment.svg new file mode 100644 index 000000000..f33f5a674 --- /dev/null +++ b/src/drivers/webextension/images/icons/Segment.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Service Provider Pro.svg b/src/drivers/webextension/images/icons/Service Provider Pro.svg new file mode 100644 index 000000000..5676e96c4 --- /dev/null +++ b/src/drivers/webextension/images/icons/Service Provider Pro.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Vizury.png b/src/drivers/webextension/images/icons/Vizury.png new file mode 100644 index 000000000..5f08a6b8d Binary files /dev/null and b/src/drivers/webextension/images/icons/Vizury.png differ diff --git a/src/drivers/webextension/images/icons/WebMetric.svg b/src/drivers/webextension/images/icons/WebMetric.svg new file mode 100644 index 000000000..103b52ab5 --- /dev/null +++ b/src/drivers/webextension/images/icons/WebMetric.svg @@ -0,0 +1 @@ +32-32 \ No newline at end of file diff --git a/src/drivers/webextension/images/icons/google-cloud-storage.svg b/src/drivers/webextension/images/icons/google-cloud-storage.svg new file mode 100644 index 000000000..1183be5e6 --- /dev/null +++ b/src/drivers/webextension/images/icons/google-cloud-storage.svg @@ -0,0 +1 @@ +Icon_24px_Color_CloudStorage \ No newline at end of file diff --git a/src/drivers/webextension/js/content.js b/src/drivers/webextension/js/content.js index e6ccb4c96..883b38247 100644 --- a/src/drivers/webextension/js/content.js +++ b/src/drivers/webextension/js/content.js @@ -92,7 +92,14 @@ const Content = { language, ]) - Content.onGetTechnologies(await Content.driver('getTechnologies')) + const technologies = await Content.driver('getTechnologies') + + Content.onGetTechnologies(technologies) + + // Delayed second pass to capture async JS + await new Promise((resolve) => setTimeout(resolve, 5000)) + + Content.onGetTechnologies(technologies) } catch (error) { Content.driver('error', error) } diff --git a/src/technologies.json b/src/technologies.json index 19372ab62..264ba4263 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -374,6 +374,22 @@ "scripts": "statics\\.a8\\.net", "website": "https://www.a8.net" }, + "AB Tasty": { + "cats": [ + 74 + ], + "description": "AB Tasty is a customer experience optimization company. AB Tasty offers AI-driven experimentation, personalization, and product optimization platforms for user testing.", + "icon": "AB Tasty.svg", + "js": { + "_abtasty": "", + "ABTasty": "", + "loadABTasty": "" + }, + "scripts": "try\\.abtasty\\.com", + "saas": true, + "pricing": ["poa"], + "website": "https://www.abtasty.com" + }, "AD EBiS": { "cats": [ 10 @@ -865,7 +881,8 @@ }, "Adobe Target": { "cats": [ - 32 + 32, + 74 ], "description": "Adobe Target is an A/B testing, multi-variate testing, personalisation, and optimisation application", "icon": "Adobe.svg", @@ -873,6 +890,8 @@ "adobe.target": "", "adobe.target.VERSION": "^(.+)$\\;version:\\1" }, + "saas": true, + "pricing": ["poa"], "website": "https://www.adobe.com/marketing/target.html" }, "AdonisJS": { @@ -1749,6 +1768,16 @@ "scripts": "adrum", "website": "https://appdynamics.com" }, + "Appian": { + "cats": [ + 62 + ], + "description": "Appian is an enterprise low-code application platform.", + "icon": "Appian.png", + "saas": true, + "scripts": "\/suite\/tempo\/ui\/sail-client\/embeddedBootstrap.nocache.js", + "website": "https://www.appian.com" + }, "AppNexus": { "cats": [ 36 @@ -2555,6 +2584,7 @@ "icon": "Bloomreach.png", "website": "https://developers.bloomreach.com" }, + { "Bloomreach Search & Merchandising": { "cats": [ 29, @@ -2574,7 +2604,25 @@ ], "saas": true, "pricing": ["high", "recurring"], - "website": "https://developers.bloomreach.com/products/personalization/dev-studio" + "website": "https://developers.bloomreach.com/products/personalization/dev-studio" + }, + "Bluecore": { + "cats": [ + 32, + 75 + ], + "description": "Bluecore is a retail marketing technology that uses data gained from direct marketing like email, social media, site activity.", + "icon": "Bluecore.svg", + "js": { + "triggermail": "", + "triggermail_email_address": "", + "bluecore_action_trigger": "", + "_bluecoreTrack": "" + }, + "scripts": "\\.bluecore\\.com", + "saas": true, + "pricing": ["poa"], + "website": "https://www.bluecore.com" }, "Bluefish": { "cats": [ @@ -2805,6 +2853,25 @@ "scripts": "js\\.braintreegateway\\.com", "website": "https://www.braintreepayments.com" }, + "Branch": { + "cats": [ + 32, + 10 + ], + "description": "Branch is a mobile deep linking system to increase engagement and retention.", + "icon": "Branch.png", + "js": { + "branch.setBranchViewData": "", + "branch_callback__0": "" + }, + "scripts": [ + "cdn\\.branch\\.io", + "app\\.link/_r\\?sdk=web([\\d.]+)\\;version:\\1" + ], + "saas": true, + "pricing": ["poa", "freemium"], + "website": "https://branch.io" + }, "Braze": { "cats": [ 32, @@ -2834,6 +2901,23 @@ "implies": "Java", "website": "https://www.brightspot.com" }, + "Bronto": { + "cats": [ + 32, + 75 + ], + "description": "Bronto is a cloud-based email marketing automation software.", + "icon": "Bronto.svg", + "js": { + "bronto.versions.sca": "(.+)\\;version:\\1", + "BrontoShopify": "", + "brontoCookieConsent": "" + }, + "scripts": "(?:snip|cdn)\\.bronto\\.com", + "saas": true, + "pricing": ["poa"], + "website": "https://bronto.com" + }, "BrowserCMS": { "cats": [ 1 @@ -3463,6 +3547,17 @@ "scripts": "scripts\\.chitika\\.net/", "website": "http://chitika.com" }, + "Choices": { + "description": "Choices.js is a lightweight, configurable select box/text input plugin.", + "cats": [ + 19 + ], + "icon": "Choices.png", + "scripts": [ + "choices\\.js/|@([\\d.]+)(?:/assets)?(?:/scripts)?(?:/styles)?(?:/dist)?/choices(?:\\.min)?\\.js|css\\;version:\\1" + ], + "website": "https://joshuajohnson.co.uk/Choices/" + }, "Chorus": { "cats": [ 1 @@ -3672,11 +3767,11 @@ "scripts": "clipboard(?:-([\\d.]+))?(?:\\.min)?\\.js\\;version:\\1", "website": "https://clipboardjs.com/" }, - "Cloud Platform": { + "Acquia Cloud Platform": { "cats": [ 62 ], - "description": "Cloud Platform (formally Acquia Cloud) is a Drupal-tuned application lifecycle management suite with an infrastructure to support Drupal deployment workflow processes.", + "description": "Acquia Cloud Platform is a Drupal-tuned application lifecycle management suite with an infrastructure to support Drupal deployment workflow processes.", "headers": { "X-AH-Environment": "^\\w+$" }, @@ -6027,6 +6122,20 @@ "implies": "WordPress", "website": "https://getflywheel.com" }, + "Fomo": { + "cats": [ + 32 + ], + "description": "Fomo is a social proof marketing platform.", + "icon": "Fomo.png", + "js": { + "fomo.version": "(.+)\\;version:\\1" + }, + "scripts": "fomo\\.com/api/v", + "saas": true, + "pricing": ["low", "recurring"], + "website": "https://fomo.com" + }, "Font Awesome": { "cats": [ 17 @@ -6533,6 +6642,21 @@ }, "website": "http://get-simple.info" }, + "GetSocial": { + "cats": [ + 69, + 10 + ], + "description": "GetSocial is a social analytics and publishing platform.", + "icon": "GetSocial.png", + "js": { + "GETSOCIAL_VERSION": "(.+)\\;version:\\1" + }, + "scripts": "api\\.at\\.getsocial\\.io", + "saas": true, + "pricing": ["low", "recurring"], + "website": "https://getsocial.io" + }, "Ghost": { "cats": [ 11 @@ -6851,6 +6975,18 @@ "icon": "google_cloud.svg", "website": "https://cloud.google.com" }, + "Google Cloud Storage": { + "cats": [ + 19 + ], + "description": "Google Cloud Storage allows world-wide storage and retrieval of any amount of data at any time.", + "headers": { + "x-goog-storage-class": "^\\w+$" + }, + "icon": "google-cloud-storage.svg", + "implies": "Google Cloud", + "website": "https://cloud.google.com/storage" + }, "Google Code Prettify": { "cats": [ 19 @@ -7615,20 +7751,19 @@ "icon": "IBM.svg", "website": "http://ibm.com/software/webservers/httpservers" }, - "IBM WebSphere Commerce": { + "HCL Commerce": { "cats": [ 6 ], - "cpe": "cpe:/a:ibm:websphere_commerce_suite", "html": "<(?:a|link|script)[^>]*(?:href|src)=\".*(?:/wcsstore/|webapp\\/wcs)", - "icon": "IBM.svg", + "icon": "HCL Commerce.svg", "implies": "Java", "pricing": [ "poa" ], "saas": true, "url": "/wcs/", - "website": "http://ibm.com/software/genservers/commerceproductline" + "website": "https://www.hcltechsw.com/products/commerce" }, "IIS": { "cats": [ @@ -7948,6 +8083,30 @@ }, "website": "http://www.instantcms.ru" }, + "Instapage": { + "cats": [ + 51, + 74, + 10 + ], + "description": "Instapage is a cloud-based landing page platform designed for marketing teams and agencies.", + "icon": "Instapage.svg", + "implies": [ + "Lua", + "Node.js" + ], + "js": { + "instapageSp": "", + "_instapageSnowplow": "" + }, + "scripts": [ + "cdn\\.instapagemetrics\\.com", + "heatmap-events-collector\\.instapage\\.com" + ], + "saas": true, + "pricing": ["mid", "recurring"], + "website": "https://instapage.com" + }, "Intel Active Management Technology": { "cats": [ 22, @@ -8535,6 +8694,32 @@ "saas": true, "website": "https://newkajabi.com" }, + "Kameleoon": { + "cats": [ + 74 + ], + "description": "Kameleoon is a personalization technology platform for real-time omnichannel optimization and conversion.", + "icon": "Kameleoon.svg", + "dom": { + "link[href*='.kameleoon.eu/kameleoon.js']": { + "attributes": { + "href": "" + } + } + }, + "cookies": { + "kameleoonVisitorCode": "" + }, + "js": { + "Kameleoon.Gatherer.SCRIPT_VERSION": "(.+)\\;version:\\1", + "kameleoonEndLoadTime": "", + "kameleoonS": "" + }, + "scripts": "\\.kameleoon\\.\\w+/kameleoon\\.js", + "saas": true, + "pricing": ["poa"], + "website": "https://kameleoon.com/" + }, "Kampyle": { "cats": [ 10, @@ -8654,6 +8839,33 @@ "url": "kibana#/dashboard/", "website": "http://www.elastic.co/products/kibana" }, + "Kibo Commerce": { + "cats": [ + 6 + ], + "description": "Kibo Commerce is a enterprise ecommerce platform that offers a cloud-based, end-to-end commerce solution for retailers and branded manufacturers.", + "icon": "Kibo.png", + "scripts": "cdn-tp\\d+\\.mozu\\.com", + "pricing": ["poa"], + "website": "https://kibocommerce.com" + }, + "Kibo Personalization": { + "cats": [ + 10, + 74 + ], + "description": "Kibo Personalization is a omnichannel personalization software powered by machine learning to deliver individualized customer experiences and powered by Monetate and Certona.", + "icon": "Kibo.png", + "js": { + "monetateT": "", + "monetateQ": "", + "monetate": "" + }, + "scripts": "\\.monetate\\.net", + "saas": true, + "pricing": ["poa"], + "website": "https://kibocommerce.com/personalization-software" + }, "KineticJS": { "cats": [ 25 @@ -9138,9 +9350,12 @@ ], "icon": "List.js.png", "js": { - "List": "" + "List": "\\;confidence:50" }, - "scripts": "^list\\.(?:min\\.)?js$", + "scripts": [ + "list\\.js/\\;confidence:50", + "@([\\d.]+)/(?:/dist)?list\\.(?:min\\.)?js\\;version:\\1", + ], "website": "http://listjs.com" }, "Listrak": { @@ -9302,13 +9517,12 @@ 10 ], "html": [ - "]*>[^]{0,128}?src\\s*=\\s*['\"]//counter\\.yadro\\.ru/hit(?:;\\S+)?\\?(?:t\\d+\\.\\d+;)?r", + "