@kodalabs-io/eqo 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +162 -0
- package/action.yml +77 -0
- package/dist/chunk-WKI3N5NX.js +3258 -0
- package/dist/cli/index.js +209 -0
- package/dist/en-US-JQN64XYI.js +300 -0
- package/dist/fr-FR-NZKLCQE5.js +291 -0
- package/dist/index.d.ts +445 -0
- package/dist/index.js +941 -0
- package/dist/worker.js +9 -0
- package/package.json +115 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
import * as playwright from 'playwright';
|
|
2
|
+
import * as _babel_types from '@babel/types';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
type AutomationLevel = "full" | "partial" | "manual";
|
|
6
|
+
type CriterionStatus = "validated" | "invalidated" | "not-applicable" | "needs-review";
|
|
7
|
+
type IssueSeverity = "error" | "warning" | "notice";
|
|
8
|
+
type AnalysisPhase = "static" | "runtime";
|
|
9
|
+
type WCAGLevel = "A" | "AA";
|
|
10
|
+
type OutputFormat = "json" | "html" | "sarif" | "markdown" | "junit";
|
|
11
|
+
type SupportedLocale = "en-US" | "fr-FR";
|
|
12
|
+
interface TestDefinition {
|
|
13
|
+
id: string;
|
|
14
|
+
automated: boolean;
|
|
15
|
+
}
|
|
16
|
+
interface CriterionDefinition {
|
|
17
|
+
id: string;
|
|
18
|
+
theme: number;
|
|
19
|
+
level: WCAGLevel;
|
|
20
|
+
wcag: string[];
|
|
21
|
+
automationLevel: AutomationLevel;
|
|
22
|
+
tests: TestDefinition[];
|
|
23
|
+
}
|
|
24
|
+
interface ThemeDefinition {
|
|
25
|
+
id: number;
|
|
26
|
+
criteria: CriterionDefinition[];
|
|
27
|
+
}
|
|
28
|
+
interface RGAAIssue {
|
|
29
|
+
id: string;
|
|
30
|
+
criterionId: string;
|
|
31
|
+
testId: string;
|
|
32
|
+
phase: AnalysisPhase;
|
|
33
|
+
severity: IssueSeverity;
|
|
34
|
+
/** Serialized HTML snippet of the offending element */
|
|
35
|
+
element?: string;
|
|
36
|
+
/** Source file path (relative to project root) */
|
|
37
|
+
file?: string;
|
|
38
|
+
line?: number;
|
|
39
|
+
column?: number;
|
|
40
|
+
/** Page path where the issue was found (runtime phase) */
|
|
41
|
+
page?: string;
|
|
42
|
+
/** i18n message key */
|
|
43
|
+
messageKey: string;
|
|
44
|
+
/** i18n remediation key */
|
|
45
|
+
remediationKey: string;
|
|
46
|
+
/** Additional context for message interpolation */
|
|
47
|
+
messageContext?: Record<string, string>;
|
|
48
|
+
wcag?: string;
|
|
49
|
+
}
|
|
50
|
+
interface TestResult {
|
|
51
|
+
id: string;
|
|
52
|
+
status: "pass" | "fail" | "not-applicable" | "needs-review";
|
|
53
|
+
}
|
|
54
|
+
interface CriterionResult {
|
|
55
|
+
id: string;
|
|
56
|
+
status: CriterionStatus;
|
|
57
|
+
issueCount: number;
|
|
58
|
+
testResults: TestResult[];
|
|
59
|
+
}
|
|
60
|
+
interface ThemeResult {
|
|
61
|
+
id: number;
|
|
62
|
+
complianceRate: number;
|
|
63
|
+
criteriaResults: CriterionResult[];
|
|
64
|
+
}
|
|
65
|
+
interface PageResult {
|
|
66
|
+
url: string;
|
|
67
|
+
path: string;
|
|
68
|
+
title?: string;
|
|
69
|
+
issueCount: number;
|
|
70
|
+
/** Set when the page could not be analyzed (e.g. 404, timeout, network error) */
|
|
71
|
+
error?: string;
|
|
72
|
+
}
|
|
73
|
+
interface ReportSummary {
|
|
74
|
+
/** Total criteria in the RGAA (106) */
|
|
75
|
+
totalCriteria: number;
|
|
76
|
+
/** Criteria applicable on at least one page */
|
|
77
|
+
applicable: number;
|
|
78
|
+
/** Criteria validated on all pages */
|
|
79
|
+
validated: number;
|
|
80
|
+
/** Criteria invalidated on at least one page */
|
|
81
|
+
invalidated: number;
|
|
82
|
+
/** Criteria not applicable on any page */
|
|
83
|
+
notApplicable: number;
|
|
84
|
+
/** Criteria that could not be checked automatically */
|
|
85
|
+
needsReview: number;
|
|
86
|
+
/**
|
|
87
|
+
* validated / applicable
|
|
88
|
+
* Represents the fraction of auto-checkable criteria that passed.
|
|
89
|
+
*/
|
|
90
|
+
complianceRate: number;
|
|
91
|
+
}
|
|
92
|
+
interface RGAAReport {
|
|
93
|
+
meta: {
|
|
94
|
+
rgaaVersion: "4.1.2";
|
|
95
|
+
toolVersion: string;
|
|
96
|
+
generatedAt: string;
|
|
97
|
+
projectName?: string;
|
|
98
|
+
analyzedPages: string[];
|
|
99
|
+
locale: SupportedLocale;
|
|
100
|
+
};
|
|
101
|
+
summary: ReportSummary;
|
|
102
|
+
themes: ThemeResult[];
|
|
103
|
+
pages: PageResult[];
|
|
104
|
+
issues: RGAAIssue[];
|
|
105
|
+
}
|
|
106
|
+
interface PageConfig {
|
|
107
|
+
path: string;
|
|
108
|
+
name?: string;
|
|
109
|
+
}
|
|
110
|
+
interface OutputConfig {
|
|
111
|
+
format: OutputFormat;
|
|
112
|
+
/** Output file path (relative to project root) */
|
|
113
|
+
path: string;
|
|
114
|
+
/** Minify output where applicable (JSON) */
|
|
115
|
+
minify?: boolean;
|
|
116
|
+
}
|
|
117
|
+
interface ThresholdConfig {
|
|
118
|
+
/**
|
|
119
|
+
* Minimum compliance rate (0–100).
|
|
120
|
+
* Set to 0 to disable CI blocking — the report is still generated.
|
|
121
|
+
*/
|
|
122
|
+
complianceRate?: number;
|
|
123
|
+
/**
|
|
124
|
+
* Exit with code 1 on any issue of this severity or above.
|
|
125
|
+
* Defaults to "none" when complianceRate is 0.
|
|
126
|
+
*/
|
|
127
|
+
failOn?: "error" | "threshold" | "none";
|
|
128
|
+
}
|
|
129
|
+
interface StaticConfig {
|
|
130
|
+
/** Glob patterns to include (default: src/**\/*.{tsx,jsx,ts,js}) */
|
|
131
|
+
include?: string[];
|
|
132
|
+
/** Glob patterns to exclude */
|
|
133
|
+
exclude?: string[];
|
|
134
|
+
}
|
|
135
|
+
interface ExemptionConfig {
|
|
136
|
+
/** RGAA criterion ID, e.g. "4.1" */
|
|
137
|
+
criterion: string;
|
|
138
|
+
/** Human-readable justification (required for traceability) */
|
|
139
|
+
reason: string;
|
|
140
|
+
}
|
|
141
|
+
interface KodaRGAAConfig {
|
|
142
|
+
/** Base URL of the NextJS app to analyze (runtime phase) */
|
|
143
|
+
baseUrl: string;
|
|
144
|
+
/** Pages to audit */
|
|
145
|
+
pages: PageConfig[];
|
|
146
|
+
/** One or more output formats */
|
|
147
|
+
output: OutputConfig[];
|
|
148
|
+
/** CI/CD blocking thresholds */
|
|
149
|
+
thresholds?: ThresholdConfig;
|
|
150
|
+
/** Criteria exempted from analysis */
|
|
151
|
+
exemptions?: ExemptionConfig[];
|
|
152
|
+
/** Report locale — defaults to "en-US" */
|
|
153
|
+
locale?: SupportedLocale;
|
|
154
|
+
/** Project name shown in reports */
|
|
155
|
+
projectName?: string;
|
|
156
|
+
/** Static analysis options */
|
|
157
|
+
static?: StaticConfig;
|
|
158
|
+
}
|
|
159
|
+
interface StaticRuleContext {
|
|
160
|
+
filePath: string;
|
|
161
|
+
/** Pre-parsed AST — populated by the worker to avoid re-parsing per rule */
|
|
162
|
+
ast?: _babel_types.File | null;
|
|
163
|
+
}
|
|
164
|
+
/** Result from a static rule check: issues found, or null if the rule could not run. */
|
|
165
|
+
type RuleResult = RGAAIssue[] | null;
|
|
166
|
+
interface StaticRule {
|
|
167
|
+
/** RGAA criterion IDs this rule maps to */
|
|
168
|
+
criteria: string[];
|
|
169
|
+
id: string;
|
|
170
|
+
check(context: StaticRuleContext): RuleResult;
|
|
171
|
+
}
|
|
172
|
+
interface RuntimeRuleContext {
|
|
173
|
+
page: playwright.Page;
|
|
174
|
+
pageUrl: string;
|
|
175
|
+
pagePath: string;
|
|
176
|
+
}
|
|
177
|
+
interface RuntimeRule {
|
|
178
|
+
criteria: string[];
|
|
179
|
+
id: string;
|
|
180
|
+
check(context: RuntimeRuleContext): Promise<RGAAIssue[]>;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Build a full RGAA report from collected issues.
|
|
185
|
+
*/
|
|
186
|
+
declare function buildReport(issues: RGAAIssue[], pages: RGAAReport["pages"], config: KodaRGAAConfig): RGAAReport;
|
|
187
|
+
interface AnalysisOptions {
|
|
188
|
+
/** Skip the runtime (Playwright) analysis phase */
|
|
189
|
+
staticOnly?: boolean | undefined;
|
|
190
|
+
/** Skip the static (AST) analysis phase */
|
|
191
|
+
runtimeOnly?: boolean | undefined;
|
|
192
|
+
/** Project root directory */
|
|
193
|
+
projectRoot?: string | undefined;
|
|
194
|
+
/** AbortSignal to cancel in-progress runtime analysis (e.g. on SIGINT) */
|
|
195
|
+
signal?: AbortSignal | undefined;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Run the full RGAA analysis and return a report.
|
|
199
|
+
*/
|
|
200
|
+
declare function analyze(config: KodaRGAAConfig, options?: AnalysisOptions): Promise<RGAAReport>;
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Prefix used for axe-originated test IDs (e.g. "axe/image-alt").
|
|
204
|
+
* Used to distinguish axe issues from static-analysis issues in reports.
|
|
205
|
+
*/
|
|
206
|
+
declare const AXE_TEST_ID_PREFIX = "axe/";
|
|
207
|
+
/**
|
|
208
|
+
* Maps axe-core rule IDs to RGAA 4.1.2 criterion IDs.
|
|
209
|
+
*
|
|
210
|
+
* This mapping is the bridge between the WCAG-based axe-core results
|
|
211
|
+
* and the RGAA reference framework.
|
|
212
|
+
*
|
|
213
|
+
* Reference: https://www.w3.org/WAI/WCAG21/Techniques/
|
|
214
|
+
*/
|
|
215
|
+
declare const AXE_TO_RGAA: Readonly<Record<string, string[]>>;
|
|
216
|
+
/**
|
|
217
|
+
* Returns the RGAA criterion IDs for a given axe-core rule ID.
|
|
218
|
+
* Returns an empty array if the rule has no direct RGAA mapping.
|
|
219
|
+
*/
|
|
220
|
+
declare function getRGAACriteria(axeRuleId: string): string[];
|
|
221
|
+
/**
|
|
222
|
+
* Returns the axe-core rule IDs that map to a given RGAA criterion.
|
|
223
|
+
*/
|
|
224
|
+
declare function getAxeRulesForCriterion(criterionId: string): string[];
|
|
225
|
+
|
|
226
|
+
interface RuntimeAnalysisResult {
|
|
227
|
+
issues: RGAAIssue[];
|
|
228
|
+
pages: PageResult[];
|
|
229
|
+
durationMs: number;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Analyze all configured pages using a pool of browser instances.
|
|
233
|
+
*/
|
|
234
|
+
declare function runRuntimeAnalysis(baseUrl: string, pages: PageConfig[], exemptions?: ExemptionConfig[], signal?: AbortSignal): Promise<RuntimeAnalysisResult>;
|
|
235
|
+
|
|
236
|
+
interface StaticAnalysisResult {
|
|
237
|
+
issues: RGAAIssue[];
|
|
238
|
+
filesAnalyzed: number;
|
|
239
|
+
durationMs: number;
|
|
240
|
+
/** Number of files served from cache (0 when cache is disabled) */
|
|
241
|
+
cacheHits: number;
|
|
242
|
+
}
|
|
243
|
+
interface StaticAnalysisOptions {
|
|
244
|
+
/** Disable the incremental analysis cache */
|
|
245
|
+
noCache?: boolean | undefined;
|
|
246
|
+
}
|
|
247
|
+
declare function runStaticAnalysis(projectRoot: string, config?: StaticConfig, options?: StaticAnalysisOptions): Promise<StaticAnalysisResult>;
|
|
248
|
+
|
|
249
|
+
declare const ALL_STATIC_RULES: StaticRule[];
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Resolve the configuration file path.
|
|
253
|
+
* Returns null if no config file is found.
|
|
254
|
+
*/
|
|
255
|
+
declare function resolveConfigPath(cwd: string, explicitPath?: string): string | null;
|
|
256
|
+
/**
|
|
257
|
+
* Load and validate a eqo configuration file.
|
|
258
|
+
*
|
|
259
|
+
* Supports .ts, .js, .mjs (via dynamic import) and .json files.
|
|
260
|
+
*/
|
|
261
|
+
declare function loadConfig(cwd?: string, explicitPath?: string): Promise<KodaRGAAConfig>;
|
|
262
|
+
/**
|
|
263
|
+
* Generate a default configuration file content.
|
|
264
|
+
*/
|
|
265
|
+
declare function generateDefaultConfig(options?: {
|
|
266
|
+
baseUrl?: string;
|
|
267
|
+
projectName?: string;
|
|
268
|
+
locale?: string;
|
|
269
|
+
}): string;
|
|
270
|
+
|
|
271
|
+
declare const KodaRGAAConfigSchema: z.ZodObject<{
|
|
272
|
+
baseUrl: z.ZodString;
|
|
273
|
+
pages: z.ZodArray<z.ZodObject<{
|
|
274
|
+
path: z.ZodString;
|
|
275
|
+
name: z.ZodOptional<z.ZodString>;
|
|
276
|
+
}, z.core.$strip>>;
|
|
277
|
+
output: z.ZodArray<z.ZodObject<{
|
|
278
|
+
format: z.ZodEnum<{
|
|
279
|
+
json: "json";
|
|
280
|
+
html: "html";
|
|
281
|
+
sarif: "sarif";
|
|
282
|
+
markdown: "markdown";
|
|
283
|
+
junit: "junit";
|
|
284
|
+
}>;
|
|
285
|
+
path: z.ZodString;
|
|
286
|
+
minify: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
287
|
+
}, z.core.$strip>>;
|
|
288
|
+
thresholds: z.ZodOptional<z.ZodObject<{
|
|
289
|
+
complianceRate: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
290
|
+
failOn: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
291
|
+
error: "error";
|
|
292
|
+
threshold: "threshold";
|
|
293
|
+
none: "none";
|
|
294
|
+
}>>>;
|
|
295
|
+
}, z.core.$strip>>;
|
|
296
|
+
exemptions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
297
|
+
criterion: z.ZodString;
|
|
298
|
+
reason: z.ZodString;
|
|
299
|
+
}, z.core.$strip>>>>;
|
|
300
|
+
locale: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
301
|
+
projectName: z.ZodOptional<z.ZodString>;
|
|
302
|
+
static: z.ZodOptional<z.ZodObject<{
|
|
303
|
+
include: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
304
|
+
exclude: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
305
|
+
}, z.core.$strip>>;
|
|
306
|
+
}, z.core.$strip>;
|
|
307
|
+
type ValidatedConfig = z.infer<typeof KodaRGAAConfigSchema>;
|
|
308
|
+
|
|
309
|
+
declare const THEMES: ThemeDefinition[];
|
|
310
|
+
declare const ALL_CRITERIA: CriterionDefinition[];
|
|
311
|
+
declare const CRITERIA_BY_ID: Readonly<Record<string, CriterionDefinition>>;
|
|
312
|
+
declare const TOTAL_CRITERIA: number;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Structured error types for programmatic API consumers.
|
|
316
|
+
*/
|
|
317
|
+
declare class ConfigError extends Error {
|
|
318
|
+
readonly code: "CONFIG_ERROR";
|
|
319
|
+
constructor(message: string);
|
|
320
|
+
}
|
|
321
|
+
declare class AnalysisError extends Error {
|
|
322
|
+
readonly code: "ANALYSIS_ERROR";
|
|
323
|
+
constructor(message: string);
|
|
324
|
+
}
|
|
325
|
+
declare class TimeoutError extends Error {
|
|
326
|
+
readonly code: "TIMEOUT_ERROR";
|
|
327
|
+
constructor(message: string);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
interface Translations {
|
|
331
|
+
themes: Record<number, string>;
|
|
332
|
+
criteria: Record<string, string>;
|
|
333
|
+
tests: Record<string, string>;
|
|
334
|
+
issues: Record<string, string>;
|
|
335
|
+
remediation: Record<string, string>;
|
|
336
|
+
automationLevel: Record<string, string>;
|
|
337
|
+
criterionStatus: Record<string, string>;
|
|
338
|
+
severity: Record<string, string>;
|
|
339
|
+
report: {
|
|
340
|
+
title: string;
|
|
341
|
+
generated: string;
|
|
342
|
+
project: string;
|
|
343
|
+
pages: string;
|
|
344
|
+
summary: string;
|
|
345
|
+
totalCriteria: string;
|
|
346
|
+
applicable: string;
|
|
347
|
+
validated: string;
|
|
348
|
+
invalidated: string;
|
|
349
|
+
notApplicable: string;
|
|
350
|
+
needsReview: string;
|
|
351
|
+
complianceRate: string;
|
|
352
|
+
themes: string;
|
|
353
|
+
issues: string;
|
|
354
|
+
noIssues: string;
|
|
355
|
+
file: string;
|
|
356
|
+
line: string;
|
|
357
|
+
element: string;
|
|
358
|
+
page: string;
|
|
359
|
+
criterion: string;
|
|
360
|
+
test: string;
|
|
361
|
+
severity: string;
|
|
362
|
+
remediation: string;
|
|
363
|
+
automationDisclaimer: string;
|
|
364
|
+
};
|
|
365
|
+
cli: {
|
|
366
|
+
analyzing: string;
|
|
367
|
+
staticPhase: string;
|
|
368
|
+
runtimePhase: string;
|
|
369
|
+
reportWritten: string;
|
|
370
|
+
done: string;
|
|
371
|
+
failed: string;
|
|
372
|
+
thresholdExceeded: string;
|
|
373
|
+
noConfig: string;
|
|
374
|
+
configCreated: string;
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Load translations for the given locale.
|
|
380
|
+
* Falls back to "en-US" if the locale is not found.
|
|
381
|
+
*/
|
|
382
|
+
declare function loadTranslations(locale: SupportedLocale): Promise<Translations>;
|
|
383
|
+
/**
|
|
384
|
+
* Synchronously get cached translations.
|
|
385
|
+
* Must call loadTranslations() first.
|
|
386
|
+
*/
|
|
387
|
+
declare function getTranslations(locale: SupportedLocale): Translations;
|
|
388
|
+
/**
|
|
389
|
+
* Interpolate a translation string with named placeholders.
|
|
390
|
+
*
|
|
391
|
+
* @example
|
|
392
|
+
* interpolate("Hello {name}!", { name: "World" }) // → "Hello World!"
|
|
393
|
+
*/
|
|
394
|
+
declare function interpolate(template: string, context?: Record<string, string>): string;
|
|
395
|
+
/**
|
|
396
|
+
* Returns the list of supported locales.
|
|
397
|
+
*/
|
|
398
|
+
declare function getSupportedLocales(): SupportedLocale[];
|
|
399
|
+
|
|
400
|
+
declare function printReport(report: RGAAReport): void;
|
|
401
|
+
|
|
402
|
+
declare function writeHtmlReport(report: RGAAReport, outputConfig: OutputConfig): Promise<void>;
|
|
403
|
+
|
|
404
|
+
declare function writeJsonReport(report: RGAAReport, outputConfig: OutputConfig): Promise<void>;
|
|
405
|
+
|
|
406
|
+
declare function writeJunitReport(report: RGAAReport, outputConfig: OutputConfig): Promise<void>;
|
|
407
|
+
|
|
408
|
+
declare function writeMarkdownReport(report: RGAAReport, outputConfig: OutputConfig): Promise<void>;
|
|
409
|
+
|
|
410
|
+
declare function writeSarifReport(report: RGAAReport, outputConfig: OutputConfig): Promise<void>;
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Write all configured output formats for a report.
|
|
414
|
+
* Returns a list of written file paths.
|
|
415
|
+
*/
|
|
416
|
+
declare function writeReports(report: RGAAReport, outputs: OutputConfig[]): Promise<string[]>;
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* kodalabs-io/eqo — RGAA v4.1.2 accessibility compliance analyzer
|
|
420
|
+
*
|
|
421
|
+
* Programmatic API for use as a library in your own scripts or tools.
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```typescript
|
|
425
|
+
* import { analyze, loadConfig } from "@kodalabs-io/eqo";
|
|
426
|
+
*
|
|
427
|
+
* const config = await loadConfig();
|
|
428
|
+
* const report = await analyze(config);
|
|
429
|
+
* console.log(`Compliance: ${Math.round(report.summary.complianceRate * 100)}%`);
|
|
430
|
+
* ```
|
|
431
|
+
*/
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Config helper for type-safe configuration files.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ```typescript
|
|
438
|
+
* // rgaa.config.ts
|
|
439
|
+
* import { defineConfig } from "@kodalabs-io/eqo";
|
|
440
|
+
* export default defineConfig({ ... });
|
|
441
|
+
* ```
|
|
442
|
+
*/
|
|
443
|
+
declare function defineConfig(config: KodaRGAAConfig): KodaRGAAConfig;
|
|
444
|
+
|
|
445
|
+
export { ALL_CRITERIA, ALL_STATIC_RULES, AXE_TEST_ID_PREFIX, AXE_TO_RGAA, AnalysisError, type AnalysisPhase, type AutomationLevel, CRITERIA_BY_ID, ConfigError, type CriterionDefinition, type CriterionResult, type CriterionStatus, type ExemptionConfig, type IssueSeverity, type KodaRGAAConfig, KodaRGAAConfigSchema, type OutputConfig, type OutputFormat, type PageConfig, type PageResult, type RGAAIssue, type RGAAReport, type ReportSummary, type RuleResult, type RuntimeRule, type RuntimeRuleContext, type StaticConfig, type StaticRule, type StaticRuleContext, type SupportedLocale, THEMES, TOTAL_CRITERIA, type TestDefinition, type ThemeDefinition, type ThemeResult, type ThresholdConfig, TimeoutError, type ValidatedConfig, type WCAGLevel, analyze, buildReport, defineConfig, generateDefaultConfig, getAxeRulesForCriterion, getRGAACriteria, getSupportedLocales, getTranslations, interpolate, loadConfig, loadTranslations, printReport, resolveConfigPath, runRuntimeAnalysis, runStaticAnalysis, writeHtmlReport, writeJsonReport, writeJunitReport, writeMarkdownReport, writeReports, writeSarifReport };
|