diff --git a/src/drivers/npm/driver.js b/src/drivers/npm/driver.js index 11e443013..db5a64de6 100644 --- a/src/drivers/npm/driver.js +++ b/src/drivers/npm/driver.js @@ -497,11 +497,8 @@ class Site { async goto(url) { // Return when the URL is a duplicate or maxUrls has been reached - if ( - this.analyzedUrls[url.href] || - Object.keys(this.analyzedUrls).length >= this.options.maxUrls - ) { - return + if (this.analyzedUrls[url.href]) { + return [] } this.log(`Navigate to ${url}`, 'page') @@ -958,14 +955,23 @@ class Site { await Promise.all([ (async () => { - const links = await this.goto(url) + const links = ((await this.goto(url)) || []).filter( + ({ href }) => !this.analyzedUrls[href] + ) if ( - links && + links.length && this.options.recursive && + Object.keys(this.analyzedUrls).length < this.options.maxUrls && depth < this.options.maxDepth ) { - await this.batch(links.slice(0, this.options.maxUrls), depth + 1) + await this.batch( + links.slice( + 0, + this.options.maxUrls - Object.keys(this.analyzedUrls).length + ), + depth + 1 + ) } })(), (async () => { diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json index ccdb25e92..c7a76e941 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.2", + "version": "6.9.5", "author": "Wappalyzer", "license": "MIT", "repository": { diff --git a/src/drivers/webextension/images/icons/Remix.png b/src/drivers/webextension/images/icons/Remix.png deleted file mode 100644 index cb004db69..000000000 Binary files a/src/drivers/webextension/images/icons/Remix.png and /dev/null differ diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index 2800c07e7..49a2817d7 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.2", + "version": "6.9.5", "default_locale": "en", "manifest_version": 2, "icons": { @@ -78,4 +78,4 @@ "https://*/*" ], "content_security_policy": "script-src 'self'; object-src 'self'" -} +} \ No newline at end of file diff --git a/src/package.json b/src/package.json index 876f3cd90..49cc5ea52 100644 --- a/src/package.json +++ b/src/package.json @@ -13,7 +13,7 @@ "software" ], "homepage": "https://www.wappalyzer.com/", - "version": "6.9.2", + "version": "6.9.5", "author": "Wappalyzer", "license": "MIT", "repository": { diff --git a/src/technologies/_.json b/src/technologies/_.json index 110e6084d..db32c951b 100644 --- a/src/technologies/_.json +++ b/src/technologies/_.json @@ -61,10 +61,10 @@ 88 ], "description": "34SP.com specialises in website hosting, discount domain names, low cost VPS servers and dedicated servers.", - "icon": "34SP.com.svg", "dns": { "SOA": "ns(?:\\d+)?\\.34sp\\.com" }, + "icon": "34SP.com.svg", "pricing": [ "recurring", "low" diff --git a/src/technologies/a.json b/src/technologies/a.json index 0276a9c34..fcb2f5116 100644 --- a/src/technologies/a.json +++ b/src/technologies/a.json @@ -77,6 +77,21 @@ "scriptSrc": "\\.ebis\\.ne\\.jp/", "website": "http://www.ebis.ne.jp" }, + "ALL-INKL": { + "cats": [ + 88 + ], + "description": "ALL-INKL is a German-based web hosting provider that promises to offer high-performance services for fair prices.", + "dns": { + "SOA": "\\.kasserver\\.com" + }, + "icon": "ALL-INKL.png", + "pricing": [ + "low", + "recurring" + ], + "website": "https://all-inkl.com" + }, "AMP": { "cats": [ 12 @@ -96,12 +111,12 @@ 87 ], "description": "AMP for WordPress automatically adds Accelerated Mobile Pages (Google AMP Project) functionality to your WordPress site.", + "dom": "link[href*='/wp-content/plugins/amp/']", "icon": "Accelerated-Mobile-Pages.svg", "implies": "AMP", "meta": { "generator": "^AMP Plugin v(\\d+\\.\\d+.*)$\\;version:\\1" }, - "dom": "link[href*='/wp-content/plugins/amp/']", "requires": "WordPress", "website": "https://amp-wp.org" }, @@ -144,6 +159,19 @@ "text": "\\APC\\b", "website": "https://www.apc-pli.com" }, + "ARI Network Services": { + "cats": [ + 6 + ], + "description": "ARI Network Services provides website, software, and data solutions to help dealers, distributors, and OEMs improve their selling process.", + "icon": "ARI Network Services.png", + "pricing": [ + "poa" + ], + "saas": true, + "scriptSrc": "\\.ari-secure\\.com/", + "website": "https://arinet.com" + }, "AT Internet Analyzer": { "cats": [ 10 @@ -335,12 +363,12 @@ 5 ], "description": "AccuWeather provides weather forecasts and warnings and additional weather products and services.", - "icon": "AccuWeather.svg", "dom": "a[href*='.accuweather.com'][target='_blank']", - "saas": true, + "icon": "AccuWeather.svg", "pricing": [ "poa" ], + "saas": true, "website": "https://partners.accuweather.com" }, "Ackee": { @@ -606,19 +634,6 @@ "scriptSrc": "\\.adlightning\\.com", "website": "https://www.adlightning.com" }, - "Adloox": { - "cats": [ - 36 - ], - "description": "Adloox is a European-born buy-side ad verification and insights company.", - "icon": "Adloox.png", - "pricing": [ - "poa" - ], - "saas": true, - "scriptSrc": "\\.adlooxtracking\\.com/", - "website": "https://www.adloox.com" - }, "AdBridg": { "cats": [ 36 @@ -678,8 +693,8 @@ 77 ], "description": "AdRoll is a digital marketing technology platform that specializes in retargeting.", - "icon": "AdRoll.svg", "dom": "link[href*='.adroll.com']", + "icon": "AdRoll.svg", "js": { "adroll_adv_id": "", "adroll_pix_id": "" @@ -863,28 +878,14 @@ "description": "AddToAny Share Buttons plugin for WordPress increases traffic and engagement by helping people share your posts and pages to any service.", "icon": "AddToAny.svg", "implies": "AddToAny", + "oss": true, "pricing": [ "freemium" ], - "oss": true, "requires": "WordPress", "scriptSrc": "/wp-content/plugins/add-to-any/addtoany\\.min\\.js(?:\\?ver=(\\d+(?:\\.\\d+)+))?\\;version:\\1", "website": "https://github.com/projectestac/wordpress-add-to-any" }, - "Adform": { - "cats": [ - 36 - ], - "description": "Adform is an all-in-one platform for digital advertising.", - "icon": "Adform.svg", - "dom": "link[href*='.adformdsp.net'], link[href*='.adform.net']", - "scriptSrc": "\\.adform\\.net/", - "saas": true, - "pricing": [ - "poa" - ], - "website": "https://site.adform.com" - }, "Addi": { "cats": [ 91 @@ -908,6 +909,33 @@ "scriptSrc": "https://addsearch\\.com/js/", "website": "https://www.addsearch.com/" }, + "Adform": { + "cats": [ + 36 + ], + "description": "Adform is an all-in-one platform for digital advertising.", + "dom": "link[href*='.adformdsp.net'], link[href*='.adform.net']", + "icon": "Adform.svg", + "pricing": [ + "poa" + ], + "saas": true, + "scriptSrc": "\\.adform\\.net/", + "website": "https://site.adform.com" + }, + "Adloox": { + "cats": [ + 36 + ], + "description": "Adloox is a European-born buy-side ad verification and insights company.", + "icon": "Adloox.png", + "pricing": [ + "poa" + ], + "saas": true, + "scriptSrc": "\\.adlooxtracking\\.com/", + "website": "https://www.adloox.com" + }, "Adminer": { "cats": [ 3 @@ -946,15 +974,15 @@ "description": "Admixer is an independent adtech company developing an ecosystem of full-stack programmatic solutions.", "icon": "Admixer.svg", "js": { - "admixerML": "", - "admixerAds": "" + "admixerAds": "", + "admixerML": "" }, - "saas": true, "pricing": [ "mid", "recurring", "onetime" ], + "saas": true, "scriptSrc": "\\.admixer\\.net/", "website": "https://admixer.com" }, @@ -963,17 +991,17 @@ 36 ], "description": "Admo.tv is a company developing a TV and radio analytics platform.", - "icon": "Admo.tv.svg", "dom": "link[href*='.admo.tv'], a[href*='.admo.tv'][target='_blank'], iframe[src*='.admo.tv/']", + "icon": "Admo.tv.svg", "js": { - "ADMO_config": "", - "ADMO_TT": "" + "ADMO_TT": "", + "ADMO_config": "" }, - "saas": true, "pricing": [ "mid", "recurring" ], + "saas": true, "website": "https://www.admo.tv" }, "Adnegah": { @@ -1199,17 +1227,6 @@ "scriptSrc": "cdn\\.adligature\\.com/.+/advally-([\\d.]+)\\.js\\;version:\\1", "website": "https://www.advally.com" }, - "Advert Stream": { - "cats": [ - 36 - ], - "icon": "Advert Stream.png", - "js": { - "advst_is_above_the_fold": "" - }, - "scriptSrc": "(?:ad\\.advertstream\\.com|adxcore\\.com)", - "website": "http://www.advertstream.com" - }, "Advanced Custom Fields": { "cats": [ 87 @@ -1229,6 +1246,17 @@ "scriptSrc": "/wp-content/plugins/advanced-custom-fields(?:-pro)?/.+\\.js(?:\\?ver=(\\d+(?:\\.\\d+)+))?\\;version:\\1", "website": "https://www.advancedcustomfields.com" }, + "Advert Stream": { + "cats": [ + 36 + ], + "icon": "Advert Stream.png", + "js": { + "advst_is_above_the_fold": "" + }, + "scriptSrc": "(?:ad\\.advertstream\\.com|adxcore\\.com)", + "website": "http://www.advertstream.com" + }, "Adverticum": { "cats": [ 36 @@ -1318,12 +1346,12 @@ ], "description": "Affiliatly is an affiliate marketing software for ecommerce store owners.", "icon": "Affiliatly.png", - "scriptSrc": "static\\.affiliatly\\.com/", - "saas": true, "pricing": [ "low", "recurring" ], + "saas": true, + "scriptSrc": "static\\.affiliatly\\.com/", "website": "https://www.affiliatly.com" }, "Affirm": { @@ -1429,11 +1457,11 @@ "js": { "Air360.SDK_Version": "^([\\d\\.]+)$\\;version:\\1" }, - "saas": true, "pricing": [ "mid", "recurring" ], + "saas": true, "website": "https://www.air360.io" }, "Aircall": { @@ -1594,8 +1622,8 @@ 87 ], "description": "Akismet is a service that filters spam from comments, trackbacks, and contact form messages.", - "icon": "Akismet.png", "dom": "link[href*='/wp-content/plugins/akismet/']", + "icon": "Akismet.png", "js": { "ak_js.checkValidity": "" }, @@ -1696,10 +1724,10 @@ 29 ], "description": "Algolia offers a hosted web search product delivering real-time results.", - "icon": "Algolia.svg", "headers": { "Content-Security-Policy": "\\.algolia" }, + "icon": "Algolia.svg", "js": { "AlgoliaSearch": "", "__algolia": "", @@ -1724,21 +1752,6 @@ "saas": true, "website": "https://apps.shopify.com/ali-reviews" }, - "ALL-INKL": { - "cats": [ - 88 - ], - "description": "ALL-INKL is a German-based web hosting provider that promises to offer high-performance services for fair prices.", - "icon": "ALL-INKL.png", - "dns": { - "SOA": "\\.kasserver\\.com" - }, - "pricing": [ - "low", - "recurring" - ], - "website": "https://all-inkl.com" - }, "All in One SEO Pack": { "cats": [ 54, @@ -1748,12 +1761,12 @@ "description": "All in One SEO plugin optimizes WordPress website and its content for search engines.", "html": "