simple-wappalyzer 1.1.89 → 1.1.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
File without changes
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "simple-wappalyzer",
3
3
  "description": "A simple way to interacting with Wappalyzer.",
4
4
  "homepage": "https://github.com/Kikobeats/simple-wappalyzer",
5
- "version": "1.1.89",
5
+ "version": "1.1.91",
6
6
  "main": "src/index.js",
7
7
  "author": {
8
8
  "email": "josefrancisco.verdu@gmail.com",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "got": "~11.8.6",
32
- "happy-dom": "~20.6.0",
32
+ "happy-dom": "~20.7.0",
33
33
  "lodash": "~4.17.21",
34
34
  "tough-cookie": "~6.0.0",
35
35
  "wappalyzer-core": "6",
@@ -61,18 +61,6 @@
61
61
  "scripts",
62
62
  "src"
63
63
  ],
64
- "scripts": {
65
- "clean": "rm -rf node_modules",
66
- "contributors": "(npx git-authors-cli && npx finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true",
67
- "lint": "standard",
68
- "postinstall": "node scripts/postinstall",
69
- "postrelease": "npm run release:tags && npm run release:github && (ci-publish || npm publish --access=public)",
70
- "pretest": "npm run lint",
71
- "release": "standard-version -a",
72
- "release:github": "github-generate-release",
73
- "release:tags": "git push --follow-tags origin HEAD:master",
74
- "test": "c8 ava"
75
- },
76
64
  "license": "MIT",
77
65
  "commitlint": {
78
66
  "extends": [
@@ -96,5 +84,17 @@
96
84
  "simple-git-hooks": {
97
85
  "commit-msg": "npx commitlint --edit",
98
86
  "pre-commit": "npx nano-staged"
87
+ },
88
+ "scripts": {
89
+ "clean": "rm -rf node_modules",
90
+ "contributors": "(npx git-authors-cli && npx finepack && git add package.json && git commit -m 'build: contributors' --no-verify) || true",
91
+ "lint": "standard",
92
+ "postinstall": "node scripts/postinstall",
93
+ "postrelease": "npm run release:tags && npm run release:github && (ci-publish || npm publish --access=public)",
94
+ "pretest": "npm run lint",
95
+ "release": "standard-version -a",
96
+ "release:github": "github-generate-release",
97
+ "release:tags": "git push --follow-tags origin HEAD:master",
98
+ "test": "c8 ava"
99
99
  }
100
- }
100
+ }
package/src/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  const { chain, mapValues } = require('lodash')
4
4
  const wappalyzer = require('wappalyzer-core')
5
5
  const { Cookie } = require('tough-cookie')
6
- const { Browser } = require('happy-dom')
6
+ const { Window } = require('happy-dom')
7
7
 
8
8
  const technologies = require('./technologies.json')
9
9
  const categories = require('./categories.json')
@@ -41,36 +41,32 @@ const getMeta = document =>
41
41
  return acc
42
42
  }, {})
43
43
 
44
- module.exports = async ({ url, headers, html }) => {
45
- const browser = new Browser({
46
- settings: {
47
- disableComputedStyleRendering: true,
48
- disableCSSFileLoading: true,
49
- disableIframePageLoading: true,
50
- disableJavaScriptEvaluation: true,
51
- disableJavaScriptFileLoading: true
52
- }
53
- })
54
-
55
- const page = browser.newPage()
56
- page.url = url
57
- page.content = html
58
-
59
- const document = page.mainFrame.document
60
-
61
- const detections = await wappalyzer.analyze({
62
- url,
63
- meta: getMeta(document),
64
- headers: getHeaders(headers),
65
- scripts: getScripts(document.scripts),
66
- cookies: getCookies(getHeader(headers, 'set-cookie')),
67
- html: document.documentElement.outerHTML
68
- })
69
-
70
- const result = wappalyzer.resolve(detections)
71
- await browser.close()
44
+ const DOCUMENT_SETTINGS = {
45
+ disableComputedStyleRendering: true,
46
+ disableCSSFileLoading: true,
47
+ disableIframePageLoading: true,
48
+ disableJavaScriptEvaluation: true,
49
+ disableJavaScriptFileLoading: true
50
+ }
72
51
 
73
- return result
52
+ module.exports = async ({ url, headers, html }) => {
53
+ const window = new Window({ url, settings: DOCUMENT_SETTINGS })
54
+ window.document.documentElement.innerHTML = html
55
+
56
+ try {
57
+ const detections = await wappalyzer.analyze({
58
+ url,
59
+ meta: getMeta(window.document),
60
+ headers: getHeaders(headers),
61
+ scripts: getScripts(window.document.scripts),
62
+ cookies: getCookies(getHeader(headers, 'set-cookie')),
63
+ html: window.document.documentElement.outerHTML
64
+ })
65
+
66
+ return wappalyzer.resolve(detections)
67
+ } finally {
68
+ await window.close()
69
+ }
74
70
  }
75
71
 
76
72
  module.exports.getHeader = getHeader
@@ -10314,18 +10314,6 @@
10314
10314
  ],
