@ia-qa/self-healing 1.3.2 → 1.3.5
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 +3 -1
- package/TUTORIAL.md +3 -3
- package/dist/browser/discover.d.ts +28 -0
- package/dist/browser/discover.js +107 -0
- package/dist/browser/discover.js.map +1 -0
- package/dist/cli/baseline.js +13 -9
- package/dist/cli/baseline.js.map +1 -1
- package/dist/cli/diff.d.ts +2 -1
- package/dist/cli/diff.js +16 -2
- package/dist/cli/diff.js.map +1 -1
- package/dist/cli/discover.d.ts +17 -0
- package/dist/cli/discover.js +121 -0
- package/dist/cli/discover.js.map +1 -0
- package/dist/cli/fix.d.ts +2 -1
- package/dist/cli/fix.js +10 -9
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/index.js +26 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/map.d.ts +1 -0
- package/dist/cli/map.js +12 -0
- package/dist/cli/map.js.map +1 -1
- package/dist/cli/run.d.ts +9 -5
- package/dist/cli/run.js +86 -12
- package/dist/cli/run.js.map +1 -1
- package/dist/crawl.d.ts +42 -0
- package/dist/crawl.js +124 -0
- package/dist/crawl.js.map +1 -0
- package/dist/discovery/safety.d.ts +69 -0
- package/dist/discovery/safety.js +129 -0
- package/dist/discovery/safety.js.map +1 -0
- package/dist/discovery/sitemap.d.ts +48 -0
- package/dist/discovery/sitemap.js +123 -0
- package/dist/discovery/sitemap.js.map +1 -0
- package/dist/htmlReport.d.ts +28 -0
- package/dist/htmlReport.js +53 -1
- package/dist/htmlReport.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -130,11 +130,13 @@ ia-qa-heal map --config apps/xcp # a different portal, its own contract
|
|
|
130
130
|
`run` chains the whole loop and stops where a human belongs:
|
|
131
131
|
|
|
132
132
|
```
|
|
133
|
-
capture → ingest → diff → dry-run of the fixes → your confirmation → fix
|
|
133
|
+
capture → ingest → diff → dry-run of the fixes → your confirmation → fix → re-run to verify
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
- If `config.testCommand` is set (e.g. `npx playwright test`), `run` spawns it with `IAQA_CAPTURE=1` and the mapping is **captured during your own suite** — login, modals, wizards included, with the credentials your suite already manages. No `testCommand` → falls back to `map`.
|
|
137
137
|
- `BLOCK` (lost / ambiguous / rebound) stops for your judgment. Healable drift is shown as a dry run first; `--yes` skips the confirmation for CI. Nothing is ever committed.
|
|
138
|
+
- **After the fix, `run` re-runs your suite once more (without `IAQA_CAPTURE`) to confirm the rewrite is actually green** — a selector fix is only worth anything if the tests pass after it. The exit code follows that re-run: `0` if the suite passes, `1` if it still fails (the rewrite landed but something else is red). `--no-verify` applies the fix and skips the re-run; the re-run is also skipped, with a reason, when nothing was rewritten or there is no `testCommand`.
|
|
139
|
+
- With `--report`, the HTML for a `run` additionally carries the **applied** `old → new` edits (file and line numbers) and the verify verdict — the file-level before/after the `diff` report only promised.
|
|
138
140
|
|
|
139
141
|
### Capture during your test run — `@ia-qa/self-healing/capture`
|
|
140
142
|
|
package/TUTORIAL.md
CHANGED
|
@@ -325,7 +325,7 @@ Happy? Commit and push. Not happy? `git checkout .` and nothing happened. **The
|
|
|
325
325
|
Once you've done the loop by hand a couple of times, let one command chain it:
|
|
326
326
|
|
|
327
327
|
```bash
|
|
328
|
-
npx ia-qa-heal run # capture → ingest → diff → dry-run → confirm → fix
|
|
328
|
+
npx ia-qa-heal run # capture → ingest → diff → dry-run → confirm → fix → re-run to verify
|
|
329
329
|
```
|
|
330
330
|
|
|
331
331
|
Three optional config keys make it better (`ia-qa-heal init` asks for them):
|
|
@@ -351,7 +351,7 @@ Three optional config keys make it better (`ia-qa-heal init` asks for them):
|
|
|
351
351
|
|
|
352
352
|
- **`testPaths`** (e.g. `["tests/"]`) — feeds `ia-qa-heal ingest`, which inventories the selector literals your tests/POMs actually use into `.ia-qa/usage.json`. `diff` then tells you *used 3× in 2 test files* vs *not referenced by your tests*, and `fix` finds your files on its own.
|
|
353
353
|
|
|
354
|
-
`run` keeps every judgment where it was: **BLOCK stops for you**, healable rewrites are shown as a dry run and applied only after you confirm (`--yes` for CI), and nothing is ever committed.
|
|
354
|
+
`run` keeps every judgment where it was: **BLOCK stops for you**, healable rewrites are shown as a dry run and applied only after you confirm (`--yes` for CI), and nothing is ever committed. **After applying the fix it re-runs your suite once more — without `IAQA_CAPTURE`, so it checks rather than re-maps — and reports whether the tests pass now.** The exit code follows that verdict (`0` green, `1` still failing), so CI catches a fix that rewrote the selector but left the test red. `--no-verify` skips the re-run; with `--report`, the HTML also lists the applied `old → new` edits (file + lines) and the verify verdict.
|
|
355
355
|
|
|
356
356
|
---
|
|
357
357
|
|
|
@@ -548,7 +548,7 @@ npx ia-qa-heal fix .ia-qa/baseline/checkout.json .ia-qa/mapping/checkout.json te
|
|
|
548
548
|
npx ia-qa-heal fix .ia-qa/baseline/checkout.json .ia-qa/mapping/checkout.json tests/ # apply (never commits)
|
|
549
549
|
|
|
550
550
|
npx ia-qa-heal ingest tests/ # inventory the selectors your suite uses → .ia-qa/usage.json
|
|
551
|
-
npx ia-qa-heal run # the whole loop: capture (your suite, IAQA_CAPTURE=1) → diff → confirm → fix
|
|
551
|
+
npx ia-qa-heal run # the whole loop: capture (your suite, IAQA_CAPTURE=1) → diff → confirm → fix → re-run to verify
|
|
552
552
|
```
|
|
553
553
|
|
|
554
554
|
Talking to an agent instead:
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-page reveal-target finder — the ultra-safe half of the crawler.
|
|
3
|
+
*
|
|
4
|
+
* Self-contained by the same rule as `browser/extract.js`: Playwright serialises it
|
|
5
|
+
* with `toString()` into `page.evaluate()`, so no imports, no closures, no
|
|
6
|
+
* TypeScript. Returns stamped selectors, not element handles, because the caller
|
|
7
|
+
* lives in Node.
|
|
8
|
+
*
|
|
9
|
+
* What it returns and why it is safe:
|
|
10
|
+
* The crawler discovers pages by following links. Some links only exist once a menu,
|
|
11
|
+
* dropdown, or dialog is opened — so we open those, read what appears, and close
|
|
12
|
+
* them again. This function decides *what is safe to open*. It returns ONLY pure
|
|
13
|
+
* disclosure toggles, on a strict allowlist:
|
|
14
|
+
* - it advertises disclosure — `aria-haspopup`, a collapsed `aria-expanded="false"`,
|
|
15
|
+
* `aria-controls`, or a native `<summary>`;
|
|
16
|
+
* - it is NOT a navigating link (an `<a href>` that goes somewhere);
|
|
17
|
+
* - it is NOT a form submit/reset, and not a bare `<button>` in a form (which
|
|
18
|
+
* submits by default);
|
|
19
|
+
* - its accessible name does NOT read like an action (log out, delete, pay…);
|
|
20
|
+
* - it is not already open (`aria-expanded="true"` — clicking that COLLAPSES, the
|
|
21
|
+
* opposite of reveal, and could toggle app state).
|
|
22
|
+
* Everything else is left untouched. The default is to do nothing.
|
|
23
|
+
*
|
|
24
|
+
* It stamps `data-iaqa-reveal="<i>"` on each match and returns `[data-iaqa-reveal="i"]`
|
|
25
|
+
* selectors: a stamped attribute is the one selector guaranteed to re-find the exact
|
|
26
|
+
* element, and adding a data attribute changes nothing the app reacts to.
|
|
27
|
+
*/
|
|
28
|
+
export function findRevealTargets(): string[];
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findRevealTargets = findRevealTargets;
|
|
4
|
+
/**
|
|
5
|
+
* In-page reveal-target finder — the ultra-safe half of the crawler.
|
|
6
|
+
*
|
|
7
|
+
* Self-contained by the same rule as `browser/extract.js`: Playwright serialises it
|
|
8
|
+
* with `toString()` into `page.evaluate()`, so no imports, no closures, no
|
|
9
|
+
* TypeScript. Returns stamped selectors, not element handles, because the caller
|
|
10
|
+
* lives in Node.
|
|
11
|
+
*
|
|
12
|
+
* What it returns and why it is safe:
|
|
13
|
+
* The crawler discovers pages by following links. Some links only exist once a menu,
|
|
14
|
+
* dropdown, or dialog is opened — so we open those, read what appears, and close
|
|
15
|
+
* them again. This function decides *what is safe to open*. It returns ONLY pure
|
|
16
|
+
* disclosure toggles, on a strict allowlist:
|
|
17
|
+
* - it advertises disclosure — `aria-haspopup`, a collapsed `aria-expanded="false"`,
|
|
18
|
+
* `aria-controls`, or a native `<summary>`;
|
|
19
|
+
* - it is NOT a navigating link (an `<a href>` that goes somewhere);
|
|
20
|
+
* - it is NOT a form submit/reset, and not a bare `<button>` in a form (which
|
|
21
|
+
* submits by default);
|
|
22
|
+
* - its accessible name does NOT read like an action (log out, delete, pay…);
|
|
23
|
+
* - it is not already open (`aria-expanded="true"` — clicking that COLLAPSES, the
|
|
24
|
+
* opposite of reveal, and could toggle app state).
|
|
25
|
+
* Everything else is left untouched. The default is to do nothing.
|
|
26
|
+
*
|
|
27
|
+
* It stamps `data-iaqa-reveal="<i>"` on each match and returns `[data-iaqa-reveal="i"]`
|
|
28
|
+
* selectors: a stamped attribute is the one selector guaranteed to re-find the exact
|
|
29
|
+
* element, and adding a data attribute changes nothing the app reacts to.
|
|
30
|
+
*/
|
|
31
|
+
function findRevealTargets() {
|
|
32
|
+
var ACTION_RE = /\b(log\s?out|sign\s?out|logout|signout|delete|remove|destroy|discard|deactivate|disable|unsubscribe|revoke|buy|pay|payment|checkout|purchase|order|submit|send|confirm|approve|reject|save|reset|publish|cancel)\b/i;
|
|
33
|
+
function isVisible(el) {
|
|
34
|
+
var rect = el.getBoundingClientRect();
|
|
35
|
+
if (rect.width === 0 || rect.height === 0)
|
|
36
|
+
return false;
|
|
37
|
+
var style = window.getComputedStyle(el);
|
|
38
|
+
return style.visibility !== 'hidden' && style.display !== 'none' && style.opacity !== '0';
|
|
39
|
+
}
|
|
40
|
+
function accName(el) {
|
|
41
|
+
var label = el.getAttribute('aria-label');
|
|
42
|
+
if (label)
|
|
43
|
+
return label.trim();
|
|
44
|
+
var labelledBy = el.getAttribute('aria-labelledby');
|
|
45
|
+
if (labelledBy) {
|
|
46
|
+
var parts = labelledBy.split(/\s+/).map(function (id) {
|
|
47
|
+
var n = document.getElementById(id);
|
|
48
|
+
return n ? n.textContent : '';
|
|
49
|
+
});
|
|
50
|
+
var joined = parts.join(' ').trim();
|
|
51
|
+
if (joined)
|
|
52
|
+
return joined;
|
|
53
|
+
}
|
|
54
|
+
var title = el.getAttribute('title');
|
|
55
|
+
var text = (el.textContent || '').trim().replace(/\s+/g, ' ');
|
|
56
|
+
return text || (title ? title.trim() : '');
|
|
57
|
+
}
|
|
58
|
+
function isDisclosure(el, tag) {
|
|
59
|
+
if (tag === 'summary')
|
|
60
|
+
return true;
|
|
61
|
+
var haspopup = (el.getAttribute('aria-haspopup') || '').toLowerCase();
|
|
62
|
+
if (['menu', 'listbox', 'dialog', 'tree', 'grid', 'true'].indexOf(haspopup) !== -1)
|
|
63
|
+
return true;
|
|
64
|
+
if (el.getAttribute('aria-expanded') === 'false')
|
|
65
|
+
return true;
|
|
66
|
+
if (el.getAttribute('aria-controls') && el.getAttribute('role') === 'button')
|
|
67
|
+
return true;
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
var candidates = document.querySelectorAll('[aria-haspopup], [aria-expanded], [aria-controls], summary');
|
|
71
|
+
var selectors = [];
|
|
72
|
+
var i = 0;
|
|
73
|
+
for (var k = 0; k < candidates.length; k++) {
|
|
74
|
+
var el = candidates[k];
|
|
75
|
+
var tag = el.tagName.toLowerCase();
|
|
76
|
+
if (!isVisible(el))
|
|
77
|
+
continue;
|
|
78
|
+
// A link that goes somewhere is navigation, not disclosure — let the BFS follow
|
|
79
|
+
// its href instead of clicking it.
|
|
80
|
+
if (tag === 'a') {
|
|
81
|
+
var href = el.getAttribute('href');
|
|
82
|
+
if (href && href !== '#' && href.indexOf('javascript:') !== 0)
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
var type = (el.getAttribute('type') || '').toLowerCase();
|
|
86
|
+
if (type === 'submit' || type === 'reset')
|
|
87
|
+
continue;
|
|
88
|
+
// A <button> with no explicit type submits its form. Only an explicit
|
|
89
|
+
// type="button" is safe inside a form.
|
|
90
|
+
if (tag === 'button' && el.closest('form') && type !== 'button')
|
|
91
|
+
continue;
|
|
92
|
+
if (tag === 'input')
|
|
93
|
+
continue;
|
|
94
|
+
if (!isDisclosure(el, tag))
|
|
95
|
+
continue;
|
|
96
|
+
// Already open: clicking would collapse it, which is a state change, not a reveal.
|
|
97
|
+
if (el.getAttribute('aria-expanded') === 'true')
|
|
98
|
+
continue;
|
|
99
|
+
if (ACTION_RE.test(accName(el)))
|
|
100
|
+
continue;
|
|
101
|
+
el.setAttribute('data-iaqa-reveal', String(i));
|
|
102
|
+
selectors.push('[data-iaqa-reveal="' + i + '"]');
|
|
103
|
+
i++;
|
|
104
|
+
}
|
|
105
|
+
return selectors;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/browser/discover.js"],"names":[],"mappings":"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"}
|
package/dist/cli/baseline.js
CHANGED
|
@@ -93,17 +93,21 @@ async function runBaseline(args = []) {
|
|
|
93
93
|
// Detect phantom contracts: mapping files that don't match any configured page.
|
|
94
94
|
// These are left behind when a page is removed from config.json — they get promoted
|
|
95
95
|
// into the baseline and then diff against nothing forever.
|
|
96
|
+
// Skip this check when no pages are declared at all (live capture without `pages` —
|
|
97
|
+
// every mapping file is legitimately ad-hoc in that mode).
|
|
96
98
|
try {
|
|
97
99
|
const config = (0, config_1.loadConfig)();
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
if (config.pages.length > 0) {
|
|
101
|
+
const configured = new Set(config.pages.map((p) => p.name.replace(/[^a-zA-Z0-9._-]/g, '-')));
|
|
102
|
+
const orphans = pages
|
|
103
|
+
.map((f) => path.basename(f, '.json'))
|
|
104
|
+
.filter((name) => !configured.has(name) && name !== '_overview');
|
|
105
|
+
if (orphans.length > 0) {
|
|
106
|
+
console.warn(`\n⚠ ${orphans.length} phantom contract${orphans.length === 1 ? '' : 's'} — not in config.json but still mapped:\n` +
|
|
107
|
+
` ${orphans.join(', ')}\n` +
|
|
108
|
+
` They were promoted to the baseline. Remove them if the ${orphans.length === 1 ? 'page is' : 'pages are'} gone:\n` +
|
|
109
|
+
` rm ${orphans.map((o) => rel(path.join(to, o + '.json'))).join(' ')}`);
|
|
110
|
+
}
|
|
107
111
|
}
|
|
108
112
|
}
|
|
109
113
|
catch {
|
package/dist/cli/baseline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,
|
|
1
|
+
{"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/cli/baseline.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/diff.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Usage } from '../ingest';
|
|
2
|
+
import { FixOutcome } from '../htmlReport';
|
|
2
3
|
/**
|
|
3
4
|
* `ia-qa-heal diff [baseline] [current] [--strict] [--json] [--dir]`
|
|
4
5
|
*
|
|
@@ -35,7 +36,7 @@ export declare function writeDriftReport(reportPath: string, agg: DirReport, rep
|
|
|
35
36
|
name: string;
|
|
36
37
|
report: Report;
|
|
37
38
|
isLayout: boolean;
|
|
38
|
-
}>, baselineDirPath: string, currentDirPath: string, usage?: Usage | null, open?: boolean): void;
|
|
39
|
+
}>, baselineDirPath: string, currentDirPath: string, usage?: Usage | null, open?: boolean, outcome?: FixOutcome): void;
|
|
39
40
|
export declare function runDiff(args: string[]): Promise<void>;
|
|
40
41
|
export interface DirDiffCollection {
|
|
41
42
|
reports: Array<{
|
package/dist/cli/diff.js
CHANGED
|
@@ -98,12 +98,13 @@ function openInBrowser(file) {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
/** Render the drift report to `reportPath` and announce it. Never throws on a bad write path to callers of the gate — reporting is a side effect, not the verdict. */
|
|
101
|
-
function writeDriftReport(reportPath, agg, reports, baselineDirPath, currentDirPath, usage, open = false) {
|
|
101
|
+
function writeDriftReport(reportPath, agg, reports, baselineDirPath, currentDirPath, usage, open = false, outcome) {
|
|
102
102
|
const html = (0, htmlReport_1.renderDriftReportHtml)(agg, reports, {
|
|
103
103
|
baselineName: path.basename(baselineDirPath),
|
|
104
104
|
currentName: path.basename(currentDirPath),
|
|
105
105
|
filesDiffed: reports.length,
|
|
106
106
|
usage,
|
|
107
|
+
outcome,
|
|
107
108
|
});
|
|
108
109
|
const dest = path.resolve(reportPath);
|
|
109
110
|
fs.writeFileSync(dest, html, 'utf8');
|
|
@@ -336,12 +337,25 @@ function printAggregate(agg, reports, baselineDir, currentDir, usage) {
|
|
|
336
337
|
`${agg.layoutCounts.lost} lost · ${agg.layoutCounts.added} new`);
|
|
337
338
|
}
|
|
338
339
|
}
|
|
340
|
+
// Page → URL mapping, loaded from config so the user never has to guess
|
|
341
|
+
// which file is which view. Best-effort: config may not exist or may not
|
|
342
|
+
// cover every mapped page (live capture without `pages`), and that's fine.
|
|
343
|
+
let urlMap;
|
|
344
|
+
try {
|
|
345
|
+
const cfg = (0, config_1.loadConfig)();
|
|
346
|
+
if (cfg.pages.length > 0) {
|
|
347
|
+
urlMap = new Map(cfg.pages.map((p) => ({ name: p.name.replace(/[^a-zA-Z0-9._-]/g, '-'), url: p.url })).map(e => [e.name, e.url]));
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
catch { /* config optional */ }
|
|
339
351
|
// Per-page summary
|
|
340
352
|
console.log('\n 📄 Pages');
|
|
341
353
|
for (const pr of agg.pageReports) {
|
|
342
354
|
const pi = pr.verdict === 'PASS' ? '✅' : pr.verdict === 'FIX' ? '🔧' : '⛔';
|
|
355
|
+
const url = urlMap?.get(pr.name);
|
|
356
|
+
const urlSuffix = url ? ` (${url})` : '';
|
|
343
357
|
console.log(` ${pi} ${pr.verdict.padEnd(5)} ${pr.name.padEnd(25)} ` +
|
|
344
|
-
`${pr.counts.ok} ok · ${pr.counts.healable} heal · ${pr.counts.lost} lost · ${pr.counts.added} new`);
|
|
358
|
+
`${pr.counts.ok} ok · ${pr.counts.healable} heal · ${pr.counts.lost} lost · ${pr.counts.added} new${urlSuffix}`);
|
|
345
359
|
}
|
|
346
360
|
if (usage) {
|
|
347
361
|
const drifted = [];
|
package/dist/cli/diff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ia-qa-heal discover` — propose pages to add to `config.pages`, never map them.
|
|
3
|
+
*
|
|
4
|
+
* Two sources, same output: candidate `{ name, url }` pairs printed for a human to
|
|
5
|
+
* confirm. It is the front door to `map` (which needs the pages listed first), and
|
|
6
|
+
* it holds the same line every other write in this package holds — it *suggests*,
|
|
7
|
+
* and only `--apply` writes, exactly like `ia-qa-heal-ai suggest`. Default is a
|
|
8
|
+
* dry run: discovery is a proposal, not a source of truth for what the app is.
|
|
9
|
+
*
|
|
10
|
+
* --sitemap [url] Read sitemap.xml (default source). Pure HTTP, no browser.
|
|
11
|
+
* --crawl Follow links from inside the logged-in app (needs a browser).
|
|
12
|
+
* --no-reveal Crawl links only; do not open menus/dropdowns to find more.
|
|
13
|
+
* --apply Append the new pages to .ia-qa/config.json (else print only).
|
|
14
|
+
* --max <n> Cap candidates per source. Default 200 (sitemap) / 60 (crawl).
|
|
15
|
+
* --depth <n> Crawl link-depth from the start pages. Default 2.
|
|
16
|
+
*/
|
|
17
|
+
export declare function runDiscover(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runDiscover = runDiscover;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
const safety_1 = require("../discovery/safety");
|
|
6
|
+
const sitemap_1 = require("../discovery/sitemap");
|
|
7
|
+
const crawl_1 = require("../crawl");
|
|
8
|
+
/**
|
|
9
|
+
* `ia-qa-heal discover` — propose pages to add to `config.pages`, never map them.
|
|
10
|
+
*
|
|
11
|
+
* Two sources, same output: candidate `{ name, url }` pairs printed for a human to
|
|
12
|
+
* confirm. It is the front door to `map` (which needs the pages listed first), and
|
|
13
|
+
* it holds the same line every other write in this package holds — it *suggests*,
|
|
14
|
+
* and only `--apply` writes, exactly like `ia-qa-heal-ai suggest`. Default is a
|
|
15
|
+
* dry run: discovery is a proposal, not a source of truth for what the app is.
|
|
16
|
+
*
|
|
17
|
+
* --sitemap [url] Read sitemap.xml (default source). Pure HTTP, no browser.
|
|
18
|
+
* --crawl Follow links from inside the logged-in app (needs a browser).
|
|
19
|
+
* --no-reveal Crawl links only; do not open menus/dropdowns to find more.
|
|
20
|
+
* --apply Append the new pages to .ia-qa/config.json (else print only).
|
|
21
|
+
* --max <n> Cap candidates per source. Default 200 (sitemap) / 60 (crawl).
|
|
22
|
+
* --depth <n> Crawl link-depth from the start pages. Default 2.
|
|
23
|
+
*/
|
|
24
|
+
async function runDiscover(args) {
|
|
25
|
+
const opts = parseArgs(args);
|
|
26
|
+
const config = (0, config_1.loadConfig)();
|
|
27
|
+
// Neither flag ⇒ the safe default: read the sitemap, touch nothing.
|
|
28
|
+
const doSitemap = opts.sitemap || (!opts.sitemap && !opts.crawl);
|
|
29
|
+
const doCrawl = opts.crawl;
|
|
30
|
+
const candidates = [];
|
|
31
|
+
if (doSitemap) {
|
|
32
|
+
console.log('🔎 Reading sitemap…');
|
|
33
|
+
const found = await (0, sitemap_1.discoverFromSitemap)(config.baseUrl, {
|
|
34
|
+
sitemapUrl: opts.sitemapUrl,
|
|
35
|
+
maxUrls: opts.max,
|
|
36
|
+
});
|
|
37
|
+
console.log(` ${found.length} URL${found.length === 1 ? '' : 's'} from the sitemap.`);
|
|
38
|
+
candidates.push(...found);
|
|
39
|
+
}
|
|
40
|
+
if (doCrawl) {
|
|
41
|
+
console.log(`🕷 Crawling from ${config.baseUrl}${opts.reveal ? ' (opening menus to reveal hidden links)' : ' (links only)'}…`);
|
|
42
|
+
const found = await (0, crawl_1.crawlApp)(config, {
|
|
43
|
+
maxDepth: opts.depth,
|
|
44
|
+
maxPages: opts.max,
|
|
45
|
+
reveal: opts.reveal,
|
|
46
|
+
// Sitemap hits seed the crawl frontier when both run together.
|
|
47
|
+
seeds: candidates.filter((c) => c.source === 'sitemap').map((c) => c.url),
|
|
48
|
+
onVisit: (url, n) => console.log(` visited ${url} (${n} link${n === 1 ? '' : 's'})`),
|
|
49
|
+
});
|
|
50
|
+
console.log(` ${found.length} page${found.length === 1 ? '' : 's'} reachable by crawling.`);
|
|
51
|
+
candidates.push(...found);
|
|
52
|
+
}
|
|
53
|
+
const added = (0, safety_1.mergePages)(config.pages, candidates, config.baseUrl);
|
|
54
|
+
report(candidates.length, config.pages.length, added);
|
|
55
|
+
if (added.length === 0)
|
|
56
|
+
return;
|
|
57
|
+
if (opts.apply) {
|
|
58
|
+
const pages = [...config.pages, ...added.map((c) => ({ name: c.name, url: c.url }))];
|
|
59
|
+
const file = (0, config_1.saveConfig)({ ...config, pages });
|
|
60
|
+
console.log(`\n✅ Added ${added.length} page${added.length === 1 ? '' : 's'} to ${file}`);
|
|
61
|
+
console.log(' Next: `ia-qa-heal map` to capture their contracts.');
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.log('\nRun again with --apply to add these to .ia-qa/config.json.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function report(total, existing, added) {
|
|
68
|
+
console.log(`\n📋 ${total} candidate${total === 1 ? '' : 's'} found · ${existing} already configured · ${added.length} new`);
|
|
69
|
+
if (added.length === 0) {
|
|
70
|
+
console.log(' Nothing new to add — every discovered page is already in config.pages.');
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const nameW = Math.max(4, ...added.map((c) => c.name.length));
|
|
74
|
+
console.log(`\n ${'name'.padEnd(nameW)} url (source)`);
|
|
75
|
+
for (const c of added) {
|
|
76
|
+
console.log(` ${c.name.padEnd(nameW)} ${c.url} (${c.source})`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function parseArgs(args) {
|
|
80
|
+
const opts = { sitemap: false, crawl: false, reveal: true, apply: false };
|
|
81
|
+
for (let i = 0; i < args.length; i++) {
|
|
82
|
+
const a = args[i];
|
|
83
|
+
switch (a) {
|
|
84
|
+
case '--sitemap': {
|
|
85
|
+
opts.sitemap = true;
|
|
86
|
+
const next = args[i + 1];
|
|
87
|
+
if (next && !next.startsWith('-')) {
|
|
88
|
+
opts.sitemapUrl = next;
|
|
89
|
+
i++;
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case '--crawl':
|
|
94
|
+
opts.crawl = true;
|
|
95
|
+
break;
|
|
96
|
+
case '--no-reveal':
|
|
97
|
+
opts.reveal = false;
|
|
98
|
+
break;
|
|
99
|
+
case '--apply':
|
|
100
|
+
opts.apply = true;
|
|
101
|
+
break;
|
|
102
|
+
case '--max':
|
|
103
|
+
opts.max = requireInt(a, args[++i]);
|
|
104
|
+
break;
|
|
105
|
+
case '--depth':
|
|
106
|
+
opts.depth = requireInt(a, args[++i]);
|
|
107
|
+
break;
|
|
108
|
+
default:
|
|
109
|
+
throw new Error(`Unknown option "${a}" for \`discover\`. See \`ia-qa-heal help\`.`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return opts;
|
|
113
|
+
}
|
|
114
|
+
function requireInt(flag, value) {
|
|
115
|
+
const n = Number(value);
|
|
116
|
+
if (!value || !Number.isInteger(n) || n <= 0) {
|
|
117
|
+
throw new Error(`${flag} needs a positive integer, got "${value ?? ''}".`);
|
|
118
|
+
}
|
|
119
|
+
return n;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/cli/discover.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/fix.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FixResult } from '../fixEngine';
|
|
1
2
|
/**
|
|
2
3
|
* `ia-qa-heal fix <before.json> <after.json> <test-paths…> [--dry-run] [--locators]`
|
|
3
4
|
* `ia-qa-heal fix --dir <baseline-dir> <current-dir> <test-paths…> [--dry-run] [--locators]`
|
|
@@ -15,4 +16,4 @@
|
|
|
15
16
|
*
|
|
16
17
|
* Exit codes: 0 on a successful run (even with 0 rewrites); 2 = bad input.
|
|
17
18
|
*/
|
|
18
|
-
export declare function runFix(args: string[]): Promise<
|
|
19
|
+
export declare function runFix(args: string[]): Promise<FixResult | undefined>;
|