@ia-qa/self-healing 1.6.17 → 1.7.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 +121 -2
- package/TUTORIAL.md +31 -4
- package/dist/browser/resolve.d.ts +20 -0
- package/dist/browser/resolve.js +78 -0
- package/dist/browser/resolve.js.map +1 -0
- package/dist/cli/args.js +3 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit.js +12 -2
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/baseline.js +16 -2
- package/dist/cli/baseline.js.map +1 -1
- package/dist/cli/diff.d.ts +21 -1
- package/dist/cli/diff.js +143 -25
- package/dist/cli/diff.js.map +1 -1
- package/dist/cli/discover.js +9 -0
- package/dist/cli/discover.js.map +1 -1
- package/dist/cli/fix.js +33 -0
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/index.js +54 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/login.d.ts +28 -0
- package/dist/cli/login.js +179 -0
- package/dist/cli/login.js.map +1 -0
- package/dist/cli/map.d.ts +19 -3
- package/dist/cli/map.js +244 -17
- package/dist/cli/map.js.map +1 -1
- package/dist/config.d.ts +68 -0
- package/dist/config.js +94 -1
- package/dist/config.js.map +1 -1
- package/dist/crawl.d.ts +2 -0
- package/dist/crawl.js +13 -4
- package/dist/crawl.js.map +1 -1
- package/dist/fixEngine.d.ts +23 -0
- package/dist/fixEngine.js +27 -0
- package/dist/fixEngine.js.map +1 -1
- package/dist/launcher.d.ts +7 -0
- package/dist/launcher.js +4 -4
- package/dist/launcher.js.map +1 -1
- package/dist/resolution.d.ts +96 -0
- package/dist/resolution.js +197 -0
- package/dist/resolution.js.map +1 -0
- package/dist/ui/page.js +10 -0
- package/dist/ui/page.js.map +1 -1
- package/dist/ui/server.js +66 -0
- package/dist/ui/server.js.map +1 -1
- package/package.json +1 -1
- package/skills/ia-qa-heal/SKILL.md +25 -1
package/dist/cli/map.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.LoginWallError = void 0;
|
|
36
37
|
exports.runMap = runMap;
|
|
37
38
|
exports.runSteps = runSteps;
|
|
38
39
|
exports.suggestAuthBlock = suggestAuthBlock;
|
|
@@ -50,6 +51,11 @@ const markdown_2 = require("../markdown");
|
|
|
50
51
|
const overview_1 = require("../overview");
|
|
51
52
|
const volatile_1 = require("../volatile");
|
|
52
53
|
const summary_1 = require("./summary");
|
|
54
|
+
const resolve_1 = require("../browser/resolve");
|
|
55
|
+
const ingest_1 = require("../ingest");
|
|
56
|
+
const fixEngine_1 = require("../fixEngine");
|
|
57
|
+
const config_2 = require("../config");
|
|
58
|
+
const resolution_1 = require("../resolution");
|
|
53
59
|
/**
|
|
54
60
|
* `ia-qa-heal map [pageName]` — scraping & DOM compression engine.
|
|
55
61
|
*
|
|
@@ -140,6 +146,109 @@ async function capturePageRects(page, pageName, selectors) {
|
|
|
140
146
|
console.warn(` ⚠ element positions skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
141
147
|
}
|
|
142
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Landing on a login form instead of the page asked for.
|
|
151
|
+
*
|
|
152
|
+
* Typed, because the cause is never page-specific: if one target hit the wall, every
|
|
153
|
+
* target behind it will, and the remedy is one remedy. The loop uses the type to print
|
|
154
|
+
* it once instead of once per page — the restraint `assertLanded` used to get for free
|
|
155
|
+
* by aborting the whole walk, kept now that one unreachable page only costs one page.
|
|
156
|
+
*/
|
|
157
|
+
class LoginWallError extends Error {
|
|
158
|
+
constructor(message) {
|
|
159
|
+
super(message);
|
|
160
|
+
this.name = 'LoginWallError';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.LoginWallError = LoginWallError;
|
|
164
|
+
/**
|
|
165
|
+
* How old the saved session is, in words. A session has a shelf life nobody can read off
|
|
166
|
+
* the file, so the age is the only honest thing to say about it before it is used — and
|
|
167
|
+
* it is what makes "the map came out empty" legible ten days later.
|
|
168
|
+
*/
|
|
169
|
+
/**
|
|
170
|
+
* Which session is in use, and how old it is. Both halves matter: a session can now come
|
|
171
|
+
* from four places (`--session`, `IAQA_SESSION`, `config.session`, `login`'s default), and
|
|
172
|
+
* "the map came out empty" is unreadable a week later without knowing which one was read
|
|
173
|
+
* and whether it was already stale when it was.
|
|
174
|
+
*/
|
|
175
|
+
function sessionLine(choice) {
|
|
176
|
+
const from = choice.source === 'login'
|
|
177
|
+
? 'saved by ia-qa-heal login'
|
|
178
|
+
: choice.source === 'flag'
|
|
179
|
+
? '--session ' + choice.file
|
|
180
|
+
: choice.source === 'env'
|
|
181
|
+
? 'IAQA_SESSION=' + choice.file
|
|
182
|
+
: '"session" in config.json → ' + choice.file;
|
|
183
|
+
return '🔓 Reusing the session (' + from + ', ' + sessionAge(choice.file) + ').';
|
|
184
|
+
}
|
|
185
|
+
function sessionAge(file) {
|
|
186
|
+
try {
|
|
187
|
+
const ms = Date.now() - fs.statSync(file).mtimeMs;
|
|
188
|
+
const min = Math.round(ms / 60000);
|
|
189
|
+
if (min < 1)
|
|
190
|
+
return 'saved just now';
|
|
191
|
+
if (min < 60)
|
|
192
|
+
return `saved ${min} min ago`;
|
|
193
|
+
const hours = Math.round(min / 60);
|
|
194
|
+
if (hours < 48)
|
|
195
|
+
return `saved ${hours} h ago`;
|
|
196
|
+
return `saved ${Math.round(hours / 24)} days ago`;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return 'age unknown';
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* State the selector inventory the bindings will be computed against — before the
|
|
204
|
+
* browser opens, because it decides what this run can produce.
|
|
205
|
+
*
|
|
206
|
+
* The field report that forced this: a team mapped first and ingested after, so the
|
|
207
|
+
* bindings were built from a stale `usage.json` holding 3 selectors while their Page
|
|
208
|
+
* Objects held 182. The run printed "0 of 3 test selectors bound" — technically true,
|
|
209
|
+
* and read by a competent agent as "the tool cannot handle CSS selectors", which is the
|
|
210
|
+
* opposite of what it does. The number was never wrong; nothing said what it was a
|
|
211
|
+
* number *of*.
|
|
212
|
+
*
|
|
213
|
+
* So: absent inventory is named as absent, a present one is quantified and dated, and a
|
|
214
|
+
* suite edited since is called stale. Never fatal — `map` captures contracts with or
|
|
215
|
+
* without an inventory, and this only decides whether it can also bind them.
|
|
216
|
+
*/
|
|
217
|
+
function announceInventory() {
|
|
218
|
+
const usage = (0, ingest_1.loadUsage)();
|
|
219
|
+
if (!usage || Object.keys(usage.selectors).length === 0) {
|
|
220
|
+
console.log('🔗 No selector inventory yet (.ia-qa/usage.json) — this run captures contracts but binds nothing.');
|
|
221
|
+
console.log(' If your tests locate by CSS, run `ia-qa-heal ingest` FIRST: bindings are what connect');
|
|
222
|
+
console.log(' the selectors your tests write to the elements this run captures.');
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const count = Object.keys(usage.selectors).length;
|
|
226
|
+
console.log(`🔗 Binding against ${count} inventoried selector${count === 1 ? '' : 's'} (${usage.scanned} file${usage.scanned === 1 ? '' : 's'} scanned).`);
|
|
227
|
+
// A suite edited after the inventory describes a different suite. Cheap to detect,
|
|
228
|
+
// and the difference between a real "0 bound" and this one is the whole conclusion.
|
|
229
|
+
const newest = newestTestFileTime();
|
|
230
|
+
const ingested = Date.parse(usage.generatedAt);
|
|
231
|
+
if (newest && ingested && newest > ingested) {
|
|
232
|
+
console.log(` ⚠ Your test files changed since that inventory (${usage.generatedAt}). Re-run ` +
|
|
233
|
+
'`ia-qa-heal ingest`, or the bindings describe an older suite.');
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/** Newest mtime under `config.testPaths`. Null when nothing is configured or readable. */
|
|
237
|
+
function newestTestFileTime() {
|
|
238
|
+
try {
|
|
239
|
+
const files = (0, fixEngine_1.collectFiles)((0, config_2.configuredTestPaths)());
|
|
240
|
+
let newest = 0;
|
|
241
|
+
for (const file of files) {
|
|
242
|
+
const t = fs.statSync(file).mtimeMs;
|
|
243
|
+
if (t > newest)
|
|
244
|
+
newest = t;
|
|
245
|
+
}
|
|
246
|
+
return newest || null;
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
143
252
|
async function runMap(pageNameArg, opts = {}) {
|
|
144
253
|
const config = (0, config_1.loadConfig)();
|
|
145
254
|
if (config.pages.length === 0 && !pageNameArg) {
|
|
@@ -153,6 +262,12 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
153
262
|
const known = config.pages.map((p) => p.name).join(', ') || '(none configured)';
|
|
154
263
|
throw new Error(`Unknown page "${pageNameArg}". Configured pages: ${known}`);
|
|
155
264
|
}
|
|
265
|
+
// A session saved by `ia-qa-heal login`. It wins over `config.auth` when both exist,
|
|
266
|
+
// and that order is deliberate: someone runs `login` precisely because the form fill
|
|
267
|
+
// could not get through (SSO, MFA, a consent screen), so silently preferring `auth`
|
|
268
|
+
// would re-run the thing that already failed. Which one ran is stated, never implied.
|
|
269
|
+
const session = (0, config_1.resolveSession)(config, opts.session);
|
|
270
|
+
announceInventory();
|
|
156
271
|
const { browser, using } = await (0, launcher_1.launchBrowser)();
|
|
157
272
|
console.log(`🌐 Using ${using}`);
|
|
158
273
|
let totalElements = 0;
|
|
@@ -161,15 +276,23 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
161
276
|
let mapped = 0;
|
|
162
277
|
const failed = [];
|
|
163
278
|
const volatilePatterns = (0, volatile_1.parseVolatilePatterns)(config.volatile);
|
|
279
|
+
const remedies = new Set();
|
|
164
280
|
// newContext/newPage live inside the try: launched before it, a throw there would
|
|
165
281
|
// skip the finally and strand the browser process.
|
|
166
282
|
const locale = config.locale || process.env.IAQA_LOCALE;
|
|
167
283
|
try {
|
|
168
|
-
const context =
|
|
169
|
-
?
|
|
170
|
-
:
|
|
284
|
+
const context = await browser.newContext({
|
|
285
|
+
...(locale ? { locale } : {}),
|
|
286
|
+
...(session ? { storageState: session.file } : {}),
|
|
287
|
+
});
|
|
171
288
|
const page = await context.newPage();
|
|
172
|
-
if (
|
|
289
|
+
if (session) {
|
|
290
|
+
console.log(sessionLine(session));
|
|
291
|
+
if (config.auth) {
|
|
292
|
+
console.log(' "auth" in config.json was not used this run — the saved session takes precedence.');
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (config.auth && !session) {
|
|
173
296
|
console.log('🔐 Logging in…');
|
|
174
297
|
await login(page, config);
|
|
175
298
|
// Without a successSelector, login() only knows the form was submitted and the
|
|
@@ -192,7 +315,7 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
192
315
|
// intact. An empty mapping would have been far worse than a missing one —
|
|
193
316
|
// it reads as "every element vanished" and manufactures a BLOCK.
|
|
194
317
|
try {
|
|
195
|
-
await mapOnePage(page, target, url, config, opts, volatilePatterns, (els, anon, vol) => {
|
|
318
|
+
await mapOnePage(page, target, url, config, opts, volatilePatterns, session, (els, anon, vol) => {
|
|
196
319
|
totalElements += els;
|
|
197
320
|
anonymous += anon;
|
|
198
321
|
volatileExcluded += vol;
|
|
@@ -201,8 +324,22 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
201
324
|
}
|
|
202
325
|
catch (err) {
|
|
203
326
|
const message = err instanceof Error ? err.message : String(err);
|
|
204
|
-
|
|
205
|
-
|
|
327
|
+
const [headline, ...rest] = message.split('\n');
|
|
328
|
+
failed.push({ page: target.name, url, error: headline });
|
|
329
|
+
console.error(` ✖ "${target.name}" not mapped: ${headline}`);
|
|
330
|
+
// Everything after the first line is the *remedy* — on a login wall that is the
|
|
331
|
+
// `auth` block read off the form we are standing on, which is the whole answer to
|
|
332
|
+
// "how do I map this page". Truncating to the headline handed the user a diagnosis
|
|
333
|
+
// with the fix cut out of it, which is what the field report showed.
|
|
334
|
+
// Printed once per distinct remedy: a login wall is never page-specific, and forty
|
|
335
|
+
// copies of the same block teach less than one — `assertLanded`'s reason for
|
|
336
|
+
// aborting, preserved now that the loop no longer aborts on it.
|
|
337
|
+
const remedy = rest.join('\n').trimEnd();
|
|
338
|
+
const remedyKey = err instanceof LoginWallError ? 'login-wall' : remedy;
|
|
339
|
+
if (remedy.trim() && !remedies.has(remedyKey)) {
|
|
340
|
+
remedies.add(remedyKey);
|
|
341
|
+
console.error(remedy.split('\n').map((line) => (line ? ` ${line}` : '')).join('\n'));
|
|
342
|
+
}
|
|
206
343
|
console.error(` Its previous contract is untouched — nothing was overwritten. Continuing.`);
|
|
207
344
|
}
|
|
208
345
|
}
|
|
@@ -264,9 +401,9 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
264
401
|
* handed back through `tally` at the very end, so a page that throws contributes
|
|
265
402
|
* nothing to the totals rather than half of itself.
|
|
266
403
|
*/
|
|
267
|
-
async function mapOnePage(page, target, url, config, opts, volatilePatterns, tally) {
|
|
404
|
+
async function mapOnePage(page, target, url, config, opts, volatilePatterns, session, tally) {
|
|
268
405
|
await page.goto(url, { waitUntil: 'networkidle', timeout: 30000 });
|
|
269
|
-
await assertLanded(page, target, url, config);
|
|
406
|
+
await assertLanded(page, target, url, config, session);
|
|
270
407
|
await runSteps(page, target);
|
|
271
408
|
if (opts.screenshots)
|
|
272
409
|
await capturePageShot(page, target.name);
|
|
@@ -274,6 +411,10 @@ async function mapOnePage(page, target, url, config, opts, volatilePatterns, tal
|
|
|
274
411
|
const { kept: elements, excluded } = (0, volatile_1.filterVolatile)(extracted, volatilePatterns);
|
|
275
412
|
if (opts.screenshots)
|
|
276
413
|
await capturePageRects(page, target.name, elements.map((e) => e.selector));
|
|
414
|
+
// The binding half of the capture: which literal selectors in the suite reach which
|
|
415
|
+
// contracted elements, on this page, right now. Without an inventory there is nothing
|
|
416
|
+
// to resolve — and, exactly like `nameDrift`, no inventory means no escalation later.
|
|
417
|
+
await resolvePageSelectors(page, target.name, elements.map((e) => e.selector));
|
|
277
418
|
const mapping = {
|
|
278
419
|
page: target.name,
|
|
279
420
|
url: target.url,
|
|
@@ -298,6 +439,36 @@ async function mapOnePage(page, target, url, config, opts, volatilePatterns, tal
|
|
|
298
439
|
}
|
|
299
440
|
tally(elements.length, elements.filter((e) => !e.name).length, excluded);
|
|
300
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* Bind the suite's own selector strings to the elements just captured.
|
|
444
|
+
*
|
|
445
|
+
* Runs from the same page state as the extraction, so the two describe one moment. Never
|
|
446
|
+
* fatal: a page contract is the deliverable and a failed resolution costs the binding for
|
|
447
|
+
* that page, not the page.
|
|
448
|
+
*/
|
|
449
|
+
async function resolvePageSelectors(page, pageName, contractSelectors) {
|
|
450
|
+
const usage = (0, ingest_1.loadUsage)();
|
|
451
|
+
const pom = usage ? Object.keys(usage.selectors) : [];
|
|
452
|
+
if (pom.length === 0)
|
|
453
|
+
return;
|
|
454
|
+
try {
|
|
455
|
+
const bindings = await page.evaluate(resolve_1.resolveSelectors, { pom, contract: contractSelectors });
|
|
456
|
+
const resolution = {
|
|
457
|
+
page: pageName,
|
|
458
|
+
capturedAt: new Date().toISOString(),
|
|
459
|
+
source: 'map',
|
|
460
|
+
bindings: bindings,
|
|
461
|
+
};
|
|
462
|
+
(0, resolution_1.saveResolution)(resolution);
|
|
463
|
+
const { bound, total } = (0, resolution_1.countBindings)(resolution);
|
|
464
|
+
// Stated with its denominator, always: what did not bind is *not observed*, never
|
|
465
|
+
// *absent* — the same honesty the coverage line applies to pages.
|
|
466
|
+
console.log(` ↳ ${bound} of ${total} test selectors bound to this page's elements`);
|
|
467
|
+
}
|
|
468
|
+
catch (err) {
|
|
469
|
+
console.warn(` ⚠ selector binding skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
301
472
|
/**
|
|
302
473
|
* Write `_overview.md`. Never fatal: the page contracts are the deliverable, and
|
|
303
474
|
* losing the index over a malformed mapping would throw away a whole map run.
|
|
@@ -482,8 +653,12 @@ async function runSteps(page, target) {
|
|
|
482
653
|
* would owe both an npm release and a site deploy.
|
|
483
654
|
*
|
|
484
655
|
* Returns null when the page holds no password field, or nothing recognisable around it.
|
|
656
|
+
*
|
|
657
|
+
* `loginUrl` overrides the path read off the form. It is passed when the form turned out to
|
|
658
|
+
* live on another origin — an identity provider — whose own URL carries redirect parameters
|
|
659
|
+
* only the app can mint, and is therefore not a URL anyone can navigate to twice.
|
|
485
660
|
*/
|
|
486
|
-
async function suggestAuthBlock(page) {
|
|
661
|
+
async function suggestAuthBlock(page, loginUrl) {
|
|
487
662
|
const found = await page.evaluate(() => {
|
|
488
663
|
const selectorFor = (el) => {
|
|
489
664
|
const tag = el.tagName.toLowerCase();
|
|
@@ -523,7 +698,7 @@ async function suggestAuthBlock(page) {
|
|
|
523
698
|
password: { source: 'env', key: 'APP_PASSWORD' },
|
|
524
699
|
},
|
|
525
700
|
auth: {
|
|
526
|
-
loginUrl: found.loginUrl,
|
|
701
|
+
loginUrl: loginUrl || found.loginUrl,
|
|
527
702
|
usernameSelector: found.usernameSelector,
|
|
528
703
|
passwordSelector: found.passwordSelector,
|
|
529
704
|
submitSelector: found.submitSelector,
|
|
@@ -562,7 +737,7 @@ function samePath(a, b) {
|
|
|
562
737
|
* one target hit the wall, every target behind it will, and forty copies of this error
|
|
563
738
|
* teach less than one.
|
|
564
739
|
*/
|
|
565
|
-
async function assertLanded(page, target, wanted, config) {
|
|
740
|
+
async function assertLanded(page, target, wanted, config, session) {
|
|
566
741
|
const landed = page.url();
|
|
567
742
|
if (samePath(landed, wanted))
|
|
568
743
|
return;
|
|
@@ -570,24 +745,76 @@ async function assertLanded(page, target, wanted, config) {
|
|
|
570
745
|
console.warn(` ⚠ Redirected to ${landed} — this contract describes that page, not ${wanted}.`);
|
|
571
746
|
return;
|
|
572
747
|
}
|
|
748
|
+
const originOf = (u) => {
|
|
749
|
+
try {
|
|
750
|
+
return new URL(u).origin;
|
|
751
|
+
}
|
|
752
|
+
catch {
|
|
753
|
+
return null;
|
|
754
|
+
}
|
|
755
|
+
};
|
|
756
|
+
const pathOf = (u) => {
|
|
757
|
+
try {
|
|
758
|
+
const parsed = new URL(u);
|
|
759
|
+
return parsed.pathname + parsed.search;
|
|
760
|
+
}
|
|
761
|
+
catch {
|
|
762
|
+
return undefined;
|
|
763
|
+
}
|
|
764
|
+
};
|
|
765
|
+
// The form is on another host than the app: an identity provider (SSO). That changes both
|
|
766
|
+
// halves of the advice — which URL belongs in `auth.loginUrl`, and whether filling a form
|
|
767
|
+
// can work at all. Withholding it sends someone off to configure the one mechanism that
|
|
768
|
+
// cannot answer an MFA prompt, pointed at a URL that only exists for one redirect.
|
|
769
|
+
const idpOrigin = originOf(landed) !== originOf(config.baseUrl) ? originOf(landed) : null;
|
|
770
|
+
const ssoNote = idpOrigin
|
|
771
|
+
? `The form is on ${idpOrigin}, not on your app — an identity provider. Two consequences:\n` +
|
|
772
|
+
` · Its URL carries redirect parameters only your app can mint, so it is not a URL to ` +
|
|
773
|
+
`navigate to directly. Point "auth.loginUrl" at the app path you want instead — the app's ` +
|
|
774
|
+
`own redirect then hands you a usable form.\n` +
|
|
775
|
+
` · If that provider asks for anything a form fill cannot answer — MFA, a consent ` +
|
|
776
|
+
`screen, a device check — no selector list will get through it. Capture during a real ` +
|
|
777
|
+
`run instead (IAQA_CAPTURE=1 with "testCommand"), where your own suite's login runs.\n`
|
|
778
|
+
: '';
|
|
779
|
+
// Where the tool stops being able to work alone, and says so rather than suggesting a
|
|
780
|
+
// mechanism that cannot pass. `login` is the one step that needs a person: an agent
|
|
781
|
+
// driving this CLI cannot log in for them, so it is told to hand the step over by name.
|
|
782
|
+
const humanStep = `\nIf no form fill can pass this login — SSO with MFA, a consent screen, a magic link — ` +
|
|
783
|
+
`one human step covers it: \`ia-qa-heal login\` opens a browser, the person logs in once, ` +
|
|
784
|
+
`and map reuses that session. An agent cannot perform it: ask the human to run it.`;
|
|
573
785
|
const head = `Mapping "${target.name}": asked for ${wanted}, landed on ${landed}, which has a password ` +
|
|
574
786
|
`field — that is a login wall, not the page.\n` +
|
|
575
787
|
`Refusing to write a contract named "${target.name}" that describes a login form.\n`;
|
|
788
|
+
if (session) {
|
|
789
|
+
throw new LoginWallError(head +
|
|
790
|
+
ssoNote +
|
|
791
|
+
`The session at ${session.file} does not authenticate this app any more — expired, ` +
|
|
792
|
+
`rotated, or never covering this domain.\n` +
|
|
793
|
+
(session.source === 'login'
|
|
794
|
+
? `Re-run \`ia-qa-heal login\` to refresh it.`
|
|
795
|
+
: `Refresh whatever produces that file — for a Playwright suite that is usually its ` +
|
|
796
|
+
`\`globalSetup\`. Or run \`ia-qa-heal login\` to make one here.`) +
|
|
797
|
+
` Nothing else is affected: the contracts already on disk are untouched.`);
|
|
798
|
+
}
|
|
576
799
|
if (config.auth) {
|
|
577
|
-
throw new
|
|
800
|
+
throw new LoginWallError(head +
|
|
801
|
+
ssoNote +
|
|
578
802
|
`Login ran but did not stick. Check the values behind secrets "${config.auth.usernameSecret}" ` +
|
|
579
803
|
`and "${config.auth.passwordSecret}", and set "auth.successSelector" so a failed login is ` +
|
|
580
|
-
`caught at login time instead of here.`
|
|
804
|
+
`caught at login time instead of here.` +
|
|
805
|
+
humanStep);
|
|
581
806
|
}
|
|
582
|
-
const suggestion = await suggestAuthBlock(page);
|
|
583
|
-
throw new
|
|
807
|
+
const suggestion = await suggestAuthBlock(page, idpOrigin ? pathOf(wanted) : undefined);
|
|
808
|
+
throw new LoginWallError(head +
|
|
809
|
+
ssoNote +
|
|
584
810
|
`No "auth" is configured, so every page behind the login maps the login form instead.\n` +
|
|
585
811
|
(suggestion
|
|
586
812
|
? `This login form is readable — merge this into .ia-qa/config.json, then set APP_USERNAME ` +
|
|
587
813
|
`and APP_PASSWORD in your environment:\n\n${suggestion}\n\n` +
|
|
588
814
|
`Values stay in env/SSM. config.json only ever holds the reference.`
|
|
589
815
|
: `Add an "auth" block (loginUrl, usernameSelector, passwordSelector, submitSelector) and ` +
|
|
590
|
-
`the matching "secrets" entries — values stay in env/SSM, never in config.json.`)
|
|
816
|
+
`the matching "secrets" entries — values stay in env/SSM, never in config.json.`) +
|
|
817
|
+
humanStep);
|
|
591
818
|
}
|
|
592
819
|
async function login(page, config) {
|
|
593
820
|
const auth = config.auth;
|
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/config.d.ts
CHANGED
|
@@ -89,6 +89,18 @@ export interface IaQaConfig {
|
|
|
89
89
|
baseUrl: string;
|
|
90
90
|
secrets: Record<string, SecretRef>;
|
|
91
91
|
auth?: AuthConfig;
|
|
92
|
+
/**
|
|
93
|
+
* A Playwright `storageState` file to reuse instead of logging in.
|
|
94
|
+
*
|
|
95
|
+
* `ia-qa-heal login` writes one at `.ia-qa/session.json` and nothing needs to be
|
|
96
|
+
* configured for that. This field is for the session you **already have**: most
|
|
97
|
+
* authenticated Playwright suites produce a storageState in `globalSetup`, and
|
|
98
|
+
* pointing at it is cheaper than logging in twice. Relative paths resolve from the
|
|
99
|
+
* project root; `--session <file>` and `IAQA_SESSION` override it.
|
|
100
|
+
*
|
|
101
|
+
* Whatever it points at is a live session, i.e. a secret. Keep it out of git.
|
|
102
|
+
*/
|
|
103
|
+
session?: string;
|
|
92
104
|
/** BYOK AI add-on config (`ia-qa-heal-ai`). Optional — absent ⇒ AI layer inert. */
|
|
93
105
|
ai?: AiConfig;
|
|
94
106
|
pages: PageTarget[];
|
|
@@ -191,6 +203,22 @@ export declare function configPath(cwd?: string): string;
|
|
|
191
203
|
export declare function mappingDir(cwd?: string): string;
|
|
192
204
|
export declare function baselineDir(cwd?: string): string;
|
|
193
205
|
export declare const LAYOUT_DIRNAME = "_layouts";
|
|
206
|
+
/**
|
|
207
|
+
* Bindings between a Page Object's literal selectors and the contract's elements,
|
|
208
|
+
* written by `map` when an inventory exists (`usage.json`) and promoted by `baseline`
|
|
209
|
+
* alongside the contracts they describe.
|
|
210
|
+
*
|
|
211
|
+
* A **directory**, not a `<page>.resolved.json` beside the contract: `baseline` and
|
|
212
|
+
* `diff` enumerate `*.json` in a directory as pages, so a sibling file would be diffed
|
|
213
|
+
* as a page named "checkout.resolved". `_layouts/` set the precedent — a leading
|
|
214
|
+
* underscore is already how this codebase spells "not a page".
|
|
215
|
+
*
|
|
216
|
+
* Never a field on the contract: `<page>.json` must stay byte-identical whether or not
|
|
217
|
+
* an inventory exists, the same rule that keeps `--screenshots` from moving a verdict.
|
|
218
|
+
*/
|
|
219
|
+
export declare const RESOLVED_DIRNAME = "_resolved";
|
|
220
|
+
export declare function resolvedDir(cwd?: string): string;
|
|
221
|
+
export declare function baselineResolvedDir(cwd?: string): string;
|
|
194
222
|
/**
|
|
195
223
|
* Page screenshots taken by `map --screenshots`, purely so an HTML report can
|
|
196
224
|
* show what the page looked like. They are **artefacts, not contract**: nothing
|
|
@@ -199,6 +227,46 @@ export declare const LAYOUT_DIRNAME = "_layouts";
|
|
|
199
227
|
*/
|
|
200
228
|
export declare const SHOTS_DIRNAME = "_shots";
|
|
201
229
|
export declare function shotsDir(cwd?: string): string;
|
|
230
|
+
/**
|
|
231
|
+
* A browser session saved by `ia-qa-heal login`, in Playwright `storageState` shape.
|
|
232
|
+
*
|
|
233
|
+
* This is the auth mechanism that models *nothing*: `auth` describes one shape of login
|
|
234
|
+
* form, so it only works on apps whose login is that shape — SSO with MFA, a consent
|
|
235
|
+
* screen, a magic link or a device check all defeat it, and no selector list can help.
|
|
236
|
+
* A saved session sidesteps the question entirely by reusing one a human established.
|
|
237
|
+
*
|
|
238
|
+
* It holds live cookies: whoever has this file is logged in as that user. It never
|
|
239
|
+
* leaves the machine (nothing here uploads it), `login` writes `.ia-qa/.gitignore` so a
|
|
240
|
+
* commit cannot carry it, and it is the one artefact in `.ia-qa/` that is a secret.
|
|
241
|
+
*/
|
|
242
|
+
export declare const SESSION_FILENAME = "session.json";
|
|
243
|
+
export declare function sessionPath(cwd?: string): string;
|
|
244
|
+
/** Where a session came from — the word the CLI uses when it says which one it is using. */
|
|
245
|
+
export type SessionSource = 'flag' | 'env' | 'config' | 'login';
|
|
246
|
+
export interface SessionChoice {
|
|
247
|
+
file: string;
|
|
248
|
+
source: SessionSource;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Which session file to *write* — `login`'s target. Same precedence as reading, minus
|
|
252
|
+
* the existence check: pointing `session` at a path is also a way of saying where you
|
|
253
|
+
* want it kept.
|
|
254
|
+
*/
|
|
255
|
+
export declare function sessionTarget(config: IaQaConfig, explicit?: string, cwd?: string): SessionChoice;
|
|
256
|
+
/**
|
|
257
|
+
* The session to *read*, or null when there is none to read.
|
|
258
|
+
*
|
|
259
|
+
* A session the user named — a flag, an env var, a config field — that cannot be used is
|
|
260
|
+
* a **hard error**, never a silent fall-through: ignoring it would map the login page
|
|
261
|
+
* under the name of their dashboard, which is the one failure this package treats as
|
|
262
|
+
* worse than stopping. The default location is different: absent simply means nobody has
|
|
263
|
+
* run `login`, which is the ordinary case.
|
|
264
|
+
*
|
|
265
|
+
* The shape check is deliberately shallow — `cookies` is enough to tell a storageState
|
|
266
|
+
* from a config file pasted by mistake, and the file is a secret: it is never read for
|
|
267
|
+
* anything else, never logged, never sent anywhere.
|
|
268
|
+
*/
|
|
269
|
+
export declare function resolveSession(config: IaQaConfig, explicit?: string, cwd?: string): SessionChoice | null;
|
|
202
270
|
export declare function mappingPath(pageName: string, dir?: string): string;
|
|
203
271
|
export declare function layoutDir(cwd?: string): string;
|
|
204
272
|
export declare function baselineLayoutDir(cwd?: string): string;
|