@ia-qa/self-healing 1.7.25 → 1.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Which pages the suite actually walked — the one observation nothing kept.
3
+ *
4
+ * `run` with capture on re-captures only the pages the suite exercised; the rest keep the
5
+ * baseline's `capturedAt` and are excluded from the verdict as `stale`. That distinction
6
+ * is computed on every run, printed as the live-coverage line, and then thrown away.
7
+ *
8
+ * It is the only evidence on disk that answers *"what does this suite test?"*. Everything
9
+ * else in `.ia-qa/` answers a weaker question: a contract in `mapping/` exists because
10
+ * somebody wrote a page into `config.pages` and ran `map`, which proves an intention, and
11
+ * `usage.json` proves a suite *mentions* a string. Neither is a test having visited a page,
12
+ * and reading either as coverage is how a confident, false number ships.
13
+ *
14
+ * So this record is written **only** by the capture-during-run path. The `map` fallback in
15
+ * `run` visits pages because they were configured, not because a test drove there; stamping
16
+ * its result here would be exactly the declaration-read-as-observation this file exists to
17
+ * prevent.
18
+ *
19
+ * It is underscore-prefixed on purpose: every consumer that enumerates contracts (including
20
+ * `healingLink.ts` in `@ia-qa/qa-discovery`) already filters `_`-prefixed files out, so the
21
+ * record is invisible to page listings without a line of change anywhere.
22
+ */
23
+ export declare const EXERCISED_FILENAME = "_exercised.json";
24
+ export declare const EXERCISED_SCHEMA = "ia-qa-exercised@1";
25
+ export interface ExercisedRecord {
26
+ schema: typeof EXERCISED_SCHEMA;
27
+ recordedAt: string;
28
+ /** Pages the suite loaded during this run. Observed, never declared. */
29
+ visited: string[];
30
+ /**
31
+ * Pages a contract is held for that this run never reached. Not a verdict — the suite may
32
+ * cover them through a project or tag that did not run here.
33
+ */
34
+ notVisited: string[];
35
+ /**
36
+ * The suite's exit code. A red suite still tells you which pages it reached, but the
37
+ * number travels with the record: a run that died on its third spec visited three pages
38
+ * and covers nothing.
39
+ */
40
+ suiteExitCode: number | null;
41
+ testCommand?: string;
42
+ commit?: string;
43
+ branch?: string;
44
+ }
45
+ export declare function exercisedPath(dir?: string): string;
46
+ /** Contract files in a mapping directory. `_`-prefixed entries are indexes, not pages. */
47
+ export declare function contractPageNames(dir?: string): string[];
48
+ export interface RecordExercisedInput {
49
+ /** Page names the capture merge produced — the suite's own account of where it went. */
50
+ visited: string[];
51
+ suiteExitCode: number | null;
52
+ testCommand?: string;
53
+ }
54
+ /**
55
+ * Write the record. Returns the path, or `null` when it could not be written.
56
+ *
57
+ * Never throws: this is metadata stamped beside a verdict that has already been decided,
58
+ * and a full disk must not turn a PASS into a crash — the same rule `history.ts` follows
59
+ * for the same reason.
60
+ */
61
+ export declare function saveExercised(input: RecordExercisedInput, dir?: string): string | null;
62
+ /**
63
+ * Read the record, or `null` when there is none.
64
+ *
65
+ * A missing record means **no measurement**, never zero coverage, and every reader owes
66
+ * that distinction to its user: "your suite visits no page" and "nobody has watched your
67
+ * suite run" are different sentences with different remedies.
68
+ */
69
+ export declare function loadExercised(dir?: string): ExercisedRecord | null;
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.EXERCISED_SCHEMA = exports.EXERCISED_FILENAME = void 0;
37
+ exports.exercisedPath = exercisedPath;
38
+ exports.contractPageNames = contractPageNames;
39
+ exports.saveExercised = saveExercised;
40
+ exports.loadExercised = loadExercised;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const config_1 = require("./config");
44
+ const history_1 = require("./history");
45
+ /**
46
+ * Which pages the suite actually walked — the one observation nothing kept.
47
+ *
48
+ * `run` with capture on re-captures only the pages the suite exercised; the rest keep the
49
+ * baseline's `capturedAt` and are excluded from the verdict as `stale`. That distinction
50
+ * is computed on every run, printed as the live-coverage line, and then thrown away.
51
+ *
52
+ * It is the only evidence on disk that answers *"what does this suite test?"*. Everything
53
+ * else in `.ia-qa/` answers a weaker question: a contract in `mapping/` exists because
54
+ * somebody wrote a page into `config.pages` and ran `map`, which proves an intention, and
55
+ * `usage.json` proves a suite *mentions* a string. Neither is a test having visited a page,
56
+ * and reading either as coverage is how a confident, false number ships.
57
+ *
58
+ * So this record is written **only** by the capture-during-run path. The `map` fallback in
59
+ * `run` visits pages because they were configured, not because a test drove there; stamping
60
+ * its result here would be exactly the declaration-read-as-observation this file exists to
61
+ * prevent.
62
+ *
63
+ * It is underscore-prefixed on purpose: every consumer that enumerates contracts (including
64
+ * `healingLink.ts` in `@ia-qa/qa-discovery`) already filters `_`-prefixed files out, so the
65
+ * record is invisible to page listings without a line of change anywhere.
66
+ */
67
+ exports.EXERCISED_FILENAME = '_exercised.json';
68
+ exports.EXERCISED_SCHEMA = 'ia-qa-exercised@1';
69
+ function exercisedPath(dir = (0, config_1.mappingDir)()) {
70
+ return path.join(dir, exports.EXERCISED_FILENAME);
71
+ }
72
+ /** Contract files in a mapping directory. `_`-prefixed entries are indexes, not pages. */
73
+ function contractPageNames(dir = (0, config_1.mappingDir)()) {
74
+ if (!fs.existsSync(dir))
75
+ return [];
76
+ try {
77
+ return fs
78
+ .readdirSync(dir)
79
+ .filter((e) => e.endsWith('.json') && !e.startsWith('_'))
80
+ .map((e) => e.slice(0, -'.json'.length))
81
+ .sort();
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ }
87
+ /**
88
+ * Write the record. Returns the path, or `null` when it could not be written.
89
+ *
90
+ * Never throws: this is metadata stamped beside a verdict that has already been decided,
91
+ * and a full disk must not turn a PASS into a crash — the same rule `history.ts` follows
92
+ * for the same reason.
93
+ */
94
+ function saveExercised(input, dir = (0, config_1.mappingDir)()) {
95
+ try {
96
+ const visited = Array.from(new Set(input.visited)).sort();
97
+ const seen = new Set(visited);
98
+ const record = {
99
+ schema: exports.EXERCISED_SCHEMA,
100
+ recordedAt: new Date().toISOString(),
101
+ visited,
102
+ notVisited: contractPageNames(dir).filter((p) => !seen.has(p)),
103
+ suiteExitCode: input.suiteExitCode,
104
+ ...(input.testCommand ? { testCommand: input.testCommand } : {}),
105
+ ...(0, history_1.gitStamp)(),
106
+ };
107
+ const file = exercisedPath(dir);
108
+ fs.mkdirSync(path.dirname(file), { recursive: true });
109
+ fs.writeFileSync(file, JSON.stringify(record, null, 2) + '\n', 'utf8');
110
+ return file;
111
+ }
112
+ catch {
113
+ return null;
114
+ }
115
+ }
116
+ /**
117
+ * Read the record, or `null` when there is none.
118
+ *
119
+ * A missing record means **no measurement**, never zero coverage, and every reader owes
120
+ * that distinction to its user: "your suite visits no page" and "nobody has watched your
121
+ * suite run" are different sentences with different remedies.
122
+ */
123
+ function loadExercised(dir = (0, config_1.mappingDir)()) {
124
+ const file = exercisedPath(dir);
125
+ if (!fs.existsSync(file))
126
+ return null;
127
+ try {
128
+ const raw = JSON.parse(fs.readFileSync(file, 'utf8'));
129
+ if (!raw || !Array.isArray(raw.visited))
130
+ return null;
131
+ if (!Array.isArray(raw.notVisited))
132
+ raw.notVisited = [];
133
+ return raw;
134
+ }
135
+ catch {
136
+ return null;
137
+ }
138
+ }
139
+ //# sourceMappingURL=exercised.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exercised.js","sourceRoot":"","sources":["../src/exercised.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,11 @@ export type { CrawlOptions } from './crawl';
18
18
  export type { PageNameResolution } from './pageName';
19
19
  export { scanText, ingestPaths, saveUsage, loadUsage, usageFiles, usagePath } from './ingest';
20
20
  export type { Usage, SelectorSite, SelectorShape } from './ingest';
21
+ export { loadExercised, exercisedPath, contractPageNames, EXERCISED_FILENAME } from './exercised';
22
+ export type { ExercisedRecord } from './exercised';
23
+ export { computeTestDepth, computePageDepth, collectUnattributable, readTestDepth } from './testDepth';
24
+ export { globToRegex } from './volatile';
25
+ export type { TestDepthReport, PageDepth, UnattributableSite } from './testDepth';
21
26
  export { mergeCaptures, unionElements, captureDir, CAPTURE_DIRNAME } from './captureMerge';
22
27
  export type { CaptureShard, CaptureShardPage, MergeResult } from './captureMerge';
23
28
  export { launchBrowser } from './launcher';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.layoutPath = exports.layoutDir = exports.resolveSecret = exports.loadConfig = exports.replaceQuoted = exports.collectFiles = exports.applyRewrites = exports.computeRewrites = exports.launchBrowser = exports.CAPTURE_DIRNAME = exports.captureDir = exports.unionElements = exports.mergeCaptures = exports.usagePath = exports.usageFiles = exports.loadUsage = exports.saveUsage = exports.ingestPaths = exports.scanText = exports.crawlApp = exports.sitemapsFromRobots = exports.isSitemapIndex = exports.extractLocs = exports.discoverFromSitemap = exports.UNSAFE_URL_RE = exports.mergePages = exports.toCandidate = exports.normalizedPath = exports.isSafeCandidateUrl = exports.resolvePageName = exports.pageNameFromUrl = exports.mapUrl = exports.markdownPath = exports.saveMarkdown = exports.renderPageContract = exports.saveMapping = exports.loadMapping = exports.extractInteractiveElements = exports.renderModelList = exports.defaultKeyEnv = exports.findProvider = exports.AI_PROVIDERS = exports.parseModelJson = exports.buildPrompt = exports.prefilter = exports.aiResolve = exports.createAiResolver = exports.llmResolverStub = exports.aiFill = exports.aiClick = void 0;
4
- exports.NAVIGATION_SVG_FILENAME = exports.NAVIGATION_FILENAME = exports.OVERVIEW_FILENAME = exports.navigationSvgPath = exports.navigationPath = exports.overviewPath = exports.writeOverview = exports.navigationGraph = exports.layoutGraph = exports.renderNavigationSvg = exports.renderNavigation = exports.renderOverview = exports.buildOverview = exports.minPagesForLayout = exports.stripLayoutFromPages = exports.extractLayout = exports.LAYOUT_DIRNAME = void 0;
3
+ exports.CAPTURE_DIRNAME = exports.captureDir = exports.unionElements = exports.mergeCaptures = exports.globToRegex = exports.readTestDepth = exports.collectUnattributable = exports.computePageDepth = exports.computeTestDepth = exports.EXERCISED_FILENAME = exports.contractPageNames = exports.exercisedPath = exports.loadExercised = exports.usagePath = exports.usageFiles = exports.loadUsage = exports.saveUsage = exports.ingestPaths = exports.scanText = exports.crawlApp = exports.sitemapsFromRobots = exports.isSitemapIndex = exports.extractLocs = exports.discoverFromSitemap = exports.UNSAFE_URL_RE = exports.mergePages = exports.toCandidate = exports.normalizedPath = exports.isSafeCandidateUrl = exports.resolvePageName = exports.pageNameFromUrl = exports.mapUrl = exports.markdownPath = exports.saveMarkdown = exports.renderPageContract = exports.saveMapping = exports.loadMapping = exports.extractInteractiveElements = exports.renderModelList = exports.defaultKeyEnv = exports.findProvider = exports.AI_PROVIDERS = exports.parseModelJson = exports.buildPrompt = exports.prefilter = exports.aiResolve = exports.createAiResolver = exports.llmResolverStub = exports.aiFill = exports.aiClick = void 0;
4
+ exports.NAVIGATION_SVG_FILENAME = exports.NAVIGATION_FILENAME = exports.OVERVIEW_FILENAME = exports.navigationSvgPath = exports.navigationPath = exports.overviewPath = exports.writeOverview = exports.navigationGraph = exports.layoutGraph = exports.renderNavigationSvg = exports.renderNavigation = exports.renderOverview = exports.buildOverview = exports.minPagesForLayout = exports.stripLayoutFromPages = exports.extractLayout = exports.LAYOUT_DIRNAME = exports.layoutPath = exports.layoutDir = exports.resolveSecret = exports.loadConfig = exports.replaceQuoted = exports.collectFiles = exports.applyRewrites = exports.computeRewrites = exports.launchBrowser = void 0;
5
5
  var healer_1 = require("./playwright/healer");
6
6
  Object.defineProperty(exports, "aiClick", { enumerable: true, get: function () { return healer_1.aiClick; } });
7
7
  Object.defineProperty(exports, "aiFill", { enumerable: true, get: function () { return healer_1.aiFill; } });
@@ -50,6 +50,23 @@ Object.defineProperty(exports, "saveUsage", { enumerable: true, get: function ()
50
50
  Object.defineProperty(exports, "loadUsage", { enumerable: true, get: function () { return ingest_1.loadUsage; } });
51
51
  Object.defineProperty(exports, "usageFiles", { enumerable: true, get: function () { return ingest_1.usageFiles; } });
52
52
  Object.defineProperty(exports, "usagePath", { enumerable: true, get: function () { return ingest_1.usagePath; } });
53
+ // The two halves `@ia-qa/qa-discovery` needs to build a coverage map, exported so it
54
+ // computes them with THIS implementation rather than a second one: the map and the healing
55
+ // summary must never be able to disagree about the same files on the same disk.
56
+ var exercised_1 = require("./exercised");
57
+ Object.defineProperty(exports, "loadExercised", { enumerable: true, get: function () { return exercised_1.loadExercised; } });
58
+ Object.defineProperty(exports, "exercisedPath", { enumerable: true, get: function () { return exercised_1.exercisedPath; } });
59
+ Object.defineProperty(exports, "contractPageNames", { enumerable: true, get: function () { return exercised_1.contractPageNames; } });
60
+ Object.defineProperty(exports, "EXERCISED_FILENAME", { enumerable: true, get: function () { return exercised_1.EXERCISED_FILENAME; } });
61
+ var testDepth_1 = require("./testDepth");
62
+ Object.defineProperty(exports, "computeTestDepth", { enumerable: true, get: function () { return testDepth_1.computeTestDepth; } });
63
+ Object.defineProperty(exports, "computePageDepth", { enumerable: true, get: function () { return testDepth_1.computePageDepth; } });
64
+ Object.defineProperty(exports, "collectUnattributable", { enumerable: true, get: function () { return testDepth_1.collectUnattributable; } });
65
+ Object.defineProperty(exports, "readTestDepth", { enumerable: true, get: function () { return testDepth_1.readTestDepth; } });
66
+ // One glob dialect across the ecosystem. `volatile`, `nameMask` and discovery's scope
67
+ // declaration must accept the same patterns, or a user learns three.
68
+ var volatile_1 = require("./volatile");
69
+ Object.defineProperty(exports, "globToRegex", { enumerable: true, get: function () { return volatile_1.globToRegex; } });
53
70
  var captureMerge_1 = require("./captureMerge");
54
71
  Object.defineProperty(exports, "mergeCaptures", { enumerable: true, get: function () { return captureMerge_1.mergeCaptures; } });
55
72
  Object.defineProperty(exports, "unionElements", { enumerable: true, get: function () { return captureMerge_1.unionElements; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAAyF;AAAhF,iGAAA,OAAO,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE3D,0CAAkF;AAAzE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAE1D,sCAAyF;AAAhF,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnE,6BAA6E;AAApE,iHAAA,0BAA0B,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,kGAAA,WAAW,OAAA;AAE7D,uCAA4E;AAAnE,8GAAA,kBAAkB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACvD,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAChC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,6CAM4B;AAL1B,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AAGf,+CAK6B;AAJ3B,8GAAA,mBAAmB,OAAA;AACnB,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,6GAAA,kBAAkB,OAAA;AAGpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAGjB,mCAA8F;AAArF,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE3E,+CAA2F;AAAlF,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,+GAAA,eAAe,OAAA;AAElE,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAGtB,yCAA0F;AAAjF,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpE,mCAA4F;AAAnF,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEzE,mCAAkF;AAAzE,uGAAA,aAAa,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAE/D,uCAcoB;AAblB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAAyF;AAAhF,iGAAA,OAAO,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE3D,0CAAkF;AAAzE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AAE1D,sCAAyF;AAAhF,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,yGAAA,eAAe,OAAA;AAEnE,6BAA6E;AAApE,iHAAA,0BAA0B,OAAA;AAAE,kGAAA,WAAW,OAAA;AAAE,kGAAA,WAAW,OAAA;AAE7D,uCAA4E;AAAnE,8GAAA,kBAAkB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AACvD,mCAAmD;AAA1C,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AAChC,uCAA6C;AAApC,2GAAA,eAAe,OAAA;AACxB,6CAM4B;AAL1B,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,uGAAA,aAAa,OAAA;AAGf,+CAK6B;AAJ3B,8GAAA,mBAAmB,OAAA;AACnB,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,6GAAA,kBAAkB,OAAA;AAGpB,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAGjB,mCAA8F;AAArF,kGAAA,QAAQ,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAE3E,qFAAqF;AACrF,2FAA2F;AAC3F,gFAAgF;AAChF,yCAAkG;AAAzF,0GAAA,aAAa,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAE5E,yCAAuG;AAA9F,6GAAA,gBAAgB,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAAE,0GAAA,aAAa,OAAA;AACjF,sFAAsF;AACtF,qEAAqE;AACrE,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAEpB,+CAA2F;AAAlF,6GAAA,aAAa,OAAA;AAAE,6GAAA,aAAa,OAAA;AAAE,0GAAA,UAAU,OAAA;AAAE,+GAAA,eAAe,OAAA;AAElE,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AAGtB,yCAA0F;AAAjF,4GAAA,eAAe,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpE,mCAA4F;AAAnF,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEzE,mCAAkF;AAAzE,uGAAA,aAAa,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAE/D,uCAcoB;AAblB,yGAAA,aAAa,OAAA;AACb,0GAAA,cAAc,OAAA;AACd,4GAAA,gBAAgB,OAAA;AAChB,+GAAA,mBAAmB,OAAA;AACnB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AACf,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AACZ,0GAAA,cAAc,OAAA;AACd,6GAAA,iBAAiB,OAAA;AACjB,6GAAA,iBAAiB,OAAA;AACjB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA"}
@@ -0,0 +1,88 @@
1
+ import type { PageMapping } from './aom';
2
+ import type { Usage } from './ingest';
3
+ import type { PageResolution } from './resolution';
4
+ /**
5
+ * How much of a page's contract the suite actually names.
6
+ *
7
+ * Reach — *did a test ever load this page* — is `exercised.ts`. This is the other axis:
8
+ * inside a page, of the elements the contract holds, how many does the suite designate at
9
+ * all? A page can be visited by twenty specs that only click one button.
10
+ *
11
+ * Computed from files this package already writes, so it costs nothing and needs no run:
12
+ * `mapping/*.json` for the denominator, `usage.json` for what the sources name, and
13
+ * `mapping/_resolved/` to bridge the two when a suite is written in CSS — a Page Object
14
+ * holding `.btn-primary` and a contract holding `#pay-now` describe the same button, and
15
+ * only a browser could ever have said so. That is what a `bound` binding records.
16
+ *
17
+ * **Two limits ship with every number here, and neither is a footnote.**
18
+ *
19
+ * *Naming is not asserting.* A test that clicks a button names it without checking
20
+ * anything. Nothing on disk distinguishes the two, so this file never says "tested" — it
21
+ * says "named", and every renderer must keep that word.
22
+ *
23
+ * *The denominator moves with exploration.* A contract captured without `--deep` holds the
24
+ * loaded state only, so the same suite scores higher against it than against the real page.
25
+ * `exploredDepth` travels with the page for exactly this reason.
26
+ */
27
+ export interface PageDepth {
28
+ page: string;
29
+ /** Interactive elements the contract holds. */
30
+ elements: number;
31
+ /** Of those, how many at least one test names. */
32
+ named: number;
33
+ /** Test files that name something on this page, sorted. */
34
+ files: string[];
35
+ /** Clicks deep the contract was explored. Absent means the loaded state only. */
36
+ exploredDepth?: number;
37
+ }
38
+ /**
39
+ * A name-anchored locator that cannot be credited to any page.
40
+ *
41
+ * `getByText`, `cy.contains`, `getByTitle`, `getByAltText` name a **string, not an
42
+ * element** — the contract holds interactive elements only, so a match proves nothing about
43
+ * which element the test meant. It is the same reasoning that forbids `fix` from rewriting
44
+ * them and `audit` from judging them, and the three must stay consistent.
45
+ *
46
+ * It is a reported number rather than a silent exclusion because a suite written entirely
47
+ * this way would otherwise score near-zero depth and read as untested. The count says *why*
48
+ * the depth is unmeasurable, which is a different problem with a different fix.
49
+ */
50
+ export interface UnattributableSite {
51
+ text: string;
52
+ file: string;
53
+ line: number;
54
+ shape: string;
55
+ }
56
+ export interface TestDepthReport {
57
+ /**
58
+ * False when there is no inventory to measure against. Every reader must render this as
59
+ * *not measured* and never as zero — `ingest` may simply never have run.
60
+ */
61
+ measurable: boolean;
62
+ pages: PageDepth[];
63
+ totals: {
64
+ elements: number;
65
+ named: number;
66
+ pages: number;
67
+ };
68
+ unattributable: UnattributableSite[];
69
+ /** Pages whose contract records no exploration — their denominator is the loaded state. */
70
+ shallowPages: number;
71
+ }
72
+ export declare function computePageDepth(mapping: PageMapping, usage: Usage | null, resolution: PageResolution | null): PageDepth;
73
+ /**
74
+ * Which literals in the inventory cannot be attributed to any element, deduplicated by
75
+ * source position — one line of a test file is one finding, however many pages it fails to
76
+ * match.
77
+ */
78
+ export declare function collectUnattributable(usage: Usage | null): UnattributableSite[];
79
+ export declare function computeTestDepth(mappings: PageMapping[], usage: Usage | null, resolutions: Map<string, PageResolution>): TestDepthReport;
80
+ /**
81
+ * The same computation, reading `.ia-qa/` from disk.
82
+ *
83
+ * Kept apart from `computeTestDepth` so the rules above stay testable without a filesystem,
84
+ * and exported so `@ia-qa/qa-discovery` computes depth with **this** implementation rather
85
+ * than a second one — the coverage map and the healing summary must never be able to
86
+ * disagree about the same two files.
87
+ */
88
+ export declare function readTestDepth(dir?: string, resolved?: string): TestDepthReport;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.computePageDepth = computePageDepth;
37
+ exports.collectUnattributable = collectUnattributable;
38
+ exports.computeTestDepth = computeTestDepth;
39
+ exports.readTestDepth = readTestDepth;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const config_1 = require("./config");
43
+ const ingest_1 = require("./ingest");
44
+ const resolution_1 = require("./resolution");
45
+ const nameLocators_1 = require("./nameLocators");
46
+ const exercised_1 = require("./exercised");
47
+ /** Does this name-anchored site designate an element of this role? */
48
+ function siteMatchesRole(site, role) {
49
+ const roles = (0, nameLocators_1.candidateRoles)(site);
50
+ return roles !== null && roles.includes(role);
51
+ }
52
+ /**
53
+ * The contract selectors a test literal provably reaches, from one page's resolution.
54
+ *
55
+ * `bound` only. An `anchored` binding names an identity selector for an element the contract
56
+ * does **not** hold — it is a repair target, not evidence that a contracted element is
57
+ * covered — and `ambiguous` is a coin flip the suite created. Counting either as coverage
58
+ * would inflate the one number this file exists to state honestly.
59
+ */
60
+ function boundSelectors(resolution) {
61
+ const out = new Set();
62
+ if (!resolution)
63
+ return out;
64
+ for (const binding of Object.values(resolution.bindings)) {
65
+ if (binding.status === 'bound' && binding.selector)
66
+ out.add(binding.selector);
67
+ }
68
+ return out;
69
+ }
70
+ function computePageDepth(mapping, usage, resolution) {
71
+ const bound = boundSelectors(resolution);
72
+ const files = new Set();
73
+ let named = 0;
74
+ for (const el of mapping.elements ?? []) {
75
+ let hit = false;
76
+ // A test writing the contract's own selector, and a test writing a different string
77
+ // that a browser proved reaches this element. The second is the common case in a
78
+ // legacy Page Object suite, and the whole reason `_resolved/` exists.
79
+ const literalSites = usage?.selectors?.[el.selector];
80
+ if (literalSites?.length) {
81
+ hit = true;
82
+ for (const s of literalSites)
83
+ files.add(s.file);
84
+ }
85
+ if (bound.has(el.selector))
86
+ hit = true;
87
+ // Name-anchored locators, credited only when the call's role can be this element's.
88
+ // `getByRole('button', {name:'Save'})` does not cover a link also called Save.
89
+ const nameSites = usage?.names?.[(0, nameLocators_1.normalizeName)(el.name)];
90
+ if (nameSites?.length) {
91
+ for (const site of nameSites) {
92
+ if (!(0, nameLocators_1.judgeable)(site) || !siteMatchesRole(site, el.role))
93
+ continue;
94
+ hit = true;
95
+ files.add(site.file);
96
+ }
97
+ }
98
+ if (hit)
99
+ named += 1;
100
+ }
101
+ return {
102
+ page: mapping.page,
103
+ elements: (mapping.elements ?? []).length,
104
+ named,
105
+ files: Array.from(files).sort(),
106
+ ...(mapping.exploredDepth != null ? { exploredDepth: mapping.exploredDepth } : {}),
107
+ };
108
+ }
109
+ /**
110
+ * Which literals in the inventory cannot be attributed to any element, deduplicated by
111
+ * source position — one line of a test file is one finding, however many pages it fails to
112
+ * match.
113
+ */
114
+ function collectUnattributable(usage) {
115
+ if (!usage?.names)
116
+ return [];
117
+ const seen = new Set();
118
+ const out = [];
119
+ for (const sites of Object.values(usage.names)) {
120
+ for (const site of sites) {
121
+ if ((0, nameLocators_1.judgeable)(site))
122
+ continue;
123
+ const key = `${site.file}:${site.line}`;
124
+ if (seen.has(key))
125
+ continue;
126
+ seen.add(key);
127
+ out.push({ text: site.text, file: site.file, line: site.line, shape: site.shape });
128
+ }
129
+ }
130
+ return out.sort((a, b) => (a.file === b.file ? a.line - b.line : a.file.localeCompare(b.file)));
131
+ }
132
+ function computeTestDepth(mappings, usage, resolutions) {
133
+ const measurable = !!usage && (Object.keys(usage.selectors ?? {}).length > 0 || Object.keys(usage.names ?? {}).length > 0);
134
+ const pages = mappings
135
+ .map((m) => computePageDepth(m, usage, resolutions.get(m.page) ?? null))
136
+ .sort((a, b) => a.page.localeCompare(b.page));
137
+ return {
138
+ measurable,
139
+ pages,
140
+ totals: {
141
+ pages: pages.length,
142
+ elements: pages.reduce((s, p) => s + p.elements, 0),
143
+ named: pages.reduce((s, p) => s + p.named, 0),
144
+ },
145
+ unattributable: collectUnattributable(usage),
146
+ shallowPages: pages.filter((p) => p.exploredDepth == null).length,
147
+ };
148
+ }
149
+ /**
150
+ * The same computation, reading `.ia-qa/` from disk.
151
+ *
152
+ * Kept apart from `computeTestDepth` so the rules above stay testable without a filesystem,
153
+ * and exported so `@ia-qa/qa-discovery` computes depth with **this** implementation rather
154
+ * than a second one — the coverage map and the healing summary must never be able to
155
+ * disagree about the same two files.
156
+ */
157
+ function readTestDepth(dir = (0, config_1.mappingDir)(), resolved = (0, config_1.resolvedDir)()) {
158
+ const mappings = [];
159
+ for (const page of (0, exercised_1.contractPageNames)(dir)) {
160
+ try {
161
+ mappings.push(JSON.parse(fs.readFileSync(path.join(dir, `${page}.json`), 'utf8')));
162
+ }
163
+ catch {
164
+ // An unreadable contract is one page missing from the denominator, never a crash:
165
+ // the same restraint `map` applies per page. It is reported by nothing here because
166
+ // every other verb that reads the same directory already reports it.
167
+ }
168
+ }
169
+ const resolutions = new Map();
170
+ for (const r of (0, resolution_1.loadAllResolutions)(resolved))
171
+ resolutions.set(r.page, r);
172
+ return computeTestDepth(mappings, (0, ingest_1.loadUsage)(), resolutions);
173
+ }
174
+ //# sourceMappingURL=testDepth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testDepth.js","sourceRoot":"","sources":["../src/testDepth.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ia-qa/self-healing",
3
- "version": "1.7.25",
3
+ "version": "1.8.1",
4
4
  "description": "Your Playwright, Cypress or Selenium tests break when a selector moves — this finds the element again and rewrites the test. Deterministic: no LLM decides whether your build passes. Runs entirely on your machine, with a local MCP server for agents.",
5
5
  "keywords": [
6
6
  "self-healing",