@rivi-software/agentic-seo-check 0.3.0 → 0.5.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 (128) hide show
  1. package/README.md +29 -5
  2. package/dist/cli.js +20 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/core/aeo/audit.d.ts +8 -0
  5. package/dist/core/aeo/audit.js +101 -17
  6. package/dist/core/aeo/audit.js.map +1 -1
  7. package/dist/core/aeo/bots.d.ts +48 -0
  8. package/dist/core/aeo/bots.js +151 -5
  9. package/dist/core/aeo/bots.js.map +1 -1
  10. package/dist/core/aeo/fixes.d.ts +38 -0
  11. package/dist/core/aeo/fixes.js +111 -0
  12. package/dist/core/aeo/fixes.js.map +1 -0
  13. package/dist/core/aeo/site-rules.d.ts +5 -0
  14. package/dist/core/aeo/site-rules.js +293 -10
  15. package/dist/core/aeo/site-rules.js.map +1 -1
  16. package/dist/core/audit.d.ts +8 -0
  17. package/dist/core/audit.js +144 -25
  18. package/dist/core/audit.js.map +1 -1
  19. package/dist/core/crawl.js +43 -4
  20. package/dist/core/crawl.js.map +1 -1
  21. package/dist/core/html/answer.d.ts +5 -2
  22. package/dist/core/html/answer.js +25 -7
  23. package/dist/core/html/answer.js.map +1 -1
  24. package/dist/core/html/dom.d.ts +13 -1
  25. package/dist/core/html/dom.js +30 -2
  26. package/dist/core/html/dom.js.map +1 -1
  27. package/dist/core/html/extract.js +122 -30
  28. package/dist/core/html/extract.js.map +1 -1
  29. package/dist/core/html/head.js +114 -19
  30. package/dist/core/html/head.js.map +1 -1
  31. package/dist/core/html/resources.js +15 -7
  32. package/dist/core/html/resources.js.map +1 -1
  33. package/dist/core/html/structured-data.js +21 -5
  34. package/dist/core/html/structured-data.js.map +1 -1
  35. package/dist/core/lighthouse.d.ts +2 -5
  36. package/dist/core/lighthouse.js +290 -5
  37. package/dist/core/lighthouse.js.map +1 -1
  38. package/dist/core/performance-fixes.d.ts +25 -0
  39. package/dist/core/performance-fixes.js +446 -0
  40. package/dist/core/performance-fixes.js.map +1 -0
  41. package/dist/core/performance-rules.js +56 -8
  42. package/dist/core/performance-rules.js.map +1 -1
  43. package/dist/core/recheck.d.ts +68 -0
  44. package/dist/core/recheck.js +247 -0
  45. package/dist/core/recheck.js.map +1 -0
  46. package/dist/core/render-fixes.d.ts +27 -0
  47. package/dist/core/render-fixes.js +164 -0
  48. package/dist/core/render-fixes.js.map +1 -0
  49. package/dist/core/render-rules.js +60 -21
  50. package/dist/core/render-rules.js.map +1 -1
  51. package/dist/core/report/markdown.js +68 -1
  52. package/dist/core/report/markdown.js.map +1 -1
  53. package/dist/core/robots.d.ts +5 -0
  54. package/dist/core/robots.js +8 -0
  55. package/dist/core/robots.js.map +1 -1
  56. package/dist/core/rules/aeo.js +339 -25
  57. package/dist/core/rules/aeo.js.map +1 -1
  58. package/dist/core/rules/canonical.js +107 -11
  59. package/dist/core/rules/canonical.js.map +1 -1
  60. package/dist/core/rules/content.js +65 -7
  61. package/dist/core/rules/content.js.map +1 -1
  62. package/dist/core/rules/document.js +73 -8
  63. package/dist/core/rules/document.js.map +1 -1
  64. package/dist/core/rules/fix.d.ts +55 -0
  65. package/dist/core/rules/fix.js +159 -0
  66. package/dist/core/rules/fix.js.map +1 -0
  67. package/dist/core/rules/head.js +81 -4
  68. package/dist/core/rules/head.js.map +1 -1
  69. package/dist/core/rules/headings.js +92 -9
  70. package/dist/core/rules/headings.js.map +1 -1
  71. package/dist/core/rules/hreflang.js +79 -9
  72. package/dist/core/rules/hreflang.js.map +1 -1
  73. package/dist/core/rules/images.js +49 -0
  74. package/dist/core/rules/images.js.map +1 -1
  75. package/dist/core/rules/index.d.ts +11 -0
  76. package/dist/core/rules/index.js +21 -1
  77. package/dist/core/rules/index.js.map +1 -1
  78. package/dist/core/rules/indexing.js +108 -1
  79. package/dist/core/rules/indexing.js.map +1 -1
  80. package/dist/core/rules/keyword.js +92 -2
  81. package/dist/core/rules/keyword.js.map +1 -1
  82. package/dist/core/rules/links.js +42 -0
  83. package/dist/core/rules/links.js.map +1 -1
  84. package/dist/core/rules/loading.js +54 -1
  85. package/dist/core/rules/loading.js.map +1 -1
  86. package/dist/core/rules/meta.js +40 -6
  87. package/dist/core/rules/meta.js.map +1 -1
  88. package/dist/core/rules/page-fixes.d.ts +39 -0
  89. package/dist/core/rules/page-fixes.js +107 -0
  90. package/dist/core/rules/page-fixes.js.map +1 -0
  91. package/dist/core/rules/quoted-tags.d.ts +23 -0
  92. package/dist/core/rules/quoted-tags.js +79 -0
  93. package/dist/core/rules/quoted-tags.js.map +1 -0
  94. package/dist/core/rules/response.js +71 -7
  95. package/dist/core/rules/response.js.map +1 -1
  96. package/dist/core/rules/rule.d.ts +17 -4
  97. package/dist/core/rules/rule.js +11 -2
  98. package/dist/core/rules/rule.js.map +1 -1
  99. package/dist/core/rules/social.js +101 -10
  100. package/dist/core/rules/social.js.map +1 -1
  101. package/dist/core/rules/structured-data-fixes.d.ts +33 -0
  102. package/dist/core/rules/structured-data-fixes.js +469 -0
  103. package/dist/core/rules/structured-data-fixes.js.map +1 -0
  104. package/dist/core/rules/structured-data-values.js +242 -31
  105. package/dist/core/rules/structured-data-values.js.map +1 -1
  106. package/dist/core/rules/structured-data.js +171 -4
  107. package/dist/core/rules/structured-data.js.map +1 -1
  108. package/dist/core/rules/title.js +39 -5
  109. package/dist/core/rules/title.js.map +1 -1
  110. package/dist/core/rules/urls.js +166 -0
  111. package/dist/core/rules/urls.js.map +1 -1
  112. package/dist/core/site-fixes.d.ts +111 -0
  113. package/dist/core/site-fixes.js +650 -0
  114. package/dist/core/site-fixes.js.map +1 -0
  115. package/dist/core/site-rules.js +481 -54
  116. package/dist/core/site-rules.js.map +1 -1
  117. package/dist/core/sitemap.d.ts +16 -0
  118. package/dist/core/sitemap.js +34 -0
  119. package/dist/core/sitemap.js.map +1 -1
  120. package/dist/core/types.d.ts +223 -3
  121. package/dist/core/types.js.map +1 -1
  122. package/dist/index.d.ts +2 -0
  123. package/dist/index.js +1 -0
  124. package/dist/index.js.map +1 -1
  125. package/dist/mcp.js +16 -2
  126. package/dist/mcp.js.map +1 -1
  127. package/package.json +1 -1
  128. package/skills/seo-audit/SKILL.md +35 -5
