spiderlint 0.0.0 → 0.143.0

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.
Files changed (186) hide show
  1. package/LICENSE +235 -0
  2. package/README.md +244 -0
  3. package/bin/spiderlint.js +11 -0
  4. package/dist/agent.js +46 -0
  5. package/dist/cache/extractors.js +37 -0
  6. package/dist/cache/http.js +99 -0
  7. package/dist/cache/index.js +101 -0
  8. package/dist/cache/purge.js +63 -0
  9. package/dist/cache/status.js +52 -0
  10. package/dist/cli.js +602 -0
  11. package/dist/color.js +10 -0
  12. package/dist/config/environment.js +88 -0
  13. package/dist/config/index.js +104 -0
  14. package/dist/config/policy.js +170 -0
  15. package/dist/config/schema.js +127 -0
  16. package/dist/crawl/body.js +92 -0
  17. package/dist/crawl/browser.js +498 -0
  18. package/dist/crawl/crawl.js +58 -0
  19. package/dist/crawl/diversity.js +153 -0
  20. package/dist/crawl/dns.js +194 -0
  21. package/dist/crawl/fetch.js +48 -0
  22. package/dist/crawl/frontier.js +370 -0
  23. package/dist/crawl/guard.js +69 -0
  24. package/dist/crawl/http.js +171 -0
  25. package/dist/crawl/links.js +89 -0
  26. package/dist/crawl/log.js +27 -0
  27. package/dist/crawl/network.js +88 -0
  28. package/dist/crawl/probe.js +107 -0
  29. package/dist/crawl/profile.js +33 -0
  30. package/dist/crawl/rdap.js +86 -0
  31. package/dist/crawl/resolve.js +132 -0
  32. package/dist/crawl/resources.js +233 -0
  33. package/dist/crawl/robots.js +100 -0
  34. package/dist/crawl/route.js +92 -0
  35. package/dist/crawl/scope.js +32 -0
  36. package/dist/crawl/scratch.js +15 -0
  37. package/dist/crawl/sitemap.js +187 -0
  38. package/dist/crawl/svcb.js +59 -0
  39. package/dist/crawl/tls-hello.js +297 -0
  40. package/dist/crawl/tls-probe.js +71 -0
  41. package/dist/facts/browser.js +138 -0
  42. package/dist/facts/byline.js +17 -0
  43. package/dist/facts/co2.js +27 -0
  44. package/dist/facts/csp.js +71 -0
  45. package/dist/facts/export.js +79 -0
  46. package/dist/facts/flatten.js +33 -0
  47. package/dist/facts/graph.js +73 -0
  48. package/dist/facts/headers.js +330 -0
  49. package/dist/facts/html.js +230 -0
  50. package/dist/facts/labels.js +89 -0
  51. package/dist/facts/language.js +32 -0
  52. package/dist/facts/parity.js +38 -0
  53. package/dist/facts/read-note.js +11 -0
  54. package/dist/facts/resources.js +46 -0
  55. package/dist/facts/robots.js +13 -0
  56. package/dist/facts/sites.js +140 -0
  57. package/dist/facts/transport.js +200 -0
  58. package/dist/facts/types.js +4 -0
  59. package/dist/facts/vendors.js +76 -0
  60. package/dist/fold/index.js +94 -0
  61. package/dist/groups/assign.js +45 -0
  62. package/dist/groups/sample.js +60 -0
  63. package/dist/i18n.js +92 -0
  64. package/dist/index.js +607 -0
  65. package/dist/interrupt.js +37 -0
  66. package/dist/logger.js +95 -0
  67. package/dist/plugins/axe.js +104 -0
  68. package/dist/plugins/carbon-txt.js +96 -0
  69. package/dist/plugins/cookies-registry.js +25 -0
  70. package/dist/plugins/cookies.js +168 -0
  71. package/dist/plugins/css.js +328 -0
  72. package/dist/plugins/dns.js +864 -0
  73. package/dist/plugins/feed-content.js +132 -0
  74. package/dist/plugins/feed-model.js +282 -0
  75. package/dist/plugins/feeds.js +836 -0
  76. package/dist/plugins/html-validate.js +191 -0
  77. package/dist/plugins/htmlhint.js +95 -0
  78. package/dist/plugins/icons.js +302 -0
  79. package/dist/plugins/images.js +269 -0
  80. package/dist/plugins/index.js +286 -0
  81. package/dist/plugins/keyboard.js +194 -0
  82. package/dist/plugins/lighthouse.js +110 -0
  83. package/dist/plugins/link-text.js +73 -0
  84. package/dist/plugins/list.js +22 -0
  85. package/dist/plugins/live.js +254 -0
  86. package/dist/plugins/mail.js +985 -0
  87. package/dist/plugins/manifest.js +97 -0
  88. package/dist/plugins/markup.js +98 -0
  89. package/dist/plugins/messages.js +25 -0
  90. package/dist/plugins/network.js +192 -0
  91. package/dist/plugins/origin.js +488 -0
  92. package/dist/plugins/profile-links.js +102 -0
  93. package/dist/plugins/schema-registry.js +101 -0
  94. package/dist/plugins/sshfp.js +159 -0
  95. package/dist/plugins/stack.js +161 -0
  96. package/dist/plugins/structured-data.js +358 -0
  97. package/dist/plugins/tls-probe.js +298 -0
  98. package/dist/plugins/tls-registry.js +418 -0
  99. package/dist/plugins/tls-scan.js +280 -0
  100. package/dist/plugins/trackers-registry.js +27 -0
  101. package/dist/plugins/trackers.js +56 -0
  102. package/dist/plugins/types.js +7 -0
  103. package/dist/plugins/visit.js +50 -0
  104. package/dist/plugins/well-known-registry.js +111 -0
  105. package/dist/plugins/well-known.js +732 -0
  106. package/dist/progress.js +162 -0
  107. package/dist/report/agent.js +122 -0
  108. package/dist/report/checkstyle.js +22 -0
  109. package/dist/report/csv.js +18 -0
  110. package/dist/report/html.js +266 -0
  111. package/dist/report/human.js +220 -0
  112. package/dist/report/index.js +16 -0
  113. package/dist/report/json.js +8 -0
  114. package/dist/report/printable.js +29 -0
  115. package/dist/report/rating.js +26 -0
  116. package/dist/report/sarif.js +100 -0
  117. package/dist/report/stats.js +46 -0
  118. package/dist/rules/builtin.js +465 -0
  119. package/dist/rules/caching.js +103 -0
  120. package/dist/rules/catalog.js +139 -0
  121. package/dist/rules/clock.js +48 -0
  122. package/dist/rules/declarative.js +234 -0
  123. package/dist/rules/deprecated.js +45 -0
  124. package/dist/rules/disclosure.js +99 -0
  125. package/dist/rules/fix.js +21 -0
  126. package/dist/rules/i18n.js +131 -0
  127. package/dist/rules/insights.js +100 -0
  128. package/dist/rules/length.js +52 -0
  129. package/dist/rules/message.js +48 -0
  130. package/dist/rules/relations.js +88 -0
  131. package/dist/rules/robots.js +75 -0
  132. package/dist/rules/rulesets.js +134 -0
  133. package/dist/rules/run.js +75 -0
  134. package/dist/rules/score.js +61 -0
  135. package/dist/rules/types.js +7 -0
  136. package/dist/rules/url.js +90 -0
  137. package/dist/server/analytics.js +49 -0
  138. package/dist/server/api.js +134 -0
  139. package/dist/server/clients.js +54 -0
  140. package/dist/server/clock.js +33 -0
  141. package/dist/server/compress.js +58 -0
  142. package/dist/server/health.js +14 -0
  143. package/dist/server/jobs.js +82 -0
  144. package/dist/server/main.js +83 -0
  145. package/dist/server/page.js +161 -0
  146. package/dist/server/policy.js +145 -0
  147. package/dist/server/providers.js +60 -0
  148. package/dist/server/queue.js +50 -0
  149. package/dist/server/scan.js +39 -0
  150. package/dist/server/settings.js +197 -0
  151. package/dist/server/web.js +353 -0
  152. package/dist/server/worker.js +129 -0
  153. package/dist/store/disk.js +215 -0
  154. package/dist/store/memory.js +18 -0
  155. package/dist/telemetry-environment.js +9 -0
  156. package/dist/telemetry.js +104 -0
  157. package/locales/es/LC_MESSAGES/messages.po +1864 -0
  158. package/locales/uk/LC_MESSAGES/messages.po +1864 -0
  159. package/package.json +134 -2
  160. package/presets/browser.yaml +26 -0
  161. package/presets/graph.yaml +35 -0
  162. package/presets/i18n.yaml +18 -0
  163. package/presets/insights.yaml +12 -0
  164. package/presets/links.yaml +22 -0
  165. package/presets/parity.yaml +59 -0
  166. package/presets/performance.yaml +271 -0
  167. package/presets/recommended.yaml +50 -0
  168. package/presets/redirects.yaml +23 -0
  169. package/presets/resources.yaml +29 -0
  170. package/presets/robots.yaml +13 -0
  171. package/presets/security-headers.yaml +257 -0
  172. package/presets/seo.yaml +380 -0
  173. package/presets/sitemap.yaml +34 -0
  174. package/presets/suggestions.yaml +97 -0
  175. package/presets/sustainability.yaml +16 -0
  176. package/presets/tls.yaml +72 -0
  177. package/presets/vendor.yaml +14 -0
  178. package/presets/web-comprehensive.yaml +17 -0
  179. package/presets/web-quick.yaml +15 -0
  180. package/src/server/apple-touch-icon.png +0 -0
  181. package/src/server/logo-36.png +0 -0
  182. package/src/server/logo-72.png +0 -0
  183. package/src/server/logo.png +0 -0
  184. package/vendors/dns.yaml +21 -0
  185. package/vendors/paths.yaml +55 -0
  186. package/vendors/stack.yaml +57 -0
