@setsquare/review-sdk 0.0.1 → 0.1.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/NOTICE +3 -2
- package/README.md +287 -3
- package/dist/autoscan.d.ts +23 -1
- package/dist/autoscan.d.ts.map +1 -1
- package/dist/autoscan.js +220 -15
- package/dist/autoscan.js.map +1 -1
- package/dist/brand.d.ts +51 -2
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +560 -5
- package/dist/brand.js.map +1 -1
- package/dist/checks/context-change.d.ts +96 -0
- package/dist/checks/context-change.d.ts.map +1 -0
- package/dist/checks/context-change.js +655 -0
- package/dist/checks/context-change.js.map +1 -0
- package/dist/checks/focus.d.ts +154 -0
- package/dist/checks/focus.d.ts.map +1 -0
- package/dist/checks/focus.js +1123 -0
- package/dist/checks/focus.js.map +1 -0
- package/dist/checks/heuristics.d.ts +117 -0
- package/dist/checks/heuristics.d.ts.map +1 -0
- package/dist/checks/heuristics.js +961 -0
- package/dist/checks/heuristics.js.map +1 -0
- package/dist/checks/keyboard.d.ts +106 -0
- package/dist/checks/keyboard.d.ts.map +1 -0
- package/dist/checks/keyboard.js +452 -0
- package/dist/checks/keyboard.js.map +1 -0
- package/dist/checks/reflow.d.ts +75 -0
- package/dist/checks/reflow.d.ts.map +1 -0
- package/dist/checks/reflow.js +285 -0
- package/dist/checks/reflow.js.map +1 -0
- package/dist/checks/rule-pack.d.ts +1 -1
- package/dist/checks/rule-pack.d.ts.map +1 -1
- package/dist/checks/rule-pack.js +350 -45
- package/dist/checks/rule-pack.js.map +1 -1
- package/dist/checks/shortcuts.d.ts +71 -0
- package/dist/checks/shortcuts.d.ts.map +1 -0
- package/dist/checks/shortcuts.js +196 -0
- package/dist/checks/shortcuts.js.map +1 -0
- package/dist/checks/versions.d.ts.map +1 -1
- package/dist/checks/versions.js +33 -1
- package/dist/checks/versions.js.map +1 -1
- package/dist/contract.d.ts +32 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/covers.d.ts +56 -0
- package/dist/covers.d.ts.map +1 -0
- package/dist/covers.js +135 -0
- package/dist/covers.js.map +1 -0
- package/dist/dedupe.d.ts +23 -0
- package/dist/dedupe.d.ts.map +1 -1
- package/dist/dedupe.js +96 -2
- package/dist/dedupe.js.map +1 -1
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +144 -0
- package/dist/document.js.map +1 -1
- package/dist/envelope.d.ts +8 -0
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +106 -16
- package/dist/envelope.js.map +1 -1
- package/dist/fixture.d.ts.map +1 -1
- package/dist/fixture.js +33 -4
- package/dist/fixture.js.map +1 -1
- package/dist/html-report.d.ts +24 -7
- package/dist/html-report.d.ts.map +1 -1
- package/dist/html-report.js +608 -136
- package/dist/html-report.js.map +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/insights.d.ts.map +1 -1
- package/dist/insights.js +9 -12
- package/dist/insights.js.map +1 -1
- package/dist/links.d.ts +43 -0
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +43 -0
- package/dist/links.js.map +1 -1
- package/dist/observe.d.ts +8 -0
- package/dist/observe.d.ts.map +1 -1
- package/dist/observe.js +45 -1
- package/dist/observe.js.map +1 -1
- package/dist/options.d.ts +53 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +3 -0
- package/dist/options.js.map +1 -1
- package/dist/reading-level.d.ts +22 -1
- package/dist/reading-level.d.ts.map +1 -1
- package/dist/reading-level.js +122 -19
- package/dist/reading-level.js.map +1 -1
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +31 -15
- package/dist/reporter.js.map +1 -1
- package/dist/scan.d.ts +36 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +16 -2
- package/dist/scan.js.map +1 -1
- package/dist/screens.d.ts +55 -4
- package/dist/screens.d.ts.map +1 -1
- package/dist/screens.js +243 -43
- package/dist/screens.js.map +1 -1
- package/dist/settle.d.ts +35 -0
- package/dist/settle.d.ts.map +1 -1
- package/dist/settle.js +43 -2
- package/dist/settle.js.map +1 -1
- package/dist/summary.d.ts +35 -0
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js +248 -28
- package/dist/summary.js.map +1 -1
- package/dist/unscannable-reasons.d.ts +30 -0
- package/dist/unscannable-reasons.d.ts.map +1 -0
- package/dist/unscannable-reasons.js +53 -0
- package/dist/unscannable-reasons.js.map +1 -0
- package/dist/viewports.d.ts +105 -0
- package/dist/viewports.d.ts.map +1 -0
- package/dist/viewports.js +134 -0
- package/dist/viewports.js.map +1 -0
- package/package.json +5 -4
package/dist/dedupe.js
CHANGED
|
@@ -19,10 +19,39 @@
|
|
|
19
19
|
* `/items/:id/edit`), so it collapses exactly what should collapse. The surface
|
|
20
20
|
* name then comes from whichever scan WINS, which is how an explicit label ends
|
|
21
21
|
* up on the row instead of competing with an inferred one for a place in the list.
|
|
22
|
+
*
|
|
23
|
+
* ## The viewport joined the tuple on 2026-09-12, and it had to
|
|
24
|
+
*
|
|
25
|
+
* It was missing, and the consequence was not theoretical: adding a tablet and
|
|
26
|
+
* a mobile Playwright project to this repository's own marketing site produced
|
|
27
|
+
* three scans of every surface and this function collapsed them to one. Ties
|
|
28
|
+
* break LAST-wins, so the last project configured won every bucket and the
|
|
29
|
+
* entire grid became mobile evidence — with the desktop and tablet scans
|
|
30
|
+
* silently dropped and the report showing no sign that anything had been lost.
|
|
31
|
+
* A run that looked at three widths reported one, and the two it discarded were
|
|
32
|
+
* the two the reader would have assumed were there.
|
|
33
|
+
*
|
|
34
|
+
* The argument is the one already made above for the theme: collapsing two
|
|
35
|
+
* themes reports a themed surface as clean when only one of its themes was
|
|
36
|
+
* looked at, and a viewport is the same shape of claim. A rule only ever sees
|
|
37
|
+
* the viewport it ran in — a navigation that collapses into a menu below a
|
|
38
|
+
* breakpoint is a different DOM, not a narrower one — so a scan at 1280 has no
|
|
39
|
+
* opinion whatsoever about the same page at 390.
|
|
40
|
+
*
|
|
41
|
+
* A single-viewport run is unaffected: every scan carries the same value, so
|
|
42
|
+
* every key is unchanged. It costs the common case nothing and it is the
|
|
43
|
+
* difference between viewport evidence existing and viewport evidence being
|
|
44
|
+
* thrown away.
|
|
22
45
|
*/
|
|
23
46
|
export function contextKey(scan) {
|
|
24
|
-
const { surface, urlPattern, theme, persona, state } = scan.context;
|
|
25
|
-
return [
|
|
47
|
+
const { surface, urlPattern, theme, persona, state, viewport } = scan.context;
|
|
48
|
+
return [
|
|
49
|
+
urlPattern ?? surface,
|
|
50
|
+
theme ?? '',
|
|
51
|
+
persona ?? '',
|
|
52
|
+
state ?? '',
|
|
53
|
+
viewport ? `${viewport.width}x${viewport.height}` : '',
|
|
54
|
+
].join('\u0000');
|
|
26
55
|
}
|
|
27
56
|
/**
|
|
28
57
|
* How good a scan is as evidence for its context, higher being better.
|
|
@@ -60,9 +89,11 @@ function score(input) {
|
|
|
60
89
|
*/
|
|
61
90
|
export function dedupeScans(inputs) {
|
|
62
91
|
const best = new Map();
|
|
92
|
+
const byKey = new Map();
|
|
63
93
|
for (const input of inputs) {
|
|
64
94
|
const key = contextKey(input.scan);
|
|
65
95
|
const incumbent = best.get(key);
|
|
96
|
+
byKey.set(key, [...(byKey.get(key) ?? []), input]);
|
|
66
97
|
// >= rather than >: on equal evidence the LATER scan wins.
|
|
67
98
|
//
|
|
68
99
|
// Later means more settled. A page whose content arrives after its first
|
|
@@ -73,9 +104,72 @@ export function dedupeScans(inputs) {
|
|
|
73
104
|
if (!incumbent || score(input) >= score(incumbent))
|
|
74
105
|
best.set(key, input);
|
|
75
106
|
}
|
|
107
|
+
for (const [key, winner] of best) {
|
|
108
|
+
carryDrivenChecks(winner.scan, byKey.get(key) ?? []);
|
|
109
|
+
}
|
|
76
110
|
const kept = [...best.values()].sort((a, b) => a.index - b.index).map((input) => input.scan);
|
|
77
111
|
return { kept, dropped: inputs.length - kept.length };
|
|
78
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Move Setsquare's DRIVEN checks from the losing scans of a context onto the
|
|
115
|
+
* winner, instead of dropping them with the row that carried them.
|
|
116
|
+
*
|
|
117
|
+
* Dedupe picks the best AXE evidence for a context, and it should: two axe runs
|
|
118
|
+
* of one surface are the same question asked twice. The driven checks are not.
|
|
119
|
+
* They only ever run at TEARDOWN — focusing, pressing Tab, resizing are unsafe
|
|
120
|
+
* while a test is still asserting — and a teardown scan loses dedupe to an
|
|
121
|
+
* explicit `setsquare.scan()` every time, because a customer naming a surface
|
|
122
|
+
* outranks us inferring one. So on any suite that calls `setsquare.scan()`
|
|
123
|
+
* — the recommended way to reach a state we could not infer — every driven
|
|
124
|
+
* check was gathered and then thrown away.
|
|
125
|
+
*
|
|
126
|
+
* Measured on this repository's own marketing site: fifteen surfaces, ninety-one
|
|
127
|
+
* passing specs, and 1.4.10, 2.1.2, 2.4.7, 2.4.11, 3.2.1, 3.2.2 and 2.1.4 all
|
|
128
|
+
* reporting "no automated result" while the checks for every one of them had
|
|
129
|
+
* run and passed.
|
|
130
|
+
*
|
|
131
|
+
* These are facts about the surface rather than about a particular scan of it,
|
|
132
|
+
* so carrying them across is not a fudge: whichever row ends up representing
|
|
133
|
+
* the context, that is where they belong. Matched on rule id so a winner that
|
|
134
|
+
* already has them — a teardown scan that won on its own merits — gains nothing.
|
|
135
|
+
*/
|
|
136
|
+
function carryDrivenChecks(winner, all) {
|
|
137
|
+
const present = new Set([
|
|
138
|
+
...winner.findings.map((row) => row.ruleId),
|
|
139
|
+
...winner.passes.map((row) => row.ruleId),
|
|
140
|
+
...(winner.inapplicable ?? []).map((row) => row.ruleId),
|
|
141
|
+
]);
|
|
142
|
+
for (const { scan } of all) {
|
|
143
|
+
if (scan === winner)
|
|
144
|
+
continue;
|
|
145
|
+
for (const finding of scan.findings) {
|
|
146
|
+
if (!isDrivenCheck(finding) || present.has(finding.ruleId))
|
|
147
|
+
continue;
|
|
148
|
+
present.add(finding.ruleId);
|
|
149
|
+
winner.findings.push(finding);
|
|
150
|
+
}
|
|
151
|
+
for (const pass of scan.passes) {
|
|
152
|
+
if (!isDrivenCheck(pass) || present.has(pass.ruleId))
|
|
153
|
+
continue;
|
|
154
|
+
present.add(pass.ruleId);
|
|
155
|
+
winner.passes.push(pass);
|
|
156
|
+
}
|
|
157
|
+
for (const row of scan.inapplicable ?? []) {
|
|
158
|
+
if (!isDrivenCheck(row) || present.has(row.ruleId))
|
|
159
|
+
continue;
|
|
160
|
+
present.add(row.ruleId);
|
|
161
|
+
winner.inapplicable = [...(winner.inapplicable ?? []), row];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Setsquare's own rule ids all carry this prefix. Matching on the prefix rather
|
|
167
|
+
* than on a list of ids is deliberate: a new check must not have to be added
|
|
168
|
+
* here to be carried, because the failure of forgetting is silent.
|
|
169
|
+
*/
|
|
170
|
+
function isDrivenCheck({ ruleId }) {
|
|
171
|
+
return ruleId.startsWith('setsquare-');
|
|
172
|
+
}
|
|
79
173
|
/**
|
|
80
174
|
* Projects that exist to prepare the suite rather than to test it.
|
|
81
175
|
*
|
package/dist/dedupe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"AA2BA
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../src/dedupe.ts"],"names":[],"mappings":"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"}
|
package/dist/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAiCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CA2N1E"}
|
package/dist/document.js
CHANGED
|
@@ -63,6 +63,120 @@ export async function readDocumentFacts(page) {
|
|
|
63
63
|
return false;
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
|
+
/*
|
|
67
|
+
* Navigation order and link names, for the cross-surface criteria.
|
|
68
|
+
*
|
|
69
|
+
* 3.2.3, 3.2.4 and 3.2.6 are statements about a SET of pages and no
|
|
70
|
+
* single-page scanner can ever check them. Read here, in the round trip
|
|
71
|
+
* that already runs for every scan, rather than as a second pass: the
|
|
72
|
+
* comparison happens later in the projection, and this is only the
|
|
73
|
+
* material for it.
|
|
74
|
+
*
|
|
75
|
+
* Targets are paths, stripped of query and fragment before they leave the
|
|
76
|
+
* page. A reset token lives in a query string and a navigation
|
|
77
|
+
* comparison has no use for one, so the value never enters a record at
|
|
78
|
+
* all — belt and braces with the contract, which strips it again.
|
|
79
|
+
*/
|
|
80
|
+
const pathOf = (anchor) => {
|
|
81
|
+
const raw = anchor.getAttribute('href');
|
|
82
|
+
if (!raw || raw.startsWith('#') || raw.startsWith('javascript:'))
|
|
83
|
+
return undefined;
|
|
84
|
+
try {
|
|
85
|
+
const url = new URL(raw, location.href);
|
|
86
|
+
// Off-origin links are ordinary in a footer and are not this page's
|
|
87
|
+
// navigation in any sense a consistency comparison cares about.
|
|
88
|
+
if (url.origin !== location.origin)
|
|
89
|
+
return `external:${url.hostname}`;
|
|
90
|
+
return url.pathname;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const nameOf = (el) => {
|
|
97
|
+
const label = el.getAttribute('aria-label');
|
|
98
|
+
if (label && label.trim())
|
|
99
|
+
return label.trim();
|
|
100
|
+
const text = el.innerText ?? el.textContent ?? '';
|
|
101
|
+
return text.replace(/\s+/g, ' ').trim();
|
|
102
|
+
};
|
|
103
|
+
const navs = Array.from(document.querySelectorAll('nav, [role="navigation"]')).slice(0, 5);
|
|
104
|
+
const navigation = [];
|
|
105
|
+
navs.forEach((nav, index) => {
|
|
106
|
+
const items = [];
|
|
107
|
+
for (const anchor of Array.from(nav.querySelectorAll('a[href]')).slice(0, 40)) {
|
|
108
|
+
const path = pathOf(anchor);
|
|
109
|
+
if (path)
|
|
110
|
+
items.push(path);
|
|
111
|
+
}
|
|
112
|
+
if (items.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
// Named by its accessible name where it has one; a page with two
|
|
115
|
+
// unnamed <nav>s is ordinary, so the index keeps them apart.
|
|
116
|
+
const landmark = nav.getAttribute('aria-label')?.trim() || `nav-${index + 1}`;
|
|
117
|
+
navigation.push({ landmark, items });
|
|
118
|
+
});
|
|
119
|
+
if (navigation.length > 0)
|
|
120
|
+
result.navigation = navigation;
|
|
121
|
+
/*
|
|
122
|
+
* Only links inside a REPEATED REGION, and this narrowing is the
|
|
123
|
+
* difference between a usable rule and a noise generator.
|
|
124
|
+
*
|
|
125
|
+
* 3.2.4 is about components with the same functionality within a set of
|
|
126
|
+
* pages: a navigation item, a footer link, a header action. An inline
|
|
127
|
+
* prose link is not a repeated component, and naming one "its twin" in
|
|
128
|
+
* one sentence and "Consistency one" in another is ordinary writing, not
|
|
129
|
+
* an inconsistency. Collecting every anchor produced ten disagreements on
|
|
130
|
+
* the fixture site of which two were real — the rest were prose.
|
|
131
|
+
*/
|
|
132
|
+
const REPEATED = 'nav, [role="navigation"], header, [role="banner"], footer, [role="contentinfo"]';
|
|
133
|
+
const regions = Array.from(document.querySelectorAll(REPEATED));
|
|
134
|
+
const names = new Map();
|
|
135
|
+
for (const anchor of regions.flatMap((region) => Array.from(region.querySelectorAll('a[href]')))) {
|
|
136
|
+
if (names.size >= 50)
|
|
137
|
+
break;
|
|
138
|
+
const path = pathOf(anchor);
|
|
139
|
+
if (!path)
|
|
140
|
+
continue;
|
|
141
|
+
const name = nameOf(anchor);
|
|
142
|
+
// First occurrence wins. A page that links the same place twice with
|
|
143
|
+
// two names is its own problem and not 3.2.4's, which is about the
|
|
144
|
+
// SAME target being named differently on DIFFERENT pages.
|
|
145
|
+
if (!name || names.has(path))
|
|
146
|
+
continue;
|
|
147
|
+
names.set(path, name);
|
|
148
|
+
}
|
|
149
|
+
if (names.size > 0) {
|
|
150
|
+
result.linkNames = [...names].map(([target, name]) => ({ target, name }));
|
|
151
|
+
}
|
|
152
|
+
/*
|
|
153
|
+
* A search control, for 2.4.5 Multiple Ways. Structural rather than
|
|
154
|
+
* text-matching, for the same reason the skip-link probe is: looking for
|
|
155
|
+
* the word "search" is English-only and would report every localised
|
|
156
|
+
* site as having none.
|
|
157
|
+
*/
|
|
158
|
+
result.hasSearch =
|
|
159
|
+
document.querySelector('input[type="search"], [role="search"], form[role="search"], [aria-label*="earch"]') !== null;
|
|
160
|
+
/*
|
|
161
|
+
* A table of contents, for 2.4.5 Multiple Ways (G64).
|
|
162
|
+
*
|
|
163
|
+
* Structural, like the search probe and for the same reason: a label
|
|
164
|
+
* reading "contents" is English, and matching on it would report every
|
|
165
|
+
* localised site as having none. What a table of contents IS, in markup,
|
|
166
|
+
* is a run of links into sections of the current document — three or
|
|
167
|
+
* more, because one or two in-page anchors is a footnote.
|
|
168
|
+
*
|
|
169
|
+
* Deliberately NOT satisfied by the primary navigation, which counts as
|
|
170
|
+
* its own mechanism: same-document targets are the whole test, so a nav
|
|
171
|
+
* of links to other pages cannot qualify here. Counting one landmark
|
|
172
|
+
* twice would let a site with a single way in read as having two.
|
|
173
|
+
*/
|
|
174
|
+
const sectionLinks = Array.from(document.querySelectorAll('a[href^="#"]')).filter((link) => {
|
|
175
|
+
const href = link.getAttribute('href') ?? '';
|
|
176
|
+
// `#` and `#top` are "back to the top", not a section of content.
|
|
177
|
+
return href.length > 1 && href !== '#top';
|
|
178
|
+
});
|
|
179
|
+
result.hasToc = sectionLinks.length >= 3;
|
|
66
180
|
return result;
|
|
67
181
|
});
|
|
68
182
|
}
|
|
@@ -87,6 +201,36 @@ export async function readDocumentFacts(page) {
|
|
|
87
201
|
}
|
|
88
202
|
if (raw.hasSkipLink !== undefined)
|
|
89
203
|
document_.hasSkipLink = raw.hasSkipLink;
|
|
204
|
+
if (raw.hasSearch !== undefined)
|
|
205
|
+
document_.hasSearch = raw.hasSearch;
|
|
206
|
+
if (raw.hasToc !== undefined)
|
|
207
|
+
document_.hasToc = raw.hasToc;
|
|
208
|
+
/*
|
|
209
|
+
* Sanitised here rather than trusted from the page. Landmark names, link
|
|
210
|
+
* names and even paths are page-derived, which on a real site means they
|
|
211
|
+
* routinely contain third-party and user-generated content — and a rule
|
|
212
|
+
* author's care is not a boundary (D13).
|
|
213
|
+
*/
|
|
214
|
+
if (raw.navigation && raw.navigation.length > 0) {
|
|
215
|
+
const navigation = raw.navigation
|
|
216
|
+
.map((nav) => ({
|
|
217
|
+
landmark: sanitiseLabel(nav.landmark) ?? '',
|
|
218
|
+
items: nav.items.map((item) => sanitiseLabel(item) ?? '').filter(Boolean),
|
|
219
|
+
}))
|
|
220
|
+
.filter((nav) => nav.landmark.length > 0 && nav.items.length > 0);
|
|
221
|
+
if (navigation.length > 0)
|
|
222
|
+
document_.navigation = navigation;
|
|
223
|
+
}
|
|
224
|
+
if (raw.linkNames && raw.linkNames.length > 0) {
|
|
225
|
+
const linkNames = raw.linkNames
|
|
226
|
+
.map((link) => ({
|
|
227
|
+
target: sanitiseLabel(link.target) ?? '',
|
|
228
|
+
name: sanitiseLabel(link.name) ?? '',
|
|
229
|
+
}))
|
|
230
|
+
.filter((link) => link.target.length > 0 && link.name.length > 0);
|
|
231
|
+
if (linkNames.length > 0)
|
|
232
|
+
document_.linkNames = linkNames;
|
|
233
|
+
}
|
|
90
234
|
if (Object.keys(document_).length > 0)
|
|
91
235
|
facts.document = document_;
|
|
92
236
|
return facts;
|
package/dist/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
package/dist/envelope.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ export interface TestOutcome {
|
|
|
70
70
|
* testId prefix back apart.
|
|
71
71
|
*/
|
|
72
72
|
lane?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Success criteria this test declared it covers, via `setsquare.covers()`.
|
|
75
|
+
*
|
|
76
|
+
* Read off the attempt's own annotations, so a test that declares different
|
|
77
|
+
* criteria on a retry says so rather than inheriting the first attempt's.
|
|
78
|
+
* Absent when the test declared nothing, which is almost every test.
|
|
79
|
+
*/
|
|
80
|
+
covers?: string[];
|
|
73
81
|
/**
|
|
74
82
|
* Where Playwright put the screenshots this test produced.
|
|
75
83
|
*
|
package/dist/envelope.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAQ7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAW,gBAAgB,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAQ7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;GAcG;AAEH,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,qFAAqF;IACrF,sBAAsB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC;IAC1B,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,mFAAmF;AAEnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAkNnE;AA+KD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGxD"}
|
package/dist/envelope.js
CHANGED
|
@@ -5,6 +5,7 @@ import { UNKNOWN } from './ci.js';
|
|
|
5
5
|
import { dedupeScans } from './dedupe.js';
|
|
6
6
|
import { inferSurface, resolvePersona, resolveTheme, } from './infer.js';
|
|
7
7
|
import { capLength, sanitiseTestText, toUrlPattern } from './sanitise.js';
|
|
8
|
+
import { REASON_BECAUSE, REASON_NOTE } from './unscannable-reasons.js';
|
|
8
9
|
/**
|
|
9
10
|
* Re-exported so the envelope, the reporter and their tests cannot disagree on
|
|
10
11
|
* what 'we could not determine this' looks like.
|
|
@@ -76,39 +77,79 @@ export function buildEnvelope(inputs) {
|
|
|
76
77
|
* navigation whether or not a scan follows.
|
|
77
78
|
*/
|
|
78
79
|
const scannedPatterns = new Set(scans.map((scan) => scan.context.urlPattern ?? ''));
|
|
79
|
-
|
|
80
|
+
/*
|
|
81
|
+
* Was anything ever going to scan this pattern?
|
|
82
|
+
*
|
|
83
|
+
* Two booleans rather than one, because "no record said" and "a record said no"
|
|
84
|
+
* are different facts and only the second licenses naming autoscan as the
|
|
85
|
+
* cause. A pattern visited by an autoscan-on lane and an autoscan-off lane has
|
|
86
|
+
* seen both.
|
|
87
|
+
*/
|
|
88
|
+
const visited = new Map();
|
|
80
89
|
for (const outcome of inputs.outcomes) {
|
|
81
90
|
for (const record of outcome.records) {
|
|
82
91
|
if (record.kind !== 'observation')
|
|
83
92
|
continue;
|
|
84
93
|
for (const navigation of record.observed.navigations) {
|
|
85
|
-
|
|
94
|
+
const pattern = toUrlPattern(navigation.url).pattern;
|
|
95
|
+
const seen = visited.get(pattern) ?? { sawAutoScanOn: false, sawAutoScanOff: false };
|
|
96
|
+
if (record.autoScan === true)
|
|
97
|
+
seen.sawAutoScanOn = true;
|
|
98
|
+
if (record.autoScan === false)
|
|
99
|
+
seen.sawAutoScanOff = true;
|
|
100
|
+
visited.set(pattern, seen);
|
|
86
101
|
}
|
|
87
102
|
}
|
|
88
103
|
}
|
|
89
|
-
|
|
104
|
+
/*
|
|
105
|
+
* A pattern the workers already explained is not ours to explain again.
|
|
106
|
+
*
|
|
107
|
+
* `nav-aborted`, `scan-failed`, `scan-cap-reached` and the rest are recorded by
|
|
108
|
+
* the code that watched them happen, against the same pattern this accounting
|
|
109
|
+
* walks. Adding a row here too gave every one of those surfaces TWO ledger rows
|
|
110
|
+
* — the observed reason, and a second guessed one — and the ledger's own counts
|
|
111
|
+
* double with them.
|
|
112
|
+
*/
|
|
113
|
+
const explained = new Set([...ledger.values()].map((row) => row.urlPattern));
|
|
114
|
+
const unscanned = [...visited.keys()]
|
|
115
|
+
.filter((pattern) => !scannedPatterns.has(pattern) && !explained.has(pattern))
|
|
116
|
+
.sort();
|
|
117
|
+
/*
|
|
118
|
+
* The cause, derived from what the workers stated rather than assumed.
|
|
119
|
+
*
|
|
120
|
+
* This used to attribute every row to `settle-timed-out-empty` and say so in a
|
|
121
|
+
* hardcoded sentence: "the test moved on before the page settled". On a lane
|
|
122
|
+
* run with `SETSQUARE_AUTOSCAN=0` — which our own README recommends — that told
|
|
123
|
+
* a customer their tests outran their pages, for 33 surfaces, when the pages
|
|
124
|
+
* had settled perfectly well and nothing was ever going to scan them. The
|
|
125
|
+
* ledger did not merely fail to say why; it said why, wrongly, in the direction
|
|
126
|
+
* that blamed the suite.
|
|
127
|
+
*
|
|
128
|
+
* `unknown` is a real answer here and not a placeholder. A record that does not
|
|
129
|
+
* state `autoScan` — an older SDK's part file in a run group — leaves us unable
|
|
130
|
+
* to attribute, and the contract has a value for exactly that.
|
|
131
|
+
*/
|
|
132
|
+
const byReason = new Map();
|
|
90
133
|
for (const pattern of unscanned) {
|
|
134
|
+
const seen = visited.get(pattern);
|
|
135
|
+
const reason = seen.sawAutoScanOn
|
|
136
|
+
? 'settle-timed-out-empty'
|
|
137
|
+
: seen.sawAutoScanOff
|
|
138
|
+
? 'autoscan-disabled'
|
|
139
|
+
: 'unknown';
|
|
91
140
|
/*
|
|
92
|
-
* The same fact as the
|
|
141
|
+
* The same fact as the sentences below, as a countable row.
|
|
93
142
|
*
|
|
94
143
|
* Both are kept deliberately: the prose says WHY in a way a figure cannot,
|
|
95
144
|
* and the row is what lets coverage state its own denominator. Dropping the
|
|
96
145
|
* sentence when the ledger arrived would have been a regression in
|
|
97
146
|
* explanation dressed up as progress.
|
|
98
147
|
*/
|
|
99
|
-
addLedgerRow(ledger, pattern,
|
|
148
|
+
addLedgerRow(ledger, pattern, reason, 1);
|
|
149
|
+
byReason.set(reason, [...(byReason.get(reason) ?? []), pattern]);
|
|
100
150
|
}
|
|
101
|
-
|
|
102
|
-
warnings.push(
|
|
103
|
-
// "surface(s) were" is the sound a form makes, not a sentence. This line is
|
|
104
|
-
// read by someone deciding whether their run covered what they think it
|
|
105
|
-
// did, and a tool that cannot conjugate reads as a tool that was not
|
|
106
|
-
// finished.
|
|
107
|
-
`${unscanned.length} ${unscanned.length === 1 ? 'surface was' : 'surfaces were'} ` +
|
|
108
|
-
'visited but never scanned, because the test moved on before the page ' +
|
|
109
|
-
`settled: ${unscanned.slice(0, 10).join(', ')}${unscanned.length > 10 ? ', …' : ''}. ` +
|
|
110
|
-
`${unscanned.length === 1 ? 'It is' : 'They are'} absent from this run rather ` +
|
|
111
|
-
'than reported as clean.');
|
|
151
|
+
for (const [reason, patterns] of [...byReason.entries()].sort()) {
|
|
152
|
+
warnings.push(unscannedWarning(reason, patterns));
|
|
112
153
|
}
|
|
113
154
|
/*
|
|
114
155
|
* The ruleset actually used, taken from the scans rather than from the
|
|
@@ -178,6 +219,8 @@ function toResult(outcome) {
|
|
|
178
219
|
result.project = outcome.project;
|
|
179
220
|
if (outcome.lane)
|
|
180
221
|
result.lane = outcome.lane;
|
|
222
|
+
if (outcome.covers && outcome.covers.length > 0)
|
|
223
|
+
result.covers = [...outcome.covers];
|
|
181
224
|
if (outcome.workerIndex !== undefined)
|
|
182
225
|
result.workerIndex = outcome.workerIndex;
|
|
183
226
|
if (outcome.failure)
|
|
@@ -204,6 +247,27 @@ function toResult(outcome) {
|
|
|
204
247
|
* Joined on U+0000, which the contract bans from every string it accepts, so a
|
|
205
248
|
* route pattern containing the separator cannot forge a collision.
|
|
206
249
|
*/
|
|
250
|
+
/**
|
|
251
|
+
* One warning per reason, listing the surfaces it accounts for.
|
|
252
|
+
*
|
|
253
|
+
* Per reason rather than per run, because a run group merges lanes that were
|
|
254
|
+
* configured differently — an autoscan-on lane and a functional lane with
|
|
255
|
+
* `SETSQUARE_AUTOSCAN=0` is the ordinary case, not an exotic one — and a single
|
|
256
|
+
* sentence would have to pick one lane's cause and apply it to the other's
|
|
257
|
+
* surfaces. That is the bug this function exists to make unrepresentable.
|
|
258
|
+
*/
|
|
259
|
+
function unscannedWarning(reason, patterns) {
|
|
260
|
+
const many = patterns.length !== 1;
|
|
261
|
+
// "surface(s) were" is the sound a form makes, not a sentence. This line is
|
|
262
|
+
// read by someone deciding whether their run covered what they think it did,
|
|
263
|
+
// and a tool that cannot conjugate reads as a tool that was not finished.
|
|
264
|
+
const listed = patterns.slice(0, 10).join(', ') + (patterns.length > 10 ? ', \u2026' : '');
|
|
265
|
+
const note = REASON_NOTE[reason];
|
|
266
|
+
return (`${patterns.length} ${many ? 'surfaces were' : 'surface was'} visited but never scanned, ` +
|
|
267
|
+
`because ${REASON_BECAUSE[reason]}: ${listed}. ` +
|
|
268
|
+
(note ? `${note}. ` : '') +
|
|
269
|
+
`${many ? 'They are' : 'It is'} absent from this run rather than reported as clean.`);
|
|
270
|
+
}
|
|
207
271
|
function addLedgerRow(ledger, urlPattern, reason, count) {
|
|
208
272
|
const key = `${urlPattern}\u0000${reason}`;
|
|
209
273
|
const existing = ledger.get(key);
|
|
@@ -214,9 +278,34 @@ function addLedgerRow(ledger, urlPattern, reason, count) {
|
|
|
214
278
|
}
|
|
215
279
|
function toScans(outcome, inference) {
|
|
216
280
|
const scans = [];
|
|
281
|
+
/** visitRef -> the scan a checks-only record merges into. */
|
|
282
|
+
const byVisit = new Map();
|
|
217
283
|
for (const record of outcome.records) {
|
|
218
284
|
if (record.kind !== 'scan')
|
|
219
285
|
continue;
|
|
286
|
+
/*
|
|
287
|
+
* A checks-only record carries the driven checks for a page that was
|
|
288
|
+
* already scanned and had not changed, so no axe run happened. It MERGES
|
|
289
|
+
* into the scan sharing its visitRef rather than becoming a second row:
|
|
290
|
+
* two rows for one context would collide in dedupe, and whichever lost
|
|
291
|
+
* would take its whole kind of evidence with it — silently, and in a
|
|
292
|
+
* direction nobody could see from the output.
|
|
293
|
+
*
|
|
294
|
+
* A record with no scan to merge into is dropped. It cannot happen (the
|
|
295
|
+
* only emitter checks first) and inventing a surface for it would be worse
|
|
296
|
+
* than losing it.
|
|
297
|
+
*/
|
|
298
|
+
if (record.checksOnly) {
|
|
299
|
+
const host = byVisit.get(record.visitRef);
|
|
300
|
+
if (!host)
|
|
301
|
+
continue;
|
|
302
|
+
host.findings.push(...record.findings);
|
|
303
|
+
host.passes.push(...record.passes);
|
|
304
|
+
if (record.inapplicable && record.inapplicable.length > 0) {
|
|
305
|
+
host.inapplicable = [...(host.inapplicable ?? []), ...record.inapplicable];
|
|
306
|
+
}
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
220
309
|
const { pattern } = toUrlPattern(record.page.url);
|
|
221
310
|
const explicit = record.declared.surface.length > 0;
|
|
222
311
|
const context = {
|
|
@@ -271,6 +360,7 @@ function toScans(outcome, inference) {
|
|
|
271
360
|
if (record.settle)
|
|
272
361
|
scan.settle = record.settle;
|
|
273
362
|
scans.push(scan);
|
|
363
|
+
byVisit.set(record.visitRef, scan);
|
|
274
364
|
}
|
|
275
365
|
return scans;
|
|
276
366
|
}
|
package/dist/envelope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
|
package/dist/fixture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"fixture.d.ts","sourceRoot":"","sources":["../src/fixture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAavE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAwE7D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,IAElE,0BAA0B;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC1E,KAAK,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,UAAU,QAAQ,KACjB,OAAO,CAAC,IAAI,CAAC,CAwGjB"}
|