@@ -1 +1 @@
1
- {"version":3,"file":"lighthouse.js","sourceRoot":"","sources":["../../src/core/lighthouse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lighthouse.js","sourceRoot":"","sources":["../../src/core/lighthouse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { FixEdit, LighthouseAuditSummary, LighthouseItem, LighthouseOpportunity, PerformanceResult } from "./types.js";
2
+ /** Edits that differ: two rules of one finding may arrive at the same edit. */
3
+ export declare const uniqueEdits: (edits: FixEdit[]) => FixEdit[];
4
+ /** An edit for a change Lighthouse describes but names nothing to change, so the code is a slot. */
5
+ export declare const describedEdit: (title: string, description: string) => FixEdit;
6
+ /** HTML a CDN may cache: the fix for a slow server answer when the page is the same for everyone. */
7
+ export declare const cacheHtmlEdit: (ms: number | null) => FixEdit;
8
+ /**
9
+ * The scripts and stylesheets that block the first paint: `defer` on each script, and the
10
+ * stylesheets' CSS inlined in <head>.
11
+ */
12
+ export declare const renderBlockingEdits: (items: LighthouseItem[], pageUrl: string) => FixEdit[];
13
+ /** What makes the layout shift: unsized images, late web fonts, elements inserted above content. */
14
+ export declare const clsEdits: (result: PerformanceResult) => FixEdit[];
15
+ export declare const lcpEdits: (result: PerformanceResult, pageUrl: string) => FixEdit[];
16
+ /** When Lighthouse names no LCP element: preload the largest image of the first screen. */
17
+ export declare const lcpFallbackEdit: () => FixEdit;
18
+ /** The scripts with the most main-thread time, each with what to do about it. */
19
+ export declare const scriptEdits: (scripts: LighthouseItem[], pageUrl: string) => FixEdit[];
20
+ type OpportunityFixer = (opp: LighthouseOpportunity, result: PerformanceResult, pageUrl: string) => FixEdit[];
21
+ /** The edits for one Lighthouse opportunity, from the rows it names. */
22
+ export declare const opportunityEdits: OpportunityFixer;
23
+ /** The edits for a failed Lighthouse SEO or agentic-browsing audit. */
24
+ export declare const failedAuditEdits: (audit: LighthouseAuditSummary, result: PerformanceResult) => FixEdit[];
25
+ export {};
@@ -0,0 +1,446 @@
1
+ /**
2
+ * The edits that fix what Lighthouse found. Lighthouse sees the rendered DOM, not the source, so
3
+ * HTML edits point at its CSS selector (`at`) and say what to add or remove there; they quote an
4
+ * attribute (`loading="lazy"`), never Lighthouse's snippet, whose long values it cuts short.
5
+ * Measurements go into `write`, so the agent knows how much an edit is worth.
6
+ */
7
+ import { addEdit, addHtml, escapeAttribute, rebuildEdit, removeEdit, replaceEdit, slot, } from "./rules/fix.js";
8
+ const kib = (bytes) => `${Math.max(1, Math.round(bytes / 1024))} KiB`;
9
+ const hostOf = (url) => {
10
+ try {
11
+ return new URL(url).host;
12
+ }
13
+ catch {
14
+ return null;
15
+ }
16
+ };
17
+ /**
18
+ * A selector for the <script> or stylesheet <link> that loads `url`: by its path on the page's own
19
+ * host (the source may write it relative), by host and path on another one.
20
+ */
21
+ const loaderSelector = (kind, url, pageUrl) => {
22
+ let part = url;
23
+ try {
24
+ const u = new URL(url);
25
+ part = `${u.host === hostOf(pageUrl) ? "" : u.host}${u.pathname}`;
26
+ }
27
+ catch {
28
+ // Not a URL: match it as written.
29
+ }
30
+ const value = part.replaceAll('"', String.raw `\"`);
31
+ return kind === "script"
32
+ ? `script[src*="${value}"]`
33
+ : `link[rel="stylesheet"][href*="${value}"]`;
34
+ };
35
+ /** A script URL: a .js or .mjs file, or a path that ends in /js, like Google Maps' /maps/api/js. */
36
+ const isScriptUrl = (url) => {
37
+ try {
38
+ return /(?:\.m?js|\/js)$/iu.test(new URL(url).pathname);
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ };
44
+ /** Edits that differ: two rules of one finding may arrive at the same edit. */
45
+ export const uniqueEdits = (edits) => {
46
+ const seen = new Set();
47
+ return edits.filter((e) => {
48
+ const key = JSON.stringify(e);
49
+ if (seen.has(key)) {
50
+ return false;
51
+ }
52
+ seen.add(key);
53
+ return true;
54
+ });
55
+ };
56
+ /** An edit for a change Lighthouse describes but names nothing to change, so the code is a slot. */
57
+ export const describedEdit = (title, description) => addHtml("html", slot("the change Lighthouse describes"), `${title}: ${description}`);
58
+ /** HTML a CDN may cache: the fix for a slow server answer when the page is the same for everyone. */
59
+ export const cacheHtmlEdit = (ms) => addEdit("http", "Cache-Control", "Cache-Control: public, max-age=0, s-maxage=300, stale-while-revalidate=86400", {
60
+ write: `${ms === null ? "The server answers slowly." : `Lighthouse waited ${Math.round(ms)} ms for the first byte of the HTML.`} This header lets a CDN serve the HTML from its cache for 5 minutes and refresh it in the background; replace the Cache-Control the HTML has now. Use it only when the HTML is the same for every visitor, never on pages that show a signed-in user's data; for those, speed up the server work for this URL instead (slow queries, uncached API calls).`,
61
+ });
62
+ /**
63
+ * The scripts and stylesheets that block the first paint: `defer` on each script, and the
64
+ * stylesheets' CSS inlined in <head>.
65
+ */
66
+ export const renderBlockingEdits = (items, pageUrl) => {
67
+ const withUrl = items.flatMap((i) => (i.url ? [{ ...i, url: i.url }] : []));
68
+ const scripts = withUrl.filter((i) => isScriptUrl(i.url));
69
+ const sheets = withUrl.filter((i) => !isScriptUrl(i.url));
70
+ const edits = scripts.map((i) => addHtml(loaderSelector("script", i.url, pageUrl), "defer", `${i.url} blocks the first paint${i.wastedMs ? ` for about ${i.wastedMs} ms` : ""}; defer runs it after the HTML is parsed. Leave it blocking only if an inline script in the HTML calls it before the page has loaded.`));
71
+ if (sheets.length) {
72
+ const total = sheets.reduce((n, i) => n + (i.totalBytes ?? 0), 0);
73
+ const small = total > 0 && total <= 14 * 1024;
74
+ const list = sheets
75
+ .map((i) => `${i.url}${i.totalBytes ? ` (${kib(i.totalBytes)})` : ""}`)
76
+ .join(", ");
77
+ edits.push(addHtml("head", `<style>${slot(small ? "the CSS of the stylesheets listed below" : "the rules from the stylesheets below that style the first screen")}</style>`, small
78
+ ? `These stylesheets block the first paint and come to ${kib(total)}: put their CSS in this <style> and remove their <link rel="stylesheet"> tags: ${list}.`
79
+ : `These stylesheets block the first paint${total ? ` (${kib(total)})` : ""}: inline the rules the first screen needs, then load each stylesheet without blocking (<link rel="preload" as="style" href="…" onload="this.rel='stylesheet'">): ${list}.`));
80
+ }
81
+ return edits;
82
+ };
83
+ /** width and height on an image, from the size Lighthouse saw it at. */
84
+ const sizeEdit = (node, url) => node.width && node.height
85
+ ? addHtml(node.selector, `width="${node.width}" height="${node.height}"`, `Lighthouse saw ${url ?? "this image"} at ${node.width}×${node.height} CSS px. width and height let the browser reserve its space before it loads; if the file's own pixel size has another aspect ratio, write that size instead, and keep height: auto in the CSS.`)
86
+ : addHtml(node.selector, `width="${slot("width in px")}" height="${slot("height in px")}"`, `The pixel size of ${url ?? "this image"} (or any size with its aspect ratio), so the browser reserves its space before it loads; keep height: auto in the CSS.`);
87
+ /**
88
+ * Lighthouse's selector when it is valid CSS as written: tags, ids and classes of plain letters.
89
+ * It does not escape ids (React's ":r1:", one that starts with a digit) and may be cut short, and
90
+ * the element is often a third party's, so anything else could break the <style> it goes into.
91
+ */
92
+ const plainSelector = (selector) => /^[\w\s>.#-]+$/u.test(selector) && !/[#.]-?\d/u.test(selector)
93
+ ? selector
94
+ : null;
95
+ /** The space an element takes, reserved before its content arrives. */
96
+ const reserveEdit = (node) => {
97
+ const plain = plainSelector(node.selector);
98
+ const selector = plain ?? slot("a CSS selector for this element");
99
+ const height = node.height ? String(node.height) : slot("height in px");
100
+ const named = plain
101
+ ? ""
102
+ : ` Lighthouse names it ${node.selector}, which is not a CSS selector as written: write one that selects it.`;
103
+ return addHtml("head", `<style>${selector} { min-height: ${height}px; }</style>`, node.height
104
+ ? `Lighthouse saw this element shift the layout: ${node.snippet}. This reserves the ${node.height} px it takes. If a script inserts it (a banner, an ad, an embed), give it a slot of that height in the HTML, or show it over the page with position: fixed so it pushes nothing.${named}`
105
+ : `The height this element takes once loaded (${node.snippet}), so the page reserves it before its content arrives.${named}`);
106
+ };
107
+ const fontDisplayEdit = (url, value) => addEdit("asset", "@font-face", `font-display: ${value};`, {
108
+ url,
109
+ write: `Add it to the @font-face rule that loads this font${value === "optional" ? ": the page keeps the fallback font when the web font arrives late, so the text does not move" : ": text shows in a fallback font at once instead of staying invisible"}. For Google Fonts, add &display=${value} to the stylesheet URL instead.`,
110
+ });
111
+ /** What makes the layout shift: unsized images, late web fonts, elements inserted above content. */
112
+ export const clsEdits = (result) => {
113
+ const edits = [];
114
+ const seen = new Set();
115
+ for (const image of result.unsizedImages ?? []) {
116
+ if (image.node && !seen.has(image.node.selector)) {
117
+ seen.add(image.node.selector);
118
+ edits.push(sizeEdit(image.node, image.url));
119
+ }
120
+ }
121
+ for (const shift of result.layoutShifts ?? []) {
122
+ if (!shift.node || seen.has(shift.node.selector)) {
123
+ continue;
124
+ }
125
+ seen.add(shift.node.selector);
126
+ const cause = shift.text ?? "";
127
+ if (/font/iu.test(cause) && shift.url) {
128
+ edits.push(fontDisplayEdit(shift.url, "optional"));
129
+ }
130
+ else if (shift.node.name === "img" || /image/iu.test(cause)) {
131
+ edits.push(sizeEdit(shift.node, shift.url));
132
+ }
133
+ else {
134
+ edits.push(reserveEdit(shift.node));
135
+ }
136
+ }
137
+ return edits;
138
+ };
139
+ /** How the LCP image is requested: at once, early, and before other images. */
140
+ const lcpImageEdits = (e) => {
141
+ const at = e.node.selector;
142
+ const edits = [];
143
+ if (e.notLazy === false) {
144
+ edits.push(removeEdit("html", 'loading="lazy"', {
145
+ at,
146
+ write: "The largest image of the first screen waits for layout when it is lazy; load it at once.",
147
+ }));
148
+ }
149
+ if (e.fetchpriorityHigh === false) {
150
+ edits.push(addHtml(at, 'fetchpriority="high"', "Fetches the largest image of the first screen before the other images."));
151
+ }
152
+ if (e.discoverable === false) {
153
+ edits.push(e.imageUrl && !e.hasSrcset
154
+ ? addHtml("head", `<link rel="preload" as="image" href="${escapeAttribute(e.imageUrl)}" fetchpriority="high">`, "The browser finds this image only after CSS or JavaScript runs; the preload requests it with the HTML. Better still, render the <img> in the server HTML.")
155
+ : addHtml("head", `<link rel="preload" as="image" imagesrcset="${slot("the img's srcset")}" imagesizes="${slot("the img's sizes")}" fetchpriority="high">`, "Copy srcset and sizes from the <img> at the selector, so the preload fetches the file the image uses. The browser finds the image only after CSS or JavaScript runs; better still, render the <img> in the server HTML."));
156
+ }
157
+ return edits;
158
+ };
159
+ /** The part of the LCP time Lighthouse found largest, and the edit that shortens it. */
160
+ const lcpPhaseEdits = (result, pageUrl) => {
161
+ const e = result.lcpElement;
162
+ const phases = Object.entries(e?.phases ?? {}).toSorted((a, b) => b[1] - a[1]);
163
+ const [largest] = phases[0] ?? [];
164
+ if (largest === "timeToFirstByte") {
165
+ return [
166
+ cacheHtmlEdit(result.metrics.ttfbMs ?? e?.phases["timeToFirstByte"] ?? null),
167
+ ];
168
+ }
169
+ if (largest === "resourceLoadDuration" && e?.imageUrl) {
170
+ return [
171
+ rebuildEdit(e.imageUrl, "the image, re-encoded as write says", `Downloading the LCP image takes ${e.phases["resourceLoadDuration"]} ms, most of the LCP time. Serve it as WebP or AVIF at the size it is shown${e.node.width ? ` (${e.node.width} CSS px, so ${e.node.width * 2} px wide or less for high-density screens)` : ""}, through srcset.`),
172
+ ];
173
+ }
174
+ if (largest === "elementRenderDelay" || largest === "resourceLoadDelay") {
175
+ return renderBlockingEdits(result.renderBlocking ?? [], pageUrl);
176
+ }
177
+ return [];
178
+ };
179
+ export const lcpEdits = (result, pageUrl) => {
180
+ const e = result.lcpElement;
181
+ return uniqueEdits([
182
+ ...(e?.node.name === "img" ? lcpImageEdits(e) : []),
183
+ ...lcpPhaseEdits(result, pageUrl),
184
+ ]);
185
+ };
186
+ /** When Lighthouse names no LCP element: preload the largest image of the first screen. */
187
+ export const lcpFallbackEdit = () => addHtml("head", `<link rel="preload" as="image" href="${slot("URL of the largest image in the first screen")}" fetchpriority="high">`, 'When the largest element of the first screen is an image, preload it and give its <img> fetchpriority="high" (never loading="lazy"). When it is text, preload its web font instead: <link rel="preload" as="font" type="font/woff2" crossorigin href="…">.');
188
+ /** The scripts with the most main-thread time, each with what to do about it. */
189
+ export const scriptEdits = (scripts, pageUrl) => scripts
190
+ .filter((s) => s.url && (s.wastedMs ?? 0) >= 50)
191
+ .slice(0, 5)
192
+ .map((s) => {
193
+ const url = s.url ?? "";
194
+ const own = hostOf(url) === hostOf(pageUrl);
195
+ return rebuildEdit(url, own
196
+ ? "the script, split as write says"
197
+ : "how the page loads this script, as write says", `${s.wastedMs} ms of script evaluation on the main thread; aim for tasks under 50 ms. ${own
198
+ ? "Split it so the page loads only the code it runs (dynamic import() per route or component), and break long work into tasks under 50 ms (await scheduler.yield() between steps)."
199
+ : "A third-party script: load it after the page is interactive (after the load event, or on first interaction), or remove it if the page does not need it."}`);
200
+ });
201
+ const BYTE_ADVICE = new Map([
202
+ [
203
+ "unused-javascript",
204
+ "Remove the code this page does not run: split the bundle per route with dynamic import(), drop unused dependencies, or load the script only on the pages that use it.",
205
+ ],
206
+ [
207
+ "unused-css-rules",
208
+ "Remove the rules no page uses, or split the stylesheet per page.",
209
+ ],
210
+ [
211
+ "legacy-javascript-insight",
212
+ "Build it for current browsers: drop the polyfills and transforms for features they support (the bundler's target or browserslist).",
213
+ ],
214
+ [
215
+ "legacy-javascript",
216
+ "Build it for current browsers: drop the polyfills and transforms for features they support (the bundler's target or browserslist).",
217
+ ],
218
+ [
219
+ "duplicated-javascript-insight",
220
+ "Bundle one copy of the module this file repeats (deduplicate the dependency versions).",
221
+ ],
222
+ ["unminified-javascript", "Minify it in the build."],
223
+ ["unminified-css", "Minify it in the build."],
224
+ ]);
225
+ /** Files that carry bytes the page does not need, each with the size to aim for. */
226
+ const THIRD_PARTY_BYTES = "Another site's file: load it only on the pages that need it, ask its provider for a smaller or modern build, or remove it if the page does without it.";
227
+ const byteEdits = (opp, pageUrl) => (opp.items ?? []).flatMap((i) => {
228
+ if (!i.url || !(i.totalBytes ?? i.wastedBytes)) {
229
+ return [];
230
+ }
231
+ const total = i.totalBytes ?? 0;
232
+ const wasted = i.wastedBytes ?? 0;
233
+ const size = total
234
+ ? `${kib(total)}${wasted ? `, ${kib(wasted)} of it not needed` : ""}`
235
+ : `${kib(wasted)} not needed`;
236
+ const goal = total && wasted ? `; aim for ${kib(total - wasted)} or less` : "";
237
+ return [
238
+ rebuildEdit(i.url, "the file, rebuilt as write says", `${size}${goal}. ${hostOf(i.url) === hostOf(pageUrl)
239
+ ? (BYTE_ADVICE.get(opp.id) ?? opp.description)
240
+ : THIRD_PARTY_BYTES}`),
241
+ ];
242
+ });
243
+ /** Images larger than they are shown, or in an old format. */
244
+ const imageEdits = (opp) => (opp.items ?? []).flatMap((i) => {
245
+ if (!i.url) {
246
+ return [];
247
+ }
248
+ const width = i.node?.width;
249
+ const target = [
250
+ "WebP or AVIF",
251
+ width ? `${width * 2} px wide or less` : null,
252
+ i.totalBytes && i.wastedBytes
253
+ ? `${kib(i.totalBytes - i.wastedBytes)} or less`
254
+ : null,
255
+ ]
256
+ .filter(Boolean)
257
+ .join(", ");
258
+ return [
259
+ rebuildEdit(i.url, "the image, re-encoded as write says", `${i.totalBytes ? `${kib(i.totalBytes)} as served; aim` : "Aim"} for ${target}. Serve it in a modern format at the size it is shown${width ? ` (${width} CSS px, twice that for high-density screens)` : ""}, through srcset${i.text ? `. Lighthouse: ${i.text}` : ""}.`),
260
+ ];
261
+ });
262
+ /** A long cache lifetime for the site's own static files; other sites' files are theirs to set. */
263
+ const cacheLifetimeEdits = (opp, pageUrl) => {
264
+ const own = (opp.items ?? []).filter((i) => i.url && hostOf(i.url) === hostOf(pageUrl));
265
+ return own.map((i) => addEdit("http", "Cache-Control", "Cache-Control: public, max-age=31536000, immutable", {
266
+ url: i.url,
267
+ write: "For a file whose URL changes when its content does (a hash in the file name). For a file without one, use max-age=86400 instead.",
268
+ }));
269
+ };
270
+ const modernHttpEdits = (opp) => {
271
+ const origins = [
272
+ ...new Set((opp.items ?? []).flatMap((i) => {
273
+ try {
274
+ return i.url ? [new URL(i.url).origin] : [];
275
+ }
276
+ catch {
277
+ return [];
278
+ }
279
+ })),
280
+ ].slice(0, 5);
281
+ return origins.map((origin) => replaceEdit("http", "HTTP/1.1", "HTTP/2", {
282
+ url: origin,
283
+ at: "protocol",
284
+ write: "Turn on HTTP/2 (or HTTP/3) at the server or CDN that serves this origin, so its files load over one connection in parallel.",
285
+ }));
286
+ };
287
+ const VIEWPORT = addHtml("head", '<meta name="viewport" content="width=device-width, initial-scale=1">', "Replace the viewport meta tag the page has, if any: Lighthouse found it does not fit the page to the screen.");
288
+ const LCP_AUDITS = new Set([
289
+ "lcp-discovery-insight",
290
+ "lcp-breakdown-insight",
291
+ "prioritize-lcp-image",
292
+ "largest-contentful-paint-element",
293
+ ]);
294
+ const CLS_AUDITS = new Set([
295
+ "cls-culprits-insight",
296
+ "unsized-images",
297
+ "layout-shifts",
298
+ "cumulative-layout-shift",
299
+ ]);
300
+ const SCRIPT_AUDITS = new Set([
301
+ "bootup-time",
302
+ "mainthread-work-breakdown",
303
+ "long-tasks",
304
+ "forced-reflow-insight",
305
+ "third-parties-insight",
306
+ "inp-breakdown-insight",
307
+ ]);
308
+ const IMAGE_AUDITS = new Set([
309
+ "image-delivery-insight",
310
+ "modern-image-formats",
311
+ "uses-optimized-images",
312
+ "uses-responsive-images",
313
+ "efficient-animated-content",
314
+ ]);
315
+ const scriptAuditEdits = (opp, result, pageUrl) => {
316
+ const fromAudit = (opp.items ?? []).filter((i) => i.url && i.wastedMs);
317
+ return scriptEdits(fromAudit.length ? fromAudit : (result.scripts ?? []), pageUrl);
318
+ };
319
+ /** Which fixer handles which Lighthouse audits; the rest name files with bytes to drop. */
320
+ const OPPORTUNITY_FIXERS = [
321
+ [
322
+ new Set(["render-blocking-insight", "render-blocking-resources"]),
323
+ (opp, result, pageUrl) =>
324
+ // `items` is a list, often empty: fall back to the blocking resources the report lists.
325
+ renderBlockingEdits(opp.items?.length ? opp.items : (result.renderBlocking ?? []), pageUrl),
326
+ ],
327
+ [LCP_AUDITS, (_opp, result, pageUrl) => lcpEdits(result, pageUrl)],
328
+ [CLS_AUDITS, (_opp, result) => clsEdits(result)],
329
+ [
330
+ new Set(["document-latency-insight", "server-response-time"]),
331
+ (_opp, result) => [cacheHtmlEdit(result.metrics.ttfbMs)],
332
+ ],
333
+ [SCRIPT_AUDITS, scriptAuditEdits],
334
+ [IMAGE_AUDITS, (opp) => imageEdits(opp)],
335
+ [
336
+ new Set(["cache-insight", "uses-long-cache-ttl"]),
337
+ (opp, _result, pageUrl) => cacheLifetimeEdits(opp, pageUrl),
338
+ ],
339
+ [
340
+ new Set(["font-display-insight", "font-display"]),
341
+ (opp) => (opp.items ?? []).flatMap((i) => i.url ? [fontDisplayEdit(i.url, "swap")] : []),
342
+ ],
343
+ [new Set(["viewport-insight"]), () => [VIEWPORT]],
344
+ [new Set(["modern-http-insight"]), (opp) => modernHttpEdits(opp)],
345
+ ];
346
+ /** The edits for one Lighthouse opportunity, from the rows it names. */
347
+ export const opportunityEdits = (opp, result, pageUrl) => {
348
+ const fixer = OPPORTUNITY_FIXERS.find(([ids]) => ids.has(opp.id))?.[1];
349
+ return fixer ? fixer(opp, result, pageUrl) : byteEdits(opp, pageUrl);
350
+ };
351
+ /** The role an element's snippet gives it, such as `role="dialog"`. */
352
+ const roleOf = (snippet) => /\srole="(?<role>[^"]*)"/u.exec(snippet)?.groups?.role ?? null;
353
+ /**
354
+ * A problem that says the element does not allow its role: axe's "ARIA role should be appropriate
355
+ * for the element" and "ARIA role x is not allowed for given element", or Lighthouse's "Uses ARIA
356
+ * roles on incompatible elements". Other problems that name a role (required children or parent,
357
+ * a role that is not a valid value) are not about the element, and its role may be right.
358
+ */
359
+ const ROLE_NOT_ALLOWED = /appropriate for the element|not allowed (?:for|on) (?:the |given |this )?element|on incompatible elements/iu;
360
+ /** Elements with no closing tag, which a start tag swapped for "<div" would leave unclosed. */
361
+ const VOID_ELEMENTS = new Set([
362
+ "area",
363
+ "base",
364
+ "br",
365
+ "col",
366
+ "embed",
367
+ "hr",
368
+ "img",
369
+ "input",
370
+ "link",
371
+ "meta",
372
+ "source",
373
+ "track",
374
+ "wbr",
375
+ ]);
376
+ /** An element that misleads an agent reading the accessibility tree: a missing name, a wrong role. */
377
+ const accessibleEdit = (node, problem) => {
378
+ const role = roleOf(node.snippet);
379
+ const notAllowed = role !== null && ROLE_NOT_ALLOWED.test(problem);
380
+ // A <div> allows every role, so it keeps what the role says. A void element cannot become one.
381
+ if (notAllowed &&
382
+ node.name &&
383
+ node.name !== "div" &&
384
+ !VOID_ELEMENTS.has(node.name)) {
385
+ return replaceEdit("html", `<${node.name}`, "<div", {
386
+ at: node.selector,
387
+ write: `${problem}: <${node.name}> does not allow role="${role}". Make the element a <div> (and its closing tag </div>), which keeps the role, or use the element that has the role natively (<dialog> for role="dialog"). The element: ${node.snippet}`,
388
+ });
389
+ }
390
+ if (notAllowed) {
391
+ return removeEdit("html", `role="${role}"`, {
392
+ at: node.selector,
393
+ write: `${problem}. Remove the role, or use the element that has it natively (<dialog> for role="dialog"). The element: ${node.snippet}`,
394
+ });
395
+ }
396
+ if (/name|label|discernible|text/iu.test(problem)) {
397
+ return addHtml(node.selector, `aria-label="${slot("what the element does")}"`, `${problem}. Name it with visible text or this aria-label. The element: ${node.snippet}`);
398
+ }
399
+ return addHtml(node.selector, slot("the change the problem asks for"), `${problem}. The element: ${node.snippet}`);
400
+ };
401
+ const LLMS_TXT = [
402
+ `# ${slot("site name")}`,
403
+ "",
404
+ `> ${slot("what the site is, in one or two sentences")}`,
405
+ "",
406
+ `## ${slot("a section, such as Docs")}`,
407
+ "",
408
+ `- [${slot("page title")}](${slot("page URL")}): ${slot("what the page covers")}`,
409
+ ].join("\n");
410
+ /** The edits for a failed Lighthouse SEO or agentic-browsing audit. */
411
+ export const failedAuditEdits = (audit, result) => {
412
+ const items = audit.items ?? [];
413
+ if (audit.id === "robots-txt") {
414
+ const lines = items.filter((i) => i.line);
415
+ return lines.length
416
+ ? lines.map((i) => replaceEdit("robots.txt", i.line ?? "", slot("the line as a valid rule"), {
417
+ at: i.lineNumber ? `line ${i.lineNumber}` : undefined,
418
+ write: `Lighthouse: ${i.text ?? "not a valid rule"}. Write it as one valid rule (User-agent:, Allow:, Disallow:, Sitemap:), or delete the line.`,
419
+ }))
420
+ : [
421
+ addEdit("robots.txt", "/robots.txt", "User-agent: *\nAllow: /", {
422
+ write: "Lighthouse could not read the site's robots.txt. Serve one that answers 200 with plain text (or 404 when the site has none).",
423
+ }),
424
+ ];
425
+ }
426
+ if (audit.id === "crawlable-anchors") {
427
+ return items.flatMap((i) => i.node
428
+ ? [
429
+ addHtml(i.node.selector, `href="${slot("URL the link goes to")}"`, `Give this link a real URL in href so crawlers can follow it; keep a click handler if it needs one. The link: ${i.node.snippet}`),
430
+ ]
431
+ : []);
432
+ }
433
+ if (audit.id === "llms-txt") {
434
+ const problems = items.flatMap((i) => (i.text ? [i.text] : [])).join("; ");
435
+ return [
436
+ addEdit("llms.txt", "/llms.txt", LLMS_TXT, {
437
+ write: `${problems ? `Lighthouse: ${problems}. ` : ""}Markdown at /llms.txt: an H1 with the site name, a blockquote summary, then sections listing the pages an agent needs, each with a link and what it covers.`,
438
+ }),
439
+ ];
440
+ }
441
+ if (CLS_AUDITS.has(audit.id)) {
442
+ return clsEdits(result);
443
+ }
444
+ return items.flatMap((i) => i.node ? [accessibleEdit(i.node, i.text ?? audit.title)] : []);
445
+ };
446
+ //# sourceMappingURL=performance-fixes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-fixes.js","sourceRoot":"","sources":["../../src/core/performance-fixes.ts"],"names":[],"mappings":"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"}