From 547554ec3523969b2562277bca8c4e7a05c30e92 Mon Sep 17 00:00:00 2001 From: clamsioPL Date: Thu, 30 Nov 2017 20:46:24 +0100 Subject: [PATCH 1/5] Update no.5 for Polish lang --- src/drivers/webextension/_locales/pl/messages.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index dd281d1b4..4a8586c40 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -63,5 +63,6 @@ "categoryName51": { "message": "Konstruktory stron" }, "categoryName52": { "message": "Czat na żywo" }, "categoryName53": { "message": "Zarządzanie relacjami z klientami" }, - "categoryName54": { "message": "SEO" } + "categoryName54": { "message": "SEO" }, + "categoryName55": { "message": "Księgowość" } } From 7c2007c37daa5fa8e01eb71ecfe17fd8f73de53c Mon Sep 17 00:00:00 2001 From: Runiko Date: Fri, 2 Feb 2018 19:59:29 +0100 Subject: [PATCH 2/5] Update no.6 for Polish lang --- src/drivers/webextension/_locales/pl/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index 775f14fb5..48c244520 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -10,7 +10,7 @@ "optionTracking": { "message": "Przesyłaj anonimowe statystyki aplikacji wykrytych przez Wappalyzer do twórców" }, "nothingToDo": { "message": "Nic tu nie ma." }, "noAppsDetected": { "message": "Nie wykryto żadnych aplikacji." }, - "categoryPin": { "message": "Always show icon" }, + "categoryPin": { "message": "Zawsze pokazuj tą ikonę" }, "categoryName1": { "message": "System zarządzania treścią" }, "categoryName2": { "message": "Forum" }, "categoryName3": { "message": "Menedżer baz danych" }, From ecf26c91357591eb4228aa11b85099421ce2fe77 Mon Sep 17 00:00:00 2001 From: Daniel Zdziebko Date: Sun, 15 Jul 2018 20:10:04 +0200 Subject: [PATCH 3/5] Update no.7 for Polish lang --- src/drivers/webextension/_locales/pl/messages.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/drivers/webextension/_locales/pl/messages.json b/src/drivers/webextension/_locales/pl/messages.json index 213609672..6544df5bf 100644 --- a/src/drivers/webextension/_locales/pl/messages.json +++ b/src/drivers/webextension/_locales/pl/messages.json @@ -66,8 +66,8 @@ "categoryName53": { "message": "Zarządzanie relacjami z klientami" }, "categoryName54": { "message": "SEO" }, "categoryName55": { "message": "Księgowość" }, - "categoryName56": { "message": "Cryptominer" }, - "categoryName57": { "message": "Static Site Generator" }, - "categoryName58": { "message": "User Onboarding" }, - "categoryName59": { "message": "JavaScript Libraries" } + "categoryName56": { "message": "Koparka kryptowalut" }, + "categoryName57": { "message": "Generator stron statycznych" }, + "categoryName58": { "message": "Wdrażanie użytkownika" }, + "categoryName59": { "message": "Biblioteki JavaScript" } } From d294c48ddc06d3f5af6364da2858a4b9738051fb Mon Sep 17 00:00:00 2001 From: Daniel Zdziebko Date: Sun, 5 Jan 2020 21:28:09 +0100 Subject: [PATCH 4/5] Merge sync.13 and translate PL messages --- .eslintignore | 2 + .eslintrc.js | 6 + .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/bug_report.md | 31 + .github/ISSUE_TEMPLATE/feature_request.md | 20 + .github/ISSUE_TEMPLATE/technology-request.md | 10 + .github/lock.yml | 0 .gitignore | 2 + .travis.yml | 2 +- Dockerfile | 2 +- README.md | 2 +- bin/build | 1 + bin/validate | 4 + issue_template.md | 16 - npm-shrinkwrap.json | 1545 ++++++++- package.json | 7 +- patches/zombie-vm-timeout.patch | 14 +- schema.json | 3 + src/apps.json | 3081 +++++++++++++---- src/drivers/bookmarklet/driver.js | 104 +- src/drivers/npm/Dockerfile | 7 +- src/drivers/npm/README.md | 66 +- src/drivers/npm/browser.js | 20 + src/drivers/npm/browsers/puppeteer.js | 129 + src/drivers/npm/browsers/zombie.js | 121 + src/drivers/npm/cli.js | 52 + src/drivers/npm/driver.js | 413 +-- src/drivers/npm/index.js | 44 +- src/drivers/npm/npm-shrinkwrap.json | 314 +- src/drivers/npm/package.json | 17 +- .../webextension/_locales/ca/messages.json | 83 + .../webextension/_locales/de/messages.json | 13 +- .../webextension/_locales/el/messages.json | 11 +- .../webextension/_locales/en/messages.json | 12 +- .../webextension/_locales/es/messages.json | 11 +- .../webextension/_locales/fa/messages.json | 82 + .../webextension/_locales/fr/messages.json | 11 +- .../webextension/_locales/gl_ES/messages.json | 83 + .../webextension/_locales/gr/messages.json | 11 +- .../webextension/_locales/id/messages.json | 11 +- .../webextension/_locales/it/messages.json | 11 +- .../webextension/_locales/ja/messages.json | 83 + .../webextension/_locales/pl/messages.json | 12 +- .../webextension/_locales/pt/messages.json | 152 +- .../webextension/_locales/pt_BR/messages.json | 71 +- .../webextension/_locales/ro/messages.json | 11 +- .../webextension/_locales/ru/messages.json | 141 +- .../webextension/_locales/sk/messages.json | 11 +- .../webextension/_locales/tr/messages.json | 23 +- .../webextension/_locales/uk/messages.json | 11 +- .../webextension/_locales/uz/messages.json | 11 +- .../webextension/_locales/zh_CN/messages.json | 30 +- .../webextension/_locales/zh_TW/messages.json | 33 +- src/drivers/webextension/css/popup.css | 120 +- src/drivers/webextension/html/background.html | 2 +- src/drivers/webextension/html/options.html | 4 + src/drivers/webextension/html/popup.html | 18 +- .../webextension/images/logo-purple.svg | 29 + src/drivers/webextension/js/content.js | 76 +- src/drivers/webextension/js/driver.js | 415 ++- src/drivers/webextension/js/inject.js | 22 +- src/drivers/webextension/js/jsontodom.js | 63 - .../webextension/js/{ => lib}/iframe.js | 62 +- src/drivers/webextension/js/lib/jsontodom.js | 63 + .../webextension/js/{ => lib}/network.js | 120 +- src/drivers/webextension/js/options.js | 108 +- src/drivers/webextension/js/popup.js | 224 +- src/drivers/webextension/manifest.json | 146 +- src/drivers/webextension/npm-shrinkwrap.json | 6 +- src/drivers/webextension/package.json | 2 +- src/icons/91app.png | Bin 0 -> 16267 bytes src/icons/ADPLAN.png | Bin 0 -> 6396 bytes src/icons/AMPcms.png | Bin 779 -> 0 bytes src/icons/Accelerated-Mobile-Pages.svg | 12 +- src/icons/Accessible Portal.png | Bin 682 -> 0 bytes src/icons/AdOcean.png | Bin 0 -> 1958 bytes src/icons/Adverticum.svg | 1 + src/icons/Airform.svg | 1 + src/icons/Analysys Ark.svg | 1 + src/icons/Apollo.svg | 29 + src/icons/Arc Forum.png | Bin 384 -> 0 bytes src/icons/Arc-Publishing.svg | 36 + src/icons/ArvanCloud.png | Bin 19640 -> 3372 bytes src/icons/Avasize.png | Bin 0 -> 3568 bytes src/icons/Babel.svg | 1 + src/icons/Backpack.png | Bin 0 -> 623 bytes src/icons/Blazor.png | Bin 0 -> 11125 bytes src/icons/Bloomreach.png | Bin 0 -> 950 bytes src/icons/Botble-CMS.png | Bin 0 -> 4094 bytes src/icons/Brightspot.svg | 8 + src/icons/Brother.png | Bin 210 -> 0 bytes src/icons/BugSense.png | Bin 274 -> 0 bytes src/icons/C++.png | Bin 743 -> 0 bytes src/icons/CO2Stats.png | Bin 642 -> 0 bytes src/icons/{PHPoole.png => Cecil.png} | Bin src/icons/Chorus.png | Bin 0 -> 715 bytes src/icons/ClickFunnels.png | Bin 0 -> 15804 bytes src/icons/Combeenation.png | Bin 0 -> 4176 bytes src/icons/{Contens.png => Contensis.png} | Bin src/icons/Countly.png | Bin 0 -> 4166 bytes src/icons/Craft CMS.svg | 12 +- src/icons/CrossBox.png | Bin 0 -> 2958 bytes src/icons/DataPower.png | Bin 0 -> 6727 bytes src/icons/Day.js.svg | 1 + src/icons/Dell.svg | 4 - src/icons/DerakCloud.png | Bin 0 -> 4243 bytes src/icons/Docker.svg | 18 + src/icons/EasyEngine.png | Bin 0 -> 4635 bytes src/icons/ElementUI.svg | 11 + src/icons/Elementor.png | Bin 0 -> 2564 bytes src/icons/Envoy.png | Bin 0 -> 3553 bytes src/icons/ExpertRec.png | Bin 0 -> 2034 bytes src/icons/F5.png | Bin 0 -> 4769 bytes src/icons/Gemius.png | Bin 0 -> 1371 bytes src/icons/GoCache.png | Bin 0 -> 2321 bytes src/icons/GoJS.png | Bin 0 -> 5709 bytes src/icons/Google Maps.png | Bin 1954 -> 16008 bytes src/icons/Google Search Appliance.png | Bin 1508 -> 0 bytes src/icons/Google Sites.png | Bin 2342 -> 9528 bytes src/icons/Gravity Insights.png | Bin 256 -> 0 bytes src/icons/Gridsome.svg | 30 + src/icons/GrowingIO.png | Bin 0 -> 988 bytes src/icons/Halo.svg | 30 + src/icons/Hippo.png | Bin 728 -> 0 bytes src/icons/InProces.png | Bin 392 -> 0 bytes src/icons/Instabot.png | Bin 0 -> 2877 bytes src/icons/Intershop.png | Bin 138 -> 952 bytes src/icons/Ionicons.png | Bin 671 -> 19373 bytes src/icons/Klarna.svg | 16 +- src/icons/LOU.png | Bin 0 -> 1685 bytes src/icons/Laravel.png | Bin 318 -> 0 bytes src/icons/Laravel.svg | 31 + src/icons/Liferay.png | Bin 518 -> 0 bytes src/icons/Liferay.svg | 1 + src/icons/LocalFocus.png | Bin 0 -> 3428 bytes src/icons/M.R. Inc.png | Bin 1049 -> 0 bytes src/icons/Matomo.png | Bin 0 -> 2951 bytes src/icons/MemberStack.png | Bin 0 -> 2112 bytes src/icons/Microsoft.png | Bin 0 -> 2675 bytes src/icons/Microsoft.svg | 1 - src/icons/Mithril.svg | 39 + src/icons/MobX.svg | 43 + src/icons/Moxa.png | Bin 497 -> 0 bytes src/icons/NOIX.png | Bin 430 -> 0 bytes src/icons/Netmonitor.png | Bin 902 -> 0 bytes src/icons/Nuxt.js.svg | 7 + src/icons/Onshop.svg | 27 + src/icons/Ophal.png | Bin 310 -> 0 bytes src/icons/OrderOnline.svg | 30 + src/icons/PHP-Fusion.png | Bin 21384 -> 7333 bytes src/icons/PageCDN.png | Bin 0 -> 2249 bytes src/icons/Parcel.png | Bin 0 -> 4786 bytes src/icons/PhotoShelter.png | Bin 0 -> 3655 bytes src/icons/Pingoteam.svg | 1 + src/icons/Piwik.png | Bin 310 -> 0 bytes src/icons/PlatformOS.svg | 1 + src/icons/RXWeb.svg | 9 + src/icons/Red Hat.png | Bin 1408 -> 0 bytes src/icons/Red Hat.svg | 41 + src/icons/Redaxscript.svg | 3 + src/icons/SPIP.png | Bin 1616 -> 0 bytes src/icons/Saber.svg | 16 + src/icons/Sapper.svg | 20 + src/icons/Scenari.png | Bin 0 -> 1245 bytes src/icons/Sensors Data.svg | 1 + src/icons/Sentry.svg | 1 + src/icons/Shadow.png | Bin 912 -> 0 bytes src/icons/Shiny.png | Bin 0 -> 8097 bytes src/icons/Shopalize.png | Bin 711 -> 0 bytes src/icons/Shoperfa.png | Bin 0 -> 2046 bytes src/icons/Shopfa.svg | 23 +- src/icons/SimpleAnalytics.svg | 1 + src/icons/Siteglide.svg | 12 + src/icons/Strapi.png | Bin 0 -> 8670 bytes src/icons/Svelte.svg | 20 + src/icons/Symfony.png | Bin 1107 -> 0 bytes src/icons/Symfony.svg | 39 + src/icons/TencentWaterproofWall.png | Bin 0 -> 1159 bytes src/icons/UserEngage.png | Bin 432 -> 0 bytes src/icons/VTEX Enterprise.png | Bin 812 -> 0 bytes src/icons/VTEX.svg | 3 + src/icons/VideoJS.png | Bin 311 -> 0 bytes src/icons/VideoJS.svg | 54 + src/icons/Virgool.svg | 14 + src/icons/Visual WebGUI.png | Bin 1486 -> 0 bytes src/icons/Volusion.png | Bin 334 -> 0 bytes src/icons/Volusion.svg | 1 + src/icons/WP-Statistics.png | Bin 0 -> 1672 bytes src/icons/Web Optimizer.png | Bin 520 -> 0 bytes src/icons/WebsiteCreator.png | Bin 0 -> 18990 bytes src/icons/Webzi.svg | 18 + src/icons/Weglot.png | Bin 0 -> 3607 bytes src/icons/Whooshkaa.svg | 3 + src/icons/Wikispaces.png | Bin 2412 -> 0 bytes src/icons/WindowsServer.png | Bin 0 -> 5897 bytes src/icons/Zendesk.png | Bin 0 -> 2765 bytes src/icons/Zimbra.png | Bin 0 -> 445 bytes src/icons/Zipkin.png | Bin 0 -> 11438 bytes src/icons/adobedmt.png | Bin 0 -> 6284 bytes src/icons/apigee.svg | 24 + src/icons/aws-elb.png | Bin 0 -> 1444 bytes src/icons/aws.svg | 1 + src/icons/azure.svg | 1 + src/icons/bigbangshop.svg | 1 + src/icons/bokeh.png | Bin 0 -> 17742 bytes src/icons/boom.svg | 35 + src/icons/bubble.png | Bin 1468 -> 3779 bytes src/icons/chevereto.png | Bin 0 -> 2505 bytes src/icons/clarity.svg | 17 + src/icons/coaster-cms.png | Bin 0 -> 1751 bytes src/icons/datadome.png | Bin 0 -> 4164 bytes src/icons/datocms.svg | 24 + src/icons/decimal.js.png | Bin 0 -> 966 bytes src/icons/eZ Publish.png | Bin 134 -> 0 bytes src/icons/eZ.svg | 59 + src/icons/ensighten.png | Bin 0 -> 3068 bytes src/icons/flywheel.svg | 21 + src/icons/freshchat.png | Bin 0 -> 580 bytes src/icons/godaddy.svg | 45 + src/icons/hapi.js.png | Bin 1042 -> 0 bytes src/icons/iEXExchanger.png | Bin 0 -> 25503 bytes src/icons/ionic.png | Bin 0 -> 3654 bytes src/icons/kestrel.svg | 1 + src/icons/kinsta.svg | 22 + src/icons/liquidweb.svg | 93 + src/icons/litespeed-cache.png | Bin 0 -> 2390 bytes src/icons/mariadb.svg | 16 + src/icons/mhonarc.png | Bin 567 -> 0 bytes src/icons/orocommerce.svg | 24 + src/icons/pagefly.png | Bin 0 -> 3774 bytes src/icons/pantheon.svg | 13 + src/icons/percona.svg | 13 + src/icons/platformsh.svg | 18 + src/icons/sazito-phoenix.png | Bin 0 -> 5119 bytes src/icons/scrollreveal.svg | 16 + src/icons/sectionio.svg | 9 + src/icons/seravo.svg | 21 + src/icons/shopline.png | Bin 0 -> 6316 bytes src/icons/signal.png | Bin 0 -> 4424 bytes src/icons/simbel.svg | 19 + src/icons/siteground.svg | 9 + src/icons/spip.svg | 62 + src/icons/swiper.svg | 6 + src/icons/sympa.png | Bin 0 -> 7355 bytes src/icons/syncfusion.svg | 19 + src/icons/tailwindcss.svg | 1 + src/icons/tessitura.svg | 10 + src/icons/uCore.png | Bin 779 -> 0 bytes src/icons/user.com.svg | 9 + src/icons/webdev.png | Bin 5493 -> 5632 bytes src/icons/webflow.svg | 13 + src/icons/websocket.png | Bin 0 -> 990 bytes src/icons/wisyCMS.svg | 28 + src/icons/wpCache.png | Bin 821 -> 1539 bytes src/icons/wpengine.svg | 1 + src/icons/wpvip.svg | 22 + src/icons/yepcomm.png | Bin 0 -> 3339 bytes src/wappalyzer.js | 602 ++-- src/wappalyzer.spec.js | 278 ++ test/analyze.spec.js | 144 - 260 files changed, 8380 insertions(+), 2432 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/technology-request.md create mode 100644 .github/lock.yml delete mode 100644 issue_template.md create mode 100644 src/drivers/npm/browser.js create mode 100644 src/drivers/npm/browsers/puppeteer.js create mode 100644 src/drivers/npm/browsers/zombie.js create mode 100755 src/drivers/npm/cli.js create mode 100644 src/drivers/webextension/_locales/ca/messages.json create mode 100644 src/drivers/webextension/_locales/fa/messages.json create mode 100644 src/drivers/webextension/_locales/gl_ES/messages.json create mode 100644 src/drivers/webextension/_locales/ja/messages.json create mode 100644 src/drivers/webextension/images/logo-purple.svg delete mode 100644 src/drivers/webextension/js/jsontodom.js rename src/drivers/webextension/js/{ => lib}/iframe.js (96%) create mode 100644 src/drivers/webextension/js/lib/jsontodom.js rename src/drivers/webextension/js/{ => lib}/network.js (88%) create mode 100644 src/icons/91app.png create mode 100644 src/icons/ADPLAN.png delete mode 100644 src/icons/AMPcms.png delete mode 100644 src/icons/Accessible Portal.png create mode 100644 src/icons/AdOcean.png create mode 100644 src/icons/Adverticum.svg create mode 100644 src/icons/Airform.svg create mode 100644 src/icons/Analysys Ark.svg create mode 100644 src/icons/Apollo.svg delete mode 100644 src/icons/Arc Forum.png create mode 100644 src/icons/Arc-Publishing.svg create mode 100755 src/icons/Avasize.png create mode 100644 src/icons/Babel.svg create mode 100644 src/icons/Backpack.png create mode 100644 src/icons/Blazor.png create mode 100644 src/icons/Bloomreach.png create mode 100755 src/icons/Botble-CMS.png create mode 100644 src/icons/Brightspot.svg delete mode 100644 src/icons/Brother.png delete mode 100644 src/icons/BugSense.png delete mode 100644 src/icons/C++.png delete mode 100644 src/icons/CO2Stats.png rename src/icons/{PHPoole.png => Cecil.png} (100%) create mode 100644 src/icons/Chorus.png create mode 100644 src/icons/ClickFunnels.png create mode 100644 src/icons/Combeenation.png rename src/icons/{Contens.png => Contensis.png} (100%) create mode 100644 src/icons/Countly.png create mode 100644 src/icons/CrossBox.png create mode 100644 src/icons/DataPower.png create mode 100644 src/icons/Day.js.svg delete mode 100644 src/icons/Dell.svg create mode 100644 src/icons/DerakCloud.png create mode 100644 src/icons/Docker.svg create mode 100644 src/icons/EasyEngine.png create mode 100644 src/icons/ElementUI.svg create mode 100644 src/icons/Elementor.png create mode 100644 src/icons/Envoy.png create mode 100644 src/icons/ExpertRec.png create mode 100644 src/icons/F5.png create mode 100644 src/icons/Gemius.png create mode 100644 src/icons/GoCache.png create mode 100644 src/icons/GoJS.png delete mode 100644 src/icons/Google Search Appliance.png delete mode 100644 src/icons/Gravity Insights.png create mode 100644 src/icons/Gridsome.svg create mode 100644 src/icons/GrowingIO.png create mode 100644 src/icons/Halo.svg delete mode 100644 src/icons/Hippo.png delete mode 100644 src/icons/InProces.png create mode 100644 src/icons/Instabot.png create mode 100644 src/icons/LOU.png delete mode 100644 src/icons/Laravel.png create mode 100644 src/icons/Laravel.svg delete mode 100644 src/icons/Liferay.png create mode 100644 src/icons/Liferay.svg create mode 100644 src/icons/LocalFocus.png delete mode 100644 src/icons/M.R. Inc.png create mode 100644 src/icons/Matomo.png create mode 100644 src/icons/MemberStack.png create mode 100644 src/icons/Microsoft.png delete mode 100644 src/icons/Microsoft.svg create mode 100644 src/icons/Mithril.svg create mode 100644 src/icons/MobX.svg delete mode 100644 src/icons/Moxa.png delete mode 100644 src/icons/NOIX.png delete mode 100644 src/icons/Netmonitor.png create mode 100644 src/icons/Nuxt.js.svg create mode 100644 src/icons/Onshop.svg delete mode 100644 src/icons/Ophal.png create mode 100644 src/icons/OrderOnline.svg create mode 100644 src/icons/PageCDN.png create mode 100644 src/icons/Parcel.png create mode 100644 src/icons/PhotoShelter.png create mode 100644 src/icons/Pingoteam.svg delete mode 100644 src/icons/Piwik.png create mode 100644 src/icons/PlatformOS.svg create mode 100644 src/icons/RXWeb.svg delete mode 100644 src/icons/Red Hat.png create mode 100644 src/icons/Red Hat.svg create mode 100644 src/icons/Redaxscript.svg delete mode 100644 src/icons/SPIP.png create mode 100644 src/icons/Saber.svg create mode 100644 src/icons/Sapper.svg create mode 100644 src/icons/Scenari.png create mode 100644 src/icons/Sensors Data.svg create mode 100644 src/icons/Sentry.svg delete mode 100644 src/icons/Shadow.png create mode 100644 src/icons/Shiny.png delete mode 100644 src/icons/Shopalize.png create mode 100644 src/icons/Shoperfa.png create mode 100644 src/icons/SimpleAnalytics.svg create mode 100644 src/icons/Siteglide.svg create mode 100644 src/icons/Strapi.png create mode 100644 src/icons/Svelte.svg delete mode 100644 src/icons/Symfony.png create mode 100644 src/icons/Symfony.svg create mode 100644 src/icons/TencentWaterproofWall.png delete mode 100644 src/icons/UserEngage.png delete mode 100644 src/icons/VTEX Enterprise.png create mode 100644 src/icons/VTEX.svg delete mode 100644 src/icons/VideoJS.png create mode 100644 src/icons/VideoJS.svg create mode 100644 src/icons/Virgool.svg delete mode 100644 src/icons/Visual WebGUI.png delete mode 100644 src/icons/Volusion.png create mode 100644 src/icons/Volusion.svg create mode 100644 src/icons/WP-Statistics.png delete mode 100644 src/icons/Web Optimizer.png create mode 100644 src/icons/WebsiteCreator.png create mode 100644 src/icons/Webzi.svg create mode 100644 src/icons/Weglot.png create mode 100644 src/icons/Whooshkaa.svg delete mode 100644 src/icons/Wikispaces.png create mode 100644 src/icons/WindowsServer.png create mode 100644 src/icons/Zendesk.png create mode 100644 src/icons/Zimbra.png create mode 100644 src/icons/Zipkin.png create mode 100644 src/icons/adobedmt.png create mode 100644 src/icons/apigee.svg create mode 100644 src/icons/aws-elb.png create mode 100644 src/icons/aws.svg create mode 100644 src/icons/azure.svg create mode 100644 src/icons/bigbangshop.svg create mode 100644 src/icons/bokeh.png create mode 100644 src/icons/boom.svg create mode 100644 src/icons/chevereto.png create mode 100644 src/icons/clarity.svg create mode 100644 src/icons/coaster-cms.png create mode 100644 src/icons/datadome.png create mode 100644 src/icons/datocms.svg create mode 100644 src/icons/decimal.js.png delete mode 100644 src/icons/eZ Publish.png create mode 100644 src/icons/eZ.svg create mode 100644 src/icons/ensighten.png create mode 100644 src/icons/flywheel.svg create mode 100644 src/icons/freshchat.png create mode 100644 src/icons/godaddy.svg delete mode 100644 src/icons/hapi.js.png create mode 100644 src/icons/iEXExchanger.png create mode 100644 src/icons/ionic.png create mode 100644 src/icons/kestrel.svg create mode 100644 src/icons/kinsta.svg create mode 100644 src/icons/liquidweb.svg create mode 100644 src/icons/litespeed-cache.png create mode 100644 src/icons/mariadb.svg delete mode 100644 src/icons/mhonarc.png create mode 100644 src/icons/orocommerce.svg create mode 100644 src/icons/pagefly.png create mode 100644 src/icons/pantheon.svg create mode 100644 src/icons/percona.svg create mode 100644 src/icons/platformsh.svg create mode 100644 src/icons/sazito-phoenix.png create mode 100644 src/icons/scrollreveal.svg create mode 100644 src/icons/sectionio.svg create mode 100644 src/icons/seravo.svg create mode 100644 src/icons/shopline.png create mode 100644 src/icons/signal.png create mode 100644 src/icons/simbel.svg create mode 100644 src/icons/siteground.svg create mode 100644 src/icons/spip.svg create mode 100644 src/icons/swiper.svg create mode 100644 src/icons/sympa.png create mode 100644 src/icons/syncfusion.svg create mode 100644 src/icons/tailwindcss.svg create mode 100644 src/icons/tessitura.svg delete mode 100644 src/icons/uCore.png create mode 100644 src/icons/user.com.svg create mode 100644 src/icons/webflow.svg create mode 100644 src/icons/websocket.png create mode 100644 src/icons/wisyCMS.svg create mode 100644 src/icons/wpengine.svg create mode 100644 src/icons/wpvip.svg create mode 100644 src/icons/yepcomm.png create mode 100644 src/wappalyzer.spec.js delete mode 100644 test/analyze.spec.js diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..63190aca9 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +**/lib/* +node_modules diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..d262d9909 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,6 @@ +module.exports = { + "extends": "airbnb-base", + "rules": { + "no-param-reassign": 0 + } +}; diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..afce2edfc --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: AliasIO diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..f19dfc2d4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: Bug +assignees: '' + +--- + +**Platform** +Which platform does the bug apply to? +* WebExtension (Google Chrome, Mozilla Firefox) +* NPM +* Bookmarklet +* Website + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '...' +3. Scroll down to '...' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..4a3a14b55 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: Feature request +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is, e.g. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/technology-request.md b/.github/ISSUE_TEMPLATE/technology-request.md new file mode 100644 index 000000000..28880b99a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/technology-request.md @@ -0,0 +1,10 @@ +--- +name: Technology request +about: Propose a technology to be added +title: '' +labels: Technology request +assignees: '' + +--- + +You may request a new technology to be added but changes of having it included are greatly improved if you submit a pull request. Please refer to the [documentation](https://docs.wappalyzer.com/dev/contributing.html#adding-a-new-application). diff --git a/.github/lock.yml b/.github/lock.yml new file mode 100644 index 000000000..e69de29bb diff --git a/.gitignore b/.gitignore index 8343ce16c..4c54d94c3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ Desktop.ini ._* tags tags.* +.idea +/nbproject/private/ diff --git a/.travis.yml b/.travis.yml index b39d23df3..8066ad238 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ deploy: file: build/* skip_cleanup: true on: - repo: AliasIO/Wappalyzer + repo: AliasIO/wappalyzer tags: true env: diff --git a/Dockerfile b/Dockerfile index d781318ad..e7c9e6806 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM alpine -MAINTAINER Elbert Alias +LABEL maintainer="elbert@alias.io" ENV WAPPALYZER_DIR=/opt/wappalyzer diff --git a/README.md b/README.md index 79b36246e..29e837b4b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Wappalyzer [![Travis](https://img.shields.io/travis/AliasIO/Wappalyzer.svg)](https://travis-ci.org/AliasIO/Wappalyzer/) [![Scrutinizer](https://scrutinizer-ci.com/g/AliasIO/Wappalyzer/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/AliasIO/Wappalyzer/?branch=master) +# Wappalyzer [![Travis](https://travis-ci.org/AliasIO/Wappalyzer.svg?branch=master)](https://travis-ci.org/AliasIO/Wappalyzer/) [![Scrutinizer](https://scrutinizer-ci.com/g/AliasIO/Wappalyzer/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/AliasIO/Wappalyzer/?branch=master) [Wappalyzer](https://www.wappalyzer.com/) is a [cross-platform](https://github.com/AliasIO/Wappalyzer/wiki/Drivers) utility that uncovers the diff --git a/bin/build b/bin/build index 7ddc048d7..e39752ccc 100755 --- a/bin/build +++ b/bin/build @@ -60,6 +60,7 @@ zip -qr ../../../build/wappalyzer_webextension.zip . \ -x \*.gitkeep \ -x \*.js.map \ -x \*.min.js \ + -x \*.spec.js \ -x \*.yarn-integrity \ -x \*package.json \ -x \*LICENSE \ diff --git a/bin/validate b/bin/validate index 1d6587600..2c60e5b90 100755 --- a/bin/validate +++ b/bin/validate @@ -15,3 +15,7 @@ echo "Validating regular expressions..." echo "Validating icons..." ./bin/validate-icons + +echo "Running tests..." + +npm run test diff --git a/issue_template.md b/issue_template.md deleted file mode 100644 index 4e55ba0c4..000000000 --- a/issue_template.md +++ /dev/null @@ -1,16 +0,0 @@ - - -**Do you want to request a *feature*, a *new application detection* or report a *bug*?** - -**Is your issue about WebExtension driver (Chrome & Firefox), the website, the NPM driver or the bookmarklet ?** - -**What is the current behavior ?** - -**If the current behavior is a bug, please provide the steps to reproduce and if possible a demo of the problem.** - -**What is the expected behavior ?** - -**Which versions of Wappalyzer, and which browser / OS are affected by this issue ? Did this work in previous versions ?** diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 86c50adb4..221001f31 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2,12 +2,142 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -30,6 +160,33 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, "chai": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", @@ -44,12 +201,82 @@ "type-detect": "^4.0.0" } }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, "commander": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", @@ -62,6 +289,41 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -80,29 +342,404 @@ "type-detect": "^4.0.0" } }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "^2.0.5", + "object-keys": "^1.0.8" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-config-airbnb-base": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.0.0.tgz", + "integrity": "sha512-hUFXRlE6AY84z0qYh4wKdtSF4EqDnyT8sxrvTpcXCV4ENSLF8li5yNA1yDM26iinH8Ierbpc4lv8Rp62uX6VSQ==", + "dev": true, + "requires": { + "eslint-restricted-globals": "^0.1.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.13.0.tgz", + "integrity": "sha512-t6hGKQDMIt9N8R7vLepsYXgDfeuhp6ZJSgtrLEDxonpSubyxUZHjhm6LsAaZX8q6GYVxkbT3kTsV9G5mBCFR6A==", + "dev": true, + "requires": { + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-restricted-globals": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz", + "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, "file-type": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.4.0.tgz", "integrity": "sha1-KnyU9ioAMBULt9m2xwz6HT51nIY=" }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", @@ -123,29 +760,114 @@ "path-is-absolute": "^1.0.0" } }, + "globals": { + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, "html-comment-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -162,40 +884,256 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" } }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "minimist": "0.0.8" + "builtin-modules": "^1.0.0" } }, - "mocha": { - "version": "5.2.0", + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, @@ -219,6 +1157,66 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -228,12 +1226,112 @@ "wrappy": "1" } }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", @@ -245,6 +1343,60 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "read-chunk": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", @@ -254,11 +1406,260 @@ "safe-buffer": "^5.1.1" } }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -268,17 +1669,113 @@ "has-flag": "^3.0.0" } }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } } diff --git a/package.json b/package.json index 7f1cc55b6..e7bee5930 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,14 @@ }, "devDependencies": { "chai": "^4.1.2", + "eslint": "^4.19.1", + "eslint-config-airbnb-base": "^13.0.0", + "eslint-plugin-import": "^2.13.0", "mocha": "^5.2.0" }, "scripts": { - "test": "mocha -R spec ./test" + "test": "mocha -R spec src", + "lint": "eslint src", + "lint:fix": "eslint src --fix" } } diff --git a/patches/zombie-vm-timeout.patch b/patches/zombie-vm-timeout.patch index dcc62d7d4..27313611a 100644 --- a/patches/zombie-vm-timeout.patch +++ b/patches/zombie-vm-timeout.patch @@ -1,11 +1,11 @@ ---- src/drivers/npm/node_modules/zombie/lib/document.js 2018-04-20 14:36:04.097829977 +1000 -+++ src/drivers/npm/node_modules/zombie/lib/document.js 2018-04-20 14:34:25.699317000 +1000 -@@ -281,7 +281,7 @@ - // The current window, postMessage and window.close need this +--- src/drivers/npm/node_modules/zombie/lib/document.js ++++ src/drivers/npm/node_modules/zombie/lib/document.js +@@ -247,7 +247,7 @@ function setupWindow(window, args) { browser._windowInScope = window; - var result = undefined; -- if (typeof code === 'string' || code instanceof String) result = VM.runInContext(code, window, { filename: filename });else if (code) result = code.call(window); -+ if (typeof code === 'string' || code instanceof String) result = VM.runInContext(code, window, { filename: filename, timeout: 1000 });else if (code) result = code.call(window); + let result; + if (typeof code == 'buffer' || code instanceof Buffer) code = code.toString(); +- if (typeof code === 'string' || code instanceof String) result = VM.runInContext(code, context, { filename });else if (code) result = code.call(window); ++ if (typeof code === 'string' || code instanceof String) result = VM.runInContext(code, context, { filename, timeout: 1000 });else if (code) result = code.call(window); browser.emit('evaluated', code, result, filename); return result; } catch (error) { diff --git a/schema.json b/schema.json index 1d4ddb67d..45b52ac12 100644 --- a/schema.json +++ b/schema.json @@ -38,6 +38,9 @@ }, "required": true }, + "cpe": { + "type": "string" + }, "cookies": { "type": "object", "additionalProperties": { diff --git a/src/apps.json b/src/apps.json index a1c90b997..87b034175 100644 --- a/src/apps.json +++ b/src/apps.json @@ -15,6 +15,14 @@ "script": "1c-bitrix", "website": "http://www.1c-bitrix.ru" }, + "91App": { + "cats": [ + 6 + ], + "icon": "91app.png", + "script": "https\\:\\/\\/track\\.91app\\.io\\/track\\.js\\?", + "website": "https://www.91app.com/" + }, "3dCart": { "cats": [ 1, @@ -38,7 +46,7 @@ "icon": "A-Frame.svg", "implies": "three.js", "js": { - "AFRAME.version": "(.*)\\;version:\\1" + "AFRAME.version": "^(.+)$\\;version:\\1" }, "script": "/?([\\d.]+)?/aframe(?:\\.min)?\\.js\\;version:\\1", "website": "https://aframe.io" @@ -56,27 +64,11 @@ "icon": "ebis.png", "website": "http://www.ebis.ne.jp" }, - "AMPcms": { - "cats": [ - 1 - ], - "cookies": { - "AMP": "" - }, - "headers": { - "X-AMP-Version": "([\\d.]+)\\;version:\\1" - }, - "icon": "AMPcms.png", - "implies": "PHP", - "js": { - "amp_js_init": "" - }, - "website": "http://www.ampcms.org" - }, "AOLserver": { "cats": [ 22 ], + "cpe": "cpe:/a:aol:aolserver", "headers": { "Server": "AOLserver/?([\\d.]+)?\\;version:\\1" }, @@ -109,6 +101,7 @@ "cats": [ 10 ], + "cpe": "cpe:/a:laurent_destailleur:awstats", "icon": "AWStats.png", "implies": "Perl", "meta": { @@ -116,34 +109,92 @@ }, "website": "http://awstats.sourceforge.net" }, - "Accelerated Mobile Pages": { + "AMP": { "cats": [ 12 ], - "html": "]* (?:amp|⚡)", + "html": "]* (?:amp|⚡)[^-]", "icon": "Accelerated-Mobile-Pages.svg", - "website": "https://www.ampproject.org" + "website": "https://www.amp.dev" }, - "Accessible Portal": { + "AMP Plugin": { "cats": [ - 1 + 1, + 5 + ], + "icon": "Accelerated-Mobile-Pages.svg", + "implies": [ + "WordPress" ], - "icon": "Accessible Portal.png", - "implies": "PHP", "meta": { - "generator": "Accessible Portal" + "generator": "^AMP Plugin v(\\d+\\.\\d+.*)$\\;version:\\1" + }, + "website": "https://amp-wp.org" + }, + "Apollo": { + "cats": [ + 59 + ], + "icon": "Apollo.svg", + "js": { + "__APOLLO_CLIENT__": "", + "__APOLLO_CLIENT__.version": "^(.+)$\\;version:\\1" + }, + "website": "https://www.apollographql.com" + }, + "Arc Publishing": { + "cats": [ + 1 + ], + "html": "
]*id=\"pb-root\"", + "js": { + "Fusion.arcSite": "" + }, + "icon": "Arc-Publishing.svg", + "website": "https://www.arcpublishing.com/" + }, + "Azure": { + "cats": [ + 62 + ], + "headers": { + "azure-regionname": "", + "azure-sitename": "", + "azure-slotname": "", + "azure-version": "" + }, + "cookies": { + "ARRAffinity": "", + "TiPMix": "" + }, + "icon": "azure.svg", + "website": "https://azure.microsoft.com" + }, + "Azure CDN": { + "cats": [ + 31 + ], + "headers": { + "server": "^(?:ECAcc|ECS|ECD)", + "X-EC-Debug": "" }, - "website": "http://www.accessibleportal.com" + "icon": "azure.svg", + "website": "https://azure.microsoft.com/en-us/services/cdn/" }, "Acquia Cloud": { "cats": [ - 22 + 62 ], "headers": { "X-AH-Environment": "^\\w+$" }, "icon": "acquia-cloud.png", - "implies": "Drupal\\;confidence:95", + "implies": [ + "Drupal\\;confidence:95", + "Apache", + "Percona", + "Amazon EC2" + ], "website": "https://www.acquia.com/" }, "Act-On": { @@ -164,6 +215,23 @@ "script": "adinfinity\\.com\\.au", "website": "http://adinfinity.com.au" }, + "AdOcean": { + "cats": [ + 36 + ], + "icon": "AdOcean.png", + "implies": "Gemius", + "js": { + "ado.master": "", + "ado.slave": "", + "ado.placement": "" + }, + "script": [ + "adocean\\.pl/files/js/ado\\.js", + "adocean\\.pl\\;confidence:80" + ], + "website": "https://adocean-global.com" + }, "AdRiver": { "cats": [ 36 @@ -264,6 +332,7 @@ "cats": [ 18 ], + "cpe": "cpe:/a:adobe:coldfusion", "headers": { "Cookie": "CFTOKEN=" }, @@ -277,23 +346,40 @@ "url": "\\.cfm(?:$|\\?)", "website": "http://adobe.com/products/coldfusion-family.html" }, + "Adobe DTM": { + "cats": [ + 42 + ], + "js": { + "_satellite": "" + }, + "icon": "adobedmt.png", + "website": "https://marketing.adobe.com/resources/help/en_US/dtm/c_overview.html" + }, "Adobe Experience Manager": { "cats": [ 1 ], + "cpe": "cpe:/a:adobe:experience_manager", "html": [ "
]+data-component-path=\"[^\"+]jcr:" + "]+data-component-path=\"[^\"+]jcr:", + "
]+?action=\"[^\"]+airform.io" + ], + "icon": "Airform.svg", + "website": "https://airform.io" + }, "Akamai": { "cats": [ 31 @@ -454,6 +585,7 @@ 18, 22 ], + "cpe": "cpe:/a:lightbend:akka_http", "headers": { "Server": "akka-http(?:/([\\d.]+))?\\;version:\\1" }, @@ -467,7 +599,7 @@ "icon": "Algolia Realtime Search.svg", "js": { "AlgoliaSearch": "", - "algoliasearch.version": "(.*)\\;version:\\1" + "algoliasearch.version": "^(.+)$\\;version:\\1" }, "website": "http://www.algolia.com" }, @@ -475,10 +607,11 @@ "cats": [ 54 ], + "cpe": "cpe:/a:semperfiwebdesign:all_in_one_seo_pack", "html": "", "]+(?:typolight|contao)\\.css" @@ -2015,6 +2357,7 @@ "cats": [ 1 ], + "cpe": "cpe:/a:contenido:contendio", "icon": "Contenido.png", "implies": "PHP", "meta": { @@ -2022,11 +2365,11 @@ }, "website": "http://contenido.org/en" }, - "Contens": { + "Contensis": { "cats": [ 1 ], - "icon": "Contens.png", + "icon": "Contensis.png", "implies": [ "Java", "CFML" @@ -2034,7 +2377,7 @@ "meta": { "generator": "Contensis CMS Version ([\\d.]+)\\;version:\\1" }, - "website": "http://www.contens.com/en/pub/index.cfm" + "website": "https://zengenti.com/en-gb/products/contensis" }, "ContentBox": { "cats": [ @@ -2068,6 +2411,7 @@ "cats": [ 7 ], + "cpe": "cpe:/a:coppermine-gallery:coppermine_photo_gallery", "html": "", + "website": "https://www.docker.com/" + }, "Dojo": { "cats": [ 59 ], + "cpe": "cpe:/a:dojotoolkit:dojo", "icon": "Dojo.png", "js": { "dojo": "", - "dojo.version.major": "(.*)\\;version:\\1" + "dojo.version.major": "^(.+)$\\;version:\\1" }, "script": "([\\d.]+)/dojo/dojo(?:\\.xd)?\\.js\\;version:\\1", "website": "https://dojotoolkit.org" @@ -2545,10 +2998,15 @@ "cookies": { "DokuWiki": "" }, + "cpe": "cpe:/a:dokuwiki:dokuwiki", + "html": [ + "]+id=\"dokuwiki__>", + "]+href=\"#dokuwiki__" + ], "icon": "DokuWiki.png", "implies": "PHP", "meta": { - "generator": "^DokuWiki( Release [\\-\\d]+)?\\;version:\\1" + "generator": "^DokuWiki( Release [\\d-]+)?\\;version:\\1" }, "website": "https://www.dokuwiki.org" }, @@ -2556,6 +3014,7 @@ "cats": [ 1 ], + "cpe": "cpe:/a:dotclear:dotclear", "headers": { "X-Dotclear-Static-Cache": "" }, @@ -2613,46 +3072,55 @@ "cats": [ 4 ], + "cpe": "cpe:/a:doxygen:doxygen", "html": "(?:", - "]*onclick=\"gemius_hit", + "website": "https://www.gemius.com" }, "Gentoo": { "cats": [ 28 ], + "cpe": "cpe:/o:gentoo:linux", "headers": { "X-Powered-By": "gentoo" }, @@ -3453,6 +4080,7 @@ "cats": [ 1 ], + "cpe": "cpe:/a:get-simple:getsimple_cms", "icon": "GetSimple CMS.png", "implies": "PHP", "meta": { @@ -3487,14 +4115,16 @@ }, "GitHub Pages": { "cats": [ - 31 + 62 ], "headers": { "Server": "^GitHub\\.com$", "X-GitHub-Request-Id": "" }, "icon": "GitHub.svg", - "implies": "Ruby on Rails", + "implies": [ + "Ruby on Rails" + ], "url": "^https?://[^/]+\\.github\\.io/", "website": "https://pages.github.com/" }, @@ -3540,6 +4170,7 @@ "cookies": { "i_like_gitea": "" }, + "cpe": "cpe:/a:gitea:gitea", "html": [ "
\\n\\s+© Gitea Version: ([\\d.]+)\\;version:\\1" ], @@ -3564,6 +4195,7 @@ "cats": [ 22 ], + "cpe": "cpe:/a:oracle:glassfish_server", "headers": { "Server": "GlassFish(?: Server)?(?: Open Source Edition)?(?: ?/?([\\d.]+))?\\;version:\\1" }, @@ -3585,6 +4217,7 @@ "cats": [ 27 ], + "cpe": "cpe:/a:golang:go", "icon": "Go.svg", "website": "https://golang.org" }, @@ -3592,12 +4225,37 @@ "cats": [ 22 ], + "cpe": "cpe:/a:embedthis:goahead", "headers": { "Server": "GoAhead" }, "icon": "GoAhead.png", "website": "http://embedthis.com/products/goahead/index.html" }, + "GoDaddy Website Builder": { + "cats": [ + 1 + ], + "cookies": { + "dps_site_id": "" + }, + "icon": "godaddy.svg", + "meta": { + "generator": "Go Daddy Website Builder (.+)\\;version:\\1" + }, + "website": "https://www.godaddy.com/websites/website-builder" + }, + "GoJS": { + "cats": [ + 25 + ], + "icon": "GoJS.png", + "website": "https://gojs.net/", + "js": { + "go.version": "(.*)\\;version:\\1", + "go.GraphObject": "" + } + }, "GoSquared": { "cats": [ 10, @@ -3629,6 +4287,7 @@ "cookies": { "i_like_gogits": "" }, + "cpe": "cpe:/a:gogs:gogs", "html": [ "
\\n\\s+© \\d{4} Gogs Version: ([\\d.]+) Page:\\;version:\\1", " + + +
+
+
diff --git a/src/drivers/webextension/images/logo-purple.svg b/src/drivers/webextension/images/logo-purple.svg new file mode 100644 index 000000000..e5e67bb21 --- /dev/null +++ b/src/drivers/webextension/images/logo-purple.svg @@ -0,0 +1,29 @@ + + + + Logo + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/src/drivers/webextension/js/content.js b/src/drivers/webextension/js/content.js index be07c97c0..82713d79b 100644 --- a/src/drivers/webextension/js/content.js +++ b/src/drivers/webextension/js/content.js @@ -1,17 +1,34 @@ /** global: browser */ /** global: XMLSerializer */ -if ( typeof browser !== 'undefined' && typeof document.body !== 'undefined' ) { +/* global browser */ +/* eslint-env browser */ + +const port = browser.runtime.connect({ + name: 'content.js', +}); + +if (typeof browser !== 'undefined' && typeof document.body !== 'undefined') { try { - sendMessage('init', {}); + port.postMessage({ id: 'init' }); // HTML - var html = new XMLSerializer().serializeToString(document).split('\n'); + let html = new XMLSerializer().serializeToString(document); + + const chunks = []; + const maxCols = 2000; + const maxRows = 3000; + const rows = html.length / maxCols; + + let i; - html = html - .slice(0, 1000).concat(html.slice(html.length - 1000)) - .map(line => line.substring(0, 1000)) - .join('\n'); + for (i = 0; i < rows; i += 1) { + if (i < maxRows / 2 || i > rows - maxRows / 2) { + chunks.push(html.slice(i * maxCols, (i + 1) * maxCols)); + } + } + + html = chunks.join('\n'); // Scripts const scripts = Array.prototype.slice @@ -20,52 +37,51 @@ if ( typeof browser !== 'undefined' && typeof document.body !== 'undefined' ) { .map(script => script.src) .filter(script => script.indexOf('data:text/javascript;') !== 0); - sendMessage('analyze', { html, scripts }); + port.postMessage({ id: 'analyze', subject: { html, scripts } }); // JavaScript variables const script = document.createElement('script'); script.onload = () => { - const onMessage = event => { + const onMessage = (event) => { if (event.data.id !== 'js') { return; } - removeEventListener('message', onMessage); + window.removeEventListener('message', onMessage); - sendMessage('analyze', { js: event.data.js }); + port.postMessage({ id: 'analyze', subject: { js: event.data.js } }); script.remove(); }; - addEventListener('message', onMessage); + window.addEventListener('message', onMessage); - sendMessage('get_js_patterns', {}, response => { - if (response) { - postMessage({ - id: 'patterns', - patterns: response.patterns - }, '*'); - } - }); + port.postMessage({ id: 'get_js_patterns' }); }; script.setAttribute('src', browser.extension.getURL('js/inject.js')); document.body.appendChild(script); - } catch (e) { - sendMessage('log', e); + } catch (error) { + port.postMessage({ id: 'log', subject: error }); } } -function sendMessage(id, subject, callback) { - (chrome || browser).runtime.sendMessage({ - id, - subject, - source: 'content.js' - }, callback || ( () => {} )); -} +port.onMessage.addListener((message) => { + switch (message.id) { + case 'get_js_patterns': + postMessage({ + id: 'patterns', + patterns: message.response.patterns, + }, window.location.href); + + break; + default: + // Do nothing + } +}); // https://stackoverflow.com/a/44774834 // https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/executeScript#Return_value -undefined; +undefined; // eslint-disable-line no-unused-expressions diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js index 988d53d12..71add9c5e 100644 --- a/src/drivers/webextension/js/driver.js +++ b/src/drivers/webextension/js/driver.js @@ -2,38 +2,61 @@ * WebExtension driver */ +/* eslint-env browser */ +/* global browser, chrome, fetch, Wappalyzer */ + /** global: browser */ +/** global: chrome */ +/** global: fetch */ /** global: Wappalyzer */ const wappalyzer = new Wappalyzer(); -var tabCache = {}; -var categoryOrder = []; -var options = {}; -var robotsTxtQueue = {}; +const tabCache = {}; +const robotsTxtQueue = {}; + +let categoryOrder = []; -browser.tabs.onRemoved.addListener(tabId => { +browser.tabs.onRemoved.addListener((tabId) => { tabCache[tabId] = null; }); +function userAgent() { + const url = chrome.extension.getURL('/'); + + if (url.match(/^chrome-/)) { + return 'chrome'; + } + + if (url.match(/^moz-/)) { + return 'firefox'; + } + + if (url.match(/^ms-browser-/)) { + return 'edge'; + } +} + /** * Get a value from localStorage */ function getOption(name, defaultValue = null) { - return new Promise((resolve, reject) => { - const callback = item => { - options[name] = item.hasOwnProperty(name) ? item[name] : defaultValue; + return new Promise(async (resolve, reject) => { + let value = defaultValue; - resolve(options[name]); - }; + try { + const option = await browser.storage.local.get(name); - browser.storage.local.get(name) - .then(callback) - .catch(error => { - wappalyzer.log(error, 'driver', 'error') + if (option[name] !== undefined) { + value = option[name]; + } + } catch (error) { + wappalyzer.log(error.message, 'driver', 'error'); + + return reject(error.message); + } - reject(); - }); + return resolve(value); }); } @@ -41,13 +64,17 @@ function getOption(name, defaultValue = null) { * Set a value in localStorage */ function setOption(name, value) { - const option = {}; + return new Promise(async (resolve, reject) => { + try { + await browser.storage.local.set({ [name]: value }); + } catch (error) { + wappalyzer.log(error.message, 'driver', 'error'); - option[name] = value; - - browser.storage.local.set(option); + return reject(error.message); + } - options[name] = value; + return resolve(); + }); } /** @@ -56,129 +83,88 @@ function setOption(name, value) { function openTab(args) { browser.tabs.create({ url: args.url, - active: args.background === undefined || !args.background + active: args.background === undefined || !args.background, }); } /** * Make a POST request */ -function post(url, body) { - fetch(url, { - method: 'POST', - body: JSON.stringify(body) - }) - .then(response => wappalyzer.log(`POST ${url}: ${response.status}`, 'driver')) - .catch(error => wappalyzer.log(`POST ${url}: ${error}`, 'driver', 'error')); -} - -fetch('../apps.json') - .then(response => response.json()) - .then(json => { - wappalyzer.apps = json.apps; - wappalyzer.categories = json.categories; - - wappalyzer.parseJsPatterns(); - - categoryOrder = Object.keys(wappalyzer.categories) - .map(categoryId => parseInt(categoryId, 10)) - .sort((a, b) => wappalyzer.categories[a].priority - wappalyzer.categories[b].priority); - }) - .catch(error => wappalyzer.log(`GET apps.json: ${error}`, 'driver', 'error')); - -// Version check -let version = browser.runtime.getManifest().version; - -getOption('version') - .then(previousVersion => { - if (previousVersion === null) { - openTab({ - url: wappalyzer.config.websiteURL + 'installed' - }); - } else if (version !== previousVersion) { - getOption('upgradeMessage', true) - .then(upgradeMessage => { - if (upgradeMessage) { - openTab({ - url: wappalyzer.config.websiteURL + 'upgraded?v' + version, - background: true - }); - } - }); - } - - setOption('version', version); - }); - -getOption('dynamicIcon', true); -getOption('pinnedCategory'); - -getOption('hostnameCache', {}).then(hostnameCache => wappalyzer.hostnameCache = hostnameCache); +async function post(url, body) { + try { + const response = await fetch(url, { + method: 'POST', + body: JSON.stringify(body), + }); -// Run content script on all tabs -browser.tabs.query({ url: [ 'http://*/*', 'https://*/*' ] }) - .then(tabs => { - tabs.forEach(tab => { - browser.tabs.executeScript(tab.id, { - file: '../js/content.js' - }); - }) - }) - .catch(error => wappalyzer.log(error, 'driver', 'error')); + wappalyzer.log(`POST ${url}: ${response.status}`, 'driver'); + } catch (error) { + wappalyzer.log(`POST ${url}: ${error}`, 'driver', 'error'); + } +} // Capture response headers -browser.webRequest.onCompleted.addListener(request => { +browser.webRequest.onCompleted.addListener(async (request) => { const headers = {}; if (request.responseHeaders) { const url = wappalyzer.parseUrl(request.url); - browser.tabs.query({ url: [ url.href ] }) - .then(tabs => { - const tab = tabs[0] || null; + let tab; - if (tab) { - request.responseHeaders.forEach(header => { - const name = header.name.toLowerCase(); + try { + [tab] = await browser.tabs.query({ url: [url.href] }); + } catch (error) { + wappalyzer.log(error, 'driver', 'error'); + } - headers[name] = headers[name] || []; + if (tab) { + request.responseHeaders.forEach((header) => { + const name = header.name.toLowerCase(); - headers[name].push((header.value || header.binaryValue || '').toString()); - }); + headers[name] = headers[name] || []; - if (headers['content-type'] && /\/x?html/.test(headers['content-type'][0])) { - wappalyzer.analyze(url, { headers }, { tab }); - } - } - }) - .catch(error => wappalyzer.log(error, 'driver', 'error')); + headers[name].push((header.value || header.binaryValue || '').toString()); + }); + + if (headers['content-type'] && /\/x?html/.test(headers['content-type'][0])) { + wappalyzer.analyze(url, { headers }, { tab }); + } + } } -}, { urls: [ 'http://*/*', 'https://*/*' ], types: [ 'main_frame' ] }, [ 'responseHeaders' ]); +}, { urls: ['http://*/*', 'https://*/*'], types: ['main_frame'] }, ['responseHeaders']); + +browser.runtime.onConnect.addListener((port) => { + port.onMessage.addListener(async (message) => { + if (message.id === undefined) { + return; + } -// Listen for messages -(chrome || browser).runtime.onMessage.addListener((message, sender, sendResponse) => { - if (typeof message.id != 'undefined') { if (message.id !== 'log') { - wappalyzer.log('Message' + (message.source ? ' from ' + message.source : '') + ': ' + message.id, 'driver'); + wappalyzer.log(`Message from ${port.name}: ${message.id}`, 'driver'); } - let url = wappalyzer.parseUrl(sender.tab ? sender.tab.url : ''); + const pinnedCategory = await getOption('pinnedCategory'); + + const url = wappalyzer.parseUrl(port.sender.tab ? port.sender.tab.url : ''); + + const cookies = await browser.cookies.getAll({ domain: `.${url.hostname}` }); + let response; - switch ( message.id ) { + switch (message.id) { case 'log': wappalyzer.log(message.subject, message.source); break; case 'init': - browser.cookies.getAll({ domain: '.' + url.hostname }) - .then(cookies => wappalyzer.analyze(url, { cookies }, { tab: sender.tab })); + wappalyzer.analyze(url, { cookies }, { tab: port.sender.tab }); break; case 'analyze': - wappalyzer.analyze(url, message.subject, { tab: sender.tab }); + wappalyzer.analyze(url, message.subject, { tab: port.sender.tab }); - setOption('hostnameCache', wappalyzer.hostnameCache); + await setOption('hostnameCache', wappalyzer.hostnameCache); break; case 'ad_log': @@ -190,27 +176,39 @@ browser.webRequest.onCompleted.addListener(request => { tabCache: tabCache[message.tab.id], apps: wappalyzer.apps, categories: wappalyzer.categories, - pinnedCategory: options.pinnedCategory, + pinnedCategory, + termsAccepted: userAgent() === 'chrome' || await getOption('termsAccepted', false), }; break; case 'set_option': - setOption(message.key, message.value); + await setOption(message.key, message.value); break; case 'get_js_patterns': response = { - patterns: wappalyzer.jsPatterns + patterns: wappalyzer.jsPatterns, + }; + + break; + case 'update_theme_mode': + // Sync theme mode to popup. + response = { + themeMode: await getOption('themeMode', false), }; break; default: + // Do nothing } - sendResponse(response); - } - - return true; + if (response) { + port.postMessage({ + id: message.id, + response, + }); + } + }); }); wappalyzer.driver.document = document; @@ -219,50 +217,51 @@ wappalyzer.driver.document = document; * Log messages to console */ wappalyzer.driver.log = (message, source, type) => { - console.log(`[wappalyzer ${type}]`, `[${source}]`, message); + const log = ['warn', 'error'].indexOf(type) !== -1 ? type : 'log'; + + console[log](`[wappalyzer ${type}]`, `[${source}]`, message); // eslint-disable-line no-console }; /** * Display apps */ -wappalyzer.driver.displayApps = (detected, meta, context) => { - let tab = context.tab; +wappalyzer.driver.displayApps = async (detected, meta, context) => { + const { tab } = context; if (tab === undefined) { return; } tabCache[tab.id] = tabCache[tab.id] || { - detected: [] + detected: [], }; tabCache[tab.id].detected = detected; + const pinnedCategory = await getOption('pinnedCategory'); + const dynamicIcon = await getOption('dynamicIcon', true); + let found = false; // Find the main application to display - [ options.pinnedCategory ].concat(categoryOrder).forEach(match => { - Object.keys(detected).forEach(appName => { - let app = detected[appName]; + [pinnedCategory].concat(categoryOrder).forEach((match) => { + Object.keys(detected).forEach((appName) => { + const app = detected[appName]; - app.props.cats.forEach(category => { + app.props.cats.forEach((category) => { if (category === match && !found) { - let icon = app.props.icon || 'default.svg'; - - if (!options.dynamicIcon) { - icon = 'default.svg'; - } + let icon = app.props.icon && dynamicIcon ? app.props.icon : 'default.svg'; if (/\.svg$/i.test(icon)) { - icon = 'converted/' + icon.replace(/\.svg$/, '.png'); + icon = `converted/${icon.replace(/\.svg$/, '.png')}`; } try { browser.pageAction.setIcon({ tabId: tab.id, - path: '../images/icons/' + icon + path: `../images/icons/${icon}`, }); - } catch(e) { + } catch (e) { // Firefox for Android does not support setIcon see https://bugzilla.mozilla.org/show_bug.cgi?id=1331746 } @@ -272,57 +271,53 @@ wappalyzer.driver.displayApps = (detected, meta, context) => { }); }); - if (typeof chrome !== 'undefined') { - // Browser polyfill doesn't seem to work here - chrome.pageAction.show(tab.id); - } else { - browser.pageAction.show(tab.id); - } + browser.pageAction.show(tab.id); }; /** * Fetch and cache robots.txt for host */ -wappalyzer.driver.getRobotsTxt = (host, secure = false) => { - if (robotsTxtQueue.hasOwnProperty(host)) { +wappalyzer.driver.getRobotsTxt = async (host, secure = false) => { + if (robotsTxtQueue[host]) { return robotsTxtQueue[host]; } - robotsTxtQueue[host] = new Promise(resolve => { - getOption('tracking', true) - .then(tracking => { - if (!tracking) { - return resolve([]); - } + const tracking = await getOption('tracking', true); + const robotsTxtCache = await getOption('robotsTxtCache', {}); - getOption('robotsTxtCache') - .then(robotsTxtCache => { - robotsTxtCache = robotsTxtCache || {}; + robotsTxtQueue[host] = new Promise(async (resolve) => { + if (!tracking) { + return resolve([]); + } + + if (host in robotsTxtCache) { + return resolve(robotsTxtCache[host]); + } - if ( host in robotsTxtCache ) { - return resolve(robotsTxtCache[host]); - } + const timeout = setTimeout(() => resolve([]), 3000); - const timeout = setTimeout(() => resolve([]), 3000); + let response; - fetch('http' + (secure ? 's' : '') + '://' + host + '/robots.txt', { redirect: 'follow' }) - .then(response => { - clearTimeout(timeout); + try { + response = await fetch(`http${secure ? 's' : ''}://${host}/robots.txt`, { redirect: 'follow' }); + } catch (error) { + wappalyzer.log(error, 'driver', 'error'); - return response.ok ? response.text() : ''; - }) - .then(robotsTxt => { - robotsTxtCache[host] = wappalyzer.parseRobotsTxt(robotsTxt); + return resolve([]); + } - setOption('robotsTxtCache', robotsTxtCache); + clearTimeout(timeout); - resolve(robotsTxtCache[host]); - }) - .catch(() => resolve([])); - }); - }); - }) - .finally(() => delete robotsTxtQueue[host]); + const robotsTxt = response.ok ? await response.text() : ''; + + robotsTxtCache[host] = Wappalyzer.parseRobotsTxt(robotsTxt); + + await setOption('robotsTxtCache', robotsTxtCache); + + delete robotsTxtQueue[host]; + + return resolve(robotsTxtCache[host]); + }); return robotsTxtQueue[host]; }; @@ -330,19 +325,77 @@ wappalyzer.driver.getRobotsTxt = (host, secure = false) => { /** * Anonymously track detected applications for research purposes */ -wappalyzer.driver.ping = (hostnameCache = {}, adCache = []) => { - getOption('tracking', true) - .then(tracking => { - if (tracking) { - if (Object.keys(hostnameCache).length) { - post('https://api.wappalyzer.com/ping/v1/', hostnameCache); - } +wappalyzer.driver.ping = async (hostnameCache = {}, adCache = []) => { + const tracking = await getOption('tracking', true); + const termsAccepted = userAgent() === 'chrome' || await getOption('termsAccepted', false); - if (adCache.length) { - post('https://ad.wappalyzer.com/log/wp/', adCache); - } + if (tracking && termsAccepted) { + if (Object.keys(hostnameCache).length) { + post('https://api.wappalyzer.com/ping/v1/', hostnameCache); + } + + if (adCache.length) { + post('https://ad.wappalyzer.com/log/wp/', adCache); + } + + await setOption('robotsTxtCache', {}); + } +}; + +// Init +(async () => { + // Technologies + try { + const response = await fetch('../apps.json'); + const json = await response.json(); + + wappalyzer.apps = json.apps; + wappalyzer.categories = json.categories; + } catch (error) { + wappalyzer.log(`GET apps.json: ${error.message}`, 'driver', 'error'); + } + + wappalyzer.parseJsPatterns(); - setOption('robotsTxtCache', {}); + categoryOrder = Object.keys(wappalyzer.categories) + .map(categoryId => parseInt(categoryId, 10)) + .sort((a, b) => wappalyzer.categories[a].priority - wappalyzer.categories[b].priority); + + // Version check + const { version } = browser.runtime.getManifest(); + const previousVersion = await getOption('version'); + const upgradeMessage = await getOption('upgradeMessage', true); + + if (previousVersion === null) { + openTab({ + url: `${wappalyzer.config.websiteURL}installed`, + }); + } else if (version !== previousVersion && upgradeMessage) { + openTab({ + url: `${wappalyzer.config.websiteURL}upgraded?v${version}`, + background: true, + }); + } + + await setOption('version', version); + + // Hostname cache + wappalyzer.hostnameCache = await getOption('hostnameCache', {}); + + // Run content script on all tabs + try { + const tabs = await browser.tabs.query({ url: ['http://*/*', 'https://*/*'] }); + + tabs.forEach(async (tab) => { + try { + await browser.tabs.executeScript(tab.id, { + file: '../js/content.js', + }); + } catch (error) { + // } }); -}; + } catch (error) { + wappalyzer.log(error, 'driver', 'error'); + } +})(); diff --git a/src/drivers/webextension/js/inject.js b/src/drivers/webextension/js/inject.js index 322c21374..3e9a6658f 100644 --- a/src/drivers/webextension/js/inject.js +++ b/src/drivers/webextension/js/inject.js @@ -1,12 +1,14 @@ +/* eslint-env browser */ + (() => { - try { - const detectJs = chain => { + try { + const detectJs = (chain) => { const properties = chain.split('.'); let value = properties.length ? window : null; - for (let i = 0; i < properties.length; i ++) { - let property = properties[i]; + for (let i = 0; i < properties.length; i++) { + const property = properties[i]; if (value && value.hasOwnProperty(property)) { value = value[property]; @@ -20,7 +22,7 @@ return typeof value === 'string' || typeof value === 'number' ? value : !!value; }; - const onMessage = event => { + const onMessage = (event) => { if (event.data.id !== 'patterns') { return; } @@ -31,15 +33,15 @@ const js = {}; - for (let appName in patterns) { + for (const appName in patterns) { if (patterns.hasOwnProperty(appName)) { js[appName] = {}; - for (let chain in patterns[appName]) { + for (const chain in patterns[appName]) { if (patterns[appName].hasOwnProperty(chain)) { js[appName][chain] = {}; - for (let index in patterns[appName][chain]) { + for (const index in patterns[appName][chain]) { const value = detectJs(chain); if (value && patterns[appName][chain].hasOwnProperty(index)) { @@ -51,11 +53,11 @@ } } - postMessage({ id: 'js', js }, '*'); + postMessage({ id: 'js', js }, window.location.href); }; addEventListener('message', onMessage); - } catch(e) { + } catch (e) { // Fail quietly } })(); diff --git a/src/drivers/webextension/js/jsontodom.js b/src/drivers/webextension/js/jsontodom.js deleted file mode 100644 index c6506c4fb..000000000 --- a/src/drivers/webextension/js/jsontodom.js +++ /dev/null @@ -1,63 +0,0 @@ -jsonToDOM.namespaces = { - html: "http://www.w3.org/1999/xhtml", - xul: "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" -}; - -jsonToDOM.defaultNamespace = jsonToDOM.namespaces.html; - -function jsonToDOM(jsonTemplate, doc, nodes) { - function namespace(name) { - var reElemNameParts = /^(?:(.*):)?(.*)$/.exec(name); - return { namespace: jsonToDOM.namespaces[reElemNameParts[1]], shortName: reElemNameParts[2] }; - } - - // Note that 'elemNameOrArray' is: either the full element name (eg. [html:]div) or an array of elements in JSON notation - function tag(elemNameOrArray, elemAttr) { - // Array of elements? Parse each one... - if (Array.isArray(elemNameOrArray)) { - var frag = doc.createDocumentFragment(); - Array.prototype.forEach.call(arguments, function(thisElem) { - frag.appendChild(tag.apply(null, thisElem)); - }); - return frag; - } - - // Single element? Parse element namespace prefix (if none exists, default to defaultNamespace), and create element - var elemNs = namespace(elemNameOrArray); - var elem = doc.createElementNS(elemNs.namespace || jsonToDOM.defaultNamespace, elemNs.shortName); - - // Set element's attributes and/or callback functions (eg. onclick) - for (var key in elemAttr) { - var val = elemAttr[key]; - if (nodes && key == "key") { - nodes[val] = elem; - continue; - } - - var attrNs = namespace(key); - if (typeof val == "function") { - // Special case for function attributes; don't just add them as 'on...' attributes, but as events, using addEventListener - elem.addEventListener(key.replace(/^on/, ""), val, false); - } - else { - // Note that the default namespace for XML attributes is, and should be, blank (ie. they're not in any namespace) - elem.setAttributeNS(attrNs.namespace || "", attrNs.shortName, val); - } - } - - // Create and append this element's children - var childElems = Array.prototype.slice.call(arguments, 2); - childElems.forEach(function(childElem) { - if (childElem != null) { - elem.appendChild( - childElem instanceof doc.defaultView.Node ? childElem : - Array.isArray(childElem) ? tag.apply(null, childElem) : - doc.createTextNode(childElem)); - } - }); - - return elem; - } - - return tag.apply(null, jsonTemplate); -} diff --git a/src/drivers/webextension/js/iframe.js b/src/drivers/webextension/js/lib/iframe.js similarity index 96% rename from src/drivers/webextension/js/iframe.js rename to src/drivers/webextension/js/lib/iframe.js index 883ebea71..b50e63629 100644 --- a/src/drivers/webextension/js/iframe.js +++ b/src/drivers/webextension/js/lib/iframe.js @@ -6,6 +6,7 @@ var exports = {}; (function(exports) { + var port = browser.runtime.connect({name:"adparser"}); var utils = { normalizeUrl: function(url) { @@ -119,12 +120,9 @@ var exports = {}; } return dict; }, - sendToBackground: function(message, event, responseMessage, onResponse) { - if ( typeof browser !== 'undefined' ) { - var response = browser.runtime.sendMessage(message); - response.then(onResponse); - } else if ( typeof chrome !== 'undefined' ) { - chrome.runtime.sendMessage(message, onResponse); + sendToBackground: function(message, event, responseMessage) { + if ( typeof browser !== 'undefined' || typeof chrome !== 'undefined' ) { + port.postMessage(message); } else if ( window.self.port ) { window.self.port.on(responseMessage, onResponse); window.self.port.emit(event, message); @@ -132,25 +130,28 @@ var exports = {}; }, askIfTrackingEnabled: function(callback, elseCallback) { + utilCallback = callback; + utilElseCallback = elseCallback; this.sendToBackground( 'is_tracking_enabled', '', - 'tracking_enabled_response', - function(message) { - if ( message && message.tracking_enabled ) { - - callback(); - } else { - - elseCallback(); - } - } + 'tracking_enabled_response' ); } }; + port.onMessage.addListener((message) => { + if ( message && message.tracking_enabled ) { + + utilCallback(); + } else { + + utilElseCallback(); + } + }); + utils.SCRIPT_IN_FRIENDLY_IFRAME = !utils.SCRIPT_IN_WINDOW_TOP && utils.isFriendlyWindow(window.parent); utils.SCRIPT_IN_HOSTILE_IFRAME = !utils.SCRIPT_IN_WINDOW_TOP && !utils.SCRIPT_IN_FRIENDLY_IFRAME; @@ -181,7 +182,7 @@ var exports = {}; video_assets: opt_video_assets, assets: opt_assets, version: '3', - mrev: '4aeaa5a-c', + mrev: '15a9f21-d', msgNum: this.msgNum, timestamp: new Date().getTime(), pageVis: document.visibilityState, @@ -195,6 +196,8 @@ var exports = {}; utils.LogGenerator = LogGenerator; + let utilCallback, utilElseCallback; + exports.utils = utils; })(exports); @@ -890,7 +893,7 @@ var exports = {}; var _pageTags; var INIT_MS_BW_SEARCHES = 2000; var PAGE_TAG_RE = new RegExp('gpt|oascentral'); - var POST_MSG_ID = '1519242200-10756-12873-1462-13403'; + var POST_MSG_ID = '1554456894-8541-12665-19466-15909'; var AD_SERVER_RE = new RegExp('^(google_ads_iframe|oas_frame|atwAdFrame)'); function getPageTags(doc) { @@ -1028,13 +1031,17 @@ var exports = {}; myWin = window.document.defaultView, ifrTag; - try { + if ( typeof event.data === "string" && event.data.indexOf(POST_MSG_ID) != -1 ) { + try { - adData = JSON.parse(event.data); - } catch(e) { + adData = JSON.parse(event.data); + } catch (e) { - return; + return; + } } + else + return; if ( adData.postMessageId === POST_MSG_ID ) { @@ -1080,19 +1087,14 @@ var exports = {}; } function addBackgroundListener(event, callback) { - if ( typeof browser !== 'undefined' ) { + if ( typeof browser !== 'undefined' || typeof chrome !== 'undefined' ) { browser.runtime.onMessage.addListener(function(msg) { if ( msg.event === event ) { callback(msg); } }); - } else if ( typeof chrome !== 'undefined' ) { - chrome.runtime.onMessage.addListener(function(msg) { - if ( msg.event === event ) { - callback(msg); - } - }); - } else if ( window.self.port ) { + } + else if (window.self.port) { window.self.port.on(event, callback); } } diff --git a/src/drivers/webextension/js/lib/jsontodom.js b/src/drivers/webextension/js/lib/jsontodom.js new file mode 100644 index 000000000..24d9e4c29 --- /dev/null +++ b/src/drivers/webextension/js/lib/jsontodom.js @@ -0,0 +1,63 @@ +jsonToDOM.namespaces = { + html: 'http://www.w3.org/1999/xhtml', + xul: 'http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul', +}; + +jsonToDOM.defaultNamespace = jsonToDOM.namespaces.html; + +function jsonToDOM(jsonTemplate, doc, nodes) { + function namespace(name) { + const reElemNameParts = /^(?:(.*):)?(.*)$/.exec(name); + return { namespace: jsonToDOM.namespaces[reElemNameParts[1]], shortName: reElemNameParts[2] }; + } + + // Note that 'elemNameOrArray' is: either the full element name (eg. [html:]div) or an array of elements in JSON notation + function tag(elemNameOrArray, elemAttr) { + // Array of elements? Parse each one... + if (Array.isArray(elemNameOrArray)) { + const frag = doc.createDocumentFragment(); + Array.prototype.forEach.call(arguments, (thisElem) => { + frag.appendChild(tag(...thisElem)); + }); + return frag; + } + + // Single element? Parse element namespace prefix (if none exists, default to defaultNamespace), and create element + const elemNs = namespace(elemNameOrArray); + const elem = doc.createElementNS(elemNs.namespace || jsonToDOM.defaultNamespace, elemNs.shortName); + + // Set element's attributes and/or callback functions (eg. onclick) + for (const key in elemAttr) { + const val = elemAttr[key]; + if (nodes && key == 'key') { + nodes[val] = elem; + continue; + } + + const attrNs = namespace(key); + if (typeof val === 'function') { + // Special case for function attributes; don't just add them as 'on...' attributes, but as events, using addEventListener + elem.addEventListener(key.replace(/^on/, ''), val, false); + } else { + // Note that the default namespace for XML attributes is, and should be, blank (ie. they're not in any namespace) + elem.setAttributeNS(attrNs.namespace || '', attrNs.shortName, val); + } + } + + // Create and append this element's children + const childElems = Array.prototype.slice.call(arguments, 2); + childElems.forEach((childElem) => { + if (childElem != null) { + elem.appendChild( + childElem instanceof doc.defaultView.Node ? childElem + : Array.isArray(childElem) ? tag(...childElem) + : doc.createTextNode(childElem), + ); + } + }); + + return elem; + } + + return tag(...jsonTemplate); +} diff --git a/src/drivers/webextension/js/network.js b/src/drivers/webextension/js/lib/network.js similarity index 88% rename from src/drivers/webextension/js/network.js rename to src/drivers/webextension/js/lib/network.js index 6df8237ca..7c46fcf9f 100644 --- a/src/drivers/webextension/js/network.js +++ b/src/drivers/webextension/js/lib/network.js @@ -1,3 +1,4 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i { + port.onMessage.addListener((message) => { + if ( message === 'is_browser_valid' ) { + ifBrowserValid( + port.postMessage({'browser_valid': true}), + port.postMessage({'browser_valid': false}) + ); + } + }); }); - browserProxy.runtime.onMessage.addListener(function(request, sender, sendResponse) { - if ( request === 'is_tracking_enabled' ) { - ifTrackingEnabled( - sender.tab, - function() { - try {sendResponse({'tracking_enabled': true});} - catch(err) {} }, - function() { - try {sendResponse({'tracking_enabled': false});} - catch(err) {}} - ); - } - return true; + browser.runtime.onConnect.addListener((port) => { + port.onMessage.addListener((message) => { + if ( message === 'is_tracking_enabled' ) { + ifTrackingEnabled( + port.sender.tab, + function() { + try {port.postMessage({'tracking_enabled': true});} + catch(err) {} }, + function() { + try {port.postMessage({'tracking_enabled': false});} + catch(err) {} } + ); + } + return true; + }); }); })(); + +},{}]},{},[1]); diff --git a/src/drivers/webextension/js/options.js b/src/drivers/webextension/js/options.js index 4c5d7cc67..03c6ae504 100644 --- a/src/drivers/webextension/js/options.js +++ b/src/drivers/webextension/js/options.js @@ -1,69 +1,105 @@ /** global: browser */ /** global: Wappalyzer */ +/* globals browser Wappalyzer */ +/* eslint-env browser */ const wappalyzer = new Wappalyzer(); -function getOption(name, defaultValue, callback) { - browser.storage.local.get(name) - .then(item => { - callback(item.hasOwnProperty(name) ? item[name] : defaultValue); - }); +/** + * Get a value from localStorage + */ +function getOption(name, defaultValue = null) { + return new Promise(async (resolve, reject) => { + let value = defaultValue; + + try { + const option = await browser.storage.local.get(name); + + if (option[name] !== undefined) { + value = option[name]; + } + } catch (error) { + wappalyzer.log(error.message, 'driver', 'error'); + + return reject(error.message); + } + + return resolve(value); + }); } +/** + * Set a value in localStorage + */ function setOption(name, value) { - ( chrome || browser ).runtime.sendMessage({ - id: 'set_option', - key: name, - value: value + return new Promise(async (resolve, reject) => { + try { + await browser.storage.local.set({ [name]: value }); + } catch (error) { + wappalyzer.log(error.message, 'driver', 'error'); + + return reject(error.message); + } + + return resolve(); }); } -document.addEventListener('DOMContentLoaded', () => { - var nodes = document.querySelectorAll('[data-i18n]'); +document.addEventListener('DOMContentLoaded', async () => { + const nodes = document.querySelectorAll('[data-i18n]'); - Array.prototype.forEach.call(nodes, node => { + Array.prototype.forEach.call(nodes, (node) => { node.childNodes[0].nodeValue = browser.i18n.getMessage(node.dataset.i18n); }); document.querySelector('#github').addEventListener('click', () => { - open(wappalyzer.config.githubURL); + window.open(wappalyzer.config.githubURL); }); document.querySelector('#twitter').addEventListener('click', () => { - open(wappalyzer.config.twitterURL); + window.open(wappalyzer.config.twitterURL); }); document.querySelector('#wappalyzer').addEventListener('click', () => { - open(wappalyzer.config.websiteURL); + window.open(wappalyzer.config.websiteURL); }); - getOption('upgradeMessage', true, value => { - const el = document.querySelector('#option-upgrade-message'); + let el; + let value; - el.checked = value; + // Upgrade message + value = await getOption('upgradeMessage', true); - el.addEventListener('change', () => { - setOption('upgradeMessage', el.checked); - }); - }); + el = document.querySelector('#option-upgrade-message'); - getOption('dynamicIcon', true, value => { - const el = document.querySelector('#option-dynamic-icon'); + el.checked = value; - el.checked = value; + el.addEventListener('change', e => setOption('upgradeMessage', e.target.checked)); - el.addEventListener('change', () => { - setOption('dynamicIcon', el.checked); - }); - }); + // Dynamic icon + value = await getOption('dynamicIcon', true); - getOption('tracking', true, value => { - const el = document.querySelector('#option-tracking'); + el = document.querySelector('#option-dynamic-icon'); - el.checked = value; + el.checked = value; - el.addEventListener('change', () => { - setOption('tracking', el.checked); - }); - }); + el.addEventListener('change', e => setOption('dynamicIcon', e.target.checked)); + + // Tracking + value = await getOption('tracking', true); + + el = document.querySelector('#option-tracking'); + + el.checked = value; + + el.addEventListener('change', e => setOption('tracking', e.target.checked)); + + // Theme Mode + value = await getOption('themeMode', false); + + el = document.querySelector('#option-theme-mode'); + + el.checked = value; + + el.addEventListener('change', e => setOption('themeMode', e.target.checked)); }); diff --git a/src/drivers/webextension/js/popup.js b/src/drivers/webextension/js/popup.js index e846dd0f5..cf5d2d95d 100644 --- a/src/drivers/webextension/js/popup.js +++ b/src/drivers/webextension/js/popup.js @@ -1,61 +1,51 @@ -/** global: chrome */ +/* eslint-env browser */ +/* global browser, jsonToDOM */ + /** global: browser */ +/** global: jsonToDOM */ -var pinnedCategory = null; +let pinnedCategory = null; +let termsAccepted = false; -var func = tabs => { - ( chrome || browser ).runtime.sendMessage({ - id: 'get_apps', - tab: tabs[0], - source: 'popup.js' - }, response => { - pinnedCategory = response.pinnedCategory; +const port = browser.runtime.connect({ + name: 'popup.js', +}); - replaceDomWhenReady(appsToDomTemplate(response)); - }); -}; +function slugify(string) { + return string.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/--+/g, '-').replace(/(?:^-|-$)/, ''); +} -browser.tabs.query({ active: true, currentWindow: true }) - .then(func) - .catch(console.error); +function i18n() { + const nodes = document.querySelectorAll('[data-i18n]'); -function replaceDomWhenReady(dom) { - if ( /complete|interactive|loaded/.test(document.readyState) ) { - replaceDom(dom); - } else { - document.addEventListener('DOMContentLoaded', () => { - replaceDom(dom); - }); - } + Array.prototype.forEach.call(nodes, (node) => { + node.innerHTML = browser.i18n.getMessage(node.dataset.i18n); + }); } function replaceDom(domTemplate) { - var container = document.getElementsByClassName('container')[0]; + const container = document.getElementsByClassName('container')[0]; - while ( container.firstChild ) { + while (container.firstChild) { container.removeChild(container.firstChild); } container.appendChild(jsonToDOM(domTemplate, document, {})); - var nodes = document.querySelectorAll('[data-i18n]'); + i18n(); - Array.prototype.forEach.call(nodes, node => { - node.childNodes[0].nodeValue = browser.i18n.getMessage(node.dataset.i18n); - }); - - Array.from(document.querySelectorAll('.detected__category-pin-wrapper')).forEach(pin => { + Array.from(document.querySelectorAll('.detected__category-pin-wrapper')).forEach((pin) => { pin.addEventListener('click', () => { const categoryId = parseInt(pin.dataset.categoryId, 10); - if ( categoryId === pinnedCategory ) { + if (categoryId === pinnedCategory) { pin.className = 'detected__category-pin-wrapper'; pinnedCategory = null; } else { const active = document.querySelector('.detected__category-pin-wrapper--active'); - if ( active ) { + if (active) { active.className = 'detected__category-pin-wrapper'; } @@ -64,7 +54,7 @@ function replaceDom(domTemplate) { pinnedCategory = categoryId; } - ( chrome || browser ).runtime.sendMessage({ + port.postMessage({ id: 'set_option', key: 'pinnedCategory', value: pinnedCategory, @@ -73,116 +63,125 @@ function replaceDom(domTemplate) { }); } +function replaceDomWhenReady(dom) { + if (/complete|interactive|loaded/.test(document.readyState)) { + replaceDom(dom); + } else { + document.addEventListener('DOMContentLoaded', () => { + replaceDom(dom); + }); + } +} + function appsToDomTemplate(response) { - let template = []; + let template = []; - if ( response.tabCache && Object.keys(response.tabCache.detected).length > 0 ) { + if (response.tabCache && Object.keys(response.tabCache.detected).length > 0) { const categories = {}; // Group apps by category - for ( let appName in response.tabCache.detected ) { - response.apps[appName].cats.forEach(cat => { + for (const appName in response.tabCache.detected) { + response.apps[appName].cats.forEach((cat) => { categories[cat] = categories[cat] || { apps: [] }; categories[cat].apps[appName] = appName; }); } - for ( let cat in categories ) { + for (const cat in categories) { const apps = []; - for ( let appName in categories[cat].apps ) { - let confidence = response.tabCache.detected[appName].confidenceTotal; - let version = response.tabCache.detected[appName].version; + for (const appName in categories[cat].apps) { + const { confidence, version } = response.tabCache.detected[appName]; apps.push( [ 'a', { class: 'detected__app', target: '_blank', - href: 'https://www.wappalyzer.com/technologies/' + slugify(appName) + href: `https://www.wappalyzer.com/technologies/${slugify(appName)}`, }, [ 'img', { class: 'detected__app-icon', - src: '../images/icons/' + (response.apps[appName].icon || 'default.svg') + src: `../images/icons/${response.apps[appName].icon || 'default.svg'}`, }, ], [ 'span', { - class: 'detected__app-name' + class: 'detected__app-name', }, appName, ], version ? [ 'span', { - class: 'detected__app-version' + class: 'detected__app-version', }, - version + version, ] : null, confidence < 100 ? [ 'span', { - class: 'detected__app-confidence' + class: 'detected__app-confidence', }, - confidence + '% sure' - ] : null - ] + `${confidence}% sure`, + ] : null, + ], ); } template.push( [ 'div', { - class: 'detected__category' + class: 'detected__category', }, [ 'div', { - class: 'detected__category-name' + class: 'detected__category-name', }, [ 'a', { class: 'detected__category-link', target: '_blank', - href: 'https://www.wappalyzer.com/categories/' + slugify(response.categories[cat].name) + href: `https://www.wappalyzer.com/categories/${slugify(response.categories[cat].name)}`, }, - browser.i18n.getMessage('categoryName' + cat), + browser.i18n.getMessage(`categoryName${cat}`), ], [ 'span', { - class: 'detected__category-pin-wrapper' + ( pinnedCategory == cat ? ' detected__category-pin-wrapper--active' : '' ), + class: `detected__category-pin-wrapper${pinnedCategory == cat ? ' detected__category-pin-wrapper--active' : ''}`, 'data-category-id': cat, - 'title': browser.i18n.getMessage('categoryPin'), + title: browser.i18n.getMessage('categoryPin'), }, [ 'img', { class: 'detected__category-pin detected__category-pin--active', - src: '../images/pin-active.svg' + src: '../images/pin-active.svg', }, ], [ 'img', { class: 'detected__category-pin detected__category-pin--inactive', - src: '../images/pin.svg' - } - ] - ] + src: '../images/pin.svg', + }, + ], + ], ], [ 'div', { - class: 'detected__apps' + class: 'detected__apps', }, - apps - ] - ] + apps, + ], + ], ); } template = [ 'div', { - class: 'detected' + class: 'detected', }, - template + template, ]; } else { template = [ 'div', { - class: 'empty' + class: 'empty', }, [ 'span', { - class: 'empty__text' + class: 'empty__text', }, - browser.i18n.getMessage('noAppsDetected') + browser.i18n.getMessage('noAppsDetected'), ], ]; } @@ -190,6 +189,85 @@ function appsToDomTemplate(response) { return template; } -function slugify(string) { - return string.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/--+/g, '-').replace(/(?:^-|-$)/, ''); +async function getApps() { + try { + const tabs = await browser.tabs.query({ + active: true, + currentWindow: true, + }); + + port.postMessage({ + id: 'get_apps', + tab: tabs[0], + }); + } catch (error) { + console.error(error); // eslint-disable-line no-console + } +} + +/** + * Async function to update body class based on option. + */ +async function getThemeMode() { + try { + port.postMessage({ + id: 'update_theme_mode', + }); + } catch (error) { + console.error(error); // eslint-disable-line no-console + } +} + +/** + * Update theme mode based on browser option. + * @param {object} res Response from port listener. + */ +function updateThemeMode(res) { + if (res.hasOwnProperty('themeMode') && res.themeMode !== false) { + document.body.classList.add('theme-mode-sync'); + } +} +function displayApps(response) { + pinnedCategory = response.pinnedCategory; // eslint-disable-line prefer-destructuring + termsAccepted = response.termsAccepted; // eslint-disable-line prefer-destructuring + + if (termsAccepted) { + replaceDomWhenReady(appsToDomTemplate(response)); + } else { + i18n(); + + const wrapper = document.querySelector('.terms__wrapper'); + + document.querySelector('.terms__accept').addEventListener('click', () => { + port.postMessage({ + id: 'set_option', + key: 'termsAccepted', + value: true, + }); + + wrapper.classList.remove('terms__wrapper--active'); + + getApps(); + }); + + wrapper.classList.add('terms__wrapper--active'); + } } + +port.onMessage.addListener((message) => { + switch (message.id) { + case 'get_apps': + displayApps(message.response); + + break; + case 'update_theme_mode': + updateThemeMode(message.response); + + break; + default: + // Do nothing + } +}); + +getThemeMode(); +getApps(); diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json index 2880e3aea..5aaee78e3 100644 --- a/src/drivers/webextension/manifest.json +++ b/src/drivers/webextension/manifest.json @@ -1,78 +1,78 @@ { - "name": "Wappalyzer", - "short_name": "Wappalyzer", - "author": "Elbert Alias", - "homepage_url": "https://www.wappalyzer.com", - "description": "Identify web technologies", - "version": "5.5.2", - "default_locale": "en", - "manifest_version": 2, - "icons": { - "16": "images/icon_16.png", - "19": "images/icon_19.png", - "32": "images/icon_32.png", - "38": "images/icon_38.png", - "128": "images/icon_128.png" - }, - "page_action": { - "default_icon": { - "16": "images/icon_16.png", - "19": "images/icon_19.png", - "32": "images/icon_32.png", - "38": "images/icon_38.png", - "128": "images/icon_128.png" - }, - "default_title": "Wappalyzer", - "default_popup": "html/popup.html" - }, - "background": { - "page": "html/background.html" + "name": "Wappalyzer", + "short_name": "Wappalyzer", + "author": "Elbert Alias", + "homepage_url": "https://www.wappalyzer.com", + "description": "Identify web technologies", + "version": "5.9.1", + "default_locale": "en", + "manifest_version": 2, + "icons": { + "16": "images/icon_16.png", + "19": "images/icon_19.png", + "32": "images/icon_32.png", + "38": "images/icon_38.png", + "128": "images/icon_128.png" + }, + "page_action": { + "default_icon": { + "16": "images/icon_16.png", + "19": "images/icon_19.png", + "32": "images/icon_32.png", + "38": "images/icon_38.png", + "128": "images/icon_128.png" + }, + "default_title": "Wappalyzer", + "default_popup": "html/popup.html" + }, + "background": { + "page": "html/background.html" - }, - "content_scripts": [ - { - "matches": [ - "http://*/*", - "https://*/*" - ], - "js": [ - "node_modules/webextension-polyfill/dist/browser-polyfill.js", - "js/content.js" - ], - "run_at": "document_idle" - }, - { - "matches": [ + }, + "content_scripts": [ + { + "matches": [ "http://*/*", - "https://*/*" - ], - "exclude_matches": [ - "https://*.modirum.com/*", - "https://www.alphaecommerce.gr/*" - ], - "js": [ - "js/iframe.js" - ], - "run_at": "document_start", - "all_frames": true - } - ], - "web_accessible_resources": [ - "js/inject.js" - ], - "options_page": "html/options.html", - "options_ui": { - "page": "html/options.html", - "open_in_tab": false - }, - "permissions": [ + "https://*/*" + ], + "js": [ + "node_modules/webextension-polyfill/dist/browser-polyfill.js", + "js/content.js" + ], + "run_at": "document_idle" + }, + { + "matches": [ + "http://*/*", + "https://*/*" + ], + "exclude_matches": [ + "https://*.modirum.com/*", + "https://www.alphaecommerce.gr/*" + ], + "js": [ + "node_modules/webextension-polyfill/dist/browser-polyfill.js", + "js/lib/iframe.js" + ], + "run_at": "document_start", + "all_frames": true + } + ], + "web_accessible_resources": [ + "js/inject.js" + ], + "options_ui": { + "page": "html/options.html", + "open_in_tab": false + }, + "permissions": [ "cookies", - "storage", - "tabs", - "webRequest", - "webNavigation", - "http://*/*", - "https://*/*" - ], - "content_security_policy": "script-src 'self'; object-src 'self'" + "storage", + "tabs", + "webRequest", + "webNavigation", + "http://*/*", + "https://*/*" + ], + "content_security_policy": "script-src 'self'; object-src 'self'" } diff --git a/src/drivers/webextension/npm-shrinkwrap.json b/src/drivers/webextension/npm-shrinkwrap.json index ebcf0d9eb..9934b3a1c 100644 --- a/src/drivers/webextension/npm-shrinkwrap.json +++ b/src/drivers/webextension/npm-shrinkwrap.json @@ -3,9 +3,9 @@ "lockfileVersion": 1, "dependencies": { "webextension-polyfill": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.2.1.tgz", - "integrity": "sha1-zfyRJgMwOfFxNVMVfTW+/x1Nb0o=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.4.0.tgz", + "integrity": "sha512-oreMp+EoAo1pzRMigx4jB5jInIpx6NTCySPSjGyLLee/dCIPiRqowCEfbFP8o20wz9SOtNwSsfkaJ9D/tRgpag==" } } } diff --git a/src/drivers/webextension/package.json b/src/drivers/webextension/package.json index 9b344ae21..837c5acf8 100644 --- a/src/drivers/webextension/package.json +++ b/src/drivers/webextension/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "webextension-polyfill": "^0.2.1" + "webextension-polyfill": "^0.4.0" } } diff --git a/src/icons/91app.png b/src/icons/91app.png new file mode 100644 index 0000000000000000000000000000000000000000..3963238b1b19bafcd4d578dc72f6551f117d6d8f GIT binary patch literal 16267 zcmeHu7p)S~-Q7rcr?dlu^e{97(hX8l0z;S5ji7+^jI{JnN;d;iBLb2R0s>NZ zzW0B)_to#kXI^}sXJ*c`&pvyvv)0;4hA(tT2pI_4A?Pu|EQ6s+ooqANQ;WIIj3@UF+e{j#tWC$BdWna~f9Fu2dS=t-H5}{cPKTIXeuJ z-H1(}1)t2vJ1UjW>U?hi)tI^Gj8{??Re&EARk>xR3^=&qV9Aq(P7UKGW`wD|9cn$J zGqS0+U_Vj5pt_sl3`f&eA!0i;%YTBbd?D+xQ#{%_+IaETc{gx6uNvwyHXSkM*Wgg zJ{_#}t<{^4^EpA21w8N-v2OY$x5$j#@xS-;!pdO+gX*8F$6E1)x3J{Q4QG#2~ z${$-N&T0L6e7D}7ch_m~`s!Bi8Q?L2>bOK{T%qBKprO@F=Z5sDW$L|kxoCeyW9Rl- zd?ya*gRO9RwkFcFk{7`hr^Bb%&z6Wz3d6T-q``Ejrm_sZ% zlO0WHlhF(E7jI0=raaQdr@VOAKbh%qW=9hm8rc+A@$)XeMj4own}>z1SS?&`;-*=) z;?(1tl8+Hqz9+bh7Lm#GptGFP$g;ARK3GidC**xwS{@EXvur8b6FK3Qry3)m>aTZ1 z%GInWo~PZA-{&W}Mh!|MXna4SuRTlrBoR;7Z{|10KYT3R?v$%oDQ}2c z?$?XP-oiQa+nKXxyf}#Ocif8DDkA*ufF-jz+|9qJ%Xi2AG77KTG{htYymY6sbFT61z zXVrR~xx7{;!^`7~AM-qxoQmql9a_<7P)7JWEsRu`$m*-*v%|LD74~|NX{Znak58Ju z_`G75b+1ll@1+r$dI#NR(N@MuoXg1V+>BABFd|1lm}0fPAeh&L&pMwFkzS~MQC$(9 z3KMM;Fn^;PvQNjm5{tGXh=c`hCG{r|{;s%v7DrdXEbFm2<;_(zC+_)ccFvImQQCGxvDP2VV+-KX^H_?;$N8eB~rkMQ<~VfFah;1_Bb9OLR+5wK)? z&?u;V?=?nwL{nuyLHIS>dcFJC(>E8B#x-PPPPTr=qLV5|&2TF!*)SHXus>o=hvL?u9DW3qd%5n||j0iNh&gd>Fv+~(^hQPr=! z$=4U$DMO@n6%CXMSCD_;`H|D@QMCQP#g52w8QDpk zc6<+l(QRXkPyUM{5dBUQ+B%O*W%u!10B>-5mL*lsL6!c>Ew+GsX*B7(&P1FTEICG-6uXaRRteMy4`q9#if8*s z>Tpp~!utS74IUs~Qx7FW-Sn3Uc0WZ_x$1%|o!_}?5lIltE(|kb{xN-#P@Vq@Pat2T zFI!{&K<{AfDf8ioT*T$eHMzS8f0G$y989J%7avH+RXeDBH8bAbM0Td84yITPw9HZZ zk{&%8oqR2QmJ&oqyxs(95DVq~9b)akjx-X7$ef%-djSXSsF3(XUj?_!nr)S*{e=T3 z5Rn;YadM*z$}{W}y!VZBCQdA1>_|I%E0h_zgJeXHBQ9tVy7;AE68a#7W{V!JsK*N! z6Cv05y|-Qf-G1odhH)T9p-fHA3X!w*=1lWa4Mxo_zxFV>wif(x6oKB$#geRM!@fa1 z1|al~%0{Q1#yU91coB}#%3JiUBySbV^qx?j=^KmAQ>G1mpq5o#qWO!XqK-Ln>vi_d zd;Tv}&$}hkg#GPxJQMC2(7pY8{SWi?=63c)6jYn*Ojv@hASNufirY9sw#NpBAi#~I zwloLBwT0!sP3H+yuX>#NAFkijVPv!p0@Nm0w&Km_A-No{5B}n#h>^^)%B-rtuiS7X2Q}Fj^CjeyQH~S_tbGq z%f1%d2WBpE4eCV^W%-79)_>@(b{4dAnCd;md>@uoUyu5E}Cize}vYXlcbjEQ>@mWg~Y>Zo!4Kz!DQ!Z z=|?}IXh2AvxFM~R3G|X&2DW}fs@rAJ)Hc%7rGZsv)YJ%RJJ;zC#@*0ZG0nP#?s43u zlV!|{{-SOcILl8hYyEU%W>m@-&Nk0J7o9#Rs}Q&$8>zAl-tOg6P8Xe|G(rG(eQJj% z8YFcT=8*7$!fBir)TNupQlF`&e-BKSr8=^oST{MI`Y8)3J(5n_7D_SjVA#!EmKu=| zl)(X+c05^i=p3CMz5b&uU9TT~X>=b;c*9qOmGg6lbum(Vbib@XN?)gOw83D8+}`Ey zmtzD4G<7@rm9^!%|;I`}}Om+$ybUH}1}R0^*jvm<;((P-F6-;AbR zerd?iiA0iHGd3$^{YQ0$X)05 zT&feS;1B^I)h$Xw@2^LACWO|sKk<7SShJrLc6?0}ao~qoLB-n&T1b`DuAXfzt}!*GjTjelB*|Uy$DH)w#1|k#-L_x&LDlAH4kj)>SQw7wCk z*d{7=mto{=+_MxZO1$%+Pqk1;2%%?mkq5QGdybyf6s> zW{ghuylevh@rHfvbnJXvIHS zIinqU1mpwg_@nn<>0Dm4N%jL7iVWs;PjAS$*CMbxUk6dEW%@SBq_X>`02*YoWcW8W zw69d953pAj%zST47g7;4nK4}JwI_M<7{nGM94e#nRi*nB0SbjZX&Jw?R z=Isu2Z$^&IYYyiI?!C50Su^#-BsB8Q+;WbJVLY#3gE|5y?o$EuCF%fSzFQ57dkbNg zj(5e+<|!Ry-(1pc&_N{SXJ82(xM(DfiX-}&>(ZZ0BPp)vG zu`>Spq~o8&Dze_;0n(A=Sz_I$9)!Q4Ij_BbDbdM_h<`l`#|ybP#Im#($ugW+35)aP z&}E9B^PC&9Hqtwm2p%D%U2d!W%bBN16`gxKRUbevJL1stS4*A-X>5X($uju85UOTq z!*0#r;xyJB%WF!}91dCte^K{|W;dJsm`!TR*pS)3#Gr%jH1ze8V*Fd~k`ybD6@yH) zD&;uE+A}=0I21#^Gvhh@;C)jx9hT~_?f~;|8Ih(DU?lS_JZQ1rd^(zTET{0v>oA|KSaA6$;%urQqnG8;1f*sEu?fD@s`IYzM}Xm zmKEk@Pu)PAh&N_A2A;_%^L2 z!KsOR?_M(DLlK{#1D3N%4hzNK1#29^S?ENVw?pBYb4Pqe^s#osYa9oN-zhkOJ6{O9)3WlRHsXqLE)AqV+3gP|0VkP=zE|@onbD!YK%X6eQR!IMCRp_(1h!$hWasWYu{Mf zHDSR8a@HiTh$h{GoiTgLAhEJVz3eiM@R~6TVaG+N-^bQ6?S_ArLT^R1H=ER+w*gCj zBH<)UhNX#U(lJZc$){d_hzZ;nZVH?v36_U!i-<0!uDvH!nhRoH z4~guCK0SJ_D)qSndz{7JiZ3QH->9*aj+d;@o(RTK87kiMfFfc7CL(B%!_+ld+C8fR zDSx67ia2bea=eAAW1WQ4xRHDaqOF&~>IxIq$jJvQ@dl3!HTnE8VAjltAigvK88L`Z ze)C$NTxQ&pvUUfoG6?Fv2#E=XP^PCYYhB6sCNJ*z2nRW@e08IYe+>8E^CAsT12gz+ zRpN`ne*~7TaBt|)- zb7Jt5@24F5rpHa1lb|)a9SV@6`&VLMMl>Xg{53@DA1*o$5h}#o#^>%M8di>6ra+Ig zzf$QBGWd)WnhP`Y!gkV&OS31MR+{FRrwgRx%-G8bu zMn%KeZ(yHZk$C2>m^Fhi7xE1~$&+<`Y9o|)VVNU~rAl1gF5;%@xfGCPI5a2o?p`_5 ze`Rfs+Z532SU)WwI3RFNe?Jp=8N}#Hvwf zXoue^=d7n9g<#UD_WMAc9sirRN4pV8aXRd?w?)b#HS%%oS}T;=y4yhe1!ABr)UOPX zp%WD}%?nw(Fhf!~iB2fn^d&Ml3I^0kI{JI33!AwZ2>tSly*Ucwmu+f4*vi#sO0a8Z z>BU{Iv)ukH+U9oNiKs^Y4NrlM=k2YDr8t-benkHG+Ua~ZML}{n;tyq0B*+#OC|6@BfWD0nqh+E2iR$26<%mS=)nB<=%krvU{Z->|Bs#V-`f zMkU<^&4%6(%H%4X8~x^=p#S2UvMBA7*lDP63J#r+^=$uA;g)6*-*hLD57huOZV(VB z$nPi^lvCFCWjc_ZSLMt0BA{7I?;eZ<>wUiG7xp~45KfA0Ht{67P$*!YkRTh!suQR$ zUy-VZViiE4_z<&F-P%;(%L63nPG-z!;lS&G7?oCwOXYme`bcjvlou@wsFYl%>(p0g zP`K=RFSr|a_mre-A)wI5DcaxFEhyGWoFL25BBeQ?)i8k@t*{qrNj3?)%9YYQ)FrNT z`2wK7Kf!uvDpZd25iVT-4m?l*bG*Zm&IM5S-Xt1=Ooee}!9u{NSni)biD-I~xPQFG zd-Nua85e1av>^?&R>6rgnHGJDN^Sb2l~rSo_RSVuc&banK*ZHUQheK0bBca+)3A)R zM46T4EZLa4Ma8btZl|R{){OC=Mjn~XNgqn>%<$pNApsnTtA64va&9-LK>dx~5A7ew zP*|>W4*V&AMB+IN`yl_cW@3T=(J|~?Ww85eQ zhi(ZAX*ub{UCc!9pLE0l=pS5O4cLlBw7x3S?AVprG;ZB~Q@O?i^By~Qg4;TdJI{v*;^gX7sw`9X zak$Hdy@g<)jI$V*4H&gXq8dQFy5HN3*jT7y0yKe^Ps{~lja7cD=^Os9_IU% zsnKm0eC*>Q?4sEFqmHc;`@~pRq~opxKk1w_1q&{(HmG3H>-$e+VX2yDPYlIKw_$ED3e^l`nz*I zz*W?c;VL*&_n`af82&?gewpSN4ixe*h(-#ej`$`L<9&fpR*lH2WU*%43XR9k)SEj# zJ-jefRb2;kJk6}H{Z@u4@`JTiF_mV=j=1E@PII05tnG`LgJc8{f$|v?4O+2Y@w5sj zOJO_Ma;}jFp@M6>QS+nVi_ZSAz*IhB{{U}vRJVQ>ES zYsik%NqFAO?w1d_b=?ws5&N94q=&F`#RJ|0eV=D^S!w*PSw|*=aSnLF?7PZG)VT}p zXixic`fs{9wiZuQ!=Ulh?hUQYlBni=k4)C5F~VG!n<12DIqb<1fOyNSanb#?ouG9J z?>6ZS3GR)eL!lwbI8%7cMLKhs_x6a|ds~9rCvt|BCAwhm@@_RG4U$Yfa5s2_sC-NT z#Q4jm^@Q&-vo;HiFX74hf^l>+X|KodC}t&44Aqk>WijdNjp8}MW@!aiB^6m)?1fbm z>AbgS%3aXiCf;R{K0Vr7p-Rd0Nt!VM>UB~=w4@iVAn^d#hvwwPs7(&D^xbqgB`;{q z0b6m;!r4B1LAjONvf{ZADqHaNpoP!Vabs4r0!}A#d^;Nm0ats?v#5?nvuZ!?E zm#1S2fHzCbwS1Y7uA-Q|SX)?XqKhSYM42|sqH5}H1bHCez@_2jGF2@-R$Rm*MUaJ* zL%kE&q=p#ew1(6R?d5iN{GDri&huMTAkTM}7lPsLQ!3pSae8aoJbDE7so@rTZoh%% zp^EW;y_B3s2Nx~ZMJml zm+l!p*aXM5fobo>clSQeEiv?|;*%ZHu^%P5#gt%BTj>(}E0H;MxmNIwm@=(9r8b0T z$?O+@m6}zL{5L;ub-V1w)dWXbgR}011Kp755m){S^%`a>8j%`6Zz3S z&M9TshS2-0GR{qG97=MS`I+s-E}vAmb;p;@RJ#5`V5FYCo;rGuSW+y4>kHNceleaG zk0O;y7hjgx#c6&{p9riVyn5~SsAIc|?F*2%Xx3k!coK*>Fxr{Dsd)l-g;}CJ8*O z_CYtl@)h|~>e{$Elm2jk-m2Erl@4>`kXOc5o)_2omN*6WnP<%eVSncYD4!lVFBdzi zyLpIb{eCW75y5=-K9{YIN2>`xH@I*cyz~*lXsR@NP%NDLy#QK??gH7!SSQ90xASbO zLQY|u47V_9+tsJ|Y#(mz@P9+@H>`QB4xTM1797>a1|Kca=-}0P){jng4E+wt&wfJP z*Kyx5uz+j$gDcw7`^~XYQOa2a`xrl-e`#UK8<8aRz4i7eOHuyi!@uz+OwW z@MfxyG19XiSA33GO)}M@CZ*NCE5rp4(IPKl9x^^APs9>#e2mf&70%TXoH&0XRbx+N z1qVuC3V#x$yZVM@oMQ~OG+YT3$3_i4>>(81A^t?p| znOgRDf~AK*-kaZWAd>rq+%dv8`t}G!7-WQ-cSE z2|m-}ar**~&Jj;n=3uQE#wy%b;F!h2HoKe~8xv_P9@tUtTYj;bV{R6Ca zNf8|p*GH}QErjMv>r{iA*3&M_+o`e?v~qoEpw`n@5)93fiO=wMG*MvTry^(a>v@2V zo4=noKbdv)=UASt9J*~refP^RlJ1f&+h9N}etaRs!FtF@By=Y{@HZ6)V-jG~{?7}r zoC7+O%!iT#pTsE}r4LEf59b)NTGan|Ie$3W0fz>;g6*bM#$=!81-0dUHFkIs8V;v} zSl~TwoxSWJ@pKsI-r8r!9da4~rPlJbI;^zykgqUm? z3xhoaoDm)*NMnzrc8;o=oNAWfB{`w3r|yh9{4?oAYEImK&{9V-zq$P%BNrW^*_p_; zV=A+ILe%9@P+Mcsg*#qlUNxZ`njw4PM+7TTINgIAqftJa`FK zY}b1CMF)d5gwSN*+-7c@*?$YYs;1BA*yq{-6?<_las*H81nkh;x)y5NsSbt6SR={31GV9D4F z_zBbZ%#$3MN#d8!4Xy3X@NDB3`TLe+)sVn1yx(F=uv=fANJdMVHGXhcIxXDvUdx+V zBD^BpabK#SZ0S$O-(xfnLmCP8DV=rjqxv3qS0k1yx_K98gWvrWCm8JD<^?9ametOr zlOt5GnwF1L8T5OaA&j~uM#+zDLYTBoew%nVk4p`;id`~&TX;7SU=ZQF(dkGuT+qKK z5KcPSa9wc_gnJuHsbCF;*-@qyO*jq#bqSI_gRhrd9KN-OVX10d8$-=8^e1P&0-$rf z+{5uN`Ux!I4;+8fXh#{oTkJtxT-F@?L|VRG1eCHT%gLM>Ab8gcRDZMjecT(Lt%JM{ zut+4hgwRL4H_G32Q-l_@6pIC)g%*5>)E8nEtpm88hK*50b3xNEnyn>RY3VD1rY!F~ z0QBC^puzVC$Jq3u0@^ywwhs54$GXjrEJaq)cxMl*iDAFnlvE`-7wl0wif^ECV&If& z&!9+3=5%E2(Sz;P?nEcZ8ytTu)e4s?=qzoU2WLTbsOFL%8xiEH0UQ`V5u>!$rvcvx z0Wok6dOM%Zs2C={H$cf$XL1p1d{*ny^V7rt)%M z&bIY#nPYH3`c3}!?Hgt+K@m>~#T5zqon>Z_+mfFSa4oqIwrajZ63h25jv_<4UH&h* zqvE~_?RrEaS{5rRc5!LCrRa-Pz&F*l1NL2?`=;94=R)@fBkG_h9snFnIX@6bOpDtM z>Zm0W<4&)O5zKE7ObbBiUI2?$M=XQdVeB2Ya(|QaH|_O>*k^$Y;)0{5l48mr57qdb z>pSCDufLxH)~W$=a(rIUb_dbZ^mx-Ez-Xc4n%R!J=iUx;Wr-vXPtZS=k+$M64px@~ z>7)l*5hsH2Pa$}yr2b*`&)nLyBHHO)N89Z6mitct3!DltA2 z$#Z|f(0^nxUhKt=G?I3Yd=?zQ{sDvBsiKIE>5royROeCC`l@_hX6a_~bEanrNuy)( zpkMZ+0rT$upcImWYZ`c?igjA!eHIY$QmZwrHGO#b82j){@Z&!AX7|Saw#XTM<nPJc9Fll|75#ug${3@6%m6|NK9lBRV$B?S$j zC}_Wk+5eCj;1-^!h&Cx>Xva#w7m+xhU8y21PCgd8eJ0#{R4d~WV9p{xTHpK0Z}Xkm zpm8NnTiPA|717bE=;vn+M2GQbWcdc-m#qZXaddnM?kNW6YA=+gv%g`}a(M56pgve- z-#8UDt6SF2{qp=$%_x#s0!a;R*>9i4J~)Hyz5d7@OdfVGIMyL%NDJ=;xAxTP!sCuD z4T>+{_OC{Stzd8l9TNA(v|-}->8un0^ld-GAQ= zW-8)K7qkG|LRc?^x9`%U<1Js5@*bFqMpoFuP$;CjuU+=PLIExX&g>;Y^(eP zYrN_^#wmjoE|wGa;q;p7k^X+!MyL&9wuqNcPsIi;kNx1B7S9`s?r$>e?O&rV`195W zzaGZ40Lpr8L+~vFpDnpSV5giYC$d1N5v4vNsq&t-`4!e}aCD!x{4?5RLGgD*YKBe{ zL;?6U;^$%se?WGikdC7tNzer<68)t^gs z3BrHfZjLHU9kI`66#02p<_izJ*3#Eg(CTnqsx1g6_SjW$jiW=W$9cdDowhR+2VTB4 zJhOqe_viicH9b?pITp@ap`2)v(Y1OW1g~z$5f6OYrkb+*LiENnZu#%K zYI4C2o{{177*2tTMJADQ0su)<_i~Ox;sSV-5Q%;FQz74w@j&ry_8CZl^Ob4mGgk*( z%5?ZbecihJu5w-U5Dh{PXx4{i=}_YDUSTS=@Ft2pYv%QSt669oL7gn0OUfte$7GI_ zF>(1)?u#-A53`^lcL8M{?ztBV-nno}hixIT5VDXsG*NV3znhqj3qe?22~H0A+|0<2 zQ2|OBkauzHNAD8i^^rjF(TLdmSzo=qn;8Yk{SGci_1BEzqq7Iq`kaIURJz=ZI_AQ? zXge4pfCY$e3o(<+H15my{e=@P^Kho%pN_e%v21B>nZ^YaWSb~-K$KgFGb738l+$*) za-s;%+!9(7ifpsUp;45OfR0er3 zuZlgb;4;Z2^K*CAVe8p^-HS#`;eTU5VgFkM)%cXs$XF(`a0LzcMHVb$5m%8GMU=hC zZvFmT1CQ$_1l*0-?0Fw|5r{nB$K_ZWW-NV0u0YB7ehnaeBbRqBcep0JjWUFa4in;7 z$3=+_UsvsV3;$6cZ$KMV85OV}CRqkh!|hLHK)~{@uM+AOR<8nwJZI|IxqH>GSrIx8 zJ5ozCYP+v3FMiT)^Z$NkfERRXFwA^R$FP@~lpsN10@lL4%BejbN^*LVJ;EY;hMcNQ zb+dy1{X2?6^-!Wrj|aR`8lddi2t*4l&IT>0Izq!f>un9&UhyLLknTeLr@)1pawX0} zmw?P=ZsPV`g)6lOTU16jkOM8*ZF#EsJ8zrxDzElF}aon)a z1bg}qs>wdn83&k4;?1AOJ~Eil&_BkBSHbDgT0WWPh9SmgJeKN~9Tv&Fc3_seVeYN9 zZEyiH53t0!O(E3W;nczIlRvv}uj}zaIS?@rohWbmN{2M58c( ztnvebrab$va!W&(G8YkwnHOSkWNBxA-+C=jxW?64_OOBnu7X|#V2BR5D!tB$;0 zUPK63>kfPKT*R6t96Xzj9Pqw}HPJSoav4Rwxn?~%;#7qK=rfpFL2&(yIpIEk33yWD zMY-%i^_k|xnzdGFj4$-FU(rbS zSw3{^{jW7Iy27xXzq}Ct&4i$WR2trYuzJH}nhz($g9 zhMqnDhH->kMTUmDV&re7L;T;L+~9|qbMF3bH36yBrRE!_)Mq%) zvT3CE?pP630y)k-3g*B$OfA^y&?uDT4h{XlW0hO@j%w12Qr%kWNtCF3J0%zueUMo@ zyA(AFKr3(`h#0Z#L-2qTDnl{|O zL&Ya`%~1hK1)iDgw5-j^$Cf8ai|UF_Q(rGbfe4DYFW|Ki?vLPr-iG+V*#A7W7($DJ z%3+WEM;ov%`QmfJf(dUbmDlnQ6-x)+K?90j>KzA)PM55Z=NJW_qc`oi&?~_=exHBvu`vm`45rTZ_jCQ zkff_-75p!y2yPr!zk9^dIXtc)+N5FL!6f(l^2S=TsJr;pDGwR1bJWN>`QqC0%)RcM z+DD5CDyDizk=Tg156(S>VeQ_oCEtA4qPBS<1b{*SwZld*CyX=gbt@;R^PB;#+!{~m zk-1use=UL3^A#A2(zz;E{}42a5SY}+hYnFQhQ#B#?mBDUbV@UBdkYOda_COOrL<)) z<~!F!s;?m2ZPSGLr3Rz~YjWZu37IRDmgTuN*SRN@UMSo{ZGKelO=0ZCAmJn$mzzgB zs?e`jB#Q&?xdYrswYZY36}zr313Rytp1#2>j_6modG=F*@|wNW?et;|yC=s8fwj5f zA<7s>OD!hX8q1|vatU-!6GbE$(i~OO-#dbTbyPJ*2>W12C8*e}K9w&dOK>*HlJ$58 zz!H#~rbq>LSh@LL5pIC$a;G>A#n!P>dmfR5)<(TL(VQ(-+7f{fIN1oXU&6&)hu#eW zyFlMNj~)B^C_yvbRZgkaz40HVzVg$utW$fO`$2hI{{_GK?J&Cf&UExcYL)JhO-Gs` zb{mEe5H-j=no-C?bv*3qBR)Zd+YEn}_&vo~yy_YgVU_68|Im%h;pwJij~JytZqD=@ z1Bw^MmV-ThWf<}n)Q|{^Gc*a|-ktvzkzp!NhYHAkqOL`N;w@Z|X%0GsLr&NWq@6cL zOEwSD)xw}x$7QkFP9$1FfxkT4{Z<~kF4Y~sH}kUJjXL=F)x9>`P)2<3MqF3WClPbD z88A4Kjz8r51x_v!`-T+?;Z&%ejki^Aqx}Bx?t}BEeJgO7-76_=+uADXYStB3?F+Y8*V3i@$ika zf)|-?D$lu)YCcaNP#^%__^E=Xtt-!#H(1a|FbA~v-Ds_FKo!Zs7?Qt!X=Gm`Is=X@ z^an|by^L>%<*JIp@cw$fW7xC^!Os%ISwDe<1|Ft<+GmiO@3q_=AQ)qUn!6uoRphp& zf38|;_=I@Btq(*VLjqG93Dou8m$d2^f_V{I<~ElYNc*p< z--ORT#dPa6A zRV5FX9M`y66d?l&LkIk`#J-2zkDjBzpZbmU*g|X3EEJ`mc+{*Uml){8t-EbQW=W&% zlF`~ev)8*aYwZAf=v`HQ{DoY;S7*>AY{`Cb>Mqq-3XN^}KQUuJq1Y$X}Y@u@IpEItv2}7N~eTHe`638_Jbbe;8pgoO?$S z8;5Dej~a-Mh?EFUjSD9F7eX%LM@2J-NV8fNN#3uwAQ2bEUA z?9E3BgvTw~UsL_anL%M26&oJ4p3)Nd4c)wukPV@1F1^tmC&w3AZ{H5TZ}+MX%Mj8Y zWVASG&X0~}U3&5@`42&prt7-Pn_t`&c4_n%B?5!p7+uCp(UZwZr-4C(Cvv&ovGTs} z!&o_f-(uKUYjM&WOT8N|p@|BfSP{vUNsak6**89kJM=F|F28zE#@iiWnb%r>>z)L% z#aI&Jr#d*!RU zk^dm=pvM-QmK>Q{^YB(KFURhl680hBiX5d8YLQQ-=aq9{KXrCUEE;5o0_IH9+>;W8 zgkRYVBobhGv{v4l7#7hvQ);^?(lTE+_K#RAno|BK&2Hl6q0fD6w#uhdaVv9$oLC!k z`J96zqls}Jcu7EIUy2h@kuX|1EP62IKQzf<31U`}y8FdRv)EplA$M=R2!X%>C1$3l zgAO?rN4SXvo$Y`y7DxoH-6OhjdqV9Xro1~ex|E|>*L~T`h?k>EUP)`k+#^u>>}K8( z_{)kX?ky>o-uc!dW1bB`>*pZ>g%-e0qtnK4bN~EkKWpsQOZZC}g5yCJp@DyozR!BD zTQtvi*|TQNL^j0@EA|fjGi=M-UoRTr3?|steel>4Q!4I<0TRje<78{Y`4JvYZb7&S zNDQZ9at1H?P^=b$0w)5%2+DVxYDlVaO8T3UtPxl8Pi?xk@2y3P9-JEH>Pc?- z6@E44&w8ryoH`!cUwoEf%4P74#o%tX@!Bga6rH=`{4fPbtPJ3~!o8QDi4G7V@vbQ? za1)y2#?cFjNS98QGt;*$skUqDT^)bmg0f+!-MsLeibXcgcCL=RDX?z#XTnGhwWe?M zFUlsh zKlAvS#I0Tz>|^iY_YHw6CDp_H^QZr>7rDR9a(+cvo#>xD5Rr>8@^uf+4b0LZ;KgUg ze>JB#5*pMBOK$xw!6P4D2;fs^t7K~FnKp{V?;er~W96Rt3&Mazc%}wi_|8S(mL64U zS=3$G>{$i>^+&=6YLYEVK$eX!$d>_Y9PkoKdB_1@{-OeVKXv(q^$L>@jgH?stf20N zh{-~;=CN_U@`_Idv4=lDIg9((2l=|Paf}}(JU^yYA?+PkxfXaga&5`;_UcEPBIw`m zpYc$z!VaUL<`pHXDSCSGpPR^qq})49^*{JhIq0k4kaD88^*|fa=-WbF<0EhJsh_ZR zClE9HFk<_&%@Q~I(sYF)fHaC1&Hr~sxMbRi*WB0dnrY`wNL(;KRHRNnd_?CicqEPHnfYot>~Deevi^%f zr$lvcR%ye;Hn0L|+J<6O1o=Msil7g-1Up$BDciKJgva*!qmd$D{`+m>B$~R|Hj2o{ z#W-nBH3UU;F16u|Qpdt(Ak8N){#ZD||Jg?vk;3VG*gwXxj$wv_h>DZ*9c?Cb{z)S^ zsw|{1dV@&UrWBO~zK0wBt#GX78Lcyx4E&#KfG{l8RvF3^u~~2K&Ha0&%uD zQymVRaDkmI0}C^~b6b0B=gaF7wwm$Iw>D+Xj0r7W2hIvutO#EUrSQ+m%)%Co)NKV$!meTH&QC;q29+n5) zcA{A%$4Yl6tw+Xk)+;WG${YKgc-pTeMDE_KyHsFEks~?PLBAjBUtL literal 0 HcmV?d00001 diff --git a/src/icons/ADPLAN.png b/src/icons/ADPLAN.png new file mode 100644 index 0000000000000000000000000000000000000000..2252edbb8e7c8a22f00186d4e7f0923fc53b40fa GIT binary patch literal 6396 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 H+lKuQYpr;E literal 0 HcmV?d00001 diff --git a/src/icons/AMPcms.png b/src/icons/AMPcms.png deleted file mode 100644 index 1d528c84bdb09aba8603e3d4e108d919c1965c70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)jLTEG$$bkw{N%ZEasoP0e#n)1rRA zztv)~q>z81X*xkw)vl`QY81`!L6$x6dc9Cp6_H2;fk5D%D2iqhkJ)Ta@OV5sa`Qa> zY3YW|44tmB(+vSCgKpwXVzi*30HI(IvMk?a7$$|p;(0#Z$O`Y_>}zo=pw2+0Naq{hvO*1n>^{eh)tfAE2lE#LxD1Wg5{roH=(SNqRzJZCoZN z)RpHRym@Xt@IDIs_yl~pfnNh{cyp@-t807@n-|#=9ZuIqo6UBgjN&+MiXdc`W@eca zrI|BtUua^1r@QdS5b!D+1Dz94UN~d8ZK;$c=Q%5RUg#pDoK9!0-EKcXbaIaC_Vqdn zxSs+1dIaDi@HhqUc8)>4-#WauO0;K*oXcorU1XG^DBad<={nIhFI5hnUd#hmQh_h4 zfqpB{n}~r;X=n^PAMf9~Ace$I6y>tl>-}nES#IT$dCZ2&yr;d3SiEUZ!so7Jyf|dQ zku|pAEsgUlNjz@1yCW0|!j>(aC%Ww|;mi$H_MUy!_P0k{W(@9Fk$tmXbA*X*%2XRPNFW+-q&Ua5Dx{d~E{N8$gG8y4==hO*;P(b1lMRAYM=R-IgMp;?7 zZ - - - AMP-Brand-Blue-Icon - Created with Sketch. - - - - - - - \ No newline at end of file + diff --git a/src/icons/Accessible Portal.png b/src/icons/Accessible Portal.png deleted file mode 100644 index 688c1122ec2e721696fa7ec48fc25053cae77085..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 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 literal 0 HcmV?d00001 diff --git a/src/icons/Adverticum.svg b/src/icons/Adverticum.svg new file mode 100644 index 000000000..92713f107 --- /dev/null +++ b/src/icons/Adverticum.svg @@ -0,0 +1 @@ + diff --git a/src/icons/Airform.svg b/src/icons/Airform.svg new file mode 100644 index 000000000..188efcda5 --- /dev/null +++ b/src/icons/Airform.svg @@ -0,0 +1 @@ + diff --git a/src/icons/Analysys Ark.svg b/src/icons/Analysys Ark.svg new file mode 100644 index 000000000..3e8322823 --- /dev/null +++ b/src/icons/Analysys Ark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Apollo.svg b/src/icons/Apollo.svg new file mode 100644 index 000000000..7e542bbf4 --- /dev/null +++ b/src/icons/Apollo.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/Arc Forum.png b/src/icons/Arc Forum.png deleted file mode 100644 index c01f4e466af4dc06132c4001cea5bf0b5a567778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmV-`0e}99P)h@-^2aA%S*khLblevetp%cIc5H(jp6pT z&d(1{P68Jf&dwYjT2~|uoj5qKZI2^b?;bs}ZGbtU3IOzN`*U^mzG@}LSgx;sXMW&_ z>OBwv0D9)#&CN$(x7%et%=wNZiU0thLkvI+9tZ$MQJ_G_QY+9Zu+0_B+}cuFS_;`} zhj`AHG45%s9P+m68+a`~xBinsvgghEuVXN1U`KA7Dr^xwa$zA@P}PwnNRk3TX+=>K zYz+Va0001>0RYeeIsgE4Bngsa0!)%5NfPv64;sbf)3V%yJ(H&d$(|q@&nST6NyGv+ e?y3SH_{D!k(UV_&QMph60000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/ArvanCloud.png b/src/icons/ArvanCloud.png index debf6aea98efd487c699b450f0ca13f96745f273..9c53ead920e8732cc80982caeb80278721a93acb 100644 GIT binary patch literal 3372 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 Babel Logo diff --git a/src/icons/Backpack.png b/src/icons/Backpack.png new file mode 100644 index 0000000000000000000000000000000000000000..5095bf4f2366571858e6a3198ca755269ef632d9 GIT binary patch literal 623 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA=0X`wFKADBCfr-SU{Zp3e0`&@%1o;Isu>5fB`*b5q_2Qzd>Q5skgj;U9q99lM zCEMDdL*l-~%(!-r4aE%1%grKw&S6l}()v4fo2h|ejJGDp}?H+U@Y a(qnifE?Dx($#g2v3I)aS4kBTio3) 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 SckTfbCWEJ|pUXO@geCwS_O+n^ literal 0 HcmV?d00001 diff --git a/src/icons/Botble-CMS.png b/src/icons/Botble-CMS.png new file mode 100755 index 0000000000000000000000000000000000000000..9704f5d7aca66961ccea4bfc7d20344236c8064d GIT binary patch literal 4094 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 literal 0 HcmV?d00001 diff --git a/src/icons/Brightspot.svg b/src/icons/Brightspot.svg new file mode 100644 index 000000000..2720d780d --- /dev/null +++ b/src/icons/Brightspot.svg @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/src/icons/Brother.png b/src/icons/Brother.png deleted file mode 100644 index 737a0328886bc1c80aa72339ada21b3a531bacfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Zh%jS>;M1%KYsrC=-H>sH(wt< z`()a(3+*#cR`edqY}gZ3ywxjhopt1L9p8nr4zu`-Co@{#YzAsf@N{tuskl{o-chJQ zfrB-`!C3pjzvI3EKH`5{&+JJQUp0BH}QtTp5y3>YB>8!i8m9tkK zx|d`kM_!PC{xWt~$(699fmb8`Ry diff --git a/src/icons/C++.png b/src/icons/C++.png deleted file mode 100644 index bfb1f9856c161bbc8d825a3a4b5e2fd280a115a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmV?P)-S=jGjk3Tflku~V5(|@rA{!~Bgl0J#@@KD*$bzv!mSQKCCJRL&l9cSG z#=r5m*@&#nSWWnx>AX7by!+m7{N7I%bL-o=@7?pxIrrZ4@6~Fv<3Aq}a3Jvz>ss4J ztcuD;W=y5SDz2w#y2d%zAII@Q=mD^ocdJ?J@C>e0`Fs?f18-6ID-W!_0)z1ORAt1J z@+3*NqTs8i>?8CUc*^`WbkeMU=bMcx!?mOwVLQB?UgNmevD9UFQ?MLEj(~S+;32d2 zR}Lqm7hw}d`9L5l?5M+c(-@GH@E7j>x;gUWW=Dx9C{oznE|`hJys;$PJ<3PTU4{fY zb9zw$uWQOE6z?;;KU;E~3*mbpG{*=}th*0gSsEoUUN(2XJ;$Tv<4&D7Fmg<&K6e`7 zvE~Q)whrGXb>fWAg$%f($|reT;lQsA+Ks!$9$95UdpxdPv5dtArR^{qA}{=LqV zc1z;Dpd}lY%xFq+<$a-M*R&6XyR~8pc4@tc+R>EGv@K8Dp*-|sl9~?5)!O`HGCTg+ Z_zlsxkTqS(vS$DQ002ovPDHLkV1i5eZe9QY diff --git a/src/icons/CO2Stats.png b/src/icons/CO2Stats.png deleted file mode 100644 index 47689c3be86c32a880ebb3acfe9820705e24c2fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmV-|0)737P)Nkl*M+tNZ zV|CS_N{}z*N#{~z3Tc$pm8udL#0uKT_MNFU&_*%yYnqZOqI7_Wu9OkPD#R$PHLPV< zDduUz7q>ChTYXqWD+a1tGFlCGRBYTx#VrA6z5A|{B%r!oY zzoW6fk)G3635CMUtWD!bd~Df}$|uP+wbmGfrdB6;JN$;>xgq*Kzu?gRqddL&+}ju5 zPuTNlsH?}1`rPX3<;vOXwR1neKI@*mf8>@n=H26ghi*N$<^Yyb^KNW$*v%z>y78qE cx7*VF2DL3vvsO z&4AVTXJYWk=!G{z@I5HxY%!V?JOaAnnGpO4N(zrnf>~C@XiE4pxFG~Tjf%qK;$t$z zVl*LqUttq-88s2w;xVx?+F>yo5WY8*<|Y~;j8Ke&rDDWpnn&Ykz{1R#i#TW-;wPN(>3AhjCZ#k;qsu27J8VJQ09Ycg-{O`#VFdNE&duV~M z7LSjDJ`Rd8zb8*XDq$U0c!CZHZ}GT@=z$jwiqW%&f6<*6HZo%nUHkj+=zzyU@KY#n z(lXc%3X(VIgJ@`hdr%fGqPmHvzGG1SuH%3Z@Q?8G>!^>=rk?jdLiuas|FiNqgu?|Wotw+x36v9F&Zjm)2T@FaoHuTT zqoOa~3Xk21{H7d+R-iVnyKxwbfuZLWTkc=SYEgilMB!BmDoJ< zFGc0EzuA|fZeEK=#}MPM#kEj=?b|T{05AvxLERNoU&vu+hAHe3>002ovPDHLkV1h!AMH>JB literal 0 HcmV?d00001 diff --git a/src/icons/ClickFunnels.png b/src/icons/ClickFunnels.png new file mode 100644 index 0000000000000000000000000000000000000000..86504340ecd9da4a8771f11ea40dddedd0a1c83f GIT binary patch literal 15804 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 KuNE~7`o91eqbD{1 literal 0 HcmV?d00001 diff --git a/src/icons/Combeenation.png b/src/icons/Combeenation.png new file mode 100644 index 0000000000000000000000000000000000000000..86792253e375667078ee4b4352a2d43a24c73b44 GIT binary patch literal 4176 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 + - - + diff --git a/src/icons/CrossBox.png b/src/icons/CrossBox.png new file mode 100644 index 0000000000000000000000000000000000000000..c907d010be612037bf227d57b54d5167f15afef4 GIT binary patch literal 2958 zcmV;93vu*`P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 z \ No newline at end of file diff --git a/src/icons/Dell.svg b/src/icons/Dell.svg deleted file mode 100644 index a6863301c..000000000 --- a/src/icons/Dell.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/icons/DerakCloud.png b/src/icons/DerakCloud.png new file mode 100644 index 0000000000000000000000000000000000000000..377b223f2fb28789f3f7b206379bc1fff7b2478f GIT binary patch literal 4243 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 + + + + + + + + + + + + + + + + + diff --git a/src/icons/EasyEngine.png b/src/icons/EasyEngine.png new file mode 100644 index 0000000000000000000000000000000000000000..737ecd1b7931f593a6d3e1f310cba060595d77e0 GIT binary patch literal 4635 zcmaJ_c|4Te+rP&?F|uaQG^B``!B`t&%-D)#i7aIsOqLllV<%#ev{@2)gtC-f$(}tS zTZxeDJC7wo62I~Mo}Typ<9*)y^SSSHo%6Y_>wM33zV~&m&xtWH)`J`oJ^}y$#6TZw zN^i9eUp5x{H;>>wN^gXyI4i0d(S_>gK*j^w&O}E%)WFlh6>o}na1QWp$D;v&@if8Q zifUzaLEVYy33oWuf%|)s=+*#$KIczzaB{~}p^kW0f|mwtwWb~hB{*xqER~FqMkF1) z8$myij5iB3Hg^hicT#hPozsM({nhCXJn>WqsK2L&7e(D)1NN6+b-H{wjDSJ^QlYwQ z!2S!$%E$z&LnPy&N^oU4CwUYSs-gy$S4N_gNO=_mQVD@nmP5*`BURNE?396%W7&TSsX(I#>yuP}OuDqKXEx1@Yt1Q{cz*t^WMN zKK!3!`La*wR$P8%Kq#zEO-}ANKe+^Q={JX7&jJ#X`Ef0bYYhC{q^fBXwTDhF)!RW+ zW&Iai>``F`?brI1I;qf*HVI+nOV+R*@Y@K`{}m0zP-J@@UpKFVRcba zQ3d70;Zv%uot>SH0|Ns_UuvdW@1`!Su8MD_N;OKG<;dQSi7~LNzwxVTp)Xg@ebkRk zj$inAv(Webb`?~M_xJ-M&nu5w*bR#JMnJXq><9fy1SwOe(3>(4KDYHEUdt^g^Dv}-v= z{=#x{a(C#Fyk=!JsPMq`QBz+7nqveCBq7tEd=Aci^CnGRMP=K%!pkl%HT6rwqeTWr zR?fZV$+xlF1m3HHd@F5oE!$w#+f0c9z1i*TlBh_e-CaQj5PYWQdVikIE$H%j#*Et9 z+WFb8RDyF-pizsVg%rm`0NZn|kvaQrG}Em8F8XVq3iSh}O^*{~Uu3DM4dErKk;WUy zTo%fEU#>ig>2qnX5D^wmjEwZ#`S{UvH}#a!M-2%Hr_q6dsEw^Hm)bWWRu9C^Z&M+Y zNh2d8&F$^&>D#(B-5IY^q4^yWdiM%!OC8^W75us&aW8cAHC0sfQW6rHF;k`rL54Tx zkKdi0l_G?Mh?!YgwGDpxaz^j2a3LVb(!%<9<3o^=k`nX!`nr7eNRcHdBQ7N+E3NRWDS z-fPoT7V!QWuOLsyl@c3!9$KWm_66XRzsdlP4{x}S{!z=d*uXE|T-!tSG%&I}bLNan z25C52&59HagTY?vL`FZh--;H$;V(2k5`~-jS|57u=qlgjE2aV1>W2$RI?3t^3Or(l zvnb9lauj+A*1{^bNFN%dM+MgcMl{0B|VIQr!e}2w)r^i0wgSX zoX8B%t`pcBI>zlP3ZQ&^eYZX<&RE=j7^Xq3XSR3B%Zjo}){mj_{me(&+S*z`%&S?$ zg>ma5Jxlygkrf77VF!fiqY>KSb8l*EJy1&=nNRuh3>`zfy|gA2;P88fuKmX!T&Wwa z4-K`M782lw$EK#H&J4?3@>z}7t|}A@6A#^6U#;-^+Mz24XDt1JIe*;6#l^T~GrX1X z>iF^FvR6RC>9{O`Sp{f1gAZTq| zoBLZBdRk0+GCpvuE~IDiRKWp1TmZ|dmS{yY+1F^*^;}|QVwz_eZ@nurBrPpHglS@= z$=N^EbRQ^C1IwwhUA{Rsl#yYN(`^;9P@wT`^RiJPN)7$pwCHhTwiNL=poHm0+k;Fk z3mE^LApQKz<>lc?k|@m!+}l~_{k|$YP&S}EM+5V^_y-17o6JXT z@oCn&gzu{;wCI1jD!N(kfDo+xcL^yw2HjzEy^XX0F&!?LnQUjQCO8I73AR4McF zIvr(af3G4d+nEa%%gWS=mT78gQfIr^;IKiiwK@4QX<_)ad%`%`!5oFt(>uk&${L!M zoLmX|kSl{ip?HSH5l^CJ1(F7PJ^P_3`yaEZ#Fbu286Fm?uI^;{g!T^g;E$C_g)^`4d$`(-K9sHil%ClyDL%)tdwncGajGO9O?^96)mUmc^P3Pm(dgCpJ%< z*o5tE39p=^lF3hBF@+lJ#XNlYdcft@xHW)qZjV2iPXC94)CPhxvdwU!)12YH z#rgRWNS?I0-%YYJqYFv%yAh z6korDr%6A%2a!0H0f{Ls1$$aySS6g5(q1<+fhLZBU?W^P9d_AqRQr~p14c2bl8rmO z-hcgRRzX2xSs_fUGJ^@K*c^R-d`%6lth^OHIXNk7wFdCn6ak$JD_?7V(35<^cXa`+ z%9l~n#~i21cgt#(oGP`VQ1#`uPh)Lw7UY8_I)r|bMk>9haLdg%XAAR#T27ui_39Q+ zp^;J7HHJIXf~J(mk0Y(Ety{D4Sy*pg@p-f`v|DlkN9QSrsHyBH1@#(4OOs`h z?T_+TMI|QHw^P!O@ff;Qqk>|ZCSI(peCwN@t68lJI!YUgxGa|X)+>s#ZlH7Pbz8=D}p?Zh2|5L3YLD(JTf-S5J)P z97!CF3`57mz)b2#8!t|TNZ7V6zJFd?y1=saOT#vTnai-NntnuugEu%!W9yU-$uUg*Paj?TcNn7N)ymoBBZJHKRO0O~`4gFV`jB8TQE zoGuny@C zw{)bqp)zWQWe+afAl?ODyPmJ5p}{IzUg5{Ky|p##=9RUsM=)L#cRbilhg=s)i`3Z} z(P&xI%}kND#j2JOrdhVV7ktL!=qF277e6=8$>-Xti}{?Q^Ay29Cg78T?iVlKPovi= zO%V|~iHUq4Zp6Klv|^YIqYFwTkHv6;TkYNi`rNyJe;bQVy8E+`l$q&23c)2Yd=EEoQ@*727WSe8 zG$tB6;izBi3sF8oPJxJ{TBCMypETqHCYA)b-EQV0f8gUTyX-sRB#ZFMYf(#@uqIpV z{jO(v_u~Qs1HH$&Qg?TEU+`s4Y}_d>Mnsbb!%&FI6W(lXK}TmhqR-E8#cZUIn zqLpO!%r!+hiv>M4&rqPbN4xc1b#-+fnaQX4X48rMOIPy?Sev%5RgxwIb~rwJjP9@O zoAIed*xIS*>&M@Q3nSOdXf)dVojZ5ZHV@b^2jTu~J!SMd-lKWL_I{NX5n>*qJo$_Q zvwPq!G_rc1r1EgL*sdmt<<%INUFbp_IL@70rhjTOr+bwL@cGk0djBr$0zJosL(vdg zof-We;Th1Rr$6lFipPh<<~{h)FF9x-{iTnwMG6F5o}R<-W@Tn(LK;MqmD~pq3K%Qh zKknXz=xi@9FAI9+cK0v?KITdSi+J{o&^K3@xLPlpo72v!sYSvd=jy2oA00pO*Y8tz zwowl#CXe3Hnh+Qp_Wc{Lf%zBDN;QF9V4gAKXxO3PAK7}qEC_7o`vgmVVP8GGt}(zF KV~a5M;r{`vyfN$m literal 0 HcmV?d00001 diff --git a/src/icons/ElementUI.svg b/src/icons/ElementUI.svg new file mode 100644 index 000000000..4c05f8d2b --- /dev/null +++ b/src/icons/ElementUI.svg @@ -0,0 +1,11 @@ + + + + element-logo + Created with Sketch. + + + + \ No newline at end of file diff --git a/src/icons/Elementor.png b/src/icons/Elementor.png new file mode 100644 index 0000000000000000000000000000000000000000..87fc23e014e907cd2999e32faf2c3c26d7c9b6c8 GIT binary patch literal 2564 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 T<;mA7I0C@J^qR?=%Q(WnLRGZl literal 0 HcmV?d00001 diff --git a/src/icons/Envoy.png b/src/icons/Envoy.png new file mode 100644 index 0000000000000000000000000000000000000000..5d69d481c4656f8c9811b24ce948e76abd321f23 GIT binary patch literal 3553 zcmV<74Ic7|P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 bG%zbLGCD9YxL)rO00000NkvXXu0mjfcOl{@ literal 0 HcmV?d00001 diff --git a/src/icons/ExpertRec.png b/src/icons/ExpertRec.png new file mode 100644 index 0000000000000000000000000000000000000000..490f69319553799be74767a5275b012d1da3ab9a GIT binary patch literal 2034 zcmZ{lX*d-67sr20c9JDZZiYz6GGs7C$QXnWg|TmwEi#iaw#Jq{N~S`T7R$AbJ+hST zmKn*KL1Y=CuH9&wa;KO77yt7-=X{>Ce4lgPom3lZln}oZKL9|;+|0y|O~XIV%gK%k z0`yci4q%L|i~t~K39vl5*g4eO%+3mc$ddpN69HhdOT=XWZfXFq;sF5SApnx01ueGc z*bQ#4izpK|+4kc?>n%2TaOPG>o_PULh^i}$ zw+4FGMFjkr(v*c2gkvn-nRd*0 zn!Q4)iFw{d2v@S4Ag}BBFr>}nbu2Gm9TaH8rK1*~_1;v9A|p~e6aBFxefCTd4~ENtdiE}<9kK=0fZ zdoV-g>ZI(3%6#j#NT+&HR+zjQ5wz8$q>LbRQtum=(7mBz&c{b7AYqgxci~;gTLM*f zZe0jo{5-0FqmzH*h|OTw#k{IDW}f4)O+e?N(_*AIjW3El?;v$G`?15y=eo%G1u2ks z;g+(VR~}6m{&x9?ykW+8)!HG8HV|?Mi@p1eqo&r=Nn>7`4|{E>9qy5}?Ub(<(Wp^+^Htbd93gi#Z)#eY0isjr6z~cK1iSJdlHX z_ojBe?U0bSD+!1fH!1FnCgF+%8`Cm_?Ok*F>LMEg`>xKS8^i&~zwwO0MO+d~+rJs~ zFAjQ{G-AeRac*38r!BQ$BwZ$Ucx6|PNxMDZ&SuFaCLV&uH}4#pwi`$~7nH9os;OR> zCOs9hdmOppkfq7%CC6LlSK_7qi`KI3#>Ghy5K%sJywKf8!3>3$!%J~$bE7)-n};@ z=vG~dM*Ynq)LnfMT2a&{<;fRGG#XMsBYd!ZawC$M6FPh9kU7ceuWS7$Q?PlJ>#bM~ z)t~{hQWeN-L=p45(}BR6-m3(_`Zqh0uG>pD%kEMut6+5BPCD;Chl#pDu=APxlB-1Y zou5;TUXPJ(JMHHMeIMD24hL65X1^Ql(35d~M`S*TWS6`~J3DYvET|c_H?7F4z@c&= z+=Cxv%*X6z&18$z4bCUq6OC1<-Q@g_7e3sht6Au)EVeIU3uAtoGyDSclAXyrYB!nX z|JbW1LWY8Y$wHa(_8@X1fF5bP!aqkOSxtmap0pR$gkX?l?c?fa`T0>$RSgh= zTV{{q;TvzRnSsf_$eo1{((C5=@0j_kkQn%mKvVO(MDqsB5 zzw(!VGA3JIkCHMP0bW~A+w8qe95;UagnYUHwb+U`a4(Ip(zB2&jv79*(fzBw%~pZ$ zOx)U3e`aj*p16O}*zpL!GfHrbl^ojL{ys zkV#o@b@3D?V?z3%wn1c=iZd%ZAjQq9s+$@*_2iL=KE;j4DzndR08&CLhUw>O&`)rSCP^zM%-=@RQLgtIV zz0n6t?wUu<6q&>v{?*Ro5Q%^+cI*Wx*z0!J4X2n&G(o~Om5|;7qkCAd%`MC*7PCC) zhO4?Hv&9AO$5Bm3F1am|fc{oeh7;yR!(pEWhq-rZf|lzMx^1siAi!{(n?^4D*{335 zh)+kIO$oMEQN3a+D4%)w1M<6aHE#NfTZKGP9_ehn;eIw`pNFhRYhXV`1su{5=i`a< zMR(TV0x-Bm?})yUPB9UMjHXsRn^c&XlP()QCOV literal 0 HcmV?d00001 diff --git a/src/icons/F5.png b/src/icons/F5.png new file mode 100644 index 0000000000000000000000000000000000000000..fba894586e496018d86d99f30e472f96eaa73ee8 GIT binary patch literal 4769 zcmV;S5?<|zP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 literal 0 HcmV?d00001 diff --git a/src/icons/Gemius.png b/src/icons/Gemius.png new file mode 100644 index 0000000000000000000000000000000000000000..c9344b1252d5cc6675734e0fbce02caeff9d9d36 GIT binary patch literal 1371 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4Fdz?*8raoSD*s6<&PTnGP13B%zoiNkUcCB(1UP< z=0RNI$jZ>vK)A>X;B2faaj8dB3^#;!44{qw|Nm#4!Xpoi_$4Jle!)PRfkA86jmtHR z85a&)2`s)ok5^>-mv2|hE(VzVd&x4jd-Ap4Rk0HLxBiIRwxx7Od9>)B&CEsXH}naw zGm`y$syLI|TCb~iQlzGvBNv;Un}MXO_&qVMbCaFF+we_nQ+=No^p}6t+c=3pp^!gn zy63%raj!kjvgJ>i;ftr*{EBjF!t88%wN$c;|5*{Ux3cM|cR~xtug52{ zBMxjbP(62J63~^5N#5=*%eHTjo(kl!mw5WRvftwp;FDs$`&n)k0|S$)r;B4q#NoHo zUIq(03LKT*qaeYv;E1rQ(ka0Xj|pF$1Y8dae{@sUn)g8R{qHb`J^CNYKG)x}zWk*m zG;Ed6neDalR$pJ6>qnc~ZsvY)a`JMY%u7!+SImi-?^qcu`{cZNO4I@dPsc<-pZS3@ zJm==9GNs*)DxPs>?sCtQHE!G|Lbwz|#k(4eUg;(U`5lQnlfgNWYem4;qB{+%_OpjL zm+oRr3~gS?eq}|JHj~y$@x)CfIt%(P8Yz7h$c?ynBV(-qqju@)9MQ>FvrV#2C2g6; zG%NPmf~9ILo33$Q*>%rR`pEqst8Pu$l6!{9f9AzyWg*AY9Jl4%ZM!v3_d=haN$I$Alt->nw%s_xCaUze(7$8bT`vO+_RneTGX7X!;h*VX&vl10>l^?eGK{i>MD z;bF(EuAxvkX`&_f-Bt6vY#(e{l^(?Zp)~R3YkymYb8Y8;K4o^`{Q7CeoaJA|^^A78 zENeJzHtjXHV%(7@pG3F*du5uutIm05-n}B}mfL?pU(LIM^-a`gxxaX51ido{SF*C|5bUh(F5+OoV3oRz?Fy)$OQ~AsO7xST= WOJ4D;-18ok?mb=oT-G@yGywou`E}C( literal 0 HcmV?d00001 diff --git a/src/icons/GoCache.png b/src/icons/GoCache.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8c1a5f010fd0fe18128aec7e202789e5baf0fe GIT binary patch literal 2321 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 literal 0 HcmV?d00001 diff --git a/src/icons/GoJS.png b/src/icons/GoJS.png new file mode 100644 index 0000000000000000000000000000000000000000..5a91ade5468c9605aa169b6dd095499979ae846c GIT binary patch literal 5709 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 literal 0 HcmV?d00001 diff --git a/src/icons/Google Maps.png b/src/icons/Google Maps.png index 1f90c694b70b0214eebd70733b64091049e74afa..ecf471ef08e1656bb712125cfe0408e93478805b 100644 GIT binary patch literal 16008 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 diff --git a/src/icons/Google Search Appliance.png b/src/icons/Google Search Appliance.png deleted file mode 100644 index 71bb47077e7397b70c02e2cc19218a7e3eb3f7c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/GrowingIO.png b/src/icons/GrowingIO.png new file mode 100644 index 0000000000000000000000000000000000000000..c96be59fccf9ba9c568cf3b850581d82ffa1deb7 GIT binary patch literal 988 zcmaJ=PiWIn9L^lnF`ar*aUS-_6eifbBuy6^7E7CSuCk2L73|U1m6YERYb{?#Om-pU}-}n9geQ$Gd;o8{f_$bG5 zW92!s!uC_i8cDJL#LqTj+c{dQ(IwKLEfiv|;E*~7We+Xm3P#TQtq*vH~v7>Uw}-1xI8pwAtVqlS!yRGeV3g39E#x_PV&(B$Px= z5&*;KbPY^d$aek2c&UT3EUoNE6!|tTn>x>U1lM&mRT4`jRm~KyNF_-sWecWKEGp`( zXcUZsRLu3TCb8E%?9(3BIm9Xhv56qOfJHWO=-$T8Y)CxNDO__0=OPW{>tdb3xyS>t zkR=0?@%}aLo{4EFIrhcNE`9l9pJ_g1;y(L)=L>rn*UM(18h@_;YPa*l7w>G|EsA1F z*?!+X`SxY25dGL`gZb0&!uI~&#QhiJdr#Bf@*_*{j(vK3=J(OBXzN7k(a?k8t@A@i Zj&t8%@lQTJOzkG`tz23#pA~Q3`vWP$III8w literal 0 HcmV?d00001 diff --git a/src/icons/Halo.svg b/src/icons/Halo.svg new file mode 100644 index 000000000..cce2a59db --- /dev/null +++ b/src/icons/Halo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/src/icons/Hippo.png b/src/icons/Hippo.png deleted file mode 100644 index 3b2b5adbd2e88ff8d4582f651b128631fa69db74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 728 zcmV;}0w?{6P)e5^85Y(spbN%=l=iy{Qm!4%kWyt z@7D7BaMAJa`u_O+|AW}`39;x3u;|9^`Z~bu;r0D5yz92;_*lyCd)4wr#qQkn{4Bid z+VlK!((*OE>8a%R`u_jD>iG_{=!e<#==lBX`TcCr@%H`yk=*pu^82;t_Xe-$AGqo9 z`~D)h>e2A~^8Ehw{QfAr>lC!<6SV0Ov*-b>=dI=V3$W-Txaw=r@s-{6x9Iojkdo3$f@1ujom_>Hw(bc+~P#$nR;-@!RzLWzFz+)be%H^3L!2 z!t43Y@cL88?@Pw+_x=A6v*{AF=@qr<1+eF7&Fu)W=*aE*;Pw2J-Sx@t`t zjMEpE) zX8w!?uV6du*2u{POSr z|9>8x@ax*f-@pI-{`Bhi+xx%2efs_L=db%mfB*Xa`_HeRdumsCx8DQmhaA)QbIK|2_fyFE4%%w|yyA@b$>@_sGH2)Mfa#qxb7|gT0 z8P|DPRw>}p0(;h!W1)`19SzF^tzA(N2AQK-M3+lomvV*QdOOBhTNE{k_K+*NmUbX1)7>C^X^^9PyioE#V( zL%$cL1I=q#t>odrsIj0;=|cEBPSFqS+#1UcurAPAx0qXjrkHHL)D8zv<$%s0 zugaaw@>iD5bMo>^ayT!s)PdD&T3a3Ku01UmWi_ufa^0EokSQTx`jMbMrGS5loU;z- km76q9Dl%y-`ozL;b>{K8ES`H80E2?T)78&qol`;+0BWMBF8}}l diff --git a/src/icons/Instabot.png b/src/icons/Instabot.png new file mode 100644 index 0000000000000000000000000000000000000000..3b49095d355d20c1abc8c8a1f785f847d0184c93 GIT binary patch literal 2877 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 delta 121 zcmdnN-o-dUqKJi=fq~)e-A6${N+Q4~#Pyzlz+(f0rw$Gu`uo4_-~Z$M`QP{N|NsA= zpG#~OP>rsqi(?4K_2dKxre{Y3+$t@1amei0v0$~MfmdRWlY}zkv4%|jX2Y%o9%hlp ZjLVfc9&Vjh^$Vzx!PC{xWt~$(69Au7FTVf) diff --git a/src/icons/Ionicons.png b/src/icons/Ionicons.png index ace620764f506bba30df3764dfea922f07dccb0f..67497c434a99d28e3f5a842182ba184833ef9ddf 100644 GIT binary patch literal 19373 zcmeI3c{o(>`^S$6*((yFA!Hk4#yVrHV_&k3kd!gT7~5c`Y!QW2BH79o6+%gbgpx!l zBuOGABnjV-B}>WgXm37!=K5UM@B91bcgW&dhb4qt-i&xjBS6 z007`NH8HRS-*s32*;&D3F)3gGd|T&l;zR)e&W)@8Oh87~W&q%@B4IGr)}CZ4nc_+I zhnQk85dT232g!#30Kw0*?TA>ru}xa@1GD<(agizJWLp7th^_wdNd6>gIq`LTW^v+q zy#hA3*BctLh}_GKV@^njj2Ey`;5x?fjBQx_T*Be=amQLe4u+lgep)yGrtNcOkM`)L zne2)Vwgz^tG!tbT)kv-)eX;eg4!1Nl4-PBpMsY~`1AOci?&6f?ZA`#I1R5ezYA5O7oi_&v;gaNMiwrvXrqR#;QM$-=HzvN5#M&&?KXUfqv zl1RfSXLe`+n}dU*m`uB=pgg}CZVfI&SFthVj1VG9h4xzV%+tBBcjuL-x;RdM@ou3t86~d94tdYK-&q+0x>*008zFNGf7mD|A}e0l*+PO0G;#WcK!Eg$C9wx7YUH=KSQU7OgMY)Tqy= z&*2`qCD2v&(jk4B*tRlJIak;dT~U<=8_(Eee;&m~`|CVf{=7>#_MF=?by4eB^zN~5 z#ECzTV{$v@xGjNQ@J!5t_-zxG4aX%R_v83&B+QdkP2jf2un>C_(P^!~HOM2ojcz1q z-UASaKE>7S-5QHCFa_rbNG&{K`a}h3>(&|u>|Qu zaAJBUjuwtPo|#;PY>`x1|9qYLI_7Ab#_bZx7tOCp-&nucwAl>-KjLVju~VVurJa z?+hysiwuiTJ9A{a=>}X_uzM|I+v;T|G{QHcGQvtYjnK0{pJDsrVjgzAYT_>a%Xw9{ zS8R@4+^DiI1KDb6+gE8Z`>2H~5gSfb3 z1rE2w5oLrjH?wUf3I%Pxa@wLmsOz{;3sy-TK7M-i4DT7Ty`x-}+yQ~4R*qD&ROwU^ zIT*I6xS)8TnA3j7{sA_zXpdcZsgb?1-B8iGCut@2#o5;5b|QAfBF&3OiisD=Se*+I zPRmDGo$grNvBF%i$-TOFsID2pi5IE}RuK2*E{WY2rP?HYwXOHSe!1Gy%c8Z%wTg@K zkQik%WrqsenG_ElwxQDj3t7}1>qcb?(`O=%4e(FNzLpg!P_d|i6LxzSr=_PkmY9^- zlo*fKtCda^W*5{O);fKR;?Zj{+rE3dF)^`yZT6^LuicA6j>1irTBx~F#bWP#k-S=i zpj&>0lc#fT?upE?AQujV)Q>K035P9XmwlHC=Zv`=Su40CS^K!!H>2;W29VLBu$I2R zY%nf&bTRq3R9yOCbW%+x`h2(12_xQkQuFR1$syln-{$kutkUAr=9cd)Co^md|B{2T?I~)Rds$byO2)# zj`q7;DvT~?UzU1Wd%3o7ePPXx;&-#zaA44dw7m-0`F4haM=VYb$1oG{3l4KWs*w3vd|>eLR<)S&`W|ak1~p zq}n8D@<{*Lhbm`fbDWeZkM7*Vys{bT)Zsjvs^tChQiK)8DvDS+x($YhB{^K~DXY#8 zDxSwp32J}P4m>-gJ%m;tKnytTeW>10eXsg~)g5xq-k6t|gWFczS3*}hfx<{BCL;6E zD7`4>H6Is34~XAN&_VSPK9u)P=*8#O=n3d09=d#J8zvPU4BN zj(Gd@5gYCe?)aSuuI({LVjN<168z&Fg*)NtszIIo7|Kh7C4)4BflMOY3V8);rYfgh ztmuV)u6{%1hEB7hhttDu$81MaAM-6pMY&QnKcAZ~KTXUWd7b^5b0|#kH0+*>e@I?? z<7`afrXs}+3aB()i?|&cDgV*qle@SnUTS({kW>OkNTX;YQ3BSf)*1Hg>wIhQgQ}%^jekj&JHOc_GWu0U>=HLjr5%V|TJ%LSH{tCFk31 zRWjj_UK&v^9ct+vwdZ#0q1%;A-s7D193wH|?~(r+HPy#cX9$QHJ=<9NMhi||{3-e>~YbHbME5khI$3$|}+h5Gqhy1l^ zw=cIpsO=5fK6$y$s&4PB?u1@1=Eae29p}&e&!+khdNl;)&UE%0&$GrH?)aQEm&l7* zn|LPiK`eLdc#eiP68TyuaCz)gA*RE_$)w_VovEL;(P;6YP(}dlRS-Hv*C5 zrzJ5}drJaBa@Ue@P_;*w@F8 zf(q7>_!1WdeqL>cNkG1Ip?Ygc=&cS2akR9CV90?4h^nF*6t4tVfv6)D;i_utNOc7W z0<>XD8Zd+sR0)YvRYoZxAm3gR+8p2~bfCKj%GSW>+i;+zCE-b>`lDd5pr9bdAZ0~z zAQ1*fB9Sm91Pp_CdJV4Ob;uBZh22a%;EeVMQCAC(lU;ePN;zRm2915&Ud{sfpU zfkNIFh$k5CC-_mf{plp!@jv4D?+f(#!p9vCBlr+}K?wysdH5es!TpX>cI8o>ZZC1`_64JaG|g)3v>>L`Q~N<~#(34u~l`X$KM zo-{Em!Q6MpQE~q!%5QyX(yZ_Gsf* z)0g0mhW*z1^R#{_zsX2{U(SDr;A{L}9UiyCx^`+N82ceKXs6n_uf*ujf zkbko?zefFCMjIXtTdmbTr2m73py2lZ@0Q`;?W+G5%kVRc@t!z8BEel7_C0~WH~hPm z`?{XL@2u~;_3t|o?T$xzkOO^jRBe(kj!1y{`w`KwpN&7qME|To7_tvJ(30#<&<5+k zpPK)u0)Kh4{`$k4HpSLhA7W~VQG+AZ)Sw7OuwwlT^Gm;9;;dfeP++wIGavV5mxG$W zwbAx>T&)^D`@Zy7M<{_W7<~2kP5P^wR_a7w`m38(`crA|N1|#YzKurH{EKS!N{spf z)egLABxr+Eqiv$?ZA}U$_&6Gnz-t9%wdSd*eACc6{wQ?%C*d!SZ^EzX^vkW?mpbva z6})i-?^$6#Zd(6VLVi@*|K^9EGx~2vrHREDga!zGlYxsq9~v(M7Yz{lCIc6JJ~Uni zE*c>8O$ILdd}zE3Tr@!Fn+#m^`OtV7xM+aTHyOC-^P%xFaM1vvZ!&Pv=R@OV;GzLS z-(=vT&xgj#z(oUuzRAEvpAU_ffr|zReUpKUJ|7w{0~ZYt`X&PxeLgf^1}+*P^i2jX z`g~}-3|uro=$i~&^!dHy9(dR?sW#FO#Lf>TIqR)rM z%fLkggucnZMV}9imw}502z`@*i#{J3F9R115c(zq7kxf7UIs22AoNWJF8X|EybN44 zK_-R!g9hq>-d~4Ep~-j%dhD?r=Rz>v8=qd;=zrw zS)~f7T-j8$Qdvq+|8iUA{LNeQVFx3oPVgqm`t^!7=((yt;(pJ<1>t%-i4ZYi-sI1_ znPn-;yC9D@O!jOCb4++?V@u>6-5w4n9;W&RDZ!JA$5UopF88jE~jUl7wE z3op4F0({l)JznwqABZvyvsCkE(jW>i4eetBJKHy`d!=CAvShtMgZqH5@Y4GXCa|wV z)YizJBCZ>2>p;0^H(MnlWo7eq8@<+{*1$WdZ6cg;&ihY3wcFnVuz`XTt& zE+E67m1Wd*0K2H_#oQgerrTf^SYMwecdJS`&7WE`WX%yd)v7f!Gjq~}aN6RTMPbE5 z`8Q*}RH9RmVy3 zY1zbZH{qpfH=tkRAoE505OcNk(ZOf@V;1en7*U?J>`xaK7keVa;w^wjy#q~2hp%+H z8Ks9&S%dLc(YLD&V&`kUvJ$QGg~Y6sbabZ9IAredxW3fq^5zXk$MPPRkuo$Qkd-8AC6X zw1Ld_57M%kL#3rKrv_7!*4efZ@Wd`Hewcgj({jrsaCqLkZsv`jtjLS*xmz-?_TaTn z4h+xg1l#VsXr5mYpWtj^A!S;iJUl~55WMoiPLQYbiM6rwaXrZ`yVW+#z7SdL*{UME zZ}z=UVI{J8vK=a?Zk}C`*CEIh%(-BgF^t|^`Gmi^VwOAMKf$kyJi{q=DLIq-B|@#o zw6c9;&B|x1NN*jEf1p}q3?$qwOpOkmb;y$M`PkITjLr#eO&t$MFUgnAmR?=BX4V?+ zlgG;^pm`K)BwH_fU8l9JmRFXaqqQa9TE>5762m%~c z+#7d3U%Z`nRY3FR?L4@Yx%J7b^5BlixYm9)TV5%<{aDARiKy;zV!zmCX~Kg6t?YJ$ z=Ju-VhlO{v809{RUpO$wosdHK@Ids)&D-k(gmTJ>7cK>PYfQ*70p(@sX2jGjImhr8 zN1@hR&ef`B?Qt<}9iEm*I6t&$Pf|)XcBgA$Y}Z8vQ)T^vjdrFTz{%;HBxYAn4VPU> z8&j+i*?(~XvgEbfH$T0wc<`?^75oBS&M=c!XF2&?Z=b-&{;13Of?nm`z3;qk5gW}y z%n56KxQU4KlBQE{#~a0`{FI~X1eVs3xQPn+lHIJuhFda)>&8>eS34?j6Qv6!W1=nk zc5$ta%X6RUdf_0KWa@=DF}{HK=))@Nh7K-^ZwlU)3rdaLFQ`}OTio-BPTApi13cWc$VQ$E-uZN7dsYUm?89a4agc`9_h+mq%7ZXEi zhTRyYXbcs)4WGDp)2~&;#-)2ha%qABN2F%(fn70phs>*rX=Qig9(5P&4$6uMxE_i* zagSegkFmK$_j}yY^=G)%B`fPI_3jP|m}*N_0?}=n($%X+nXxrxHO2%NzRx{(9!rVu z7uu4vGhRTye#3|%pa2ZYw70OQ?htgT5Ufl}aXBs`defFW$y-;sfoLA`(Vp2=FQ*Kt zlM$HMBhaLLbu4AL!lmpF^rX?Y!FsncOH5s9JWu%$cDv0#Nj}V{}Cb ZU~PIbEayi~2Cr#=so@TTQhnD${{!eOft&yU literal 671 zcmV;Q0$}}#P)0(}TdC{09?>_Jd4=&6K+eh5WBh}5Qp>q^CfJJaSk=&pD%&-pn?_J?Ts$x zi#G4zuO{*t8-farq1zSd(xH`!*@4^s9~&_1N^}wH74~F*aW`;WayPIUCvgdvaXQN4 zBf&A{eW;YNH&!geD8Bk8mH4j7R2bWuMYY@<#|2}h$$-Fq(|Mos|84c-tT#hj3>AhA z!98P!_GI2o%FVniyCH?E@FhY5KTvBJ&Wzlo4cQ)x5Zu#kXm`$5@8PTm@5x z;OVd))%JQZ=ybc3F|LH=`qo?y2>cT_!q$|mwq&c9@IJ^+w=KfUB!NC$#{>pYA90hC z%Kk!jvoj@p9Y4oD|CiTrq6EQ@N{{E-hJTQAKoNu2>z=bJSAnD!NE9KstR?Tz8dh+x z_C!OB!RvIx+itCp)U!cn48f1!qh-(Gueb@fbOYH`Kwx>Yp6DZ9y_SE_jAy!V^yfRY zXjh-XYh5+>$2o~=HGvm;6ra~~-n5>E<%s?g=c1gfRsmm+R_4klarna \ No newline at end of file + + + + + + + + + + + diff --git a/src/icons/LOU.png b/src/icons/LOU.png new file mode 100644 index 0000000000000000000000000000000000000000..c2836cab445c17b77ce4e0902d8b70aaf20427e3 GIT binary patch literal 1685 zcmYk7eN@u-9>+m1gr>8mn3+yurfmj4zy|~YQBfiVP2H6=3_%1+kr0D4mFa9ly_nva zg^wjgHl5Bk-F#kUotrByP2JMea%LIk#*W#Q^y1dpx!-fX51)tgdY|{_pRYQKMYpwf zwg!Pfwv7F>X!A|o+%Ty5yedBa7z6@`i(}bxHZy|APftT9C8zTQXl0tzTnB+jfl6r- z|Cm6I;0c6c2^smSs}G3~CzFwJzDx{L8X^#h_h-ojF0OJc_{7@Jy5#vw9VG-{Zl46Y@$&you(X_C4V&;g96v^dMA^<293beu- zoh}msSOS3nU~m8qhcb7dGEPe5NlKI?GV+Vw0J~OV5;(kw{=u z1bC-nwg>#}&m8JaL3JFr7x;0(Gp7xwP8 z$f5Qhow?E|LgttH#4}3Nx13h#Uud}ze*k<_$kV_udwy)mkSPCPfmT$ZcRod9c;z^K zyVo&ZXP0^bvQ|Hy*tL#rR%Cm3q1p#^lR4$#lH7oRwVGFVUy@D?@wJy3B+qQF;=|E) zYMfh%2CHWnuV3`4Z?n02qt$0zHesv--^WfI2T=lTtZEPYDM`|2@e_%V+&b9#%i{N4 z3p^>G{nuU#PefiHST?<#G4epmFV^Q8NmTwaYW_x8!eeh293SsLD_ z%22Y$CLzL+py}E9*p~V(5F3M?>!Ex9Uaufu|I~eq}I#^ z(ax^-e(<;}V~iho+?L3B%qP@>7?9%rVNw@E0T#Jf%Q*LeMC^t%{;* zYTRTLy`o>c;*5zrcyHfR4fuIc_E#KZoo*xFCER#V^TC!$ELV1U$51Tv$_K1BBPpR8 z`z0rg?%buu2sQoTv>un{XhxM?af!(+RtE2srFsBDZ|%-gE?vGxDY#9@szItu~fgO=9ag*f|u?I#hQaoyb?~8^*Q07#?$NBzfe?e8B$&oAmdhi%3u5!m6)$ao_b)_Tm{Wr7tzeJ%uyglI+ zRdY9|dBMhPy_EFWrw$xBWgD4i^X$p|KfJ7GXCKYA<+7Bi8}!O*;bIuJLPBsYhFC7o zac07ug7ebi4z%Ozn;&&*UaxT<-EIFFtX$l+Izzudz2f&Hd9mqs98kz9wYqP4<4l0t z0f%fz!FK=ED&G^|a^%GqtJ(WJVd)fD^OSVn4SW3K!8p6RHSL$>hOU0k4gMa-JkRMj zWO-esQFk)b*!^_`=cLMY?boVWtM0bQT0pt&*Vwaa*(Vh(jU6>bk9M`{w?8Jpwhx?1 zq5m`GW%dS!)Ei?WjtJbX0mJrYdT82K((Ci=fQZT-=5_yFr1{gr>Lc5%q1;c(CI-Wk zCmndFkx$T5c$j|ZkkQ{@6&4m6CnDI=S?ZLm6VzT7^3eIH@0`c>6+W;it5v=#{ShW# z3C{R@f=~KomOVNOJv{IJwq1D#G-VP)o`%Qr8>(g$^Db4>HKPuJ)C4}ew Q)Bpeg07*qoM6N<$f~Y8mvH$=8 diff --git a/src/icons/Laravel.svg b/src/icons/Laravel.svg new file mode 100644 index 000000000..917d02077 --- /dev/null +++ b/src/icons/Laravel.svg @@ -0,0 +1,31 @@ + +Laravel logoimage/svg+xmlLaravel logo + + + \ No newline at end of file diff --git a/src/icons/Liferay.png b/src/icons/Liferay.png deleted file mode 100644 index 43560bfa66cfe552a0448c759a3ac2712cd77f0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmV+h0{Q)kP)C@3i@DJUo?DJdx`Dk>Z}YJaujS#6S?$LXQT>a)`Ax7P2t*6;rQ z{&LddWxrEbeDpUo&z2{ zikGpAn6iM6tDeZ|pvmdA)$Uhokgn0}uh8wU(e1F%?QMLGwbSmk)b3kvlR8diV{?VL z*YCO4@4MLVa)6P|;q%Vn^JjL5g_N&VYLA!1=TK#gveE6b((SU-?VHBvyxH(SQfaZ! z?MGQ}dy1${Uvz$ontzU}w$<);x=Pnkm9Ou?mpWNoce5S$&rg;Xt^r=Um+fWDyo@ns5- zXB@siUPr@>4|{Ul;z71(`!K1E|G$1`_X0p%4aFdo \ No newline at end of file diff --git a/src/icons/LocalFocus.png b/src/icons/LocalFocus.png new file mode 100644 index 0000000000000000000000000000000000000000..0571a349b925e4b1ef6a154ae0bc223e0bce7b6b GIT binary patch literal 3428 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 literal 0 HcmV?d00001 diff --git a/src/icons/M.R. Inc.png b/src/icons/M.R. Inc.png deleted file mode 100644 index 1e3e20e1bc39002aaa9bb64355798ed103ca96fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 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 literal 0 HcmV?d00001 diff --git a/src/icons/MemberStack.png b/src/icons/MemberStack.png new file mode 100644 index 0000000000000000000000000000000000000000..8f170cb9a7f144337448c9f16e75c0470b20ba37 GIT binary patch literal 2112 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 XRolCmDqIWIzlHJ92~mZUKg#(Vz5U)? literal 0 HcmV?d00001 diff --git a/src/icons/Microsoft.svg b/src/icons/Microsoft.svg deleted file mode 100644 index ecb0ac592..000000000 --- a/src/icons/Microsoft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/icons/Mithril.svg b/src/icons/Mithril.svg new file mode 100644 index 000000000..04cb102f1 --- /dev/null +++ b/src/icons/Mithril.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/MobX.svg b/src/icons/MobX.svg new file mode 100644 index 000000000..2dbedb857 --- /dev/null +++ b/src/icons/MobX.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/Moxa.png b/src/icons/Moxa.png deleted file mode 100644 index 03a2e6f931765e9ab685480ef3ffc5f4aacecb73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 497 zcmVfq|lz%{R&6RTDoO4VLkr`q$%pulHIg?m243lMzM9pDpUWYk^ zIfU5z^?2Ubn`OCK@zm3M@qB-u-}m?H`w|3p2>Bxb51!}!1Df}2sI!})+**d`<=KBZ z?`2=>C5M`gMbz6@(0;Hb07!2oNNX`jV;<6$#=kf9IcJX^MC%kxM_LLItXBvCnL!De zwg#k4P9KV(-Q5to^6-kbyK@>_!Z$LJ8=K_Rw zRKRg_fgH;Wa~df*_ylO=SaZAB-0_n=AoZC@HX2}ca|qW~Gk|VylL1pq;}lSgh#{4) zgQe3WCg2|K5YP&#Zs nlgI#mgCyng-~NT)0Ri0)wUC00000NkvXXu0mjf)cf6T diff --git a/src/icons/NOIX.png b/src/icons/NOIX.png deleted file mode 100644 index ae6f9fee616eb87866ac3f7d72a82df95418e4e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)XIyMq)A;tt=*ixSX{VvVPi|A2Z6Tq-c2giM^M`?-k6IodT}g%_=v_na*?DIp6xxWz6? zv4Li%;X$oA@GD@)*hVcTaDyu}I0Y`W=From4SJQ3qa)Z &GD;Q|$SR4m}>+J37c zT}|r=UlY<)yhP(6@~ diff --git a/src/icons/Netmonitor.png b/src/icons/Netmonitor.png deleted file mode 100644 index 45da0d73325886db8c175199e158b94508731f07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 902 zcmV;119|+3P)vF;XLH4f zBnh#d(bpfWtX-R%zke3E2><{f003t1&Z`qsvtKT*rH%vx0W}h=!B_4@0H$e^$>q4e z8n-8|-TH1OcK0}t2T%ZRPv7zUbm7YRk|XVVroENgKo$N<4WH&k0J%bmt&Bm1RxZ~C z0v}XVXzf?8-`)@86o3npcTVbgdtYzYlZ1l-+M6SUYpU>+sR*EGS|ql0=2sqJ+YW1k>V5$$QEq0Wya2><{9T-Rk|Q|EeYf%tlYnYnw; z&*K+%$*q0SF`;+{>cc_$J9g666he{&uH$g)=1o>sR;aJ9N0wzOG!GzHO>E)Vj(E87 z*p-&n6MHQOkl=|>4MGTP+v4+2KV$UWLyR68W$gF~ilzlXVIs^~=vzuzB~w)I?- zXBOe)*JEt_rI9bXG$)H_=@L(8Eg^Yi5!bT@4-+XeMjn9v{(gqv z7{)MiOcWcb+7YHBXy9{`XikC(DNWd$Lx^Hhj=uDA=Xxp=6|zDw;HRxQf-K7nz4{9M zeZ6Rb5Y=6~X_o)PTV_%aDg{@dVzO4-{hK^|;J~BU;_5q!qDt}P7CRflglnsjB#D-m z7P9FSc_l#3*Fc?EAYp zJEOCi&SK;(vWCLQ;NXow^u3P&1OUMIr_N}<^4!v4Q&J_$HDm#rk;Jhq%t9W; zbs2f>#UD-{J$wvE0|)>B0DzCb_-4;!Y~k&D@r~W7Og8MZa&E1^@^MdF%hc + + + + + + diff --git a/src/icons/Onshop.svg b/src/icons/Onshop.svg new file mode 100644 index 000000000..902b25caa --- /dev/null +++ b/src/icons/Onshop.svg @@ -0,0 +1,27 @@ + + + + diff --git a/src/icons/Ophal.png b/src/icons/Ophal.png deleted file mode 100644 index 22dc9c13760b51d51cbfc45ecafc5d7ebc05489a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)B(L;y1Z@n2AQAPY{08W2o`0g6zykC6qhLj~1|Fu(_@b}_QxM`-jg6JfwSr~yvM zg3q9W0t7VcLj8XqC5nNZ-B1I3@MsnQ;$u*kVx)m2r~y}jSOkk^Wu$P*#bv`vsDjr( z+zrI3K->((2Z8tp)SIz{0w@fKk3$3XKQ!5byjKgvJT%F<0P_9OhaJyo8~^|S07*qo IM6N<$f=ZHm!~g&Q diff --git a/src/icons/OrderOnline.svg b/src/icons/OrderOnline.svg new file mode 100644 index 000000000..0c8d14cd5 --- /dev/null +++ b/src/icons/OrderOnline.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/PHP-Fusion.png b/src/icons/PHP-Fusion.png index 0ccdba1695eaea79f952435d8cabb12eebd1a649..59aa99d6d870feeae75ad62a267758eb7ca68d0a 100644 GIT binary patch literal 7333 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 CbO=!Z literal 21384 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 diff --git a/src/icons/PageCDN.png b/src/icons/PageCDN.png new file mode 100644 index 0000000000000000000000000000000000000000..46788f4c2eefd0f982bf0d861e351343d326ea03 GIT binary patch literal 2249 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 Z1^^`U62?FjV6*@L002ovPDHLkV1nZP+$8`2 literal 0 HcmV?d00001 diff --git a/src/icons/Pingoteam.svg b/src/icons/Pingoteam.svg new file mode 100644 index 000000000..9bb795276 --- /dev/null +++ b/src/icons/Pingoteam.svg @@ -0,0 +1 @@ +Pingoteam \ No newline at end of file diff --git a/src/icons/Piwik.png b/src/icons/Piwik.png deleted file mode 100644 index 70af5df40e67bbf0a495e617732f9373367cb390..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)P#4u{Xs0BmYg1h1V->+Z&_vg=l4Djp4^G^r%J}%9>qOC~21wZcG`cDXaJ%9Fw zy&0Jn{3j0ld~olYsWzn+{C@l9=c9)Z^!xQIG&^3;n@On!px{Q1o`?WoG{9y5eEM`% zPlcKm0MX;pd}IZ{6hUPR?gY3aD|nC^OJxh5HP<35xa03mH4Cm9s68nw`1|DxauT?z zqeQD@3Is2D+G&^%z8pJ@%lQ;r@b~ZA6-%z_t5P8+|9t%D+m%aj^!ebvS2L&F_I0JG zu*08 diff --git a/src/icons/RXWeb.svg b/src/icons/RXWeb.svg new file mode 100644 index 000000000..030f86794 --- /dev/null +++ b/src/icons/RXWeb.svg @@ -0,0 +1,9 @@ + + + + + + + diff --git a/src/icons/Red Hat.png b/src/icons/Red Hat.png deleted file mode 100644 index 914a8f8441c03587beb4ab9ec397efbee33a05da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmV-`1%LX9P)exT zkuBLO3xX^#A&_iF#}dO)Cgi&` z1*{mdU?n$``d!S?!keAs_!U?E-MF@O$0DOthMoE+#Kau%$Z?FD9<)#~^WFF7m z0||O+%g=^oqI}nYM@UQfO!ofH)4@fV1Wp}03d5;Mu%Oohn+7v{J|AxO^dvJH5EBz) zr_1Gq*k}x|41|G4;I29azELDVPtr-4(PdCZ5c0z|K%Jd_ITC)> zswgn7;@PqX2CU^}F&e<(aNzdPP$H|PrKQQyco5^xa zNg4$>CIg5A(U{uEBOKap`Pt>mO{|)l8na{5C=t7bnv`8vLOi1L*a$?x{e)rOZv^pjIx8JMij`13!BvO~J0DXz1~8(( zWow*{5YT466zb$HE-JFIWHOms?cdK((t?gC`WG>9FI@p|2#$jYJtBa;gT291kS<^} z9D0-rg`LIaa@}7dn4cz02LU6UkmX%(7O7U8L3KV)E91X{Y^R>6C~VnuecwR}ZZPyE zo}emX*~=27Ba()`l!WIkULpa;_DiV1V1UzS&OjRGZ33}DJbn=a2pEM&o&!;-RN7fu zjmAdX0kM2`cAfxPqobqGN)V|nE(W8ag@3$=3h5gb?4oks-gHwStf;6kGc^k9sudh- zpuZ39kB>Xg$!tJM@Gh3uR8|@lomGR5Qns4+3?CNk6GPZV&*H0^PKWUWqnTwi8XH_U z>uPJkWV%jGGp`qy!2UHdJiND|Ao&yEk`|6U5!kv(W%%#z`yDX0;hfpPdN4VeI59B+ z)6)-Ob92+FXl7;xNQIoOsc|!6c6Js%ZfSw{-#rJPUb+Og1_q$3tBZOb85xH5wl?_6 zbOWRWWDEw7QEzN)ERlL2pv*P!@!Hwew^rbk9tHJeI>4u)e+ygM))mQc?nQb92u9=H_N+sPnL#->IvE zh7XNU^L8~{Xl}O9PDRLP_eJ;#ejMIjyLxs1v7K=y#6y)Y43J8tke8c7rRAyJ&8O4@ zCu6+uCeqWxD#uSVIF+AIcSO3HXWs^RF$rnMTjg6@TkvpditdQWO7iOK2pKp?pZFjn zL8Nxu@_1o@A3$I_LYpn*hm_r9;6K#r5n3v + + + + + image/svg+xml + + RedHat Logo + + + + + + + RedHat Logo + + + diff --git a/src/icons/Redaxscript.svg b/src/icons/Redaxscript.svg new file mode 100644 index 000000000..847d91f49 --- /dev/null +++ b/src/icons/Redaxscript.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/icons/SPIP.png b/src/icons/SPIP.png deleted file mode 100644 index 6054c483d1a2111ea65786b3198ac71c4b0bc5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcmV-W2Cw;vP)T zpZ=PfnjAi_UcH)p^5n_=M~)o%?eO8loz8!m^u~=F&gILO-SP49-qF#~l8K3luXI&( zb#=u&c<{iCkB^&Y2GG&b;k354`uh6%yafdXAq90$O-*@})LFT5W&YUM*fxFN*W25h z={SxV92_(rkH_el0mPC3ghC;=KAeVz2IubGyBn2sy8^$ucJ116CCi?kp3aMojy5DD z+0C0bZQ}Iwbd#BxX%Z6?jrN(5k&&kZ(9+W4KYjXiih{lr6BFaTbLY-#m&^5~WcBIZ ztY5$0ka%`>)@aQpkuo-MYHF%kv0{ahA|?U;rK^{oCI{P63XqC_4){m65I&7FN0^Fw{j@#{y zo}8Ra44WyWXAX7Lej}ik88t>u0W_O8Z#L=%TVK}rgQ--rz+lV!!~+l@xIA*?@7lOQ zAjb7hk`{{z082hGjV=cRk(ips#l=w`TYDVMUY_%;sHn&^HZ~f8wL5fcz3 zhk$#}o;??ZuC=|ry-sy(QlOv^|DYGoXmg8RYJjW~6(A$^R|iX%hTC&X}A#&cnecRTKdLv5AWKS0>>ku%41` z=GuXS>ycM&ZA-?5Quu^FOpCGE19;aW2H`|uVc}1DX|Ix3s{UoVe_2vi%jxBk`Ax}w zNaujWeyTjMN{#1_7<&!xLq=Ra`C%mL2E;3r0#CS>>FA#n%U{o*KR=7HC=u*QiYg2_W(QpZ7={%f0kT{GFx~-8P#@!# zgp6l;{?@Hq3qy@kz?y>!FW?i;asd#tdDS?C(_v5Wwzf9w2^7JMFvlx=s$<3kwqw~8 z(2!wRxgzaG|KogE)Aw{pSy{QETg3i?M)q#C?Cxb#KxWGlYy10xGlFw~6O=Oo#<{C= zW&-ii16k?m7n71wzt*-h>|GWGTrTGgjpJx)i@OsrD;>RjQsodYs-Wp2p;Vw2+*?t{U}S0sNF1BT(Ex`!$&D~Bp7Do#m-&*BpTuXE5nD$bHUFyRfM zK{Cb%1@pXag@b`|+Ra{A#x^G*D8R zYC7@y`2nj(-#vZ&vZM|e8J!A_P5d%5J<}7MoE#b)8aklm#&B;x)!*Mo46A{O5iX4Y O0000 + + + + + + + + + + + + + + + diff --git a/src/icons/Sapper.svg b/src/icons/Sapper.svg new file mode 100644 index 000000000..f4382d50a --- /dev/null +++ b/src/icons/Sapper.svg @@ -0,0 +1,20 @@ + + + + + + + diff --git a/src/icons/Scenari.png b/src/icons/Scenari.png new file mode 100644 index 0000000000000000000000000000000000000000..bbfc2d9180589596f1db9a2479db7c8a59a4d8c5 GIT binary patch literal 1245 zcmV<31S0#1P)=s4STW zh{y|syZ}4^mP|{6lvI!cFp&+d-O*qW1rb$1g8HI4_MEe4_RjY0oc!}iU*WmCy`8z) z+1>H1W!pAL!m_Lk03g!8Mk$)nH+9 zk;q%E7F4UJ?ca0pIe53SLheKSIy!=te4fY+;I%U&sIOm?a5WCPActT2>gtMl!j|%a zVtWXv^*(pgz}zU6h$5(IYo; z3C{Js5OtT^^QTftZDjBEilf6rCvbA@2oiOdeMzrIaDmI<2=)VB5`oxo;9`OfXo!eB zf(S&t0V8}r9ua{z5J4owS)f;A2zvq%h|q6dM`QR6k!G_=o*8NbpsSXMUvol62gDF*$V-&5{ zwX^5%#>e$_BI6K`#~G;zno}wTZXDi(hl|mmA2C*+<@39m0*5hK2#eQ=NGVB zE)#hOEO(UPGvzVHVnHtpp&(!zT-#yCzDsU5_(_$Mj2j-6ZXF;7P&G8gF*HDtE1Dz* zfEOd+%5aZd7+vfsod`&km=~61HF`MXqeU*4g=8YByWA5D6j0%2Bu%6)xZ1f9tPs~R zuxQ%X17Ni41|QXe$2Z}_#sDu=;7CZM&IHj^MUlSBJK)@c<3t~r7@;C+vd}SZ0DIC8 zO?Ax>lX+~e%Mg=!aFR6iQfeF3(b>?7yPWvL)02IC9svFUha(?_oOhhN00000NkvXX Hu0mjfWBW$7 literal 0 HcmV?d00001 diff --git a/src/icons/Sensors Data.svg b/src/icons/Sensors Data.svg new file mode 100644 index 000000000..7250e013c --- /dev/null +++ b/src/icons/Sensors Data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Sentry.svg b/src/icons/Sentry.svg new file mode 100644 index 000000000..53b613be4 --- /dev/null +++ b/src/icons/Sentry.svg @@ -0,0 +1 @@ +sentry-glyph-black \ No newline at end of file diff --git a/src/icons/Shadow.png b/src/icons/Shadow.png deleted file mode 100644 index 6410565aabfa66c86b9164c4846427750f2db49f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 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 literal 0 HcmV?d00001 diff --git a/src/icons/Shopalize.png b/src/icons/Shopalize.png deleted file mode 100644 index c73389954e3db02e4b4bad89d89d26fe40ffe1aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 711 zcmV;&0yzDNP)h15c+W-NzU zmP_4q7k6`4-HvBBrn{VNZF6(BvpTc$>nUh$(jUGrfBt-){u}^%{%vSr_LS2>C4y8O z4w8zE4oi#j-2vFc$+vXashCJh;mn-{OzDDfIfGmO1%#bKu14ef;&6syiS0D5JX;3M zWY9cpL2Nq>qtQcrow4wC1r&<4@npmgM%4@2_y*RIn^@N`qHe^FUP%Z-H3ce?gjj5D z$O~9W%9UDv0gN9;X0jT1UI;?afxT^3RE_$;z3ax}szmq3jujtl*3c&7`(Oa$zC0gY*WnlelR1ILhAs0Yik_%o@WJ1BZ=Max?f zrnP`CFCbI9`rQ^S(7Ye%kR2?`W+hk(pi4wRPxv=?0h~Q5hXcHcDtxEYU>GK=l-`D| zvPP(^epV>7adQBr(epu|6`{CqA6#JvXqwI{F)agIPy(^R1IZ#;ode7pJeH?YKFTMK zphwe)WHOo6R?|b^+*POrvzT9Af1eAOH$r?_H@dYvlqn8j%=QG)%{ao;H$;2KkSe(b z@5Ng%^a&s}Z+LS6iN*V)YwkYIzB-6Dc^&SlFQa_C5aew>aI_SW7Cyi!M(lhOBo<#L z2avA%f3-?$P$?_Gjn5UR{&*ax2M<8q{s7>d1aqPS;Y)2Gdq%Oa>PzRovMmrFT6&Fk zaV@&%9-;Nqb#zX5U`C>Wd{POq-i6r}FJweu$Ks0easbjBuT+x3w49)zASgyj24gCF tnAADL5|cYR=%!K)RD>zA0o=d;;5V2i6V`32&_e(K002ovPDHLkV1f~KIxzqM diff --git a/src/icons/Shoperfa.png b/src/icons/Shoperfa.png new file mode 100644 index 0000000000000000000000000000000000000000..b6bc62af867d75ff890432b0ae6c4ad45d8974de GIT binary patch literal 2046 zcmaJ?c~ld39uFX_C?FKM)=JYLieQpS2tl$0Aqfab5CTX97sxR{#AI>|Bt+!&;4E7X zQ7Q;Fg;I900!ENk!Xnag1Qp&x5d^8iB8!DZ#jVBe#ER`7%g%cBa<@Vmg>8@K;K~FlBH!PnpE?;A8fAp*BY^{qSi4Y9Q5+N~~9_EIQ z6o~kcT=ovlWKse|GMFRcfdLFE2I1ob0zSnRAQ1^fGTE0-@*@y@_tM-+due1JfaXi5 z(TQ|mjmv;|$wE*BuW|XmaoyMD>Wm;1Bas=PRFDGl{iKi({jOk&VEtT3>*~Gd^4HJB zZCx%NNd~VQ>+i>6fu=(yS z^PEJ|QH8g?NmsTlde)+V<>|?`& z{wH!Y`pbvM$tm^QkGynkc((kMJN~D8{X^M3!_<%aV{BN-Affh zdz55xJKMP0@M31H^HUAQT<@?pi%Ym^oRVX*G5ck?iBEWxpuV@we$hQc)TBb~3jgw7 z+0mB9=S!+XogFpPoqeRzzRBovxMn>5KUWUz=y&jBr=w9NQ?9{#?gpjL*e#m-%R0?| z>e}MzN6Ja+UY<&S+bMo*OnBh8*j%95HpR}0TWYS*Jj=eq?XN1^8OhcJ1Eb*E9OsIm zd7ME|%xdS)znFJ?B+kny={4V1y0kIp>$2E`hJ;;rp=Z7Sazbx}Vf)BRMBeO|S>nShl# zF+&8tlZ?+f%x}}|_mcb5w6}vBGRF&29!e%G?hL7)Lfn4LaO;s_|Ij|`JM%l#4sj;1 zRU?LWGGfPMQDJ~Xx1cY6PFqxhE)}Jjxp}`B$K@2pTum~x!A78 z1x2fIb>IBO?|k9;dde49>l#1HhP-@E>5iNDp(nqi}T-~Qf&~R9XL1p zxOO**Tv?X`^;%RKJzKa=>vAq)u_g0AIZ+?je|1wfDwvpYGMv)9>6m`y+Na9jFj{@7 z{_&ik*!^5>_n|8uO08L_RZP=2?QI2O)5*#j`Q+Y!-p;u%BZOO6%a@{_9DHOoT{tQk zcWjg~3PSF8boChngGZeHVL=^Dn7J_b+%|iGazddhI(zv7bVk+Ce!BVg#15vUsXZp} zjfV|a`iL~pP#5m}L#ma9e#YCSPsWy}B~jV8(iDds2AhiSXRBzKql3P9y-T#!&)T`% zQwBC?7PK}oC(6#M2U;wdp;kkSxeG40Jnz64CsrooN=7oBC+$jO^iPhMN%Bv1Qyixa z%3jYk3up7)HU~D5cimhqP*N_3IKe9~o-ZzUct7z894`Ov7Q_1Z&t-qk)vr9-J2pz) zg8S;*FfGqL*YS#h!>J{?rP%Dq>4MPh4--v}Q!PH(lll^qMduXhm%fU1PI!{kk$ literal 0 HcmV?d00001 diff --git a/src/icons/Shopfa.svg b/src/icons/Shopfa.svg index dafcfd5c3..9898460dc 100644 --- a/src/icons/Shopfa.svg +++ b/src/icons/Shopfa.svg @@ -1,19 +1,20 @@ + - - - + + + - - + + - - + + - - + + - - + + diff --git a/src/icons/SimpleAnalytics.svg b/src/icons/SimpleAnalytics.svg new file mode 100644 index 000000000..772ac7923 --- /dev/null +++ b/src/icons/SimpleAnalytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/Siteglide.svg b/src/icons/Siteglide.svg new file mode 100644 index 000000000..113d8a863 --- /dev/null +++ b/src/icons/Siteglide.svg @@ -0,0 +1,12 @@ + + + + Artboard 3 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/src/icons/Strapi.png b/src/icons/Strapi.png new file mode 100644 index 0000000000000000000000000000000000000000..065887ab78a9a29f1f3fdc90adab8d20c59c6d2c GIT binary patch literal 8670 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 literal 0 HcmV?d00001 diff --git a/src/icons/Svelte.svg b/src/icons/Svelte.svg new file mode 100644 index 000000000..4bf279659 --- /dev/null +++ b/src/icons/Svelte.svg @@ -0,0 +1,20 @@ + + + + + + + diff --git a/src/icons/Symfony.png b/src/icons/Symfony.png deleted file mode 100644 index 0d3b4de8eb6318521b74fbd8d78f47d87ce2fd22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1107 zcmV-Z1g!gsP)^Z0VzI$9fx97R<$Elx}>$>jif9~r#=eo{qFxYNi zA>SjN$e+j#@=0PBnMa-@KO)|SJG5_*X5MA5ACW_l(F(#_)ee3G#YB)SRg!uS)ZYwJ*1G1&1C2(|f zG#~$qD1Hz5PncBG3KSO?!{y~A)Ya7~ZT0o_rt9l#7#<#G2hHX(id)fO&)bKGhr`j) z5uBf&^WSp2tE(#{Cntlar>CXop3CB2O2MHj5E>c^9UUDoH#Z047tN zhybI}$PV=M^zbtzJUu-PGcz;n$Sw0{8Ki(v4J?|3Y+zvEMqfZc01OQc!RY8H$W~ff zsyMK+vcitLxw+luzzcF=!NE8BeSLkoUAC;OEMB4X^mJHWUWS5# z0&DT}H#xAOHh@xRadA-*SXfv9Z*Om-C=ikS8*UUHC2xT^A=A*ivGU7KHhIyZn{i1H#gzrnnCi`P0W4^z6)K|{8&vBB}6!+|#Q+t435vUDBe(wc&Tf;cYZ zzNn}uPRFaOE6C2yzD>lW@;{aG--(nwsG3>|An}z)rJ1z!9-UqS$TOm&wwN8TVaNE7lHakq8S Z{{aedc0{0jkf{Iw002ovPDHLkV1oJ35rF^z diff --git a/src/icons/Symfony.svg b/src/icons/Symfony.svg new file mode 100644 index 000000000..673baf202 --- /dev/null +++ b/src/icons/Symfony.svg @@ -0,0 +1,39 @@ + + + Symfony logo + + + + image/svg+xml + + Symfony logo + + + + + + + diff --git a/src/icons/TencentWaterproofWall.png b/src/icons/TencentWaterproofWall.png new file mode 100644 index 0000000000000000000000000000000000000000..650138c868bde9ebd9faf62c4a03c76e24013f8a GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^T}FfdWk9dNvV1jxdlK~3=B3ERzPNMYDuC(MQ%=Bu~mhw5?F;5kPQ;nS5g2gDap1~ zitr6kaLzAERWQ{v(KAr8<5EyiuqjGOvkG!?gK7uzY?U%fN(!v>^~=l4^~#O)@{7{- z4J|D#^$m>ljf`}GDs+o0^GXscbn}XpA%?)raY-#sF3Kz@$;{7F0GXSZlwVq6tE2?7 z2o50bEXhnm*pycc^%l^B`XCv7Lp=k1xY)R;b4BdxOt+WkIt@*6epkG2wKKhw&d%}%^uJ$bvJNa)46fr&E=uNbu4{d7Vq$h29g zFWB7WrsK(|xBnQIc5|L-)tz)rq3Y>b8H0M=S9W##d~X`{yVjg=d11ZqUMttPXjyJP z;rv;9K2CIF3VZjqDO1Iuk>UKB7SaCB{o7y3ESSlhFS~2WLoQjrfOQKL{MVj)J^2Sm zX}ZR3O<$i!lk&D&c}uM+`g=05Yx4K%C9kjFYL@)+fpNM=bp8Wv5S)<3%JO*Ec3n18 zy>8PQ7e;x7pyFQvqI(XhP0_shqV(>|;|mR>Z<@F3ahb)gxoO(&`A+TE)9@E|@Jc7{$D(9p=NW)ul6n(<^;Q7`W; zZuR+#zI_z5KD%v=1LvHwTrHN#yOyo3UcJP$d;Ybn=^GELOC=~zGmg9;tGBNA|2ypu z`@c(&5o|4)d=bw>r~Pwp@6XVuJY*(iO$J68Hp$lqeNEUo)jFY0_;Hz`YXMx}7| zbn_X>htk?MRyWvwGEJFt)cTy@=Vg0WD<97L!lZm}k;~qOc}fSR|13UMs(m<4v)C^7 h-|OsKS(h0Zz8D3@O1TaS?83{1OO&&+bIA5 literal 0 HcmV?d00001 diff --git a/src/icons/UserEngage.png b/src/icons/UserEngage.png deleted file mode 100644 index 49f2d16afc3e4fd4a3b03692c0064c1373f9888d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy`2jv5u0ENC4BZcjLI3~%2Px}% zSbg~Y^|!zHrap07^NOke@vp!C12(*#bLq4C{O8$w-aY^FM{3s7ufP9UE`NFE#m_aj zzHYnst^3r+{g1xSy7)OxbjBp0)qEvEe!&dSb)_B!dH)TK^ZK=Oe@OP<7@*7}PZ!4! zi_=#pX9_hd@U-S`y_#p(ZqE|+2v_Xn+0SGESOSTaRx x+kthLQ{QcAyXV%zxA)$gi*9^({|5gls6W%E;%FA_H3#Th22WQ%mvv4FO#tlD%6b3* diff --git a/src/icons/VTEX Enterprise.png b/src/icons/VTEX Enterprise.png deleted file mode 100644 index 7678318113ffe13f9e769de53bd3cf1df6960cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabRA=0U@Q#q32_B-LBPS`e?0?(R;Y?+ zu8d{ji*5!{hb$56Bq8%$bI*Dum$Y{?859f(fKre9_@vFUC5_YMZ3|?a3e_wNRUC2+ z9131cV^?-BRIn_5H<3Zfu293JP}#0X-LX{G8py6tvMthatx$F-RJJdEH-TBvzC_if zOwp!D&7sKIJ4wT}RKum@)nr~}`w|7a0%f~mbs)p0NX4P_%|sSO`(hRQVkNtx*ORyu z?SX>Ds*c6V4#jE?B|!4cMD{n6*p(fMl!09PLPeWGc^jZDB|!B`_Qi^}g{qFFKsJz6 zb}Ry#tY};GW+E$4MA5EL&8Y;aM#Zs2(XI&Su-B8=6o9(yihx!F#epI~aiGhAmVy{S zGr=N2jUW+QknEd@Y(TaW&{(iWAOoldYBf-eeev5#tcpNEhypNo&EHvjfdO7w666=m zz{tYF#?Hyj!^_9V&o3Y(BrGB+EiI#)`C>;pyWW6dE288I_!xmX=vo zQCU@0-`LdN+1)c?%Cs3XX3m+ra?Qp~Tefc9v+wZXqbE+BI&<#axhq%h-@pIx$&0sd z-@X6z^FSF~}CSBYPK zcf;&UN}MOG)mQ3y2^wzH5!1Hba_#$p7s5w-xc6V0rm^n!x3B5RM;VV6issze+?BFo zwN1K;%fr)dTRw_UlHa>qMEz^Qh3^ihlNA{Iq7IwHUQ=jmET2{OU`;{v#iALF|ApA| zJ?nn=Yn#N!B6x$ZD0Vz2eh0>IUm7RlW0A uH8sTI)Y + + diff --git a/src/icons/VideoJS.png b/src/icons/VideoJS.png deleted file mode 100644 index 1b8a2938e2c22a3e921ed013ee4c82321b4a4469..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmV-70m%M|P)vkWrI2QW#0 z&s9epf0M=V+n(p?bnZP05&e8Z`L2QLVD$&8tk@l^?r=)5vjYg)U;!ixRdqs9*uXzG z(BsNU-Fz$y!>0iRHLeUxPc%Dc1}x3n078B^G36t;5Ol(x88|~kDH+ps*_hG`b5;?@ z^u_WCUp!B*3VS8pG81qCl5D{q$klAH1Y&5nJ3z3_3|K}8_1~0x_e(_Z7be_DxUO^M zg>|y0&xo)CcJe? + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/src/icons/Virgool.svg b/src/icons/Virgool.svg new file mode 100644 index 000000000..40367e96c --- /dev/null +++ b/src/icons/Virgool.svg @@ -0,0 +1,14 @@ + + + Group 2 + Created with Sketch. + + + + + + + + + + diff --git a/src/icons/Visual WebGUI.png b/src/icons/Visual WebGUI.png deleted file mode 100644 index eee252976c6447ce284ef86943fc687e7e5f52bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1486 zcmV;<1u^=GP)-*|kt5#JBJN&NhAqQ3g z(2s5>uLApA!Mf($DH+$3u?NQh0fZ@VPL*FoIT0$3Wd$2R`S=&esq@j#G8|d2XjCu9N~t4rG7_T;e5w)&!|J$AT}_a~Syi`0vO=$Ci`WMqqsf2ZW<* zTrXj~W3-56FRHQvnqaHPgM zZ&~0;;G{Dp#8e2?O)i>X3854|&B8 zgif5Uyt`DP5ufwVG zyc7C(Y8-;Iz%=tb1I<9PM3G*S8_U28&?ZDp&BzcuwQ~$qc!9GxR}EPM4q8QP<~1n^ zZOHgUnTAA{K(Uz{;z51l%P_=)2G+~ntU0e71oi?df@>>7+BW8rwjom(aL?}DlK!cI zLr{giS;v@l*kN^e)D-C!G zjBTpT?RgbVtIoHZK1Jg74Gv*XL{COmcdT*PfG!NI0lx%{jKs{|Cq$^sPiR}Qg=>!k zTT&HiJ9dDv>Lz6@GR%?!GdA#XLSPmN%EGE*qga`ci9`l&%gPj@Y;EUs#5QV~x8*eg zcg=|CtfN*+z^zk<2h9&w}jY>=$aCS>> zcH`W%^G#sJ(PSJ+=q1n*NMmD=NfMHIk{b(93ylQ+?@&(L>`(!uiXC*3e3*=yi2<0o z5x8-*=2@E`(9?Nk8h6XcF(z5*shEG!%1G=Qs&aD<@p$ zIEHejQ30_GomnEywvIjx!Jk^HfYk_%zSLC!oXH%=oNVxez~`D&s3sILwWL}$<(8?i zY(^v@kts-t20(<*fFGJ^csM9ytMJ;^?J9<%&F*oBNSDlLy9((5q(lK9BHhEyo>1gR zj_00tDs48`$vR|8G#S4QaI|whP@54sWIKGw*q}|om7kR_MNsTJh=}IU~ zVs?s;j%*5EO0E+EGO?|hf(W$=-U%n_^SoKd!-{O(lx_i&u85k-<2oDr zbUjI5N%U0)P8aY5u;G4+3qadvmyaXAcr*7cl=pJaKVog%2D9^$z5TS&(D7y9=fd#} z@XhX@HdU6+k<0;Mwx6}KGe{nQxm2k+X*GGr<_PJjIF9GYeclaw6 zf+}YPj;in$@YR3D$V0#W&BJMXJkOEa2JxdK*OFC%{T>bh_aNK|Twy!HU`6&E%Fn>@ oS~;3|egvw2{}=ggx^u?-0SKw@@)|U@Z2$lO07*qoM6N<$g0a)UCjbBd diff --git a/src/icons/Volusion.png b/src/icons/Volusion.png deleted file mode 100644 index 20e6d109a822f959a4eb346ab9abbf2a6d956252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmV-U0kQsxP)C3`uXAv%`_Cz8h3{vc=Ko?eQK~da1w6xXRV``1(O{k2`FOM01fcW`-nM zeHBl2-skKpUxB8)%D&FnS%RHtj;7e+=<4tDwa3#|fSXNvmTQow{Qdofq_^$z^dVS$ zcbTqklBuJ*$r4R-2}W)>YKmoxq?E6~N_UiipR^LQYHR=i00DGTPE!Ct=GbNc0044H zL_t(|UVYCs76UN=15uCcWe77f-~W1P{IYfvb^6^HLp1+G$&%T^g@8@99C)x343MiR z0hg{+4Gl0Fs|KcO=3oF?simi;j|bLDsI=h+TkXpIfe!5Pbk1!6T)5r{;hsI75x}c( gF}&+f2mf--7qemoM&5s@MF0Q*07*qoM6N<$f)JgQcK`qY diff --git a/src/icons/Volusion.svg b/src/icons/Volusion.svg new file mode 100644 index 000000000..34dd13831 --- /dev/null +++ b/src/icons/Volusion.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/WP-Statistics.png b/src/icons/WP-Statistics.png new file mode 100644 index 0000000000000000000000000000000000000000..22d1c580f3863e3940700ee5ac96e885268d35f8 GIT binary patch literal 1672 zcmV;326y?1P)`5+mrlq z=g$1*obR0H_a_VXoMr~%fFf`ya1F2w=mBN}9_R<21r7lFfLDP8(CL)Ewzd;_3jhHy z5BM7JO<)dCPmK-(uK;;qK?=|TIpCkbX5evPWI6!hG{$EE8-QLQ1dap00rmn%QxJ_( z1U?8{4}1pL1Ny4gy~XmH@Y=dY;9+ z*EUlC?*bkJuEpH=0nC->BGvTWWx!LwHsEJKNAt$!5Of0%02cyZ0UkL=!_CqUtN?Zc zw*VF3S3s>5fMSaJ3g8RpYFwB$=5388N}OJ2V8%u5`OuhBNtC2jdQQl}*ZNM>L zKdJGtLGkpK zrULCb`S9xQ=>E^1pT941Y|w_}8;^Oqs)=@2tNz-tM9*vbh*t7;;DS^Q4x4I&jXPpb zG&geFc3s)=-W|(l^^^j+F|I2$uf(cU6J;c}b*AbU^vnrw`$13Xp-X0m+Y}Z@4k8By z*YfLs4Xnoo9S-Qi`u(^>j_rxE^q!YS`?nvhQuEC1$V*o#C$#5;C`iju;LVC(wt7+Y z`Q9tq+gB}&*434FM^1>G;Lr9%4{#$kEj>(h!k}T(?tCEE#LBwOFO(&6?&84d>e&VN zlSKIrm~oeeAt?oy9XMH!a;|dvsgrSMPUMq`a!`b^kyvTZ3BiOH?!t0yUv?wJN@8L9 zeZgO6R~F(urGA%FE}Al81wqEw-w~-XHLhrK5?>kxD?2uworbo z@SMQzz(F-p+Cl+X4tx~&YNJa+Y-X>-GV?m%Qy8Fl9mh6LUe*rMozXKFlB zMh`2z-w8n|@=FmCVVorN0-p#Sca&rOUA?A-dS1Hb7o{7xK2hq809->n9&I$<*a5}X zk)biYZ^gW5-R>0~o7OKWtRIZ^5O7$4AnlZaFcLYwbgJx^e0ouI&(5nl?)*?^ZtHNY zo8PGVW9h)!lI8;r_&3JyRy87%Gz8^Xsl-Y-R$r;}^xV7*eEhs9ys$l>mPlWm4yeIV z&xtdh*UO$0BmU*eaB|nx?}+Bza8Y6YrE`K(CD#49KvaZx0^h^9Cc&(AH+x_VxB+-3 z1vHLA5S-X5g$(vr{NST~wF{m+6+Zy{UZ6r+l3^g^(p8My(O0YbzC#1?(nBZXhsz0n zXv;}e;9lS|V9oHJ+XpjN+zFfj{)JJnNup^n2LeMiEsj+D;;7(Gb>?L#$@+E+!ca|E zoOjG0t?Ti8AOoSJCk^vn;B&97?HuO=r?CdngRz!LlI8$vAVvx0rJQ4^x!npt!>GG$Y;@m`(e^I_ zeVNWiPFMzR29^SMW6b5TMgSftg+ifC#;aq7axX?gw$i`{;cQyohYgBXFm}ALS(6jU zIi@5eP0|JY73+R?rU0tb0RTJotiih9CahB~Z`?3F_XLb(eLsEoD&VIW*Bor#IMvCh z5BM_hUEmVnFIa`#gw66+5&>6YE&ab3{~yBoe=l&R)k`xuoOS`<0=|Kr7qi3Z0Coz_ zV>G*+366OLbN61X$+dLaOiss{IG_Yvj&;nBV61jl`g{O$_mfy_{|_@fp8p?X+Eqzv Sg`x=n0000ihfr0s=K4AWSJKR4OV|qN25t3CbW~J!S66sgSb1Y(f@*4raBz%paE)+rlyPy6a&nJ)dX;>Aor8m% zhK8Pqh@gpypoxj6lar{Elc^vfSOx|-BqUIwp|h*2yt1;wxw*%?yUEJR)zZ@2)6?EH zHC@)$-re2g0IXPfDI$}CIYyJKHl9H&Z>a{rl0004WQchCS`&4- zs7b5w4sBR%DjKR;9Res;Hgs(&MWB-lQgeQ(1#=w~vg?KTq;2y}EY{fq(uotpKTfab zyoPy7q!Ei884{)az9d3CMq)@USG?XtyDe^4u9hj}eRZ;SKcDY4vhK?R-e<|JP1;+^ zCoh1^&OfIy_wO>$zWY{rb~wz+R{sk|-1B01;&932z_JEO3GE+nLm1jVfMf6g0000< KMNUMnLSTZ7FYjRh diff --git a/src/icons/WebsiteCreator.png b/src/icons/WebsiteCreator.png new file mode 100644 index 0000000000000000000000000000000000000000..3c25e14aae94a4507e642156a0b1619bbf216bc6 GIT binary patch literal 18990 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 a>CN%F_u#;{KJfRZm9)5mSe1yr|NjLdT^cF? literal 0 HcmV?d00001 diff --git a/src/icons/Webzi.svg b/src/icons/Webzi.svg new file mode 100644 index 000000000..fe3ed90d6 --- /dev/null +++ b/src/icons/Webzi.svg @@ -0,0 +1,18 @@ + + + + + logo + + + + + + + + + diff --git a/src/icons/Weglot.png b/src/icons/Weglot.png new file mode 100644 index 0000000000000000000000000000000000000000..33da33a8aa270d26b71632089fc58bd7caf2717e GIT binary patch literal 3607 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 literal 0 HcmV?d00001 diff --git a/src/icons/Whooshkaa.svg b/src/icons/Whooshkaa.svg new file mode 100644 index 000000000..ec20e27d5 --- /dev/null +++ b/src/icons/Whooshkaa.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/icons/Wikispaces.png b/src/icons/Wikispaces.png deleted file mode 100644 index 91034ccf26d36da8d9c8941c19ee2b479b2aabc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2412 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 HL(KR$)QtYB literal 0 HcmV?d00001 diff --git a/src/icons/Zimbra.png b/src/icons/Zimbra.png new file mode 100644 index 0000000000000000000000000000000000000000..f81873b391daa697ad66b6786a9042c65ddbbb2d GIT binary patch literal 445 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 R9e4+Tf~=}cjT9vG{{bbWK#%|c literal 0 HcmV?d00001 diff --git a/src/icons/adobedmt.png b/src/icons/adobedmt.png new file mode 100644 index 0000000000000000000000000000000000000000..0a74d4d36fc0d7b39fc3fa47f98c80d9ee4b0197 GIT binary patch literal 6284 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 + + + diff --git a/src/icons/aws-elb.png b/src/icons/aws-elb.png new file mode 100644 index 0000000000000000000000000000000000000000..8db61179600fd3682e7f5531f8c0b340701d3396 GIT binary patch literal 1444 zcmZuvdpMM76rVA6YBf@*+-k>Mn6wy%`9>;)(2mcbl$ti7hKi;cWYg9#V=hPuVJ@+h zhYhXTQp!^yTTyK`C2X78?eaVm!dwmZoo4^s^PKN|=e+OlocG)$3^>fv!odQ8Kv+hE zhs1z?pz&LX0#ebIt3)8oY8dn_p};KKggdzjR~6|ZkH#yaapz)PYGC|N@ou%dJnFXM z&(n#+nH1#-cV!`EBFFo)*n5gkQ=JM^3;Z-(Xd;(t zC=NLL9Ra|`bA8A2d{y~W1%o)-->SQ?A1J^y+>^EJAOU5*0GcnN%|2;X38=u-iXZ?` zL=nq2;{hA>FKmj?k+eo7q;{r|M>4%kaZKk%$9&3+7y^nEHpVxx3De444a_NlF$bU= z33LKdBm55o&THa`r(ox2hsof)Ula%AhdQnaY?7v{vvk4$hYaulV30ty+X;=^K)uv! zNvrks2Yb^!-X5c9%3zIxDUTxFOkC5I>IH69g@MHpxN-&#xL1G{(Fv6?xXM_36-5Yn8D z)(XM4Kw1S;Tbl&-L|1=6*O0DjWa}<+bxj$%<|De6Y`qwokwCKr&|Cp+u9Cr+itYC-|Kle`119~vGMWGlao_Z(`t=I ztJCTA`k5I6pjjg^p8N+(t( zB&VaEZG7MN@ite>uCzz-v3}_6N4a+F>+2%!MkT-ROTE3M@xdKzQDlHWAFe4}I>;-hVNO?3SWol2 z{*mZ0W`pzz#jm<<_!zp|n`enIJJIw#3F+{QWi?V2pTRQ^4D;cA=Bhfzg`ly(sghqe6qNYKUfUC)nhFTYx}3P~GP=bQW$f OZf`^=9MZBeA@5(HqK%#a literal 0 HcmV?d00001 diff --git a/src/icons/aws.svg b/src/icons/aws.svg new file mode 100644 index 000000000..48209aef8 --- /dev/null +++ b/src/icons/aws.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/azure.svg b/src/icons/azure.svg new file mode 100644 index 000000000..2ff63c104 --- /dev/null +++ b/src/icons/azure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/bigbangshop.svg b/src/icons/bigbangshop.svg new file mode 100644 index 000000000..cfbeefd7b --- /dev/null +++ b/src/icons/bigbangshop.svg @@ -0,0 +1 @@ +logo_bbs diff --git a/src/icons/bokeh.png b/src/icons/bokeh.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c5167e5e5cf73d73078c4716e2e9f0d4b8370e GIT binary patch literal 17742 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 literal 0 HcmV?d00001 diff --git a/src/icons/boom.svg b/src/icons/boom.svg new file mode 100644 index 000000000..18dac4f2b --- /dev/null +++ b/src/icons/boom.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/src/icons/bubble.png b/src/icons/bubble.png index 16ec01d91443bfe64a0d6605c9fe400890435043..a5d9479ebd18abfa1ee9188665152e1c00d826cb 100644 GIT binary patch literal 3779 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 literal 1468 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 TY6!g<00000NkvXXu0mjfPP4o_ literal 0 HcmV?d00001 diff --git a/src/icons/clarity.svg b/src/icons/clarity.svg new file mode 100644 index 000000000..29f217c2d --- /dev/null +++ b/src/icons/clarity.svg @@ -0,0 +1,17 @@ + + + + logo + Created with Sketch. + + + + + diff --git a/src/icons/coaster-cms.png b/src/icons/coaster-cms.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec4dcf1ad8d64a6112fdca72fc02584a61ab3e1 GIT binary patch literal 1751 zcmV;|1}OQ7P)qxxdM-Q)cX8R_k0){OIQU-P-xj%kay~_{YOqXo2s3bnkj_ z?Py)>UsKsvQ~37w^Yr%P<>}?l)%w-a`OC-czrXmyzSXe1_qnt7vaI!~qwn}XQ)nOq)lW|N@BH8U+Y~_RV6dT2J`# z^8N7c^z82F>h1dM?C|5~_~hmM;^6Gq-1phn^U~AZ&C&YP&)>t$ueQSXzPk6jx9PI8 z!>X~}qNL=Uo%Exe;g^}Dh>>S=i?C^a@P>T7X?NarbklHfLsM{aUT>&aZ=_RefLm&2 zLTT=DXM9Fy?Qdi>MP#f_Vmd)yH$Yu8KV3*dT**{f%vD&!Q&@FLSbs`a*<4lBS5e>L z=I`L-+ur2(-Q4Nc+s)G1;LpQek_N zX>_n$a6(dVLOyIfJZ#BpYin3*?sI8!L}^??XyI&UH$7*{WMb`XVK6;mLPTGaOkQk9 zUEpC{y;59PL|airTTVk;Wk*`iURi8NS>s+;tx{CCQ&VXc>~R191Y}7>K~!ko?UiK{ z+b|436$hK9?bde8%*@Qp%*@Qp%*@Qpy#2e`k)1T#l5Tg-Zg;EyW$y`p~~mQJ(Y~mvnHW{7Q^4 zQ)d`ZEZSP%n2=iXq|3QvvKzG~g4a}a7#I^3<=p_l7 zvc-KLw3R2V!Xa}bitE(njkghNn47`p^_Vp zY2-$|sk3`?oX73HZdb#cJZVw9O($Voy9!Tq$pq|}p!Oz=P9TvdT)MIn#zST_9JpFt zd~zs;`8le(k>K4Rk12#R130;nyGP_jaD*n^vo9@wQKmHaMZCm+l}q#PDrFPCZ6z|D za2mDz*||hz^z2uCh+Jvzjj;A5pjRDv@e6K|b?QIdEeSrs&#bP8X~zr$-%#fgH2;-LTsC1e~oP9xiX_t%gvo z4#dU2#UajlBOyKppZjH+)AA52qc3*(21Edryp;% zD-Q_?{|*&0hN2jnDdMUb!^l(x4^wgcc2!NYE3lTK2z1ayllEgHRnQ}y;vXq|EbUFWQbZ50Ez42Ubqj~01{xcN`(^qj9qUXf zWLPPxieDhmK&eLOP6x0;r5PL%|5yPuUOdynKT{k`jiTeTX2CG*GE%TudBVtwA5C4? zO;$7q(8WzQ?cuf711nWl>V!%~LVlR>OTcHPS-e(QdrM3IBt?usc?*9a)%+28c4nHD z9`6U;)S6f5SK5!STj&|xxS4Q$7~dfh4b_X>L_h`TqXndPK_ tm&+eeLDxfffo|J6BqSsxBqaQkd000mRNklfH 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 + + + Artboard + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/icons/decimal.js.png b/src/icons/decimal.js.png new file mode 100644 index 0000000000000000000000000000000000000000..ed7bd2750dd97cf7fb64f4ce68d1e53e81b23ee5 GIT binary patch literal 966 zcmV;%13CPOP)Ccwn3#!)iF$f^X=!O! zS64?zM>I4vBO@ab5fK0Y0RI30{}B=YBP0JbH2+6O|5sQ4X=(p@djE-u|CpHnr>Fn5 zwg1Dz|IpC?-Q8<`w#5Jd0}Dw+K~#9!?U>P$qA(Cedku*pLLj$MRGd-%|0nl>g#=_o zS=^ne;=Wjw3OOcyy8}(MYSpS$3(Ep##$yJ6do#lVfcp9S5D9YmX2!pW`L|(2v2}p6 zdC1VI1M;Nr7ok%J!0u$|DF8Nf0MX9DN+RQsH8YJvrmIJs!?{#4yd6Zhm5-7=YahBB}jZWk9Y4kxGKS#Q>aAH2e#AIGrwD*=e+ zF>+u_-kgSrNRHkI4$$)$X_p=%>yBk~xioa!ON`F-BJ)R|0PfC18a`WJV+aT2TN2s< zT?Rw|kSHP&Do#?LjmUL0T}y_HroI3Gk}lmyhqh{;kKA2NG<^fAFBn}lH9n<@w(g!m zk)6w+tp)N#Qpg~o(;R@ayKQiRsGSAitdTD=R;^mKYSoX`uk{GNhfcizoblN36Y-HM zW-d1GWt7a!*YCNHm)Zg|!5ON@%W%3!=cm&{z0)y*UPE34BBFwTB- zj4|j8&SC_JfMLy65|K1+@Sgo_JgR_EGxO<6MD^$SFfvyUzL4iIF3g9i?3RDe*iSLk z0%uj$_jBaVy0M_oVKgy6TyFg~VfvM^W-(g3?W=mw&0df}^?A?C%taNNsrm3;Bp!`! zmjg3%<+~J4EEn@m*8_9m7itqvOft>|pEl1iXyb23+jU!1KEWnk45j~YHV{0>*%xXUAlRbF0Jd~a@`QsAH`^TEW-#KRKJ~Z oxVldf8|YSn+zZ!%?S8WEX(TL1t607*qoM6N<$f(K*H$N&HU literal 0 HcmV?d00001 diff --git a/src/icons/eZ Publish.png b/src/icons/eZ Publish.png deleted file mode 100644 index ec649027f146ebe8b02f2a6d9c04e6a4c105c06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJPk>K|E06|)4?PV3|NjrU9Lfje zFqQ=Q1v5B2yO9RuXn49fhE&{2PHL7H1Ip^0f0X9MFT28jf&1wX_^ Z85n+SW}GMLQX~s9&ePS;Wt~$(698fUAW;AS diff --git a/src/icons/eZ.svg b/src/icons/eZ.svg new file mode 100644 index 000000000..481d1f146 --- /dev/null +++ b/src/icons/eZ.svg @@ -0,0 +1,59 @@ + + + eZ logo + + + + image/svg+xml + + eZ logo + + + + + + + + + + + + + + + + + diff --git a/src/icons/ensighten.png b/src/icons/ensighten.png new file mode 100644 index 0000000000000000000000000000000000000000..935be0caabeebde78af98fe2fec5dc49314cded6 GIT binary patch literal 3068 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 GA@V=S8Kw>Z literal 0 HcmV?d00001 diff --git a/src/icons/flywheel.svg b/src/icons/flywheel.svg new file mode 100644 index 000000000..2676989a4 --- /dev/null +++ b/src/icons/flywheel.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/freshchat.png b/src/icons/freshchat.png new file mode 100644 index 0000000000000000000000000000000000000000..b79a05767d4f75dbba841393784abb05316d55ac GIT binary patch literal 580 zcmV-K0=xZ*P)GWO5i-MF&jUE4rKK}Gfc7+0wo&&O#|CUHl)^OHSO_*WIu;h_+(JO2 zhze(+(Vz#n2?_C^`HRe4a$k1$?l#F}Ldvq;Y);@R1FSNEr(DQOE>K0cykzC}W>}6) zPT=Y%z&w-B1|xwmkXEuFKV~4eX2NiR_98$6zSV+Qwwqm4RDN3vGk>AR2$WW2v_L7; z%yb|I(n=d<5-8ji$mh9^Pip1JWTc`#7}eJeua&A#aTHs?r=7=U}3} zK|VSv&4Fq>yoGk9IUt{7*1o&sw;rUlC2Ek)|7y<4xHj3o5?5P7(W(D!?o*5s18Hf$ z$2eeV@zKGO7ADYJFRs9KsroI;cC*yuWL_A{cC$txA1cvEfpo|)K_yXB#y=cJsIt2p z%a#DrnYx;y=<7dG=rl5chp~d_lmpCjz!C@PaF7lY*kuB{{xt_I + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/hapi.js.png b/src/icons/hapi.js.png deleted file mode 100644 index 0308945de66ecdfb6b49b2d26620e3bfb0d738ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1042 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 F{{ZW0+3x@V literal 0 HcmV?d00001 diff --git a/src/icons/ionic.png b/src/icons/ionic.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b7f2ec572203fc85ac04c770dd1601bb0bce6c GIT binary patch literal 3654 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 \ No newline at end of file diff --git a/src/icons/kinsta.svg b/src/icons/kinsta.svg new file mode 100644 index 000000000..971e27db0 --- /dev/null +++ b/src/icons/kinsta.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/liquidweb.svg b/src/icons/liquidweb.svg new file mode 100644 index 000000000..bfa137903 --- /dev/null +++ b/src/icons/liquidweb.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/litespeed-cache.png b/src/icons/litespeed-cache.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa3af334e352668b555d15b35d73530011c56b1 GIT binary patch literal 2390 zcmZ{l3pCW*7sr1XkA%F^P-4V*UFP96GfCGpo-t)S@@B^Tj7eiW26;q@(2&O{rIKQj zB?=)4*QJI;-KZ2HZxP8YB)LDW|62e4cdh?AYoEQ&*`NL0`>b=;I_ZbWHqw$Rk^lfm z+u4#RkXPR{2{CAnh>iUlaxjLaqa^@TWo`XV6@}J95fmFDP}#FiMNOqVXlF~Ptw#jpZGW0| zXRrlCb=r|EUEJF$@;f7T3bv=V%q#ng9msYUH3YgvVW6kt9;do1dZkwm$aHo-)yns# zoZrw-Jh`o*L=TT&Y<11uuJ+p&O;=8O?tQ=;kQGUC7yH9u3axIH#%-qzg*_-u^jnTw z9}0G=c)MQ$(R|n*kvy^i7Tmnf%=LZtXzAgpDrWf(K zCYKFVx{>y}M1=D+#eQ@V-sGDVWK67iLtlCsd@d{4OeyQpsFa5iKU`VB+?HWgjH#|M z8nj1BOcTz?{Y@3p$jPzr;U#WN#eH6N-6d#na{zq4znjsqws9`$WuAScAugV}V=$-y zxtzbSIB=&0dC377i7DI`s-k$uw*`64Z(@9W+|x`#QQCO-Off8P^fD|XE3>+$scqt?}p2P<3Q;>eAW83m+A=q=5TtSHh zn6Fb>+HWkC5aT>nVwO?hF`jNaBtf)ar2>pmy>xs%32)RL)$#jVgIl%7!RR0o(myaq zTW`@)7P^z!Z)-w5?eAcdgYxH}8ncPW$4=b$>ms8e3I})(Z$~jnFVIaL3T9-lbbUm8 zm^5N&OjyWxU+Y-Nu04$;Eu*%}+36lk>=FH%rU%y46IWA;P9sE7Z^@ z)@V4Xcj(EJ<+IT=_?t!-B;#3oP1L2fFOl|qm6Rquo1L@qfjBtvD*~HVw)guq>6v;- zUPe}yT&9)y*hqNT1h;+ZlF@HCI7M1Z{VU+QCV%?r)73yk9WtQ zS9097rDeCY9{ggjUYXyh5Jyqf=;ZstqJ$OYghsRV=9TpUSc-qM7YO#p=vVfojB~`)`Sgxz z9VPC1uH;QIznc$i<8~aJJ<#WMyQLq2r{$27FOjY6JjGUb?8SA$8YY^LKMT})as6In z8~OTlv`v2dWmrpUZ)7H=!Th;{&NtaH!?$6rsqm~d+28>Oz6PB}Ev#UTY08gZ*sqo5 zKUC|H9{H^OPVjO5aMQPaSH|w494u0fUvvxlvQLesan3oIGE^RZ_XuBs%Zs}^!YvPQ z%QfWx>9siPaI|19`p(dKo}&MUPoa|c6x3*e8s}cmkMb#WwRr2pTPE>=VBea57!YHj z>&=ivizKCbNLN%HvhD3K?B;nrmE(vmRrlBz>`WKwXtink;_9u7j%>Zd-bqrhJnETT zd>UCVBJFl_JT<*#&ti{BhMZ(drT6c;qD1uGtCM#UJLDJMmQ;CkGIuErTd%opcwR^W zJw%4ZDT{MYjk~&*S663xw|4JY$(&eOf%ACKgMRGSjCCp${O~>1Mp51;d;hbPLD%RK zYIkBw#I9KV|R&UcdYG$usGG?#zhy$T}&GEXT z;_}xrHx@ya`#u!zV?U$C+cI}ly6f}$Mu=2U!I?bT$lB^a1Wz#65el!LlFzitro`Ux ztliK}UXecHEwsTekFdyTs2p~PFVW@qwfqoYY6-(0t^cYI{cc(uD|Zf^$^i)h;UMGy zEE2=0FM7n-wD1ft+Y+ zI0)FWs0`4N%3uZrtD72{8R87^>QG5z1GI?&2CMFbF;x%Za6$%CKB^*Sj<5ow_if86gwc0c?^V(k79*zj + + + + + + + + + + + + + + + diff --git a/src/icons/mhonarc.png b/src/icons/mhonarc.png deleted file mode 100644 index c808de4236f781182d83d8cf939045fb9789dad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7S|P)CYu6aZ#23tvSsByOY_mhvQ#*+`0}hg2u9Qvsx60NQB)xT6}ElU3T7 z0P?T^_|O3V@BqfYlm!3;SOylj00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG010qN zS#tmY3ljhU3ljkVnw%H_000McNliru;Q|;85hd?tK%@Ww04{VzSad^gZEa<4bO0bA zNo{a%a&%>6AZBuJZ6HTUMj&ZzVP|DJAZ=)GZeem`E@x?GE;t170003lNklF%hL0F|D2%R-~7J zmymPb0_ z=bCe^5)*TZQmci`V#j#{0KuX4j&$&r;6ItW~X#eOZp#nziXFKmqro&qMW?rsUD5rC^7-F3UP0vcC?*Jo*@RM^B z7{e6&CW)T6U=(2jWjq)84nUsE{cRTZ|M~W4)9>|7;1g4)99(vt2FU;b002ovPDHLk FV1kp+;4lCH diff --git a/src/icons/orocommerce.svg b/src/icons/orocommerce.svg new file mode 100644 index 000000000..8f1af0c86 --- /dev/null +++ b/src/icons/orocommerce.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/pagefly.png b/src/icons/pagefly.png new file mode 100644 index 0000000000000000000000000000000000000000..b4898698dadb502082f33c05ed382b770a13eac8 GIT binary patch literal 3774 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 + + + + + + + + + + + + diff --git a/src/icons/percona.svg b/src/icons/percona.svg new file mode 100644 index 000000000..383ae281d --- /dev/null +++ b/src/icons/percona.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/icons/platformsh.svg b/src/icons/platformsh.svg new file mode 100644 index 000000000..2491fb8c3 --- /dev/null +++ b/src/icons/platformsh.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/icons/sazito-phoenix.png b/src/icons/sazito-phoenix.png new file mode 100644 index 0000000000000000000000000000000000000000..4dc422b30fa1ca3a91bdf6589b087adfb772cb3f GIT binary patch literal 5119 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 + + + + + + + + diff --git a/src/icons/sectionio.svg b/src/icons/sectionio.svg new file mode 100644 index 000000000..f840642dd --- /dev/null +++ b/src/icons/sectionio.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/icons/seravo.svg b/src/icons/seravo.svg new file mode 100644 index 000000000..0f946fed7 --- /dev/null +++ b/src/icons/seravo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/shopline.png b/src/icons/shopline.png new file mode 100644 index 0000000000000000000000000000000000000000..ebdb09d1486d8a31109349f0dd89a12aafed08d3 GIT binary patch literal 6316 zcmeHM)n5}1v^NkZAxM|Bfb>MVC#{k)7$`8hyIU9`so+L~FpwB9YJ$`#0i{G@!U(0N zjF1=|m*4Asx_`iZIOjZ^b6&om^Zh=2&l^L1ZE6ZOifh-dQS0hx7+=-F{{nF1D)TDH zf4wU9p)bt+jiEu@-o9RrF76K8{vqBD+%De!cGs>2&ngeqQ%6fuX^bzJNcKEXvCj9= zp{2Wj>y+|c4DM_lAD}w%>C1!?WF{n*!3=(S5CFu&Gi-x^0{eFeg7C{6n^B5~RF$->mghW1mu5=3 z);6Tefx)*G$0n9KlW$!+5s7&x*s7|LI#BW30V4cC>9i1B?*W4K&QmB>i0r25(4Qs+ zj0GdfAE@P-KDNCF6io(X*njQXQ$lAs$gf3pOFon15El{2y3@@<4`L8?!$2f^?kq?{ z5V75cLJSniP!K?iMJn6GR~VyLY1kKbn{VQ&p56n9BVAyxZ3<(xRt*?6Wtz3N6C57d zZU6X>e`_!rb)#33Gaa`YxYxemEIHUPESa(>A@@rBLBC@j++n6PLSvyU zV;mg*o~(zrmmmM^9`8^?eW-yP=YOa4bxrq%ooJGA2!z$^v3(G67J1rHV~LT;qXyUk zMG;x>i(O*Qc|xbM_pg83S>nV1wgP=-Rvo|{vKSiGNwi7AT~0JJ)P8bDF_3X%w!@5` zc!ln**zV8(;$3zHp$4m!_Y_6HtUJ#lqSOq9ZNqf|Jf7)-3{32k&oA*c%`$G&ldg}* zHFtJbMauPy6e8AS({XOULg0F)0o6iDY;f28KQEKt(ZE2aPHKRA@jMwTq+tEC6XG~> z(faJX;Wf_Xaqgg#F5u3s*mR{`Lolul=XJEw)g5b*DzN5TE0OwEjoW)$8FKTs((cTf z7(OWc3dtL<)wJ+3^0A!Q@Kx7^r7|iTD@Dt=@QQ)aZmX%FT1j z8_n%*j`h6gac~+dz~J2};y?(8qQ%QUd^C$VWZ0Ksx(wCJaFkX}Z7T=ttu^hs90z?N zt7XX2w=)d1SwvVgrG9Zc=<`d+t1Y&@{R*p&Z7FAx(No2+wPu>>nz6CVx{8)Q&qj?J zs-E92E4RZ@m5$cFZ+gsEDqfa{=Z7cp5~*!Y}d#$rmDm2t9s;pvVr91?G=2 zcp@>tyuVY#fBrfJg904ceB!in$tr0yvV z$5GV>ZZR>jafM_kzmXOIo~6i2{*{amCYe0%X^=a=V|B4E_tSvFVxOm5bdfdI?yf(C z`q>^QeX)n^T_hcNSQ-=pCt^l~;Z?hjybk_KyBm5D2}N@YtDM+H^b27VbC5>6y4!R+ zuF6BOdBEuxNjHl_`erf^^rsi&cDONHvqZf!z@zaNTt0=f;X-LakHZ(Hn=!dNW0gh| z^PY!gC^LC2Xfr;g{|_@QMM9_e&l<2_;tg`U@}W$t=Fx>$)-xUm`^L-FV}c+z7#Ont zxNW|>!M$OI-sMNr*FE~eg5zBgFiLu+UH13SbXCZ+wf

fqCn1ahS^u+KYhl!P(s zSYDGr<5%ZrN>crDt5vT4oXNCHd$+akvNK3W%A3v-$m=aE5|$H@!A zVr^hx@AuzGtm;Lk71|&~Ixm`*f=<32IGokBcfoI7Nq_NId+MRxzkg#fPf-aZ$YNfm3 zD*cKg)1QSvLkZ%Cosw>!hE|g-dhj8X?2~B1;i(aaph1EB!SW7Q|&v#$)vj_eflDocd7hG zg92mV>i2HGAg4v#&VlC>tyGIf$N9gDqppv0_Z9vYdmp9BGA$s+|4!iu383Fe$5U)m z*+$5A&!F}#l0rfE6{<&rTw}!hfo8=>W7_4l?Sgu#sn!*2&fg)}h5ZAMmsvXA&;EBXuc1K18_ga@T>gS)V;^*7!c`Z_y z8pkJ98kKu=5DqoqJjB{R%AS-Qbd!7L=itAJj8Ecexa=`AvE5kLrzx~0H47=R zKtT$yOGn-3PnkM*Y%V+RCMdJeCZXZ)6$?s)a-R#NEz^0C-BH)ccmPQ{791*Ja7s5u zIKX_07CM9tHr^F@1Walt2H)ClmtEtOH>?XDzfm;6Txo)u`dF^0_boqD;JL@d#euY& zjK(M10tH8k*DaR4Rqa;j5va>_sqX3<@p9(O$)HHP3WI#z-m<4bVda_^Gaf+Sm zTpk>^)6bf)fA(X#jz|9RaJ|^xj%!;dqjbDaInIreQerh_Fe1qGqH|uc)iGdx$5ee-@NeMf`LeR# z|41a(Cx((7jx2#&Po?Cy;+N+d38RvthlFBtFp~UF5uXhgCN6 z$BHifnwYt8@}u%gVjMk8vWNU8ddl@+8y|EuIR2@|!dBqm%Yc<~W1h6f3!gwEI?cS1 z+`UQq`*_?57bMh|lV>3m#2ihY>u0|BPp(iV!pOzM4NnN=!pjnz>*2<^;}Bv~!D?VY z9+L(bJa;B6ZG?r}K; z5@c{O&?oOlm_p?h27eIJ1r(3-B?uOZE&VI*#lC8BK5m9-0)CT1(+4KDf4@eO)8xoF z*cP+~(9?WgKG1Iq44-*`Y8xY(O|8ot$3siKTh^%sg91DGM%KJT<`fFRNF(j7H;K)( zw|ZwhKB?APy|Y6wyXly=9d226u1EMaNWGO-2Q*lCST=9wW1V*vi`Z4erc=&O54eG=Bq?ho%sxtfF#s;?EtilmZi~sGOF}kUqw`ezu zUu_Pp&wf^qZNVAm%6gpjyw}bA_?++pI10V+Io5+hdCFIGsypZ*?=e~tc?dC-N?(I} z4*u^>3w1oZicyVL<`iZxfy>i|RqH-sHW0?b6k-)d6cfA4r69ob5Yu}Uqa4N+9*O*Xq4~QF1399SQ-vyKBmDDLuxh<$&{ywC)ONh_m&NN*D8Yct@C8 zm$Rfd$AC}1=unAJpAN|=L_gvC*7uOo`ZL53yolk>^^IMS4PP}scs zhqti!8llSAhe9(Yteh64_rMa&`Liu3XsXU#AQ_or@#a z9Fk{__6#nS4`$wYNqi0S{nZr{qm0_c?VkK$hY6!9+@_~b_2MaJf5le~++ATAz3OapdEO{IVLD zoB;#gjRUDPZ`a5Y_+XCMgIv*}B=bWgFDyj>+3ng0sexaLI!cWZy$-BmXM21o3JF)z zx8mPQ3qtLg@$%lffr)w?YU0WO{)=&oIGxK`+&sc`!sh(B@pb!rFW=2N!6Muc% z<~`F1-{4C&+>#OBO26H7fV2i58-F9{EEx$gRrql__A=s3dA{L_MXh!No{i&2*tY4)dmz9VQLh%RtP%_W zRXlO*-)EJ0|NgxIySCXn^wy2;coO>x+8hilvo2alz|QZHK8=+>i|lk7+uFo8w;`V- z+~XtP#_vu2nY#xc;8Y53`ezFrRvdAQp|yRyD|m6*H(^(l8d~ACeL7a8aD2>c>4e=c zu|UqAj=a`PM%a|H09~`c*mJ7buC#wf%N5ib8Ke`aLuE$S*HxK#1|1tWe%6OA^uz&* zXCy{~>!KFzWB=&w+~e)Igjkp! zsMC_E1NzP=k8Y`F*uzZDGYl^T3YAuiAJ zf)U9UrwK4ZO$D~uk`jo`SA_l9b=}}@cy)v$IlJ3A>s|67rj1uk&R+{}-WC;TTpwfS z03`X8!T67AU(A#Xu$XmJX#=3FGGZfidE86Y3hjW7xY`tR;b zsGbM=4t`4`Lf}Ok1u3$FU60wHOaXMQ)?`jCr5{kWhzyXlMaHZuf;Sb;cLs z>b;x~#O<4J9(VN}#rZ!@*>pKL+*SP(={4Ooz}XG38>aO=ms9oyA~hR7zCrve7f59% zJA+yoR7E@_l4JhGP7QkHDS4)YkuH-J&}7S8X^$U$p7mFn%Ad5lT07x1dKS8#MM;R% zrs%hql%z7*3DXDZgwFeCj;q;&XpJ5vEoHdj^z^**#bWq%6>2^iA+`8@QS|){{6%fv z>PgsbUV1uOGOV=?qd9WiO%9XT7i~rhx{iPbD0sBTnt%Yw-kEEu@Fb$35-^rR;%sa0 zG_w}W2jHROp(ai(Q=hO*fn!)jhjx!C<6f(Ak8C*`Vi(GW%#xClAc#9pGe+z^zt?q6 zY(8u^9F)`@_0SqE6ndW|BW8JWqv!KpoCbn5o`+1@bxsX6K4_fb!O^Ypn!zj?jd+hR z-GhTo6``7mB`j3rPkz@iFgd_jQur1n<6>6j;CdtV&-NQr&Z-}?P`tYIrKdYC4sAz9 zq|^)PTBQ?CtjN?^>r%dQ+wMX1JrM20rPtTyTh~gj{lAI) ee|OS%R5SQz2hIn7(p|kDuIXy(Yt({lV*UrL>I*>t literal 0 HcmV?d00001 diff --git a/src/icons/signal.png b/src/icons/signal.png new file mode 100644 index 0000000000000000000000000000000000000000..56ac41aa5c821f51cac4ddba0ee6bebedea52610 GIT binary patch literal 4424 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 + + + + + + + + + diff --git a/src/icons/siteground.svg b/src/icons/siteground.svg new file mode 100644 index 000000000..cba0c15f3 --- /dev/null +++ b/src/icons/siteground.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/icons/spip.svg b/src/icons/spip.svg new file mode 100644 index 000000000..6650df09c --- /dev/null +++ b/src/icons/spip.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/swiper.svg b/src/icons/swiper.svg new file mode 100644 index 000000000..63d5a4a32 --- /dev/null +++ b/src/icons/swiper.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/icons/sympa.png b/src/icons/sympa.png new file mode 100644 index 0000000000000000000000000000000000000000..288e92224ec4bed330dd93715400d8b09c9cbaf8 GIT binary patch literal 7355 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 + + + Syncfusion Logo + Created with Sketch. + + \ No newline at end of file diff --git a/src/icons/tailwindcss.svg b/src/icons/tailwindcss.svg new file mode 100644 index 000000000..5b0424030 --- /dev/null +++ b/src/icons/tailwindcss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/tessitura.svg b/src/icons/tessitura.svg new file mode 100644 index 000000000..96be0cdc1 --- /dev/null +++ b/src/icons/tessitura.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/icons/uCore.png b/src/icons/uCore.png deleted file mode 100644 index 5f5da3de3826af8170ad9f468dc43edf5c7b597a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8ifP)6z~7uBvXY+SpK?N>!@A_r3Rh^-AEM@#x8v62Pbs@-WwZt#)g7p660Z z@0~IFc^t*}xV{5m{$j-6&D7IpRR*5)JUPL2q|sPZpXTN;xONb=Y7Mn|J!ANM9LLw= zD7pcl<8U4TJbgA@C(Y$@xqP}-t8bW_`yk)W%z*5uR4Pb%F*=Z|Ed8GI@p&w(P_dY*;W8YB&8nUp<;KjurQCD(pOeiFuW_puA^NH z?_EH7IRFJ?J z(@$Wzx1*8=($ySwBUr180ME}Lltr&=p?eu@PLQJPEN6@@67=^{r8=EuZHEk#^wq&6 z0?YFR>jXN<(QZiSP@*gVHm!(pC6V~O;&r@~GCug{pM>xGP$IyOS2Z*T$x1@qDkC>J z)PPy-L7M7}xAsDj{jRmyiAveuPD3CF0&L#28FU=Xibc*ZDDiwCDE@_Eo6G^CC~mOa zJId1AY~)RA&G~wLjqhr7Dyr4$Dx14HH;dXK5O%tT1h=w0pDj)&C$9`Z$g6bZaVGP7 zv~J>DXZvraNFa+I@!WxL^A^SdG*=(fg^QO4*x6Hp4r4F2l2Otu?y3rB5||O#;ChRR zuQ~94uhES&XU{on@1f9R^u~VnX4I9$T0e45GtnI~&;I+Ie*@OI&HTBYXH) + + + logo wap + Created with Sketch. + + + + \ No newline at end of file diff --git a/src/icons/webdev.png b/src/icons/webdev.png index 3d46323003e4851664d4c8a68eca8f3d2d3f00e5..a37ce3ec83faa0f6269df3d99521f9fe678d9a40 100644 GIT binary patch literal 5632 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 LNVDSNwHyBfsxRPF literal 5493 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 diff --git a/src/icons/webflow.svg b/src/icons/webflow.svg new file mode 100644 index 000000000..b7d4fd50a --- /dev/null +++ b/src/icons/webflow.svg @@ -0,0 +1,13 @@ + + + Created using Figma + + + + + + + + + + diff --git a/src/icons/websocket.png b/src/icons/websocket.png new file mode 100644 index 0000000000000000000000000000000000000000..7d94f1073717ab8511cb229d460a86cc42d20f8c GIT binary patch literal 990 zcmWlY`#04G0KmVlM>j*#tfHD|8agP*RD{?1#_i^A~(#?QE@8m9>-wK~S~XWx02uX8$9WUvO4s z*q9)QcG~UUZ-tYHKpiHBi81EwD_j?IJ%O=4n$F>=j*}eSH;LJXtC+tln4jbI3y!T| zex6?ynR|z19dBo7Ddyc0~?3I3S2Ysm6Rw4k#A&!yZvPxeoEzfWrk)6Z$Y!3jOa2Pim-yDBqN+$rR& z1BLDcen`(PUW_s~OP`GPY6e=kdIJAd^xvT-nM+=j1~B{xXL)8{bIOFc9SpYe^Z{?C zxt@rufIKH6w&15l`aaV3QlCbMAr(=awqm%02qQ+i2;D&9H-v4Xqn12poE3;OCH`xU z>+-0EW6Md|P0M96zQ;$C`g9(*;ky!#CB&PN?MPc0ky{z<;np8?)-(Htq+K**Ff~HH zD^~(Zv#0MiLHbBOqW><@U-C~CqrLcifS)$^|72#8oS#YGPsK^jA3_?-s|jjTDe*%Z zLy14Bwp5>?Dvrzpr0n5YH_6{}rwISm;QBwT$pj zXgtgL!^Cdqs)XZfDfXqii6ReNlqip&DU08}!%dl!U(lS#Uso9G=k`U82!Oft)K)=| z+h=2GzTcs7ynVa7$VgquQLk-h@eg8q3vY!yv7v6VQmpdQi-RHq@5?W@HMF*b8uynE z&1~r%$?+YzRrxBwEpYY9xY4i>xp$wv$vInpPybxn#1W0nM#c`2eL9;}!~3Fw{0BU= zM_U^{Us7=>%1zgFgW}p{Np(gBsTp=*BQZ{EHSdN0*jd%%a8slbE4K7WAIz53m6|G6 zZ_=GeOjDoMkXzLx)t1*XuDPABw5W8?HRB5hq{~H;F0BhOCTGOUg7XbmTo&SW<+5Z6 zD*fheni^&Sc5-G@)|$dVSD|o5QME2I`iZ{uy)6Sq51tA7)!ikkaP9F-lmbzk^au(7hWEVXb9 F{}10wO%(tD literal 0 HcmV?d00001 diff --git a/src/icons/wisyCMS.svg b/src/icons/wisyCMS.svg new file mode 100644 index 000000000..8063affdc --- /dev/null +++ b/src/icons/wisyCMS.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + diff --git a/src/icons/wpCache.png b/src/icons/wpCache.png index 7f24b9d35d8e80ee57eaca88430131e5ba19e25a..85ef209d9f01ee6b674f27f5d95ac243eaef1b63 100644 GIT binary patch delta 1522 zcmVN-rM8c+~eNb ze^7jJB5`U+Z13vp?(FGpDr@=l+vVWl^6%z_K7`G~%aJmIbbmmD>)_IPGJ14NfQL}3 zpNy4zDR!26j?~7-i8_Gf;?}H{r_sR4jaG?T9b|c0h_jfnbTo6^)7Nb`e(2@kXe4Cs z@9e_6vr89X)6dSfqP9~IWw4&3tdFjzk)7@5+K+dKO&nl#QFU$`YMOzPc1CrOZi$Oi zuB?Ti=i}a{gMXsy>)rMB?fd%T{{Qpz^ym8f@b2#8{{QS)5?=oQ@bU5O`1s}M=h*!G z=koF1VlH~`?&xC=T=)3v=j71S%)w$abp8C|?cBk|yRfyhrD7>=VIgT^8ei({>*?s@ z^YGc+*VpCZ*6!iTrIeUkA7@<-UhnPM;os5i>XH*tuRVrm=Lt|(o zVr)@W)XCKD=hDul!pF6sL0000}bW%=J z016NWPaC~9E*k#+{?0=o92x%m_U+Qi$gG%PMSnK?`t9T0*w)g{%*DREv$C(Ko|ln> zfp2SLO+!F7{qped@9*p6+R)9#wyK|;l8k|Wa9BSrw{^Gs0009MNklmTcIvORF=(<7 zqFq&4NNHG>Bw1Ed-BlT|i)Ce3_iu;7<$vT}(P*@(x(84cr2wGdkmpxfjYhHeh!P4H zu50Z!tJPYsRud$yBN?4qjkfxGtv0)Mcl26{-6}|b1czZJ1}AhljbWI&$PYII$!jTM zjx1JGEPcfo+Jp%>Mc@J^&~#R3MMb3lL>vN%z8l%^bD0DjDkMtL0?pupN#D5?nSTlc zK;()$c^;U6!EuJ*c^w>K7Opn$ezZJTsVlp9f+IKq$AQ!BrmAp;BM6Q{_x|liI!ghL zV}XWsIN!c?Iy4#pFb+_=E=fWfNmLOSH(30|?Ql9A@7oHiO&92L1}sMAO(fyuJV!w7eSKr;Sfp4t)br4&z2Uq zI4M|d_e61d;ed;($(4ky`*KHf4Bz{@+TH_7uh)Q2-*(JS*5-`nZj*$RcV2J)LP=jM zU^RN41v?A-N_q@lZ;d3#9=hu4^uE&W4-Cm>R|Ar1HkMfUIsa_UEBO@am92^Y|4K+123kwSl4h}6XEff?K zAt50tDJc{b6dxZS4h{}9G&C6*866!RNl8f<7#I=~5=2BqJbyeqBqStWUS2aZGchqS z6B83OG&BVT1ribx0|Ns%I5-#>7#tiN6B83YK0YWYC_q3!I5;>sI5=)@ZY?b>0RaIB z2nhfG{}U4v%F4`X_xIo5-@CiJva+(6n3#);i-v}VWo2bfPEH>m zAL;4o&CSik#DB!5rly~tpMHLRczAeKRaHnxNIN?_B_$=()6;QraWOG5c3>Q90000z zbW%=J0Q~&s-Vg9{aU&oX_3Yl>+SAd^zrCuUpPGn;gM52$V`5oTPDwa5G!_&H=-kM{ z!LF^MnvjfWUs66fD#S^(=>Px$jY&j7R5;6Z(&tvBKz|Sg;0sJzb#=`-XWg7rRdvHS z(HV2r_kRs-daxP6?+2$(-=c~JkW!rSJf()`-XK@8GU^jEkzbfu-^=DJfe90(`Q83_ z;1l=qr0VU`emXBa2hN90B=$#{a_}O0rqa#XHRH0)H=j4$&338miQkd)qT;*B*K!{~ z#n-^J7=O!zZl1pYY`N)9*xT@b02Ru(ZHhE*&B|K>zNAjbY-X!tX}9%J{62TEXU@>n z)U4BCwOiLxRUPRhy*>jw0WsanO--)rtw>r?t#v5}Wbrak_RN`TS~sfl5Xljp>aH9T z#S=uP@*8r@>1%J`m0iSi~O3rngi7!r0E)|znU`&v6 zWv5%SyNGRvZZE33g2KXf5wWk7i+N;X0LEbON&%@=#C|g8f2yGhY>N@f7ygH}p>ls0 zo<-sp_um=D*C{xQnfa{dk+$sKhK(n;&~Ia0g)SanN7nD@$+5yv=yUMx5AqHED}Q`H dJQ)2KDUaeGt|SD0W`qC$002ovPDHLkV1g6LONamf diff --git a/src/icons/wpengine.svg b/src/icons/wpengine.svg new file mode 100644 index 000000000..d759de179 --- /dev/null +++ b/src/icons/wpengine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/wpvip.svg b/src/icons/wpvip.svg new file mode 100644 index 000000000..788a4fcbe --- /dev/null +++ b/src/icons/wpvip.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/icons/yepcomm.png b/src/icons/yepcomm.png new file mode 100644 index 0000000000000000000000000000000000000000..4b987b382f335559068775ec230582d0c1a7864b GIT binary patch literal 3339 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 F;6L$Aw?hB` literal 0 HcmV?d00001 diff --git a/src/wappalyzer.js b/src/wappalyzer.js index e117c6121..7a2c3e368 100644 --- a/src/wappalyzer.js +++ b/src/wappalyzer.js @@ -6,13 +6,117 @@ * License: GPLv3 http://www.gnu.org/licenses/gpl-3.0.txt */ -'use strict'; - const validation = { hostname: /(www.)?((.+?)\.(([a-z]{2,3}\.)?[a-z]{2,6}))$/, - hostnameBlacklist: /((local|dev(elopment)?|stag(e|ing)?|test(ing)?|demo(shop)?|admin|google|cache)\.|\/admin|\.local)/ + hostnameBlacklist: /((local|dev(elopment)?|stag(e|ing)?|test(ing)?|demo(shop)?|admin|google|cache)\.|\/admin|\.local)/, }; +/** + * Enclose string in array + */ +function asArray(value) { + return value instanceof Array ? value : [value]; +} + +/** + * + */ +function asyncForEach(iterable, iterator) { + return Promise.all((iterable || []) + .map(item => new Promise(resolve => setTimeout(() => resolve(iterator(item)), 1)))); +} + +/** + * Mark application as detected, set confidence and version + */ +function addDetected(app, pattern, type, value, key) { + app.detected = true; + + // Set confidence level + app.confidence[`${type} ${key ? `${key} ` : ''}${pattern.regex}`] = pattern.confidence === undefined ? 100 : parseInt(pattern.confidence, 10); + + // Detect version number + if (pattern.version) { + const versions = []; + const matches = pattern.regex.exec(value); + + let { version } = pattern; + + if (matches) { + matches.forEach((match, i) => { + // Parse ternary operator + const ternary = new RegExp(`\\\\${i}\\?([^:]+):(.*)$`).exec(version); + + if (ternary && ternary.length === 3) { + version = version.replace(ternary[0], match ? ternary[1] : ternary[2]); + } + + // Replace back references + version = version.trim().replace(new RegExp(`\\\\${i}`, 'g'), match || ''); + }); + + if (version && versions.indexOf(version) === -1) { + versions.push(version); + } + + if (versions.length) { + // Use the longest detected version number + app.version = versions.reduce((a, b) => (a.length > b.length ? a : b)); + } + } + } +} + +function resolveExcludes(apps, detected) { + const excludes = []; + const detectedApps = Object.assign({}, apps, detected); + + // Exclude app in detected apps only + Object.keys(detectedApps).forEach((appName) => { + const app = detectedApps[appName]; + + if (app.props.excludes) { + asArray(app.props.excludes).forEach((excluded) => { + excludes.push(excluded); + }); + } + }); + + // Remove excluded applications + Object.keys(apps).forEach((appName) => { + if (excludes.indexOf(appName) > -1) { + delete apps[appName]; + } + }); +} + +class Application { + constructor(name, props, detected) { + this.confidence = {}; + this.confidenceTotal = 0; + this.detected = Boolean(detected); + this.excludes = []; + this.name = name; + this.props = props; + this.version = ''; + } + + /** + * Calculate confidence total + */ + getConfidence() { + let total = 0; + + Object.keys(this.confidence).forEach((id) => { + total += this.confidence[id]; + }); + + this.confidenceTotal = Math.min(total, 100); + + return this.confidenceTotal; + } +} + class Wappalyzer { constructor() { this.apps = {}; @@ -34,97 +138,117 @@ class Wappalyzer { * Log messages to console */ log(message, source, type) { - this.driver.log(message, source || '', type || 'debug'); - } - - asyncForEach(iterable, iterator) { - return Promise.all(( iterable || [] ).map(item => new Promise(resolve => setTimeout(() => resolve(iterator(item)), 1)))); + if (this.driver.log) { + this.driver.log(message, source || '', type || 'debug'); + } } analyze(url, data, context) { - const startTime = new Date(); - + const apps = {}; const promises = []; + const startTime = new Date(); + const { + scripts, + cookies, + headers, + js, + } = data; - var apps = {}; + let { html } = data; - if ( this.detected[url.canonical] === undefined ) { + if (this.detected[url.canonical] === undefined) { this.detected[url.canonical] = {}; } + const metaTags = []; + // Additional information - var language = null; + let language = null; - if ( data.html ) { - if ( typeof data.html !== 'string' ) { - data.html = ''; + if (html) { + if (typeof html !== 'string') { + html = ''; } - const matches = data.html.match(/]*[: ]lang="([a-z]{2}((-|_)[A-Z]{2})?)"/i); + let matches = data.html.match(new RegExp(']*[: ]lang="([a-z]{2}((-|_)[A-Z]{2})?)"', 'i')); language = matches && matches.length ? matches[1] : null; + + // Meta tags + const regex = /]+>/ig; + + do { + matches = regex.exec(html); + + if (!matches) { + break; + } + + metaTags.push(matches[0]); + } while (matches); } - Object.keys(this.apps).forEach(appName => { - apps[appName] = this.detected[url.canonical] && this.detected[url.canonical][appName] ? this.detected[url.canonical][appName] : new Application(appName, this.apps[appName]); + Object.keys(this.apps).forEach((appName) => { + apps[appName] = this.detected[url.canonical] && this.detected[url.canonical][appName] + ? this.detected[url.canonical][appName] + : new Application(appName, this.apps[appName]); - var app = apps[appName]; + const app = apps[appName]; - this.analyzeUrl(app, url); + promises.push(this.analyzeUrl(app, url)); - if ( data.html ) { - promises.push(this.analyzeHtml(app, data.html)); - promises.push(this.analyzeMeta(app, data.html)); + if (html) { + promises.push(this.analyzeHtml(app, html)); + promises.push(this.analyzeMeta(app, metaTags)); } - if ( data.scripts ) { - promises.push(this.analyzeScripts(app, data.scripts)); + if (scripts) { + promises.push(this.analyzeScripts(app, scripts)); } - if ( data.cookies ) { - promises.push(this.analyzeCookies(app, data.cookies)); + if (cookies) { + promises.push(this.analyzeCookies(app, cookies)); } - if ( data.headers ) { - promises.push(this.analyzeHeaders(app, data.headers)); + if (headers) { + promises.push(this.analyzeHeaders(app, headers)); } }); - if ( data.js ) { - Object.keys(data.js).forEach(appName => { - if (typeof data.js[appName] != 'function') { - promises.push(this.analyzeJs(apps[appName], data.js[appName])); + if (js) { + Object.keys(js).forEach((appName) => { + if (typeof js[appName] !== 'function') { + promises.push(this.analyzeJs(apps[appName], js[appName])); } }); } - return new Promise(resolve => { - Promise.all(promises) - .then(() => { - Object.keys(apps).forEach(appName => { - let app = apps[appName]; + return new Promise(async (resolve) => { + await Promise.all(promises); - if (!app.detected || !app.getConfidence()) { - delete apps[app.name]; - } - }); + Object.keys(apps).forEach((appName) => { + const app = apps[appName]; + + if (!app.detected || !app.getConfidence()) { + delete apps[app.name]; + } + }); - this.resolveExcludes(apps, this.detected[url]); - this.resolveImplies(apps, url.canonical); + resolveExcludes(apps, this.detected[url]); + this.resolveImplies(apps, url.canonical); - this.cacheDetectedApps(apps, url.canonical); - this.trackDetectedApps(apps, url, language); + this.cacheDetectedApps(apps, url.canonical); + this.trackDetectedApps(apps, url, language); - this.log('Processing ' + Object.keys(data).join(', ') + ' took ' + (( new Date() - startTime ) / 1000).toFixed(2) + 's (' + url.hostname + ')', 'core'); + this.log(`Processing ${Object.keys(data).join(', ')} took ${((new Date() - startTime) / 1000).toFixed(2)}s (${url.hostname})`, 'core'); - if ( Object.keys(apps).length ) { - this.log('Identified ' + Object.keys(apps).join(', ') + ' (' + url.hostname + ')', 'core'); - } + if (Object.keys(apps).length) { + this.log(`Identified ${Object.keys(apps).join(', ')} (${url.hostname})`, 'core'); + } - this.driver.displayApps(this.detected[url.canonical], { language }, context); + this.driver.displayApps(this.detected[url.canonical], { language }, context); - return resolve(); - }); + return resolve(); }); } @@ -139,33 +263,32 @@ class Wappalyzer { * */ robotsTxtAllows(url) { - return new Promise((resolve, reject) => { - var parsed = this.parseUrl(url); + return new Promise(async (resolve, reject) => { + const parsed = this.parseUrl(url); - if ( parsed.protocol !== 'http:' && parsed.protocol !== 'https:' ) { + if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') { return reject(); } - this.driver.getRobotsTxt(parsed.host, parsed.protocol === 'https:') - .then(robotsTxt => { - if ( robotsTxt.some(disallowedPath => parsed.pathname.indexOf(disallowedPath) === 0) ) { - return reject(); - } + const robotsTxt = await this.driver.getRobotsTxt(parsed.host, parsed.protocol === 'https:'); - return resolve(); - }, () => resolve()); + if (robotsTxt.some(disallowedPath => parsed.pathname.indexOf(disallowedPath) === 0)) { + return reject(); + } + + return resolve(); }); - }; + } /** * Parse a URL */ parseUrl(url) { - var a = this.driver.document.createElement('a'); + const a = this.driver.document.createElement('a'); a.href = url; - a.canonical = a.protocol + '//' + a.host + a.pathname; + a.canonical = `${a.protocol}//${a.host}${a.pathname}`; return a; } @@ -173,22 +296,21 @@ class Wappalyzer { /** * */ - parseRobotsTxt(robotsTxt) { - var userAgent; - var disallow = []; + static parseRobotsTxt(robotsTxt) { + const disallow = []; + + let userAgent; - robotsTxt.split('\n').forEach(line => { - var matches = /^User-agent:\s*(.+)$/i.exec(line); + robotsTxt.split('\n').forEach((line) => { + let matches = /^User-agent:\s*(.+)$/i.exec(line.trim()); - if ( matches ) { + if (matches) { userAgent = matches[1].toLowerCase(); - } else { - if ( userAgent === '*' || userAgent === 'wappalyzer' ) { - matches = /^Disallow:\s*(.+)$/i.exec(line); + } else if (userAgent === '*' || userAgent === 'wappalyzer') { + matches = /^Disallow:\s*(.+)$/i.exec(line.trim()); - if ( matches ) { - disallow.push(matches[1]); - } + if (matches) { + disallow.push(matches[1]); } } }); @@ -200,55 +322,48 @@ class Wappalyzer { * */ ping() { - if ( Object.keys(this.hostnameCache).length > 100 ) { + if (Object.keys(this.hostnameCache).length > 100) { this.driver.ping(this.hostnameCache); this.hostnameCache = {}; } - if ( this.adCache.length > 50 ) { + if (this.adCache.length > 50) { this.driver.ping({}, this.adCache); this.adCache = []; } } - /** - * Enclose string in array - */ - asArray(value) { - return value instanceof Array ? value : [ value ]; - } - /** * Parse apps.json patterns */ parsePatterns(patterns) { - if ( !patterns ) { + if (!patterns) { return []; } - var parsed = {}; + let parsed = {}; // Convert string to object containing array containing string - if ( typeof patterns === 'string' || patterns instanceof Array ) { + if (typeof patterns === 'string' || patterns instanceof Array) { patterns = { - main: this.asArray(patterns) + main: asArray(patterns), }; } - Object.keys(patterns).forEach(key => { + Object.keys(patterns).forEach((key) => { parsed[key] = []; - this.asArray(patterns[key]).forEach(pattern => { - var attrs = {}; + asArray(patterns[key]).forEach((pattern) => { + const attrs = {}; pattern.split('\\;').forEach((attr, i) => { - if ( i ) { + if (i) { // Key value pairs attr = attr.split(':'); - if ( attr.length > 1 ) { + if (attr.length > 1) { attrs[attr.shift()] = attr.join(':'); } } else { @@ -256,10 +371,10 @@ class Wappalyzer { try { attrs.regex = new RegExp(attr.replace('/', '\/'), 'i'); // Escape slashes in regular expression - } catch (e) { + } catch (error) { attrs.regex = new RegExp(); - this.log(e + ': ' + attr, 'error', 'core'); + this.log(`${error.message}: ${attr}`, 'error', 'core'); } } }); @@ -269,7 +384,7 @@ class Wappalyzer { }); // Convert back to array if the original pattern list was an array (or string) - if ( 'main' in parsed ) { + if ('main' in parsed) { parsed = parsed.main; } @@ -280,69 +395,51 @@ class Wappalyzer { * Parse JavaScript patterns */ parseJsPatterns() { - Object.keys(this.apps).forEach(appName => { + Object.keys(this.apps).forEach((appName) => { if (this.apps[appName].js) { this.jsPatterns[appName] = this.parsePatterns(this.apps[appName].js); } }); } - resolveExcludes(apps, detected) { - let excludes = []; - - // Exclude app in detected apps only - Object.keys(Object.assign({}, apps, detected)).forEach(appName => { - let app = apps[appName]; - - if (app.props.excludes) { - this.asArray(app.props.excludes).forEach(excluded => { - excludes.push(excluded); - }); - } - }); - - // Remove excluded applications - Object.keys(apps).forEach(appName => { - if (excludes.indexOf(appName) > -1) { - delete apps[appName]; - } - }); - } - resolveImplies(apps, url) { - var checkImplies = true; + let checkImplies = true; - // Implied applications - // Run several passes as implied apps may imply other apps - while ( checkImplies ) { - checkImplies = false; - - Object.keys(apps).forEach(appName => { - var app = apps[appName]; + const resolve = (appName) => { + const app = apps[appName]; - if ( app && app.props.implies ) { - this.asArray(app.props.implies).forEach(implied => { - implied = this.parsePatterns(implied)[0]; + if (app && app.props.implies) { + asArray(app.props.implies).forEach((implied) => { + [implied] = this.parsePatterns(implied); - if ( !this.apps[implied.string] ) { - this.log('Implied application ' + implied.string + ' does not exist', 'core', 'warn'); + if (!this.apps[implied.string]) { + this.log(`Implied application ${implied.string} does not exist`, 'core', 'warn'); - return; - } + return; + } - if ( !( implied.string in apps ) ) { - apps[implied.string] = this.detected[url] && this.detected[url][implied.string] ? this.detected[url][implied.string] : new Application(implied.string, this.apps[implied.string], true); + if (!(implied.string in apps)) { + apps[implied.string] = this.detected[url] && this.detected[url][implied.string] + ? this.detected[url][implied.string] + : new Application(implied.string, this.apps[implied.string], true); - checkImplies = true; - } + checkImplies = true; + } - // Apply app confidence to implied app - Object.keys(app.confidence).forEach(id => { - apps[implied.string].confidence[id + ' implied by ' + appName] = app.confidence[id] * ( implied.confidence === undefined ? 1 : implied.confidence / 100 ); - }); + // Apply app confidence to implied app + Object.keys(app.confidence).forEach((id) => { + apps[implied.string].confidence[`${id} implied by ${appName}`] = app.confidence[id] * (implied.confidence === undefined ? 1 : implied.confidence / 100); }); - } - }); + }); + } + }; + + // Implied applications + // Run several passes as implied apps may imply other apps + while (checkImplies) { + checkImplies = false; + + Object.keys(apps).forEach(resolve); } } @@ -350,14 +447,17 @@ class Wappalyzer { * Cache detected applications */ cacheDetectedApps(apps, url) { - Object.keys(apps).forEach(appName => { - let app = apps[appName]; + Object.keys(apps).forEach((appName) => { + const app = apps[appName]; // Per URL this.detected[url][appName] = app; - Object.keys(app.confidence).forEach(id => this.detected[url][appName].confidence[id] = app.confidence[id]); - }) + Object.keys(app.confidence) + .forEach((id) => { + this.detected[url][appName].confidence[id] = app.confidence[id]; + }); + }); if (this.driver.ping instanceof Function) { this.ping(); @@ -368,41 +468,44 @@ class Wappalyzer { * Track detected applications */ trackDetectedApps(apps, url, language) { - if ( !( this.driver.ping instanceof Function ) ) { + if (!(this.driver.ping instanceof Function)) { return; } - const hostname = url.protocol + '//' + url.hostname; + const hostname = `${url.protocol}//${url.hostname}`; - Object.keys(apps).forEach(appName => { + Object.keys(apps).forEach((appName) => { const app = apps[appName]; - if ( this.detected[url.canonical][appName].getConfidence() >= 100 ) { - if ( validation.hostname.test(url.hostname) && !validation.hostnameBlacklist.test(url.hostname) ) { - if ( !( hostname in this.hostnameCache ) ) { + if (this.detected[url.canonical][appName].getConfidence() >= 100) { + if ( + validation.hostname.test(url.hostname) + && !validation.hostnameBlacklist.test(url.hostname) + ) { + if (!(hostname in this.hostnameCache)) { this.hostnameCache[hostname] = { applications: {}, - meta: {} + meta: {}, }; } - if ( !( appName in this.hostnameCache[hostname].applications ) ) { + if (!(appName in this.hostnameCache[hostname].applications)) { this.hostnameCache[hostname].applications[appName] = { - hits: 0 + hits: 0, }; } - this.hostnameCache[hostname].applications[appName].hits ++; + this.hostnameCache[hostname].applications[appName].hits += 1; - if ( apps[appName].version ) { + if (apps[appName].version) { this.hostnameCache[hostname].applications[appName].version = app.version; } } } }); - if ( hostname in this.hostnameCache ) { - this.hostnameCache[hostname].meta['language'] = language; + if (hostname in this.hostnameCache) { + this.hostnameCache[hostname].meta.language = language; } this.ping(); @@ -412,15 +515,15 @@ class Wappalyzer { * Analyze URL */ analyzeUrl(app, url) { - var patterns = this.parsePatterns(app.props.url); + const patterns = this.parsePatterns(app.props.url); - if ( !patterns.length ) { + if (!patterns.length) { return Promise.resolve(); } - return this.asyncForEach(patterns, pattern => { - if ( pattern.regex.test(url.canonical) ) { - this.addDetected(app, pattern, 'url', url.canonical); + return asyncForEach(patterns, (pattern) => { + if (pattern.regex.test(url.canonical)) { + addDetected(app, pattern, 'url', url.canonical); } }); } @@ -429,15 +532,15 @@ class Wappalyzer { * Analyze HTML */ analyzeHtml(app, html) { - var patterns = this.parsePatterns(app.props.html); + const patterns = this.parsePatterns(app.props.html); - if ( !patterns.length ) { + if (!patterns.length) { return Promise.resolve(); } - return this.asyncForEach(patterns, pattern => { - if ( pattern.regex.test(html) ) { - this.addDetected(app, pattern, 'html', html); + return asyncForEach(patterns, (pattern) => { + if (pattern.regex.test(html)) { + addDetected(app, pattern, 'html', html); } }); } @@ -446,16 +549,16 @@ class Wappalyzer { * Analyze script tag */ analyzeScripts(app, scripts) { - var patterns = this.parsePatterns(app.props.script); + const patterns = this.parsePatterns(app.props.script); - if ( !patterns.length ) { + if (!patterns.length) { return Promise.resolve(); } - return this.asyncForEach(patterns, pattern => { - scripts.forEach(uri => { - if ( pattern.regex.test(uri) ) { - this.addDetected(app, pattern, 'script', uri); + return asyncForEach(patterns, (pattern) => { + scripts.forEach((uri) => { + if (pattern.regex.test(uri)) { + addDetected(app, pattern, 'script', uri); } }); }); @@ -464,30 +567,31 @@ class Wappalyzer { /** * Analyze meta tag */ - analyzeMeta(app, html) { - const regex = /]+>/ig; + analyzeMeta(app, metaTags) { const patterns = this.parsePatterns(app.props.meta); const promises = []; - let matches; + if (!app.props.meta) { + return Promise.resolve(); + } - while ( patterns && ( matches = regex.exec(html) ) ) { - for ( let meta in patterns ) { - const r = new RegExp('(?:name|property)=["\']' + meta + '["\']', 'i'); + metaTags.forEach((match) => { + Object.keys(patterns).forEach((meta) => { + const r = new RegExp(`(?:name|property)=["']${meta}["']`, 'i'); - if ( r.test(matches[0]) ) { - let content = matches[0].match(/content=("|')([^"']+)("|')/i); + if (r.test(match)) { + const content = match.match(/content=("|')([^"']+)("|')/i); - promises.push(this.asyncForEach(patterns[meta], pattern => { - if ( content && content.length === 4 && pattern.regex.test(content[2]) ) { - this.addDetected(app, pattern, 'meta', content[2], meta); + promises.push(asyncForEach(patterns[meta], (pattern) => { + if (content && content.length === 4 && pattern.regex.test(content[2])) { + addDetected(app, pattern, 'meta', content[2], meta); } })); } - } - } + }); + }); - return promises ? Promise.all(promises) : Promise.resolve(); + return Promise.all(promises); } /** @@ -497,15 +601,15 @@ class Wappalyzer { const patterns = this.parsePatterns(app.props.headers); const promises = []; - Object.keys(patterns).forEach(headerName => { - if (typeof patterns[headerName] != 'function') { - promises.push(this.asyncForEach(patterns[headerName], pattern => { + Object.keys(patterns).forEach((headerName) => { + if (typeof patterns[headerName] !== 'function') { + promises.push(asyncForEach(patterns[headerName], (pattern) => { headerName = headerName.toLowerCase(); - if ( headerName in headers ) { - headers[headerName].forEach(headerValue => { - if ( pattern.regex.test(headerValue) ) { - this.addDetected(app, pattern, 'headers', headerValue, headerName); + if (headerName in headers) { + headers[headerName].forEach((headerValue) => { + if (pattern.regex.test(headerValue)) { + addDetected(app, pattern, 'headers', headerValue, headerName); } }); } @@ -523,15 +627,15 @@ class Wappalyzer { const patterns = this.parsePatterns(app.props.cookies); const promises = []; - Object.keys(patterns).forEach(cookieName => { - if (typeof patterns[cookieName] != 'function') { - cookieName = cookieName.toLowerCase(); + Object.keys(patterns).forEach((cookieName) => { + if (typeof patterns[cookieName] !== 'function') { + const cookieNameLower = cookieName.toLowerCase(); - promises.push(this.asyncForEach(patterns[cookieName], pattern => { - const cookie = cookies.find(cookie => cookie.name.toLowerCase() === cookieName); + promises.push(asyncForEach(patterns[cookieName], (pattern) => { + const cookie = cookies.find(_cookie => _cookie.name.toLowerCase() === cookieNameLower); - if ( cookie && pattern.regex.test(cookie.value) ) { - this.addDetected(app, pattern, 'cookies', cookie.value, cookieName); + if (cookie && pattern.regex.test(cookie.value)) { + addDetected(app, pattern, 'cookies', cookie.value, cookieName); } })); } @@ -546,14 +650,14 @@ class Wappalyzer { analyzeJs(app, results) { const promises = []; - Object.keys(results).forEach(string => { - if (typeof results[string] != 'function') { - promises.push(this.asyncForEach(Object.keys(results[string]), index => { + Object.keys(results).forEach((string) => { + if (typeof results[string] !== 'function') { + promises.push(asyncForEach(Object.keys(results[string]), (index) => { const pattern = this.jsPatterns[app.name][string][index]; const value = results[string][index]; - if ( pattern && pattern.regex.test(value) ) { - this.addDetected(app, pattern, 'js', value); + if (pattern && pattern.regex.test(value)) { + addDetected(app, pattern, 'js', value, string); } })); } @@ -561,76 +665,8 @@ class Wappalyzer { return promises ? Promise.all(promises) : Promise.resolve(); } - - /** - * Mark application as detected, set confidence and version - */ - addDetected(app, pattern, type, value, key) { - app.detected = true; - - // Set confidence level - app.confidence[type + ' ' + ( key ? key + ' ' : '' ) + pattern.regex] = pattern.confidence === undefined ? 100 : parseInt(pattern.confidence); - - // Detect version number - if ( pattern.version ) { - var versions = []; - var version = pattern.version; - var matches = pattern.regex.exec(value); - - if ( matches ) { - matches.forEach((match, i) => { - // Parse ternary operator - var ternary = new RegExp('\\\\' + i + '\\?([^:]+):(.*)$').exec(version); - - if ( ternary && ternary.length === 3 ) { - version = version.replace(ternary[0], match ? ternary[1] : ternary[2]); - } - - // Replace back references - version = version.trim().replace(new RegExp('\\\\' + i, 'g'), match || ''); - }); - - if ( version && versions.indexOf(version) === -1 ) { - versions.push(version); - } - - if ( versions.length ) { - // Use the longest detected version number - app.version = versions.reduce((a, b) => a.length > b.length ? a : b); - } - } - } - } -} - -/** - * Application class - */ -class Application { - constructor(name, props, detected) { - this.confidence = {}; - this.confidenceTotal = 0; - this.detected = Boolean(detected); - this.excludes = []; - this.name = name; - this.props = props; - this.version = ''; - } - - /** - * Calculate confidence total - */ - getConfidence() { - var total = 0; - - for ( let id in this.confidence ) { - total += this.confidence[id]; - } - - return this.confidenceTotal = Math.min(total, 100); - } } -if ( typeof module === 'object' ) { +if (typeof module === 'object') { module.exports = Wappalyzer; } diff --git a/src/wappalyzer.spec.js b/src/wappalyzer.spec.js new file mode 100644 index 000000000..f51d7fb10 --- /dev/null +++ b/src/wappalyzer.spec.js @@ -0,0 +1,278 @@ +/* eslint-env mocha */ + +const { assert, expect } = require('chai'); +const Wappalyzer = require('../src/wappalyzer'); + +const appsJson = { + appUrl: { + url: 'test', + }, + appCookies: { + cookies: { + test: 'test', + }, + }, + appUppercaseCookies: { + cookies: { + Test: 'Test', + }, + }, + appHeaders: { + headers: { + 'X-Powered-By': 'test', + }, + }, + appHtml: { + html: 'test v(\\d)\\;confidence:50\\;version:\\1', + implies: 'appImplies', + excludes: 'appExcludes', + }, + appMeta: { + meta: { + generator: 'test', + }, + }, + appScript: { + script: 'test', + }, + appJs: { + js: { + key: 'value', + }, + }, + appImplies: { + }, + appExcludes: { + html: 'test', + }, +}; + +const driverData = { + cookies: [ + { + name: 'test', + value: 'test', + domain: '', + path: '', + }, + ], + headers: { + 'x-powered-by': [ + 'test', + ], + }, + html: ' html test v1', + scripts: [ + 'test', + ], + js: { + appJs: { + key: [ + 'value', + ], + }, + }, +}; + +describe('Wappalyzer', () => { + describe('#analyze()', () => { + let apps; + + before(async () => { + const wappalyzer = new Wappalyzer(); + + wappalyzer.apps = appsJson; + + wappalyzer.parseJsPatterns(); + + wappalyzer.driver.displayApps = (detected) => { + apps = detected; + }; + + await wappalyzer.analyze({ canonical: 'test' }, driverData); + }); + + it('should identify technologies using URLs', () => { + expect(apps).to.have.any.keys('appUrl'); + }); + + it('should identify technologies using HTML', () => { + expect(apps).to.have.any.keys('appHtml'); + }); + + it('should identify technologies using meta tags', () => { + expect(apps).to.have.any.keys('appMeta'); + }); + + it('should identify technologies using script URLs', () => { + expect(apps).to.have.any.keys('appScript'); + }); + + it('should identify technologies using headers', () => { + expect(apps).to.have.any.keys('appHeaders'); + }); + + it('should identify technologies using cookies', () => { + expect(apps).to.have.any.keys('appCookies'); + }); + + it('should identify technologies using uppercase named cookies', () => { + expect(apps).to.have.any.keys('appUppercaseCookies'); + }); + + it('should identify technologies using JavaScript', () => { + expect(apps).to.have.any.keys('appJs'); + }); + + it('should return the implied technology', () => { + expect(apps).to.have.any.keys('appImplies'); + }); + + it('should not return the excluded technology', () => { + expect(apps).to.not.have.any.keys('appExcludes'); + }); + + it('should return the confidence value', () => { + assert.equal(apps.appHtml.confidenceTotal, 50); + }); + + it('should return the version number', () => { + assert.equal(apps.appHtml.version, '1'); + }); + + it('should analyze html', async () => { + const html = ` + + + + Page title | Html detection + + + +

Technologies Test Page | Html detection

+ + + + + + `; + const wappalyzer = new Wappalyzer(); + wappalyzer.apps = { + "Google Tag Manager": { + "html": [ + "googletagmanager\\.com/ns\\.html[^>]+>", + "" + ] + } + }; + var applications = null; + wappalyzer.driver = { + log () {}, + displayApps (detectedMap) { + applications = detectedMap; + } + }; + + await wappalyzer.analyze({ canonical: 'example.com' }, { html }); + assert.equal(applications['Google Tag Manager'].name, 'Google Tag Manager'); + }); + + it('should analyze scripts', async () => { + const scripts = [ + 'http://www.google-analytics.com/analytics.js', + 'http://example.com/assets/js/jquery.min.js' + ]; + const wappalyzer = new Wappalyzer(); + wappalyzer.apps = { + "Google Analytics": { + "cats": [ + 10 + ], + "script": "google-analytics\\.com\\/(?:ga|urchin|(analytics))\\.js\\;version:\\1?UA:" + }, + "jQuery": { + "script": [ + "jquery(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", + "/([\\d.]+)/jquery(?:\\.min)?\\.js\\;version:\\1", + "jquery.*\\.js(?:\\?ver(?:sion)?=([\\d.]+))?\\;version:\\1" + ] + } + }; + var applications = null; + wappalyzer.driver = { + log () {}, + displayApps (detectedMap) { + applications = detectedMap; + } + }; + + await wappalyzer.analyze({ canonical: 'example.com' }, { scripts }); + assert.equal(applications['Google Analytics'].name, 'Google Analytics'); + assert.equal(applications['jQuery'].name, 'jQuery'); + }); + + it('should analyze headers', async () => { + const headers = { + 'date': [ 'Thu, 01 Feb 2018 11:34:18 GMT' ], + 'connection': [ 'keep-alive' ], + 'x-powered-by': [ 'Express'], + 'etag': [ 'W/125-1jQLmiya7mfec43xR3Eb3pjdu64s' ], + 'content-length': [ '293' ], + 'content-type': [ 'text/html; charset=utf-8' ] + }; + const wappalyzer = new Wappalyzer(); + wappalyzer.apps = { + "Express": { + "headers": { + "X-Powered-By": "^Express$" + } + } + }; + var applications = null; + wappalyzer.driver = { + log () {}, + displayApps (detectedMap) { + applications = detectedMap; + } + }; + + await wappalyzer.analyze({ canonical: 'example.com' }, { headers }); + assert.equal(applications['Express'].name, 'Express'); + }); + + it('should analyze js globals', async () => { + const js = { + 'Moment.js': { 'moment': { '0': true } }, + 'Google Font API': { 'WebFonts': { '0': true } } + }; + const wappalyzer = new Wappalyzer(); + wappalyzer.apps = { + "Moment.js": { + "js": { + "moment": "", + "moment.version": "(.*)\\;version:\\1" + } + }, + "Google Font API": { + "js": { + "WebFonts": "" + } + } + }; + var applications = null; + wappalyzer.driver = { + log () {}, + displayApps (detectedMap) { + applications = detectedMap; + } + }; + + wappalyzer.parseJsPatterns(); + await wappalyzer.analyze({ canonical: 'example.com' }, { js }); + + assert.equal(applications['Google Font API'].name, 'Google Font API'); + assert.equal(applications['Moment.js'].name, 'Moment.js'); + }); + }); +}); diff --git a/test/analyze.spec.js b/test/analyze.spec.js deleted file mode 100644 index 99cf6a516..000000000 --- a/test/analyze.spec.js +++ /dev/null @@ -1,144 +0,0 @@ -/* eslint-env mocha */ - -'use strict'; - -const assert = require('chai').assert; -const Wappalyzer = require('../src/wappalyzer'); - -describe('should analyze website elements properly', function () { - - it('should analyze html', async () => { - const html = ` - - - - Page title | Html detection - - - -

Technologies Test Page | Html detection

- - - - - - `; - const wappalyzer = new Wappalyzer(); - wappalyzer.apps = { - "Google Tag Manager": { - "html": [ - "googletagmanager\\.com/ns\\.html[^>]+>", - "" - ] - } - }; - var applications = null; - wappalyzer.driver = { - log () {}, - displayApps (detectedMap) { - applications = detectedMap; - } - }; - - await wappalyzer.analyze({ canonical: 'example.com' }, { html }); - assert.equal(applications['Google Tag Manager'].name, 'Google Tag Manager'); - }); - - it('should analyze scripts', async () => { - const scripts = [ - 'http://www.google-analytics.com/analytics.js', - 'http://example.com/assets/js/jquery.min.js' - ]; - const wappalyzer = new Wappalyzer(); - wappalyzer.apps = { - "Google Analytics": { - "cats": [ - 10 - ], - "script": "google-analytics\\.com\\/(?:ga|urchin|(analytics))\\.js\\;version:\\1?UA:" - }, - "jQuery": { - "script": [ - "jquery(?:\\-|\\.)([\\d.]*\\d)[^/]*\\.js\\;version:\\1", - "/([\\d.]+)/jquery(?:\\.min)?\\.js\\;version:\\1", - "jquery.*\\.js(?:\\?ver(?:sion)?=([\\d.]+))?\\;version:\\1" - ] - } - }; - var applications = null; - wappalyzer.driver = { - log () {}, - displayApps (detectedMap) { - applications = detectedMap; - } - }; - - await wappalyzer.analyze({ canonical: 'example.com' }, { scripts }); - assert.equal(applications['Google Analytics'].name, 'Google Analytics'); - assert.equal(applications['jQuery'].name, 'jQuery'); - }); - - it('should analyze headers', async () => { - const headers = { - 'date': [ 'Thu, 01 Feb 2018 11:34:18 GMT' ], - 'connection': [ 'keep-alive' ], - 'x-powered-by': [ 'Express'], - 'etag': [ 'W/125-1jQLmiya7mfec43xR3Eb3pjdu64s' ], - 'content-length': [ '293' ], - 'content-type': [ 'text/html; charset=utf-8' ] - }; - const wappalyzer = new Wappalyzer(); - wappalyzer.apps = { - "Express": { - "headers": { - "X-Powered-By": "^Express$" - } - } - }; - var applications = null; - wappalyzer.driver = { - log () {}, - displayApps (detectedMap) { - applications = detectedMap; - } - }; - - await wappalyzer.analyze({ canonical: 'example.com' }, { headers }); - assert.equal(applications['Express'].name, 'Express'); - }); - - it('should analyze js globals', async () => { - const js = { - 'Moment.js': { 'moment': { '0': true } }, - 'Google Font API': { 'WebFonts': { '0': true } } - }; - const wappalyzer = new Wappalyzer(); - wappalyzer.apps = { - "Moment.js": { - "js": { - "moment": "", - "moment.version": "(.*)\\;version:\\1" - } - }, - "Google Font API": { - "js": { - "WebFonts": "" - } - } - }; - var applications = null; - wappalyzer.driver = { - log () {}, - displayApps (detectedMap) { - applications = detectedMap; - } - }; - - wappalyzer.parseJsPatterns(); - await wappalyzer.analyze({ canonical: 'example.com' }, { js }); - - assert.equal(applications['Google Font API'].name, 'Google Font API'); - assert.equal(applications['Moment.js'].name, 'Moment.js'); - }); -}); From 0357da70af2c3296fde6c45ef2dee2a4e10a3203 Mon Sep 17 00:00:00 2001 From: Daniel Zdziebko Date: Sun, 5 Jan 2020 21:30:23 +0100 Subject: [PATCH 5/5] Add category 66 - UI Frameworks to all languages --- src/drivers/webextension/_locales/ca/messages.json | 3 ++- src/drivers/webextension/_locales/de/messages.json | 3 ++- src/drivers/webextension/_locales/el/messages.json | 3 ++- src/drivers/webextension/_locales/en/messages.json | 3 ++- src/drivers/webextension/_locales/es/messages.json | 3 ++- src/drivers/webextension/_locales/fa/messages.json | 3 ++- src/drivers/webextension/_locales/fr/messages.json | 3 ++- src/drivers/webextension/_locales/gl_ES/messages.json | 3 ++- src/drivers/webextension/_locales/gr/messages.json | 3 ++- src/drivers/webextension/_locales/id/messages.json | 3 ++- src/drivers/webextension/_locales/it/messages.json | 3 ++- src/drivers/webextension/_locales/ja/messages.json | 3 ++- src/drivers/webextension/_locales/pt/messages.json | 3 ++- src/drivers/webextension/_locales/pt_BR/messages.json | 3 ++- src/drivers/webextension/_locales/ro/messages.json | 3 ++- src/drivers/webextension/_locales/ru/messages.json | 3 ++- src/drivers/webextension/_locales/sk/messages.json | 3 ++- src/drivers/webextension/_locales/tr/messages.json | 3 ++- src/drivers/webextension/_locales/uk/messages.json | 3 ++- src/drivers/webextension/_locales/uz/messages.json | 3 ++- src/drivers/webextension/_locales/zh_CN/messages.json | 3 ++- src/drivers/webextension/_locales/zh_TW/messages.json | 3 ++- 22 files changed, 44 insertions(+), 22 deletions(-) diff --git a/src/drivers/webextension/_locales/ca/messages.json b/src/drivers/webextension/_locales/ca/messages.json index 230c1b210..825dcf3e4 100644 --- a/src/drivers/webextension/_locales/ca/messages.json +++ b/src/drivers/webextension/_locales/ca/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Proxys invers" }, - "categoryName65": { "message": "Balanceigs de càrrega" } + "categoryName65": { "message": "Balanceigs de càrrega" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json index 86b804e81..f49ecc216 100644 --- a/src/drivers/webextension/_locales/de/messages.json +++ b/src/drivers/webextension/_locales/de/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/el/messages.json b/src/drivers/webextension/_locales/el/messages.json index 2f6b89d3e..6f46ccd03 100644 --- a/src/drivers/webextension/_locales/el/messages.json +++ b/src/drivers/webextension/_locales/el/messages.json @@ -74,5 +74,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json index 3edf9780c..2ed0c5ef2 100644 --- a/src/drivers/webextension/_locales/en/messages.json +++ b/src/drivers/webextension/_locales/en/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/es/messages.json b/src/drivers/webextension/_locales/es/messages.json index c6565b7b2..ee0a480ee 100644 --- a/src/drivers/webextension/_locales/es/messages.json +++ b/src/drivers/webextension/_locales/es/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/fa/messages.json b/src/drivers/webextension/_locales/fa/messages.json index d744e2893..f71e98e1a 100644 --- a/src/drivers/webextension/_locales/fa/messages.json +++ b/src/drivers/webextension/_locales/fa/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/fr/messages.json b/src/drivers/webextension/_locales/fr/messages.json index 1acf822ff..88a4ba138 100644 --- a/src/drivers/webextension/_locales/fr/messages.json +++ b/src/drivers/webextension/_locales/fr/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/gl_ES/messages.json b/src/drivers/webextension/_locales/gl_ES/messages.json index 1e6dc393f..6e54050a1 100644 --- a/src/drivers/webextension/_locales/gl_ES/messages.json +++ b/src/drivers/webextension/_locales/gl_ES/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Proxy inverso" }, - "categoryName65": { "message": "Balanceador de carga" } + "categoryName65": { "message": "Balanceador de carga" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/gr/messages.json b/src/drivers/webextension/_locales/gr/messages.json index f0204492c..6dceaf22c 100644 --- a/src/drivers/webextension/_locales/gr/messages.json +++ b/src/drivers/webextension/_locales/gr/messages.json @@ -74,5 +74,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/id/messages.json b/src/drivers/webextension/_locales/id/messages.json index 26834b8d5..31f4b64f7 100644 --- a/src/drivers/webextension/_locales/id/messages.json +++ b/src/drivers/webextension/_locales/id/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/it/messages.json b/src/drivers/webextension/_locales/it/messages.json index c579c112b..0f6f656d1 100644 --- a/src/drivers/webextension/_locales/it/messages.json +++ b/src/drivers/webextension/_locales/it/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/ja/messages.json b/src/drivers/webextension/_locales/ja/messages.json index 2861c8449..362b88f5f 100644 --- a/src/drivers/webextension/_locales/ja/messages.json +++ b/src/drivers/webextension/_locales/ja/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "リバースプロキシ" }, - "categoryName65": { "message": "ロードバランサー" } + "categoryName65": { "message": "ロードバランサー" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/pt/messages.json b/src/drivers/webextension/_locales/pt/messages.json index 03b415849..e358292b1 100644 --- a/src/drivers/webextension/_locales/pt/messages.json +++ b/src/drivers/webextension/_locales/pt/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/pt_BR/messages.json b/src/drivers/webextension/_locales/pt_BR/messages.json index 8b42ae1ef..217d81b16 100644 --- a/src/drivers/webextension/_locales/pt_BR/messages.json +++ b/src/drivers/webextension/_locales/pt_BR/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Proxy Reverso" }, - "categoryName65": { "message": "Balanceador de Carga" } + "categoryName65": { "message": "Balanceador de Carga" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/ro/messages.json b/src/drivers/webextension/_locales/ro/messages.json index 909af4fe9..68415aa06 100644 --- a/src/drivers/webextension/_locales/ro/messages.json +++ b/src/drivers/webextension/_locales/ro/messages.json @@ -74,5 +74,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index 39b57d5af..47e039095 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/sk/messages.json b/src/drivers/webextension/_locales/sk/messages.json index 7975aeceb..e07d4c928 100644 --- a/src/drivers/webextension/_locales/sk/messages.json +++ b/src/drivers/webextension/_locales/sk/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/tr/messages.json b/src/drivers/webextension/_locales/tr/messages.json index 032658adf..5ded59dd2 100644 --- a/src/drivers/webextension/_locales/tr/messages.json +++ b/src/drivers/webextension/_locales/tr/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Yük Dengeleyici" } + "categoryName65": { "message": "Yük Dengeleyici" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/uk/messages.json b/src/drivers/webextension/_locales/uk/messages.json index 04d0efcc2..176a02601 100644 --- a/src/drivers/webextension/_locales/uk/messages.json +++ b/src/drivers/webextension/_locales/uk/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/uz/messages.json b/src/drivers/webextension/_locales/uz/messages.json index fde8d6227..6557c08d1 100644 --- a/src/drivers/webextension/_locales/uz/messages.json +++ b/src/drivers/webextension/_locales/uz/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, "categoryName64": { "message": "Reverse Proxy" }, - "categoryName65": { "message": "Load Balancer" } + "categoryName65": { "message": "Load Balancer" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/zh_CN/messages.json b/src/drivers/webextension/_locales/zh_CN/messages.json index 1ddbfa35f..0d9c029d6 100644 --- a/src/drivers/webextension/_locales/zh_CN/messages.json +++ b/src/drivers/webextension/_locales/zh_CN/messages.json @@ -79,5 +79,6 @@ "categoryName62": { "message": "平台即服务(PaaS)" }, "categoryName63": { "message": "基础设施即服务(IaaS)" }, "categoryName64": { "message": "反向代理" }, - "categoryName65": { "message": "负载均衡" } + "categoryName65": { "message": "负载均衡" }, + "categoryName66": { "message": "UI Frameworks" } } diff --git a/src/drivers/webextension/_locales/zh_TW/messages.json b/src/drivers/webextension/_locales/zh_TW/messages.json index 0de6ab4fa..5d1a1992a 100644 --- a/src/drivers/webextension/_locales/zh_TW/messages.json +++ b/src/drivers/webextension/_locales/zh_TW/messages.json @@ -78,5 +78,6 @@ "categoryName62": { "message": "平台即服務(PaaS)" }, "categoryName63": { "message": "基礎設施即服務(IaaS)" }, "categoryName64": { "message": "反向代理伺服器" }, - "categoryName65": { "message": "負載平衡器" } + "categoryName65": { "message": "負載平衡器" }, + "categoryName66": { "message": "UI Frameworks" } }