@ia-qa/self-healing 1.6.17 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -1
- 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/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 +50 -1
- 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 +191 -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,9 @@ 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 resolution_1 = require("../resolution");
|
|
53
57
|
/**
|
|
54
58
|
* `ia-qa-heal map [pageName]` — scraping & DOM compression engine.
|
|
55
59
|
*
|
|
@@ -140,6 +144,59 @@ async function capturePageRects(page, pageName, selectors) {
|
|
|
140
144
|
console.warn(` ⚠ element positions skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
141
145
|
}
|
|
142
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Landing on a login form instead of the page asked for.
|
|
149
|
+
*
|
|
150
|
+
* Typed, because the cause is never page-specific: if one target hit the wall, every
|
|
151
|
+
* target behind it will, and the remedy is one remedy. The loop uses the type to print
|
|
152
|
+
* it once instead of once per page — the restraint `assertLanded` used to get for free
|
|
153
|
+
* by aborting the whole walk, kept now that one unreachable page only costs one page.
|
|
154
|
+
*/
|
|
155
|
+
class LoginWallError extends Error {
|
|
156
|
+
constructor(message) {
|
|
157
|
+
super(message);
|
|
158
|
+
this.name = 'LoginWallError';
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.LoginWallError = LoginWallError;
|
|
162
|
+
/**
|
|
163
|
+
* How old the saved session is, in words. A session has a shelf life nobody can read off
|
|
164
|
+
* the file, so the age is the only honest thing to say about it before it is used — and
|
|
165
|
+
* it is what makes "the map came out empty" legible ten days later.
|
|
166
|
+
*/
|
|
167
|
+
/**
|
|
168
|
+
* Which session is in use, and how old it is. Both halves matter: a session can now come
|
|
169
|
+
* from four places (`--session`, `IAQA_SESSION`, `config.session`, `login`'s default), and
|
|
170
|
+
* "the map came out empty" is unreadable a week later without knowing which one was read
|
|
171
|
+
* and whether it was already stale when it was.
|
|
172
|
+
*/
|
|
173
|
+
function sessionLine(choice) {
|
|
174
|
+
const from = choice.source === 'login'
|
|
175
|
+
? 'saved by ia-qa-heal login'
|
|
176
|
+
: choice.source === 'flag'
|
|
177
|
+
? '--session ' + choice.file
|
|
178
|
+
: choice.source === 'env'
|
|
179
|
+
? 'IAQA_SESSION=' + choice.file
|
|
180
|
+
: '"session" in config.json → ' + choice.file;
|
|
181
|
+
return '🔓 Reusing the session (' + from + ', ' + sessionAge(choice.file) + ').';
|
|
182
|
+
}
|
|
183
|
+
function sessionAge(file) {
|
|
184
|
+
try {
|
|
185
|
+
const ms = Date.now() - fs.statSync(file).mtimeMs;
|
|
186
|
+
const min = Math.round(ms / 60000);
|
|
187
|
+
if (min < 1)
|
|
188
|
+
return 'saved just now';
|
|
189
|
+
if (min < 60)
|
|
190
|
+
return `saved ${min} min ago`;
|
|
191
|
+
const hours = Math.round(min / 60);
|
|
192
|
+
if (hours < 48)
|
|
193
|
+
return `saved ${hours} h ago`;
|
|
194
|
+
return `saved ${Math.round(hours / 24)} days ago`;
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return 'age unknown';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
143
200
|
async function runMap(pageNameArg, opts = {}) {
|
|
144
201
|
const config = (0, config_1.loadConfig)();
|
|
145
202
|
if (config.pages.length === 0 && !pageNameArg) {
|
|
@@ -153,6 +210,11 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
153
210
|
const known = config.pages.map((p) => p.name).join(', ') || '(none configured)';
|
|
154
211
|
throw new Error(`Unknown page "${pageNameArg}". Configured pages: ${known}`);
|
|
155
212
|
}
|
|
213
|
+
// A session saved by `ia-qa-heal login`. It wins over `config.auth` when both exist,
|
|
214
|
+
// and that order is deliberate: someone runs `login` precisely because the form fill
|
|
215
|
+
// could not get through (SSO, MFA, a consent screen), so silently preferring `auth`
|
|
216
|
+
// would re-run the thing that already failed. Which one ran is stated, never implied.
|
|
217
|
+
const session = (0, config_1.resolveSession)(config, opts.session);
|
|
156
218
|
const { browser, using } = await (0, launcher_1.launchBrowser)();
|
|
157
219
|
console.log(`🌐 Using ${using}`);
|
|
158
220
|
let totalElements = 0;
|
|
@@ -161,15 +223,23 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
161
223
|
let mapped = 0;
|
|
162
224
|
const failed = [];
|
|
163
225
|
const volatilePatterns = (0, volatile_1.parseVolatilePatterns)(config.volatile);
|
|
226
|
+
const remedies = new Set();
|
|
164
227
|
// newContext/newPage live inside the try: launched before it, a throw there would
|
|
165
228
|
// skip the finally and strand the browser process.
|
|
166
229
|
const locale = config.locale || process.env.IAQA_LOCALE;
|
|
167
230
|
try {
|
|
168
|
-
const context =
|
|
169
|
-
?
|
|
170
|
-
:
|
|
231
|
+
const context = await browser.newContext({
|
|
232
|
+
...(locale ? { locale } : {}),
|
|
233
|
+
...(session ? { storageState: session.file } : {}),
|
|
234
|
+
});
|
|
171
235
|
const page = await context.newPage();
|
|
172
|
-
if (
|
|
236
|
+
if (session) {
|
|
237
|
+
console.log(sessionLine(session));
|
|
238
|
+
if (config.auth) {
|
|
239
|
+
console.log(' "auth" in config.json was not used this run — the saved session takes precedence.');
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (config.auth && !session) {
|
|
173
243
|
console.log('🔐 Logging in…');
|
|
174
244
|
await login(page, config);
|
|
175
245
|
// Without a successSelector, login() only knows the form was submitted and the
|
|
@@ -192,7 +262,7 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
192
262
|
// intact. An empty mapping would have been far worse than a missing one —
|
|
193
263
|
// it reads as "every element vanished" and manufactures a BLOCK.
|
|
194
264
|
try {
|
|
195
|
-
await mapOnePage(page, target, url, config, opts, volatilePatterns, (els, anon, vol) => {
|
|
265
|
+
await mapOnePage(page, target, url, config, opts, volatilePatterns, session, (els, anon, vol) => {
|
|
196
266
|
totalElements += els;
|
|
197
267
|
anonymous += anon;
|
|
198
268
|
volatileExcluded += vol;
|
|
@@ -201,8 +271,22 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
201
271
|
}
|
|
202
272
|
catch (err) {
|
|
203
273
|
const message = err instanceof Error ? err.message : String(err);
|
|
204
|
-
|
|
205
|
-
|
|
274
|
+
const [headline, ...rest] = message.split('\n');
|
|
275
|
+
failed.push({ page: target.name, url, error: headline });
|
|
276
|
+
console.error(` ✖ "${target.name}" not mapped: ${headline}`);
|
|
277
|
+
// Everything after the first line is the *remedy* — on a login wall that is the
|
|
278
|
+
// `auth` block read off the form we are standing on, which is the whole answer to
|
|
279
|
+
// "how do I map this page". Truncating to the headline handed the user a diagnosis
|
|
280
|
+
// with the fix cut out of it, which is what the field report showed.
|
|
281
|
+
// Printed once per distinct remedy: a login wall is never page-specific, and forty
|
|
282
|
+
// copies of the same block teach less than one — `assertLanded`'s reason for
|
|
283
|
+
// aborting, preserved now that the loop no longer aborts on it.
|
|
284
|
+
const remedy = rest.join('\n').trimEnd();
|
|
285
|
+
const remedyKey = err instanceof LoginWallError ? 'login-wall' : remedy;
|
|
286
|
+
if (remedy.trim() && !remedies.has(remedyKey)) {
|
|
287
|
+
remedies.add(remedyKey);
|
|
288
|
+
console.error(remedy.split('\n').map((line) => (line ? ` ${line}` : '')).join('\n'));
|
|
289
|
+
}
|
|
206
290
|
console.error(` Its previous contract is untouched — nothing was overwritten. Continuing.`);
|
|
207
291
|
}
|
|
208
292
|
}
|
|
@@ -264,9 +348,9 @@ async function runMap(pageNameArg, opts = {}) {
|
|
|
264
348
|
* handed back through `tally` at the very end, so a page that throws contributes
|
|
265
349
|
* nothing to the totals rather than half of itself.
|
|
266
350
|
*/
|
|
267
|
-
async function mapOnePage(page, target, url, config, opts, volatilePatterns, tally) {
|
|
351
|
+
async function mapOnePage(page, target, url, config, opts, volatilePatterns, session, tally) {
|
|
268
352
|
await page.goto(url, { waitUntil: 'networkidle', timeout: 30000 });
|
|
269
|
-
await assertLanded(page, target, url, config);
|
|
353
|
+
await assertLanded(page, target, url, config, session);
|
|
270
354
|
await runSteps(page, target);
|
|
271
355
|
if (opts.screenshots)
|
|
272
356
|
await capturePageShot(page, target.name);
|
|
@@ -274,6 +358,10 @@ async function mapOnePage(page, target, url, config, opts, volatilePatterns, tal
|
|
|
274
358
|
const { kept: elements, excluded } = (0, volatile_1.filterVolatile)(extracted, volatilePatterns);
|
|
275
359
|
if (opts.screenshots)
|
|
276
360
|
await capturePageRects(page, target.name, elements.map((e) => e.selector));
|
|
361
|
+
// The binding half of the capture: which literal selectors in the suite reach which
|
|
362
|
+
// contracted elements, on this page, right now. Without an inventory there is nothing
|
|
363
|
+
// to resolve — and, exactly like `nameDrift`, no inventory means no escalation later.
|
|
364
|
+
await resolvePageSelectors(page, target.name, elements.map((e) => e.selector));
|
|
277
365
|
const mapping = {
|
|
278
366
|
page: target.name,
|
|
279
367
|
url: target.url,
|
|
@@ -298,6 +386,36 @@ async function mapOnePage(page, target, url, config, opts, volatilePatterns, tal
|
|
|
298
386
|
}
|
|
299
387
|
tally(elements.length, elements.filter((e) => !e.name).length, excluded);
|
|
300
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Bind the suite's own selector strings to the elements just captured.
|
|
391
|
+
*
|
|
392
|
+
* Runs from the same page state as the extraction, so the two describe one moment. Never
|
|
393
|
+
* fatal: a page contract is the deliverable and a failed resolution costs the binding for
|
|
394
|
+
* that page, not the page.
|
|
395
|
+
*/
|
|
396
|
+
async function resolvePageSelectors(page, pageName, contractSelectors) {
|
|
397
|
+
const usage = (0, ingest_1.loadUsage)();
|
|
398
|
+
const pom = usage ? Object.keys(usage.selectors) : [];
|
|
399
|
+
if (pom.length === 0)
|
|
400
|
+
return;
|
|
401
|
+
try {
|
|
402
|
+
const bindings = await page.evaluate(resolve_1.resolveSelectors, { pom, contract: contractSelectors });
|
|
403
|
+
const resolution = {
|
|
404
|
+
page: pageName,
|
|
405
|
+
capturedAt: new Date().toISOString(),
|
|
406
|
+
source: 'map',
|
|
407
|
+
bindings: bindings,
|
|
408
|
+
};
|
|
409
|
+
(0, resolution_1.saveResolution)(resolution);
|
|
410
|
+
const { bound, total } = (0, resolution_1.countBindings)(resolution);
|
|
411
|
+
// Stated with its denominator, always: what did not bind is *not observed*, never
|
|
412
|
+
// *absent* — the same honesty the coverage line applies to pages.
|
|
413
|
+
console.log(` ↳ ${bound} of ${total} test selectors bound to this page's elements`);
|
|
414
|
+
}
|
|
415
|
+
catch (err) {
|
|
416
|
+
console.warn(` ⚠ selector binding skipped for "${pageName}": ${err instanceof Error ? err.message : String(err)}`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
301
419
|
/**
|
|
302
420
|
* Write `_overview.md`. Never fatal: the page contracts are the deliverable, and
|
|
303
421
|
* losing the index over a malformed mapping would throw away a whole map run.
|
|
@@ -482,8 +600,12 @@ async function runSteps(page, target) {
|
|
|
482
600
|
* would owe both an npm release and a site deploy.
|
|
483
601
|
*
|
|
484
602
|
* Returns null when the page holds no password field, or nothing recognisable around it.
|
|
603
|
+
*
|
|
604
|
+
* `loginUrl` overrides the path read off the form. It is passed when the form turned out to
|
|
605
|
+
* live on another origin — an identity provider — whose own URL carries redirect parameters
|
|
606
|
+
* only the app can mint, and is therefore not a URL anyone can navigate to twice.
|
|
485
607
|
*/
|
|
486
|
-
async function suggestAuthBlock(page) {
|
|
608
|
+
async function suggestAuthBlock(page, loginUrl) {
|
|
487
609
|
const found = await page.evaluate(() => {
|
|
488
610
|
const selectorFor = (el) => {
|
|
489
611
|
const tag = el.tagName.toLowerCase();
|
|
@@ -523,7 +645,7 @@ async function suggestAuthBlock(page) {
|
|
|
523
645
|
password: { source: 'env', key: 'APP_PASSWORD' },
|
|
524
646
|
},
|
|
525
647
|
auth: {
|
|
526
|
-
loginUrl: found.loginUrl,
|
|
648
|
+
loginUrl: loginUrl || found.loginUrl,
|
|
527
649
|
usernameSelector: found.usernameSelector,
|
|
528
650
|
passwordSelector: found.passwordSelector,
|
|
529
651
|
submitSelector: found.submitSelector,
|
|
@@ -562,7 +684,7 @@ function samePath(a, b) {
|
|
|
562
684
|
* one target hit the wall, every target behind it will, and forty copies of this error
|
|
563
685
|
* teach less than one.
|
|
564
686
|
*/
|
|
565
|
-
async function assertLanded(page, target, wanted, config) {
|
|
687
|
+
async function assertLanded(page, target, wanted, config, session) {
|
|
566
688
|
const landed = page.url();
|
|
567
689
|
if (samePath(landed, wanted))
|
|
568
690
|
return;
|
|
@@ -570,24 +692,76 @@ async function assertLanded(page, target, wanted, config) {
|
|
|
570
692
|
console.warn(` ⚠ Redirected to ${landed} — this contract describes that page, not ${wanted}.`);
|
|
571
693
|
return;
|
|
572
694
|
}
|
|
695
|
+
const originOf = (u) => {
|
|
696
|
+
try {
|
|
697
|
+
return new URL(u).origin;
|
|
698
|
+
}
|
|
699
|
+
catch {
|
|
700
|
+
return null;
|
|
701
|
+
}
|
|
702
|
+
};
|
|
703
|
+
const pathOf = (u) => {
|
|
704
|
+
try {
|
|
705
|
+
const parsed = new URL(u);
|
|
706
|
+
return parsed.pathname + parsed.search;
|
|
707
|
+
}
|
|
708
|
+
catch {
|
|
709
|
+
return undefined;
|
|
710
|
+
}
|
|
711
|
+
};
|
|
712
|
+
// The form is on another host than the app: an identity provider (SSO). That changes both
|
|
713
|
+
// halves of the advice — which URL belongs in `auth.loginUrl`, and whether filling a form
|
|
714
|
+
// can work at all. Withholding it sends someone off to configure the one mechanism that
|
|
715
|
+
// cannot answer an MFA prompt, pointed at a URL that only exists for one redirect.
|
|
716
|
+
const idpOrigin = originOf(landed) !== originOf(config.baseUrl) ? originOf(landed) : null;
|
|
717
|
+
const ssoNote = idpOrigin
|
|
718
|
+
? `The form is on ${idpOrigin}, not on your app — an identity provider. Two consequences:\n` +
|
|
719
|
+
` · Its URL carries redirect parameters only your app can mint, so it is not a URL to ` +
|
|
720
|
+
`navigate to directly. Point "auth.loginUrl" at the app path you want instead — the app's ` +
|
|
721
|
+
`own redirect then hands you a usable form.\n` +
|
|
722
|
+
` · If that provider asks for anything a form fill cannot answer — MFA, a consent ` +
|
|
723
|
+
`screen, a device check — no selector list will get through it. Capture during a real ` +
|
|
724
|
+
`run instead (IAQA_CAPTURE=1 with "testCommand"), where your own suite's login runs.\n`
|
|
725
|
+
: '';
|
|
726
|
+
// Where the tool stops being able to work alone, and says so rather than suggesting a
|
|
727
|
+
// mechanism that cannot pass. `login` is the one step that needs a person: an agent
|
|
728
|
+
// driving this CLI cannot log in for them, so it is told to hand the step over by name.
|
|
729
|
+
const humanStep = `\nIf no form fill can pass this login — SSO with MFA, a consent screen, a magic link — ` +
|
|
730
|
+
`one human step covers it: \`ia-qa-heal login\` opens a browser, the person logs in once, ` +
|
|
731
|
+
`and map reuses that session. An agent cannot perform it: ask the human to run it.`;
|
|
573
732
|
const head = `Mapping "${target.name}": asked for ${wanted}, landed on ${landed}, which has a password ` +
|
|
574
733
|
`field — that is a login wall, not the page.\n` +
|
|
575
734
|
`Refusing to write a contract named "${target.name}" that describes a login form.\n`;
|
|
735
|
+
if (session) {
|
|
736
|
+
throw new LoginWallError(head +
|
|
737
|
+
ssoNote +
|
|
738
|
+
`The session at ${session.file} does not authenticate this app any more — expired, ` +
|
|
739
|
+
`rotated, or never covering this domain.\n` +
|
|
740
|
+
(session.source === 'login'
|
|
741
|
+
? `Re-run \`ia-qa-heal login\` to refresh it.`
|
|
742
|
+
: `Refresh whatever produces that file — for a Playwright suite that is usually its ` +
|
|
743
|
+
`\`globalSetup\`. Or run \`ia-qa-heal login\` to make one here.`) +
|
|
744
|
+
` Nothing else is affected: the contracts already on disk are untouched.`);
|
|
745
|
+
}
|
|
576
746
|
if (config.auth) {
|
|
577
|
-
throw new
|
|
747
|
+
throw new LoginWallError(head +
|
|
748
|
+
ssoNote +
|
|
578
749
|
`Login ran but did not stick. Check the values behind secrets "${config.auth.usernameSecret}" ` +
|
|
579
750
|
`and "${config.auth.passwordSecret}", and set "auth.successSelector" so a failed login is ` +
|
|
580
|
-
`caught at login time instead of here.`
|
|
751
|
+
`caught at login time instead of here.` +
|
|
752
|
+
humanStep);
|
|
581
753
|
}
|
|
582
|
-
const suggestion = await suggestAuthBlock(page);
|
|
583
|
-
throw new
|
|
754
|
+
const suggestion = await suggestAuthBlock(page, idpOrigin ? pathOf(wanted) : undefined);
|
|
755
|
+
throw new LoginWallError(head +
|
|
756
|
+
ssoNote +
|
|
584
757
|
`No "auth" is configured, so every page behind the login maps the login form instead.\n` +
|
|
585
758
|
(suggestion
|
|
586
759
|
? `This login form is readable — merge this into .ia-qa/config.json, then set APP_USERNAME ` +
|
|
587
760
|
`and APP_PASSWORD in your environment:\n\n${suggestion}\n\n` +
|
|
588
761
|
`Values stay in env/SSM. config.json only ever holds the reference.`
|
|
589
762
|
: `Add an "auth" block (loginUrl, usernameSelector, passwordSelector, submitSelector) and ` +
|
|
590
|
-
`the matching "secrets" entries — values stay in env/SSM, never in config.json.`)
|
|
763
|
+
`the matching "secrets" entries — values stay in env/SSM, never in config.json.`) +
|
|
764
|
+
humanStep);
|
|
591
765
|
}
|
|
592
766
|
async function login(page, config) {
|
|
593
767
|
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;
|
package/dist/config.js
CHANGED
|
@@ -33,14 +33,19 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.SHOTS_DIRNAME = exports.LAYOUT_DIRNAME = exports.BASELINE_DIRNAME = exports.MAPPING_DIRNAME = exports.CONFIG_DIR = void 0;
|
|
36
|
+
exports.SESSION_FILENAME = exports.SHOTS_DIRNAME = exports.RESOLVED_DIRNAME = exports.LAYOUT_DIRNAME = exports.BASELINE_DIRNAME = exports.MAPPING_DIRNAME = exports.CONFIG_DIR = void 0;
|
|
37
37
|
exports.stripBom = stripBom;
|
|
38
38
|
exports.setBaseDir = setBaseDir;
|
|
39
39
|
exports.baseDir = baseDir;
|
|
40
40
|
exports.configPath = configPath;
|
|
41
41
|
exports.mappingDir = mappingDir;
|
|
42
42
|
exports.baselineDir = baselineDir;
|
|
43
|
+
exports.resolvedDir = resolvedDir;
|
|
44
|
+
exports.baselineResolvedDir = baselineResolvedDir;
|
|
43
45
|
exports.shotsDir = shotsDir;
|
|
46
|
+
exports.sessionPath = sessionPath;
|
|
47
|
+
exports.sessionTarget = sessionTarget;
|
|
48
|
+
exports.resolveSession = resolveSession;
|
|
44
49
|
exports.mappingPath = mappingPath;
|
|
45
50
|
exports.layoutDir = layoutDir;
|
|
46
51
|
exports.baselineLayoutDir = baselineLayoutDir;
|
|
@@ -116,6 +121,26 @@ function baselineDir(cwd = baseDir()) {
|
|
|
116
121
|
return path.join(cwd, exports.CONFIG_DIR, exports.BASELINE_DIRNAME);
|
|
117
122
|
}
|
|
118
123
|
exports.LAYOUT_DIRNAME = '_layouts';
|
|
124
|
+
/**
|
|
125
|
+
* Bindings between a Page Object's literal selectors and the contract's elements,
|
|
126
|
+
* written by `map` when an inventory exists (`usage.json`) and promoted by `baseline`
|
|
127
|
+
* alongside the contracts they describe.
|
|
128
|
+
*
|
|
129
|
+
* A **directory**, not a `<page>.resolved.json` beside the contract: `baseline` and
|
|
130
|
+
* `diff` enumerate `*.json` in a directory as pages, so a sibling file would be diffed
|
|
131
|
+
* as a page named "checkout.resolved". `_layouts/` set the precedent — a leading
|
|
132
|
+
* underscore is already how this codebase spells "not a page".
|
|
133
|
+
*
|
|
134
|
+
* Never a field on the contract: `<page>.json` must stay byte-identical whether or not
|
|
135
|
+
* an inventory exists, the same rule that keeps `--screenshots` from moving a verdict.
|
|
136
|
+
*/
|
|
137
|
+
exports.RESOLVED_DIRNAME = '_resolved';
|
|
138
|
+
function resolvedDir(cwd = baseDir()) {
|
|
139
|
+
return path.join(cwd, exports.CONFIG_DIR, exports.MAPPING_DIRNAME, exports.RESOLVED_DIRNAME);
|
|
140
|
+
}
|
|
141
|
+
function baselineResolvedDir(cwd = baseDir()) {
|
|
142
|
+
return path.join(cwd, exports.CONFIG_DIR, exports.BASELINE_DIRNAME, exports.RESOLVED_DIRNAME);
|
|
143
|
+
}
|
|
119
144
|
/**
|
|
120
145
|
* Page screenshots taken by `map --screenshots`, purely so an HTML report can
|
|
121
146
|
* show what the page looked like. They are **artefacts, not contract**: nothing
|
|
@@ -126,6 +151,74 @@ exports.SHOTS_DIRNAME = '_shots';
|
|
|
126
151
|
function shotsDir(cwd = baseDir()) {
|
|
127
152
|
return path.join(cwd, exports.CONFIG_DIR, exports.MAPPING_DIRNAME, exports.SHOTS_DIRNAME);
|
|
128
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* A browser session saved by `ia-qa-heal login`, in Playwright `storageState` shape.
|
|
156
|
+
*
|
|
157
|
+
* This is the auth mechanism that models *nothing*: `auth` describes one shape of login
|
|
158
|
+
* form, so it only works on apps whose login is that shape — SSO with MFA, a consent
|
|
159
|
+
* screen, a magic link or a device check all defeat it, and no selector list can help.
|
|
160
|
+
* A saved session sidesteps the question entirely by reusing one a human established.
|
|
161
|
+
*
|
|
162
|
+
* It holds live cookies: whoever has this file is logged in as that user. It never
|
|
163
|
+
* leaves the machine (nothing here uploads it), `login` writes `.ia-qa/.gitignore` so a
|
|
164
|
+
* commit cannot carry it, and it is the one artefact in `.ia-qa/` that is a secret.
|
|
165
|
+
*/
|
|
166
|
+
exports.SESSION_FILENAME = 'session.json';
|
|
167
|
+
function sessionPath(cwd = baseDir()) {
|
|
168
|
+
return path.join(cwd, exports.CONFIG_DIR, exports.SESSION_FILENAME);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Which session file to *write* — `login`'s target. Same precedence as reading, minus
|
|
172
|
+
* the existence check: pointing `session` at a path is also a way of saying where you
|
|
173
|
+
* want it kept.
|
|
174
|
+
*/
|
|
175
|
+
function sessionTarget(config, explicit, cwd = baseDir()) {
|
|
176
|
+
if (explicit)
|
|
177
|
+
return { file: path.resolve(cwd, explicit), source: 'flag' };
|
|
178
|
+
const fromEnv = process.env.IAQA_SESSION;
|
|
179
|
+
if (fromEnv)
|
|
180
|
+
return { file: path.resolve(cwd, fromEnv), source: 'env' };
|
|
181
|
+
if (config.session)
|
|
182
|
+
return { file: path.resolve(cwd, config.session), source: 'config' };
|
|
183
|
+
return { file: sessionPath(cwd), source: 'login' };
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The session to *read*, or null when there is none to read.
|
|
187
|
+
*
|
|
188
|
+
* A session the user named — a flag, an env var, a config field — that cannot be used is
|
|
189
|
+
* a **hard error**, never a silent fall-through: ignoring it would map the login page
|
|
190
|
+
* under the name of their dashboard, which is the one failure this package treats as
|
|
191
|
+
* worse than stopping. The default location is different: absent simply means nobody has
|
|
192
|
+
* run `login`, which is the ordinary case.
|
|
193
|
+
*
|
|
194
|
+
* The shape check is deliberately shallow — `cookies` is enough to tell a storageState
|
|
195
|
+
* from a config file pasted by mistake, and the file is a secret: it is never read for
|
|
196
|
+
* anything else, never logged, never sent anywhere.
|
|
197
|
+
*/
|
|
198
|
+
function resolveSession(config, explicit, cwd = baseDir()) {
|
|
199
|
+
const choice = sessionTarget(config, explicit, cwd);
|
|
200
|
+
const named = choice.source === 'flag' ? '--session' : choice.source === 'env' ? 'IAQA_SESSION' : '"session" in config.json';
|
|
201
|
+
if (!fs.existsSync(choice.file)) {
|
|
202
|
+
if (choice.source === 'login')
|
|
203
|
+
return null;
|
|
204
|
+
throw new Error(`${named} points at ${choice.file}, which does not exist.\n` +
|
|
205
|
+
`A session that cannot be read is not a session: mapping would capture the login page ` +
|
|
206
|
+
`under your pages' names. Fix the path, or run \`ia-qa-heal login\` to make one.`);
|
|
207
|
+
}
|
|
208
|
+
try {
|
|
209
|
+
const parsed = JSON.parse(fs.readFileSync(choice.file, 'utf8'));
|
|
210
|
+
if (!parsed || !Array.isArray(parsed.cookies)) {
|
|
211
|
+
throw new Error(`no "cookies" array — this is not a Playwright storageState file`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const why = err instanceof Error ? err.message : String(err);
|
|
216
|
+
throw new Error(`${named} points at ${choice.file}, which cannot be used: ${why}.\n` +
|
|
217
|
+
`Expected a Playwright storageState — the file a \`globalSetup\` writes with ` +
|
|
218
|
+
`\`context.storageState({ path })\`, or the one \`ia-qa-heal login\` produces.`);
|
|
219
|
+
}
|
|
220
|
+
return choice;
|
|
221
|
+
}
|
|
129
222
|
function mappingPath(pageName, dir = mappingDir()) {
|
|
130
223
|
const safe = pageName.replace(/[^a-zA-Z0-9._-]/g, '-');
|
|
131
224
|
return path.join(dir, `${safe}.json`);
|