From 93775403918cf8a994b421f403ab327545371f09 Mon Sep 17 00:00:00 2001 From: nurbek Date: Wed, 17 Feb 2021 12:06:35 +0600 Subject: [PATCH 1/4] Fix validation error --- schema.json | 3 +++ src/technologies.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/schema.json b/schema.json index 82f938070..ad056b728 100644 --- a/schema.json +++ b/schema.json @@ -223,6 +223,9 @@ }, "icon": { "$ref": "#/definitions/non-empty-non-blank-string" + }, + "xhr": { + "$ref": "#/definitions/non-empty-non-blank-string" } } } diff --git a/src/technologies.json b/src/technologies.json index 2eaf2275f..d6365da7d 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -15493,7 +15493,7 @@ 6 ], "pricing": [ - "medium", + "mid", "recurring" ], "saas": true, From abddd9b23adabba90148ee5e165a7f8043717390 Mon Sep 17 00:00:00 2001 From: nurbek Date: Sat, 20 Feb 2021 00:21:02 +0600 Subject: [PATCH 2/4] Add new category, Update category previews added tech , update ru _locales --- src/drivers/schema.json | 234 ++++++++++++++++++ .../webextension/_locales/en/messages.json | 3 +- .../webextension/_locales/ru/messages.json | 12 +- 3 files changed, 242 insertions(+), 7 deletions(-) create mode 100644 src/drivers/schema.json diff --git a/src/drivers/schema.json b/src/drivers/schema.json new file mode 100644 index 000000000..ad056b728 --- /dev/null +++ b/src/drivers/schema.json @@ -0,0 +1,234 @@ +{ + "title": "Wappalyzer schema", + "definitions": { + "non-empty-non-blank-string": { + "type": "string", + "pattern": "^(?!\\s*$).+" + } + }, + "type": "object", + "additionalProperties": false, + "required": ["technologies", "categories"], + "properties": { + "$schema": { + "type": "string" + }, + "categories": { + "type": "object", + "minProperties": 64, + "additionalProperties": false, + "patternProperties": { + "^[0-9]+$": { + "type": "object", + "properties": { + "priority": { + "type": "number" + }, + "name": { + "type": "string" + } + } + } + } + }, + "technologies": { + "type": "object", + "additionalProperties": { + "additionalProperties": false, + "required": ["cats","website"], + "properties": { + "description": { + "type": "string", + "pattern": "^.{0,500}$" + }, + "oss": { + "type": "boolean" + }, + "saas": { + "type": "boolean" + }, + "pricing": { + "type": "array", + "items": { + "type": "string", + "pattern": "^(low|mid|high|freemium|poa|payg|onetime|recurring)$" + } + }, + "cats": { + "type": "array", + "items": { + "type": "number" + }, + "minItems": 1 + }, + "cpe": { + "$ref": "#/definitions/non-empty-non-blank-string" + }, + "cookies": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + }, + "additionalProperties": { + "type": "string" + } + } + }, + "js": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + }, + "additionalProperties": { + "type": "string" + } + } + }, + "dom": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + } + } + }, + "dns": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + } + } + }, + "headers": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + }, + "additionalProperties": { + "type": "string" + } + } + }, + "html": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "css": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "robots": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "certIssuer": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "excludes": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "implies": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "meta": { + "type": "object", + "additionalProperties": false, + "patternProperties": { + "^.+$": { + }, + "additionalProperties": { + "type": "string" + } + } + }, + "scripts": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + }, + { + "$ref": "#/definitions/non-empty-non-blank-string" + } + ] + }, + "url": { + "$ref": "#/definitions/non-empty-non-blank-string" + }, + "website": { + "$ref": "#/definitions/non-empty-non-blank-string" + }, + "icon": { + "$ref": "#/definitions/non-empty-non-blank-string" + }, + "xhr": { + "$ref": "#/definitions/non-empty-non-blank-string" + } + } + } + } + } +} diff --git a/src/drivers/webextension/_locales/en/messages.json b/src/drivers/webextension/_locales/en/messages.json index f4430eef6..411afba68 100644 --- a/src/drivers/webextension/_locales/en/messages.json +++ b/src/drivers/webextension/_locales/en/messages.json @@ -93,5 +93,6 @@ "categoryName72": { "message": "Appointment scheduling" }, "categoryName73": { "message": "Surveys" }, "categoryName74": { "message": "A/B testing" }, - "categoryName75": { "message": "Email" } + "categoryName75": { "message": "Email" }, + "categoryName76": { "message": "Personalization" } } diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index a1561c268..b99fa3af9 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -87,11 +87,11 @@ "categoryName66": { "message": "UI Фреймворк" }, "categoryName67": { "message": "Соответствие cookie" }, "categoryName68": { "message": "Доступность" }, - "categoryName69": { "message": "Social logins" }, + "categoryName69": { "message": "Логин через социальные сети" }, "categoryName70": { "message": "SSL/TLS certificate authorities" }, - "categoryName71": { "message": "Affiliate programs" }, - "categoryName72": { "message": "Appointment scheduling" }, - "categoryName73": { "message": "Surveys" }, - "categoryName74": { "message": "A/B testing" }, - "categoryName75": { "message": "Email" } + "categoryName71": { "message": "Партнерская программы" }, + "categoryName72": { "message": "Сервисы расписания и бронирования" }, + "categoryName73": { "message": "Опросы" }, + "categoryName74": { "message": "A/B тестирование" }, + "categoryName75": { "message": "Персонализация" } } From d0d64eab394b964ef5b15ff37c03b252bdea285f Mon Sep 17 00:00:00 2001 From: nurbek Date: Sat, 20 Feb 2021 00:25:00 +0600 Subject: [PATCH 3/4] ru _locales fix --- src/drivers/webextension/_locales/ru/messages.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drivers/webextension/_locales/ru/messages.json b/src/drivers/webextension/_locales/ru/messages.json index b99fa3af9..f4eff0f2a 100644 --- a/src/drivers/webextension/_locales/ru/messages.json +++ b/src/drivers/webextension/_locales/ru/messages.json @@ -93,5 +93,6 @@ "categoryName72": { "message": "Сервисы расписания и бронирования" }, "categoryName73": { "message": "Опросы" }, "categoryName74": { "message": "A/B тестирование" }, - "categoryName75": { "message": "Персонализация" } + "categoryName75": { "message": "Email" }, + "categoryName76": { "message": "Персонализация" } } From 224493298471eb294db3346ccc9e0d411a5530ab Mon Sep 17 00:00:00 2001 From: nurbek Date: Sat, 20 Feb 2021 00:34:55 +0600 Subject: [PATCH 4/4] Update technologies.json --- src/technologies.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/technologies.json b/src/technologies.json index d6365da7d..6493ac9fd 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -288,6 +288,10 @@ "75": { "name": "Email", "priority": 9 + }, + "76": { + "name": "Personalization", + "priority": 9 } }, "technologies": { @@ -3713,8 +3717,7 @@ }, "Clerk.io": { "cats": [ - 10, - 6 + 76 ], "description": "Clerk.io is an all-in-one ecommerce personalization platform.", "icon": "Clerk.io.svg", @@ -5219,7 +5222,8 @@ }, "Dynamic Yield": { "cats": [ - 74 + 74, + 76 ], "cookies": { "_dy_geo": "", @@ -9065,7 +9069,7 @@ }, "Kibo Personalization": { "cats": [ - 10, + 76, 74 ], "description": "Kibo Personalization is a omnichannel personalization software powered by machine learning to deliver individualized customer experiences and powered by Monetate and Certona.", @@ -11693,7 +11697,7 @@ }, "Nosto": { "cats": [ - 32, + 76, 74 ], "description": "Nosto is an ecommerce platform providing product recommendations based on individual behavioral data.", @@ -13715,7 +13719,8 @@ }, "Qubit": { "cats": [ - 74 + 74, + 76 ], "description": "Qubit is a SaaS based persuasive personalization at scale services.", "icon": "Qubit.png",