@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.
- package/LICENSE +1 -1
- package/README.md +65 -15
- package/dist/brand.d.ts +11 -0
- package/dist/brand.js +22 -0
- package/dist/brand.js.map +1 -0
- package/dist/cli.js +125 -80
- package/dist/cli.js.map +1 -1
- package/dist/core/audit.d.ts +16 -16
- package/dist/core/audit.js +363 -248
- package/dist/core/audit.js.map +1 -1
- package/dist/core/concurrency.d.ts +4 -4
- package/dist/core/concurrency.js +33 -23
- package/dist/core/concurrency.js.map +1 -1
- package/dist/core/crawl.d.ts +5 -5
- package/dist/core/crawl.js +250 -121
- package/dist/core/crawl.js.map +1 -1
- package/dist/core/fetch.d.ts +5 -5
- package/dist/core/fetch.js +151 -100
- package/dist/core/fetch.js.map +1 -1
- package/dist/core/html/dom.d.ts +13 -0
- package/dist/core/html/dom.js +17 -0
- package/dist/core/html/dom.js.map +1 -0
- package/dist/core/html/extract.d.ts +2 -2
- package/dist/core/html/extract.js +168 -111
- package/dist/core/html/extract.js.map +1 -1
- package/dist/core/html/structured-data.d.ts +16 -6
- package/dist/core/html/structured-data.js +180 -145
- package/dist/core/html/structured-data.js.map +1 -1
- package/dist/core/html/text.d.ts +14 -14
- package/dist/core/html/text.js +110 -107
- package/dist/core/html/text.js.map +1 -1
- package/dist/core/lighthouse.d.ts +26 -25
- package/dist/core/lighthouse.js +181 -105
- package/dist/core/lighthouse.js.map +1 -1
- package/dist/core/performance-rules.d.ts +2 -2
- package/dist/core/performance-rules.js +105 -33
- package/dist/core/performance-rules.js.map +1 -1
- package/dist/core/render-rules.d.ts +5 -4
- package/dist/core/render-rules.js +129 -62
- package/dist/core/render-rules.js.map +1 -1
- package/dist/core/render.d.ts +2 -2
- package/dist/core/render.js +29 -23
- package/dist/core/render.js.map +1 -1
- package/dist/core/report/markdown.d.ts +2 -2
- package/dist/core/report/markdown.js +110 -131
- package/dist/core/report/markdown.js.map +1 -1
- package/dist/core/robots.d.ts +5 -5
- package/dist/core/robots.js +31 -16
- package/dist/core/robots.js.map +1 -1
- package/dist/core/rules/canonical.d.ts +1 -1
- package/dist/core/rules/canonical.js +93 -57
- package/dist/core/rules/canonical.js.map +1 -1
- package/dist/core/rules/content.js +40 -26
- package/dist/core/rules/content.js.map +1 -1
- package/dist/core/rules/document.js +64 -41
- package/dist/core/rules/document.js.map +1 -1
- package/dist/core/rules/headings.js +58 -38
- package/dist/core/rules/headings.js.map +1 -1
- package/dist/core/rules/hreflang.js +70 -38
- package/dist/core/rules/hreflang.js.map +1 -1
- package/dist/core/rules/images.js +44 -26
- package/dist/core/rules/images.js.map +1 -1
- package/dist/core/rules/index.d.ts +6 -6
- package/dist/core/rules/index.js +36 -35
- package/dist/core/rules/index.js.map +1 -1
- package/dist/core/rules/indexing.d.ts +2 -2
- package/dist/core/rules/indexing.js +48 -26
- package/dist/core/rules/indexing.js.map +1 -1
- package/dist/core/rules/keyword.js +84 -47
- package/dist/core/rules/keyword.js.map +1 -1
- package/dist/core/rules/links.js +72 -37
- package/dist/core/rules/links.js.map +1 -1
- package/dist/core/rules/meta.js +55 -34
- package/dist/core/rules/meta.js.map +1 -1
- package/dist/core/rules/response.js +75 -41
- package/dist/core/rules/response.js.map +1 -1
- package/dist/core/rules/rule.d.ts +6 -6
- package/dist/core/rules/rule.js +36 -36
- package/dist/core/rules/rule.js.map +1 -1
- package/dist/core/rules/social.js +86 -45
- package/dist/core/rules/social.js.map +1 -1
- package/dist/core/rules/structured-data.d.ts +6 -4
- package/dist/core/rules/structured-data.js +314 -102
- package/dist/core/rules/structured-data.js.map +1 -1
- package/dist/core/rules/title.js +48 -33
- package/dist/core/rules/title.js.map +1 -1
- package/dist/core/score.d.ts +3 -3
- package/dist/core/score.js +11 -9
- package/dist/core/score.js.map +1 -1
- package/dist/core/site-rules.d.ts +3 -3
- package/dist/core/site-rules.js +409 -198
- package/dist/core/site-rules.js.map +1 -1
- package/dist/core/sitemap.d.ts +5 -5
- package/dist/core/sitemap.js +109 -64
- package/dist/core/sitemap.js.map +1 -1
- package/dist/core/static.d.ts +2 -2
- package/dist/core/static.js +209 -112
- package/dist/core/static.js.map +1 -1
- package/dist/core/summary.d.ts +2 -2
- package/dist/core/summary.js +11 -6
- package/dist/core/summary.js.map +1 -1
- package/dist/core/types.d.ts +14 -14
- package/dist/core/types.js +15 -8
- package/dist/core/types.js.map +1 -1
- package/dist/core/url.d.ts +11 -11
- package/dist/core/url.js +122 -70
- package/dist/core/url.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp-bin.js +7 -4
- package/dist/mcp-bin.js.map +1 -1
- package/dist/mcp.d.ts +3 -3
- package/dist/mcp.js +312 -122
- package/dist/mcp.js.map +1 -1
- package/dist/version.d.ts +0 -1
- package/dist/version.js +4 -2
- package/dist/version.js.map +1 -1
- package/package.json +27 -9
package/dist/core/url.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const isHttpUrl: (value: string) => boolean;
|
|
2
2
|
/** Resolve `href` against `base`, returning null for non-http(s) or unparsable values. */
|
|
3
|
-
export declare
|
|
3
|
+
export declare const resolveUrl: (href: string, base: string) => string | null;
|
|
4
4
|
/**
|
|
5
5
|
* Canonical form used for visited-sets and comparisons: lower-cased scheme/host,
|
|
6
6
|
* default ports dropped, fragment removed, tracking parameters removed.
|
|
7
7
|
* Path and remaining query are kept verbatim (trailing slashes matter to servers).
|
|
8
8
|
*/
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
11
|
-
export declare
|
|
9
|
+
export declare const normalizeUrl: (input: string) => string | null;
|
|
10
|
+
export declare const hostOf: (url: string) => string | null;
|
|
11
|
+
export declare const stripWww: (host: string) => string;
|
|
12
12
|
/** Same site: identical host ignoring `www.`; optionally any subdomain of the start host. */
|
|
13
|
-
export declare
|
|
13
|
+
export declare const isSameSite: (candidate: string, startHost: string, includeSubdomains?: boolean) => boolean;
|
|
14
14
|
/** Heuristic: does the path look like it points at an HTML document (not an asset)? */
|
|
15
|
-
export declare
|
|
16
|
-
/** Compare two URLs by path only (used for static-directory audits where the host is synthetic). */
|
|
17
|
-
export declare function samePath(a: string, b: string): boolean;
|
|
15
|
+
export declare const looksLikeHtml: (url: string) => boolean;
|
|
18
16
|
/** `/dir/index.html` -> `/dir/`, `/page.html` -> `/page`, trailing slash dropped except root. */
|
|
19
|
-
export declare
|
|
20
|
-
|
|
17
|
+
export declare const normalizePath: (pathname: string) => string;
|
|
18
|
+
/** Compare two URLs by path only (used for static-directory audits where the host is synthetic). */
|
|
19
|
+
export declare const samePath: (a: string, b: string) => boolean;
|
|
20
|
+
export declare const truncate: (value: string, max?: number) => string;
|
package/dist/core/url.js
CHANGED
|
@@ -1,125 +1,169 @@
|
|
|
1
|
-
import path from
|
|
1
|
+
import path from "node:path";
|
|
2
2
|
const TRACKING_PARAMS = new Set([
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
"utm_source",
|
|
4
|
+
"utm_medium",
|
|
5
|
+
"utm_campaign",
|
|
6
|
+
"utm_term",
|
|
7
|
+
"utm_content",
|
|
8
|
+
"utm_id",
|
|
9
|
+
"fbclid",
|
|
10
|
+
"gclid",
|
|
11
|
+
"dclid",
|
|
12
|
+
"msclkid",
|
|
13
|
+
"mc_cid",
|
|
14
|
+
"mc_eid",
|
|
15
|
+
"_hsenc",
|
|
16
|
+
"_hsmi",
|
|
17
|
+
"ref",
|
|
18
18
|
]);
|
|
19
19
|
const NON_HTML_EXTENSIONS = new Set([
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
".pdf",
|
|
21
|
+
".jpg",
|
|
22
|
+
".jpeg",
|
|
23
|
+
".png",
|
|
24
|
+
".gif",
|
|
25
|
+
".webp",
|
|
26
|
+
".avif",
|
|
27
|
+
".svg",
|
|
28
|
+
".ico",
|
|
29
|
+
".bmp",
|
|
30
|
+
".tiff",
|
|
31
|
+
".mp4",
|
|
32
|
+
".webm",
|
|
33
|
+
".mp3",
|
|
34
|
+
".wav",
|
|
35
|
+
".ogg",
|
|
36
|
+
".mov",
|
|
37
|
+
".avi",
|
|
38
|
+
".zip",
|
|
39
|
+
".gz",
|
|
40
|
+
".tar",
|
|
41
|
+
".rar",
|
|
42
|
+
".7z",
|
|
43
|
+
".dmg",
|
|
44
|
+
".exe",
|
|
45
|
+
".msi",
|
|
46
|
+
".css",
|
|
47
|
+
".js",
|
|
48
|
+
".mjs",
|
|
49
|
+
".map",
|
|
50
|
+
".json",
|
|
51
|
+
".xml",
|
|
52
|
+
".txt",
|
|
53
|
+
".rss",
|
|
54
|
+
".atom",
|
|
55
|
+
".woff",
|
|
56
|
+
".woff2",
|
|
57
|
+
".ttf",
|
|
58
|
+
".otf",
|
|
59
|
+
".eot",
|
|
60
|
+
".doc",
|
|
61
|
+
".docx",
|
|
62
|
+
".xls",
|
|
63
|
+
".xlsx",
|
|
64
|
+
".ppt",
|
|
65
|
+
".pptx",
|
|
66
|
+
".csv",
|
|
26
67
|
]);
|
|
27
|
-
export
|
|
28
|
-
return /^https?:\/\//i.test(value.trim());
|
|
29
|
-
}
|
|
68
|
+
export const isHttpUrl = (value) => /^https?:\/\//iu.test(value.trim());
|
|
30
69
|
/** Resolve `href` against `base`, returning null for non-http(s) or unparsable values. */
|
|
31
|
-
export
|
|
70
|
+
export const resolveUrl = (href, base) => {
|
|
32
71
|
const trimmed = href.trim();
|
|
33
|
-
if (!trimmed)
|
|
72
|
+
if (!trimmed) {
|
|
34
73
|
return null;
|
|
35
|
-
|
|
74
|
+
}
|
|
75
|
+
if (/^(?:mailto|tel|sms|javascript|data|blob|file|ftp|whatsapp|skype):/iu.test(trimmed)) {
|
|
36
76
|
return null;
|
|
77
|
+
}
|
|
37
78
|
try {
|
|
38
79
|
const url = new URL(trimmed, base);
|
|
39
|
-
if (url.protocol !==
|
|
80
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
40
81
|
return null;
|
|
82
|
+
}
|
|
41
83
|
return url.href;
|
|
42
84
|
}
|
|
43
85
|
catch {
|
|
44
86
|
return null;
|
|
45
87
|
}
|
|
46
|
-
}
|
|
88
|
+
};
|
|
47
89
|
/**
|
|
48
90
|
* Canonical form used for visited-sets and comparisons: lower-cased scheme/host,
|
|
49
91
|
* default ports dropped, fragment removed, tracking parameters removed.
|
|
50
92
|
* Path and remaining query are kept verbatim (trailing slashes matter to servers).
|
|
51
93
|
*/
|
|
52
|
-
export
|
|
94
|
+
export const normalizeUrl = (input) => {
|
|
53
95
|
try {
|
|
54
96
|
const url = new URL(input);
|
|
55
|
-
if (url.protocol !==
|
|
97
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
56
98
|
return null;
|
|
57
|
-
|
|
99
|
+
}
|
|
100
|
+
url.hash = "";
|
|
58
101
|
url.hostname = url.hostname.toLowerCase();
|
|
59
|
-
if ((url.protocol ===
|
|
60
|
-
url.port
|
|
102
|
+
if ((url.protocol === "http:" && url.port === "80") ||
|
|
103
|
+
(url.protocol === "https:" && url.port === "443")) {
|
|
104
|
+
url.port = "";
|
|
61
105
|
}
|
|
62
106
|
const params = [...url.searchParams.keys()];
|
|
63
107
|
for (const key of params) {
|
|
64
|
-
if (TRACKING_PARAMS.has(key.toLowerCase()))
|
|
108
|
+
if (TRACKING_PARAMS.has(key.toLowerCase())) {
|
|
65
109
|
url.searchParams.delete(key);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if ([...url.searchParams.keys()].length === 0) {
|
|
113
|
+
url.search = "";
|
|
66
114
|
}
|
|
67
|
-
if ([...url.searchParams.keys()].length === 0)
|
|
68
|
-
url.search = '';
|
|
69
115
|
return url.href;
|
|
70
116
|
}
|
|
71
117
|
catch {
|
|
72
118
|
return null;
|
|
73
119
|
}
|
|
74
|
-
}
|
|
75
|
-
export
|
|
120
|
+
};
|
|
121
|
+
export const hostOf = (url) => {
|
|
76
122
|
try {
|
|
77
123
|
return new URL(url).hostname.toLowerCase();
|
|
78
124
|
}
|
|
79
125
|
catch {
|
|
80
126
|
return null;
|
|
81
127
|
}
|
|
82
|
-
}
|
|
83
|
-
export
|
|
84
|
-
return host.replace(/^www\./i, '');
|
|
85
|
-
}
|
|
128
|
+
};
|
|
129
|
+
export const stripWww = (host) => host.replace(/^www\./iu, "");
|
|
86
130
|
/** Same site: identical host ignoring `www.`; optionally any subdomain of the start host. */
|
|
87
|
-
export
|
|
131
|
+
export const isSameSite = (candidate, startHost, includeSubdomains = false) => {
|
|
88
132
|
const host = hostOf(candidate);
|
|
89
|
-
if (!host)
|
|
133
|
+
if (!host) {
|
|
90
134
|
return false;
|
|
135
|
+
}
|
|
91
136
|
const a = stripWww(host);
|
|
92
137
|
const b = stripWww(startHost.toLowerCase());
|
|
93
|
-
if (a === b)
|
|
138
|
+
if (a === b) {
|
|
94
139
|
return true;
|
|
140
|
+
}
|
|
95
141
|
return includeSubdomains && a.endsWith(`.${b}`);
|
|
96
|
-
}
|
|
142
|
+
};
|
|
97
143
|
/** Heuristic: does the path look like it points at an HTML document (not an asset)? */
|
|
98
|
-
export
|
|
144
|
+
export const looksLikeHtml = (url) => {
|
|
99
145
|
try {
|
|
100
146
|
const { pathname } = new URL(url);
|
|
101
147
|
const ext = path.posix.extname(pathname).toLowerCase();
|
|
102
|
-
if (!ext)
|
|
148
|
+
if (!ext) {
|
|
103
149
|
return true;
|
|
104
|
-
|
|
150
|
+
}
|
|
151
|
+
if (ext === ".html" ||
|
|
152
|
+
ext === ".htm" ||
|
|
153
|
+
ext === ".php" ||
|
|
154
|
+
ext === ".asp" ||
|
|
155
|
+
ext === ".aspx" ||
|
|
156
|
+
ext === ".jsp") {
|
|
105
157
|
return true;
|
|
158
|
+
}
|
|
106
159
|
return !NON_HTML_EXTENSIONS.has(ext);
|
|
107
160
|
}
|
|
108
161
|
catch {
|
|
109
162
|
return false;
|
|
110
163
|
}
|
|
111
|
-
}
|
|
112
|
-
/** Compare two URLs by path only (used for static-directory audits where the host is synthetic). */
|
|
113
|
-
export function samePath(a, b) {
|
|
114
|
-
try {
|
|
115
|
-
return normalizePath(new URL(a).pathname) === normalizePath(new URL(b).pathname);
|
|
116
|
-
}
|
|
117
|
-
catch {
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
164
|
+
};
|
|
121
165
|
/** `/dir/index.html` -> `/dir/`, `/page.html` -> `/page`, trailing slash dropped except root. */
|
|
122
|
-
export
|
|
166
|
+
export const normalizePath = (pathname) => {
|
|
123
167
|
let p = pathname;
|
|
124
168
|
try {
|
|
125
169
|
p = decodeURIComponent(p);
|
|
@@ -127,13 +171,21 @@ export function normalizePath(pathname) {
|
|
|
127
171
|
catch {
|
|
128
172
|
/* keep as-is */
|
|
129
173
|
}
|
|
130
|
-
p = p.replace(/\/index\.html?$/
|
|
131
|
-
p = p.replace(/\.html?$/
|
|
132
|
-
if (p.length > 1 && p.endsWith(
|
|
174
|
+
p = p.replace(/\/index\.html?$/iu, "/");
|
|
175
|
+
p = p.replace(/\.html?$/iu, "");
|
|
176
|
+
if (p.length > 1 && p.endsWith("/")) {
|
|
133
177
|
p = p.slice(0, -1);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
178
|
+
}
|
|
179
|
+
return p === "" ? "/" : p;
|
|
180
|
+
};
|
|
181
|
+
/** Compare two URLs by path only (used for static-directory audits where the host is synthetic). */
|
|
182
|
+
export const samePath = (a, b) => {
|
|
183
|
+
try {
|
|
184
|
+
return (normalizePath(new URL(a).pathname) === normalizePath(new URL(b).pathname));
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
export const truncate = (value, max = 120) => value.length > max ? `${value.slice(0, max - 1)}…` : value;
|
|
139
191
|
//# sourceMappingURL=url.js.map
|
package/dist/core/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/core/url.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,UAAU;IACV,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,MAAM,
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/core/url.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export { auditHtml, auditUrl, auditFile, auditSite, auditDirectory, auditTarget, compactAudit, rollupIssues, DEFAULT_CRAWL } from
|
|
3
|
-
export type { AuditOptions, CrawlOptions, HtmlAuditInput, ProgressEvent } from
|
|
4
|
-
export { extractPage } from
|
|
5
|
-
export { ALL_RULES, PAGE_RULES, findRule, runPageRules } from
|
|
6
|
-
export { renderMarkdown } from
|
|
7
|
-
export { runLighthouse, LighthouseUnavailableError } from
|
|
8
|
-
export { renderPage, RenderUnavailableError } from
|
|
9
|
-
export { fetchPage, probeUrl, DEFAULT_USER_AGENT } from
|
|
10
|
-
export type { FetchOptions, FetchResult } from
|
|
11
|
-
export { createMcpServer, startMcpServer } from
|
|
1
|
+
export * from "./core/types.js";
|
|
2
|
+
export { auditHtml, auditUrl, auditFile, auditSite, auditDirectory, auditTarget, compactAudit, rollupIssues, DEFAULT_CRAWL, } from "./core/audit.js";
|
|
3
|
+
export type { AuditOptions, CrawlOptions, HtmlAuditInput, ProgressEvent, } from "./core/audit.js";
|
|
4
|
+
export { extractPage } from "./core/html/extract.js";
|
|
5
|
+
export { ALL_RULES, PAGE_RULES, findRule, runPageRules, } from "./core/rules/index.js";
|
|
6
|
+
export { renderMarkdown } from "./core/report/markdown.js";
|
|
7
|
+
export { runLighthouse, LighthouseUnavailableError, } from "./core/lighthouse.js";
|
|
8
|
+
export { renderPage, RenderUnavailableError } from "./core/render.js";
|
|
9
|
+
export { fetchPage, probeUrl, DEFAULT_USER_AGENT } from "./core/fetch.js";
|
|
10
|
+
export type { FetchOptions, FetchResult } from "./core/fetch.js";
|
|
11
|
+
export { createMcpServer, startMcpServer } from "./mcp.js";
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export { auditHtml, auditUrl, auditFile, auditSite, auditDirectory, auditTarget, compactAudit, rollupIssues, DEFAULT_CRAWL } from
|
|
3
|
-
export { extractPage } from
|
|
4
|
-
export { ALL_RULES, PAGE_RULES, findRule, runPageRules } from
|
|
5
|
-
export { renderMarkdown } from
|
|
6
|
-
export { runLighthouse, LighthouseUnavailableError } from
|
|
7
|
-
export { renderPage, RenderUnavailableError } from
|
|
8
|
-
export { fetchPage, probeUrl, DEFAULT_USER_AGENT } from
|
|
9
|
-
export { createMcpServer, startMcpServer } from
|
|
1
|
+
export * from "./core/types.js";
|
|
2
|
+
export { auditHtml, auditUrl, auditFile, auditSite, auditDirectory, auditTarget, compactAudit, rollupIssues, DEFAULT_CRAWL, } from "./core/audit.js";
|
|
3
|
+
export { extractPage } from "./core/html/extract.js";
|
|
4
|
+
export { ALL_RULES, PAGE_RULES, findRule, runPageRules, } from "./core/rules/index.js";
|
|
5
|
+
export { renderMarkdown } from "./core/report/markdown.js";
|
|
6
|
+
export { runLighthouse, LighthouseUnavailableError, } from "./core/lighthouse.js";
|
|
7
|
+
export { renderPage, RenderUnavailableError } from "./core/render.js";
|
|
8
|
+
export { fetchPage, probeUrl, DEFAULT_USER_AGENT } from "./core/fetch.js";
|
|
9
|
+
export { createMcpServer, startMcpServer } from "./mcp.js";
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EACL,aAAa,EACb,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAI1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/mcp-bin.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { startMcpServer } from
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { startMcpServer } from "./mcp.js";
|
|
3
|
+
try {
|
|
4
|
+
await startMcpServer();
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
process.stderr.write(`agentic-seo-check MCP server failed to start: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
5
8
|
process.exit(1);
|
|
6
|
-
}
|
|
9
|
+
}
|
|
7
10
|
//# sourceMappingURL=mcp-bin.js.map
|
package/dist/mcp-bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-bin.js","sourceRoot":"","sources":["../src/mcp-bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,cAAc,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp-bin.js","sourceRoot":"","sources":["../src/mcp-bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,IAAI,CAAC;IACH,MAAM,cAAc,EAAE,CAAC;AACzB,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC5G,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/mcp.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { McpServer } from
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
export declare const MCP_SERVER_NAME = "agentic-seo-check";
|
|
3
3
|
export declare const MCP_SERVER_VERSION: string;
|
|
4
|
-
export declare
|
|
5
|
-
export declare
|
|
4
|
+
export declare const createMcpServer: () => McpServer;
|
|
5
|
+
export declare const startMcpServer: () => Promise<void>;
|