@rivi-software/agentic-seo-check 0.1.0 → 0.1.1

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 (119) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +65 -15
  3. package/dist/brand.d.ts +11 -0
  4. package/dist/brand.js +22 -0
  5. package/dist/brand.js.map +1 -0
  6. package/dist/cli.js +125 -80
  7. package/dist/cli.js.map +1 -1
  8. package/dist/core/audit.d.ts +16 -16
  9. package/dist/core/audit.js +363 -248
  10. package/dist/core/audit.js.map +1 -1
  11. package/dist/core/concurrency.d.ts +4 -4
  12. package/dist/core/concurrency.js +33 -23
  13. package/dist/core/concurrency.js.map +1 -1
  14. package/dist/core/crawl.d.ts +5 -5
  15. package/dist/core/crawl.js +250 -121
  16. package/dist/core/crawl.js.map +1 -1
  17. package/dist/core/fetch.d.ts +5 -5
  18. package/dist/core/fetch.js +151 -100
  19. package/dist/core/fetch.js.map +1 -1
  20. package/dist/core/html/dom.d.ts +13 -0
  21. package/dist/core/html/dom.js +17 -0
  22. package/dist/core/html/dom.js.map +1 -0
  23. package/dist/core/html/extract.d.ts +2 -2
  24. package/dist/core/html/extract.js +168 -111
  25. package/dist/core/html/extract.js.map +1 -1
  26. package/dist/core/html/structured-data.d.ts +16 -6
  27. package/dist/core/html/structured-data.js +180 -145
  28. package/dist/core/html/structured-data.js.map +1 -1
  29. package/dist/core/html/text.d.ts +14 -14
  30. package/dist/core/html/text.js +110 -107
  31. package/dist/core/html/text.js.map +1 -1
  32. package/dist/core/lighthouse.d.ts +26 -25
  33. package/dist/core/lighthouse.js +181 -105
  34. package/dist/core/lighthouse.js.map +1 -1
  35. package/dist/core/performance-rules.d.ts +2 -2
  36. package/dist/core/performance-rules.js +105 -33
  37. package/dist/core/performance-rules.js.map +1 -1
  38. package/dist/core/render-rules.d.ts +5 -4
  39. package/dist/core/render-rules.js +129 -62
  40. package/dist/core/render-rules.js.map +1 -1
  41. package/dist/core/render.d.ts +2 -2
  42. package/dist/core/render.js +29 -23
  43. package/dist/core/render.js.map +1 -1
  44. package/dist/core/report/markdown.d.ts +2 -2
  45. package/dist/core/report/markdown.js +110 -131
  46. package/dist/core/report/markdown.js.map +1 -1
  47. package/dist/core/robots.d.ts +5 -5
  48. package/dist/core/robots.js +31 -16
  49. package/dist/core/robots.js.map +1 -1
  50. package/dist/core/rules/canonical.d.ts +1 -1
  51. package/dist/core/rules/canonical.js +93 -57
  52. package/dist/core/rules/canonical.js.map +1 -1
  53. package/dist/core/rules/content.js +40 -26
  54. package/dist/core/rules/content.js.map +1 -1
  55. package/dist/core/rules/document.js +64 -41
  56. package/dist/core/rules/document.js.map +1 -1
  57. package/dist/core/rules/headings.js +58 -38
  58. package/dist/core/rules/headings.js.map +1 -1
  59. package/dist/core/rules/hreflang.js +70 -38
  60. package/dist/core/rules/hreflang.js.map +1 -1
  61. package/dist/core/rules/images.js +44 -26
  62. package/dist/core/rules/images.js.map +1 -1
  63. package/dist/core/rules/index.d.ts +6 -6
  64. package/dist/core/rules/index.js +36 -35
  65. package/dist/core/rules/index.js.map +1 -1
  66. package/dist/core/rules/indexing.d.ts +2 -2
  67. package/dist/core/rules/indexing.js +48 -26
  68. package/dist/core/rules/indexing.js.map +1 -1
  69. package/dist/core/rules/keyword.js +84 -47
  70. package/dist/core/rules/keyword.js.map +1 -1
  71. package/dist/core/rules/links.js +72 -37
  72. package/dist/core/rules/links.js.map +1 -1
  73. package/dist/core/rules/meta.js +55 -34
  74. package/dist/core/rules/meta.js.map +1 -1
  75. package/dist/core/rules/response.js +75 -41
  76. package/dist/core/rules/response.js.map +1 -1
  77. package/dist/core/rules/rule.d.ts +6 -6
  78. package/dist/core/rules/rule.js +36 -36
  79. package/dist/core/rules/rule.js.map +1 -1
  80. package/dist/core/rules/social.js +86 -45
  81. package/dist/core/rules/social.js.map +1 -1
  82. package/dist/core/rules/structured-data.d.ts +6 -4
  83. package/dist/core/rules/structured-data.js +314 -102
  84. package/dist/core/rules/structured-data.js.map +1 -1
  85. package/dist/core/rules/title.js +48 -33
  86. package/dist/core/rules/title.js.map +1 -1
  87. package/dist/core/score.d.ts +3 -3
  88. package/dist/core/score.js +11 -9
  89. package/dist/core/score.js.map +1 -1
  90. package/dist/core/site-rules.d.ts +3 -3
  91. package/dist/core/site-rules.js +409 -198
  92. package/dist/core/site-rules.js.map +1 -1
  93. package/dist/core/sitemap.d.ts +5 -5
  94. package/dist/core/sitemap.js +109 -64
  95. package/dist/core/sitemap.js.map +1 -1
  96. package/dist/core/static.d.ts +2 -2
  97. package/dist/core/static.js +209 -112
  98. package/dist/core/static.js.map +1 -1
  99. package/dist/core/summary.d.ts +2 -2
  100. package/dist/core/summary.js +11 -6
  101. package/dist/core/summary.js.map +1 -1
  102. package/dist/core/types.d.ts +14 -14
  103. package/dist/core/types.js +15 -8
  104. package/dist/core/types.js.map +1 -1
  105. package/dist/core/url.d.ts +11 -11
  106. package/dist/core/url.js +122 -70
  107. package/dist/core/url.js.map +1 -1
  108. package/dist/index.d.ts +11 -11
  109. package/dist/index.js +9 -9
  110. package/dist/index.js.map +1 -1
  111. package/dist/mcp-bin.js +7 -4
  112. package/dist/mcp-bin.js.map +1 -1
  113. package/dist/mcp.d.ts +3 -3
  114. package/dist/mcp.js +312 -122
  115. package/dist/mcp.js.map +1 -1
  116. package/dist/version.d.ts +0 -1
  117. package/dist/version.js +4 -2
  118. package/dist/version.js.map +1 -1
  119. package/package.json +27 -9
