renderdiff 0.1.0 → 0.3.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.
- package/README.md +166 -275
- package/dist/accept.d.ts +42 -0
- package/dist/accept.js +105 -0
- package/dist/accept.js.map +1 -0
- package/dist/capture.d.ts +10 -2
- package/dist/capture.js +67 -26
- package/dist/capture.js.map +1 -1
- package/dist/cli.js +55 -9
- package/dist/cli.js.map +1 -1
- package/dist/compare.d.ts +15 -0
- package/dist/compare.js +99 -28
- package/dist/compare.js.map +1 -1
- package/dist/config.d.ts +41 -9
- package/dist/config.js +81 -24
- package/dist/config.js.map +1 -1
- package/dist/format.d.ts +3 -0
- package/dist/format.js +17 -0
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/locate.d.ts +24 -0
- package/dist/locate.js +316 -0
- package/dist/locate.js.map +1 -0
- package/dist/report.d.ts +28 -4
- package/dist/report.js +37 -21
- package/dist/report.js.map +1 -1
- package/dist/run.d.ts +6 -1
- package/dist/run.js +247 -58
- package/dist/run.js.map +1 -1
- package/package.json +24 -6
- package/renderdiff.config.example.ts +30 -2
package/dist/report.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { CONTEXT_OPTIONS, name } from "./config.js";
|
|
4
|
-
import { floor4, fmtBand, fmtRegion, pct, signed } from "./format.js";
|
|
4
|
+
import { floor4, fmtBand, fmtElements, fmtRegion, pct, signed } from "./format.js";
|
|
5
5
|
/** Sort ascending by score; surface the mean and the worst (lowest-scoring) row. */
|
|
6
6
|
export function stats(rows) {
|
|
7
7
|
const sorted = [...rows].sort((a, b) => a.score - b.score);
|
|
@@ -10,11 +10,10 @@ export function stats(rows) {
|
|
|
10
10
|
}
|
|
11
11
|
/** Scores to 4 decimals, rounded down like `pct`. */
|
|
12
12
|
const round = (key, v) => typeof v === "number" && /^(score|alignedScore|mean)$/.test(key) ? floor4(v) : v;
|
|
13
|
-
export function writeResults(results, meta, outDir) {
|
|
13
|
+
export function writeResults(results, meta, outDir, stale) {
|
|
14
14
|
const compared = results.filter((r) => r.status === "compared");
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
: { mean: null, worst: null };
|
|
15
|
+
const open = compared.filter((r) => !r.accepted);
|
|
16
|
+
const { mean, worst } = open.length ? stats(open) : { mean: null, worst: null };
|
|
18
17
|
const out = {
|
|
19
18
|
meta,
|
|
20
19
|
results,
|
|
@@ -25,7 +24,9 @@ export function writeResults(results, meta, outDir) {
|
|
|
25
24
|
worst: worst && { url: worst.url, width: worst.width, score: worst.score },
|
|
26
25
|
belowThreshold: meta.threshold === null
|
|
27
26
|
? 0
|
|
28
|
-
: compared.filter((r) => r.score < meta.threshold).length,
|
|
27
|
+
: compared.filter((r) => !r.accepted && r.score < meta.threshold).length,
|
|
28
|
+
accepted: compared.filter((r) => r.accepted).length,
|
|
29
|
+
stale,
|
|
29
30
|
},
|
|
30
31
|
};
|
|
31
32
|
const rows = results.map((r) => ` ${JSON.stringify(r, round)}`).join(",\n");
|
|
@@ -37,34 +38,35 @@ export function writeResults(results, meta, outDir) {
|
|
|
37
38
|
fs.writeFileSync(file, json + "\n");
|
|
38
39
|
return file;
|
|
39
40
|
}
|
|
40
|
-
const esc = (s) => s
|
|
41
|
-
.replace(/&/g, "&")
|
|
42
|
-
.replace(/</g, "<")
|
|
43
|
-
.replace(/>/g, ">")
|
|
44
|
-
.replace(/"/g, """);
|
|
41
|
+
const esc = (s) => s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
45
42
|
/** Green above 99.5%, amber to 97%, red below. Tuned to be read, not to be precise. */
|
|
46
|
-
const band = (score) => score >= 0.995 ? "good" : score >= 0.97 ? "warn" : "bad";
|
|
43
|
+
const band = (score) => (score >= 0.995 ? "good" : score >= 0.97 ? "warn" : "bad");
|
|
47
44
|
function section(rows) {
|
|
48
45
|
if (!rows.length)
|
|
49
46
|
return "";
|
|
50
|
-
const { sorted
|
|
47
|
+
const { sorted } = stats(rows);
|
|
48
|
+
const open = rows.filter((r) => !r.accepted);
|
|
49
|
+
const agg = open.length ? stats(open) : null;
|
|
51
50
|
return `
|
|
52
51
|
<section>
|
|
53
|
-
<p class="agg"
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
<p class="agg">${agg
|
|
53
|
+
? `mean <b class="${band(agg.mean)}">${pct(agg.mean)}</b> ·
|
|
54
|
+
worst <b class="${band(agg.worst.score)}">${pct(agg.worst.score)}</b>
|
|
55
|
+
(${esc(name(agg.worst))} @${agg.worst.width}) · `
|
|
56
|
+
: ""}${sorted.length} comparison(s)${rows.length - open.length ? `, ${rows.length - open.length} accepted` : ""}</p>
|
|
56
57
|
${sorted.map(card).join("\n")}
|
|
57
58
|
</section>`;
|
|
58
59
|
}
|
|
59
60
|
/** Cap on regions and text lines listed per card; the counts are always full. */
|
|
60
61
|
const LIST_CAP = 5;
|
|
61
62
|
const TEXT_CAP = 20;
|
|
63
|
+
const dom = (els) => els?.length ? `<span class="dom"> — ${esc(fmtElements(els))}</span>` : "";
|
|
62
64
|
function findings(r) {
|
|
63
65
|
const items = [];
|
|
64
66
|
if (r.regions.length) {
|
|
65
67
|
items.push(`<p>${r.regions.length} region(s)</p><ul class="regions">${r.regions
|
|
66
68
|
.slice(0, LIST_CAP)
|
|
67
|
-
.map((g) => `<li>${fmtRegion(g)} — ${g.pixels.toLocaleString("en-US")} px</li>`)
|
|
69
|
+
.map((g) => `<li>${fmtRegion(g)} — ${g.pixels.toLocaleString("en-US")} px${dom(g.elements)}</li>`)
|
|
68
70
|
.join("")}</ul>`);
|
|
69
71
|
}
|
|
70
72
|
if (r.crops.length) {
|
|
@@ -73,7 +75,7 @@ function findings(r) {
|
|
|
73
75
|
.join("")}</div>`);
|
|
74
76
|
}
|
|
75
77
|
if (r.bands?.length) {
|
|
76
|
-
items.push(`<ul class="bands">${r.bands.map((b) => `<li>band ${fmtBand(b)}</li>`).join("")}</ul>`);
|
|
78
|
+
items.push(`<ul class="bands">${r.bands.map((b) => `<li>band ${fmtBand(b)}${dom(b.elements)}</li>`).join("")}</ul>`);
|
|
77
79
|
}
|
|
78
80
|
const { added, removed } = r.text;
|
|
79
81
|
if (added.length || removed.length) {
|
|
@@ -86,6 +88,9 @@ function findings(r) {
|
|
|
86
88
|
}
|
|
87
89
|
return items.length ? `<div class="findings">${items.join("")}</div>` : "";
|
|
88
90
|
}
|
|
91
|
+
const reasons = (r) => [
|
|
92
|
+
...new Set([...(r.bands ?? []), ...r.regions].flatMap((g) => (g.accepted ? [g.accepted] : []))),
|
|
93
|
+
].join("; ");
|
|
89
94
|
function card(r) {
|
|
90
95
|
const imgs = r.images;
|
|
91
96
|
return `
|
|
@@ -94,6 +99,8 @@ function card(r) {
|
|
|
94
99
|
<span class="score ${band(r.score)}">${pct(r.score)}</span>
|
|
95
100
|
<code>${esc(name(r))}</code>
|
|
96
101
|
<span class="w">@${r.width}px</span>
|
|
102
|
+
${r.hook ? `<span class="hook">before hook</span>` : ""}
|
|
103
|
+
${r.accepted ? `<span class="accepted">accepted: ${esc(reasons(r))}</span>` : ""}
|
|
97
104
|
${r.heightDelta ? `<span class="delta">height ${signed(r.heightDelta)}px</span>` : ""}
|
|
98
105
|
${r.widthDelta ? `<span class="delta">width ${signed(r.widthDelta)}px</span>` : ""}
|
|
99
106
|
${r.unstablePixels ? `<span class="unstable">${r.unstablePixels.toLocaleString("en-US")} px unstable</span>` : ""}
|
|
@@ -108,7 +115,7 @@ function card(r) {
|
|
|
108
115
|
</div>
|
|
109
116
|
</article>`;
|
|
110
117
|
}
|
|
111
|
-
export async function writeReport(results, meta, cfg) {
|
|
118
|
+
export async function writeReport(results, meta, cfg, stale) {
|
|
112
119
|
const compared = results.filter((r) => r.status === "compared");
|
|
113
120
|
const errors = results.filter((r) => r.status === "error");
|
|
114
121
|
const html = `<!doctype html>
|
|
@@ -131,7 +138,7 @@ export async function writeReport(results, meta, cfg) {
|
|
|
131
138
|
margin:0 0 1rem; padding:.75rem 1rem 1rem; }
|
|
132
139
|
.card header { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-bottom:.75rem }
|
|
133
140
|
.score { font-weight:700; font-variant-numeric:tabular-nums; min-width:4.5rem }
|
|
134
|
-
.w, .px, .delta, .unstable, .aligned { color:var(--mut); font-size:12px }
|
|
141
|
+
.w, .px, .delta, .unstable, .aligned, .hook, .accepted { color:var(--mut); font-size:12px }
|
|
135
142
|
.findings { font-size:12px; color:var(--mut); margin:0 0 .75rem }
|
|
136
143
|
.findings p { margin:.25rem 0 0 }
|
|
137
144
|
.findings ul { margin:.25rem 0; font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace }
|
|
@@ -155,7 +162,10 @@ export async function writeReport(results, meta, cfg) {
|
|
|
155
162
|
<h1>Visual diff</h1>
|
|
156
163
|
<p class="meta">
|
|
157
164
|
left <code>${esc(meta.left)}</code> vs right <code>${esc(meta.right)}</code><br>
|
|
158
|
-
${esc(meta.generatedAt)}
|
|
165
|
+
${esc(meta.generatedAt)} · ${esc(meta.browser.name)} ${esc(meta.browser.version)}${["left", "right"]
|
|
166
|
+
.filter((s) => meta.storageState[s])
|
|
167
|
+
.map((s) => ` · ${s} storage state <code>${esc(meta.storageState[s])}</code>`)
|
|
168
|
+
.join("")}
|
|
159
169
|
</p>
|
|
160
170
|
|
|
161
171
|
${section(compared)}
|
|
@@ -166,6 +176,12 @@ ${errors.length
|
|
|
166
176
|
<ul>${errors.map((r) => `<li><code>${esc(name(r))}</code> @${r.width}px — ${esc(r.error)}</li>`).join("")}</ul></section>`
|
|
167
177
|
: ""}
|
|
168
178
|
|
|
179
|
+
${stale.length
|
|
180
|
+
? `<section><h2>Stale accepted differences</h2>
|
|
181
|
+
<p class="blurb">Accepted, but not seen on this run: prune them from the accepted file.</p>
|
|
182
|
+
<ul>${stale.map((a) => `<li><code>${esc(a.route)}</code> @${a.width}px — ${esc(a.reason)}</li>`).join("")}</ul></section>`
|
|
183
|
+
: ""}
|
|
184
|
+
|
|
169
185
|
<details>
|
|
170
186
|
<summary>What was neutralized</summary>
|
|
171
187
|
<p>Blocked on both sides — analytics, consent, and A/B tooling that would otherwise
|
package/dist/report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -6,8 +6,13 @@ interface RunOpts {
|
|
|
6
6
|
open: boolean;
|
|
7
7
|
/** A line per shot as it lands; otherwise one compact summary at the end. */
|
|
8
8
|
progress: boolean;
|
|
9
|
+
/** Accept every difference not yet accepted, with this reason. */
|
|
10
|
+
accept: string | null;
|
|
11
|
+
/** Rerun only what the previous results.json in the out dir didn't find clean or accepted. */
|
|
12
|
+
rerun: boolean;
|
|
13
|
+
acceptedFile: string;
|
|
9
14
|
}
|
|
10
|
-
export declare function run({ routes, cfg, open, progress }: RunOpts): Promise<number>;
|
|
15
|
+
export declare function run({ routes, cfg, open, progress, accept, rerun, acceptedFile, }: RunOpts): Promise<number>;
|
|
11
16
|
/**
|
|
12
17
|
* The non-TTY summary, sized for an agent's context: clean routes on one line, then each
|
|
13
18
|
* differing route with its widths collapsed where everything but the score agrees, and a
|