diff --git a/README.md b/README.md index 644cd52d3..7dca9c7bb 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,10 @@ [![wappalyzer NPM](https://img.shields.io/badge/npm-wappalyzer-blue)](https://www.npmjs.com/package/wappalyzer) [![wappalyzer-core NPM](https://img.shields.io/badge/npm-wappalyzer--core-blue)](https://www.npmjs.com/package/wappalyzer-core) [![Github Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&link=https://github.com/sponsors/AliasIO)](https://github.com/sponsors/AliasIO) - + Wappalyzer -# Wappalyzer +# Wappalyzer
@@ -38,14 +38,14 @@ node src/drivers/npm/cli.js https://example.com ### Chrome extension -* Go go `about:extensions` +* Go to `about:extensions` * Enable 'Developer mode' * Click 'Load unpacked' * Select `src/drivers/webextension` ### Firefox extension -* Go go `about:debugging#/runtime/this-firefox` +* Go to `about:debugging#/runtime/this-firefox` * Click 'Load Temporary Add-on' * Select `src/drivers/webextension/manifest.json` @@ -247,7 +247,7 @@ Plus any of: String | Array The presence of one application can imply the presence of - another, e.g. WordpPress means PHP is also in use. + another, e.g. WordPress means PHP is also in use. "PHP" @@ -255,10 +255,10 @@ Plus any of: requires String | Array - Similar to implies but detection only runs if the required technology has been identified. Useful for themes for a specific CMS. + Similar to implies but detection only runs if the required technology has been identified. Useful for themes for a specific CMS. "WordPress" - + requiresCategory String | Array @@ -266,7 +266,7 @@ Plus any of: Similar to requires; detection only runs if a technology in the required category has been identified. "Ecommerce" - + excludes String | Array @@ -387,7 +387,7 @@ Plus any of: xhr - String + String | Array Hostnames of XHR requests. "cdn\\.netlify\\.com" diff --git a/src/categories.json b/src/categories.json index af9ea823c..041c8e981 100644 --- a/src/categories.json +++ b/src/categories.json @@ -691,5 +691,13 @@ ], "name": "Shopify apps", "priority": 9 + }, + "101": { + "groups": [ + 6, + 16 + ], + "name": "Recruitment & staffing", + "priority": 9 } } \ No newline at end of file diff --git a/src/drivers/npm/cli.js b/src/drivers/npm/cli.js index 423ab999a..26cad7556 100755 --- a/src/drivers/npm/cli.js +++ b/src/drivers/npm/cli.js @@ -23,6 +23,7 @@ const aliases = { w: 'maxWait', n: 'noScripts', N: 'noRedirect', + e: 'extended', } while (true) { @@ -77,6 +78,7 @@ Options: -a, --user-agent=... Set the user agent string -n, --no-scripts Disabled JavaScript on web pages -N, --no-redirect Disable cross-domain redirects + -e, --extended Output additional information `) process.exit(1) diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index 14102ad02..c11f16075 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -280,6 +280,7 @@ class Driver { noScripts: false, userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36', + extended: false, ...options, } @@ -293,6 +294,7 @@ class Driver { this.options.htmlMaxCols = parseInt(this.options.htmlMaxCols, 10) this.options.htmlMaxRows = parseInt(this.options.htmlMaxRows, 10) this.options.noScripts = Boolean(+this.options.noScripts) + this.options.extended = Boolean(+this.options.extended) this.destroyed = false } @@ -990,6 +992,34 @@ class Site { this.error(error) } + const patterns = this.options.extended + ? this.detections.reduce( + ( + patterns, + { + technology: { name, implies, excludes }, + pattern: { regex, value, match, confidence, type, version }, + } + ) => { + patterns[name] = patterns[name] || [] + + patterns[name].push({ + type, + regex: regex.source, + value: value.length <= 250 ? value : null, + match: match.length <= 250 ? match : null, + confidence, + version, + implies: implies.map(({ name }) => name), + excludes: excludes.map(({ name }) => name), + }) + + return patterns + }, + {} + ) + : undefined + const results = { urls: this.analyzedUrls, technologies: resolve(this.detections).map( @@ -1017,6 +1047,7 @@ class Site { })), }) ), + patterns, } await this.emit('analyze', results) diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json index 3f41db6ff..24d0becbe 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.9.12", + "version": "6.9.14", "author": "Wappalyzer", "license": "MIT", "repository": { diff --git a/src/drivers/webextension/_locales/ca/messages.json b/src/drivers/webextension/_locales/ca/messages.json index 16a801e5b..7301955a7 100644 --- a/src/drivers/webextension/_locales/ca/messages.json +++ b/src/drivers/webextension/_locales/ca/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json index 86c67da90..04c81d04a 100644 --- a/src/drivers/webextension/_locales/de/messages.json +++ b/src/drivers/webextension/_locales/de/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/el/messages.json b/src/drivers/webextension/_locales/el/messages.json index 20519e45b..118262649 100644 --- a/src/drivers/webextension/_locales/el/messages.json +++ b/src/drivers/webextension/_locales/el/messages.json @@ -191,5 +191,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json index 6deff3517..3a8ad44f2 100644 --- a/src/drivers/webextension/_locales/en/messages.json +++ b/src/drivers/webextension/_locales/en/messages.json @@ -195,5 +195,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/es/messages.json b/src/drivers/webextension/_locales/es/messages.json index 3b2446b93..408fad0cb 100644 --- a/src/drivers/webextension/_locales/es/messages.json +++ b/src/drivers/webextension/_locales/es/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/fa/messages.json b/src/drivers/webextension/_locales/fa/messages.json index bc498ab65..e7e9036b4 100644 --- a/src/drivers/webextension/_locales/fa/messages.json +++ b/src/drivers/webextension/_locales/fa/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/fr/messages.json b/src/drivers/webextension/_locales/fr/messages.json index 7ebc62e8e..87c4698ab 100644 --- a/src/drivers/webextension/_locales/fr/messages.json +++ b/src/drivers/webextension/_locales/fr/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/gl_ES/messages.json b/src/drivers/webextension/_locales/gl_ES/messages.json index 3d4abfe72..13bcc3cc1 100644 --- a/src/drivers/webextension/_locales/gl_ES/messages.json +++ b/src/drivers/webextension/_locales/gl_ES/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/gr/messages.json b/src/drivers/webextension/_locales/gr/messages.json index a630bc825..906b55126 100644 --- a/src/drivers/webextension/_locales/gr/messages.json +++ b/src/drivers/webextension/_locales/gr/messages.json @@ -193,5 +193,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/id/messages.json b/src/drivers/webextension/_locales/id/messages.json index 45d516c7c..1c2f8fb26 100644 --- a/src/drivers/webextension/_locales/id/messages.json +++ b/src/drivers/webextension/_locales/id/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/it/messages.json b/src/drivers/webextension/_locales/it/messages.json index c885c13f7..eb7407197 100644 --- a/src/drivers/webextension/_locales/it/messages.json +++ b/src/drivers/webextension/_locales/it/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/ja/messages.json b/src/drivers/webextension/_locales/ja/messages.json index 9aa4db3f2..ca27803d6 100644 --- a/src/drivers/webextension/_locales/ja/messages.json +++ b/src/drivers/webextension/_locales/ja/messages.json @@ -195,5 +195,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/ko/messages.json b/src/drivers/webextension/_locales/ko/messages.json index 9c407ec1a..b4fb7ff08 100644 --- a/src/drivers/webextension/_locales/ko/messages.json +++ b/src/drivers/webextension/_locales/ko/messages.json @@ -195,5 +195,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/nl/messages.json b/src/drivers/webextension/_locales/nl/messages.json index 987001d95..1dc777cfe 100644 --- a/src/drivers/webextension/_locales/nl/messages.json +++ b/src/drivers/webextension/_locales/nl/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index 2c63b4106..be336b72f 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/pt/messages.json b/src/drivers/webextension/_locales/pt/messages.json index 78062485a..4ee0fabec 100644 --- a/src/drivers/webextension/_locales/pt/messages.json +++ b/src/drivers/webextension/_locales/pt/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/pt_BR/messages.json b/src/drivers/webextension/_locales/pt_BR/messages.json index 884cc6291..a6c787bb0 100644 --- a/src/drivers/webextension/_locales/pt_BR/messages.json +++ b/src/drivers/webextension/_locales/pt_BR/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/ro/messages.json b/src/drivers/webextension/_locales/ro/messages.json index 10878cfdf..b78844654 100644 --- a/src/drivers/webextension/_locales/ro/messages.json +++ b/src/drivers/webextension/_locales/ro/messages.json @@ -193,5 +193,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index 08ad68aa5..b9642e613 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -195,5 +195,6 @@ "categoryName97": { "message": "Платформа клиентских данных" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Службы доставки" }, - "categoryName100": { "message": "Приложении для Shopify" } + "categoryName100": { "message": "Приложении для Shopify" }, + "categoryName101": { "message": "Подбор персонала" } } diff --git a/src/drivers/webextension/_locales/sk/messages.json b/src/drivers/webextension/_locales/sk/messages.json index ba8d64a79..f5e1648a8 100644 --- a/src/drivers/webextension/_locales/sk/messages.json +++ b/src/drivers/webextension/_locales/sk/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/tr/messages.json b/src/drivers/webextension/_locales/tr/messages.json index c84302a34..6df1aba8b 100644 --- a/src/drivers/webextension/_locales/tr/messages.json +++ b/src/drivers/webextension/_locales/tr/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/uk/messages.json b/src/drivers/webextension/_locales/uk/messages.json index 119d55c96..9b88c918d 100644 --- a/src/drivers/webextension/_locales/uk/messages.json +++ b/src/drivers/webextension/_locales/uk/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/uz/messages.json b/src/drivers/webextension/_locales/uz/messages.json index b02908d55..fbed3ba0d 100644 --- a/src/drivers/webextension/_locales/uz/messages.json +++ b/src/drivers/webextension/_locales/uz/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/zh_CN/messages.json b/src/drivers/webextension/_locales/zh_CN/messages.json index d66693164..c6fc4c65a 100644 --- a/src/drivers/webextension/_locales/zh_CN/messages.json +++ b/src/drivers/webextension/_locales/zh_CN/messages.json @@ -193,5 +193,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/_locales/zh_TW/messages.json b/src/drivers/webextension/_locales/zh_TW/messages.json index 79ae1ce51..5081e61b7 100644 --- a/src/drivers/webextension/_locales/zh_TW/messages.json +++ b/src/drivers/webextension/_locales/zh_TW/messages.json @@ -197,5 +197,6 @@ "categoryName97": { "message": "Customer data platform" }, "categoryName98": { "message": "Cart abandonment" }, "categoryName99": { "message": "Shipping carriers" }, - "categoryName100": { "message": "Shopify apps" } + "categoryName100": { "message": "Shopify apps" }, + "categoryName101": { "message": "Recruitment & staffing" } } diff --git a/src/drivers/webextension/images/icons/Admiral.svg b/src/drivers/webextension/images/icons/Admiral.svg new file mode 100644 index 000000000..86ab6c3a1 --- /dev/null +++ b/src/drivers/webextension/images/icons/Admiral.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/drivers/webextension/images/icons/AfterBuy.png b/src/drivers/webextension/images/icons/AfterBuy.png new file mode 100644 index 000000000..b628c6980 Binary files /dev/null and b/src/drivers/webextension/images/icons/AfterBuy.png differ diff --git a/src/drivers/webextension/images/icons/Airform.svg b/src/drivers/webextension/images/icons/Airform.svg index 188efcda5..865a00e0d 100644 --- a/src/drivers/webextension/images/icons/Airform.svg +++ b/src/drivers/webextension/images/icons/Airform.svg @@ -1 +1,3 @@ - + + + diff --git a/src/drivers/webextension/images/icons/AntV.svg b/src/drivers/webextension/images/icons/AntV.svg new file mode 100644 index 000000000..64f1dd948 --- /dev/null +++ b/src/drivers/webextension/images/icons/AntV.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/ApplicantStack.png b/src/drivers/webextension/images/icons/ApplicantStack.png new file mode 100644 index 000000000..97386f1e2 Binary files /dev/null and b/src/drivers/webextension/images/icons/ApplicantStack.png differ diff --git a/src/drivers/webextension/images/icons/Arc XP.svg b/src/drivers/webextension/images/icons/Arc XP.svg new file mode 100644 index 000000000..21061ac81 --- /dev/null +++ b/src/drivers/webextension/images/icons/Arc XP.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Arc-Publishing.svg b/src/drivers/webextension/images/icons/Arc-Publishing.svg deleted file mode 100644 index 4a66617a2..000000000 --- a/src/drivers/webextension/images/icons/Arc-Publishing.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/drivers/webextension/images/icons/Baidu Maps.png b/src/drivers/webextension/images/icons/Baidu Maps.png new file mode 100644 index 000000000..b6afabc3f Binary files /dev/null and b/src/drivers/webextension/images/icons/Baidu Maps.png differ diff --git a/src/drivers/webextension/images/icons/BambooHR.svg b/src/drivers/webextension/images/icons/BambooHR.svg new file mode 100644 index 000000000..c61ff6e43 --- /dev/null +++ b/src/drivers/webextension/images/icons/BambooHR.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/BiteSpeed.png b/src/drivers/webextension/images/icons/BiteSpeed.png new file mode 100644 index 000000000..eb75f1fc3 Binary files /dev/null and b/src/drivers/webextension/images/icons/BiteSpeed.png differ diff --git a/src/drivers/webextension/images/icons/Blip.tv.png b/src/drivers/webextension/images/icons/Blip.tv.png deleted file mode 100644 index 34dd8b44f..000000000 Binary files a/src/drivers/webextension/images/icons/Blip.tv.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Bloomreach.png b/src/drivers/webextension/images/icons/Bloomreach.png deleted file mode 100644 index e9d2b8d9b..000000000 Binary files a/src/drivers/webextension/images/icons/Bloomreach.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Bloomreach.svg b/src/drivers/webextension/images/icons/Bloomreach.svg new file mode 100644 index 000000000..1a1931f4b --- /dev/null +++ b/src/drivers/webextension/images/icons/Bloomreach.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/drivers/webextension/images/icons/Bol.com.svg b/src/drivers/webextension/images/icons/Bol.com.svg deleted file mode 100644 index 68956f3e4..000000000 --- a/src/drivers/webextension/images/icons/Bol.com.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/drivers/webextension/images/icons/BrightEdge.png b/src/drivers/webextension/images/icons/BrightEdge.png new file mode 100644 index 000000000..d470be3c7 Binary files /dev/null and b/src/drivers/webextension/images/icons/BrightEdge.png differ diff --git a/src/drivers/webextension/images/icons/Bulma.svg b/src/drivers/webextension/images/icons/Bulma.svg index 6562c62d6..3bf498063 100644 --- a/src/drivers/webextension/images/icons/Bulma.svg +++ b/src/drivers/webextension/images/icons/Bulma.svg @@ -1,3 +1,3 @@ - - + + diff --git a/src/drivers/webextension/images/icons/Chabokan.svg b/src/drivers/webextension/images/icons/Chabokan.svg new file mode 100644 index 000000000..53dcc9c46 --- /dev/null +++ b/src/drivers/webextension/images/icons/Chabokan.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/drivers/webextension/images/icons/Chakra UI.svg b/src/drivers/webextension/images/icons/Chakra UI.svg new file mode 100644 index 000000000..ef6054b0c --- /dev/null +++ b/src/drivers/webextension/images/icons/Chakra UI.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Dynatrace.png b/src/drivers/webextension/images/icons/Dynatrace.png deleted file mode 100755 index c037915cb..000000000 Binary files a/src/drivers/webextension/images/icons/Dynatrace.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Dynatrace.svg b/src/drivers/webextension/images/icons/Dynatrace.svg new file mode 100644 index 000000000..40477ab30 --- /dev/null +++ b/src/drivers/webextension/images/icons/Dynatrace.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Freshteam.svg b/src/drivers/webextension/images/icons/Freshteam.svg new file mode 100644 index 000000000..fa2435447 --- /dev/null +++ b/src/drivers/webextension/images/icons/Freshteam.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Goftino.svg b/src/drivers/webextension/images/icons/Goftino.svg new file mode 100644 index 000000000..16b9baf26 --- /dev/null +++ b/src/drivers/webextension/images/icons/Goftino.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Greenhouse.svg b/src/drivers/webextension/images/icons/Greenhouse.svg new file mode 100644 index 000000000..4a9450d17 --- /dev/null +++ b/src/drivers/webextension/images/icons/Greenhouse.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Hireology.png b/src/drivers/webextension/images/icons/Hireology.png new file mode 100644 index 000000000..59be07821 Binary files /dev/null and b/src/drivers/webextension/images/icons/Hireology.png differ diff --git a/src/drivers/webextension/images/icons/Hyva.svg b/src/drivers/webextension/images/icons/Hyva.svg new file mode 100644 index 000000000..6b35be07e --- /dev/null +++ b/src/drivers/webextension/images/icons/Hyva.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Invoca.svg b/src/drivers/webextension/images/icons/Invoca.svg new file mode 100644 index 000000000..ca867769b --- /dev/null +++ b/src/drivers/webextension/images/icons/Invoca.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/IrisLMS.png b/src/drivers/webextension/images/icons/IrisLMS.png new file mode 100644 index 000000000..a5640f0a3 Binary files /dev/null and b/src/drivers/webextension/images/icons/IrisLMS.png differ diff --git a/src/drivers/webextension/images/icons/JobAdder.png b/src/drivers/webextension/images/icons/JobAdder.png new file mode 100644 index 000000000..6e0dff00b Binary files /dev/null and b/src/drivers/webextension/images/icons/JobAdder.png differ diff --git a/src/drivers/webextension/images/icons/Jobvite.png b/src/drivers/webextension/images/icons/Jobvite.png new file mode 100644 index 000000000..af3053dcf Binary files /dev/null and b/src/drivers/webextension/images/icons/Jobvite.png differ diff --git a/src/drivers/webextension/images/icons/Lever.svg b/src/drivers/webextension/images/icons/Lever.svg new file mode 100644 index 000000000..bf6d946a0 --- /dev/null +++ b/src/drivers/webextension/images/icons/Lever.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/drivers/webextension/images/icons/Lit.svg b/src/drivers/webextension/images/icons/Lit.svg new file mode 100644 index 000000000..912aa976f --- /dev/null +++ b/src/drivers/webextension/images/icons/Lit.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Marfeel.svg b/src/drivers/webextension/images/icons/Marfeel.svg new file mode 100644 index 000000000..340b59c67 --- /dev/null +++ b/src/drivers/webextension/images/icons/Marfeel.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Marko.svg b/src/drivers/webextension/images/icons/Marko.svg new file mode 100644 index 000000000..7d5c5e7dd --- /dev/null +++ b/src/drivers/webextension/images/icons/Marko.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/drivers/webextension/images/icons/Naver.svg b/src/drivers/webextension/images/icons/Naver.svg new file mode 100644 index 000000000..10971b657 --- /dev/null +++ b/src/drivers/webextension/images/icons/Naver.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Nicepage.png b/src/drivers/webextension/images/icons/Nicepage.png new file mode 100644 index 000000000..7df369d5b Binary files /dev/null and b/src/drivers/webextension/images/icons/Nicepage.png differ diff --git a/src/drivers/webextension/images/icons/Ookla.svg b/src/drivers/webextension/images/icons/Ookla.svg new file mode 100644 index 000000000..6b34f9abd --- /dev/null +++ b/src/drivers/webextension/images/icons/Ookla.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/OpenElement.png b/src/drivers/webextension/images/icons/OpenElement.png new file mode 100644 index 000000000..5df4e3f20 Binary files /dev/null and b/src/drivers/webextension/images/icons/OpenElement.png differ diff --git a/src/drivers/webextension/images/icons/PCRecruiter.png b/src/drivers/webextension/images/icons/PCRecruiter.png new file mode 100644 index 000000000..80b84fcff Binary files /dev/null and b/src/drivers/webextension/images/icons/PCRecruiter.png differ diff --git a/src/drivers/webextension/images/icons/PWA Studio.png b/src/drivers/webextension/images/icons/PWA Studio.png new file mode 100644 index 000000000..9518f5806 Binary files /dev/null and b/src/drivers/webextension/images/icons/PWA Studio.png differ diff --git a/src/drivers/webextension/images/icons/Partnerize.png b/src/drivers/webextension/images/icons/Partnerize.png new file mode 100644 index 000000000..e3fd7bff1 Binary files /dev/null and b/src/drivers/webextension/images/icons/Partnerize.png differ diff --git a/src/drivers/webextension/images/icons/Parttrap.png b/src/drivers/webextension/images/icons/Parttrap.png new file mode 100644 index 000000000..876304e19 Binary files /dev/null and b/src/drivers/webextension/images/icons/Parttrap.png differ diff --git a/src/drivers/webextension/images/icons/Paylocity.svg b/src/drivers/webextension/images/icons/Paylocity.svg new file mode 100644 index 000000000..d3e3a2d06 --- /dev/null +++ b/src/drivers/webextension/images/icons/Paylocity.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Perfex CRM.png b/src/drivers/webextension/images/icons/Perfex CRM.png new file mode 100644 index 000000000..59a91f49d Binary files /dev/null and b/src/drivers/webextension/images/icons/Perfex CRM.png differ diff --git a/src/drivers/webextension/images/icons/Personio.svg b/src/drivers/webextension/images/icons/Personio.svg new file mode 100644 index 000000000..d88dac9ab --- /dev/null +++ b/src/drivers/webextension/images/icons/Personio.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Popper.png b/src/drivers/webextension/images/icons/Popper.png deleted file mode 100644 index 3835e7452..000000000 Binary files a/src/drivers/webextension/images/icons/Popper.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Popper.svg b/src/drivers/webextension/images/icons/Popper.svg new file mode 100644 index 000000000..d81056c7a --- /dev/null +++ b/src/drivers/webextension/images/icons/Popper.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/Quicq.svg b/src/drivers/webextension/images/icons/Quicq.svg new file mode 100644 index 000000000..37f71e386 --- /dev/null +++ b/src/drivers/webextension/images/icons/Quicq.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/REDAXO.png b/src/drivers/webextension/images/icons/REDAXO.png new file mode 100644 index 000000000..0b9497ab6 Binary files /dev/null and b/src/drivers/webextension/images/icons/REDAXO.png differ diff --git a/src/drivers/webextension/images/icons/Recruitee.svg b/src/drivers/webextension/images/icons/Recruitee.svg new file mode 100644 index 000000000..690ab0dca --- /dev/null +++ b/src/drivers/webextension/images/icons/Recruitee.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/RevenueHut.png b/src/drivers/webextension/images/icons/RevenueHunt.png similarity index 100% rename from src/drivers/webextension/images/icons/RevenueHut.png rename to src/drivers/webextension/images/icons/RevenueHunt.png diff --git a/src/drivers/webextension/images/icons/Rokt.svg b/src/drivers/webextension/images/icons/Rokt.svg new file mode 100644 index 000000000..08efdf143 --- /dev/null +++ b/src/drivers/webextension/images/icons/Rokt.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/SHE Media.png b/src/drivers/webextension/images/icons/SHE Media.png new file mode 100644 index 000000000..da1b837b4 Binary files /dev/null and b/src/drivers/webextension/images/icons/SHE Media.png differ diff --git a/src/drivers/webextension/images/icons/Sitecore.png b/src/drivers/webextension/images/icons/Sitecore.png deleted file mode 100644 index 31f2b6e9a..000000000 Binary files a/src/drivers/webextension/images/icons/Sitecore.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Sitecore.svg b/src/drivers/webextension/images/icons/Sitecore.svg new file mode 100644 index 000000000..529a7c705 --- /dev/null +++ b/src/drivers/webextension/images/icons/Sitecore.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/drivers/webextension/images/icons/SmartRecruiters.png b/src/drivers/webextension/images/icons/SmartRecruiters.png new file mode 100644 index 000000000..8a2be00cf Binary files /dev/null and b/src/drivers/webextension/images/icons/SmartRecruiters.png differ diff --git a/src/drivers/webextension/images/icons/Splunk.png b/src/drivers/webextension/images/icons/Splunk.png deleted file mode 100644 index aec997697..000000000 Binary files a/src/drivers/webextension/images/icons/Splunk.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Splunk.svg b/src/drivers/webextension/images/icons/Splunk.svg new file mode 100644 index 000000000..0216dcb2e --- /dev/null +++ b/src/drivers/webextension/images/icons/Splunk.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Store Systems.png b/src/drivers/webextension/images/icons/Store Systems.png deleted file mode 100644 index 7a3ccca70..000000000 Binary files a/src/drivers/webextension/images/icons/Store Systems.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/Storyblok.svg b/src/drivers/webextension/images/icons/Storyblok.svg new file mode 100644 index 000000000..ac13add29 --- /dev/null +++ b/src/drivers/webextension/images/icons/Storyblok.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/drivers/webextension/images/icons/TagPro.png b/src/drivers/webextension/images/icons/TagPro.png new file mode 100644 index 000000000..f9618412f Binary files /dev/null and b/src/drivers/webextension/images/icons/TagPro.png differ diff --git a/src/drivers/webextension/images/icons/Umbraco.png b/src/drivers/webextension/images/icons/Umbraco.png index 00e8c3c03..abe54dc1b 100644 Binary files a/src/drivers/webextension/images/icons/Umbraco.png and b/src/drivers/webextension/images/icons/Umbraco.png differ diff --git a/src/drivers/webextension/images/icons/Verifone.svg b/src/drivers/webextension/images/icons/Verifone.svg new file mode 100644 index 000000000..f15031f22 --- /dev/null +++ b/src/drivers/webextension/images/icons/Verifone.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/WebToffee.svg b/src/drivers/webextension/images/icons/WebToffee.svg deleted file mode 100644 index 61786217f..000000000 --- a/src/drivers/webextension/images/icons/WebToffee.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/drivers/webextension/images/icons/WildJar.png b/src/drivers/webextension/images/icons/WildJar.png new file mode 100644 index 000000000..5a6aeb06a Binary files /dev/null and b/src/drivers/webextension/images/icons/WildJar.png differ diff --git a/src/drivers/webextension/images/icons/Workable.svg b/src/drivers/webextension/images/icons/Workable.svg new file mode 100644 index 000000000..34b6724e7 --- /dev/null +++ b/src/drivers/webextension/images/icons/Workable.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/drivers/webextension/images/icons/Worldz.png b/src/drivers/webextension/images/icons/Worldz.png new file mode 100644 index 000000000..a5f6915ae Binary files /dev/null and b/src/drivers/webextension/images/icons/Worldz.png differ diff --git a/src/drivers/webextension/images/icons/Yahoo.svg b/src/drivers/webextension/images/icons/Yahoo.svg new file mode 100644 index 000000000..164b1255f --- /dev/null +++ b/src/drivers/webextension/images/icons/Yahoo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/drivers/webextension/images/icons/Yampi.svg b/src/drivers/webextension/images/icons/Yampi.svg new file mode 100644 index 000000000..b66f14b1d --- /dev/null +++ b/src/drivers/webextension/images/icons/Yampi.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/drivers/webextension/images/icons/Zakeke.png b/src/drivers/webextension/images/icons/Zakeke.png new file mode 100644 index 000000000..3a3c49864 Binary files /dev/null and b/src/drivers/webextension/images/icons/Zakeke.png differ diff --git a/src/drivers/webextension/images/icons/after-buy.png b/src/drivers/webextension/images/icons/after-buy.png deleted file mode 100644 index bc58984b5..000000000 Binary files a/src/drivers/webextension/images/icons/after-buy.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/elasticpress.svg b/src/drivers/webextension/images/icons/elasticpress.svg new file mode 100644 index 000000000..e27873498 --- /dev/null +++ b/src/drivers/webextension/images/icons/elasticpress.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/drivers/webextension/images/icons/gravityforms.svg b/src/drivers/webextension/images/icons/gravityforms.svg index 43130e50a..7b8379f07 100644 --- a/src/drivers/webextension/images/icons/gravityforms.svg +++ b/src/drivers/webextension/images/icons/gravityforms.svg @@ -1 +1,11 @@ -gravityforms \ No newline at end of file + + + + + + + + + + + diff --git a/src/drivers/webextension/images/icons/storyblok.png b/src/drivers/webextension/images/icons/storyblok.png deleted file mode 100644 index 404358d94..000000000 Binary files a/src/drivers/webextension/images/icons/storyblok.png and /dev/null differ diff --git a/src/drivers/webextension/images/icons/toastr.png b/src/drivers/webextension/images/icons/toastr.png new file mode 100644 index 000000000..0a80cb0ad Binary files /dev/null and b/src/drivers/webextension/images/icons/toastr.png differ diff --git a/src/drivers/webextension/images/icons/vue-storefront.svg b/src/drivers/webextension/images/icons/vue-storefront.svg index f8f5aca22..809104855 100644 --- a/src/drivers/webextension/images/icons/vue-storefront.svg +++ b/src/drivers/webextension/images/icons/vue-storefront.svg @@ -1,10 +1,6 @@ - - - - - + + + diff --git a/src/drivers/webextension/images/icons/yahoo.png b/src/drivers/webextension/images/icons/yahoo.png deleted file mode 100644 index b0b64781b..000000000 Binary files a/src/drivers/webextension/images/icons/yahoo.png and /dev/null differ diff --git a/src/drivers/webextension/js/content.js b/src/drivers/webextension/js/content.js index 78b8f02cf..57c4f7c26 100644 --- a/src/drivers/webextension/js/content.js +++ b/src/drivers/webextension/js/content.js @@ -82,7 +82,8 @@ async function getDom(technologies) { } if (text) { - const value = node.textContent.trim() + // eslint-disable-next-line unicorn/prefer-text-content + const value = node.innerText.trim() if (value) { technologies.push({ diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index d0c140346..405f2de40 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -15,7 +15,7 @@ const { agent, promisify, getOption, setOption, open, globEscape } = Utils const expiry = 1000 * 60 * 60 * 24 const hostnameIgnoreList = - /\b((local|dev(elop(ment)?)?|sandbox|stag(e|ing)?|preprod|production|preview|test(ing)?|[^a-z]demo(shop)?|cache)[.-]|dev\d|localhost|((wappalyzer|google|bing|baidu|microsoft|facebook|adobe|twitter|reddit|yahoo|wikipedia|amazon|amazonaws|youtube|stackoverflow|github|stackexchange|w3schools|twitch)\.)|(live|office|herokuapp|shopifypreview)\.com|\.local|\.test|\.netlify\.app|web\.archive\.org|zoom\.us|^([0-9.]+|[\d.]+)$|^([a-f0-9:]+:+)+[a-f0-9]+$)/ + /\b((local|dev(elop(ment)?)?|sandbox|stag(e|ing)?|preprod|production|preview|test(ing)?|[^a-z]demo(shop)?|cache)[.-]|dev\d|localhost|((wappalyzer|google|bing|baidu|microsoft|duckduckgo|facebook|adobe|twitter|reddit|yahoo|wikipedia|amazon|amazonaws|youtube|stackoverflow|github|stackexchange|w3schools|twitch)\.)|(live|office|herokuapp|shopifypreview)\.com|\.local|\.test|\.netlify\.app|web\.archive\.org|zoom\.us|^([0-9.]+|[\d.]+)$|^([a-f0-9:]+:+)+[a-f0-9]+$)/ const xhrDebounce = [] diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index bb840fc02..cfc67f44a 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.9.12", + "version": "6.9.14", "default_locale": "en", "manifest_version": 2, "icons": { diff --git a/src/package.json b/src/package.json index 54c2b2190..4f2d5d436 100644 --- a/src/package.json +++ b/src/package.json @@ -13,7 +13,7 @@ "software" ], "homepage": "https://www.wappalyzer.com/", - "version": "6.9.12", + "version": "6.9.14", "author": "Wappalyzer", "license": "MIT", "repository": { diff --git a/src/technologies/_.json b/src/technologies/_.json index 3ccfb80e6..cd58c67ac 100644 --- a/src/technologies/_.json +++ b/src/technologies/_.json @@ -118,15 +118,20 @@ }, "8base": { "cats": [ - 3, 62 + 3, + 62 ], "description": "8base is a Backend-as-a-Service. It lets front-end developers focus more on what they love and backend developers expedite their workflow", "icon": "8base-logo.png", "pricing": [ - "low", "freemium", "recurring" + "low", + "freemium", + "recurring" + ], + "requires": [ + "GraphQL" ], "saas": true, - "requires": ["GraphQL"], "website": "https://8base.com", "xhr": "api\\.8base\\.com" }, @@ -140,4 +145,4 @@ }, "website": "https://github.com/sulu/web-js" } -} +} \ No newline at end of file diff --git a/src/technologies/a.json b/src/technologies/a.json index 133e24f0c..4b311a92a 100644 --- a/src/technologies/a.json +++ b/src/technologies/a.json @@ -77,6 +77,26 @@ "scriptSrc": "\\.ebis\\.ne\\.jp/", "website": "http://www.ebis.ne.jp" }, + "ADFOX": { + "cats": [ + 36 + ], + "description": "ADFOX is an advertising management platform for media publishers.", + "icon": "ADFOX.svg", + "js": { + "AdFox_getCodeScript": "", + "Site.adFoxParams": "", + "adFoxParams": "", + "adfoxAsyncParams": "", + "adfoxBiddersMap": "" + }, + "pricing": [ + "mid", + "recurring" + ], + "saas": true, + "website": "https://adfox.yandex.ru" + }, "AFThemes CoverNews": { "cats": [ 80 @@ -721,19 +741,19 @@ 36 ], "description": "AdRiver is a company which provide internet advertising management and audit software.", - "icon": "AdRiver.png", "dom": "link[href*='.adriver.ru'], img[src*='.adriver.ru'], iframe[src*='.adriver.ru']", + "icon": "AdRiver.png", "js": { - "adriver": "", "AdriverCounter": "", "AdriverPrebid": "", - "adfoxBiddersMap.adriver": "" + "adfoxBiddersMap.adriver": "", + "adriver": "" }, - "scriptSrc": "\\.adriver\\.ru/", - "saas": true, "pricing": [ "payg" ], + "saas": true, + "scriptSrc": "\\.adriver\\.ru/", "website": "http://adriver.ru" }, "AdRoll": { @@ -988,26 +1008,6 @@ "scriptSrc": "\\.adform\\.net/", "website": "https://site.adform.com" }, - "ADFOX": { - "cats": [ - 36 - ], - "description": "ADFOX is an advertising management platform for media publishers.", - "icon": "ADFOX.svg", - "js": { - "Site.adFoxParams": "", - "adfoxAsyncParams": "", - "AdFox_getCodeScript": "", - "adfoxBiddersMap": "", - "adFoxParams": "" - }, - "pricing": [ - "mid", - "recurring" - ], - "saas": true, - "website": "https://adfox.yandex.ru" - }, "Adloox": { "cats": [ 36 @@ -1033,6 +1033,25 @@ "implies": "PHP", "website": "http://www.adminer.org" }, + "Admiral": { + "cats": [ + 19 + ], + "description": "Admiral is a Visitor Relationship Management (VRM) platform.", + "icon": "Admiral.svg", + "js": { + "admiral": "" + }, + "scripts": "admiral(?:-engaged|:enabled)", + "saas": true, + "pricing": [ + "freemium", + "low", + "recurring", + "payg" + ], + "website": "https://www.getadmiral.com" + }, "Admitad": { "cats": [ 71 @@ -1094,11 +1113,11 @@ 36 ], "description": "Adnegah is a digital marketing and internet advertising agency.", - "icon": "Adnegah.png", "dom": "iframe[scr*='adnegah.net']", "headers": { "X-Advertising-By": "adnegah\\.net" }, + "icon": "Adnegah.png", "scriptSrc": "\\.adnegah\\.net/", "website": "https://adnegah.net" }, @@ -1130,7 +1149,8 @@ 86 ], "cookies": { - "aam_uuid": "" + "aam_uuid": "", + "Demdex": "" }, "description": "Adobe Audience Manager is a versatile audience data management platform.", "icon": "Adobe.svg", @@ -1141,6 +1161,17 @@ "saas": true, "website": "https://business.adobe.com/products/audience-manager/adobe-audience-manager.html" }, + "Adobe Client Data Layer": { + "cats": [ + 12 + ], + "description": "Adobe Client Data Layer is a framework of JavaScript objects on your site that contains all variable values used in your implementation.", + "icon": "Adobe.svg", + "js": { + "adobeDataLayer.version": "([\\d\\.]+)\\;version:\\1" + }, + "website": "https://github.com/adobe/adobe-client-data-layer" + }, "Adobe ColdFusion": { "cats": [ 18 @@ -1349,13 +1380,13 @@ 36 ], "description": "Adverticum is the developer and operator of Hungary's market leading online ad serving solution, the Adverticum AdServer.", - "icon": "Adverticum.svg", "dom": "a[href*='ad.adverticum.net'], div.goAdverticum", - "scriptSrc": "\\.adverticum\\.net/", - "saas": true, + "icon": "Adverticum.svg", "pricing": [ "poa" ], + "saas": true, + "scriptSrc": "\\.adverticum\\.net/", "website": "http://adverticum.net" }, "Adyen": { @@ -1404,12 +1435,12 @@ ], "description": "Affilae is an affiliate marketing platform that enables brands to connect, collaborate with influencers and affiliates.", "icon": "Affilae.png", - "scriptSrc": "static\\.affilae\\.com/(?:.+v([\\d\\.]+)|.+)?\\.js\\;version:\\1", - "saas": true, "pricing": [ "mid", "recurring" ], + "saas": true, + "scriptSrc": "static\\.affilae\\.com/(?:.+v([\\d\\.]+)|.+)?\\.js\\;version:\\1", "website": "https://affilae.com" }, "Affiliate B": { @@ -1477,11 +1508,19 @@ "cats": [ 6 ], - "html": [ - "
This OnlineStore is brought to you by ViA-Online GmbH Afterbuy\\. Information and contribution at https://www\\.afterbuy\\.de
" + "description": "AfterBuy is a software company that specialises in ecommerce software for small to enterprise level businesses.", + "icon": "AfterBuy.png", + "js": { + "AfterbuyString": "" + }, + "pricing": [ + "freemium", + "low", + "recurring", + "payg" ], - "icon": "after-buy.png", - "scriptSrc": "shop-static\\.afterbuy\\.de", + "saas": true, + "scriptSrc": "\\.afterbuy\\.de/", "website": "http://www.afterbuy.de" }, "Afterpay": { @@ -1496,9 +1535,12 @@ "js": { "Afterpay": "", "AfterpayAttractWidget": "", + "AfterpayGenericErrorHtml": "", + "AfterpayWidgetHtml": "", "afterpay_product": "", "checkout.enabledpayments.afterpay": "^true$" }, + "requiresCategory": 6, "saas": true, "scriptSrc": [ "portal\\.afterpay\\.com", @@ -1582,10 +1624,13 @@ "cats": [ 19 ], - "html": [ - "]+?action=\"[^\"]*airform\\.io[^>]+?>" - ], + "description": "Airform is a functional HTML forms for front-end developers.", + "dom": "form[action*='airform.io/']", "icon": "Airform.svg", + "oss": true, + "pricing": [ + "freemium" + ], "website": "https://airform.io" }, "Airship": { @@ -1818,10 +1863,13 @@ 29 ], "description": "Algolia offers a hosted web search product delivering real-time results.", + "icon": "Algolia.svg", "headers": { "Content-Security-Policy": "\\.algolia" }, - "icon": "Algolia.svg", + "cookies": { + "_ALGOLIA": "" + }, "js": { "AlgoliaSearch": "", "__algolia": "", @@ -2475,6 +2523,39 @@ ], "website": "https://ant.design" }, + "AntV G2": { + "cats": [ + 25 + ], + "description": "AntV G2 is a highly interactive data-driven visualisation grammar for statistical charts.", + "icon": "AntV.svg", + "dom": "div.g2-tooltip", + "js": { + "G2.VERSION": "([\\d\\.]+)\\;version:\\1", + "G2.Chart": "" + }, + "saas": true, + "pricing": [ + "freemium" + ], + "website": "https://g2plot.antv.vision" + }, + "AntV G6": { + "cats": [ + 25 + ], + "description": "AntV G6 is a graph visualisation framework in JavaScript.", + "icon": "AntV.svg", + "js": { + "g6.version": "([\\d\\.]+)\\;version:\\1", + "g6.Graph": "" + }, + "saas": true, + "pricing": [ + "freemium" + ], + "website": "https://g6.antv.vision" + }, "AnyClip": { "cats": [ 36 @@ -2616,6 +2697,7 @@ "cats": [ 59 ], + "description": "Apollo is a fully-featured caching GraphQL client with integrations for React, Angular, and more.", "dom": "script#__APOLLO_STATE__", "icon": "Apollo.svg", "implies": [ @@ -2647,10 +2729,20 @@ "cats": [ 1 ], - "html": "<[^>]+data-apos-refreshable[^>]", + "description": "ApostropheCMS is a powerful website builder platform built on an enterprise open source CMS.", "icon": "ApostropheCMS.svg", "implies": "Node.js", - "website": "http://apostrophecms.org" + "js": { + "APOS_DIALOGS.dialogAttributes": "", + "apos.csrfCookieName": "" + }, + "pricing": [ + "freemium", + "mid", + "recurring" + ], + "saas": true, + "website": "https://apostrophecms.com" }, "AppDynamics": { "cats": [ @@ -2743,7 +2835,8 @@ "ApplePay": "", "checkout.enabledpayments.applepay": "^true$", "dw.applepay": "", - "enableApplePay": "" + "enableApplePay": "", + "braintree.applePay": "" }, "website": "https://www.apple.com/apple-pay" }, @@ -2760,20 +2853,37 @@ "text": "(Sign (in|up)|Log in|Continue) with Apple" } }, - "html": "]*appleid-signin-client-id", "icon": "Apple.svg", "js": { "AppleID": "" }, + "meta": { + "appleid-signin-client-id": "" + }, "scriptSrc": "appleid\\.auth\\.js", "website": "https://developer.apple.com/sign-in-with-apple/" }, + "ApplicantStack": { + "cats": [ + 101 + ], + "description": "ApplicantStack is a full-service applicant tracking system that automates and streamlines all stages of the hiring process.", + "icon": "ApplicantStack.png", + "dom":"a[href*='.applicantstack.com/']", + "scriptSrc": "\\.applicantstack\\.com/", + "saas": true, + "pricing": [ + "mid", + "recurring" + ], + "website": "https://www.applicantstack.com" + }, "Appointy": { "cats": [ 72 ], - "description": "Appointy’s online scheduling software.", - "html": "]+src=\"?https://[\\w\\d\\-]+\\.appointy\\.com", + "description": "Appointy is a cloud-based scheduling solution that helps professionals and businesses to manage their appointment scheduling activities and routines.", + "dom": "a[href*='.appointy.com/'][target='_blank'], iframe[src*='.appointy.com/']", "icon": "Appointy.png", "pricing": [ "low", @@ -2854,14 +2964,19 @@ 6 ], "cpe": "cpe:/a:arastta:ecommerce", + "description": "Arastta is a free and open-source project with contributors from all over the world.", "excludes": "OpenCart", "headers": { "Arastta": "^(.+)$\\;version:\\1", - "X-Arastta": "" + "X-Arastta": "", + "x-arastta": "" }, - "html": "Powered by ]*href=\"https?://(?:www\\.)?arastta\\.org[^>]+>Arastta", "icon": "Arastta.svg", "implies": "PHP", + "oss": true, + "pricing": [ + "freemium" + ], "scriptSrc": "arastta\\.js", "website": "http://arastta.org" }, @@ -2885,16 +3000,24 @@ "website": "https://arc.io", "xhr": "\\.arc\\.io" }, - "Arc Publishing": { + "Arc XP": { "cats": [ - 1 + 1, + 95 ], - "html": "
]*id=\"pb-root\"", - "icon": "Arc-Publishing.svg", + "description": "Arc XP is a cloud-based digital experience platform that helps enterprise companies, retail brands and media and entertainment organization create and distribute content, drive digital commerce, and deliver powerful experiences.", + "dom": "#pb-root", + "icon": "Arc XP.svg", "js": { "Fusion.arcSite": "" }, - "website": "https://www.arcpublishing.com/" + "pricing": [ + "recurring", + "poa", + "high" + ], + "saas": true, + "website": "https://www.arcxp.com" }, "ArcGIS API for JavaScript": { "cats": [ @@ -2970,6 +3093,16 @@ }, "website": "http://www.arvancloud.com" }, + "Asana": { + "cats": [ + 13 + ], + "description": "Asana is a web and mobile application designed to help teams organize, track, and manage their work.", + "dom": "a[href*='form.asana.com'], a[href*='app.asana.com']", + "icon": "Asana.svg", + "saas": true, + "website": "https://asana.com" + }, "AsciiDoc": { "cats": [ 1, @@ -3033,26 +3166,6 @@ "scriptSrc": "themes/astra\\S*\\.js(?:\\?ver=([0-9.]+))?\\;version:\\1", "website": "https://wpastra.com/" }, - "Astro": { - "cats": [ - 57, - 12 - ], - "description": "Astro is a new JavaScript-based static site builder.", - "icon": "Astro.svg", - "dom": { - "link[href*='/_astro/']": { - "attributes": { - "href": "/_astro/(?:common|index)-[\\d\\w]+\\.css" - } - } - }, - "oss": true, - "pricing": [ - "freemium" - ], - "website": "https://astro.build" - }, "Astra Widgets": { "cats": [ 87, @@ -3076,6 +3189,26 @@ ], "website": "https://wpastra.com/did-you-know-astra-is-widget-ready" }, + "Astro": { + "cats": [ + 57, + 12 + ], + "description": "Astro is a new JavaScript-based static site builder.", + "dom": { + "link[href*='/_astro/']": { + "attributes": { + "href": "/_astro/(?:common|index)-[\\d\\w]+\\.css" + } + } + }, + "icon": "Astro.svg", + "oss": true, + "pricing": [ + "freemium" + ], + "website": "https://astro.build" + }, "Astute Solutions": { "cats": [ 53 @@ -3274,15 +3407,18 @@ "cats": [ 12 ], - "html": [ - "<[^>]+aurelia-app=[^>]", - "<[^>]+data-main=[^>]aurelia-bootstrapper", - "<[^>]+au-target-id=[^>]\\d" - ], + "description": "Aurelia is an open-source UI JavaScript framework designed to create single page applications.", + "dom": "div[aurelia-app], body[aurelia-app], a[au-target-id]", "icon": "Aurelia.svg", - "scriptSrc": [ - "aurelia(?:\\.min)?\\.js" + "js": { + "_aureliaConfigureModuleLoader": "", + "localAurelia": "" + }, + "oss": true, + "pricing": [ + "freemium" ], + "scriptSrc": "/aurelia[\\d\\w\\-\\.]+\\.js", "website": "http://aurelia.io" }, "Auryc": { @@ -3373,14 +3509,16 @@ "cats": [ 6 ], - "html": "]* href=\"https?://edge\\.avangate\\.net/", + "description": "Avangate (2Checkout) is a digital ecommerce platform for businesses that sell physical goods or digital products.", "icon": "Avangate.svg", + "implies": "Verifone 2Checkout", "js": { - "__avng8_": "", - "avng8_": "" + "AvaCart.version": "(.+)\\;version:\\1", + "__avng8_callbacks": "", + "avaSlugify": "" }, "scriptSrc": "^https?://edge\\.avangate\\.net/", - "website": "http://avangate.com" + "website": "https://www.2checkout.com" }, "Avasize": { "cats": [ @@ -3735,15 +3873,5 @@ "icon": "augmented-ui.png", "oss": true, "website": "http://augmented-ui.com" - }, - "Asana": { - "cats": [ - 13 - ], - "description": "Asana is a web and mobile application designed to help teams organize, track, and manage their work.", - "dom": "a[href*='form.asana.com'], a[href*='app.asana.com']", - "icon": "Asana.svg", - "saas": true, - "website": "https://asana.com" } -} +} \ No newline at end of file diff --git a/src/technologies/b.json b/src/technologies/b.json index b98fc18f7..4ef32210e 100644 --- a/src/technologies/b.json +++ b/src/technologies/b.json @@ -13,21 +13,27 @@ "cats": [ 12 ], + "description": "BEM (Block, Element, Modifier) is a naming convention for classes in HTML and CSS what was developed by Yandex.", "html": "<[^>]+data-bem", "icon": "BEM.png", + "oss": true, + "pricing": [ + "freemium" + ], "website": "http://en.bem.info" }, "BIGACE": { "cats": [ 1 ], - "html": "(?:Powered by ]+BIGACE|", - "icon": "yahoo.png", + "icon": "Yahoo.svg", "scriptSrc": "b\\.yjtag\\.jp/iframe", "website": "https://tagmanager.yahoo.co.jp/" }, + "Yampi Virtual store": { + "cats": [ + 6 + ], + "description": "Yampi Virtual store is an ecommerce platform from Brazil.", + "icon": "Yampi.svg", + "implies": "Yampi Checkout", + "js": { + "Yampi.api_domain": "", + "Yampi.cart_token": "" + }, + "scriptSrc": "cdn\\.yampi\\.io/", + "saas": true, + "pricing": [ + "recurring", + "poa" + ], + "website": "https://www.yampi.com.br/loja-virtual" + }, + "Yampi Checkout": { + "cats": [ + 41 + ], + "description": "Yampi Checkout is an payment processor from Brazil.", + "icon": "Yampi.svg", + "js": { + "yampiCheckoutUrl": "" + }, + "saas": true, + "pricing": [ + "payg" + ], + "website": "https://www.yampi.com.br/checkout" + }, "Yahoo! Web Analytics": { "cats": [ 10 ], - "icon": "yahoo.png", + "icon": "Yahoo.svg", "js": { "YWA": "" }, diff --git a/src/technologies/z.json b/src/technologies/z.json index 53b23a970..c14090ed7 100644 --- a/src/technologies/z.json +++ b/src/technologies/z.json @@ -40,6 +40,59 @@ "url": "\\/zabbix\\/\\;confidence:30", "website": "http://zabbix.com" }, + "Zakeke": { + "cats": [ + 76 + ], + "description": "Zakeke is a product customisation tool compatible with services and apps mostly used to manage ecommerce store.", + "icon": "Zakeke.png", + "js": { + "zakekeBoot": "", + "zakekeCustomizeLabel": "", + "zakekeLoading": "", + "zakekeProductPage": "" + }, + "pricing": [ + "recurring", + "low" + ], + "saas": true, + "website": "https://www.zakeke.com" + }, + "Zakeke Interactive Product Designer": { + "cats": [ + 87, + 76 + ], + "description": "Zakeke Interactive Product Designer lets customers personalise any product and visualise how they’ll look before checking out.", + "icon": "Zakeke.png", + "implies": "Zakeke", + "pricing": [ + "recurring", + "low" + ], + "requires": "WooCommerce", + "saas": true, + "scriptSrc": "/wp-content/plugins/zakeke-interactive-product-designer/.+\\.js(?:\\?ver=(\\d+(?:\\.\\d+)+))?\\;version:\\1", + "website": "https://www.zakeke.com" + }, + "Zakeke Visual Customizer": { + "cats": [ + 100, + 76 + ], + "description": "Zakeke Visual Customizer is a cloud-connected visual ecommerce tool that allows brands and retailers to offer live, personalised, 2D, 3D, and augmented reality (AR) functionality for their products.", + "icon": "Zakeke.png", + "implies": "Zakeke", + "pricing": [ + "recurring", + "low" + ], + "requires": "Shopify", + "saas": true, + "scriptSrc": "\\.zakeke\\.com/Scripts/integration/shopify/", + "website": "https://www.zakeke.com" + }, "Zakra": { "cats": [ 80 diff --git a/src/wappalyzer.js b/src/wappalyzer.js index 65bbae6c0..a4481b4fa 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -554,10 +554,17 @@ const Wappalyzer = { return technology[type].reduce((technologies, pattern) => { const startTime = Date.now() - if (pattern.regex.test(value)) { + const matches = pattern.regex.exec(value) + + if (matches) { technologies.push({ technology, - pattern, + pattern: { + ...pattern, + type, + value, + match: matches[0], + }, version: Wappalyzer.resolveVersion(pattern, value), }) } @@ -581,10 +588,17 @@ const Wappalyzer = { patterns.forEach((pattern) => { const startTime = Date.now() - if (pattern.regex.test(value)) { + const matches = pattern.regex.exec(value) + + if (matches) { technologies.push({ technology, - pattern, + pattern: { + ...pattern, + type, + value, + match: matches[0], + }, version: Wappalyzer.resolveVersion(pattern, value), }) } @@ -618,10 +632,17 @@ const Wappalyzer = { values.forEach((value) => { const startTime = Date.now() - if (pattern.regex.test(value)) { + const matches = pattern.regex.exec(value) + + if (matches) { technologies.push({ technology, - pattern, + pattern: { + ...pattern, + type, + value, + match: matches[0], + }, version: Wappalyzer.resolveVersion(pattern, value), }) }