diff --git a/.github/ISSUE_TEMPLATE/technology-request.md b/.github/ISSUE_TEMPLATE/technology-request.md
index 99c10dc7d..e2c4aa1bf 100644
--- a/.github/ISSUE_TEMPLATE/technology-request.md
+++ b/.github/ISSUE_TEMPLATE/technology-request.md
@@ -7,4 +7,4 @@ 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 [contributing guide](https://github.com/AliasIO/wappalyzer/blob/master/CONTRIBUTING.md).
+You may request a new technology to be added but chances of having it included are greatly improved if you submit a pull request. Please refer to the [contributing guide](https://github.com/AliasIO/wappalyzer/blob/master/CONTRIBUTING.md).
diff --git a/bin/convert.js b/bin/convert.js
index 6e2cb0b58..cf22eb9b5 100644
--- a/bin/convert.js
+++ b/bin/convert.js
@@ -1,6 +1,11 @@
const fs = require('fs')
const path = require('path')
const { createConverter } = require('convert-svg-to-png')
+const terminalOverwrite = require('terminal-overwrite')
+
+// Fix memoryleak warning
+const maxConvertProcesses = 1
+process.setMaxListeners(maxConvertProcesses + 1)
const appPaths = () => {
const fileDir = path.dirname(require.main.filename).split('/')
@@ -57,16 +62,15 @@ function checkFileExists(imagePath) {
return fileExists
}
+/**
+ * Check if path is a file
+ * @param {*} filePath
+ * @returns
+ */
function checkIfFile(filePath) {
return fs.statSync(filePath).isFile()
}
-function diffFiles(fileOne, fileTwo) {
- const f1 = fs.readFileSync(fileOne)
- const f2 = fs.readFileSync(fileTwo)
- return f1.equals(f2)
-}
-
function dateModified(file) {
return fs.statSync(file).mtime
}
@@ -74,87 +78,89 @@ function dateModified(file) {
function dateDiff(file) {
const now = new Date().getTime()
const then = dateModified(file).getTime()
- return Math.round(Math.abs((then - now) / 86400000))
+ return Math.round(Math.abs(((then - now) / 1000) * 60 * 60 * 24))
}
-const converter = createConverter()
-
;(async () => {
// Main script
const files = fs.readdirSync(appPaths().iconPath)
-
const totalFiles = files.length
+ const batchNum = Math.ceil(totalFiles / maxConvertProcesses)
+ let batchCount = 1
+
+ const converter = createConverter()
do {
+ const percentComplete = `${
+ 100 - Math.round((100 / totalFiles) * files.length)
+ }%`
+ terminalOverwrite(
+ `Processing Batch: ${batchCount} of ${batchNum} (${percentComplete})`
+ )
+
await Promise.all(
- files.splice(0, 50).map(async (fileName) => {
- const image = {
- id: fileName,
- path: `${appPaths().iconPath}/${fileName}`,
- convertPath: `${appPaths().convertPath}/${fileName}`,
- async convertAndCopy() {
- for (let attempt = 1; attempt <= 3; attempt++) {
- try {
- await converter
- .convertFile(this.path, {
- height: 32,
- width: 32,
- outputFilePath: this.convertPath,
- })
- .catch((error) => {
- throw new Error(`${error} (${fileName})`)
- })
- } catch (error) {
- if (attempt >= 3) {
- throw error
- } else {
- await new Promise((resolve) =>
- setTimeout(resolve, 500 * attempt)
- )
- }
- }
+ files.splice(0, maxConvertProcesses).map(async (fileName) => {
+ const path = `${appPaths().iconPath}/${fileName}`
+ const outputFilePath = getConvertFileName(fileName)
+ const ext = getFileExtension(path)
+
+ if (ext === '.svg') {
+ // Check if converted file exists.
+ if (checkFileExists(outputFilePath)) {
+ // Skip if destination file exists and source file hasn't changed in
+ // 30 days or destination file was created in the last day
+ const fileAgeA = dateDiff(path)
+ const fileAgeB = dateDiff(outputFilePath)
+
+ if (fileAgeA > 30 || fileAgeB < 1) {
+ return
+ }
+ }
+
+ // Convert and copy file.
+ for (let attempt = 1; attempt <= 3; attempt++) {
+ try {
+ await converter
+ .convertFile(path, {
+ height: 32,
+ width: 32,
+ outputFilePath,
+ })
+ .catch((error) => {
+ throw new Error(`${error} (${fileName})`)
+ })
break
- }
- },
- async processFile() {
- // Setup variables.
- const ext = getFileExtension(this.path)
-
- // If SVG, run checks.
- if (ext === '.svg') {
- // Check if converted file exists.
- const convertFilePath = getConvertFileName(this.path)
- if (checkFileExists(convertFilePath)) {
- // If file has changed in past 7 days.
- if (dateDiff(this.path) > 8) {
- return null
- }
- }
- // Convert and copy file.
- await this.convertAndCopy()
- } else {
- // If PNG or other, just copy the file as-is.
- // eslint-disable-next-line no-lonely-if
- if (checkIfFile(this.path)) {
- copyFiles(this.path, this.convertPath)
+ } catch (error) {
+ if (attempt >= 3) {
+ throw error
+ } else {
+ // eslint-disable-next-line no-console
+ console.error(`${error.message || error} (attempt ${attempt})`)
+
+ await new Promise((resolve) =>
+ setTimeout(resolve, 500 * attempt)
+ )
}
}
- },
+ }
+ } else if (this.ext === '.png') {
+ // If PNG, just copy the file as-is.
+ // eslint-disable-next-line no-lonely-if
+ if (checkIfFile(this.path)) {
+ copyFiles(this.path, this.convertPath)
+ }
}
-
- await image.processFile()
})
)
- console.log(`${100 - Math.round((100 / totalFiles) * files.length)}%`)
+ batchCount++
} while (files.length)
await converter.destroy()
+ // eslint-disable-next-line no-console
console.log(`Converted ${totalFiles.toLocaleString()} files.`)
-
- process.exit()
})()
/**
diff --git a/package.json b/package.json
index 2ea8cd917..ff4ca5aab 100644
--- a/package.json
+++ b/package.json
@@ -13,14 +13,15 @@
"eslint-plugin-json": "^2.1.2",
"eslint-plugin-nuxt": "^1.0.0",
"eslint-plugin-prettier": "^3.1.4",
- "prettier": "^2.1.2"
+ "prettier": "^2.1.2",
+ "terminal-overwrite": "^2.0.1"
},
"scripts": {
"link": "node ./bin/link.js",
"lint": "eslint src/**/*.{js,json}",
"lint:fix": "eslint --fix src/**/*.{js,json}",
"validate": "yarn run lint && jsonlint -qV ./schema.json ./src/technologies/ && node ./bin/validate.js",
- "convert": "node ./bin/convert.js",
+ "convert": "node --no-warnings ./bin/convert.js",
"prettify": "jsonlint -si --trim-trailing-commas --enforce-double-quotes ./src/categories.json ./src/technologies/*.json",
"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/src/drivers/npm/package.json b/src/drivers/npm/package.json
index 73ec3ae18..682aaf7d9 100644
--- a/src/drivers/npm/package.json
+++ b/src/drivers/npm/package.json
@@ -13,7 +13,7 @@
"software"
],
"homepage": "https://www.wappalyzer.com/",
- "version": "6.10.17",
+ "version": "6.10.18",
"author": "Wappalyzer",
"license": "MIT",
"repository": {
diff --git a/src/drivers/webextension/images/icons/Accentuate Custom Fields.png b/src/drivers/webextension/images/icons/Accentuate Custom Fields.png
new file mode 100644
index 000000000..d056cb140
Binary files /dev/null and b/src/drivers/webextension/images/icons/Accentuate Custom Fields.png differ
diff --git a/src/drivers/webextension/images/icons/Antsomi.svg b/src/drivers/webextension/images/icons/Antsomi.svg
new file mode 100644
index 000000000..27cecb71e
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Antsomi.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/drivers/webextension/images/icons/Back In Stock.png b/src/drivers/webextension/images/icons/Back In Stock.png
new file mode 100644
index 000000000..ab57930be
Binary files /dev/null and b/src/drivers/webextension/images/icons/Back In Stock.png differ
diff --git a/src/drivers/webextension/images/icons/Carro.svg b/src/drivers/webextension/images/icons/Carro.svg
new file mode 100644
index 000000000..f11135fcd
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Carro.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/drivers/webextension/images/icons/Celum.svg b/src/drivers/webextension/images/icons/Celum.svg
new file mode 100644
index 000000000..7d530da96
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Celum.svg
@@ -0,0 +1,14 @@
+
diff --git a/src/drivers/webextension/images/icons/Chameleon system.png b/src/drivers/webextension/images/icons/Chameleon system.png
new file mode 100644
index 000000000..4c6386d22
Binary files /dev/null and b/src/drivers/webextension/images/icons/Chameleon system.png differ
diff --git a/src/drivers/webextension/images/icons/Chameleon.png b/src/drivers/webextension/images/icons/Chameleon.png
new file mode 100644
index 000000000..2a8dcf4fb
Binary files /dev/null and b/src/drivers/webextension/images/icons/Chameleon.png differ
diff --git a/src/drivers/webextension/images/icons/ChurnZero.png b/src/drivers/webextension/images/icons/ChurnZero.png
new file mode 100644
index 000000000..a8abc9147
Binary files /dev/null and b/src/drivers/webextension/images/icons/ChurnZero.png differ
diff --git a/src/drivers/webextension/images/icons/Cloudimage.svg b/src/drivers/webextension/images/icons/Cloudimage.svg
new file mode 100644
index 000000000..27a7dd023
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Cloudimage.svg
@@ -0,0 +1,275 @@
+
diff --git a/src/drivers/webextension/images/icons/Conjured.png b/src/drivers/webextension/images/icons/Conjured.png
new file mode 100644
index 000000000..9761f0473
Binary files /dev/null and b/src/drivers/webextension/images/icons/Conjured.png differ
diff --git a/src/drivers/webextension/images/icons/DPlayer.png b/src/drivers/webextension/images/icons/DPlayer.png
new file mode 100644
index 000000000..f7f23d871
Binary files /dev/null and b/src/drivers/webextension/images/icons/DPlayer.png differ
diff --git a/src/drivers/webextension/images/icons/DatoCMS.svg b/src/drivers/webextension/images/icons/DatoCMS.svg
new file mode 100644
index 000000000..ea29b802e
--- /dev/null
+++ b/src/drivers/webextension/images/icons/DatoCMS.svg
@@ -0,0 +1,9 @@
+
diff --git a/src/drivers/webextension/images/icons/Drop A Hint.png b/src/drivers/webextension/images/icons/Drop A Hint.png
new file mode 100644
index 000000000..3f84615b6
Binary files /dev/null and b/src/drivers/webextension/images/icons/Drop A Hint.png differ
diff --git a/src/drivers/webextension/images/icons/Flowplayer.svg b/src/drivers/webextension/images/icons/Flowplayer.svg
new file mode 100644
index 000000000..0dba3d997
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Flowplayer.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/GitBook.png b/src/drivers/webextension/images/icons/GitBook.png
index 3b7b1894d..bb1f3cbba 100644
Binary files a/src/drivers/webextension/images/icons/GitBook.png and b/src/drivers/webextension/images/icons/GitBook.png differ
diff --git a/src/drivers/webextension/images/icons/IPinfo.svg b/src/drivers/webextension/images/icons/IPinfo.svg
new file mode 100644
index 000000000..6e4cfc441
--- /dev/null
+++ b/src/drivers/webextension/images/icons/IPinfo.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/InMoment.svg b/src/drivers/webextension/images/icons/InMoment.svg
new file mode 100644
index 000000000..e0e0c4b1f
--- /dev/null
+++ b/src/drivers/webextension/images/icons/InMoment.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Littledata.svg b/src/drivers/webextension/images/icons/Littledata.svg
new file mode 100644
index 000000000..468fa6d81
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Littledata.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/drivers/webextension/images/icons/MUI.svg b/src/drivers/webextension/images/icons/MUI.svg
new file mode 100644
index 000000000..c1969cf78
--- /dev/null
+++ b/src/drivers/webextension/images/icons/MUI.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/drivers/webextension/images/icons/NagishLi.png b/src/drivers/webextension/images/icons/NagishLi.png
new file mode 100644
index 000000000..3147b1ea3
Binary files /dev/null and b/src/drivers/webextension/images/icons/NagishLi.png differ
diff --git a/src/drivers/webextension/images/icons/Paloma.svg b/src/drivers/webextension/images/icons/Paloma.svg
new file mode 100644
index 000000000..2bbb1ba16
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Paloma.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Qikify.svg b/src/drivers/webextension/images/icons/Qikify.svg
new file mode 100644
index 000000000..e96b70284
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Qikify.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/React Bricks.svg b/src/drivers/webextension/images/icons/React Bricks.svg
new file mode 100644
index 000000000..ffb0b160a
--- /dev/null
+++ b/src/drivers/webextension/images/icons/React Bricks.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/React.png b/src/drivers/webextension/images/icons/React.png
deleted file mode 100644
index da20b6e8a..000000000
Binary files a/src/drivers/webextension/images/icons/React.png and /dev/null differ
diff --git a/src/drivers/webextension/images/icons/React.svg b/src/drivers/webextension/images/icons/React.svg
new file mode 100644
index 000000000..07c387e96
--- /dev/null
+++ b/src/drivers/webextension/images/icons/React.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Secomapp.png b/src/drivers/webextension/images/icons/Secomapp.png
new file mode 100644
index 000000000..20f35a187
Binary files /dev/null and b/src/drivers/webextension/images/icons/Secomapp.png differ
diff --git a/src/drivers/webextension/images/icons/Shopapps.png b/src/drivers/webextension/images/icons/Shopapps.png
new file mode 100644
index 000000000..b724d37d6
Binary files /dev/null and b/src/drivers/webextension/images/icons/Shopapps.png differ
diff --git a/src/drivers/webextension/images/icons/Super Builder.svg b/src/drivers/webextension/images/icons/Super Builder.svg
new file mode 100644
index 000000000..fcb15a6a0
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Super Builder.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Tabarnapp.png b/src/drivers/webextension/images/icons/Tabarnapp.png
new file mode 100644
index 000000000..e46268d20
Binary files /dev/null and b/src/drivers/webextension/images/icons/Tabarnapp.png differ
diff --git a/src/drivers/webextension/images/icons/Thesis.svg b/src/drivers/webextension/images/icons/Thesis.svg
new file mode 100644
index 000000000..f70d0d91f
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Thesis.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/drivers/webextension/images/icons/Threekit.svg b/src/drivers/webextension/images/icons/Threekit.svg
new file mode 100644
index 000000000..428831cf9
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Threekit.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/drivers/webextension/images/icons/UptimeRobot.svg b/src/drivers/webextension/images/icons/UptimeRobot.svg
new file mode 100644
index 000000000..43630f943
--- /dev/null
+++ b/src/drivers/webextension/images/icons/UptimeRobot.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Userflow.svg b/src/drivers/webextension/images/icons/Userflow.svg
new file mode 100644
index 000000000..70b080614
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Userflow.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Userpilot.svg b/src/drivers/webextension/images/icons/Userpilot.svg
new file mode 100644
index 000000000..da313c6c0
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Userpilot.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Virtooal.svg b/src/drivers/webextension/images/icons/Virtooal.svg
new file mode 100644
index 000000000..8762844e2
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Virtooal.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/drivers/webextension/images/icons/Visely.svg b/src/drivers/webextension/images/icons/Visely.svg
new file mode 100644
index 000000000..448efccca
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Visely.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/drivers/webextension/images/icons/Vue.ai.svg b/src/drivers/webextension/images/icons/Vue.ai.svg
index 6bd17c905..8d9159dd1 100644
--- a/src/drivers/webextension/images/icons/Vue.ai.svg
+++ b/src/drivers/webextension/images/icons/Vue.ai.svg
@@ -1 +1,108 @@
-
\ No newline at end of file
+
diff --git a/src/drivers/webextension/images/icons/Vuetify.svg b/src/drivers/webextension/images/icons/Vuetify.svg
index 15bbf3b98..675b8e72d 100644
--- a/src/drivers/webextension/images/icons/Vuetify.svg
+++ b/src/drivers/webextension/images/icons/Vuetify.svg
@@ -1,6 +1,6 @@
-