Add Container, SaaS, Paas and IaaS categories. Add Amazon Web Services and Amazon ECS detection

main
Elbert Alias 6 years ago
parent 2cb284594f
commit 81bb646b2a

@ -537,6 +537,7 @@
"X-Amz-Cf-Id": "" "X-Amz-Cf-Id": ""
}, },
"icon": "Amazon-Cloudfront.svg", "icon": "Amazon-Cloudfront.svg",
"implies": "Amazon Web Services",
"website": "http://aws.amazon.com/cloudfront/" "website": "http://aws.amazon.com/cloudfront/"
}, },
"Amazon EC2": { "Amazon EC2": {
@ -547,16 +548,39 @@
"Server": "\\(Amazon\\)" "Server": "\\(Amazon\\)"
}, },
"icon": "aws-ec2.svg", "icon": "aws-ec2.svg",
"implies": "Amazon Web Services",
"website": "http://aws.amazon.com/ec2/" "website": "http://aws.amazon.com/ec2/"
}, },
"Amazon Web Services": {
"cats": [
62
],
"icon": "aws.svg",
"website": "https://aws.amazon.com/"
},
"Amazon ECS": {
"cats": [
63
],
"headers": {
"Server": "^ECS"
},
"icon": "aws.svg",
"implies": [
"Amazon Web Services",
"Docker"
],
"website": "https://aws.amazon.com/elasticloadbalancing/"
},
"Amazon ELB": { "Amazon ELB": {
"cats": [ "cats": [
31 63
], ],
"cookies": { "cookies": {
"AWSELB": "" "AWSELB": ""
}, },
"icon": "aws-elb.png", "icon": "aws-elb.png",
"implies": "Amazon Web Services",
"website": "https://aws.amazon.com/elasticloadbalancing/" "website": "https://aws.amazon.com/elasticloadbalancing/"
}, },
"Amazon S3": { "Amazon S3": {
@ -567,6 +591,7 @@
"Server": "^AmazonS3$" "Server": "^AmazonS3$"
}, },
"icon": "aws-s3.svg", "icon": "aws-s3.svg",
"implies": "Amazon Web Services",
"website": "http://aws.amazon.com/s3/" "website": "http://aws.amazon.com/s3/"
}, },
"Amber": { "Amber": {
@ -2548,9 +2573,9 @@
}, },
"Docker": { "Docker": {
"cats": [ "cats": [
28 60
], ],
"icon": "docker.png", "icon": "Docker.svg",
"implies": "Linux", "implies": "Linux",
"html": "<!-- This comment is expected by the docker HEALTHCHECK -->", "html": "<!-- This comment is expected by the docker HEALTHCHECK -->",
"website": "https://www.docker.com/" "website": "https://www.docker.com/"
@ -13040,6 +13065,22 @@
"59": { "59": {
"name": "JavaScript Libraries", "name": "JavaScript Libraries",
"priority": 9 "priority": 9
},
"60": {
"name": "Containers",
"priority": 8
},
"61": {
"name": "SaaS",
"priority": 8
},
"62": {
"name": "PaaS",
"priority": 8
},
"63": {
"name": "IaaS",
"priority": 8
} }
} }
} }

@ -1,114 +0,0 @@
const Zombie = require('zombie');
class Browser {
constructor(options) {
this.options = options;
this.browser = new Zombie({
proxy: options.proxy,
silent: true,
strictSSL: false,
userAgent: options.userAgent,
waitDuration: options.maxWait,
});
this.statusCode = null;
this.contentType = null;
this.headers = null;
this.statusCode = null;
this.contentType = null;
this.html = null;
this.scripts = null;
this.cookies = null;
this.window = this.browser.window;
this.document = this.browser.document;
this.browser.on('authenticate', (auth) => {
auth.username = this.options.username;
auth.password = this.options.password;
});
}
visit(url) {
return new Promise((resolve) => {
this.browser.visit(url, () => {
const resource = this.browser.resources.length
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
this.headers = this.getHeaders();
this.statusCode = resource ? resource.response.status : 0;
this.contentType = this.headers['content-type'] ? this.headers['content-type'].shift() : null;
this.html = this.getHtml();
this.scripts = this.getScripts();
this.cookies = this.getCookies();
resolve();
});
});
}
getHeaders() {
const headers = {};
const resource = this.browser.resources.length
? this.browser.resources.filter(_resource => _resource.response).shift() : null;
if (resource) {
// eslint-disable-next-line no-underscore-dangle
resource.response.headers._headers.forEach((header) => {
if (!headers[header[0]]) {
headers[header[0]] = [];
}
headers[header[0]].push(header[1]);
});
}
return headers;
}
getHtml() {
let html = '';
if (this.browser.document && this.browser.document.documentElement) {
try {
html = this.browser.html();
} catch (error) {
this.log(error.message, 'error');
}
}
return html;
}
getScripts() {
if (!this.browser.document || !this.browser.document.scripts) {
return [];
}
const scripts = Array.prototype.slice
.apply(this.browser.document.scripts)
.filter(script => script.src)
.map(script => script.src);
return scripts;
}
getCookies() {
const cookies = [];
if (this.browser.cookies) {
this.browser.cookies.forEach(cookie => cookies.push({
name: cookie.key,
value: cookie.value,
domain: cookie.domain,
path: cookie.path,
}));
}
return cookies;
}
}
export default Browser;

