renderdiff 0.2.0 → 0.3.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/README.md +150 -339
- 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 +2 -0
- package/dist/capture.js +38 -7
- package/dist/capture.js.map +1 -1
- package/dist/cli.js +30 -6
- package/dist/cli.js.map +1 -1
- package/dist/compare.d.ts +8 -0
- package/dist/compare.js +20 -0
- package/dist/compare.js.map +1 -1
- package/dist/format.d.ts +5 -0
- package/dist/format.js +4 -0
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/report.d.ts +21 -4
- package/dist/report.js +32 -10
- package/dist/report.js.map +1 -1
- package/dist/run.d.ts +6 -1
- package/dist/run.js +186 -37
- package/dist/run.js.map +1 -1
- package/package.json +18 -5
- package/renderdiff.config.example.ts +3 -1
package/dist/run.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
2
3
|
import fs from "node:fs";
|
|
3
4
|
import path from "node:path";
|
|
4
5
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
5
6
|
import { chromium, errors } from "playwright";
|
|
7
|
+
import { applyAccepted, readAccepted, updateAccepted } from "./accept.js";
|
|
6
8
|
import { cancelUnstable, capture, HookError, prepare } from "./capture.js";
|
|
7
9
|
import { compare, crops } from "./compare.js";
|
|
8
10
|
import { locate } from "./locate.js";
|
|
9
11
|
import { CONTEXT_OPTIONS, label, masksFor, name, selectorText, version, } from "./config.js";
|
|
10
|
-
import { fmtBand, fmtElements, fmtRegion, pct, signed } from "./format.js";
|
|
12
|
+
import { fmtBand, fmtElements, fmtFailed, fmtRegion, pct, signed } from "./format.js";
|
|
11
13
|
import { stats, writeReport, writeResults, } from "./report.js";
|
|
12
14
|
/** A busy main thread can stall the probe; the elements are a hint, so give up rather than wait. */
|
|
13
15
|
const LOCATE_TIMEOUT = 5_000;
|
|
@@ -47,26 +49,114 @@ function wipeable(dir) {
|
|
|
47
49
|
return true;
|
|
48
50
|
return fs.statSync(dir).isDirectory() && fs.readdirSync(dir).every(ours);
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
/** A stylesheet or font face failed on a side; older results.json files lack the field. */
|
|
53
|
+
const broken = (r) => !!(r.failed?.left.length || r.failed?.right.length);
|
|
54
|
+
const reusable = (r) => r.status === "compared" &&
|
|
55
|
+
((r.diffPixels === 0 && r.unstablePixels === 0 && !broken(r)) || r.accepted);
|
|
56
|
+
const files = (r) => r.status === "compared" ? [...Object.values(r.images), ...r.crops.map((c) => c.path)] : [];
|
|
57
|
+
/** Everything that decides how a shot is taken, hook and `locate` sources included. */
|
|
58
|
+
function configHash(cfg, routes) {
|
|
59
|
+
const { threshold, outDir, concurrency, storageState, ...rest } = cfg;
|
|
60
|
+
const json = JSON.stringify({
|
|
61
|
+
...rest,
|
|
62
|
+
storageState: [storageState.left, storageState.right].map((f) => f && path.basename(f)),
|
|
63
|
+
routes,
|
|
64
|
+
}, (_, v) => (typeof v === "function" ? String(v) : v));
|
|
65
|
+
return createHash("sha256").update(json).digest("hex").slice(0, 16);
|
|
66
|
+
}
|
|
67
|
+
/** The previous run's results when this run repeats it, else why it doesn't. */
|
|
68
|
+
function previous(file, now) {
|
|
69
|
+
if (!fs.existsSync(file))
|
|
70
|
+
return `no ${file} to rerun from; run without --rerun-failed first`;
|
|
71
|
+
let prev;
|
|
72
|
+
try {
|
|
73
|
+
prev = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return `${file} is not valid JSON; run without --rerun-failed`;
|
|
77
|
+
}
|
|
78
|
+
const was = {
|
|
79
|
+
...prev.meta,
|
|
80
|
+
routes: [...new Set(prev.results?.map(name))],
|
|
81
|
+
};
|
|
82
|
+
for (const [key, value] of Object.entries(now)) {
|
|
83
|
+
if (key === "config" && value !== was[key]) {
|
|
84
|
+
return (`the config (masks, hooks, hidden selectors, blocked URLs, CSS, storage state) ` +
|
|
85
|
+
`differs from the one that wrote ${file}; run without --rerun-failed to start over`);
|
|
86
|
+
}
|
|
87
|
+
if (JSON.stringify(value) !== JSON.stringify(was[key])) {
|
|
88
|
+
return (`${key} ${JSON.stringify(value)} differ from the previous run's ${JSON.stringify(was[key])} ` +
|
|
89
|
+
`in ${file}; run without --rerun-failed to start over`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return prev;
|
|
93
|
+
}
|
|
94
|
+
export async function run({ routes, cfg, open, progress, accept, rerun, acceptedFile, }) {
|
|
95
|
+
const names = routes.map(name);
|
|
96
|
+
const setup = {
|
|
97
|
+
left: cfg.left,
|
|
98
|
+
right: cfg.right,
|
|
99
|
+
widths: cfg.widths,
|
|
100
|
+
blockUrlPatterns: cfg.blockUrlPatterns,
|
|
101
|
+
hideSelectors: cfg.hideSelectors,
|
|
102
|
+
masks: cfg.masks.map(({ urlPath, reason }) => ({ urlPath, reason })),
|
|
103
|
+
storageState: {
|
|
104
|
+
left: cfg.storageState.left && path.basename(cfg.storageState.left),
|
|
105
|
+
right: cfg.storageState.right && path.basename(cfg.storageState.right),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
let accepted;
|
|
109
|
+
try {
|
|
110
|
+
accepted = readAccepted(acceptedFile);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
console.error(`✗ ${e instanceof Error ? e.message : String(e)}`);
|
|
114
|
+
return 2;
|
|
115
|
+
}
|
|
116
|
+
const config = configHash(cfg, routes);
|
|
117
|
+
const prev = rerun
|
|
118
|
+
? previous(path.join(cfg.outDir, "results.json"), {
|
|
119
|
+
version: version(),
|
|
120
|
+
left: cfg.left,
|
|
121
|
+
right: cfg.right,
|
|
122
|
+
widths: cfg.widths,
|
|
123
|
+
routes: names,
|
|
124
|
+
config,
|
|
125
|
+
})
|
|
126
|
+
: null;
|
|
127
|
+
if (typeof prev === "string") {
|
|
128
|
+
console.error(`✗ --rerun-failed: ${prev}`);
|
|
129
|
+
return 2;
|
|
130
|
+
}
|
|
131
|
+
if (!prev && !wipeable(cfg.outDir)) {
|
|
52
132
|
console.error(`✗ output directory ${cfg.outDir} holds files renderdiff didn't write — ` +
|
|
53
133
|
`refusing to wipe it. Pass --out with a new or empty directory.`);
|
|
54
134
|
return 2;
|
|
55
135
|
}
|
|
56
|
-
|
|
136
|
+
if (!prev)
|
|
137
|
+
fs.rmSync(cfg.outDir, { recursive: true, force: true });
|
|
57
138
|
fs.mkdirSync(cfg.outDir, { recursive: true });
|
|
139
|
+
if (prev)
|
|
140
|
+
applyAccepted(prev.results, accepted);
|
|
141
|
+
const before = new Map(prev?.results.map((r) => [`${name(r)}@${r.width}`, r]));
|
|
142
|
+
const results = [];
|
|
58
143
|
const jobs = [];
|
|
59
|
-
for (const route of routes)
|
|
60
|
-
for (const width of cfg.widths)
|
|
61
|
-
|
|
144
|
+
for (const route of routes) {
|
|
145
|
+
for (const width of cfg.widths) {
|
|
146
|
+
const had = before.get(`${name(route)}@${width}`);
|
|
147
|
+
if (had && reusable(had))
|
|
148
|
+
results.push(had);
|
|
149
|
+
else
|
|
150
|
+
jobs.push({ route, width });
|
|
151
|
+
}
|
|
152
|
+
}
|
|
62
153
|
const stems = slugs(routes);
|
|
63
|
-
const
|
|
64
|
-
const { browser, channel } = await launch();
|
|
154
|
+
const launched = jobs.length ? await launch() : null;
|
|
65
155
|
const queue = [...jobs];
|
|
66
156
|
let done = 0;
|
|
67
157
|
// Whole minute, so an HH:MM display reads the same on both sides.
|
|
68
158
|
const now = Math.floor(Date.now() / 60_000) * 60_000;
|
|
69
|
-
const worker = async () => {
|
|
159
|
+
const worker = async (browser) => {
|
|
70
160
|
// One context per origin so cookies/localStorage never cross between them.
|
|
71
161
|
const leftCtx = await browser.newContext({
|
|
72
162
|
...CONTEXT_OPTIONS,
|
|
@@ -144,11 +234,15 @@ export async function run({ routes, cfg, open, progress }) {
|
|
|
144
234
|
unstablePixels,
|
|
145
235
|
images,
|
|
146
236
|
crops: cropped,
|
|
237
|
+
accepted: false,
|
|
238
|
+
failed: { left: leftShot.failed, right: rightShot.failed },
|
|
147
239
|
});
|
|
148
240
|
const { regions, bands, alignedScore, text } = metrics;
|
|
149
241
|
const dom = elementsOf(metrics);
|
|
242
|
+
const assets = fmtFailed({ left: leftShot.failed, right: rightShot.failed });
|
|
150
243
|
const details = [
|
|
151
244
|
sel,
|
|
245
|
+
assets ? `failed ${assets}` : "",
|
|
152
246
|
regions.length
|
|
153
247
|
? `${regions.length} region${regions.length > 1 ? "s" : ""}, largest ${fmtRegion(regions[0])}`
|
|
154
248
|
: "",
|
|
@@ -186,33 +280,63 @@ export async function run({ routes, cfg, open, progress }) {
|
|
|
186
280
|
if (progress) {
|
|
187
281
|
console.log(`Capturing ${jobs.length} pair(s) with ${cfg.concurrency} worker(s)...\n`);
|
|
188
282
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
283
|
+
if (launched) {
|
|
284
|
+
await Promise.all(Array.from({ length: cfg.concurrency }, () => worker(launched.browser)));
|
|
285
|
+
await launched.browser.close();
|
|
286
|
+
}
|
|
287
|
+
const browserMeta = launched
|
|
288
|
+
? { name: launched.channel ?? "chromium", version: launched.browser.version() }
|
|
289
|
+
: prev.meta.browser;
|
|
290
|
+
// A rerun overwrites a shot's files in place; drop the ones it no longer writes, ours only.
|
|
291
|
+
const kept = new Set(results.flatMap(files));
|
|
292
|
+
for (const { route, width } of jobs) {
|
|
293
|
+
const had = before.get(`${name(route)}@${width}`);
|
|
294
|
+
for (const f of had ? files(had) : []) {
|
|
295
|
+
if (!kept.has(f) && ours(f))
|
|
296
|
+
fs.rmSync(path.join(cfg.outDir, f), { force: true });
|
|
297
|
+
}
|
|
298
|
+
}
|
|
192
299
|
// Workers finish out of order; job order keeps results.json stable across runs.
|
|
193
|
-
const names = routes.map(name);
|
|
194
300
|
const order = (r) => names.indexOf(name(r)) * cfg.widths.length + cfg.widths.indexOf(r.width);
|
|
195
301
|
results.sort((a, b) => order(a) - order(b));
|
|
302
|
+
let { unmatched, stale } = applyAccepted(results, accepted);
|
|
303
|
+
if (accept !== null) {
|
|
304
|
+
const added = unmatched.map(({ route, width, fingerprint }) => ({
|
|
305
|
+
route,
|
|
306
|
+
width,
|
|
307
|
+
reason: accept,
|
|
308
|
+
fingerprint,
|
|
309
|
+
}));
|
|
310
|
+
const pruned = stale.length;
|
|
311
|
+
if (updateAccepted(acceptedFile, stale, added)) {
|
|
312
|
+
({ stale } = applyAccepted(results, readAccepted(acceptedFile)));
|
|
313
|
+
}
|
|
314
|
+
console.log(`accepted ${added.length} difference(s), pruned ${pruned} stale — ${acceptedFile}`);
|
|
315
|
+
}
|
|
316
|
+
const { left, right, widths, ...rest } = setup;
|
|
196
317
|
const meta = {
|
|
197
318
|
tool: "renderdiff",
|
|
198
319
|
version: version(),
|
|
199
320
|
generatedAt: new Date().toISOString(),
|
|
200
|
-
left
|
|
201
|
-
right
|
|
202
|
-
widths
|
|
321
|
+
left,
|
|
322
|
+
right,
|
|
323
|
+
widths,
|
|
203
324
|
threshold: cfg.threshold,
|
|
204
325
|
clock: new Date(now).toISOString(),
|
|
205
|
-
|
|
206
|
-
hideSelectors: cfg.hideSelectors,
|
|
207
|
-
masks: cfg.masks.map(({ urlPath, reason }) => ({ urlPath, reason })),
|
|
326
|
+
...rest,
|
|
208
327
|
browser: browserMeta,
|
|
209
|
-
|
|
210
|
-
left: cfg.storageState.left && path.basename(cfg.storageState.left),
|
|
211
|
-
right: cfg.storageState.right && path.basename(cfg.storageState.right),
|
|
212
|
-
},
|
|
328
|
+
config,
|
|
213
329
|
};
|
|
214
|
-
const reportPath = await writeReport(results, meta, cfg);
|
|
215
|
-
const resultsPath = writeResults(results, meta, cfg.outDir);
|
|
330
|
+
const reportPath = await writeReport(results, meta, cfg, stale);
|
|
331
|
+
const resultsPath = writeResults(results, meta, cfg.outDir, stale);
|
|
332
|
+
if (prev) {
|
|
333
|
+
const rerunRoutes = new Set(jobs.map((j) => name(j.route))).size;
|
|
334
|
+
console.log(`rerun: ${jobs.length} shot(s) on ${rerunRoutes} route(s), ` +
|
|
335
|
+
`${results.length - jobs.length} reused, ${names.length - rerunRoutes} route(s) untouched`);
|
|
336
|
+
}
|
|
337
|
+
if (stale.length) {
|
|
338
|
+
console.log(`stale accepted: ${stale.map((a) => `${a.route}@${a.width}`).join(" ")} — ${acceptedFile}`);
|
|
339
|
+
}
|
|
216
340
|
if (progress)
|
|
217
341
|
summarize(results, reportPath, resultsPath);
|
|
218
342
|
else
|
|
@@ -222,7 +346,7 @@ export async function run({ routes, cfg, open, progress }) {
|
|
|
222
346
|
spawn(opener, [reportPath], { detached: true, stdio: "ignore" }).unref();
|
|
223
347
|
}
|
|
224
348
|
// A measured failure outranks an unmeasured route, so an error can't hide a threshold failure.
|
|
225
|
-
const below = results.filter((r) => r.status === "compared" && cfg.threshold !== null && r.score < cfg.threshold);
|
|
349
|
+
const below = results.filter((r) => r.status === "compared" && !r.accepted && cfg.threshold !== null && r.score < cfg.threshold);
|
|
226
350
|
if (below.length) {
|
|
227
351
|
console.error(`\n✗ ${below.length} route(s) below ${pct(cfg.threshold)}.`);
|
|
228
352
|
}
|
|
@@ -266,14 +390,19 @@ async function shoot(page, url, route, side, width, cfg, now) {
|
|
|
266
390
|
}
|
|
267
391
|
function summarize(results, reportPath, resultsPath) {
|
|
268
392
|
const compared = results.filter((r) => r.status === "compared");
|
|
269
|
-
|
|
270
|
-
|
|
393
|
+
const open = compared.filter((r) => !r.accepted);
|
|
394
|
+
if (open.length) {
|
|
395
|
+
const { sorted, mean, worst } = stats(open);
|
|
271
396
|
console.log(`\nmean ${pct(mean)} worst ${pct(worst.score)} (${name(worst)} @${worst.width})`);
|
|
272
397
|
for (const r of sorted.slice(0, 10)) {
|
|
273
398
|
console.log(` ${pct(r.score).padStart(7)} ${name(r)}@${r.width}` +
|
|
274
399
|
(r.heightDelta ? ` height ${signed(r.heightDelta)}px` : ""));
|
|
275
400
|
}
|
|
276
401
|
}
|
|
402
|
+
const accepted = compared.filter((r) => r.accepted);
|
|
403
|
+
if (accepted.length) {
|
|
404
|
+
console.log(`\nAccepted (${accepted.length}): ${accepted.map((r) => `${name(r)}@${r.width}`).join(" ")}`);
|
|
405
|
+
}
|
|
277
406
|
const errors = results.filter((r) => r.status === "error");
|
|
278
407
|
if (errors.length) {
|
|
279
408
|
console.log(`\nErrors (${errors.length}):`);
|
|
@@ -285,9 +414,9 @@ function summarize(results, reportPath, resultsPath) {
|
|
|
285
414
|
}
|
|
286
415
|
/** At most this many elements per summary line. */
|
|
287
416
|
const DOM_ELEMENTS = 3;
|
|
288
|
-
/** Located elements in crop order, bands tallest first then regions, one per selector. */
|
|
417
|
+
/** Located elements in crop order, bands tallest first then regions, one per selector; none accepted. */
|
|
289
418
|
function elementsOf(r) {
|
|
290
|
-
const all = [...[...(r.bands ?? [])].sort((a, b) => b.h - a.h), ...r.regions].flatMap((g) => g.elements ?? []);
|
|
419
|
+
const all = [...[...(r.bands ?? [])].sort((a, b) => b.h - a.h), ...r.regions].flatMap((g) => g.accepted ? [] : (g.elements ?? []));
|
|
291
420
|
return all
|
|
292
421
|
.filter((e, i) => all.findIndex((o) => o.selector === e.selector) === i)
|
|
293
422
|
.slice(0, DOM_ELEMENTS);
|
|
@@ -302,20 +431,29 @@ const TEXT_LINES = 3;
|
|
|
302
431
|
export function compact(results, routes, resultsPath, threshold) {
|
|
303
432
|
const out = [];
|
|
304
433
|
const clean = [];
|
|
434
|
+
const accepted = [];
|
|
305
435
|
let differ = 0;
|
|
306
436
|
for (const route of routes) {
|
|
307
437
|
const rows = results.filter((r) => name(r) === route);
|
|
308
438
|
const ok = rows.filter((r) => r.status === "compared");
|
|
309
|
-
// Unstable pixels went unmeasured
|
|
310
|
-
|
|
311
|
-
const
|
|
439
|
+
// Unstable pixels went unmeasured and a failed asset rendered a fallback, so a shot with
|
|
440
|
+
// either is not clean, only unchanged.
|
|
441
|
+
const same = ok.filter((r) => r.diffPixels === 0 && r.unstablePixels === 0 && !broken(r));
|
|
442
|
+
const acc = ok.filter((r) => r.accepted);
|
|
443
|
+
const changed = ok.filter((r) => !same.includes(r) && !r.accepted);
|
|
312
444
|
if (same.length === rows.length) {
|
|
313
445
|
clean.push(route);
|
|
314
446
|
continue;
|
|
315
447
|
}
|
|
448
|
+
if (same.length + acc.length === rows.length) {
|
|
449
|
+
accepted.push(route);
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
316
452
|
if (changed.some((r) => r.diffPixels > 0))
|
|
317
453
|
differ++;
|
|
318
|
-
out.push(route +
|
|
454
|
+
out.push(route +
|
|
455
|
+
(same.length ? ` clean @${same.map((r) => r.width).join(",")}` : "") +
|
|
456
|
+
(acc.length ? ` accepted @${acc.map((r) => r.width).join(",")}` : ""));
|
|
319
457
|
const groups = new Map();
|
|
320
458
|
for (const r of changed) {
|
|
321
459
|
const key = JSON.stringify([
|
|
@@ -329,6 +467,12 @@ export function compact(results, routes, resultsPath, threshold) {
|
|
|
329
467
|
}
|
|
330
468
|
for (const g of groups.values()) {
|
|
331
469
|
out.push(` @${g.map((r) => r.width).join(",")} ${row(g)}`);
|
|
470
|
+
const failed = fmtFailed({
|
|
471
|
+
left: [...new Set(g.flatMap((r) => r.failed?.left ?? []))],
|
|
472
|
+
right: [...new Set(g.flatMap((r) => r.failed?.right ?? []))],
|
|
473
|
+
});
|
|
474
|
+
if (failed)
|
|
475
|
+
out.push(` failed ${failed}`);
|
|
332
476
|
const dom = elementsOf(g[0]);
|
|
333
477
|
if (dom.length)
|
|
334
478
|
out.push(` dom ${g.length > 1 ? `@${g[0].width} ` : ""}${fmtElements(dom)}`);
|
|
@@ -343,11 +487,14 @@ export function compact(results, routes, resultsPath, threshold) {
|
|
|
343
487
|
for (const [error, widths] of failed)
|
|
344
488
|
out.push(` @${widths.join(",")} ERROR ${error}`);
|
|
345
489
|
}
|
|
490
|
+
if (accepted.length)
|
|
491
|
+
out.unshift(`accepted: ${accepted.join(" ")}`);
|
|
346
492
|
if (clean.length)
|
|
347
493
|
out.unshift(`clean: ${clean.join(" ")}`);
|
|
348
|
-
const
|
|
494
|
+
const all = results.filter((r) => r.status === "compared");
|
|
495
|
+
const compared = all.filter((r) => !r.accepted);
|
|
349
496
|
const shots = compared.filter((r) => r.diffPixels > 0).length;
|
|
350
|
-
const errors = results.length -
|
|
497
|
+
const errors = results.length - all.length;
|
|
351
498
|
const worst = compared.length ? stats(compared).worst : null;
|
|
352
499
|
out.push(`renderdiff: ${differ} of ${routes.length} routes differ (${shots} of ${results.length} shots), ` +
|
|
353
500
|
`${errors} error${errors === 1 ? "" : "s"}` +
|
|
@@ -366,6 +513,7 @@ function row(g) {
|
|
|
366
513
|
return lo === hi ? f(lo) : `${f(lo)}–${f(hi)}`;
|
|
367
514
|
};
|
|
368
515
|
const regions = g.map((x) => x.regions.length);
|
|
516
|
+
const accepted = g.map((x) => [...(x.bands ?? []), ...x.regions].filter((c) => c.accepted).length);
|
|
369
517
|
const unstable = Math.max(...g.map((x) => x.unstablePixels));
|
|
370
518
|
// Band y varies with width; a collapsed row shows the first one's, marked approximate.
|
|
371
519
|
const y = (b) => `@y${g.length > 1 ? "~" : ""}${b.y}`;
|
|
@@ -379,6 +527,7 @@ function row(g) {
|
|
|
379
527
|
r.alignedScore !== null ? `aligned ${pct(r.alignedScore)}` : "",
|
|
380
528
|
Math.max(...regions) ? `${span(regions, String)} reg` : "",
|
|
381
529
|
unstable ? `unstable ${unstable.toLocaleString("en-US")}px` : "",
|
|
530
|
+
Math.max(...accepted) ? `${span(accepted, String)} accepted` : "",
|
|
382
531
|
text.length
|
|
383
532
|
? `text ${text.slice(0, TEXT_LINES).join(" ")}` +
|
|
384
533
|
(text.length > TEXT_LINES ? ` (+${text.length - TEXT_LINES} more)` : "")
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "renderdiff",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "Visual-parity checker for website migrations: screenshot-diffs your branch against production across viewport widths, and names the DOM element and CSS property behind each change. Built for coding agents (Claude Code, Codex, Cursor).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Timur Mashara",
|
|
@@ -42,10 +42,23 @@
|
|
|
42
42
|
},
|
|
43
43
|
"keywords": [
|
|
44
44
|
"visual-regression",
|
|
45
|
-
"
|
|
46
|
-
"
|
|
45
|
+
"visual-diff",
|
|
46
|
+
"visual-testing",
|
|
47
|
+
"screenshot-diff",
|
|
48
|
+
"screenshot-comparison",
|
|
49
|
+
"pixel-diff",
|
|
50
|
+
"migration",
|
|
51
|
+
"refactor",
|
|
52
|
+
"css-refactor",
|
|
53
|
+
"framework-migration",
|
|
54
|
+
"parity",
|
|
47
55
|
"playwright",
|
|
48
|
-
"pixelmatch"
|
|
56
|
+
"pixelmatch",
|
|
57
|
+
"coding-agent",
|
|
58
|
+
"ai-agent",
|
|
59
|
+
"claude-code",
|
|
60
|
+
"agent-skill",
|
|
61
|
+
"llm"
|
|
49
62
|
],
|
|
50
63
|
"dependencies": {
|
|
51
64
|
"pixelmatch": "^7.2.0",
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
import type { RenderdiffConfig } from "renderdiff";
|
|
7
7
|
|
|
8
8
|
export default {
|
|
9
|
-
//
|
|
9
|
+
// left: the build you changed (usually localhost). right: the reference you must match
|
|
10
|
+
// (usually production). The +/- signs in the output and text.added/removed in
|
|
11
|
+
// results.json are written from left's point of view.
|
|
10
12
|
left: "http://localhost:3000",
|
|
11
13
|
right: "https://example.com",
|
|
12
14
|
|