@pseolint/core 0.3.0 → 0.3.2
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/README.md +2 -2
- package/dist/ai/triage.d.ts +15 -1
- package/dist/ai/triage.d.ts.map +1 -1
- package/dist/ai/triage.js +30 -0
- package/dist/ai/triage.js.map +1 -1
- package/dist/analytics-blocklist.d.ts +28 -0
- package/dist/analytics-blocklist.d.ts.map +1 -0
- package/dist/analytics-blocklist.js +129 -0
- package/dist/analytics-blocklist.js.map +1 -0
- package/dist/auditor.d.ts.map +1 -1
- package/dist/auditor.js +13 -5
- package/dist/auditor.js.map +1 -1
- package/dist/formatters/html.d.ts.map +1 -1
- package/dist/formatters/html.js +235 -50
- package/dist/formatters/html.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/renderer.d.ts +14 -0
- package/dist/renderer.d.ts.map +1 -1
- package/dist/renderer.js +130 -4
- package/dist/renderer.js.map +1 -1
- package/dist/rule-references.d.ts.map +1 -1
- package/dist/rule-references.js +1 -0
- package/dist/rule-references.js.map +1 -1
- package/dist/rules/aeo/summary-bait.d.ts +20 -0
- package/dist/rules/aeo/summary-bait.d.ts.map +1 -0
- package/dist/rules/aeo/summary-bait.js +147 -0
- package/dist/rules/aeo/summary-bait.js.map +1 -0
- package/dist/rules/scope.d.ts.map +1 -1
- package/dist/rules/scope.js +1 -0
- package/dist/rules/scope.js.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/formatters/html.js
CHANGED
|
@@ -5,6 +5,12 @@ const SEVERITY_LABEL = {
|
|
|
5
5
|
warning: "Warning",
|
|
6
6
|
info: "Info",
|
|
7
7
|
};
|
|
8
|
+
const SEVERITY_WEIGHT = {
|
|
9
|
+
critical: 100,
|
|
10
|
+
error: 50,
|
|
11
|
+
warning: 10,
|
|
12
|
+
info: 1,
|
|
13
|
+
};
|
|
8
14
|
function severityTone(severity) {
|
|
9
15
|
switch (severity) {
|
|
10
16
|
case "critical":
|
|
@@ -70,11 +76,66 @@ function categoryLabel(name) {
|
|
|
70
76
|
content: "Content quality",
|
|
71
77
|
links: "Link graph",
|
|
72
78
|
tech: "Technical SEO",
|
|
79
|
+
data: "Data binding",
|
|
73
80
|
schema: "Structured data",
|
|
74
81
|
cannibal: "Cannibalisation",
|
|
82
|
+
aeo: "AEO readiness",
|
|
75
83
|
};
|
|
76
84
|
return map[name] ?? name.charAt(0).toUpperCase() + name.slice(1);
|
|
77
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* AEO-specific score band label. Low score = AI-Ready (site is citable by
|
|
88
|
+
* LLMs in AI Overviews / answer engines); high score = Ghost (not discoverable).
|
|
89
|
+
*/
|
|
90
|
+
function aeoScoreLabel(score) {
|
|
91
|
+
if (score <= 20)
|
|
92
|
+
return "AI-Ready";
|
|
93
|
+
if (score <= 40)
|
|
94
|
+
return "Partial";
|
|
95
|
+
if (score <= 60)
|
|
96
|
+
return "Vulnerable";
|
|
97
|
+
if (score <= 80)
|
|
98
|
+
return "Invisible";
|
|
99
|
+
return "Ghost";
|
|
100
|
+
}
|
|
101
|
+
/** Group findings by ruleId. Preserves encounter order per bucket. */
|
|
102
|
+
function groupByRule(findings) {
|
|
103
|
+
const m = new Map();
|
|
104
|
+
for (const f of findings) {
|
|
105
|
+
const bucket = m.get(f.ruleId);
|
|
106
|
+
if (bucket)
|
|
107
|
+
bucket.push(f);
|
|
108
|
+
else
|
|
109
|
+
m.set(f.ruleId, [f]);
|
|
110
|
+
}
|
|
111
|
+
return m;
|
|
112
|
+
}
|
|
113
|
+
function rankByImpact(findings) {
|
|
114
|
+
const byRule = groupByRule(findings);
|
|
115
|
+
const impacts = [];
|
|
116
|
+
for (const [ruleId, items] of byRule) {
|
|
117
|
+
const sev = items[0].severity;
|
|
118
|
+
impacts.push({
|
|
119
|
+
ruleId,
|
|
120
|
+
severity: sev,
|
|
121
|
+
pageCount: items.length,
|
|
122
|
+
representative: items[0],
|
|
123
|
+
impact: SEVERITY_WEIGHT[sev] * items.length,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
impacts.sort((a, b) => {
|
|
127
|
+
if (b.impact !== a.impact)
|
|
128
|
+
return b.impact - a.impact;
|
|
129
|
+
const sa = SEVERITY_ORDER.indexOf(a.severity);
|
|
130
|
+
const sb = SEVERITY_ORDER.indexOf(b.severity);
|
|
131
|
+
if (sa !== sb)
|
|
132
|
+
return sa - sb;
|
|
133
|
+
if (b.pageCount !== a.pageCount)
|
|
134
|
+
return b.pageCount - a.pageCount;
|
|
135
|
+
return a.ruleId.localeCompare(b.ruleId);
|
|
136
|
+
});
|
|
137
|
+
return impacts;
|
|
138
|
+
}
|
|
78
139
|
function renderTriageHtml(triage) {
|
|
79
140
|
const sorted = triage.rootCauses.slice().sort((a, b) => a.fixOrder - b.fixOrder);
|
|
80
141
|
const cost = triage.estimatedCostUsd !== undefined ? ` · est $${triage.estimatedCostUsd.toFixed(2)}` : "";
|
|
@@ -100,6 +161,96 @@ function renderTriageHtml(triage) {
|
|
|
100
161
|
<ol class="causes">${causes}</ol>
|
|
101
162
|
</section>`;
|
|
102
163
|
}
|
|
164
|
+
function renderTopFixes(impacts) {
|
|
165
|
+
if (impacts.length === 0)
|
|
166
|
+
return "";
|
|
167
|
+
const top = impacts.slice(0, 5);
|
|
168
|
+
const rows = top.map((imp, idx) => {
|
|
169
|
+
const r = imp.representative;
|
|
170
|
+
const effortPill = r.effort
|
|
171
|
+
? `<span class="effort-pill effort-${escapeHtml(r.effort)}">${escapeHtml(effortLabel(r.effort))}</span>`
|
|
172
|
+
: "";
|
|
173
|
+
const pagesLabel = imp.pageCount === 1 ? "1 page" : `${imp.pageCount} pages`;
|
|
174
|
+
return `<li class="top-fix">
|
|
175
|
+
<span class="top-fix-rank">${idx + 1}</span>
|
|
176
|
+
<div class="top-fix-body">
|
|
177
|
+
<div class="top-fix-head">
|
|
178
|
+
<code class="rule-id">${escapeHtml(imp.ruleId)}</code>
|
|
179
|
+
<span class="sev sev-${severityTone(imp.severity)}">${escapeHtml(imp.severity)}</span>
|
|
180
|
+
${effortPill}
|
|
181
|
+
<span class="top-fix-pages mono">${pagesLabel}</span>
|
|
182
|
+
</div>
|
|
183
|
+
<p class="top-fix-msg">${escapeHtml(r.message)}</p>
|
|
184
|
+
</div>
|
|
185
|
+
</li>`;
|
|
186
|
+
}).join("");
|
|
187
|
+
return `
|
|
188
|
+
<section class="top-fixes">
|
|
189
|
+
<header class="section-head">
|
|
190
|
+
<span class="eyebrow">Top fixes by impact</span>
|
|
191
|
+
<span class="meta-mono">severity × pages affected</span>
|
|
192
|
+
</header>
|
|
193
|
+
<ol class="top-fix-list">${rows}</ol>
|
|
194
|
+
</section>`;
|
|
195
|
+
}
|
|
196
|
+
function renderRuleCard(ruleId, items, sev) {
|
|
197
|
+
const representative = items[0];
|
|
198
|
+
const effortPill = representative.effort
|
|
199
|
+
? ` <span class="effort-pill effort-${escapeHtml(representative.effort)}">${escapeHtml(effortLabel(representative.effort))}</span>`
|
|
200
|
+
: "";
|
|
201
|
+
const pagesLabel = items.length === 1 ? "1 page" : `${items.length} pages`;
|
|
202
|
+
// Sample + full URL list — only include findings that have a pageUrl.
|
|
203
|
+
const urls = items.map((i) => i.pageUrl).filter((u) => !!u);
|
|
204
|
+
let pageList = "";
|
|
205
|
+
if (urls.length > 0) {
|
|
206
|
+
const preview = urls.slice(0, 3);
|
|
207
|
+
const rest = urls.slice(3);
|
|
208
|
+
const previewHtml = `<ul class="page-preview">${preview.map((u) => `<li class="mono">${escapeHtml(shortenUrl(u))}</li>`).join("")}</ul>`;
|
|
209
|
+
const restHtml = rest.length > 0
|
|
210
|
+
? `<details class="page-extra">
|
|
211
|
+
<summary>${rest.length} more ${rest.length === 1 ? "page" : "pages"}</summary>
|
|
212
|
+
<ul class="page-list">${rest.map((u) => `<li class="mono">${escapeHtml(shortenUrl(u))}</li>`).join("")}</ul>
|
|
213
|
+
</details>`
|
|
214
|
+
: "";
|
|
215
|
+
pageList = previewHtml + restHtml;
|
|
216
|
+
}
|
|
217
|
+
// Cluster context (if any finding has it, show the first one — site-wide rules only fire once).
|
|
218
|
+
let cluster = "";
|
|
219
|
+
const withCluster = items.find((i) => i.context?.type === "cluster");
|
|
220
|
+
if (withCluster && withCluster.context?.type === "cluster") {
|
|
221
|
+
const ctx = withCluster.context;
|
|
222
|
+
const [minSim, maxSim] = ctx.similarityRange;
|
|
223
|
+
const worstPairsHtml = ctx.worstPairs
|
|
224
|
+
.map(p => `<li><span class="mono">${escapeHtml(shortenUrl(p.left))}</span> <span class="arrow">↔</span> <span class="mono">${escapeHtml(shortenUrl(p.right))}</span> <span class="sim">${(p.similarity * 100).toFixed(1)}%</span></li>`)
|
|
225
|
+
.join("");
|
|
226
|
+
const membersHtml = ctx.members
|
|
227
|
+
.map(m => `<li class="mono">${escapeHtml(shortenUrl(m))}</li>`)
|
|
228
|
+
.join("");
|
|
229
|
+
cluster = `
|
|
230
|
+
<details>
|
|
231
|
+
<summary>${ctx.clusterSize} pages in cluster · ${(minSim * 100).toFixed(0)}–${(maxSim * 100).toFixed(0)}% similar</summary>
|
|
232
|
+
<div class="cluster-body">
|
|
233
|
+
<p class="cluster-label">Worst pairs</p>
|
|
234
|
+
<ul class="pair-list">${worstPairsHtml}</ul>
|
|
235
|
+
<p class="cluster-label">All members</p>
|
|
236
|
+
<ul class="member-list">${membersHtml}</ul>
|
|
237
|
+
</div>
|
|
238
|
+
</details>`;
|
|
239
|
+
}
|
|
240
|
+
const fix = representative.fix ? `<div class="fix"><span class="fix-label">Fix</span>${escapeHtml(representative.fix)}</div>` : "";
|
|
241
|
+
const ref = representative.ref ? `<a href="${escapeHtml(representative.ref)}" class="ref" target="_blank" rel="noopener">ref ↗</a>` : "";
|
|
242
|
+
return `<li class="finding finding-${severityTone(sev)}">
|
|
243
|
+
<div class="finding-head">
|
|
244
|
+
<code class="rule-id">${escapeHtml(ruleId)}</code>${effortPill}
|
|
245
|
+
<span class="finding-pages mono">${pagesLabel}</span>
|
|
246
|
+
</div>
|
|
247
|
+
<p class="finding-msg">${escapeHtml(representative.message)}</p>
|
|
248
|
+
${pageList}
|
|
249
|
+
${cluster}
|
|
250
|
+
${fix}
|
|
251
|
+
${ref}
|
|
252
|
+
</li>`;
|
|
253
|
+
}
|
|
103
254
|
export function formatHtml(summary) {
|
|
104
255
|
const grouped = new Map();
|
|
105
256
|
for (const sev of SEVERITY_ORDER)
|
|
@@ -113,13 +264,16 @@ export function formatHtml(summary) {
|
|
|
113
264
|
info: grouped.get("info").length,
|
|
114
265
|
};
|
|
115
266
|
const totalErrors = counts.critical + counts.error;
|
|
267
|
+
const impacts = rankByImpact(summary.findings);
|
|
268
|
+
const topFixesHtml = renderTopFixes(impacts);
|
|
116
269
|
const categoryRows = Object.entries(summary.categoryScores)
|
|
117
270
|
.map(([name, value]) => {
|
|
118
271
|
const pct = value;
|
|
272
|
+
const clean = Math.max(0, 100 - pct);
|
|
119
273
|
const tone = categoryTone(pct);
|
|
120
274
|
return `<tr>
|
|
121
275
|
<td class="cat-name">${escapeHtml(categoryLabel(name))}</td>
|
|
122
|
-
<td class="cat-bar"><div class="bar-bg"><div class="bar-fill bar-${tone}" style="width:${
|
|
276
|
+
<td class="cat-bar"><div class="bar-bg"><div class="bar-fill bar-${tone}" style="width:${clean}%"></div></div></td>
|
|
123
277
|
<td class="cat-val mono tabular">${pct}</td>
|
|
124
278
|
</tr>`;
|
|
125
279
|
})
|
|
@@ -128,53 +282,22 @@ export function formatHtml(summary) {
|
|
|
128
282
|
const items = grouped.get(sev);
|
|
129
283
|
if (items.length === 0)
|
|
130
284
|
return "";
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
: "";
|
|
139
|
-
let cluster = "";
|
|
140
|
-
if (item.context?.type === "cluster") {
|
|
141
|
-
const ctx = item.context;
|
|
142
|
-
const [minSim, maxSim] = ctx.similarityRange;
|
|
143
|
-
const worstPairsHtml = ctx.worstPairs
|
|
144
|
-
.map(p => `<li><span class="mono">${escapeHtml(shortenUrl(p.left))}</span> <span class="arrow">↔</span> <span class="mono">${escapeHtml(shortenUrl(p.right))}</span> <span class="sim">${(p.similarity * 100).toFixed(1)}%</span></li>`)
|
|
145
|
-
.join("");
|
|
146
|
-
const membersHtml = ctx.members
|
|
147
|
-
.map(m => `<li class="mono">${escapeHtml(shortenUrl(m))}</li>`)
|
|
148
|
-
.join("");
|
|
149
|
-
cluster = `
|
|
150
|
-
<details>
|
|
151
|
-
<summary>${ctx.clusterSize} pages in cluster · ${(minSim * 100).toFixed(0)}–${(maxSim * 100).toFixed(0)}% similar</summary>
|
|
152
|
-
<div class="cluster-body">
|
|
153
|
-
<p class="cluster-label">Worst pairs</p>
|
|
154
|
-
<ul class="pair-list">${worstPairsHtml}</ul>
|
|
155
|
-
<p class="cluster-label">All members</p>
|
|
156
|
-
<ul class="member-list">${membersHtml}</ul>
|
|
157
|
-
</div>
|
|
158
|
-
</details>`;
|
|
159
|
-
}
|
|
160
|
-
const fix = item.fix ? `<div class="fix"><span class="fix-label">Fix</span>${escapeHtml(item.fix)}</div>` : "";
|
|
161
|
-
const ref = item.ref ? `<a href="${escapeHtml(item.ref)}" class="ref" target="_blank" rel="noopener">ref ↗</a>` : "";
|
|
162
|
-
return `<li class="finding finding-${severityTone(sev)}">
|
|
163
|
-
<div class="finding-head">
|
|
164
|
-
<code class="rule-id">${escapeHtml(item.ruleId)}</code>${effortPill}${pageUrl}
|
|
165
|
-
</div>
|
|
166
|
-
<p class="finding-msg">${escapeHtml(item.message)}</p>
|
|
167
|
-
${cluster}
|
|
168
|
-
${fix}
|
|
169
|
-
${ref}
|
|
170
|
-
</li>`;
|
|
285
|
+
const byRule = groupByRule(items);
|
|
286
|
+
// Preserve rule-level ordering by rank (severity × pageCount) within the severity group.
|
|
287
|
+
const orderedRuleIds = Array.from(byRule.entries())
|
|
288
|
+
.sort((a, b) => {
|
|
289
|
+
if (b[1].length !== a[1].length)
|
|
290
|
+
return b[1].length - a[1].length;
|
|
291
|
+
return a[0].localeCompare(b[0]);
|
|
171
292
|
})
|
|
172
|
-
.
|
|
293
|
+
.map(([ruleId]) => ruleId);
|
|
294
|
+
const itemsHtml = orderedRuleIds.map((rid) => renderRuleCard(rid, byRule.get(rid), sev)).join("");
|
|
295
|
+
const ruleCount = byRule.size;
|
|
173
296
|
return `
|
|
174
297
|
<div class="sev-group">
|
|
175
298
|
<h3 class="sev-heading sev-${severityTone(sev)}">
|
|
176
299
|
<span class="sev-dot"></span>${SEVERITY_LABEL[sev]}
|
|
177
|
-
<span class="sev-count">${items.length}</span>
|
|
300
|
+
<span class="sev-count">${ruleCount} ${ruleCount === 1 ? "rule" : "rules"} · ${items.length} ${items.length === 1 ? "finding" : "findings"}</span>
|
|
178
301
|
</h3>
|
|
179
302
|
<ul class="finding-list">${itemsHtml}</ul>
|
|
180
303
|
</div>`;
|
|
@@ -276,6 +399,29 @@ export function formatHtml(summary) {
|
|
|
276
399
|
.bar-fill{height:100%;border-radius:999px;transition:width .4s ease}
|
|
277
400
|
.bar-success{background:var(--success)} .bar-warning{background:var(--warning)} .bar-destructive{background:var(--destructive)}
|
|
278
401
|
|
|
402
|
+
.aeo-callout{margin-top:20px;padding:16px 20px;background:color-mix(in oklab,var(--card) 85%,transparent);
|
|
403
|
+
border:1px solid var(--border);border-radius:var(--r-lg)}
|
|
404
|
+
.aeo-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}
|
|
405
|
+
.aeo-body{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
|
|
406
|
+
@media (max-width:640px){.aeo-body{grid-template-columns:1fr;gap:8px}}
|
|
407
|
+
.aeo-label{font-family:"Instrument Serif","Times New Roman",Georgia,serif;font-style:italic;font-size:28px;line-height:1;letter-spacing:-0.01em}
|
|
408
|
+
.aeo-bar{display:block;height:8px;background:var(--border);border-radius:999px;overflow:hidden}
|
|
409
|
+
.aeo-bar .bar-fill{height:100%;display:block;border-radius:999px}
|
|
410
|
+
.aeo-meta{font-size:11px;color:var(--muted)}
|
|
411
|
+
|
|
412
|
+
.top-fixes{margin-top:28px;padding:24px 28px 28px;background:color-mix(in oklab,var(--primary) 6%,var(--card) 94%);
|
|
413
|
+
border:1px solid color-mix(in oklab,var(--primary) 25%,var(--border));border-radius:var(--r-lg)}
|
|
414
|
+
.top-fix-list{list-style:none;display:flex;flex-direction:column;gap:10px}
|
|
415
|
+
.top-fix{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;padding:12px 14px;
|
|
416
|
+
background:var(--card);border:1px solid var(--border);border-radius:14px}
|
|
417
|
+
.top-fix-rank{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;
|
|
418
|
+
background:color-mix(in oklab,var(--primary) 22%,transparent);color:var(--primary);
|
|
419
|
+
font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;font-weight:700;margin-top:1px}
|
|
420
|
+
.top-fix-body{min-width:0}
|
|
421
|
+
.top-fix-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}
|
|
422
|
+
.top-fix-pages{color:var(--muted);font-size:11px;margin-left:auto}
|
|
423
|
+
.top-fix-msg{color:var(--fg);font-size:14px}
|
|
424
|
+
|
|
279
425
|
.findings-head{display:flex;align-items:baseline;justify-content:space-between;margin:56px 0 18px}
|
|
280
426
|
.findings-head h2{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
|
|
281
427
|
.findings-head .meta{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;color:var(--muted)}
|
|
@@ -289,9 +435,12 @@ export function formatHtml(summary) {
|
|
|
289
435
|
.sev-destructive{color:var(--destructive)} .sev-warning{color:var(--warning)} .sev-muted{color:var(--muted)}
|
|
290
436
|
.sev-heading.sev-muted{color:var(--muted-2)}
|
|
291
437
|
|
|
292
|
-
.finding-list{list-style:none;
|
|
438
|
+
.finding-list{list-style:none;column-count:2;column-gap:10px;column-fill:balance}
|
|
439
|
+
@media (max-width:720px){.finding-list{column-count:1}}
|
|
293
440
|
.finding{position:relative;padding:14px 16px 14px 18px;background:var(--card);
|
|
294
|
-
border:1px solid var(--border);border-radius:var(--r);overflow:hidden
|
|
441
|
+
border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
|
|
442
|
+
break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
|
|
443
|
+
margin-bottom:10px;display:inline-block;width:100%}
|
|
295
444
|
.finding::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-strong)}
|
|
296
445
|
.finding-destructive::before{background:var(--destructive)}
|
|
297
446
|
.finding-warning::before{background:var(--warning)}
|
|
@@ -299,8 +448,17 @@ export function formatHtml(summary) {
|
|
|
299
448
|
.finding-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}
|
|
300
449
|
.rule-id{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:12px;
|
|
301
450
|
color:var(--fg);background:var(--card-2);padding:2px 8px;border-radius:6px;border:1px solid var(--border)}
|
|
451
|
+
.finding-pages{color:var(--muted);font-size:11px;margin-left:auto}
|
|
302
452
|
.finding-msg{color:var(--fg);font-size:14px}
|
|
303
|
-
.page-
|
|
453
|
+
.page-preview{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:8px;font-size:12px;color:var(--muted)}
|
|
454
|
+
.page-extra{margin-top:6px}
|
|
455
|
+
.page-extra>summary{cursor:pointer;color:var(--muted);font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
|
|
456
|
+
font-size:12px;list-style:none;padding:4px 0}
|
|
457
|
+
.page-extra>summary::-webkit-details-marker{display:none}
|
|
458
|
+
.page-extra>summary::before{content:"▸ ";color:var(--muted-2)}
|
|
459
|
+
.page-extra[open]>summary::before{content:"▾ "}
|
|
460
|
+
.page-list{list-style:none;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);
|
|
461
|
+
max-height:240px;overflow-y:auto;padding:6px 0 0}
|
|
304
462
|
|
|
305
463
|
.effort-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;
|
|
306
464
|
font-size:10px;font-weight:600;letter-spacing:0.04em;text-transform:lowercase;
|
|
@@ -327,8 +485,10 @@ export function formatHtml(summary) {
|
|
|
327
485
|
.ref:hover{text-decoration:underline}
|
|
328
486
|
|
|
329
487
|
.finding details{margin-top:10px;border:1px solid var(--border);border-radius:12px;background:var(--card-2)}
|
|
488
|
+
.finding details.page-extra{border:0;background:transparent;margin-top:6px}
|
|
330
489
|
.finding details>summary{cursor:pointer;padding:10px 14px;color:var(--muted);font-size:12px;
|
|
331
490
|
font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;list-style:none}
|
|
491
|
+
.finding details.page-extra>summary{padding:4px 0}
|
|
332
492
|
.finding details>summary::-webkit-details-marker{display:none}
|
|
333
493
|
.finding details>summary::before{content:"▸ ";color:var(--muted-2)}
|
|
334
494
|
.finding details[open]>summary::before{content:"▾ "}
|
|
@@ -372,7 +532,7 @@ export function formatHtml(summary) {
|
|
|
372
532
|
<h1 class="title display">Audit report</h1>
|
|
373
533
|
<span class="src-link">${summary.pageCount} pages · ${summary.findings.length} findings</span>
|
|
374
534
|
</div>
|
|
375
|
-
<p class="lead">Scored against
|
|
535
|
+
<p class="lead">Scored against 40+ rules covering Google's public SpamBrain guidance, programmatic-SEO research, and Answer Engine Optimization (AEO) — how citable your pages are to LLMs in AI Overviews. Risk score — lower is safer.</p>
|
|
376
536
|
|
|
377
537
|
<section class="card hero">
|
|
378
538
|
<div class="score-block">
|
|
@@ -390,10 +550,33 @@ export function formatHtml(summary) {
|
|
|
390
550
|
|
|
391
551
|
${summary.templateDetected ? `<div class="template-banner"><strong>Template-generated content detected.</strong> Fix suggestions are tailored for template authors — one change can fix hundreds of pages.</div>` : ""}
|
|
392
552
|
|
|
553
|
+
${(() => {
|
|
554
|
+
const aeoScore = summary.categoryScores?.aeo;
|
|
555
|
+
if (aeoScore === undefined)
|
|
556
|
+
return "";
|
|
557
|
+
const aeoTone = categoryTone(aeoScore);
|
|
558
|
+
const label = aeoScoreLabel(aeoScore);
|
|
559
|
+
const invert = 100 - aeoScore;
|
|
560
|
+
return `
|
|
561
|
+
<section class="aeo-callout">
|
|
562
|
+
<div class="aeo-head">
|
|
563
|
+
<span class="eyebrow">AEO readiness</span>
|
|
564
|
+
<span class="meta-mono">answer-engine citability</span>
|
|
565
|
+
</div>
|
|
566
|
+
<div class="aeo-body">
|
|
567
|
+
<span class="aeo-label tone-${aeoTone}">${escapeHtml(label)}</span>
|
|
568
|
+
<span class="aeo-bar"><span class="bar-fill bar-${aeoTone}" style="width:${invert}%"></span></span>
|
|
569
|
+
<span class="aeo-meta mono">${invert}/100 ready · ${aeoScore}/100 risk</span>
|
|
570
|
+
</div>
|
|
571
|
+
</section>`;
|
|
572
|
+
})()}
|
|
573
|
+
|
|
574
|
+
${topFixesHtml}
|
|
575
|
+
|
|
393
576
|
<section class="card">
|
|
394
577
|
<header class="section-head">
|
|
395
578
|
<span class="eyebrow">Category scores</span>
|
|
396
|
-
<span class="meta-mono">
|
|
579
|
+
<span class="meta-mono">bar = how clean · number = risk (lower is better)</span>
|
|
397
580
|
</header>
|
|
398
581
|
<table class="data-table">
|
|
399
582
|
<tbody>${categoryRows}</tbody>
|
|
@@ -406,12 +589,14 @@ export function formatHtml(summary) {
|
|
|
406
589
|
|
|
407
590
|
<div class="findings-head">
|
|
408
591
|
<h2>Findings · ${summary.findings.length}</h2>
|
|
409
|
-
<span class="meta">sampled ${summary.pageCount} page${summary.pageCount === 1 ? "" : "s"}</span>
|
|
592
|
+
<span class="meta">grouped by rule · sampled ${summary.pageCount} page${summary.pageCount === 1 ? "" : "s"}</span>
|
|
410
593
|
</div>
|
|
411
594
|
${findingsSections}
|
|
412
595
|
|
|
413
596
|
<section class="footer-note">
|
|
414
|
-
<strong>About this report.</strong> Score is a structured heuristic, not a verdict from Google. Categories are weighted equally. Severities escalate: info → warning → error → critical. Effort tags (<span class="effort-pill effort-quick">quick fix</span> <span class="effort-pill effort-moderate">moderate</span> <span class="effort-pill effort-structural">structural</span>) estimate the change cost per finding.
|
|
597
|
+
<strong>About this report.</strong> Score is a structured heuristic, not a verdict from Google. Categories are weighted equally. Severities escalate: info → warning → error → critical. Effort tags (<span class="effort-pill effort-quick">quick fix</span> <span class="effort-pill effort-moderate">moderate</span> <span class="effort-pill effort-structural">structural</span>) estimate the change cost per finding. "Top fixes by impact" ranks by severity × pages affected — the same heuristic Pro uses for its fix queue (which also factors Search Console impressions once connected).
|
|
598
|
+
<br><br>
|
|
599
|
+
<strong>Analytics-safe.</strong> Rendered audits intercept outbound beacons to 40+ telemetry endpoints (GA, PostHog, Mixpanel, Segment, Hotjar, Sentry, Cloudflare/Vercel Insights, etc.) so your dashboards stay untouched — no fake sessions, no polluted funnels.
|
|
415
600
|
</section>
|
|
416
601
|
</main>
|
|
417
602
|
</body>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/formatters/html.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/formatters/html.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAe,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAE5E,MAAM,cAAc,GAA6B;IAC/C,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,eAAe,GAA6B;IAChD,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,SAAS,YAAY,CAAC,QAAkB;IACtC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC;IACpC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,eAAe,CAAC;IACxC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,GAAG,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAChC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,OAAO,WAAW,CAAC;QACjC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;QACnC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;QACvC,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI;SACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,GAAG,CAAC;IAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,GAAG,GAA2B;QAClC,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,iBAAiB;QAC1B,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,iBAAiB;QACzB,QAAQ,EAAE,iBAAiB;QAC3B,GAAG,EAAE,eAAe;KACrB,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,WAAW,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sEAAsE;AACtE,SAAS,WAAW,CAAC,QAAsB;IACzC,MAAM,CAAC,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;YACtB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAcD,SAAS,YAAY,CAAC,QAAsB;IAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC;YACX,MAAM;YACN,QAAQ,EAAE,GAAG;YACb,SAAS,EAAE,KAAK,CAAC,MAAM;YACvB,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM;SAC5C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;QAClE,OAAO,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA2C;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,MAAM,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1G,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;IACnH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;;;oCAGC,CAAC,CAAC,QAAQ;cAChC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;+BACF,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;;8BAEpD,CAAC,CAAC,aAAa,eAAe,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;8BAC1E,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;UAC3C,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEnB,OAAO;;;;8BAIqB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,UAAU,MAAM,MAAM,GAAG,IAAI;;IAEzF,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;uBAC/D,MAAM;WAClB,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,OAAiB;IACvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM;YACzB,CAAC,CAAC,mCAAmC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS;YACxG,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,QAAQ,CAAC;QAC7E,OAAO;mCACwB,GAAG,GAAG,CAAC;;;kCAGR,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;iCACvB,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;YAC5E,UAAU;6CACuB,UAAU;;iCAEtB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;;UAE5C,CAAC;IACT,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO;;;;;;6BAMoB,IAAI;WACtB,CAAC;AACZ,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,KAAmB,EAAE,GAAa;IACxE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM;QACtC,CAAC,CAAC,oCAAoC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,SAAS;QACnI,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,QAAQ,CAAC;IAE3E,sEAAsE;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,4BAA4B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;QACzI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC;sBACc,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;mCAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7F;YACd,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,gGAAgG;IAChG,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC;IACrE,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;QAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC;QAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,UAAU;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,0BAA0B,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,2DAA2D,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;aACvO,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC9D,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,GAAG;;aAED,GAAG,CAAC,WAAW,uBAAuB,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;;4BAG7E,cAAc;;8BAEZ,WAAW;;WAE9B,CAAC;IACV,CAAC;IAED,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,sDAAsD,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACnI,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzI,OAAO,8BAA8B,YAAY,CAAC,GAAG,CAAC;;8BAE1B,UAAU,CAAC,MAAM,CAAC,UAAU,UAAU;yCAC3B,UAAU;;6BAEtB,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC;MACzD,QAAQ;MACR,OAAO;MACP,GAAG;MACH,GAAG;QACD,CAAC;AACT,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,cAAc;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,MAAM,GAA6B;QACvC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,MAAM;QACzC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM;QACnC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,MAAM;QACvC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,MAAM;KAClC,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;SACxD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,KAAe,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO;+BACkB,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;2EACa,IAAI,kBAAkB,KAAK;2CAC3D,GAAG;YAClC,CAAC;IACT,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,yFAAyF;QACzF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAChD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnG,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,OAAO;;mCAEwB,YAAY,CAAC,GAAG,CAAC;uCACb,cAAc,CAAC,GAAG,CAAC;kCACxB,SAAS,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;;iCAEjH,SAAS;WAC/B,CAAC;IACV,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;;;;;;;aAO9D,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,eAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAe,CAAC,CAAC;QAC5C,OAAO;cACC,UAAU,CAAC,IAAI,CAAC;uCACS,KAAK,KAAK,KAAK;yCACb,KAAK;YAClC,CAAC;IACT,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;WAEJ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEf,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA0M0B,IAAI;;;;;;6BAMV,OAAO,CAAC,SAAS,YAAY,OAAO,CAAC,QAAQ,CAAC,MAAM;;;;;;gCAMjD,IAAI,KAAK,OAAO,CAAC,KAAK;;4DAEM,IAAI,6BAA6B,IAAI,aAAa,UAAU,CAAC,OAAO,CAAC;;;mEAG9D,OAAO,CAAC,SAAS;qFACC,WAAW;mFACb,MAAM,CAAC,OAAO;wEACzB,MAAM,CAAC,IAAI;;;;IAI/E,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,oLAAoL,CAAC,CAAC,CAAC,EAAE;;IAEpN,CAAC,GAAG,EAAE;QACN,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;QAC7C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC9B,OAAO;;;;;;;kCAOuB,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC;sDACT,OAAO,kBAAkB,MAAM;kCACnD,MAAM,gBAAgB,QAAQ;;WAErD,CAAC;IACV,CAAC,CAAC,EAAE;;IAEF,YAAY;;;;;;;;eAQD,YAAY;;;;IAIvB,eAAe;;IAEf,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;;;qBAGrC,OAAO,CAAC,QAAQ,CAAC,MAAM;mDACO,OAAO,CAAC,SAAS,QAAQ,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;;IAE1G,gBAAgB;;;;;;;;;QASZ,CAAC;AACT,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export { answerFirstRule, extractFirstParagraph } from "./rules/aeo/answer-first
|
|
|
52
52
|
export { citableFactsRule } from "./rules/aeo/citable-facts.js";
|
|
53
53
|
export { nonReplicableValueRule } from "./rules/aeo/non-replicable-value.js";
|
|
54
54
|
export { contentModularityRule } from "./rules/aeo/content-modularity.js";
|
|
55
|
+
export { summaryBaitRule } from "./rules/aeo/summary-bait.js";
|
|
55
56
|
export { cachedFetch, cacheKeyFor } from "./cache.js";
|
|
56
57
|
export type { CacheConfig, CachedFetchOptions, CachedFetchResult, CacheEntry } from "./cache.js";
|
|
57
58
|
export type { CacheOptions, CacheStats, SamplingStrategy, StateOptions } from "./types.js";
|
|
@@ -60,7 +61,7 @@ export { readState, writeState, computeContentHash, normalizeHtmlForHash, STATE_
|
|
|
60
61
|
export type { RunState, UrlStateEntry, RenderMode } from "./state.js";
|
|
61
62
|
export type { AiOptions, } from "./types.js";
|
|
62
63
|
export type { TokenUsage, RootCause, TriageResult, } from "./ai/types.js";
|
|
63
|
-
export { triageFindings } from "./ai/triage.js";
|
|
64
|
+
export { triageFindings, triage } from "./ai/triage.js";
|
|
64
65
|
export type { TriageOptions, TriageOutcome } from "./ai/triage.js";
|
|
65
66
|
export { createLanguageModel, detectProvider } from "./ai/adapters/index.js";
|
|
66
67
|
export type { ProviderId, ResolvedModel } from "./ai/adapters/index.js";
|
|
@@ -72,4 +73,6 @@ export { promptTriageFeedback } from "./ai/feedback-prompt.js";
|
|
|
72
73
|
export type { FeedbackRating, PromptOptions } from "./ai/feedback-prompt.js";
|
|
73
74
|
export { RULE_SCOPE, isRuleAllowedInDiff } from "./rules/scope.js";
|
|
74
75
|
export type { RuleScope } from "./rules/scope.js";
|
|
76
|
+
export { DEFAULT_ANALYTICS_HOSTS, isAnalyticsRequest } from "./analytics-blocklist.js";
|
|
77
|
+
export type { AnalyticsMode } from "./analytics-blocklist.js";
|
|
75
78
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjG,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACnH,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGtE,YAAY,EACV,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACvF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -52,14 +52,16 @@ export { answerFirstRule, extractFirstParagraph } from "./rules/aeo/answer-first
|
|
|
52
52
|
export { citableFactsRule } from "./rules/aeo/citable-facts.js";
|
|
53
53
|
export { nonReplicableValueRule } from "./rules/aeo/non-replicable-value.js";
|
|
54
54
|
export { contentModularityRule } from "./rules/aeo/content-modularity.js";
|
|
55
|
+
export { summaryBaitRule } from "./rules/aeo/summary-bait.js";
|
|
55
56
|
export { cachedFetch, cacheKeyFor } from "./cache.js";
|
|
56
57
|
export { stratifiedSample, inferUrlTemplate } from "./stratified-sample.js";
|
|
57
58
|
export { readState, writeState, computeContentHash, normalizeHtmlForHash, STATE_SCHEMA_VERSION } from "./state.js";
|
|
58
|
-
export { triageFindings } from "./ai/triage.js";
|
|
59
|
+
export { triageFindings, triage } from "./ai/triage.js";
|
|
59
60
|
export { createLanguageModel, detectProvider } from "./ai/adapters/index.js";
|
|
60
61
|
export { PROMPT_VERSION, assignFindingId } from "./ai/prompt.js";
|
|
61
62
|
export { estimateCostUsd } from "./ai/cost.js";
|
|
62
63
|
export * from "./telemetry/index.js";
|
|
63
64
|
export { promptTriageFeedback } from "./ai/feedback-prompt.js";
|
|
64
65
|
export { RULE_SCOPE, isRuleAllowedInDiff } from "./rules/scope.js";
|
|
66
|
+
export { DEFAULT_ANALYTICS_HOSTS, isAnalyticsRequest } from "./analytics-blocklist.js";
|
|
65
67
|
//# 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,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAYnH,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
|
+
import { type AnalyticsMode } from "./analytics-blocklist.js";
|
|
1
2
|
export interface RenderOptions {
|
|
2
3
|
browserWsEndpoint?: string;
|
|
3
4
|
concurrency: number;
|
|
4
5
|
timeoutMs: number;
|
|
6
|
+
/**
|
|
7
|
+
* How to handle analytics / telemetry / session-replay beacons.
|
|
8
|
+
* "block" (default) — abort known analytics hosts (Google Analytics, Plausible,
|
|
9
|
+
* Mixpanel, Hotjar, PostHog, Sentry, etc.). Prevents the audit from injecting
|
|
10
|
+
* fake pageviews / sessions into the site owner's dashboards.
|
|
11
|
+
* "allow-first-party" — block third-party analytics only; keep same-origin
|
|
12
|
+
* requests for sites that self-host analytics on their own domain.
|
|
13
|
+
* "allow" — don't intercept anything. Use this only when you're auditing a
|
|
14
|
+
* site you own and explicitly want render-mode traffic in your analytics.
|
|
15
|
+
*/
|
|
16
|
+
analyticsMode?: AnalyticsMode;
|
|
17
|
+
/** Extra host tokens to block in addition to the default list (substring match). */
|
|
18
|
+
extraBlockedHosts?: readonly string[];
|
|
5
19
|
}
|
|
6
20
|
interface RenderedPage {
|
|
7
21
|
url: string;
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAoClF,MAAM,WAAW,aAAa;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AA0ED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACjD,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CA6IzB"}
|