@@ -0,0 +1,21 @@
1
+ # SPDX-FileCopyrightText: 2026 Damián Búho <damian.buho@proton.me>
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-only
4
+ ---
5
+ # Managed DNS providers; a zone is theirs when every one of its name servers matches one entry’s globs.
6
+ - provider: Cloudflare
7
+ match: ["*.ns.cloudflare.com"]
8
+ # SOA values are editable on Enterprise plans only.
9
+ soa-editable: false
10
+ docs: https://developers.cloudflare.com/dns/manage-dns-records/reference/dns-record-types/#soa
11
+ - provider: Amazon Route 53
12
+ match: ["ns-*.awsdns-*.{com,net,org,co.uk}"]
13
+ soa-editable: true
14
+ docs: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/SOA-NSrecords.html
15
+ - provider: Azure DNS
16
+ match: ["ns*-*.azure-dns.{com,net,org,info}"]
17
+ soa-editable: true
18
+ docs: https://learn.microsoft.com/en-us/azure/dns/dns-zones-records#soa-records
19
+ - provider: Google Cloud DNS
20
+ match: ["ns-cloud-*.googledomains.com"]
21
+ docs: https://docs.cloud.google.com/dns/docs/records
@@ -0,0 +1,55 @@
1
+ # SPDX-FileCopyrightText: 2026 Damián Búho <damian.buho@proton.me>
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-only
4
+ ---
5
+ # Paths an edge or host serves on the site’s own origin; the first entry whose glob matches the path wins.
6
+ - vendor: Cloudflare
7
+ feature: cloudflare/email-obfuscation
8
+ match: /cdn-cgi/l/email-protection
9
+ kind: [page]
10
+ docs: https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/
11
+ - vendor: Cloudflare
12
+ feature: cloudflare/email-obfuscation
13
+ match: /cdn-cgi/scripts/*/cloudflare-static/email-decode.min.js
14
+ kind: [resource]
15
+ docs: https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/
16
+ - vendor: Cloudflare
17
+ feature: cloudflare/bot-challenge
18
+ match: /cdn-cgi/challenge-platform/**
19
+ kind: [page, resource]
20
+ docs: https://developers.cloudflare.com/bots/additional-configurations/javascript-detections/
21
+ - vendor: Cloudflare
22
+ feature: cloudflare/web-analytics
23
+ match: /cdn-cgi/rum
24
+ kind: [resource]
25
+ docs: https://developers.cloudflare.com/web-analytics/get-started/#sites-proxied-through-cloudflare
26
+ - vendor: Cloudflare
27
+ match: /cdn-cgi/trace
28
+ kind: [page]
29
+ docs: https://developers.cloudflare.com/support/troubleshooting/general-troubleshooting/gathering-information-for-troubleshooting-sites/
30
+ - vendor: Cloudflare
31
+ match: /cdn-cgi/image/**
32
+ kind: [page]
33
+ docs: https://developers.cloudflare.com/images/optimization/transformations/overview/
34
+ - vendor: Cloudflare
35
+ match: /cdn-cgi/**
36
+ kind: [page, resource]
37
+ docs: https://developers.cloudflare.com/fundamentals/reference/cdn-cgi-endpoint/
38
+ - vendor: Netlify
39
+ match: /.netlify/images
40
+ kind: [page]
41
+ docs: https://docs.netlify.com/build/image-cdn/overview/
42
+ - vendor: Vercel
43
+ feature: vercel/web-analytics
44
+ match: /_vercel/insights/**
45
+ kind: [page, resource]
46
+ docs: https://vercel.com/docs/analytics/quickstart
47
+ - vendor: Vercel
48
+ feature: vercel/speed-insights
49
+ match: /_vercel/speed-insights/**
50
+ kind: [page, resource]
51
+ docs: https://vercel.com/docs/speed-insights/quickstart
52
+ - vendor: Vercel
53
+ match: /_vercel/image
54
+ kind: [page]
55
+ docs: https://vercel.com/docs/image-optimization
@@ -0,0 +1,57 @@
1
+ # SPDX-FileCopyrightText: 2026 Damián Búho <damian.buho@proton.me>
2
+ #
3
+ # SPDX-License-Identifier: AGPL-3.0-only
4
+ ---
5
+ # Services an origin runs on; a signal is a glob, and a service seen by two distinct signals is high confidence.
6
+ - name: cloudflare
7
+ kind: edge
8
+ # Published address ranges: downloaded into the `lists` bucket, the bundled ones when the download fails.
9
+ ranges:
10
+ lists: [https://www.cloudflare.com/ips-v4, https://www.cloudflare.com/ips-v6]
11
+ bundled: [173.245.48.0/20, 103.21.244.0/22, 103.22.200.0/22, 103.31.4.0/22, 141.101.64.0/18, 108.162.192.0/18, 190.93.240.0/20, 188.114.96.0/20, 197.234.240.0/22, 198.41.128.0/17, 162.158.0.0/15, 104.16.0.0/13, 104.24.0.0/14, 172.64.0.0/13, 131.0.72.0/22, "2400:cb00::/32", "2606:4700::/32", "2803:f800::/32", "2405:b500::/32", "2405:8100::/32", "2a06:98c0::/29", "2c0f:f248::/32"]
12
+ headers: {cf-ray: "*", server: cloudflare}
13
+ cookies: [__cf_bm, cf_clearance]
14
+ nameservers: ["*.ns.cloudflare.com"]
15
+ docs: https://developers.cloudflare.com/fundamentals/reference/http-headers/
16
+ - name: fastly
17
+ kind: edge
18
+ headers: {x-served-by: "cache-*", x-fastly-request-id: "*"}
19
+ docs: https://www.fastly.com/documentation/reference/http/http-headers/
20
+ - name: vercel
21
+ kind: host
22
+ headers: {x-vercel-id: "*", server: vercel}
23
+ paths: ["/_next/**", "/_vercel/**"]
24
+ docs: https://vercel.com/docs/headers/response-headers
25
+ - name: netlify
26
+ kind: host
27
+ headers: {x-nf-request-id: "*", server: netlify}
28
+ docs: https://docs.netlify.com/manage/routing/headers/
29
+ - name: github-pages
30
+ kind: host
31
+ headers: {server: GitHub.com, x-github-request-id: "*"}
32
+ docs: https://docs.github.com/en/pages
33
+ - name: wordpress
34
+ kind: cms
35
+ generator: ["WordPress*"]
36
+ headers: {link: "*api.w.org*"}
37
+ paths: ["/wp-content/**", "/wp-includes/**", "/wp-json/**"]
38
+ docs: https://developer.wordpress.org/
39
+ - name: drupal
40
+ kind: cms
41
+ generator: ["Drupal*"]
42
+ headers: {x-generator: "Drupal*", x-drupal-cache: "*"}
43
+ paths: ["/sites/default/files/**", "/core/misc/**"]
44
+ docs: https://www.drupal.org/docs
45
+ - name: nextjs
46
+ kind: framework
47
+ headers: {x-powered-by: "Next.js*"}
48
+ paths: ["/_next/static/**"]
49
+ docs: https://nextjs.org/docs
50
+ - name: nginx
51
+ kind: server
52
+ headers: {server: "nginx*"}
53
+ docs: https://nginx.org/en/docs/
54
+ - name: apache
55
+ kind: server
56
+ headers: {server: "Apache*"}
57
+ docs: https://httpd.apache.org/docs/