@ia-qa/self-healing 1.6.6 → 1.6.8
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 +118 -2
- package/TUTORIAL.md +138 -3
- package/assets/logoKawaiiGreenTiny.png +0 -0
- package/dist/cli/args.js +4 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/diff.d.ts +6 -1
- package/dist/cli/diff.js +114 -4
- package/dist/cli/diff.js.map +1 -1
- package/dist/cli/emit.d.ts +71 -0
- package/dist/cli/emit.js +150 -0
- package/dist/cli/emit.js.map +1 -0
- package/dist/cli/fix.js +36 -0
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/history.d.ts +12 -0
- package/dist/cli/history.js +95 -0
- package/dist/cli/history.js.map +1 -0
- package/dist/cli/index.js +53 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.js +32 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/map.js +60 -0
- package/dist/cli/map.js.map +1 -1
- package/dist/cli/run.js +77 -7
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/ui.d.ts +16 -0
- package/dist/cli/ui.js +275 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/evidence.d.ts +130 -0
- package/dist/evidence.js +232 -0
- package/dist/evidence.js.map +1 -0
- package/dist/history.d.ts +145 -0
- package/dist/history.js +230 -0
- package/dist/history.js.map +1 -0
- package/dist/htmlReport.d.ts +47 -0
- package/dist/htmlReport.js +76 -1
- package/dist/htmlReport.js.map +1 -1
- package/dist/junit.d.ts +53 -0
- package/dist/junit.js +150 -0
- package/dist/junit.js.map +1 -0
- package/dist/mcp/server.js +41 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/ui/icon.d.ts +41 -0
- package/dist/ui/icon.js +115 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/lock.d.ts +40 -0
- package/dist/ui/lock.js +138 -0
- package/dist/ui/lock.js.map +1 -0
- package/dist/ui/page.d.ts +1 -0
- package/dist/ui/page.js +584 -0
- package/dist/ui/page.js.map +1 -0
- package/dist/ui/registry.d.ts +62 -0
- package/dist/ui/registry.js +139 -0
- package/dist/ui/registry.js.map +1 -0
- package/dist/ui/server.d.ts +67 -0
- package/dist/ui/server.js +604 -0
- package/dist/ui/server.js.map +1 -0
- package/dist/ui/shortcut.d.ts +90 -0
- package/dist/ui/shortcut.js +176 -0
- package/dist/ui/shortcut.js.map +1 -0
- package/package.json +2 -1
- package/skills/ia-qa-heal/SKILL.md +27 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runHistory = runHistory;
|
|
4
|
+
const history_1 = require("../history");
|
|
5
|
+
const summary_1 = require("./summary");
|
|
6
|
+
/**
|
|
7
|
+
* `ia-qa-heal history [--json] [--limit N]` — the trend, in the terminal.
|
|
8
|
+
*
|
|
9
|
+
* The console renders the same numbers as charts and an MCP tool returns them
|
|
10
|
+
* to an agent, but all three read one store and compute through one function
|
|
11
|
+
* (`summarize`). That is deliberate: a KPI the UI can draw and the CLI cannot
|
|
12
|
+
* state is a second source of truth, which is the CLI/MCP divergence this
|
|
13
|
+
* project already treats as a defect rather than a detail.
|
|
14
|
+
*
|
|
15
|
+
* Always exit 0. This verb reports on gates, it is not one.
|
|
16
|
+
*/
|
|
17
|
+
async function runHistory(args = []) {
|
|
18
|
+
const json = args.includes('--json');
|
|
19
|
+
const li = args.indexOf('--limit');
|
|
20
|
+
const limit = li !== -1 ? Number(args[li + 1]) : 500;
|
|
21
|
+
if (li !== -1 && (!Number.isInteger(limit) || limit < 1)) {
|
|
22
|
+
console.error('❌ --limit needs a positive whole number.');
|
|
23
|
+
process.exitCode = 2;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const entries = (0, history_1.readHistory)(limit);
|
|
27
|
+
const sum = (0, history_1.summarize)(entries);
|
|
28
|
+
if (json) {
|
|
29
|
+
console.log(JSON.stringify({ summary: sum, entries }, null, 2));
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (entries.length === 0) {
|
|
33
|
+
console.log(`\nNo run history yet — ${(0, history_1.historyPath)()} does not exist.\n\n` +
|
|
34
|
+
` Every \`diff\` and \`run\` appends one line to it. A trend is the one thing\n` +
|
|
35
|
+
` no single invocation can reconstruct afterwards, so it is recorded as it\n` +
|
|
36
|
+
` happens: the runs you have not made yet are the only ones you can still get.\n`);
|
|
37
|
+
(0, summary_1.summaryLine)('history', 'info', 'no runs recorded yet');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.log(`\n📈 Run history · ${entries.length} recorded · ${(0, history_1.historyPath)()}`);
|
|
41
|
+
console.log(` ${when(sum.first)} → ${when(sum.last)}`);
|
|
42
|
+
const s = sum.trend.series;
|
|
43
|
+
if (s.length === 0) {
|
|
44
|
+
console.log(`\n No comparable runs to trend yet (only \`diff\` and \`run\` produce one).`);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(`\n ${s.length} comparable run${s.length === 1 ? '' : 's'}` +
|
|
48
|
+
(sum.trend.source ? ` captured by \`${sum.trend.source}\`` : '') +
|
|
49
|
+
` · ${Math.round(sum.driftRate * 100)}% ended with drift` +
|
|
50
|
+
` · ${Math.round(sum.coverage * 100)}% mean coverage` +
|
|
51
|
+
` · ${sum.healed} rewrite${sum.healed === 1 ? '' : 's'} applied`);
|
|
52
|
+
console.log('');
|
|
53
|
+
for (const e of s.slice(-12)) {
|
|
54
|
+
const d = drift(e);
|
|
55
|
+
console.log(` ${icon(e.verdict)} ${e.verdict.padEnd(5)} ${when(e.ts).padEnd(20)} ` +
|
|
56
|
+
`${String(d).padStart(3)} drifted ${cov(e).padEnd(9)} ${e.commit ?? ''}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// The honest half: what was left out, and why. A trend that silently drops
|
|
60
|
+
// half its points is worse than no trend, because it is believed.
|
|
61
|
+
if (sum.trend.reason) {
|
|
62
|
+
console.log(`\n ⚠️ ${sum.trend.reason}`);
|
|
63
|
+
console.log(` Plotted on one axis these would invent a trend out of a capture artifact —\n` +
|
|
64
|
+
` a \`map\` baseline and a live suite capture read the same page differently.`);
|
|
65
|
+
}
|
|
66
|
+
if (sum.hotspots.length > 0) {
|
|
67
|
+
console.log(`\n 🔥 Where the churn lives`);
|
|
68
|
+
const width = Math.max(...sum.hotspots.map((h) => h.name.length));
|
|
69
|
+
for (const h of sum.hotspots) {
|
|
70
|
+
console.log(` ${h.name.padEnd(width)} ${h.drift} drifted element${h.drift === 1 ? '' : 's'} across ${h.runs} run${h.runs === 1 ? '' : 's'}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
console.log('');
|
|
74
|
+
(0, summary_1.summaryLine)('history', 'info', `${entries.length} runs · ${Math.round(sum.driftRate * 100)}% with drift`, [
|
|
75
|
+
`${Math.round(sum.coverage * 100)}% coverage`,
|
|
76
|
+
sum.healed > 0 ? `${sum.healed} healed` : undefined,
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
function drift(e) {
|
|
80
|
+
const c = e.counts;
|
|
81
|
+
return c ? c.healable + c.ambiguous + c.lost + c.rebound : 0;
|
|
82
|
+
}
|
|
83
|
+
function cov(e) {
|
|
84
|
+
return e.coverage ? `${e.coverage.measured}/${e.coverage.total} pages` : '';
|
|
85
|
+
}
|
|
86
|
+
function icon(v) {
|
|
87
|
+
return v === 'PASS' ? '✅' : v === 'FIX' ? '🔧' : v === 'BLOCK' ? '⛔' : 'ℹ️';
|
|
88
|
+
}
|
|
89
|
+
function when(iso) {
|
|
90
|
+
if (!iso)
|
|
91
|
+
return '—';
|
|
92
|
+
const d = new Date(iso);
|
|
93
|
+
return Number.isNaN(d.getTime()) ? iso : d.toLocaleString('en-US', { dateStyle: 'short', timeStyle: 'short' });
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/cli/history.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -14,6 +14,8 @@ const check_1 = require("./check");
|
|
|
14
14
|
const run_1 = require("./run");
|
|
15
15
|
const discover_1 = require("./discover");
|
|
16
16
|
const graph_1 = require("./graph");
|
|
17
|
+
const history_1 = require("./history");
|
|
18
|
+
const ui_1 = require("./ui");
|
|
17
19
|
const skill_1 = require("./skill");
|
|
18
20
|
// dist/cli/ → package root; npm ships package.json in every tarball.
|
|
19
21
|
const VERSION = require('../../package.json').version;
|
|
@@ -77,7 +79,13 @@ Usage:
|
|
|
77
79
|
--dir directory mode: diff all mappings in two dirs
|
|
78
80
|
(layouts in _layouts/ diffed first, then pages)
|
|
79
81
|
--report [file.html] also write a branded ia-qa.com HTML
|
|
80
|
-
report of the run (default ia-qa-heal-report.html)
|
|
82
|
+
report of the run (default ia-qa-heal-report.html).
|
|
83
|
+
With \`map --screenshots\`, ambiguous/rebound rows
|
|
84
|
+
carry a highlighted crop of each candidate.
|
|
85
|
+
--junit [file.xml] JUnit XML of the verdict (default
|
|
86
|
+
ia-qa-heal-junit.xml) — language-agnostic, and every
|
|
87
|
+
major CI charts its trend natively. Give it its own
|
|
88
|
+
file pattern, separate from your suite's results.
|
|
81
89
|
--open open that report in the browser (local, not CI)
|
|
82
90
|
ia-qa-heal fix [before] [after] [tests…] Apply the deterministic healable rewrites to your test files
|
|
83
91
|
No arguments: baseline/ against mapping/ (same default as diff)
|
|
@@ -121,7 +129,45 @@ Usage:
|
|
|
121
129
|
--locators emit getByRole locators where provably safe
|
|
122
130
|
--report [file.html] branded ia-qa.com HTML report — for run it
|
|
123
131
|
also carries the applied old→new edits and the verify verdict
|
|
132
|
+
--junit [file.xml] JUnit XML of the verdict (default
|
|
133
|
+
ia-qa-heal-junit.xml). Jenkins/GitLab/CircleCI chart the
|
|
134
|
+
trend from it natively. Publish it under its OWN file
|
|
135
|
+
pattern — merged with your suite's results the numbers
|
|
136
|
+
stop meaning anything.
|
|
137
|
+
--json the verdict as one JSON document on stdout (every other
|
|
138
|
+
line moves to stderr, so a pipe stays parseable)
|
|
124
139
|
--open open that report in the browser (local, not CI)
|
|
140
|
+
ia-qa-heal ui Open the local console: the rows waiting on a human (with a
|
|
141
|
+
highlighted picture of each candidate), the verbs as buttons,
|
|
142
|
+
and the run history as charts. Loopback only (127.0.0.1) and
|
|
143
|
+
gated by a one-time token — without it any page open in your
|
|
144
|
+
browser could read your app's contracts. Nothing leaves this
|
|
145
|
+
machine; it can do nothing the CLI would refuse. Refuses to
|
|
146
|
+
start under CI, where it would just hang.
|
|
147
|
+
It opens your browser itself — the URL carries a session
|
|
148
|
+
token, and a token you have to copy is one you will paste
|
|
149
|
+
somewhere. Click it twice and it reuses the console it
|
|
150
|
+
already opened for this project. The dropdown switches between the
|
|
151
|
+
projects you have opened a console in — that list, and only that
|
|
152
|
+
list, is what it can reach.
|
|
153
|
+
Closing the browser tab stops the server too, so a click
|
|
154
|
+
never leaves a process running behind your back.
|
|
155
|
+
--shortcut put an icon on your desktop that opens this
|
|
156
|
+
project's console in one click — no terminal,
|
|
157
|
+
no URL. Run it once per project.
|
|
158
|
+
--port <n> fixed port (default: a free one)
|
|
159
|
+
--no-open print the URL, do not launch a browser
|
|
160
|
+
--keep-alive stay up after the browser closes
|
|
161
|
+
--forget [dir] drop a project (or all of them) from the
|
|
162
|
+
switcher. Deletes nothing in the project itself.
|
|
163
|
+
ia-qa-heal history The trend no single run can reconstruct: verdicts over time,
|
|
164
|
+
mean coverage, rewrites applied, and which pages actually
|
|
165
|
+
churn. Every diff/run appends one line to .ia-qa/history.jsonl.
|
|
166
|
+
Runs captured differently are held OUT of the trend and named
|
|
167
|
+
— a \`map\` baseline and a live capture read a page differently,
|
|
168
|
+
so charting both would invent a trend from an artifact.
|
|
169
|
+
--json machine-readable output
|
|
170
|
+
--limit <n> how many entries to read back (default 500)
|
|
125
171
|
ia-qa-heal skill Show / install the agent instructions for this CLI as a
|
|
126
172
|
skill: read the contract instead of opening a browser,
|
|
127
173
|
which verb answers which question, and what must never
|
|
@@ -227,6 +273,12 @@ async function main() {
|
|
|
227
273
|
case 'run':
|
|
228
274
|
await (0, run_1.runRun)(rest);
|
|
229
275
|
break;
|
|
276
|
+
case 'history':
|
|
277
|
+
await (0, history_1.runHistory)(rest);
|
|
278
|
+
break;
|
|
279
|
+
case 'ui':
|
|
280
|
+
await (0, ui_1.runUi)(rest);
|
|
281
|
+
break;
|
|
230
282
|
case 'skill':
|
|
231
283
|
await (0, skill_1.runSkill)(rest);
|
|
232
284
|
break;
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AACA,sCAAuC;AACvC,iCAA4C;AAC5C,iCAAiC;AACjC,+BAA+B;AAC/B,yCAAyC;AACzC,iCAAiC;AACjC,+BAA+B;AAC/B,qCAAqC;AACrC,mCAAmC;AACnC,mCAAmC;AACnC,+BAA+B;AAC/B,yCAAyC;AACzC,mCAAmC;AACnC,mCAAmC;AAEnC,qEAAqE;AACrE,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAiB,CAAC;AAEhE,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.runInit = runInit;
|
|
7
7
|
const prompts_1 = __importDefault(require("prompts"));
|
|
8
8
|
const config_1 = require("../config");
|
|
9
|
+
const ui_1 = require("./ui");
|
|
9
10
|
/**
|
|
10
11
|
* `ia-qa-heal init` — interactive wizard.
|
|
11
12
|
*
|
|
@@ -223,6 +224,37 @@ async function runInit() {
|
|
|
223
224
|
}
|
|
224
225
|
console.log('\nPages with live content (feeds, article lists)? Keep it out of the contracts so it');
|
|
225
226
|
console.log('never gates as drift: "volatile": ["href:*source=rss*"] in config.json (see README).\n');
|
|
227
|
+
await offerShortcut();
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Offer the desktop icon — here, and only here.
|
|
231
|
+
*
|
|
232
|
+
* Writing to someone's desktop is not a side effect a command earns by being
|
|
233
|
+
* run: an install that puts an icon there unasked is the behaviour people
|
|
234
|
+
* uninstall software over. But making it a flag nobody discovers is the other
|
|
235
|
+
* failure, and it lands on exactly the person this feature is for — a manual QA
|
|
236
|
+
* who will never read `--help`.
|
|
237
|
+
*
|
|
238
|
+
* `init` is the one moment both problems disappear. It is interactive by
|
|
239
|
+
* definition (it refuses without a TTY), someone is present and answering
|
|
240
|
+
* questions, and it is the end of setup — the point at which "how do I open
|
|
241
|
+
* this tomorrow?" is the actual next question. Declining costs one keystroke
|
|
242
|
+
* and the flag still exists.
|
|
243
|
+
*/
|
|
244
|
+
async function offerShortcut() {
|
|
245
|
+
if (!process.stdin.isTTY)
|
|
246
|
+
return;
|
|
247
|
+
const answer = await (0, prompts_1.default)({
|
|
248
|
+
type: 'confirm',
|
|
249
|
+
name: 'yes',
|
|
250
|
+
message: 'Put an icon on your desktop that opens the console for this project in one click?',
|
|
251
|
+
initial: true,
|
|
252
|
+
}, { onCancel: () => ({ yes: false }) });
|
|
253
|
+
if (!answer.yes) {
|
|
254
|
+
console.log('\n Skipped. `ia-qa-heal ui --shortcut` does it later; `ia-qa-heal ui` opens it now.\n');
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
await (0, ui_1.runUi)(['--shortcut']);
|
|
226
258
|
}
|
|
227
259
|
function parsePages(raw) {
|
|
228
260
|
return raw
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/map.js
CHANGED
|
@@ -82,6 +82,64 @@ async function capturePageShot(page, pageName) {
|
|
|
82
82
|
console.warn(` ⚠ screenshot skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Where each element sat in the viewport when the screenshot was taken, written
|
|
87
|
+
* next to the screenshot as `_shots/<page>.rects.json`.
|
|
88
|
+
*
|
|
89
|
+
* This is what turns the page picture from an illustration into an instrument:
|
|
90
|
+
* a report can only highlight *which* of five identical "Copy" buttons the
|
|
91
|
+
* baseline meant if it knows where that one was. Study D in
|
|
92
|
+
* SPEC-visual-evidence.md is blunt about it — a crop with no marker on the
|
|
93
|
+
* target is worse than no crop, precisely in the `ambiguous` case that is the
|
|
94
|
+
* only reason to show one.
|
|
95
|
+
*
|
|
96
|
+
* Deliberately **not** a field on `MappedElement`, and that is the whole design:
|
|
97
|
+
*
|
|
98
|
+
* - The contract stays byte-identical with and without `--screenshots`, so
|
|
99
|
+
* turning the flag on can never move a verdict. `diffMappings` cannot read
|
|
100
|
+
* a coordinate it was never handed.
|
|
101
|
+
* - `src/browser/extract.js` is untouched. That file ships twice (npm + the web
|
|
102
|
+
* tool on ia-qa.com) and every edit to it owes two deploys; a picture is not
|
|
103
|
+
* worth putting that trap in the path.
|
|
104
|
+
* - A position belongs with the artefact it describes. `_shots/` is
|
|
105
|
+
* reproducible and gitignorable; the contract is neither.
|
|
106
|
+
*
|
|
107
|
+
* Captured after extraction, from the same page state, with no scrolling in
|
|
108
|
+
* between — so the coordinates and the JPEG describe the same moment.
|
|
109
|
+
*/
|
|
110
|
+
async function capturePageRects(page, pageName, selectors) {
|
|
111
|
+
const dir = (0, config_1.shotsDir)();
|
|
112
|
+
const safe = pageName.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
113
|
+
try {
|
|
114
|
+
const data = await page.evaluate((sels) => {
|
|
115
|
+
const rects = {};
|
|
116
|
+
for (const s of sels) {
|
|
117
|
+
try {
|
|
118
|
+
const el = document.querySelector(s);
|
|
119
|
+
if (!el)
|
|
120
|
+
continue;
|
|
121
|
+
const r = el.getBoundingClientRect();
|
|
122
|
+
if (r.width === 0 || r.height === 0)
|
|
123
|
+
continue;
|
|
124
|
+
// Below the fold: the viewport screenshot does not contain it, so a
|
|
125
|
+
// crop would be of whatever happened to be at those coordinates.
|
|
126
|
+
if (r.top >= window.innerHeight || r.bottom <= 0)
|
|
127
|
+
continue;
|
|
128
|
+
rects[s] = [Math.round(r.left), Math.round(r.top), Math.round(r.width), Math.round(r.height)];
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
/* an invalid selector costs its own rect, not the page's */
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return { viewport: { w: window.innerWidth, h: window.innerHeight }, rects };
|
|
135
|
+
}, selectors);
|
|
136
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
137
|
+
fs.writeFileSync(path.join(dir, `${safe}.rects.json`), JSON.stringify(data), 'utf8');
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
console.warn(` ⚠ element positions skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
85
143
|
async function runMap(pageNameArg, opts = {}) {
|
|
86
144
|
const config = (0, config_1.loadConfig)();
|
|
87
145
|
if (config.pages.length === 0 && !pageNameArg) {
|
|
@@ -130,6 +188,8 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
130
188
|
await capturePageShot(page, target.name);
|
|
131
189
|
const extracted = await (0, aom_1.extractInteractiveElements)(page);
|
|
132
190
|
const { kept: elements, excluded } = (0, volatile_1.filterVolatile)(extracted, volatilePatterns);
|
|
191
|
+
if (opts.screenshots)
|
|
192
|
+
await capturePageRects(page, target.name, elements.map((e) => e.selector));
|
|
133
193
|
volatileExcluded += excluded;
|
|
134
194
|
totalElements += elements.length;
|
|
135
195
|
anonymous += elements.filter((e) => !e.name).length;
|
package/dist/cli/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/cli/map.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/cli/map.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.js
CHANGED
|
@@ -48,6 +48,7 @@ const map_1 = require("./map");
|
|
|
48
48
|
const ingest_1 = require("./ingest");
|
|
49
49
|
const fix_1 = require("./fix");
|
|
50
50
|
const diff_1 = require("./diff");
|
|
51
|
+
const emit_1 = require("./emit");
|
|
51
52
|
const ingest_2 = require("../ingest");
|
|
52
53
|
const summary_1 = require("./summary");
|
|
53
54
|
/**
|
|
@@ -69,12 +70,24 @@ const summary_1 = require("./summary");
|
|
|
69
70
|
* fails after the rewrite; 2 — nothing to compare or bad setup.
|
|
70
71
|
*/
|
|
71
72
|
async function runRun(args) {
|
|
72
|
-
const { reportPath: explicitReport } = (0, diff_1.takeReportFlag)(args);
|
|
73
|
-
const
|
|
73
|
+
const { reportPath: explicitReport, rest: afterReport } = (0, diff_1.takeReportFlag)(args);
|
|
74
|
+
const { value: junitPath, rest: rest2 } = (0, emit_1.takeValueFlag)(afterReport, '--junit', emit_1.JUNIT_DEFAULT_PATH);
|
|
75
|
+
const openReport = rest2.includes('--open');
|
|
74
76
|
const reportPath = explicitReport ?? (openReport ? 'ia-qa-heal-report.html' : null);
|
|
75
|
-
const yes =
|
|
76
|
-
const useLocators =
|
|
77
|
-
const noVerify =
|
|
77
|
+
const yes = rest2.includes('--yes');
|
|
78
|
+
const useLocators = rest2.includes('--locators');
|
|
79
|
+
const noVerify = rest2.includes('--no-verify');
|
|
80
|
+
const json = rest2.includes('--json');
|
|
81
|
+
// `run` orchestrates other verbs (`map`, `ingest`, `fix`) and the user's own
|
|
82
|
+
// test command, all of which write to stdout. `--json` promises that stdout is
|
|
83
|
+
// a parseable document, so the whole run's chatter moves to stderr rather than
|
|
84
|
+
// each sub-verb being taught a flag it has no other reason to know. The payload
|
|
85
|
+
// is written to the real stdout at the end. Nothing is silenced — a pipeline
|
|
86
|
+
// that captures both streams sees exactly what it saw before.
|
|
87
|
+
const diverted = json ? divertStdoutToStderr() : null;
|
|
88
|
+
const emitJson = (payload) => {
|
|
89
|
+
diverted?.writeReal(JSON.stringify(payload, null, 2) + '\n');
|
|
90
|
+
};
|
|
78
91
|
const config = (0, config_1.loadConfig)();
|
|
79
92
|
if (config.testCommand) {
|
|
80
93
|
console.log(`\n▶ ${config.testCommand} (IAQA_CAPTURE=1 — mapping captured during the run)`);
|
|
@@ -97,6 +110,7 @@ async function runRun(args) {
|
|
|
97
110
|
console.error(`\n❌ No baseline to compare against — ${rel(base)} does not exist.\n` +
|
|
98
111
|
` This run captured the app as it is now. Promote it once, then \`run\` has a reference:\n` +
|
|
99
112
|
` ia-qa-heal baseline`);
|
|
113
|
+
emitJson({ verdict: null, reason: 'no-baseline', hint: 'Run `ia-qa-heal baseline` to create the reference.' });
|
|
100
114
|
process.exitCode = 2;
|
|
101
115
|
return;
|
|
102
116
|
}
|
|
@@ -105,6 +119,11 @@ async function runRun(args) {
|
|
|
105
119
|
console.error(stale.length > 0
|
|
106
120
|
? `❌ Nothing to compare: every pair is the same capture on both sides. Change the app (or run the suite again after a change) first.`
|
|
107
121
|
: '❌ No matching mapping pairs found between baseline/ and mapping/.');
|
|
122
|
+
emitJson({
|
|
123
|
+
verdict: null,
|
|
124
|
+
reason: stale.length > 0 ? 'same-capture' : 'no-pairs',
|
|
125
|
+
hint: 'Change the app and capture again so the two sides are different moments.',
|
|
126
|
+
});
|
|
108
127
|
process.exitCode = 2;
|
|
109
128
|
return;
|
|
110
129
|
}
|
|
@@ -138,10 +157,35 @@ async function runRun(args) {
|
|
|
138
157
|
// (nothing is rewritten); for FIX it is deferred until after the rewrite so it
|
|
139
158
|
// can carry the applied old→new edits and the post-fix re-run verdict — the two
|
|
140
159
|
// things a detection-only report could never show.
|
|
141
|
-
|
|
160
|
+
//
|
|
161
|
+
// JUnit and the history entry ride along with it: all three describe the same
|
|
162
|
+
// verdict, and a path that emitted one without the others is how two consumers
|
|
163
|
+
// of the same run come to disagree.
|
|
164
|
+
let emitted = false;
|
|
165
|
+
const emit = (outcome) => {
|
|
166
|
+
if (emitted)
|
|
167
|
+
return;
|
|
168
|
+
emitted = true;
|
|
142
169
|
if (reportPath)
|
|
143
170
|
(0, diff_1.writeDriftReport)(reportPath, aggregate, reports, base, current, usage, openReport, outcome);
|
|
171
|
+
if (junitPath) {
|
|
172
|
+
(0, emit_1.writeJUnit)(junitPath, aggregate, reports, {
|
|
173
|
+
baseUrl: (0, config_1.configuredBaseUrl)(),
|
|
174
|
+
baselineName: path.basename(base),
|
|
175
|
+
currentName: path.basename(current),
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
(0, emit_1.recordDriftRun)('run', aggregate, {
|
|
179
|
+
currentDir: current,
|
|
180
|
+
reports,
|
|
181
|
+
stale,
|
|
182
|
+
baseUrl: (0, config_1.configuredBaseUrl)(),
|
|
183
|
+
applied: outcome ? { replacements: outcome.totalReplacements, files: outcome.filesEdited } : undefined,
|
|
184
|
+
verify: outcome?.verify?.verdict,
|
|
185
|
+
});
|
|
186
|
+
emitJson({ ...aggregate, staleExcluded: stale, ...(outcome ? { outcome } : {}) });
|
|
144
187
|
};
|
|
188
|
+
const emitReport = emit;
|
|
145
189
|
if (aggregate.verdict === 'PASS') {
|
|
146
190
|
emitReport();
|
|
147
191
|
(0, diff_1.driftSummaryLine)('run', 'PASS', aggregate.totals, aggregate.nameDrift);
|
|
@@ -175,8 +219,10 @@ async function runRun(args) {
|
|
|
175
219
|
}
|
|
176
220
|
console.log('🔧 Healable drift — dry run of the rewrites first:\n');
|
|
177
221
|
await (0, fix_1.runFix)(['--dir', base, current, '--dry-run', ...(useLocators ? ['--locators'] : [])]);
|
|
178
|
-
if (process.exitCode === 2)
|
|
222
|
+
if (process.exitCode === 2) {
|
|
223
|
+
emit();
|
|
179
224
|
return;
|
|
225
|
+
}
|
|
180
226
|
if (!yes) {
|
|
181
227
|
if (!process.stdin.isTTY) {
|
|
182
228
|
emitReport();
|
|
@@ -282,6 +328,30 @@ function runTestCommand(command, opts = { capture: true }) {
|
|
|
282
328
|
function rel(p) {
|
|
283
329
|
return path.relative(process.cwd(), p) || p;
|
|
284
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Send everything written to stdout to stderr instead, until the returned
|
|
333
|
+
* function is called.
|
|
334
|
+
*
|
|
335
|
+
* `run` is the one verb that drives *other* processes — the user's test command
|
|
336
|
+
* inherits our stdio, and `map`/`ingest`/`fix` all print. `--json` is a promise
|
|
337
|
+
* about stdout, and the only way to keep it without teaching every one of those
|
|
338
|
+
* a flag they have no other reason to know is to move the stream. Both
|
|
339
|
+
* `console.log` and a direct `process.stdout.write` are covered, because the
|
|
340
|
+
* spawned suite uses the latter.
|
|
341
|
+
*
|
|
342
|
+
* Nothing is discarded: a pipeline that captures both streams sees the same
|
|
343
|
+
* bytes it saw before, on the stream meant for human narration.
|
|
344
|
+
*/
|
|
345
|
+
function divertStdoutToStderr() {
|
|
346
|
+
const origWrite = process.stdout.write.bind(process.stdout);
|
|
347
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
348
|
+
process.stdout.write = (chunk, ...rest) => process.stderr.write(chunk, ...rest);
|
|
349
|
+
console.log = (...a) => console.error(...a);
|
|
350
|
+
// Deliberately never restored. The verdict summary and the trailing hints are
|
|
351
|
+
// printed *after* the payload, so handing stdout back would append prose to a
|
|
352
|
+
// document a caller is piping into a parser.
|
|
353
|
+
return { writeReal: (s) => origWrite(s) };
|
|
354
|
+
}
|
|
285
355
|
/**
|
|
286
356
|
* True when any diffed page pair has a baseline from `map` but a current from a live
|
|
287
357
|
* capture (or vice versa). `PageMapping.source` is `'run'` on capture and absent
|