diff --git a/.github/ISSUE_TEMPLATE/technology-request.md b/.github/ISSUE_TEMPLATE/technology-request.md
index e2c4aa1bf..da6658569 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 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).
+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/HTTPArchive/wappalyzer/blob/main/CONTRIBUTING.md).
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index fc7f6b3ff..c6ad1c74f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -29,6 +29,7 @@ jobs:
run: yarn run validate
- name: Run WebPageTest with unit tests
+ id: unit-test
env:
WPT_SERVER: "webpagetest.httparchive.org"
WPT_API_KEY: ${{ secrets.HA_API_KEY }}
@@ -39,6 +40,7 @@ jobs:
echo "::endgroup::"
- name: Run WebPageTest for more websites
+ id: wpt-test
env:
WPT_SERVER: "webpagetest.httparchive.org"
WPT_API_KEY: ${{ secrets.HA_API_KEY }}
@@ -79,7 +81,7 @@ jobs:
# Run WebPageTest for each URL
for TEST_WEBSITE in "${URLS[@]}"; do
- echo "::group::Detecting technologies for $TEST_WEBSITE"
+ echo "::group::Running WPT test for $TEST_WEBSITE"
node tests/wpt.js "$TEST_WEBSITE"
echo "::endgroup::"
done
@@ -89,7 +91,7 @@ jobs:
- name: Add comment with results
uses: mshick/add-pr-comment@v2
- if: always()
+ if: steps.unit-test.outcome == 'success' || steps.wpt-test.outcome == 'success'
with:
refresh-message-position: true
message-path: test-results.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 561c402b2..8f624407a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,10 +1,10 @@
# Contributing
-Wappalyzer is an [GPLv3 licensed](https://github.com/wappalyzer/wappalyzer/blob/master/LICENSE), open source project written in JavaScript. Anyone is welcome to contribute.
+Wappalyzer is an [GPLv3 licensed](https://github.com/HTTPArchive/wappalyzer/blob/main/LICENSE), open source project written in JavaScript. Anyone is welcome to contribute.
## Getting started
-To get started, see the [README](https://github.com/wappalyzer/wappalyzer/blob/master/README.md).
+To get started, see the [README](https://github.com/HTTPArchive/wappalyzer/blob/main/README.md).
## Submitting changes
@@ -15,23 +15,19 @@ To get started, see the [README](https://github.com/wappalyzer/wappalyzer/blob/m
## Adding a new technology
-Wappalyzer uses [regular expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) to fingerprint technologies. Refer to the [specification](https://github.com/wappalyzer/wappalyzer/blob/master/README.md#specification) for detail.
+Wappalyzer uses [regular expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) to fingerprint technologies. Refer to the [specification](https://github.com/HTTPArchive/wappalyzer/blob/main/README.md#specification) for detail.
-- Add a new block to [`src/technologies/*.json`](https://github.com/wappalyzer/wappalyzer/blob/master/src/technologies). The filename should match the first letter of the technology name (a-z). Use `_.json` if the first character is a number or symbol.
-- Add an icon to [`src/images/icons`](https://github.com/wappalyzer/wappalyzer/tree/master/src/images/icons). The image must be square, either SVG or PNG (32 x 32 pixels).
+- Add a new block to [`src/technologies/*.json`](https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies). The filename should match the first letter of the technology name (a-z). Use `_.json` if the first character is a number or symbol.
+- Add an icon to [`src/images/icons`](https://github.com/HTTPArchive/wappalyzer/tree/master/src/images/icons). The image must be square, either SVG or PNG (32 x 32 pixels).
Only widely used technologies are accepted. When creating a pull request, include ten or more links to websites that use the application, a GitHub page with at least 1,000 stars or anything that will help establish the size of the user base.
## Adding a new category
-Please [open an issue on GitHub](https://github.com/wappalyzer/wappalyzer/issues) first to discuss the need for a new category.
+Please [open an issue on GitHub](https://github.com/HTTPArchive/wappalyzer/issues) first to discuss the need for a new category.
-To add a category, edit [`src/categories.json`](https://github.com/wappalyzer/wappalyzer/blob/master/src/categories.json) and update every [locale](https://github.com/wappalyzer/wappalyzer/tree/master/src/_locales). You may use the English category name in all of them.
-
-## Adding a new translation
-
-To add a new translation, copy the `en` folder in [`src/_locales`](https://github.com/wappalyzer/wappalyzer/tree/master/src/_locales), rename it to the relevant two-letter country code and update the containing `messages.json` file.
+To add a category, edit [`src/categories.json`](https://github.com/HTTPArchive/wappalyzer/blob/main/src/categories.json) and update every [locale](https://github.com/HTTPArchive/wappalyzer/tree/master/src/_locales). You may use the English category name in all of them.
## Adding a new feature
-Please [open an issue on GitHub](https://github.com/wappalyzer/wappalyzer/issues) first. New features and large changes are rarely accepted without prior discussion.
+Please [open an issue on GitHub](https://github.com/HTTPArchive/wappalyzer/issues) first. New features and large changes are rarely accepted without prior discussion.
diff --git a/README.md b/README.md
index e307ddf9d..814ea4e5c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[](https://github.com/wappalyzer/wappalyzer/actions/workflows/validate.yml)
+[](https://github.com/HTTPArchive/wappalyzer/actions/workflows/test.yml)
[](https://github.com/sponsors/AliasIO)
@@ -18,7 +18,7 @@
## Quick start
```sh
-git clone https://github.com/wappalyzer/wappalyzer.git
+git clone https://github.com/HTTPArchive/wappalyzer.git
cd wappalyzer
yarn install
```
@@ -27,7 +27,7 @@ yarn install
### Chrome extension
-- Go to `about:extensions`
+- Go to `chrome:extensions`
- Enable 'Developer mode'
- Click 'Load unpacked'
- Select `src`
@@ -42,9 +42,9 @@ yarn install
A long list of [regular expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) is used to identify technologies on web pages. Wappalyzer inspects HTML code, as well as JavaScript variables, response headers and more.
-Patterns (regular expressions) are kept in [`src/technologies/`](https://github.com/wappalyzer/wappalyzer/blob/master/src/technologies). The following is an example of an application fingerprint.
+Patterns (regular expressions) are kept in [`src/technologies/`](https://github.com/HTTPArchive/wappalyzer/tree/main/src/technologies). The following is an example of an application fingerprint.
-#### Example
+### Example
```json
"Example": {
@@ -104,7 +104,7 @@ Patterns (regular expressions) are kept in [`src/technologies/`](https://github.
## JSON fields
-Find the JSON schema at [`schema.json`](https://github.com/wappalyzer/wappalyzer/blob/master/schema.json).
+Find the JSON schema at [`schema.json`](https://github.com/HTTPArchive/wappalyzer/blob/main/schema.json).
### Required properties
diff --git a/src/drivers/webextension/images/icons/PandaCSS.svg b/src/images/icons/PandaCSS.svg
similarity index 100%
rename from src/drivers/webextension/images/icons/PandaCSS.svg
rename to src/images/icons/PandaCSS.svg
diff --git a/src/technologies/e.json b/src/technologies/e.json
index 5ad88f204..b9c5c614b 100644
--- a/src/technologies/e.json
+++ b/src/technologies/e.json
@@ -2299,4 +2299,4 @@
},
"website": "https://experiencedcms.berkearas.de"
}
-}
\ No newline at end of file
+}
diff --git a/src/technologies/j.json b/src/technologies/j.json
index 422ba7e7a..a633a8982 100644
--- a/src/technologies/j.json
+++ b/src/technologies/j.json
@@ -1012,4 +1012,4 @@
"website": "https://www.jsdelivr.com/",
"xhr": "cdn\\.jsdelivr\\.net"
}
-}
\ No newline at end of file
+}
diff --git a/src/technologies/p.json b/src/technologies/p.json
index 2b0beffd7..6e5f82707 100644
--- a/src/technologies/p.json
+++ b/src/technologies/p.json
@@ -399,6 +399,7 @@
],
"css": "--made-with-panda",
"description": "Panda is a styling engine that generates styling primitives to author atomic CSS and recipes in a type-safe and readable manner.",
+ "icon": "PandaCSS.svg",
"oss": true,
"website": "https://panda-css.com/"
},
diff --git a/tests/unit-tests.test.js b/tests/unit-tests.test.js
index 9a00a43d4..df82ba83d 100644
--- a/tests/unit-tests.test.js
+++ b/tests/unit-tests.test.js
@@ -2,11 +2,26 @@ const assert = require('assert')
const { runWPTTest } = require('./wpt.js')
const testWebsite = 'https://almanac.httparchive.org/en/2022/'
-let responseData
+let responseData, firstView
beforeAll(async () => {
responseData = await runWPTTest(testWebsite)
+ firstView = responseData.runs['1'].firstView
}, 400000)
test('wappalyzer successful', () => {
- assert.ok(responseData.runs['1'].firstView.wappalyzer_failed === 0)
+ assert(
+ firstView.wappalyzer_failed === undefined,
+ 'wappalyzer_failed key is present'
+ )
+ assert(
+ typeof firstView.detected === 'object' &&
+ typeof firstView.detected_apps === 'object' &&
+ typeof firstView.detected_technologies === 'object' &&
+ typeof firstView.detected_raw === 'object',
+ 'not all technology lists are present'
+ )
+ assert(
+ firstView.detected_raw.length > 1,
+ 'number of technologies detected <=1'
+ )
})
diff --git a/tests/wpt.js b/tests/wpt.js
index 8df450383..f0e8ebf56 100644
--- a/tests/wpt.js
+++ b/tests/wpt.js
@@ -13,7 +13,7 @@ const wpt = new WebPageTest(wptServer, wptApiKey)
* Runs a WebPageTest (WPT) test for a given URL.
*
* @param {string} url - The URL to run the test on.
- * @returns {Promise