10315
10315
  "website": "https://btolead.it"
10316
10316
  },
10317
- "bun": {
10318
- "cats": [
10319
- 27
10320
- ],
10321
- "description": "Bun is a fast JavaScript runtime compatible with Node.js and Deno.",
10322
- "icon": "bun.svg",
10323
- "headers": {
10324
- "X-Powered-By": "Bun"
10325
- },
10326
- "oss": true,
10327
- "website": "https://bun.sh"
10328
- },
10329
10317
  "BUROGU": {
10330
10318
  "cats": [
10331
10319
  11
@@ -73244,21 +73232,6 @@
73244
73232
  },
73245
73233
  "website": "https://pkp.sfu.ca/ojs"
73246
73234
  },
73247
- "opentelemetry": {
73248
- "cats": [
73249
- 10
73250
- ],
73251
- "description": "OpenTelemetry is a framework for observability, providing standardized APIs, libraries, and agents to collect telemetry data.",
73252
- "icon": "opentelemetry.svg",
73253
- "js": {
73254
- "otel": ""
73255
- },
73256
- "scriptSrc": [
73257
- "opentelemetry.*\\.js"
73258
- ],
73259
- "oss": true,
73260
- "website": "https://opentelemetry.io"
73261
- },
73262
73235
  "Open Web Analytics": {
73263
73236
  "cats": [
73264
73237
  10
@@ -92509,7 +92482,7 @@
92509
92482
  "saas": true,
92510
92483
  "website": "https://www.sana-commerce.com"
92511
92484
  },
92512
- "Sanity.io": {
92485
+ "Sanity": {
92513
92486
  "cats": [
92514
92487
  1
92515
92488
  ],
@@ -92526,9 +92499,6 @@
92526
92499
  "content-security-policy": "cdn\\.sanity\\.io",
92527
92500
  "x-sanity-shard": ""
92528
92501
  },
92529
- "scriptSrc": [
92530
- "cdn\\.sanity\\.io"
92531
- ],
92532
92502
  "icon": "Sanity.svg",
92533
92503
  "pricing": [
92534
92504
  "freemium",
@@ -104490,19 +104460,15 @@
104490
104460
  "dom": [
104491
104461
  "a[href*='supabase.com'] > img[src*='/supabase-logo-wordmark\\-\\-dark.png']"
104492
104462
  ],
104493
- "icon": "supabase.svg",
104463
+ "icon": "Supabase.svg",
104494
104464
  "implies": [
104495
104465
  "PostgreSQL"
104496
104466
  ],
104497
- "scriptSrc": [
104498
- "cdn\\.supabase\\.com"
104499
- ],
104500
104467
  "js": {
104501
104468
  "__NUXT__.config.public.SUPABASE_URL": "",
104502
104469
  "__NUXT__.config.public.supabase": "",
104503
104470
  "supabase.AuthAdminApi": "",
104504
- "supabase.storageKey": "",
104505
- "createClient": "supabase\\."
104471
+ "supabase.storageKey": ""
104506
104472
  },
104507
104473
  "oss": true,
104508
104474
  "pricing": [
@@ -113425,6 +113391,7 @@
113425
113391
  6
113426
113392
  ],
113427
113393
  "text": [
113394
+ "\\bUSPS\\b",
113428
113395
  "\\bUnited States Postal Service\\b"
113429
113396
  ],
113430
113397
  "website": "https://www.usps.com"
@@ -120086,9 +120053,6 @@
120086
120053
  19
120087
120054
  ],
120088
120055
  "description": "WebSocket is a communication protocol that provides full-duplex communication channels over a single, long-lived connection, enabling interactive communication between web browsers and servers.",
120089
- "headers": {
120090
- "Upgrade": "websocket"
120091
- },
120092
120056
  "dom": [
120093
120057
  "link[rel='web-socket']",
120094
120058
  "link[href^='ws://']",