From 95656d2dfa297ae8a0ed157f76ffbdb16da6948b Mon Sep 17 00:00:00 2001 From: mlec <42201667+mlec1@users.noreply.github.com> Date: Mon, 15 Jul 2024 16:58:13 +0200 Subject: [PATCH 1/3] refactor: Make all scripts fields an array --- .../workflows/scripts/technology_validator.py | 2 +- schema.json | 15 +++------ src/technologies/a.json | 12 +++++-- src/technologies/b.json | 12 +++++-- src/technologies/c.json | 20 +++++++++--- src/technologies/d.json | 4 ++- src/technologies/e.json | 4 ++- src/technologies/f.json | 4 ++- src/technologies/g.json | 12 +++++-- src/technologies/h.json | 4 ++- src/technologies/j.json | 4 ++- src/technologies/k.json | 4 ++- src/technologies/l.json | 12 +++++-- src/technologies/m.json | 12 +++++-- src/technologies/o.json | 4 ++- src/technologies/p.json | 12 +++++-- src/technologies/q.json | 4 ++- src/technologies/r.json | 8 +++-- src/technologies/s.json | 32 ++++++++++++++----- src/technologies/t.json | 4 ++- src/technologies/u.json | 8 +++-- src/technologies/v.json | 4 ++- src/technologies/w.json | 8 +++-- src/technologies/y.json | 4 ++- 24 files changed, 149 insertions(+), 60 deletions(-) diff --git a/.github/workflows/scripts/technology_validator.py b/.github/workflows/scripts/technology_validator.py index 0011784c..acc8bc96 100644 --- a/.github/workflows/scripts/technology_validator.py +++ b/.github/workflows/scripts/technology_validator.py @@ -253,7 +253,7 @@ def __init__(self, file_name: str): "xhr": StringOrArrayValidator(contains_regex=True), "meta": DictValidator(contains_regex=True), "scriptSrc": ArrayValidator(contains_regex=True), - "scripts": StringOrArrayValidator(contains_regex=True), + "scripts": ArrayValidator(contains_regex=True), "html": ArrayValidator(contains_regex=True), "certIssuer": StringValidator() } diff --git a/schema.json b/schema.json index f4dd4307..4e667292 100644 --- a/schema.json +++ b/schema.json @@ -184,17 +184,10 @@ } }, "scripts": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/non-empty-non-blank-string" - } - }, - { - "$ref": "#/definitions/non-empty-non-blank-string" - } - ] + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } }, "url": { "oneOf": [ diff --git a/src/technologies/a.json b/src/technologies/a.json index dde44288..29c9edde 100644 --- a/src/technologies/a.json +++ b/src/technologies/a.json @@ -468,7 +468,9 @@ "Shopify" ], "saas": true, - "scripts": "\\.accentuate\\.io/", + "scripts": [ + "\\.accentuate\\.io/" + ], "website": "https://www.accentuate.io" }, "AccessTrade": { @@ -1462,7 +1464,9 @@ "payg" ], "saas": true, - "scripts": "admiral(?:-engaged|:enabled)", + "scripts": [ + "admiral(?:-engaged|:enabled)" + ], "website": "https://www.getadmiral.com" }, "Admitad": { @@ -1662,7 +1666,9 @@ "/etc/clientlibs/", "/etc\\.clientlibs/" ], - "scripts": "aem-(?:GridColumn|apps/)", + "scripts": [ + "aem-(?:GridColumn|apps/)" + ], "website": "https://www.adobe.com/marketing/experience-manager.html" }, "Adobe Experience Manager Franklin": { diff --git a/src/technologies/b.json b/src/technologies/b.json index 0025a5a6..db708ffd 100644 --- a/src/technologies/b.json +++ b/src/technologies/b.json @@ -802,7 +802,9 @@ "scriptSrc": [ "(?:\\.|plugins/)?bigcommerce(?:\\.com)?/(?:assets)?" ], - "scripts": "bigcommerceProductId", + "scripts": [ + "bigcommerceProductId" + ], "url": "mybigcommerce\\.com", "website": "https://www.bigcommerce.com" }, @@ -1004,7 +1006,9 @@ "scriptSrc": [ "cdn\\.bitespeed\\.co/" ], - "scripts": "app\\.bitespeed\\.co/", + "scripts": [ + "app\\.bitespeed\\.co/" + ], "website": "https://www.bitespeed.co" }, "Bitrix24": { @@ -2617,7 +2621,9 @@ "recurring" ], "saas": true, - "scripts": "players\\.brightcove\\.net/", + "scripts": [ + "players\\.brightcove\\.net/" + ], "website": "https://www.brightcove.com" }, "Brightspot": { diff --git a/src/technologies/c.json b/src/technologies/c.json index 6dcf1f2b..15d56761 100644 --- a/src/technologies/c.json +++ b/src/technologies/c.json @@ -761,7 +761,9 @@ "Apache HTTP Server" ], "saas": true, - "scripts": "\\(\\!section\\s\\|\\|\\ssection\\.tagName\\s\\!\\=\\s\\'SECTION\\'\\)", + "scripts": [ + "\\(\\!section\\s\\|\\|\\ssection\\.tagName\\s\\!\\=\\s\\'SECTION\\'\\)" + ], "website": "https://carrd.co" }, "Carro": { @@ -1105,7 +1107,9 @@ "poa" ], "saas": true, - "scripts": "centraCheckoutScript", + "scripts": [ + "centraCheckoutScript" + ], "website": "https://centra.com" }, "Chabokan": { @@ -1973,7 +1977,9 @@ "js": { "Classy.clientId": "" }, - "scripts": "classy\\.org", + "scripts": [ + "classy\\.org" + ], "website": "https://www.classy.org/" }, "ClearSale": { @@ -4215,7 +4221,9 @@ "recurring" ], "saas": true, - "scripts": "webpackJsonp@coreui/coreui", + "scripts": [ + "webpackJsonp@coreui/coreui" + ], "website": "https://coreui.io" }, "Corebine": { @@ -4772,7 +4780,9 @@ "scriptSrc": [ "js/crownpeak\\." ], - "scripts": "crownpeak\\.net", + "scripts": [ + "crownpeak\\.net" + ], "website": "https://www.crownpeak.com" }, "Cryout Creations Bravada": { diff --git a/src/technologies/d.json b/src/technologies/d.json index da95bbb0..a430506f 100644 --- a/src/technologies/d.json +++ b/src/technologies/d.json @@ -2068,7 +2068,9 @@ "scriptSrc": [ "drupal\\.js" ], - "scripts": "drupal_internal__nid", + "scripts": [ + "drupal_internal__nid" + ], "website": "https://www.drupal.org/" }, "Drupal Commerce": { diff --git a/src/technologies/e.json b/src/technologies/e.json index 1e9b0b0c..6e98ee38 100644 --- a/src/technologies/e.json +++ b/src/technologies/e.json @@ -1238,7 +1238,9 @@ "Ember.VERSION": "^(.+)$\\;version:\\1", "EmberENV": "" }, - "scripts": "@overview\\s+Ember -[\\s\\S]+@version\\s+(.+)\\;version:\\1", + "scripts": [ + "@overview\\s+Ember -[\\s\\S]+@version\\s+(.+)\\;version:\\1" + ], "website": "https://emberjs.com" }, "Emotion": { diff --git a/src/technologies/f.json b/src/technologies/f.json index e14fee72..8aaca8b3 100644 --- a/src/technologies/f.json +++ b/src/technologies/f.json @@ -2292,7 +2292,9 @@ "poa" ], "saas": true, - "scripts": "x-frc-client\",\"js-(\\d+(\\.\\d+)+)\\;version:\\1", + "scripts": [ + "x-frc-client\",\"js-(\\d+(\\.\\d+)+)\\;version:\\1" + ], "website": "https://friendlycaptcha.com", "xhr": "api.friendlycaptcha.com" }, diff --git a/src/technologies/g.json b/src/technologies/g.json index 53fb9cb8..3b7ee9c2 100644 --- a/src/technologies/g.json +++ b/src/technologies/g.json @@ -1472,7 +1472,9 @@ ], "description": "GoDaddy is used as a web host and domain registrar.", "icon": "GoDaddy.svg", - "scripts": "wsimg\\.com/parking-lander", + "scripts": [ + "wsimg\\.com/parking-lander" + ], "website": "https://www.godaddy.com" }, "GoDaddy Escapade": { @@ -1781,7 +1783,9 @@ "scriptSrc": [ "\\.googleadservices\\.com/pagead/conversion_async\\.js" ], - "scripts": "gtag\\([^)]+'(AW-)", + "scripts": [ + "gtag\\([^)]+'(AW-)" + ], "website": "https://support.google.com/google-ads/answer/1722022" }, "Google Analytics": { @@ -2281,7 +2285,9 @@ "scriptSrc": [ "grafana\\..+\\.com/public/build/" ], - "scripts": ".+latestVersion\":\"[\\d\\.\\w\\-]+\"\\,\"version\":\"([\\d\\.]+)\\;version:\\1\\;confidence:75", + "scripts": [ + ".+latestVersion\":\"[\\d\\.\\w\\-]+\"\\,\"version\":\"([\\d\\.]+)\\;version:\\1\\;confidence:75" + ], "website": "https://grafana.com" }, "Graffiti CMS": { diff --git a/src/technologies/h.json b/src/technologies/h.json index 694efc0f..a2c64f10 100644 --- a/src/technologies/h.json +++ b/src/technologies/h.json @@ -32,7 +32,9 @@ "poa" ], "saas": true, - "scripts": "/webapp/wcs/", + "scripts": [ + "/webapp/wcs/" + ], "url": "/wcs/", "website": "https://www.hcltechsw.com/commerce" }, diff --git a/src/technologies/j.json b/src/technologies/j.json index 3cd741c2..36a4b2f9 100644 --- a/src/technologies/j.json +++ b/src/technologies/j.json @@ -973,7 +973,9 @@ "scriptSrc": [ "/jquery\\.jplayer\\.min\\.js" ], - "scripts": "jquery\\.jplayer\\.min\\.js", + "scripts": [ + "jquery\\.jplayer\\.min\\.js" + ], "website": "https://jplayer.org" }, "jQTouch": { diff --git a/src/technologies/k.json b/src/technologies/k.json index 851d193f..42cf7c11 100644 --- a/src/technologies/k.json +++ b/src/technologies/k.json @@ -275,7 +275,9 @@ "scriptSrc": [ "api\\.kaltura\\.(?:nordu\\.net|com)/" ], - "scripts": "kalturaPlayer", + "scripts": [ + "kalturaPlayer" + ], "website": "https://corp.kaltura.com" }, "Kameleoon": { diff --git a/src/technologies/l.json b/src/technologies/l.json index 72683381..6f96eb3c 100644 --- a/src/technologies/l.json +++ b/src/technologies/l.json @@ -668,7 +668,9 @@ "__LEPTOS_RESOURCE_RESOLVERS": "" }, "oss": true, - "scripts": "export function microtask\\(f\\)\\;confidence:75", + "scripts": [ + "export function microtask\\(f\\)\\;confidence:75" + ], "website": "https://leptos.dev" }, "Less": { @@ -1078,7 +1080,9 @@ "snap\\.licdn\\.com/li\\.lms-analytics/insight\\.min\\.js", "cdn\\.oribi\\.io" ], - "scripts": "_linkedin_partner_id", + "scripts": [ + "_linkedin_partner_id" + ], "website": "https://business.linkedin.com/marketing-solutions/insight-tag" }, "Linkedin Sign-in": { @@ -2064,7 +2068,9 @@ "lozad": "" }, "oss": true, - "scripts": "/lozad\\.min\\.js", + "scripts": [ + "/lozad\\.min\\.js" + ], "website": "https://apoorv.pro/lozad.js/" }, "Lua": { diff --git a/src/technologies/m.json b/src/technologies/m.json index 3994f671..0fd3255b 100644 --- a/src/technologies/m.json +++ b/src/technologies/m.json @@ -977,7 +977,9 @@ "scriptSrc": [ "api\\.mapbox\\.com/mapbox\\.js/v([\\d\\.]+)/\\;version:\\1" ], - "scripts": "api\\.mapbox\\.com/mapbox\\.js/v([\\d\\.]+)/\\;version:\\1", + "scripts": [ + "api\\.mapbox\\.com/mapbox\\.js/v([\\d\\.]+)/\\;version:\\1" + ], "website": "https://github.com/mapbox/mapbox.js" }, "Mapp": { @@ -1212,7 +1214,9 @@ "markoVars": "" }, "oss": true, - "scripts": "\\.marko(\\.js)?", + "scripts": [ + "\\.marko(\\.js)?" + ], "website": "https://markojs.com" }, "Master Slider": { @@ -3801,7 +3805,9 @@ "description": "mdBook is a utility to create modern online books from Markdown files.", "icon": "mdBook.svg", "oss": true, - "scripts": "localStorage\\.getItem\\('mdbook-(?:sidebar|theme)'\\)", + "scripts": [ + "localStorage\\.getItem\\('mdbook-(?:sidebar|theme)'\\)" + ], "website": "https://github.com/rust-lang/mdBook" }, "metisMenu": { diff --git a/src/technologies/o.json b/src/technologies/o.json index 28068916..2e5b8a93 100644 --- a/src/technologies/o.json +++ b/src/technologies/o.json @@ -1381,7 +1381,9 @@ "requires": [ "Drupal" ], - "scripts": "opigno_(?:commerce|wtp_app|scorm|learning_path)", + "scripts": [ + "opigno_(?:commerce|wtp_app|scorm|learning_path)" + ], "website": "https://www.opigno.org" }, "OpinionLab": { diff --git a/src/technologies/p.json b/src/technologies/p.json index ff2c0ce8..114213c0 100644 --- a/src/technologies/p.json +++ b/src/technologies/p.json @@ -196,7 +196,9 @@ "fetchRootComponent": "\\;confidence:50" }, "oss": true, - "scripts": "RootCmp_CMS_PAGE", + "scripts": [ + "RootCmp_CMS_PAGE" + ], "website": "https://developer.adobe.com/commerce/pwa-studio/" }, "Pace": { @@ -571,7 +573,9 @@ "js": { "pcrewAdloaded": "" }, - "scripts": "var\\slink\\s=\\s'www\\.parkingcrew\\.net'", + "scripts": [ + "var\\slink\\s=\\s'www\\.parkingcrew\\.net'" + ], "website": "https://www.parkingcrew.com" }, "Parmin Cloud": { @@ -4253,7 +4257,9 @@ "scriptSrc": [ "/petite-vue" ], - "scripts": "/petite-vue@([\\d\\.]+)/\\;version:\\1", + "scripts": [ + "/petite-vue@([\\d\\.]+)/\\;version:\\1" + ], "website": "https://github.com/vuejs/petite-vue" }, "phpAlbum": { diff --git a/src/technologies/q.json b/src/technologies/q.json index d6fbddfd..708d615b 100644 --- a/src/technologies/q.json +++ b/src/technologies/q.json @@ -489,7 +489,9 @@ }, "icon": "qiankun.svg", "oss": true, - "scripts": "__POWERED_BY_QIANKUN__", + "scripts": [ + "__POWERED_BY_QIANKUN__" + ], "website": "https://qiankun.umijs.org" } } \ No newline at end of file diff --git a/src/technologies/r.json b/src/technologies/r.json index e308df53..9d75f238 100644 --- a/src/technologies/r.json +++ b/src/technologies/r.json @@ -1030,7 +1030,9 @@ "requires": [ "Shopify" ], - "scripts": "\"(?:vendor|title)?\"\\:\"Recurate\"", + "scripts": [ + "\"(?:vendor|title)?\"\\:\"Recurate\"" + ], "website": "https://www.recurate.com" }, "Recurly": { @@ -2817,7 +2819,9 @@ "recaptcha_ajax\\.js", "/recaptcha/(?:api|enterprise)\\.js" ], - "scripts": "/recaptcha/api\\.js", + "scripts": [ + "/recaptcha/api\\.js" + ], "website": "https://www.google.com/recaptcha/" } } \ No newline at end of file diff --git a/src/technologies/s.json b/src/technologies/s.json index 41f358e3..9c30a6c5 100644 --- a/src/technologies/s.json +++ b/src/technologies/s.json @@ -308,7 +308,9 @@ "scriptSrc": [ "embed\\.sendtonews\\.com/" ], - "scripts": "embed\\.sendtonews\\.com/", + "scripts": [ + "embed\\.sendtonews\\.com/" + ], "website": "https://www.stnvideo.com" }, "STUDIO": { @@ -2319,7 +2321,9 @@ "sheerid": "" }, "saas": true, - "scripts": "\"sheerIdEndpoint\":", + "scripts": [ + "\"sheerIdEndpoint\":" + ], "website": "https://www.sheerid.com/" }, "Shelf": { @@ -2820,7 +2824,9 @@ "sdks\\.shopifycdn\\.com", "cdn\\.shopify\\.com" ], - "scripts": "shopifyTag", + "scripts": [ + "shopifyTag" + ], "url": "^https?//.+\\.myshopify\\.com", "website": "https://shopify.com", "xhr": "\\.myshopify\\.com" @@ -4261,7 +4267,9 @@ "js": { "Ktag_Constants": "" }, - "scripts": "\\.xg4ken\\.com", + "scripts": [ + "\\.xg4ken\\.com" + ], "website": "https://skai.io" }, "Skedify": { @@ -5620,7 +5628,9 @@ "poa" ], "saas": true, - "scripts": "SOURCEPOINT_MMS_DOMAIN", + "scripts": [ + "SOURCEPOINT_MMS_DOMAIN" + ], "website": "https://sourcepoint.com" }, "Sovrn": { @@ -5717,7 +5727,9 @@ "onetime", "low" ], - "scripts": "media\\-library\\-pro\\-core", + "scripts": [ + "media\\-library\\-pro\\-core" + ], "website": "https://medialibrary.pro" }, "Spatie Support Bubble": { @@ -5807,7 +5819,9 @@ "/speedsize(?:-sw)?\\.js\\;confidence:90", "\\.speedsize\\.com/" ], - "scripts": "data-speedsize-(?:srcset|src|params)?", + "scripts": [ + "data-speedsize-(?:srcset|src|params)?" + ], "website": "https://speedsize.com" }, "Speedimize": { @@ -7020,7 +7034,9 @@ "Ruby on Rails", "Stimulus" ], - "scripts": "\\.stimulate", + "scripts": [ + "\\.stimulate" + ], "website": "https://docs.stimulusreflex.com" }, "Stitches": { diff --git a/src/technologies/t.json b/src/technologies/t.json index baf6f2c2..c2dd3c85 100644 --- a/src/technologies/t.json +++ b/src/technologies/t.json @@ -959,7 +959,9 @@ "Cart Functionality" ], "saas": true, - "scripts": "\\.tebexLogin", + "scripts": [ + "\\.tebexLogin" + ], "website": "https://www.tebex.io" }, "Telescope": { diff --git a/src/technologies/u.json b/src/technologies/u.json index 90036656..c81dd411 100644 --- a/src/technologies/u.json +++ b/src/technologies/u.json @@ -339,7 +339,9 @@ "low" ], "saas": true, - "scripts": "/Umbraco/Api/", + "scripts": [ + "/Umbraco/Api/" + ], "url": "/umbraco/login\\.aspx(?:$|\\?)", "website": "https://umbraco.com/", "xhr": "/umbraco/api/" @@ -374,7 +376,9 @@ "recurring" ], "saas": true, - "scripts": "isPriorBlockingEnabled\\;confidence:75", + "scripts": [ + "isPriorBlockingEnabled\\;confidence:75" + ], "website": "https://www.umso.com" }, "Unas": { diff --git a/src/technologies/v.json b/src/technologies/v.json index aef0a7e5..ede1932d 100644 --- a/src/technologies/v.json +++ b/src/technologies/v.json @@ -459,7 +459,9 @@ "payg" ], "saas": true, - "scripts": "2checkout\\.com", + "scripts": [ + "2checkout\\.com" + ], "website": "https://www.2checkout.com" }, "VerifyPass": { diff --git a/src/technologies/w.json b/src/technologies/w.json index dc9b636b..fff4c3e9 100644 --- a/src/technologies/w.json +++ b/src/technologies/w.json @@ -1359,7 +1359,9 @@ "freemium", "low" ], - "scripts": "cdn\\.webpushr\\.com/app\\.min\\.js", + "scripts": [ + "cdn\\.webpushr\\.com/app\\.min\\.js" + ], "website": "https://www.webpushr.com" }, "Webriti Busiprof": { @@ -2754,7 +2756,9 @@ "scriptSrc": [ "web-vitals@([\\d.]+)/dist/web-vitals.*\\.js\\;version:\\1" ], - "scripts": "(8999999999999[\\s\\S]+1e12[\\s\\S]+(largest-contentful-paint|first-input|layout-shift)|(largest-contentful-paint|first-input|layout-shift)[\\s\\S]+8999999999999[\\s\\S]+1e12)", + "scripts": [ + "(8999999999999[\\s\\S]+1e12[\\s\\S]+(largest-contentful-paint|first-input|layout-shift)|(largest-contentful-paint|first-input|layout-shift)[\\s\\S]+8999999999999[\\s\\S]+1e12)" + ], "website": "https://github.com/GoogleChrome/web-vitals" }, "webEdition": { diff --git a/src/technologies/y.json b/src/technologies/y.json index d371f329..42df5170 100644 --- a/src/technologies/y.json +++ b/src/technologies/y.json @@ -622,7 +622,9 @@ "pricing": [ "onetime" ], - "scripts": "console\\.log\\(\\'Yoori-Ecommerce", + "scripts": [ + "console\\.log\\(\\'Yoori-Ecommerce" + ], "website": "https://spagreen.net/yoori-ecommerce-solution" }, "Yotpo Loyalty & Referrals": { From a17ebb595f70b4828dd94e8a48317c64f5b64927 Mon Sep 17 00:00:00 2001 From: mlec <42201667+mlec1@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:00:45 +0200 Subject: [PATCH 2/3] refactor: Make all url fields an array --- .../workflows/scripts/technology_validator.py | 2 +- schema.json | 15 +++------ src/technologies/a.json | 32 ++++++++++++++----- src/technologies/b.json | 24 ++++++++++---- src/technologies/c.json | 16 +++++++--- src/technologies/d.json | 8 +++-- src/technologies/e.json | 8 +++-- src/technologies/f.json | 8 +++-- src/technologies/g.json | 24 ++++++++++---- src/technologies/h.json | 24 ++++++++++---- src/technologies/j.json | 8 +++-- src/technologies/k.json | 8 +++-- src/technologies/l.json | 8 +++-- src/technologies/m.json | 20 +++++++++--- src/technologies/n.json | 12 +++++-- src/technologies/o.json | 8 +++-- src/technologies/p.json | 20 +++++++++--- src/technologies/r.json | 16 +++++++--- src/technologies/s.json | 24 ++++++++++---- src/technologies/t.json | 20 +++++++++--- src/technologies/u.json | 8 +++-- src/technologies/v.json | 8 +++-- src/technologies/w.json | 8 +++-- src/technologies/z.json | 4 ++- 24 files changed, 242 insertions(+), 91 deletions(-) diff --git a/.github/workflows/scripts/technology_validator.py b/.github/workflows/scripts/technology_validator.py index acc8bc96..1c5e3213 100644 --- a/.github/workflows/scripts/technology_validator.py +++ b/.github/workflows/scripts/technology_validator.py @@ -249,7 +249,7 @@ def __init__(self, file_name: str): "css": ArrayValidator(contains_regex=True), "probe": DictValidator(), "robots": ArrayValidator(), - "url": StringOrArrayValidator(contains_regex=True), + "url": ArrayValidator(contains_regex=True), "xhr": StringOrArrayValidator(contains_regex=True), "meta": DictValidator(contains_regex=True), "scriptSrc": ArrayValidator(contains_regex=True), diff --git a/schema.json b/schema.json index 4e667292..f6144296 100644 --- a/schema.json +++ b/schema.json @@ -190,17 +190,10 @@ } }, "url": { - "oneOf": [ - { - "type": "array", - "items": { - "$ref": "#/definitions/non-empty-non-blank-string" - } - }, - { - "$ref": "#/definitions/non-empty-non-blank-string" - } - ] + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } }, "website": { "$ref": "#/definitions/non-empty-non-blank-string" diff --git a/src/technologies/a.json b/src/technologies/a.json index 29c9edde..e417fbce 100644 --- a/src/technologies/a.json +++ b/src/technologies/a.json @@ -674,7 +674,9 @@ "scriptSrc": [ "https?:\\/\\/.+\\.web\\.ahdev\\.cloud" ], - "url": "https:?\\/\\/.+\\.web\\.ahdev\\.cloud", + "url": [ + "https:?\\/\\/.+\\.web\\.ahdev\\.cloud" + ], "website": "https://www.acquia.com/products/drupal-cloud/cloud-ide" }, "Acquia Cloud Platform": { @@ -747,7 +749,9 @@ "scriptSrc": [ "content-hub\\.acquia\\.com" ], - "url": "https?:\\/\\/.+\\.content-hub\\.acquia\\.com", + "url": [ + "https?:\\/\\/.+\\.content-hub\\.acquia\\.com" + ], "website": "https://www.acquia.com/products/drupal-cloud/content-hub" }, "Acquia Customer Data Platform": { @@ -1273,7 +1277,9 @@ "scriptSrc": [ "^[^\\/]*//(?:[^\\/]+\\.)?adcash\\.com/(?:script|ad)/" ], - "url": "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_", + "url": [ + "^https?://(?:[^\\/]+\\.)?adcash\\.com/script/pop_" + ], "website": "https://adcash.com" }, "AddEvent": { @@ -1614,7 +1620,9 @@ "scriptSrc": [ "/cfajax/" ], - "url": "\\.cfm(?:$|\\?)", + "url": [ + "\\.cfm(?:$|\\?)" + ], "website": "https://adobe.com/products/coldfusion-family.html" }, "Adobe DTM": { @@ -2090,7 +2098,9 @@ "payg" ], "saas": true, - "url": "https.+\\.returnscenter\\.com", + "url": [ + "https.+\\.returnscenter\\.com" + ], "website": "https://www.aftership.com/returns" }, "Afterpay": { @@ -3737,7 +3747,9 @@ "poa" ], "saas": true, - "url": "https.+\\.imodules\\.com/s/", + "url": [ + "https.+\\.imodules\\.com/s/" + ], "website": "https://www.anthology.com/products/lifecycle-engagement/alumni-and-advancement/anthology-encompass" }, "AntiBot.Cloud": { @@ -3848,7 +3860,9 @@ "scriptSrc": [ "jspwiki" ], - "url": "wiki\\.jsp", + "url": [ + "wiki\\.jsp" + ], "website": "https://jspwiki.org" }, "Apache Tomcat": { @@ -5570,7 +5584,9 @@ "implies": [ "Azure" ], - "url": "https.+\\.b2clogin\\.com", + "url": [ + "https.+\\.b2clogin\\.com" + ], "website": "https://azure.microsoft.com/en-us/services/active-directory/external-identities/b2c/" }, "Azure CDN": { diff --git a/src/technologies/b.json b/src/technologies/b.json index db708ffd..d2aaed5b 100644 --- a/src/technologies/b.json +++ b/src/technologies/b.json @@ -805,7 +805,9 @@ "scripts": [ "bigcommerceProductId" ], - "url": "mybigcommerce\\.com", + "url": [ + "mybigcommerce\\.com" + ], "website": "https://www.bigcommerce.com" }, "BigCommerce B2B Edition": { @@ -910,7 +912,9 @@ "implies": [ "PHP" ], - "url": "(?:\\?|&)bigWAdminID=", + "url": [ + "(?:\\?|&)bigWAdminID=" + ], "website": "https://bigware.de" }, "Bikayi": { @@ -1075,7 +1079,9 @@ "scriptSrc": [ "js/convio/modules\\.js" ], - "url": "/site/Donation2?.*df_id=", + "url": [ + "/site/Donation2?.*df_id=" + ], "website": "https://www.blackbaud.com" }, "Blade": { @@ -1241,7 +1247,9 @@ "meta": { "generator": "^Blogger$" }, - "url": "^https?://[^/]+\\.(?:blogspot|blogger)\\.com", + "url": [ + "^https?://[^/]+\\.(?:blogspot|blogger)\\.com" + ], "website": "https://www.blogger.com" }, "Bloomreach": { @@ -1963,7 +1971,9 @@ "scriptSrc": [ "cdn\\.bookero\\.pl" ], - "url": "\\.bookero\\.(?:org|pl)", + "url": [ + "\\.bookero\\.(?:org|pl)" + ], "website": "https://www.bookero.org" }, "Booking.com": { @@ -3042,7 +3052,9 @@ 1 ], "icon": "Google.svg", - "url": "https?://[^.]+\\.business\\.page", + "url": [ + "https?://[^.]+\\.business\\.page" + ], "website": "https://businesswebsites.google.com/welcome" }, "ButterCMS": { diff --git a/src/technologies/c.json b/src/technologies/c.json index 15d56761..469bb9eb 100644 --- a/src/technologies/c.json +++ b/src/technologies/c.json @@ -835,7 +835,9 @@ "scriptSrc": [ "googlecommerce\\.com/trustedstores/api/js" ], - "url": "/(?:cart|order|basket|trolley|bag|shoppingbag|checkout)", + "url": [ + "/(?:cart|order|basket|trolley|bag|shoppingbag|checkout)" + ], "website": "https://www.wappalyzer.com/technologies/ecommerce/cart-functionality" }, "Cart.com": { @@ -1914,7 +1916,9 @@ "Application Request Routing", "Java" ], - "url": "\\.[\\w]+/fmi/webd/", + "url": [ + "\\.[\\w]+/fmi/webd/" + ], "website": "https://www.claris.com/filemaker" }, "Clarity": { @@ -2849,7 +2853,9 @@ "\\/(?:coinhive|(authedmine))(?:\\.min)?\\.js\\;version:\\1?opt-in:", "coinhive\\.com/lib" ], - "url": "https?://cnhv\\.co/", + "url": [ + "https?://cnhv\\.co/" + ], "website": "https://coinhive.com" }, "CoinHive Captcha": { @@ -3256,7 +3262,9 @@ "cdn\\.chec\\.io/v(\\d+)/commerce\\.js\\;version:\\1", "chec/commerce\\.js" ], - "url": "\\.spaces.chec\\.io", + "url": [ + "\\.spaces.chec\\.io" + ], "website": "https://www.commercejs.com" }, "Commerce7": { diff --git a/src/technologies/d.json b/src/technologies/d.json index a430506f..1e707ee0 100644 --- a/src/technologies/d.json +++ b/src/technologies/d.json @@ -764,7 +764,9 @@ "Server": "^Deta$" }, "icon": "deta.svg", - "url": "^https?://[^/]+\\.deta\\.(?:app|dev)", + "url": [ + "^https?://[^/]+\\.deta\\.(?:app|dev)" + ], "website": "https://deta.sh" }, "Detectify": { @@ -1791,7 +1793,9 @@ "implies": [ "Apache HTTP Server" ], - "url": "^.*(?:\\.dgn)$", + "url": [ + "^.*(?:\\.dgn)$" + ], "website": "https://dragon-lang.org" }, "Drapr": { diff --git a/src/technologies/e.json b/src/technologies/e.json index 6e98ee38..011f378a 100644 --- a/src/technologies/e.json +++ b/src/technologies/e.json @@ -484,7 +484,9 @@ "Server": "^ECD\\s\\(\\S+\\)" }, "icon": "EdgeCast.png", - "url": "https?://(?:[^/]+\\.)?edgecastcdn\\.net/", + "url": [ + "https?://(?:[^/]+\\.)?edgecastcdn\\.net/" + ], "website": "https://www.edgecast.com" }, "Edgio": { @@ -1596,7 +1598,9 @@ "js": { "epomCustomParams": "" }, - "url": "^https?://(?:[^/]+\\.)?ad(?:op)?shost1\\.com/", + "url": [ + "^https?://(?:[^/]+\\.)?ad(?:op)?shost1\\.com/" + ], "website": "https://epom.com" }, "EqualWeb": { diff --git a/src/technologies/f.json b/src/technologies/f.json index 8aaca8b3..baeef01c 100644 --- a/src/technologies/f.json +++ b/src/technologies/f.json @@ -60,7 +60,9 @@ "Microsoft SharePoint", "Microsoft ASP.NET" ], - "url": "Pages/SearchResults\\.aspx\\?k=", + "url": [ + "Pages/SearchResults\\.aspx\\?k=" + ], "website": "https://sharepoint.microsoft.com/en-us/product/capabilities/search/Pages/Fast-Search.aspx" }, "FUDforum": { @@ -191,7 +193,9 @@ "scriptSrc": [ "Suggest\\.ff" ], - "url": "(?:/ViewParametricSearch|ffsuggest\\.[a-z]htm)", + "url": [ + "(?:/ViewParametricSearch|ffsuggest\\.[a-z]htm)" + ], "website": "https://fact-finder.com" }, "FalguniThemes Nisarg": { diff --git a/src/technologies/g.json b/src/technologies/g.json index 3b7ee9c2..2560ffce 100644 --- a/src/technologies/g.json +++ b/src/technologies/g.json @@ -801,7 +801,9 @@ "recurring", "freemium" ], - "url": "\\.gigalixirapp\\.com", + "url": [ + "\\.gigalixirapp\\.com" + ], "website": "https://gigalixir.com/" }, "Gist": { @@ -860,7 +862,9 @@ "recurring" ], "saas": true, - "url": "^https?://[^/]+\\.gitbook\\.com/", + "url": [ + "^https?://[^/]+\\.gitbook\\.com/" + ], "website": "https://www.gitbook.com" }, "GitHub Pages": { @@ -873,7 +877,9 @@ "X-GitHub-Request-Id": "" }, "icon": "GitHub.svg", - "url": "^https?://[^/]+\\.github\\.io", + "url": [ + "^https?://[^/]+\\.github\\.io" + ], "website": "https://pages.github.com/" }, "GitLab": { @@ -1127,7 +1133,9 @@ "low", "recurring" ], - "url": "https://[^.]+\\.glitch\\.me", + "url": [ + "https://[^.]+\\.glitch\\.me" + ], "website": "https://glitch.com" }, "Global-e": { @@ -2013,7 +2021,9 @@ 1 ], "icon": "Google.svg", - "url": "https?://[^.]+\\.business\\.site", + "url": [ + "https?://[^.]+\\.business\\.site" + ], "website": "https://www.google.com/business/website-builder" }, "Google Optimize": { @@ -2091,7 +2101,9 @@ ], "dom": "[data-abuse-proto*='https://sites.google.com/']", "icon": "Google Sites.png", - "url": "^https?://sites\\.google\\.com", + "url": [ + "^https?://sites\\.google\\.com" + ], "website": "https://sites.google.com" }, "Google Tag Manager": { diff --git a/src/technologies/h.json b/src/technologies/h.json index a2c64f10..51ec991f 100644 --- a/src/technologies/h.json +++ b/src/technologies/h.json @@ -35,7 +35,9 @@ "scripts": [ "/webapp/wcs/" ], - "url": "/wcs/", + "url": [ + "/wcs/" + ], "website": "https://www.hcltechsw.com/commerce" }, "HCL Digital Experience": { @@ -59,7 +61,9 @@ "high", "poa" ], - "url": "/wps/wcm/", + "url": [ + "/wps/wcm/" + ], "website": "https://www.hcltechsw.com/dx" }, "HCL Domino": { @@ -126,7 +130,9 @@ "headers": { "Strict-Transport-Security": "" }, - "url": "^https://[\\w\\d\\.\\-]+(?:\\.dev)(?:/.+||/)$", + "url": [ + "^https://[\\w\\d\\.\\-]+(?:\\.dev)(?:/.+||/)$" + ], "website": "https://www.rfc-editor.org/rfc/rfc6797#section-6.1" }, "HTML5 Media": { @@ -433,7 +439,9 @@ "scriptSrc": [ "hashnode\\.com" ], - "url": "^https?://[^/]+\\.(?:hashnode)\\.dev", + "url": [ + "^https?://[^/]+\\.(?:hashnode)\\.dev" + ], "website": "https://hashnode.com/" }, "Hashtag Labs": { @@ -819,7 +827,9 @@ "Via": "[\\d.-]+ vegur$" }, "icon": "heroku.svg", - "url": "\\.herokuapp\\.com", + "url": [ + "\\.herokuapp\\.com" + ], "website": "https://www.heroku.com/" }, "Hestia": { @@ -1100,7 +1110,9 @@ "recurring" ], "saas": true, - "url": "sites\\.hireology\\.com/", + "url": [ + "sites\\.hireology\\.com/" + ], "website": "https://hireology.com" }, "Hirschmann HiOS": { diff --git a/src/technologies/j.json b/src/technologies/j.json index 36a4b2f9..a3f099df 100644 --- a/src/technologies/j.json +++ b/src/technologies/j.json @@ -479,7 +479,9 @@ "recurring" ], "saas": true, - "url": "\\.jimdo(?:site)?\\.com/", + "url": [ + "\\.jimdo(?:site)?\\.com/" + ], "website": "https://www.jimdo.com" }, "Jirafe": { @@ -659,7 +661,9 @@ "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" }, "oss": true, - "url": "option=com_", + "url": [ + "option=com_" + ], "website": "https://www.joomla.org/" }, "JouwWeb": { diff --git a/src/technologies/k.json b/src/technologies/k.json index 42cf7c11..e7051fac 100644 --- a/src/technologies/k.json +++ b/src/technologies/k.json @@ -667,7 +667,9 @@ "Node.js", "Elasticsearch" ], - "url": "kibana#/dashboard/", + "url": [ + "kibana#/dashboard/" + ], "website": "https://www.elastic.co/products/kibana" }, "Kibo Commerce": { @@ -735,7 +737,9 @@ "recurring" ], "saas": true, - "url": "/modules/kiliba/logo\\.png", + "url": [ + "/modules/kiliba/logo\\.png" + ], "website": "https://en.kiliba.com" }, "Kindful": { diff --git a/src/technologies/l.json b/src/technologies/l.json index 6f96eb3c..7d5c68e6 100644 --- a/src/technologies/l.json +++ b/src/technologies/l.json @@ -930,7 +930,9 @@ "scriptSrc": [ "http://assets\\.webshopapp\\.com" ], - "url": "seoshop.webshopapp.com", + "url": [ + "seoshop.webshopapp.com" + ], "website": "https://www.lightspeedhq.com/products/ecommerce/" }, "LimeChat": { @@ -1369,7 +1371,9 @@ ], "description": "LiveJournal is a social networking service where users can keep a blog, journal or diary.", "icon": "LiveJournal.png", - "url": "\\.livejournal\\.com", + "url": [ + "\\.livejournal\\.com" + ], "website": "https://www.livejournal.com" }, "LivePerson": { diff --git a/src/technologies/m.json b/src/technologies/m.json index 0fd3255b..ea396799 100644 --- a/src/technologies/m.json +++ b/src/technologies/m.json @@ -544,7 +544,9 @@ "cdn-images\\.mailchimp\\.com/[^>]*\\.css", "chimpstatic\\.com/mcjs-connected" ], - "url": "^https?://(?:www\\.)?mailchi\\.mp", + "url": [ + "^https?://(?:www\\.)?mailchi\\.mp" + ], "website": "https://mailchimp.com" }, "MailChimp for WooCommerce": { @@ -1669,7 +1671,9 @@ "scriptSrc": [ "medium\\.com" ], - "url": "^https?://(?:www\\.)?medium\\.com", + "url": [ + "^https?://(?:www\\.)?medium\\.com" + ], "website": "https://medium.com" }, "Meebo": { @@ -1816,7 +1820,9 @@ "scriptSrc": [ "memberstack\\.js" ], - "url": "^https?//.+\\.memberstack\\.io", + "url": [ + "^https?//.+\\.memberstack\\.io" + ], "website": "https://www.memberstack.io" }, "Mention Me": { @@ -2099,7 +2105,9 @@ "]+name=\"__VIEWSTATE" ], "icon": "Microsoft ASP.NET.svg", - "url": "\\.aspx?(?:$|\\?)", + "url": [ + "\\.aspx?(?:$|\\?)" + ], "website": "https://www.asp.net" }, "Microsoft Advertising": { @@ -3395,7 +3403,9 @@ "meta": { "author": "Mozard" }, - "url": "/mozard/!suite", + "url": [ + "/mozard/!suite" + ], "website": "https://mozard.nl" }, "Mulberry": { diff --git a/src/technologies/n.json b/src/technologies/n.json index 037f4548..e6094a9f 100644 --- a/src/technologies/n.json +++ b/src/technologies/n.json @@ -23,7 +23,9 @@ "powered": "jet-neo" }, "icon": "Plataforma NEO.svg", - "url": "\\.plataformaneo\\.com", + "url": [ + "\\.plataformaneo\\.com" + ], "website": "https://www.jetecommerce.com.br" }, "NSW Design System": { @@ -391,7 +393,9 @@ "implies": [ "Neos Flow" ], - "url": "/neos/", + "url": [ + "/neos/" + ], "website": "https://neos.io" }, "Neos Flow": { @@ -496,7 +500,9 @@ "recurring", "poa" ], - "url": "^https?://[^/]+\\.netlify\\.(?:com|app)/", + "url": [ + "^https?://[^/]+\\.netlify\\.(?:com|app)/" + ], "website": "https://www.netlify.com/", "xhr": "cdn\\.netlify\\.com" }, diff --git a/src/technologies/o.json b/src/technologies/o.json index 2e5b8a93..a9c036bc 100644 --- a/src/technologies/o.json +++ b/src/technologies/o.json @@ -1881,7 +1881,9 @@ "recurring" ], "saas": true, - "url": "\\.(?:eu|us1)\\.ordercast\\.io/", + "url": [ + "\\.(?:eu|us1)\\.ordercast\\.io/" + ], "website": "https://www.ordercast.io" }, "OrderLogic app": { @@ -2101,7 +2103,9 @@ "js": { "IsOwaPremiumBrowser": "" }, - "url": "/owa/auth/log(?:on|off)\\.aspx", + "url": [ + "/owa/auth/log(?:on|off)\\.aspx" + ], "website": "https://help.outlook.com" }, "Oxatis": { diff --git a/src/technologies/p.json b/src/technologies/p.json index 114213c0..76dac9a1 100644 --- a/src/technologies/p.json +++ b/src/technologies/p.json @@ -32,7 +32,9 @@ "pdfjsDistBuildPdf.version": "^(.+)$\\;version:\\1", "pdfjsLib.version": "^(.+)$\\;version:\\1" }, - "url": "/web/viewer\\.html?file=[^&]\\.pdf", + "url": [ + "/web/viewer\\.html?file=[^&]\\.pdf" + ], "website": "https://mozilla.github.io/pdf.js/" }, "PHP": { @@ -49,7 +51,9 @@ "X-Powered-By": "^php/?([\\d.]+)?\\;version:\\1" }, "icon": "PHP.svg", - "url": "\\.php(?:$|\\?)", + "url": [ + "\\.php(?:$|\\?)" + ], "website": "https://php.net" }, "PHP-Nuke": { @@ -118,7 +122,9 @@ "scriptSrc": [ "pixi(?:\\.min|-legacy)?\\.js$" ], - "url": ".+\\.pixijs\\.com", + "url": [ + ".+\\.pixijs\\.com" + ], "website": "https://www.pixijs.com" }, "POLi Payment": { @@ -1639,7 +1645,9 @@ "scriptSrc": [ "\\.psecn\\.photoshelter\\.com/" ], - "url": "photoshelter\\.com", + "url": [ + "photoshelter\\.com" + ], "website": "https://www.photoshelter.com" }, "PhotoShelter for Brands": { @@ -3897,7 +3905,9 @@ "cpe": "cpe:2.3:a:pulsesecure:pulse_connect_secure:*:*:*:*:*:*:*:*", "description": "Pulse Secure allows to deploy VPNs to securely to your internal resources.", "icon": "PulseSecure.png", - "url": "/dana-na/auth/", + "url": [ + "/dana-na/auth/" + ], "website": "https://www.pulsesecure.net/products/remote-access-overview/" }, "Pure CSS": { diff --git a/src/technologies/r.json b/src/technologies/r.json index 9d75f238..afc0192b 100644 --- a/src/technologies/r.json +++ b/src/technologies/r.json @@ -74,7 +74,9 @@ "redaxo": "\\;confidence:50" }, "oss": true, - "url": "^https?://(?:www\\.)?[\\d\\w\\-]+\\.[\\w]+/redaxo/\\;confidence:50", + "url": [ + "^https?://(?:www\\.)?[\\d\\w\\-]+\\.[\\w]+/redaxo/\\;confidence:50" + ], "website": "https://redaxo.org" }, "REG.RU": { @@ -725,7 +727,9 @@ "recurring" ], "saas": true, - "url": "^https?//.+\\.reactiveonline\\.io", + "url": [ + "^https?//.+\\.reactiveonline\\.io" + ], "website": "https://reactiveonline.io" }, "ReadAloud": { @@ -1142,7 +1146,9 @@ "js": { "reddit": "" }, - "url": "^https?://(?:www\\.)?reddit\\.com", + "url": [ + "^https?://(?:www\\.)?reddit\\.com" + ], "website": "https://code.reddit.com" }, "Reddit Ads": { @@ -1845,7 +1851,9 @@ "scriptSrc": [ "retool(?:-edge)?(?:\\.com)?(?:\\/embed)?\\/?(?:runtime)?~?(?:app)?(?:custom-components)?(?:\\.\\w{0,20})?\\.js" ], - "url": "^https://retool\\.[\\d\\w\\-]+\\.(?:com|io)/", + "url": [ + "^https://retool\\.[\\d\\w\\-]+\\.(?:com|io)/" + ], "website": "https://retool.com" }, "Return Prime": { diff --git a/src/technologies/s.json b/src/technologies/s.json index 9c30a6c5..1c855f8b 100644 --- a/src/technologies/s.json +++ b/src/technologies/s.json @@ -2435,7 +2435,9 @@ "recurring" ], "saas": true, - "url": "track\\.shipstation\\.com", + "url": [ + "track\\.shipstation\\.com" + ], "website": "https://www.shipstation.com" }, "ShipTection": { @@ -2827,7 +2829,9 @@ "scripts": [ "shopifyTag" ], - "url": "^https?//.+\\.myshopify\\.com", + "url": [ + "^https?//.+\\.myshopify\\.com" + ], "website": "https://shopify.com", "xhr": "\\.myshopify\\.com" }, @@ -3690,7 +3694,9 @@ "scriptSrc": [ "template\\.sirclocdn\\.com/" ], - "url": "^https?//.+\\.sirclo\\.me", + "url": [ + "^https?//.+\\.sirclo\\.me" + ], "website": "https://sirclo.com/" }, "Sirdata": { @@ -6575,7 +6581,9 @@ "js": { "squirrelmail_loginpage_onload": "" }, - "url": "/src/webmail\\.php(?:$|\\?)", + "url": [ + "/src/webmail\\.php(?:$|\\?)" + ], "website": "https://squirrelmail.org" }, "Squiz Matrix": { @@ -7766,7 +7774,9 @@ "scriptSrc": [ "surge\\.sh(?:\\/[-\\w]{0,40})?\\.js" ], - "url": "surge\\.sh", + "url": [ + "surge\\.sh" + ], "website": "https://surge.sh" }, "Survicate": { @@ -7801,7 +7811,9 @@ "meta": { "generator": "^Svbtle\\.com$" }, - "url": "^https?://[^/]+\\.svbtle\\.com", + "url": [ + "^https?://[^/]+\\.svbtle\\.com" + ], "website": "https://www.svbtle.com" }, "Svelte": { diff --git a/src/technologies/t.json b/src/technologies/t.json index c2dd3c85..39ac6991 100644 --- a/src/technologies/t.json +++ b/src/technologies/t.json @@ -253,7 +253,9 @@ "scriptSrc": [ "^/?typo3(?:conf|temp)/" ], - "url": "/typo3/", + "url": [ + "/typo3/" + ], "website": "https://typo3.org/" }, "Tabarnapp": { @@ -505,7 +507,9 @@ "\\.taggbox\\.com", "taggbox\\.com/app/js/embed\\.min\\.js(?:\\?ver=([\\d.]+))?\\;version:\\1" ], - "url": "\\.taggbox\\.com", + "url": [ + "\\.taggbox\\.com" + ], "website": "https://taggbox.com/" }, "Taiga": { @@ -3412,7 +3416,9 @@ "