@@ -1,149 +1,152 @@
1
1
  /** Text analysis helpers: word counts, readability, placeholder detection. */
2
2
  const WORD_RE = /[\p{L}\p{N}][\p{L}\p{N}'’-]*/gu;
3
- export function words(text) {
4
- return text.match(WORD_RE) ?? [];
5
- }
6
- export function wordCount(text) {
7
- return words(text).length;
8
- }
9
- export function collapseWhitespace(text) {
10
- return text.replace(/\s+/g, ' ').trim();
11
- }
12
- export function sentenceCount(text) {
13
- const parts = text.split(/[.!?]+(?:\s+|$)/).filter((s) => s.trim().length > 0);
3
+ export const words = (text) => text.match(WORD_RE) ?? [];
4
+ export const wordCount = (text) => words(text).length;
5
+ export const collapseWhitespace = (text) => text.replaceAll(/\s+/gu, " ").trim();
6
+ export const sentenceCount = (text) => {
7
+ const parts = text
8
+ .split(/[.!?]+(?:\s+|$)/u)
9
+ .filter((s) => s.trim().length > 0);
14
10
  return Math.max(1, parts.length);
15
- }
11
+ };
16
12
  /** English syllable heuristic: vowel groups minus silent trailing e, min 1. */
17
- export function syllables(word) {
18
- const w = word.toLowerCase().replace(/[^a-z]/g, '');
19
- if (!w)
13
+ export const syllables = (word) => {
14
+ const w = word.toLowerCase().replaceAll(/[^a-z]/gu, "");
15
+ if (!w) {
20
16
  return 0;
21
- if (w.length <= 3)
17
+ }
18
+ if (w.length <= 3) {
22
19
  return 1;
23
- let count = (w.replace(/e$/, '').match(/[aeiouy]+/g) ?? []).length;
24
- if (/le$/.test(w) && !/[aeiouy]le$/.test(w))
25
- count++;
20
+ }
21
+ let count = (w.replace(/e$/u, "").match(/[aeiouy]+/gu) ?? []).length;
22
+ if (w.endsWith("le") && !/[aeiouy]le$/u.test(w)) {
23
+ count += 1;
24
+ }
26
25
  return Math.max(1, count);
27
- }
26
+ };
28
27
  /**
29
28
  * Flesch Reading Ease (English formula). Returns null when there is not enough text.
30
29
  * 90-100 very easy, 60-70 plain English, 30-50 difficult, <30 very difficult.
31
30
  */
32
- export function fleschReadingEase(text) {
31
+ export const fleschReadingEase = (text) => {
33
32
  const ws = words(text);
34
- if (ws.length < 100)
33
+ if (ws.length < 100) {
35
34
  return null;
35
+ }
36
36
  const sentences = sentenceCount(text);
37
37
  const syl = ws.reduce((sum, w) => sum + syllables(w), 0);
38
38
  const score = 206.835 - 1.015 * (ws.length / sentences) - 84.6 * (syl / ws.length);
39
39
  return Math.round(score * 10) / 10;
40
- }
41
- const PLACEHOLDER_RE = /lorem ipsum|dolor sit amet|consectetur adipiscing/i;
42
- export function hasPlaceholderText(text) {
43
- return PLACEHOLDER_RE.test(text);
44
- }
40
+ };
41
+ const PLACEHOLDER_RE = /lorem ipsum|dolor sit amet|consectetur adipiscing/iu;
42
+ export const hasPlaceholderText = (text) => PLACEHOLDER_RE.test(text);
45
43
  export const GENERIC_TITLES = new Set([
46
- 'home',
47
- 'homepage',
48
- 'index',
49
- 'untitled',
50
- 'untitled page',
51
- 'untitled document',
52
- 'document',
53
- 'new page',
54
- 'page',
55
- 'title',
56
- 'welcome',
57
- 'react app',
58
- 'vite app',
59
- 'vite + react',
60
- 'vite + react + ts',
61
- 'vite + vue',
62
- 'vite + svelte',
63
- 'create next app',
64
- 'next app',
65
- 'nuxt app',
66
- 'nuxt',
67
- 'astro',
68
- 'my app',
69
- 'my site',
70
- 'my website',
71
- 'website',
72
- 'default',
73
- 'test',
74
- 'hello world',
75
- 'svelte app',
76
- 'angular app',
77
- 'gatsby default starter',
78
- 'remix app',
79
- 'tanstack start starter',
80
- 'example',
44
+ "home",
45
+ "homepage",
46
+ "index",
47
+ "untitled",
48
+ "untitled page",
49
+ "untitled document",
50
+ "document",
51
+ "new page",
52
+ "page",
53
+ "title",
54
+ "welcome",
55
+ "react app",
56
+ "vite app",
57
+ "vite + react",
58
+ "vite + react + ts",
59
+ "vite + vue",
60
+ "vite + svelte",
61
+ "create next app",
62
+ "next app",
63
+ "nuxt app",
64
+ "nuxt",
65
+ "astro",
66
+ "my app",
67
+ "my site",
68
+ "my website",
69
+ "website",
70
+ "default",
71
+ "test",
72
+ "hello world",
73
+ "svelte app",
74
+ "angular app",
75
+ "gatsby default starter",
76
+ "remix app",
77
+ "tanstack start starter",
78
+ "example",
81
79
  ]);
82
- export function isGenericTitle(title) {
83
- return GENERIC_TITLES.has(collapseWhitespace(title).toLowerCase());
84
- }
80
+ export const isGenericTitle = (title) => GENERIC_TITLES.has(collapseWhitespace(title).toLowerCase());
85
81
  export const GENERIC_ANCHORS = new Set([
86
- 'click here',
87
- 'here',
88
- 'read more',
89
- 'learn more',
90
- 'more',
91
- 'link',
92
- 'this',
93
- 'this page',
94
- 'continue',
95
- 'continue reading',
96
- 'details',
97
- 'more info',
98
- 'info',
99
- 'go',
100
- 'page',
101
- 'article',
102
- 'website',
103
- 'url',
104
- 'www',
82
+ "click here",
83
+ "here",
84
+ "read more",
85
+ "learn more",
86
+ "more",
87
+ "link",
88
+ "this",
89
+ "this page",
90
+ "continue",
91
+ "continue reading",
92
+ "details",
93
+ "more info",
94
+ "info",
95
+ "go",
96
+ "page",
97
+ "article",
98
+ "website",
99
+ "url",
100
+ "www",
105
101
  ]);
106
- export function isGenericAnchor(text) {
107
- const t = collapseWhitespace(text).toLowerCase().replace(/[.!…»›>]+$/, '').trim();
102
+ export const isGenericAnchor = (text) => {
103
+ const t = collapseWhitespace(text)
104
+ .toLowerCase()
105
+ .replace(/[.!…»›>]+$/u, "")
106
+ .trim();
108
107
  return GENERIC_ANCHORS.has(t);
109
- }
110
- export function normalizeForComparison(text) {
111
- return collapseWhitespace(text).toLowerCase();
112
- }
113
- export function includesKeyword(haystack, keyword) {
114
- if (!haystack)
108
+ };
109
+ export const normalizeForComparison = (text) => collapseWhitespace(text).toLowerCase();
110
+ export const includesKeyword = (haystack, keyword) => {
111
+ if (!haystack) {
115
112
  return false;
113
+ }
116
114
  return normalizeForComparison(haystack).includes(normalizeForComparison(keyword));
117
- }
118
- export function keywordOccurrences(text, keyword) {
115
+ };
116
+ export const keywordOccurrences = (text, keyword) => {
119
117
  const hay = normalizeForComparison(text);
120
118
  const needle = normalizeForComparison(keyword);
121
- if (!needle)
119
+ if (!needle) {
122
120
  return 0;
121
+ }
123
122
  let count = 0;
124
123
  let idx = hay.indexOf(needle);
125
124
  while (idx !== -1) {
126
- count++;
125
+ count += 1;
127
126
  idx = hay.indexOf(needle, idx + needle.length);
128
127
  }
129
128
  return count;
130
- }
129
+ };
131
130
  /** 5-word shingles for near-duplicate detection. */
132
- export function shingles(text, size = 5) {
131
+ export const shingles = (text, size = 5) => {
133
132
  const ws = words(normalizeForComparison(text));
134
133
  const out = new Set();
135
- for (let i = 0; i + size <= ws.length; i++)
136
- out.add(ws.slice(i, i + size).join(' '));
134
+ for (let i = 0; i + size <= ws.length; i += 1) {
135
+ out.add(ws.slice(i, i + size).join(" "));
136
+ }
137
137
  return out;
138
- }
139
- export function jaccard(a, b) {
140
- if (a.size === 0 && b.size === 0)
138
+ };
139
+ export const jaccard = (a, b) => {
140
+ if (a.size === 0 && b.size === 0) {
141
141
  return 1;
142
+ }
142
143
  let inter = 0;
143
144
  const [small, large] = a.size < b.size ? [a, b] : [b, a];
144
- for (const s of small)
145
- if (large.has(s))
146
- inter++;
145
+ for (const s of small) {
146
+ if (large.has(s)) {
147
+ inter += 1;
148
+ }
149
+ }
147
150
  return inter / (a.size + b.size - inter);
148
- }
151
+ };
149
152
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/core/html/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/core/html/text.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,24 @@
1
- import type { PerformanceResult } from './types.js';
1
+ import type { PerformanceResult } from "./types.js";
2
2
  export declare class LighthouseUnavailableError extends Error {
3
3
  constructor(message: string);
4
4
  }
5
5
  export interface LighthouseRunOptions {
6
- formFactor?: 'mobile' | 'desktop';
6
+ formFactor?: "mobile" | "desktop";
7
7
  timeoutMs?: number;
8
8
  chromePath?: string;
9
9
  userAgent?: string;
10
10
  headers?: Record<string, string>;
11
11
  }
12
12
  export declare const LIGHTHOUSE_INSTALL_HINT = "Install Lighthouse and a Chrome: `pnpm add -D lighthouse chrome-launcher` plus Google Chrome, or `pnpm exec playwright install chromium` (the Playwright Chromium is used automatically when found).";
13
- type LhrLike = {
14
- lighthouseVersion: string;
15
- requestedUrl?: string;
16
- finalDisplayedUrl?: string;
17
- finalUrl?: string;
18
- runtimeError?: {
19
- code: string;
20
- message: string;
21
- };
22
- categories: Record<string, {
23
- score: number | null;
24
- auditRefs: {
25
- id: string;
26
- weight: number;
27
- group?: string;
28
- }[];
29
- } | undefined>;
30
- audits: Record<string, LhAudit | undefined>;
31
- };
32
- type LhAudit = {
13
+ interface LhCategory {
14
+ score: number | null;
15
+ auditRefs: {
16
+ id: string;
17
+ weight: number;
18
+ group?: string;
19
+ }[];
20
+ }
21
+ interface LhAudit {
33
22
  id: string;
34
23
  title: string;
35
24
  description: string;
@@ -43,7 +32,19 @@ type LhAudit = {
43
32
  overallSavingsMs?: number;
44
33
  overallSavingsBytes?: number;
45
34
  };
46
- };
47
- export declare function runLighthouse(url: string, options?: LighthouseRunOptions): Promise<PerformanceResult>;
48
- export declare function summarize(lhr: LhrLike, requestedUrl: string, formFactor: 'mobile' | 'desktop'): PerformanceResult;
35
+ }
36
+ interface LhrLike {
37
+ lighthouseVersion: string;
38
+ requestedUrl?: string;
39
+ finalDisplayedUrl?: string;
40
+ finalUrl?: string;
41
+ runtimeError?: {
42
+ code: string;
43
+ message: string;
44
+ };
45
+ categories: Record<string, LhCategory | undefined>;
46
+ audits: Record<string, LhAudit | undefined>;
47
+ }
48
+ export declare const summarize: (lhr: LhrLike, requestedUrl: string, formFactor: "mobile" | "desktop") => PerformanceResult;
49
+ export declare const runLighthouse: (url: string, options?: LighthouseRunOptions) => Promise<PerformanceResult>;
49
50
  export {};