@ -1,6 +1,6 @@
{ {
"name": "wappalyzer", "name": "wappalyzer",
"version": "5.5.7", "version": "5.6.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Statischer Seitengenerator" }, "categoryName57": { "message": "Statischer Seitengenerator" },
"categoryName58": { "message": "Benutzer-Einbindung" }, "categoryName58": { "message": "Benutzer-Einbindung" },
"categoryName59": { "message": "JavaScript Bibliotheken" } "categoryName59": { "message": "JavaScript Bibliotheken" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -65,5 +65,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "کریپتوماینر" }, "categoryName56": { "message": "کریپتوماینر" },
"categoryName57": { "message": "تولید کننده سایت ایستا" }, "categoryName57": { "message": "تولید کننده سایت ایستا" },
"categoryName58": { "message": "آن بوردینگ کاربر" }, "categoryName58": { "message": "آن بوردینگ کاربر" },
"categoryName59": { "message": "کتابخانه های جاوا اسکریپت" } "categoryName59": { "message": "کتابخانه های جاوا اسکریپت" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Crypto-mineur" }, "categoryName56": { "message": "Crypto-mineur" },
"categoryName57": { "message": "Générateur de site statique" }, "categoryName57": { "message": "Générateur de site statique" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -65,5 +65,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Koparka kryptowalut" }, "categoryName56": { "message": "Koparka kryptowalut" },
"categoryName57": { "message": "Generator stron statycznych" }, "categoryName57": { "message": "Generator stron statycznych" },
"categoryName58": { "message": "Wdrażanie użytkownika" }, "categoryName58": { "message": "Wdrażanie użytkownika" },
"categoryName59": { "message": "Biblioteki JavaScript" } "categoryName59": { "message": "Biblioteki JavaScript" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Gerador de Site Estático" }, "categoryName57": { "message": "Gerador de Site Estático" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Minerador de cryptomoedas" }, "categoryName56": { "message": "Minerador de cryptomoedas" },
"categoryName57": { "message": "Gerador de sites estáticos" }, "categoryName57": { "message": "Gerador de sites estáticos" },
"categoryName58": { "message": "Integração com usuário" }, "categoryName58": { "message": "Integração com usuário" },
"categoryName59": { "message": "Biblioteca JavaScript" } "categoryName59": { "message": "Biblioteca JavaScript" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -65,5 +65,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -1,73 +1,77 @@
{ {
"categoryName1" : { "message" : "CMS" }, "categoryName1": { "message": "CMS" },
"categoryName2" : { "message" : "Форум" }, "categoryName2": { "message": "Форум" },
"categoryName3" : { "message" : "Менеджер БД" }, "categoryName3": { "message": "Менеджер БД" },
"categoryName4" : { "message" : "Документация" }, "categoryName4": { "message": "Документация" },
"categoryName5" : { "message" : "Виджет" }, "categoryName5": { "message": "Виджет" },
"categoryName6" : { "message" : "Электронная коммерция" }, "categoryName6": { "message": "Электронная коммерция" },
"categoryName7" : { "message" : "Фотогалерея" }, "categoryName7": { "message": "Фотогалерея" },
"categoryName8" : { "message" : "Вики" }, "categoryName8": { "message": "Вики" },
"categoryName9" : { "message" : "Панель управления хостингом" }, "categoryName9": { "message": "Панель управления хостингом" },
"categoryName10" : { "message" : "Аналитика" }, "categoryName10": { "message": "Аналитика" },
"categoryName11" : { "message" : "Блог" }, "categoryName11": { "message": "Блог" },
"categoryName12" : { "message" : "JS фреймворк" }, "categoryName12": { "message": "JS фреймворк" },
"categoryName13" : { "message" : "Баг трекер" }, "categoryName13": { "message": "Баг трекер" },
"categoryName14" : { "message" : "Видео плеер" }, "categoryName14": { "message": "Видео плеер" },
"categoryName15" : { "message" : "Система комментариев" }, "categoryName15": { "message": "Система комментариев" },
"categoryName16" : { "message" : "Капча" }, "categoryName16": { "message": "Капча" },
"categoryName17" : { "message" : "Шрифт" }, "categoryName17": { "message": "Шрифт" },
"categoryName18" : { "message" : "Веб фреймворк" }, "categoryName18": { "message": "Веб фреймворк" },
"categoryName19" : { "message" : "Прочее" }, "categoryName19": { "message": "Прочее" },
"categoryName20" : { "message" : "HTML редактор" }, "categoryName20": { "message": "HTML редактор" },
"categoryName21" : { "message" : "LMS" }, "categoryName21": { "message": "LMS" },
"categoryName22" : { "message" : "Веб сервер" }, "categoryName22": { "message": "Веб сервер" },
"categoryName23" : { "message" : "Кеширование" }, "categoryName23": { "message": "Кеширование" },
"categoryName24" : { "message" : "WYSIWYG редактор" }, "categoryName24": { "message": "WYSIWYG редактор" },
"categoryName25" : { "message" : "JS графика" }, "categoryName25": { "message": "JS графика" },
"categoryName26" : { "message" : "Мобильный фреймворк" }, "categoryName26": { "message": "Мобильный фреймворк" },
"categoryName27" : { "message" : "Язык программирования" }, "categoryName27": { "message": "Язык программирования" },
"categoryName28" : { "message" : "Операционная система" }, "categoryName28": { "message": "Операционная система" },
"categoryName29" : { "message" : "Поисковый движок" }, "categoryName29": { "message": "Поисковый движок" },
"categoryName30" : { "message" : "Веб почта" }, "categoryName30": { "message": "Веб почта" },
"categoryName31" : { "message" : "CDN" }, "categoryName31": { "message": "CDN" },
"categoryName32" : { "message" : "Управление маркетингом" }, "categoryName32": { "message": "Управление маркетингом" },
"categoryName33" : { "message" : "Расширение Веб сервера" }, "categoryName33": { "message": "Расширение Веб сервера" },
"categoryName34" : { "message" : "База данных" }, "categoryName34": { "message": "База данных" },
"categoryName35" : { "message" : "Карта" }, "categoryName35": { "message": "Карта" },
"categoryName36" : { "message" : "Рекламная сеть" }, "categoryName36": { "message": "Рекламная сеть" },
"categoryName37" : { "message" : "Сетевая служба" }, "categoryName37": { "message": "Сетевая служба" },
"categoryName38" : { "message" : "Медиа сервер" }, "categoryName38": { "message": "Медиа сервер" },
"categoryName39" : { "message" : "Вебкамера" }, "categoryName39": { "message": "Вебкамера" },
"categoryName40" : { "message" : "Принтер" }, "categoryName40": { "message": "Принтер" },
"categoryName41" : { "message" : "Платёжная система" }, "categoryName41": { "message": "Платёжная система" },
"categoryName42" : { "message" : "Менеджер тэгов" }, "categoryName42": { "message": "Менеджер тэгов" },
"categoryName43" : { "message" : "Paywall" }, "categoryName43": { "message": "Paywall" },
"categoryName44" : { "message" : "Система непрерывной интеграции" }, "categoryName44": { "message": "Система непрерывной интеграции" },
"categoryName45" : { "message" : "Система SCADA" }, "categoryName45": { "message": "Система SCADA" },
"categoryName46" : { "message" : "Удаленное управление" }, "categoryName46": { "message": "Удаленное управление" },
"categoryName47" : { "message" : "Утилита для разработчиков" }, "categoryName47": { "message": "Утилита для разработчиков" },
"categoryName48" : { "message" : "Сетевое хранилище" }, "categoryName48": { "message": "Сетевое хранилище" },
"categoryName49" : { "message" : "Граббер контента" }, "categoryName49": { "message": "Граббер контента" },
"categoryName50" : { "message" : "Управление документами" }, "categoryName50": { "message": "Управление документами" },
"categoryName51" : { "message": "Генератор лендингов" }, "categoryName51": { "message": "Генератор лендингов" },
"categoryName52" : { "message": "Live Chat" }, "categoryName52": { "message": "Live Chat" },
"categoryName53" : { "message": "CRM" }, "categoryName53": { "message": "CRM" },
"github" : { "message" : "Форкнуть на GitHub!" }, "github": { "message": "Форкнуть на GitHub!" },
"noAppsDetected" : { "message" : "Нет данных о сайте" }, "noAppsDetected": { "message": "Нет данных о сайте" },
"nothingToDo" : { "message" : "Тут нечего искать" }, "nothingToDo": { "message": "Тут нечего искать" },
"optionTracking" : { "message" : "Анонимно отправлять статистику распознанных данных на сервер (для исследований)" }, "optionTracking": { "message": "Анонимно отправлять статистику распознанных данных на сервер (для исследований)" },
"optionDynamicIcon" : { "message": "Использовать значок приложения вместо логотипа Wappalyzer" }, "optionDynamicIcon": { "message": "Использовать значок приложения вместо логотипа Wappalyzer" },
"optionUpgradeMessage" : { "message" : "Оповещать меня об обновлениях" }, "optionUpgradeMessage": { "message": "Оповещать меня об обновлениях" },
"options" : { "message" : "Настройки" }, "options": { "message": "Настройки" },
"optionsSave" : { "message" : "Сохранить" }, "optionsSave": { "message": "Сохранить" },
"optionsSaved" : { "message" : "Успешно сохранено!" }, "optionsSaved": { "message": "Успешно сохранено!" },
"twitter" : { "message" : "Следите за новостями в Твиттере" }, "twitter": { "message": "Следите за новостями в Твиттере" },
"website" : { "message" : "Перейти на Wappalyzer.com" }, "website": { "message": "Перейти на Wappalyzer.com" },
"categoryPin": { "message": "Always show icon" }, "categoryPin": { "message": "Always show icon" },
"categoryName54": { "message": "SEO" }, "categoryName54": { "message": "SEO" },
"categoryName55": { "message": "Бухгалтерский учёт" }, "categoryName55": { "message": "Бухгалтерский учёт" },
"categoryName56": { "message": "Криптомайнер" }, "categoryName56": { "message": "Криптомайнер" },
"categoryName57": { "message": "Генератор статических сайтов" }, "categoryName57": { "message": "Генератор статических сайтов" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "Cryptominer" }, "categoryName56": { "message": "Cryptominer" },
"categoryName57": { "message": "Static Site Generator" }, "categoryName57": { "message": "Static Site Generator" },
"categoryName58": { "message": "User Onboarding" }, "categoryName58": { "message": "User Onboarding" },
"categoryName59": { "message": "JavaScript Libraries" } "categoryName59": { "message": "JavaScript Libraries" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "加密货币挖矿器" }, "categoryName56": { "message": "加密货币挖矿器" },
"categoryName57": { "message": "静态网站生成器" }, "categoryName57": { "message": "静态网站生成器" },
"categoryName58": { "message": "用户引导" }, "categoryName58": { "message": "用户引导" },
"categoryName59": { "message": "JavaScript 库" } "categoryName59": { "message": "JavaScript 库" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -69,5 +69,9 @@
"categoryName56": { "message": "加密貨幣礦工" }, "categoryName56": { "message": "加密貨幣礦工" },
"categoryName57": { "message": "靜態網站產生器" }, "categoryName57": { "message": "靜態網站產生器" },
"categoryName58": { "message": "使用者指引" }, "categoryName58": { "message": "使用者指引" },
"categoryName59": { "message": "JavaScript 函式庫" } "categoryName59": { "message": "JavaScript 函式庫" },
"categoryName60": { "message": "Containers" },
"categoryName61": { "message": "SaaS" },
"categoryName62": { "message": "PaaS" },
"categoryName63": { "message": "IaaS" }
} }

@ -0,0 +1,18 @@
<svg width="2491" height="1415" viewBox="0 0 2491 1415" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1435.43 446.797V451.68H1440.31H1658.73V675.068V679.951H1663.61H1776.51C1829.22 679.951 1883.37 670.568 1933.23 653.677L1933.23 653.677C1957.71 645.37 1985.28 633.792 2009.61 619.154L2014.29 616.338L2010.97 612.001C1980.15 571.768 1964.28 520.759 1959.61 470.186L1959.61 470.185C1953.22 401.14 1967.29 312.037 2013.21 258.936L2033.6 235.351L2057.9 254.889L2057.9 254.891C2127.76 311.016 2185.96 389.028 2196.19 477.408L2196.86 483.166L2202.42 481.53C2286.19 456.892 2384.32 462.819 2457.7 505.167L2460.14 500.938L2457.7 505.167L2484.34 520.541L2470.32 547.911C2408.38 668.793 2278.67 706.796 2150.35 700.075L2146.87 699.892L2145.57 703.132C1953.12 1182.47 1534.27 1409.57 1025.52 1409.57C763.051 1409.57 523.044 1311.52 386.405 1079.49L386.398 1079.47L384.24 1075.83L364.29 1035.23C318.142 933.144 302.775 821.231 313.192 709.281L315.932 679.951H502.441H507.324V675.068V451.68H725.732H730.615V446.797V228.379H1172.34H1177.23V223.496V5.07812H1435.43V446.797Z" fill="#364548" stroke="black" stroke-width="9.76562"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2163.77 531.25C2178.74 414.883 2091.66 323.486 2037.66 280.088C1975.42 352.041 1965.75 540.615 2063.39 620.01C2008.9 668.408 1894.08 712.275 1776.51 712.275H345.41C333.984 835 355.527 948.018 404.736 1044.75L421.016 1074.53C431.323 1092.01 442.587 1108.91 454.756 1125.16C513.594 1128.94 567.842 1130.23 617.471 1129.14H617.49C715.019 1126.99 794.6 1115.47 854.912 1094.57C859.176 1093.24 863.788 1093.63 867.774 1095.64C871.76 1097.65 874.806 1101.14 876.269 1105.36C877.731 1109.58 877.495 1114.2 875.611 1118.25C873.727 1122.3 870.342 1125.45 866.172 1127.05C858.144 1129.84 849.785 1132.44 841.152 1134.91H841.123C793.633 1148.48 742.705 1157.6 677.002 1161.65C680.908 1161.72 672.939 1162.24 672.92 1162.24C670.684 1162.38 667.871 1162.71 665.625 1162.82C639.766 1164.28 611.855 1164.58 583.32 1164.58C552.109 1164.58 521.377 1163.99 487.012 1162.24L486.133 1162.82C605.371 1296.85 791.816 1377.23 1025.53 1377.23C1520.14 1377.23 1939.67 1157.97 2125.45 665.732C2257.25 679.258 2383.92 645.645 2441.53 533.164C2349.76 480.205 2231.73 497.09 2163.77 531.25" fill="#22A0C8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M2163.77 531.25C2178.74 414.883 2091.66 323.486 2037.66 280.088C1975.42 352.041 1965.75 540.615 2063.39 620.01C2008.9 668.408 1894.08 712.275 1776.51 712.275H430.156C424.316 900.225 494.063 1042.89 617.461 1129.14H617.49C715.02 1126.99 794.6 1115.47 854.912 1094.57C859.176 1093.24 863.788 1093.63 867.774 1095.64C871.76 1097.65 874.806 1101.14 876.269 1105.36C877.731 1109.58 877.495 1114.2 875.611 1118.25C873.727 1122.3 870.342 1125.45 866.172 1127.05C858.145 1129.84 849.785 1132.44 841.152 1134.91H841.123C793.633 1148.48 738.33 1158.77 672.627 1162.82C672.607 1162.82 671.035 1161.31 671.016 1161.31C839.346 1247.66 1083.42 1247.34 1363.25 1139.85C1677.02 1019.31 1969 789.658 2172.72 526.992C2169.66 528.379 2166.67 529.795 2163.77 531.25" fill="#37B1D9"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M348.096 861.387C356.982 927.129 376.221 988.682 404.736 1044.75L421.016 1074.53C431.322 1092.01 442.586 1108.92 454.756 1125.16C513.604 1128.94 567.852 1130.23 617.49 1129.14C715.02 1126.99 794.6 1115.47 854.912 1094.57C859.176 1093.24 863.788 1093.63 867.774 1095.64C871.76 1097.65 874.806 1101.14 876.269 1105.36C877.731 1109.58 877.495 1114.2 875.611 1118.25C873.727 1122.3 870.342 1125.45 866.172 1127.05C858.145 1129.84 849.785 1132.44 841.152 1134.91H841.123C793.633 1148.48 738.623 1158.18 672.92 1162.25C670.664 1162.38 666.729 1162.41 664.453 1162.54C638.613 1163.98 610.986 1164.87 582.441 1164.87C551.24 1164.87 519.326 1164.28 484.98 1162.53C604.219 1296.55 791.816 1377.23 1025.53 1377.23C1448.96 1377.23 1817.36 1216.5 2031.18 861.387H348.096Z" fill="#1B81A5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M443.037 861.387C468.35 976.816 529.18 1067.43 617.49 1129.14C715.02 1126.99 794.6 1115.47 854.912 1094.57C859.176 1093.24 863.788 1093.63 867.774 1095.64C871.76 1097.65 874.806 1101.14 876.269 1105.36C877.731 1109.58 877.495 1114.2 875.611 1118.25C873.727 1122.3 870.342 1125.45 866.172 1127.05C858.145 1129.84 849.785 1132.44 841.152 1134.91H841.123C793.633 1148.48 737.461 1158.18 671.748 1162.25C840.068 1248.57 1083.44 1247.33 1363.25 1139.85C1532.53 1074.81 1695.45 977.998 1841.61 861.387H443.037Z" fill="#1D91B4"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M539.648 484.014H733.184V677.549H539.648V484.014ZM555.771 500.146H571.045V661.426H555.771V500.146ZM584.482 500.146H600.371V661.426H584.492V500.146H584.482ZM613.799 500.146H629.688V661.426H613.799V500.146ZM643.135 500.146H659.014V661.426H643.135V500.146ZM672.461 500.146H688.34V661.426H672.461V500.146ZM701.777 500.146H717.061V661.426H701.777V500.146ZM762.949 260.713H956.494V454.238H762.939V260.713H762.949ZM779.082 276.846H794.346V438.115H779.082V276.846ZM807.793 276.846H823.672V438.115H807.803V276.846H807.793ZM837.109 276.846H852.988V438.115H837.109V276.846ZM866.436 276.846H882.314V438.115H866.436V276.846ZM895.762 276.846H911.65V438.115H895.762V276.846ZM925.078 276.846H940.371V438.115H925.078V276.846Z" fill="#23A3C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M762.949 486.014H956.494V679.549H762.939V486.014H762.949ZM779.082 502.146H794.346V663.426H779.082V502.146ZM807.793 502.146H823.672V663.426H807.803V502.146H807.793ZM837.109 502.146H852.988V663.426H837.109V502.146ZM866.436 502.146H882.314V663.426H866.436V502.146ZM895.762 502.146H911.65V663.426H895.762V502.146ZM925.078 502.146H940.371V663.426H925.078V502.146Z" fill="#34BBDE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M986.26 484.014H1179.79V677.549H986.26V484.014ZM1002.38 500.146H1017.65V661.426H1002.38V500.146ZM1031.09 500.146H1046.97V661.426H1031.09V500.146ZM1060.42 500.146H1076.3V661.426H1060.42V500.146ZM1089.75 500.146H1105.63V661.426H1089.75V500.146ZM1119.06 500.146H1134.96V661.426H1119.06V500.146ZM1148.39 500.146H1163.66V661.426H1148.39V500.146V500.146Z" fill="#23A3C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M986.26 260.713H1179.79V454.238H986.26V260.713ZM1002.38 276.846H1017.65V438.115H1002.38V276.846ZM1031.09 276.846H1046.97V438.115H1031.09V276.846ZM1060.42 276.846H1076.3V438.115H1060.42V276.846ZM1089.75 276.846H1105.63V438.115H1089.75V276.846ZM1119.06 276.846H1134.96V438.115H1119.06V276.846ZM1148.39 276.846H1163.66V438.115H1148.39V276.846V276.846ZM1209.56 484.014H1403.1V677.549H1209.56V484.014ZM1225.69 500.146H1240.96V661.426H1225.69V500.146ZM1254.4 500.146H1270.28V661.426H1254.4V500.146ZM1283.72 500.146H1299.6V661.426H1283.72V500.146ZM1313.05 500.146H1328.94V661.426H1313.05V500.146ZM1342.37 500.146H1358.26V661.426H1342.37V500.146ZM1371.7 500.146H1386.97V661.426H1371.7V500.146Z" fill="#34BBDE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1209.56 260.713H1403.1V454.238H1209.56V260.713ZM1225.69 276.846H1240.96V438.115H1225.69V276.846ZM1254.4 276.846H1270.28V438.115H1254.4V276.846ZM1283.72 276.846H1299.6V438.115H1283.72V276.846ZM1313.05 276.846H1328.94V438.115H1313.05V276.846ZM1342.37 276.846H1358.26V438.115H1342.37V276.846ZM1371.7 276.846H1386.97V438.115H1371.7V276.846Z" fill="#23A3C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1209.56 37.4023H1403.1V230.957H1209.56V37.4023ZM1225.69 53.5254H1240.96V214.814H1225.69V53.5156V53.5254ZM1254.4 53.5254H1270.28V214.814H1254.4V53.5156V53.5254ZM1283.72 53.5254H1299.6V214.814H1283.72V53.5156V53.5254ZM1313.05 53.5254H1328.94V214.814H1313.05V53.5156V53.5254ZM1342.37 53.5254H1358.26V214.814H1342.37V53.5156V53.5254ZM1371.7 53.5254H1386.97V214.814H1371.7V53.5156V53.5254Z" fill="#34BBDE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1432.86 484.014H1626.4V677.549H1432.86V484.014ZM1448.97 500.146H1464.26V661.426H1448.98V500.146H1448.97ZM1477.69 500.146H1493.57V661.426H1477.7V500.146H1477.69ZM1507.02 500.146H1522.91V661.426H1507.02V500.146ZM1536.34 500.146H1552.23V661.426H1536.34V500.146ZM1565.67 500.146H1581.55V661.426H1565.67V500.146ZM1594.99 500.146H1610.26V661.426H1594.99V500.146Z" fill="#23A3C2"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M944.375 991.328C951.448 991.234 958.468 992.545 965.03 995.187C971.591 997.829 977.562 1001.75 982.597 1006.72C987.631 1011.68 991.628 1017.6 994.355 1024.13C997.083 1030.66 998.487 1037.66 998.486 1044.73C998.484 1051.8 997.078 1058.81 994.348 1065.33C991.618 1071.86 987.619 1077.77 982.583 1082.74C977.546 1087.71 971.574 1091.62 965.012 1094.26C958.449 1096.9 951.428 1098.21 944.356 1098.12C930.32 1097.92 916.924 1092.21 907.068 1082.22C897.211 1072.22 891.686 1058.75 891.689 1044.71C891.691 1030.67 897.221 1017.2 907.081 1007.21C916.942 997.222 930.339 991.515 944.375 991.328Z" fill="#D3ECEC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M944.375 1006.47C949.258 1006.47 953.916 1007.39 958.213 1009.06C955.248 1010.78 952.932 1013.43 951.624 1016.6C950.315 1019.77 950.087 1023.28 950.973 1026.6C951.86 1029.91 953.813 1032.83 956.53 1034.93C959.247 1037.02 962.577 1038.15 966.006 1038.16C971.914 1038.16 977.041 1034.89 979.697 1030.05C982.842 1037.62 983.467 1046.01 981.48 1053.97C979.492 1061.93 974.998 1069.04 968.66 1074.25C962.323 1079.45 954.478 1082.48 946.285 1082.89C938.092 1083.3 929.986 1081.06 923.163 1076.51C916.34 1071.95 911.162 1065.33 908.395 1057.6C905.628 1049.88 905.418 1041.47 907.796 1033.62C910.174 1025.77 915.013 1018.9 921.6 1014.01C928.187 1009.12 936.172 1006.48 944.375 1006.47V1006.47ZM0 880.684H2483.66C2429.59 866.973 2312.57 848.437 2331.87 777.559C2233.53 891.348 1996.39 857.393 1936.53 801.289C1869.89 897.949 1481.9 861.201 1454.84 785.898C1371.29 883.955 1112.39 883.955 1028.84 785.898C1001.76 861.201 613.779 897.949 547.129 801.279C487.285 857.393 250.156 891.348 151.816 777.568C171.113 848.437 54.0918 866.973 0 880.693" fill="#364548"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M1086.3 1376.07C954.072 1313.33 881.504 1228.03 841.123 1134.92C792.002 1148.94 732.969 1157.9 664.365 1161.75C638.525 1163.19 611.338 1163.94 582.822 1163.94C549.932 1163.94 515.273 1162.96 478.887 1161.04C600.146 1282.23 749.316 1375.53 1025.53 1377.23C1045.92 1377.23 1066.15 1376.84 1086.3 1376.07" fill="#BDD9D7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M890.234 1220.84C871.943 1196.01 854.199 1164.79 841.152 1134.9C792.031 1148.94 732.979 1157.9 664.365 1161.76C711.494 1187.33 778.887 1211.04 890.244 1220.84" fill="#D3ECEC"/>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="2273" viewBox="0 0 1100 1000"><path d="M2 776c3.333-5.333 8.666-5.667 16-1 166.666 96.667 348 145 544 145 130.666 0 259.666-24.333 387-73 3.333-1.333 8.166-3.333 14.5-6 6.333-2.667 10.833-4.667 13.5-6 10-4 17.833-2 23.5 6 5.666 8 3.833 15.333-5.5 22-12 8.667-27.334 18.667-46 30-57.334 34-121.334 60.333-192 79-70.667 18.667-139.667 28-207 28-104 0-202.334-18.167-295-54.5C162.333 909.167 79.333 858 6 792c-4-3.333-6-6.667-6-10 0-2 .666-4 2-6zm301-285c0-46 11.333-85.333 34-118 22.666-32.667 53.666-57.333 93-74 36-15.333 80.333-26.333 133-33 18-2 47.333-4.667 88-8v-17c0-42.667-4.667-71.333-14-86-14-20-36-30-66-30h-8c-22 2-41 9-57 21s-26.334 28.667-31 50c-2.667 13.333-9.334 21-20 23l-115-14c-11.334-2.667-17-8.667-17-18 0-2 .333-4.333 1-7 11.333-59.333 39.166-103.333 83.5-132C451.833 19.333 503.666 3.333 563 0h25c76 0 135.333 19.667 178 59a190.52 190.52 0 0 1 18.5 21.5c5.666 7.667 10.166 14.5 13.5 20.5 3.333 6 6.333 14.667 9 26 2.666 11.333 4.666 19.167 6 23.5 1.333 4.333 2.333 13.667 3 28 .666 14.333 1 22.833 1 25.5v242c0 17.333 2.5 33.167 7.5 47.5s9.833 24.667 14.5 31c4.666 6.333 12.333 16.5 23 30.5 4 6 6 11.333 6 16 0 5.333-2.667 10-8 14-55.334 48-85.334 74-90 78-8 6-17.667 6.667-29 2-9.334-8-17.5-15.667-24.5-23s-12-12.667-15-16-7.834-9.833-14.5-19.5c-6.667-9.667-11.334-16.167-14-19.5-37.334 40.667-74 66-110 76-22.667 6.667-50.667 10-84 10-51.334 0-93.5-15.833-126.5-47.5S303 549 303 491zm172-20c0 26 6.5 46.833 19.5 62.5S525 557 547 557c2 0 4.833-.333 8.5-1 3.666-.667 6.166-1 7.5-1 28-7.333 49.666-25.333 65-54 7.333-12.667 12.833-26.5 16.5-41.5 3.666-15 5.666-27.167 6-36.5.333-9.333.5-24.667.5-46v-25c-38.667 0-68 2.667-88 8-58.667 16.667-88 53.667-88 111zm420 322c1.333-2.667 3.333-5.333 6-8 16.666-11.333 32.666-19 48-23 25.333-6.667 50-10.333 74-11 6.666-.667 13-.333 19 1 30 2.667 48 7.667 54 15 2.666 4 4 10 4 18v7c0 23.333-6.334 50.833-19 82.5-12.667 31.667-30.334 57.167-53 76.5-3.334 2.667-6.334 4-9 4-1.334 0-2.667-.333-4-1-4-2-5-5.667-3-11 24.666-58 37-98.333 37-121 0-7.333-1.334-12.667-4-16-6.667-8-25.334-12-56-12-11.334 0-24.667.667-40 2-16.667 2-32 4-46 6-4 0-6.667-.667-8-2-1.334-1.333-1.667-2.667-1-4 0-.667.333-1.667 1-3z"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Loading…
Cancel
Save