@setsquare/review-sdk 0.0.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/LICENSE +202 -0
- package/NOTICE +57 -0
- package/README.md +338 -0
- package/THIRD-PARTY-NOTICES.md +61 -0
- package/dist/autoscan.d.ts +25 -0
- package/dist/autoscan.d.ts.map +1 -0
- package/dist/autoscan.js +332 -0
- package/dist/autoscan.js.map +1 -0
- package/dist/axe.d.ts +96 -0
- package/dist/axe.d.ts.map +1 -0
- package/dist/axe.js +210 -0
- package/dist/axe.js.map +1 -0
- package/dist/bin/setsquare.d.ts +3 -0
- package/dist/bin/setsquare.d.ts.map +1 -0
- package/dist/bin/setsquare.js +21 -0
- package/dist/bin/setsquare.js.map +1 -0
- package/dist/brand.d.ts +84 -0
- package/dist/brand.d.ts.map +1 -0
- package/dist/brand.js +335 -0
- package/dist/brand.js.map +1 -0
- package/dist/checks/dynamic.d.ts +57 -0
- package/dist/checks/dynamic.d.ts.map +1 -0
- package/dist/checks/dynamic.js +184 -0
- package/dist/checks/dynamic.js.map +1 -0
- package/dist/checks/rule-pack.d.ts +34 -0
- package/dist/checks/rule-pack.d.ts.map +1 -0
- package/dist/checks/rule-pack.js +270 -0
- package/dist/checks/rule-pack.js.map +1 -0
- package/dist/checks/versions.d.ts +28 -0
- package/dist/checks/versions.d.ts.map +1 -0
- package/dist/checks/versions.js +45 -0
- package/dist/checks/versions.js.map +1 -0
- package/dist/ci.d.ts +37 -0
- package/dist/ci.d.ts.map +1 -0
- package/dist/ci.js +199 -0
- package/dist/ci.js.map +1 -0
- package/dist/contract.d.ts +334 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +35 -0
- package/dist/contract.js.map +1 -0
- package/dist/dedupe.d.ts +79 -0
- package/dist/dedupe.d.ts.map +1 -0
- package/dist/dedupe.js +102 -0
- package/dist/dedupe.js.map +1 -0
- package/dist/document.d.ts +29 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +94 -0
- package/dist/document.js.map +1 -0
- package/dist/envelope.d.ts +124 -0
- package/dist/envelope.d.ts.map +1 -0
- package/dist/envelope.js +337 -0
- package/dist/envelope.js.map +1 -0
- package/dist/escape.d.ts +14 -0
- package/dist/escape.d.ts.map +1 -0
- package/dist/escape.js +20 -0
- package/dist/escape.js.map +1 -0
- package/dist/findings.d.ts +47 -0
- package/dist/findings.d.ts.map +1 -0
- package/dist/findings.js +229 -0
- package/dist/findings.js.map +1 -0
- package/dist/fixture.d.ts +7 -0
- package/dist/fixture.d.ts.map +1 -0
- package/dist/fixture.js +237 -0
- package/dist/fixture.js.map +1 -0
- package/dist/group.d.ts +214 -0
- package/dist/group.d.ts.map +1 -0
- package/dist/group.js +709 -0
- package/dist/group.js.map +1 -0
- package/dist/html-report.d.ts +68 -0
- package/dist/html-report.d.ts.map +1 -0
- package/dist/html-report.js +649 -0
- package/dist/html-report.js.map +1 -0
- package/dist/human.d.ts +65 -0
- package/dist/human.d.ts.map +1 -0
- package/dist/human.js +111 -0
- package/dist/human.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/infer.d.ts +65 -0
- package/dist/infer.d.ts.map +1 -0
- package/dist/infer.js +67 -0
- package/dist/infer.js.map +1 -0
- package/dist/insights.d.ts +140 -0
- package/dist/insights.d.ts.map +1 -0
- package/dist/insights.js +483 -0
- package/dist/insights.js.map +1 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +114 -0
- package/dist/install.js.map +1 -0
- package/dist/links.d.ts +45 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +45 -0
- package/dist/links.js.map +1 -0
- package/dist/mask.d.ts +85 -0
- package/dist/mask.d.ts.map +1 -0
- package/dist/mask.js +98 -0
- package/dist/mask.js.map +1 -0
- package/dist/observe.d.ts +51 -0
- package/dist/observe.d.ts.map +1 -0
- package/dist/observe.js +233 -0
- package/dist/observe.js.map +1 -0
- package/dist/options.d.ts +249 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +185 -0
- package/dist/options.js.map +1 -0
- package/dist/output.d.ts +113 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +231 -0
- package/dist/output.js.map +1 -0
- package/dist/perf.d.ts +11 -0
- package/dist/perf.d.ts.map +1 -0
- package/dist/perf.js +150 -0
- package/dist/perf.js.map +1 -0
- package/dist/reading-level.d.ts +73 -0
- package/dist/reading-level.d.ts.map +1 -0
- package/dist/reading-level.js +189 -0
- package/dist/reading-level.js.map +1 -0
- package/dist/reporter.d.ts +94 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +709 -0
- package/dist/reporter.js.map +1 -0
- package/dist/rules.d.ts +55 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +77 -0
- package/dist/rules.js.map +1 -0
- package/dist/runtime.d.ts +32 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +67 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sanitise.d.ts +116 -0
- package/dist/sanitise.d.ts.map +1 -0
- package/dist/sanitise.js +247 -0
- package/dist/sanitise.js.map +1 -0
- package/dist/scan.d.ts +60 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +246 -0
- package/dist/scan.js.map +1 -0
- package/dist/screens.d.ts +98 -0
- package/dist/screens.d.ts.map +1 -0
- package/dist/screens.js +301 -0
- package/dist/screens.js.map +1 -0
- package/dist/settle.d.ts +65 -0
- package/dist/settle.d.ts.map +1 -0
- package/dist/settle.js +162 -0
- package/dist/settle.js.map +1 -0
- package/dist/shots.d.ts +109 -0
- package/dist/shots.d.ts.map +1 -0
- package/dist/shots.js +113 -0
- package/dist/shots.js.map +1 -0
- package/dist/style.d.ts +47 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/style.js +154 -0
- package/dist/style.js.map +1 -0
- package/dist/suite.d.ts +218 -0
- package/dist/suite.d.ts.map +1 -0
- package/dist/suite.js +219 -0
- package/dist/suite.js.map +1 -0
- package/dist/summary.d.ts +268 -0
- package/dist/summary.d.ts.map +1 -0
- package/dist/summary.js +1308 -0
- package/dist/summary.js.map +1 -0
- package/dist/unscannable.d.ts +75 -0
- package/dist/unscannable.d.ts.map +1 -0
- package/dist/unscannable.js +111 -0
- package/dist/unscannable.js.map +1 -0
- package/dist/versions.d.ts +13 -0
- package/dist/versions.d.ts.map +1 -0
- package/dist/versions.js +39 -0
- package/dist/versions.js.map +1 -0
- package/dist/wcag-map.d.ts +19 -0
- package/dist/wcag-map.d.ts.map +1 -0
- package/dist/wcag-map.js +52 -0
- package/dist/wcag-map.js.map +1 -0
- package/dist/with-setsquare.d.ts +26 -0
- package/dist/with-setsquare.d.ts.map +1 -0
- package/dist/with-setsquare.js +70 -0
- package/dist/with-setsquare.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Page } from '@playwright/test';
|
|
2
|
+
import type { UnscannableReason, UnscannedRow } from '@setsquare/schema';
|
|
3
|
+
/**
|
|
4
|
+
* The counted ledger of surfaces a run reached and could not scan.
|
|
5
|
+
*
|
|
6
|
+
* Every fact in here was already known — it was just prose. `autoscan.ts` warns
|
|
7
|
+
* "A scan of /x was abandoned after 8000ms"; `envelope.ts` warns that a URL was
|
|
8
|
+
* visited and never scanned. Both are true, both are readable by a person
|
|
9
|
+
* reading the terminal on a good day, and neither is countable by anything.
|
|
10
|
+
*
|
|
11
|
+
* That matters more than it sounds. The standing honesty vocabulary says a run
|
|
12
|
+
* must be able to state what it did NOT see, and coverage is the one figure that
|
|
13
|
+
* cannot be honest without it: a grid computed over the surfaces that happened to
|
|
14
|
+
* succeed reads identically whether we scanned everything or two thirds of it.
|
|
15
|
+
* `ingest.ts` makes the same argument for `unscanned[]` on the wire; this is the
|
|
16
|
+
* capture side of it.
|
|
17
|
+
*
|
|
18
|
+
* The reason vocabulary lives here, exported as the schema's own type, so the
|
|
19
|
+
* fixture and the reporter cannot disagree about what the categories are. Both
|
|
20
|
+
* push into a ledger; only the reporter aggregates.
|
|
21
|
+
*/
|
|
22
|
+
export type { UnscannableReason };
|
|
23
|
+
/** One occurrence, as the fixture saw it. Aggregation is the reporter's job. */
|
|
24
|
+
export interface UnscannableEvent {
|
|
25
|
+
/** Route pattern, never a concrete URL — callers pass it through `toUrlPattern`. */
|
|
26
|
+
urlPattern: string;
|
|
27
|
+
reason: UnscannableReason;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A bounded accumulator of unscannable events.
|
|
31
|
+
*
|
|
32
|
+
* Aggregating on the way in rather than storing a list: the useful output is
|
|
33
|
+
* "/reports/:id could not be settled, 4 times", and a page in a retry loop could
|
|
34
|
+
* otherwise push thousands of identical entries. The cap is therefore on distinct
|
|
35
|
+
* (pattern, reason) pairs, which is a far smaller number than occurrences.
|
|
36
|
+
*/
|
|
37
|
+
export declare class UnscannableLedger {
|
|
38
|
+
private readonly maxRows;
|
|
39
|
+
private readonly counts;
|
|
40
|
+
private omittedEventCount;
|
|
41
|
+
constructor(maxRows: number);
|
|
42
|
+
record(urlPattern: string, reason: UnscannableReason): void;
|
|
43
|
+
/** The aggregated rows, busiest first. */
|
|
44
|
+
rows(): {
|
|
45
|
+
urlPattern: string;
|
|
46
|
+
reason: UnscannableReason;
|
|
47
|
+
count: number;
|
|
48
|
+
}[];
|
|
49
|
+
/**
|
|
50
|
+
* Events dropped because the distinct-row cap was already full.
|
|
51
|
+
*
|
|
52
|
+
* EVENTS, not rows — once the cap is reached we stop allocating keys, so we
|
|
53
|
+
* cannot know how many distinct patterns those dropped events represented.
|
|
54
|
+
* Reporting the number we actually have rather than the one that would read
|
|
55
|
+
* better is the same discipline as everywhere else here: a truncated ledger
|
|
56
|
+
* that does not admit it is truncated is precisely the silent under-count this
|
|
57
|
+
* file exists to prevent.
|
|
58
|
+
*/
|
|
59
|
+
omittedEvents(): number;
|
|
60
|
+
get size(): number;
|
|
61
|
+
}
|
|
62
|
+
/** Record that a surface on this page could not be scanned, and why. */
|
|
63
|
+
export declare function recordUnscannable(page: Page, urlPattern: string, reason: UnscannableReason): void;
|
|
64
|
+
/**
|
|
65
|
+
* This page's ledger rows, or `undefined` if nothing was ever recorded.
|
|
66
|
+
*
|
|
67
|
+
* `undefined` rather than an empty array, deliberately: an empty array is a claim
|
|
68
|
+
* ("nothing went unscanned"), and absence is the honest shape for "this page
|
|
69
|
+
* recorded no ledger events" — which is also what an envelope written before the
|
|
70
|
+
* ledger existed looks like.
|
|
71
|
+
*/
|
|
72
|
+
export declare function unscannableRows(page: Page): UnscannedRow[] | undefined;
|
|
73
|
+
/** Events dropped past this page's distinct-row cap. */
|
|
74
|
+
export declare function unscannableOmitted(page: Page): number;
|
|
75
|
+
//# sourceMappingURL=unscannable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unscannable.d.ts","sourceRoot":"","sources":["../src/unscannable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGzE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAIhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiE;IACxF,OAAO,CAAC,iBAAiB,CAAK;gBAED,OAAO,EAAE,MAAM;IAE5C,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAkB3D,0CAA0C;IAC1C,IAAI,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE;IAW1E;;;;;;;;;OASG;IACH,aAAa,IAAI,MAAM;IAIvB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AA2BD,wEAAwE;AACxE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAQjG;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,EAAE,GAAG,SAAS,CAItE;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { MAX_UNSCANNED_ROWS } from '@setsquare/schema/limits';
|
|
2
|
+
/**
|
|
3
|
+
* A bounded accumulator of unscannable events.
|
|
4
|
+
*
|
|
5
|
+
* Aggregating on the way in rather than storing a list: the useful output is
|
|
6
|
+
* "/reports/:id could not be settled, 4 times", and a page in a retry loop could
|
|
7
|
+
* otherwise push thousands of identical entries. The cap is therefore on distinct
|
|
8
|
+
* (pattern, reason) pairs, which is a far smaller number than occurrences.
|
|
9
|
+
*/
|
|
10
|
+
export class UnscannableLedger {
|
|
11
|
+
maxRows;
|
|
12
|
+
counts = new Map();
|
|
13
|
+
omittedEventCount = 0;
|
|
14
|
+
constructor(maxRows) {
|
|
15
|
+
this.maxRows = maxRows;
|
|
16
|
+
}
|
|
17
|
+
record(urlPattern, reason) {
|
|
18
|
+
// Joined on U+0000, which the contract bans from every string it accepts, so
|
|
19
|
+
// a pattern containing the separator cannot forge a collision. Same
|
|
20
|
+
// convention as the SDK dedupe key, written as an escape so it stays visible
|
|
21
|
+
// in source rather than being an invisible byte.
|
|
22
|
+
const key = `${urlPattern}\u0000${reason}`;
|
|
23
|
+
const existing = this.counts.get(key);
|
|
24
|
+
if (existing) {
|
|
25
|
+
existing.count += 1;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (this.counts.size >= this.maxRows) {
|
|
29
|
+
this.omittedEventCount += 1;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.counts.set(key, { event: { urlPattern, reason }, count: 1 });
|
|
33
|
+
}
|
|
34
|
+
/** The aggregated rows, busiest first. */
|
|
35
|
+
rows() {
|
|
36
|
+
return [...this.counts.values()]
|
|
37
|
+
.map(({ event, count }) => ({ ...event, count }))
|
|
38
|
+
.sort((a, b) => b.count - a.count ||
|
|
39
|
+
a.urlPattern.localeCompare(b.urlPattern) ||
|
|
40
|
+
a.reason.localeCompare(b.reason));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Events dropped because the distinct-row cap was already full.
|
|
44
|
+
*
|
|
45
|
+
* EVENTS, not rows — once the cap is reached we stop allocating keys, so we
|
|
46
|
+
* cannot know how many distinct patterns those dropped events represented.
|
|
47
|
+
* Reporting the number we actually have rather than the one that would read
|
|
48
|
+
* better is the same discipline as everywhere else here: a truncated ledger
|
|
49
|
+
* that does not admit it is truncated is precisely the silent under-count this
|
|
50
|
+
* file exists to prevent.
|
|
51
|
+
*/
|
|
52
|
+
omittedEvents() {
|
|
53
|
+
return this.omittedEventCount;
|
|
54
|
+
}
|
|
55
|
+
get size() {
|
|
56
|
+
return this.counts.size;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/*
|
|
60
|
+
* Per PAGE, not per context, and keyed off the page itself.
|
|
61
|
+
*
|
|
62
|
+
* Every unscannable event has a page: a scan that timed out, a navigation that
|
|
63
|
+
* moved on before the scan ran, a ceiling reached. Keying on the page means the
|
|
64
|
+
* ledger travels with that page's observation record and the reporter sums across
|
|
65
|
+
* records — which it has to do for run groups regardless, so this adds no new
|
|
66
|
+
* aggregation path.
|
|
67
|
+
*
|
|
68
|
+
* Held on a registered symbol, not a module-level variable: the fixture reads it
|
|
69
|
+
* and both scan paths write it, and a package resolved twice in one process would
|
|
70
|
+
* otherwise give each copy its own empty map. See `observe.ts` for the bug this
|
|
71
|
+
* prevents, and `runtime.ts` for the same hazard on the rule policy.
|
|
72
|
+
*/
|
|
73
|
+
const LEDGERS = Symbol.for('setsquare.playwright.unscannable');
|
|
74
|
+
function ledgerMap() {
|
|
75
|
+
const store = globalThis;
|
|
76
|
+
const existing = store[LEDGERS];
|
|
77
|
+
if (existing)
|
|
78
|
+
return existing;
|
|
79
|
+
const created = new WeakMap();
|
|
80
|
+
store[LEDGERS] = created;
|
|
81
|
+
return created;
|
|
82
|
+
}
|
|
83
|
+
/** Record that a surface on this page could not be scanned, and why. */
|
|
84
|
+
export function recordUnscannable(page, urlPattern, reason) {
|
|
85
|
+
const map = ledgerMap();
|
|
86
|
+
let ledger = map.get(page);
|
|
87
|
+
if (!ledger) {
|
|
88
|
+
ledger = new UnscannableLedger(MAX_UNSCANNED_ROWS);
|
|
89
|
+
map.set(page, ledger);
|
|
90
|
+
}
|
|
91
|
+
ledger.record(urlPattern, reason);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* This page's ledger rows, or `undefined` if nothing was ever recorded.
|
|
95
|
+
*
|
|
96
|
+
* `undefined` rather than an empty array, deliberately: an empty array is a claim
|
|
97
|
+
* ("nothing went unscanned"), and absence is the honest shape for "this page
|
|
98
|
+
* recorded no ledger events" — which is also what an envelope written before the
|
|
99
|
+
* ledger existed looks like.
|
|
100
|
+
*/
|
|
101
|
+
export function unscannableRows(page) {
|
|
102
|
+
const ledger = ledgerMap().get(page);
|
|
103
|
+
if (!ledger || ledger.size === 0)
|
|
104
|
+
return undefined;
|
|
105
|
+
return ledger.rows();
|
|
106
|
+
}
|
|
107
|
+
/** Events dropped past this page's distinct-row cap. */
|
|
108
|
+
export function unscannableOmitted(page) {
|
|
109
|
+
return ledgerMap().get(page)?.omittedEvents() ?? 0;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=unscannable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unscannable.js","sourceRoot":"","sources":["../src/unscannable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Stated when a version genuinely cannot be read, never guessed at. */
|
|
2
|
+
export declare const UNKNOWN_VERSION = "unknown";
|
|
3
|
+
/** This SDK build's own version. */
|
|
4
|
+
export declare function sdkVersion(): string;
|
|
5
|
+
/**
|
|
6
|
+
* The detection engine's version.
|
|
7
|
+
*
|
|
8
|
+
* `axe-core/package.json` rather than importing axe-core itself: the library is
|
|
9
|
+
* only ever evaluated inside a browser page, and pulling it into the reporter's
|
|
10
|
+
* Node process to read one string would load a large module for nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function axeVersion(): string;
|
|
13
|
+
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAcA,wEAAwE;AACxE,eAAO,MAAM,eAAe,YAAY,CAAC;AAazC,oCAAoC;AACpC,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
|
package/dist/versions.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
/**
|
|
3
|
+
* Version discovery for the two things every payload must pin.
|
|
4
|
+
*
|
|
5
|
+
* Read from the installed packages at runtime rather than baked in at build
|
|
6
|
+
* time. A hardcoded version is a hand-maintained duplicate — the exact thing the
|
|
7
|
+
* contract seam exists to prevent — and it goes stale in the most damaging
|
|
8
|
+
* possible way: `axeVersion` is what makes a finding reproducible, so a wrong
|
|
9
|
+
* one produces evidence that cannot be re-derived and nobody notices for months.
|
|
10
|
+
*/
|
|
11
|
+
const require = createRequire(import.meta.url);
|
|
12
|
+
/** Stated when a version genuinely cannot be read, never guessed at. */
|
|
13
|
+
export const UNKNOWN_VERSION = 'unknown';
|
|
14
|
+
function readVersion(specifier) {
|
|
15
|
+
try {
|
|
16
|
+
const pkg = require(specifier);
|
|
17
|
+
return typeof pkg.version === 'string' && pkg.version.length > 0
|
|
18
|
+
? pkg.version
|
|
19
|
+
: UNKNOWN_VERSION;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return UNKNOWN_VERSION;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** This SDK build's own version. */
|
|
26
|
+
export function sdkVersion() {
|
|
27
|
+
return readVersion('../package.json');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The detection engine's version.
|
|
31
|
+
*
|
|
32
|
+
* `axe-core/package.json` rather than importing axe-core itself: the library is
|
|
33
|
+
* only ever evaluated inside a browser page, and pulling it into the reporter's
|
|
34
|
+
* Node process to read one string would load a large module for nothing.
|
|
35
|
+
*/
|
|
36
|
+
export function axeVersion() {
|
|
37
|
+
return readVersion('axe-core/package.json');
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;GAQG;AAEH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAEzC,SAAS,WAAW,CAAC,SAAiB;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAA0B,CAAC;QACxD,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC9D,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,eAAe,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pinned engine's criterion → rules map: which axe rules exist for each
|
|
3
|
+
* WCAG success criterion, whether or not this run enabled them.
|
|
4
|
+
*
|
|
5
|
+
* This is what lets the conformance summary answer an auditor's first
|
|
6
|
+
* question about an untested criterion — "did you not check it, or can it not
|
|
7
|
+
* be checked?" A criterion with mapped rules that produced no rows was
|
|
8
|
+
* excluded by target or policy (`notRun`); a criterion with no mapped rules
|
|
9
|
+
* has no automated check in this engine (`notAutomatable`). Conflating the
|
|
10
|
+
* two would make policy choices look like tooling limits.
|
|
11
|
+
*
|
|
12
|
+
* Read from axe's own metadata (`getRules` works in Node — it reads the rule
|
|
13
|
+
* registry, not a document) so the map can never drift from the engine that
|
|
14
|
+
* produced the evidence. Guarded rather than trusted: if a future axe changes
|
|
15
|
+
* the metadata shape, the summary degrades to combined wording rather than
|
|
16
|
+
* crashing a reporter.
|
|
17
|
+
*/
|
|
18
|
+
export declare function criterionRuleMap(): ReadonlyMap<string, readonly string[]> | undefined;
|
|
19
|
+
//# sourceMappingURL=wcag-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wcag-map.d.ts","sourceRoot":"","sources":["../src/wcag-map.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,CA+BrF"}
|
package/dist/wcag-map.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import axe from 'axe-core';
|
|
2
|
+
import { SETSQUARE_CHECK_CRITERIA } from './checks/versions.js';
|
|
3
|
+
import { toWcag } from './findings.js';
|
|
4
|
+
/**
|
|
5
|
+
* The pinned engine's criterion → rules map: which axe rules exist for each
|
|
6
|
+
* WCAG success criterion, whether or not this run enabled them.
|
|
7
|
+
*
|
|
8
|
+
* This is what lets the conformance summary answer an auditor's first
|
|
9
|
+
* question about an untested criterion — "did you not check it, or can it not
|
|
10
|
+
* be checked?" A criterion with mapped rules that produced no rows was
|
|
11
|
+
* excluded by target or policy (`notRun`); a criterion with no mapped rules
|
|
12
|
+
* has no automated check in this engine (`notAutomatable`). Conflating the
|
|
13
|
+
* two would make policy choices look like tooling limits.
|
|
14
|
+
*
|
|
15
|
+
* Read from axe's own metadata (`getRules` works in Node — it reads the rule
|
|
16
|
+
* registry, not a document) so the map can never drift from the engine that
|
|
17
|
+
* produced the evidence. Guarded rather than trusted: if a future axe changes
|
|
18
|
+
* the metadata shape, the summary degrades to combined wording rather than
|
|
19
|
+
* crashing a reporter.
|
|
20
|
+
*/
|
|
21
|
+
export function criterionRuleMap() {
|
|
22
|
+
try {
|
|
23
|
+
const map = new Map();
|
|
24
|
+
for (const rule of axe.getRules()) {
|
|
25
|
+
const wcag = toWcag(rule.tags ?? []);
|
|
26
|
+
if (!wcag)
|
|
27
|
+
continue;
|
|
28
|
+
for (const criterion of wcag.criteria) {
|
|
29
|
+
const rules = map.get(criterion) ?? [];
|
|
30
|
+
rules.push(rule.ruleId);
|
|
31
|
+
map.set(criterion, rules);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Setsquare's own checks are part of this engine build too. Leaving them
|
|
35
|
+
// out mislabelled their criteria "no automated check in this engine" the
|
|
36
|
+
// moment a run gave them nothing to report.
|
|
37
|
+
for (const [ruleId, criteria] of SETSQUARE_CHECK_CRITERIA) {
|
|
38
|
+
for (const criterion of criteria) {
|
|
39
|
+
const rules = map.get(criterion) ?? [];
|
|
40
|
+
rules.push(ruleId);
|
|
41
|
+
map.set(criterion, rules);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const rules of map.values())
|
|
45
|
+
rules.sort();
|
|
46
|
+
return map.size > 0 ? map : undefined;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=wcag-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wcag-map.js","sourceRoot":"","sources":["../src/wcag-map.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,4CAA4C;QAC5C,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,wBAAwB,EAAE,CAAC;YAC1D,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;YAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type SetsquareOptions } from './options.js';
|
|
2
|
+
/**
|
|
3
|
+
* Wrap an existing Playwright config. This is the one line the 20-minute promise
|
|
4
|
+
* rests on.
|
|
5
|
+
*
|
|
6
|
+
* The contract with the customer is narrow and worth stating: their `projects`,
|
|
7
|
+
* `testDir`, `use`, `webServer`, timeouts and everything else come back
|
|
8
|
+
* untouched. Exactly one thing is added — our reporter, appended after theirs so
|
|
9
|
+
* their output still comes first — and one thing happens as a side effect: the
|
|
10
|
+
* capture fixture is installed into `@playwright/test` for this process.
|
|
11
|
+
*
|
|
12
|
+
* The side effect is why this is a function call in the config rather than a
|
|
13
|
+
* reporter entry the customer adds by hand. Playwright loads the config in every
|
|
14
|
+
* worker process, so calling `withSetsquare()` there is what gives us a hook inside
|
|
15
|
+
* the workers, where the pages are. A reporter alone runs only in the main
|
|
16
|
+
* process and can never see a page.
|
|
17
|
+
*
|
|
18
|
+
* Typed against a structural shape rather than Playwright's `PlaywrightTestConfig`
|
|
19
|
+
* generic. The customer's config is frequently generic over their own fixtures,
|
|
20
|
+
* and a wrapper that widened or erased that type would be a downgrade they would
|
|
21
|
+
* feel at every `use:` block.
|
|
22
|
+
*/
|
|
23
|
+
export declare function withSetsquare<T extends {
|
|
24
|
+
reporter?: unknown;
|
|
25
|
+
}>(config: T, options?: SetsquareOptions): T;
|
|
26
|
+
//# sourceMappingURL=with-setsquare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-setsquare.d.ts","sourceRoot":"","sources":["../src/with-setsquare.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,EAC5D,MAAM,EAAE,CAAC,EACT,OAAO,GAAE,gBAAqB,GAC7B,CAAC,CAyBH"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { installFixture } from './install.js';
|
|
2
|
+
import { resolveOptions } from './options.js';
|
|
3
|
+
import { setReadingLevel, setRulePolicy, setScanTimeout } from './runtime.js';
|
|
4
|
+
/**
|
|
5
|
+
* Wrap an existing Playwright config. This is the one line the 20-minute promise
|
|
6
|
+
* rests on.
|
|
7
|
+
*
|
|
8
|
+
* The contract with the customer is narrow and worth stating: their `projects`,
|
|
9
|
+
* `testDir`, `use`, `webServer`, timeouts and everything else come back
|
|
10
|
+
* untouched. Exactly one thing is added — our reporter, appended after theirs so
|
|
11
|
+
* their output still comes first — and one thing happens as a side effect: the
|
|
12
|
+
* capture fixture is installed into `@playwright/test` for this process.
|
|
13
|
+
*
|
|
14
|
+
* The side effect is why this is a function call in the config rather than a
|
|
15
|
+
* reporter entry the customer adds by hand. Playwright loads the config in every
|
|
16
|
+
* worker process, so calling `withSetsquare()` there is what gives us a hook inside
|
|
17
|
+
* the workers, where the pages are. A reporter alone runs only in the main
|
|
18
|
+
* process and can never see a page.
|
|
19
|
+
*
|
|
20
|
+
* Typed against a structural shape rather than Playwright's `PlaywrightTestConfig`
|
|
21
|
+
* generic. The customer's config is frequently generic over their own fixtures,
|
|
22
|
+
* and a wrapper that widened or erased that type would be a downgrade they would
|
|
23
|
+
* feel at every `use:` block.
|
|
24
|
+
*/
|
|
25
|
+
export function withSetsquare(config, options = {}) {
|
|
26
|
+
const resolved = resolveOptions(options);
|
|
27
|
+
// Playwright loads this config in every worker, which is the only reason a
|
|
28
|
+
// scan running inside one can know which rule set to assess against.
|
|
29
|
+
setRulePolicy(resolved.rules);
|
|
30
|
+
setScanTimeout(resolved.scanTimeoutMs);
|
|
31
|
+
setReadingLevel(resolved.readingLevel);
|
|
32
|
+
const result = installFixture(resolved);
|
|
33
|
+
const reporterEntry = ['@setsquare/review-sdk/reporter', options];
|
|
34
|
+
if (!result.installed) {
|
|
35
|
+
// Still register the reporter. It is what surfaces the failure to the person
|
|
36
|
+
// running the suite — and a silent no-op here would be indistinguishable from
|
|
37
|
+
// a clean run with nothing to report, which is the failure mode this whole
|
|
38
|
+
// product exists to prevent.
|
|
39
|
+
console.warn(`\n ${result.reason}\n`);
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
...config,
|
|
43
|
+
reporter: appendReporter(config.reporter, reporterEntry),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Append ourselves to whatever reporter configuration already exists.
|
|
48
|
+
*
|
|
49
|
+
* Playwright accepts three shapes here — absent, a bare string, or an array of
|
|
50
|
+
* entries — and a customer who has configured reporters has done so
|
|
51
|
+
* deliberately. Replacing them would be the rudest possible way to introduce
|
|
52
|
+
* ourselves, and on a CI suite it would silently remove the JUnit or GitHub
|
|
53
|
+
* output someone's pipeline depends on.
|
|
54
|
+
*/
|
|
55
|
+
function appendReporter(existing, entry) {
|
|
56
|
+
if (existing === undefined || existing === null) {
|
|
57
|
+
// Playwright's own default is `list`, and it stops being applied the moment
|
|
58
|
+
// `reporter` is set. Restating it keeps the customer's terminal output
|
|
59
|
+
// exactly as it was before they added one line to their config.
|
|
60
|
+
return [['list'], entry];
|
|
61
|
+
}
|
|
62
|
+
if (typeof existing === 'string')
|
|
63
|
+
return [[existing], entry];
|
|
64
|
+
if (Array.isArray(existing))
|
|
65
|
+
return [...existing, entry];
|
|
66
|
+
// An unrecognised shape. Leave it entirely alone and go without our reporter
|
|
67
|
+
// rather than risk mangling a working configuration.
|
|
68
|
+
return existing;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=with-setsquare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-setsquare.js","sourceRoot":"","sources":["../src/with-setsquare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAyB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAS,EACT,UAA4B,EAAE;IAE9B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEzC,2EAA2E;IAC3E,qEAAqE;IACrE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAExC,MAAM,aAAa,GAA+B,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAE9F,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,6EAA6E;QAC7E,8EAA8E;QAC9E,2EAA2E;QAC3E,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;KACzD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,QAAiB,EAAE,KAAiC;IAC1E,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,4EAA4E;QAC5E,uEAAuE;QACvE,gEAAgE;QAChE,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;IAEzD,6EAA6E;IAC7E,qDAAqD;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|