diff --git a/bin/validate.js b/bin/validate.js
index 75a674638..f28ecb17a 100755
--- a/bin/validate.js
+++ b/bin/validate.js
@@ -58,6 +58,7 @@ try {
}
})
+ // Validate regular expression
try {
// eslint-disable-next-line no-new
new RegExp(regex)
@@ -65,6 +66,7 @@ try {
throw new Error(`${error.message} (${id})`)
}
+ // Count capture groups
const groups = new RegExp(`${regex}|`).exec('').length - 1
if (groups > maxGroups) {
diff --git a/package.json b/package.json
index 11b8fbaff..1fb93d26b 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,8 @@
"dependencies": {
"@prantlf/jsonlint": "^10.2.0",
"adm-zip": "^0.4.14",
- "convert-svg-to-png": "^0.5.0"
+ "convert-svg-to-png": "^0.5.0",
+ "languagedetect": "^2.0.0"
},
"devDependencies": {
"@nuxtjs/eslint-config": "^1.0.1",
@@ -20,6 +21,7 @@
"validate": "yarn run lint && jsonlint -qV ./schema.json ./src/apps.json && node ./bin/validate.js",
"convert": "cd ./src/drivers/webextension/images/icons ; cp *.svg converted ; cd converted ; convert-svg-to-png *.svg --width 32 --height 32 ; rm *.svg",
"prettify": "jsonlint -si --trim-trailing-commas --enforce-double-quotes ./src/apps.json",
- "build": "yarn run link && yarn run validate && yarn run prettify && yarn run convert && node ./bin/build.js"
+ "build": "yarn run link && yarn run validate && yarn run prettify && yarn run convert && node ./bin/build.js",
+ "build:safari": "xcrun safari-web-extension-converter --swift --project-location build --force src/drivers/webextension"
}
}
diff --git a/run b/run
deleted file mode 100755
index 6e8c89a10..000000000
--- a/run
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-cd "$(dirname $0)"
-
-if [[ -z "$(which docker)" ]]; then
- echo "Please install Docker from https://www.docker.com"
-
- exit 1
-fi
-
-cmd="docker run --rm -v "$(pwd):/opt/wappalyzer" -it wappalyzer/dev"
-
-$cmd sh -c "\
- yarn install; \
- cd ../npm; \
- yarn install"
-
-$cmd ./bin/run links
-$cmd ./bin/run $@
diff --git a/src/README.md b/src/README.md
index 3c475aa18..bf37bfeab 100644
--- a/src/README.md
+++ b/src/README.md
@@ -16,7 +16,8 @@ $ npm i wappalyzer-core
const fs = require('fs')
const Wappalyzer = require('./wappalyzer')
-// See https://www.wappalyzer.com/docs/dev/specification
+// See https://www.wappalyzer.com/docs/dev/specification or use
+// https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/apps.json
const { apps: technologies, categories } = JSON.parse(
fs.readFileSync('./apps.json')
)
diff --git a/src/apps.json b/src/apps.json
index d777d3938..7ba0682f9 100644
--- a/src/apps.json
+++ b/src/apps.json
@@ -39,6 +39,16 @@
"script": "https\\:\\/\\/track\\.91app\\.io\\/track\\.js\\?",
"website": "https://www.91app.com/"
},
+ "@sulu/web": {
+ "cats": [
+ 59
+ ],
+ "icon": "Sulu.svg",
+ "js": {
+ "web.startComponents": ""
+ },
+ "website": "https://github.com/sulu/web-js"
+ },
"A-Frame": {
"cats": [
25
@@ -80,7 +90,10 @@
"cats": [
12
],
- "html": "]* (?:amp|⚡)[^-]",
+ "html": [
+ "]* (?:amp|⚡)[^-]",
+ "]+aria-labelledby=\"pi-american_express",
+ "icon": "Amex.svg",
+ "website": "https://www.americanexpress.com"
+ },
"Ametys": {
"cats": [
1
@@ -942,6 +1014,17 @@
"script": "adnxs\\.(?:net|com)",
"website": "http://appnexus.com"
},
+ "Apple Pay": {
+ "cats": [
+ 41
+ ],
+ "html": [
+ "<[^>]+aria-labelledby=\"pi-apple_pay",
+ "