@code-pushup/axe-plugin 0.99.0 → 0.100.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/axe-plugin",
3
- "version": "0.99.0",
3
+ "version": "0.100.1",
4
4
  "license": "MIT",
5
5
  "description": "Code PushUp plugin for detecting accessibility issues using Axe 🌐",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-axe#readme",
@@ -42,8 +42,8 @@
42
42
  "type": "module",
43
43
  "dependencies": {
44
44
  "@axe-core/playwright": "^4.11.0",
45
- "@code-pushup/models": "0.99.0",
46
- "@code-pushup/utils": "0.99.0",
45
+ "@code-pushup/models": "0.100.1",
46
+ "@code-pushup/utils": "0.100.1",
47
47
  "axe-core": "^4.11.0",
48
48
  "playwright-core": "^1.56.1",
49
49
  "zod": "^4.1.12"
@@ -2,8 +2,8 @@ import { createRequire } from 'node:module';
2
2
  import { validate, } from '@code-pushup/models';
3
3
  import { normalizeUrlInput } from '@code-pushup/utils';
4
4
  import { axePluginOptionsSchema } from './config.js';
5
- import { AXE_PLUGIN_SLUG } from './constants.js';
6
- import { processAuditsAndGroups } from './processing.js';
5
+ import { AXE_PLUGIN_SLUG, AXE_PLUGIN_TITLE } from './constants.js';
6
+ import { processAuditsAndGroups } from './meta/processing.js';
7
7
  import { createRunnerFunction } from './runner/runner.js';
8
8
  /**
9
9
  * Code PushUp plugin for accessibility testing using axe-core.
@@ -20,12 +20,12 @@ export function axePlugin(urls, options = {}) {
20
20
  const packageJson = createRequire(import.meta.url)('../../package.json');
21
21
  return {
22
22
  slug: AXE_PLUGIN_SLUG,
23
- packageName: packageJson.name,
24
- version: packageJson.version,
25
- title: 'Axe Accessibility',
23
+ title: AXE_PLUGIN_TITLE,
26
24
  icon: 'folder-syntax',
27
25
  description: 'Official Code PushUp Axe plugin for automated accessibility testing',
28
26
  docsUrl: 'https://www.npmjs.com/package/@code-pushup/axe-plugin',
27
+ packageName: packageJson.name,
28
+ version: packageJson.version,
29
29
  audits,
30
30
  groups,
31
31
  runner: createRunnerFunction(normalizedUrls, ruleIds, timeout),
@@ -1 +1 @@
1
- {"version":3,"file":"axe-plugin.js","sourceRoot":"","sources":["../../../src/lib/axe-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGL,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAyB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,IAAgB,EAChB,UAA4B,EAAE;IAE9B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,QAAQ,CAChD,sBAAsB,EACtB,OAAO,CACR,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAElE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CACxD,cAAc,EACd,MAAM,CACP,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qEAAqE;QACvE,OAAO,EAAE,uDAAuD;QAChE,MAAM;QACN,MAAM;QACN,MAAM,EAAE,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9D,OAAO;QACP,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"axe-plugin.js","sourceRoot":"","sources":["../../../src/lib/axe-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGL,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAyB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CACvB,IAAgB,EAChB,UAA4B,EAAE;IAE9B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,QAAQ,CAChD,sBAAsB,EACtB,OAAO,CACR,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAElE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CACxD,cAAc,EACd,MAAM,CACP,CAAC;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAChD,oBAAoB,CACkB,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,qEAAqE;QACvE,OAAO,EAAE,uDAAuD;QAChE,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,MAAM;QACN,MAAM;QACN,MAAM,EAAE,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC;QAC9D,OAAO;QACP,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,6 @@
1
+ import type { AxePreset } from './config.js';
1
2
  export declare const AXE_PLUGIN_SLUG = "axe";
3
+ export declare const AXE_PLUGIN_TITLE = "Axe";
2
4
  export declare const AXE_DEFAULT_PRESET = "wcag21aa";
3
5
  export declare const DEFAULT_TIMEOUT_MS = 30000;
6
+ export declare const AXE_PRESET_NAMES: Record<AxePreset, string>;
@@ -1,4 +1,11 @@
1
1
  export const AXE_PLUGIN_SLUG = 'axe';
2
+ export const AXE_PLUGIN_TITLE = 'Axe';
2
3
  export const AXE_DEFAULT_PRESET = 'wcag21aa';
3
4
  export const DEFAULT_TIMEOUT_MS = 30_000;
5
+ export const AXE_PRESET_NAMES = {
6
+ wcag21aa: 'WCAG 2.1 AA',
7
+ wcag22aa: 'WCAG 2.2 AA',
8
+ 'best-practice': 'Best practices',
9
+ all: 'All',
10
+ };
4
11
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,aAAa;IACvB,eAAe,EAAE,gBAAgB;IACjC,GAAG,EAAE,KAAK;CACX,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const formatMetaLog: (message: string) => string;
@@ -0,0 +1,4 @@
1
+ import { pluginMetaLogFormatter } from '@code-pushup/utils';
2
+ import { AXE_PLUGIN_TITLE } from '../constants.js';
3
+ export const formatMetaLog = pluginMetaLogFormatter(AXE_PLUGIN_TITLE);
4
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/lib/meta/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Audit, Group } from '@code-pushup/models';
2
- import type { AxePreset } from './config.js';
2
+ import type { AxePreset } from '../config.js';
3
3
  export declare function processAuditsAndGroups(urls: string[], preset: AxePreset): {
4
4
  audits: Audit[];
5
5
  groups: Group[];
@@ -0,0 +1,21 @@
1
+ import ansis from 'ansis';
2
+ import { expandAuditsForUrls, expandGroupsForUrls, logger, pluralizeToken, shouldExpandForUrls, } from '@code-pushup/utils';
3
+ import { AXE_PRESET_NAMES } from '../constants.js';
4
+ import { formatMetaLog } from './format.js';
5
+ import { loadAxeRules, transformRulesToAudits, transformRulesToGroups, } from './transform.js';
6
+ export function processAuditsAndGroups(urls, preset) {
7
+ const rules = loadAxeRules(preset);
8
+ const ruleIds = rules.map(({ ruleId }) => ruleId);
9
+ const audits = transformRulesToAudits(rules);
10
+ const groups = transformRulesToGroups(rules);
11
+ logger.info(formatMetaLog(`Loaded ${pluralizeToken('Axe rule', rules.length)} for ${ansis.bold(AXE_PRESET_NAMES[preset])} preset, mapped to audits`));
12
+ logger.info(formatMetaLog(`Created ${pluralizeToken('group', groups.length)} from Axe categories`));
13
+ if (!shouldExpandForUrls(urls.length)) {
14
+ return { audits, groups, ruleIds };
15
+ }
16
+ const expandedAudits = expandAuditsForUrls(audits, urls);
17
+ const expandedGroups = expandGroupsForUrls(groups, urls);
18
+ logger.info(formatMetaLog(`Expanded audits (${audits.length} → ${expandedAudits.length}) and groups (${groups.length} → ${expandedGroups.length}) for ${pluralizeToken('URL', urls.length)}`));
19
+ return { audits: expandedAudits, groups: expandedGroups, ruleIds };
20
+ }
21
+ //# sourceMappingURL=processing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processing.js","sourceRoot":"","sources":["../../../../src/lib/meta/processing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,EACN,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,sBAAsB,CACpC,IAAc,EACd,MAAiB;IAMjB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,CACT,aAAa,CACX,UAAU,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,2BAA2B,CAC1H,CACF,CAAC;IACF,MAAM,CAAC,IAAI,CACT,aAAa,CACX,WAAW,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CACxE,CACF,CAAC;IAEF,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CACT,aAAa,CACX,oBAAoB,MAAM,CAAC,MAAM,MAAM,cAAc,CAAC,MAAM,iBAAiB,MAAM,CAAC,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CACnK,CACF,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;AACrE,CAAC"}
@@ -1,3 +1,16 @@
1
+ import type { AxeResults } from 'axe-core';
1
2
  import type { AuditOutputs } from '@code-pushup/models';
2
- export declare function runAxeForUrl(url: string, ruleIds: string[], timeout: number): Promise<AuditOutputs>;
3
+ export type AxeUrlArgs = {
4
+ url: string;
5
+ urlIndex: number;
6
+ urlsCount: number;
7
+ ruleIds: string[];
8
+ timeout: number;
9
+ };
10
+ export type AxeUrlResult = {
11
+ url: string;
12
+ axeResults: AxeResults;
13
+ auditOutputs: AuditOutputs;
14
+ };
15
+ export declare function runAxeForUrl(args: AxeUrlArgs): Promise<AxeUrlResult>;
3
16
  export declare function closeBrowser(): Promise<void>;
@@ -1,39 +1,35 @@
1
1
  import { AxeBuilder } from '@axe-core/playwright';
2
+ import ansis from 'ansis';
2
3
  import { createRequire } from 'node:module';
3
4
  import path from 'node:path';
4
5
  import { chromium } from 'playwright-core';
5
- import { executeProcess, logger, pluralizeToken, stringifyError, } from '@code-pushup/utils';
6
+ import { executeProcess, formatAsciiTable, indentLines, logger, pluralizeToken, } from '@code-pushup/utils';
6
7
  import { toAuditOutputs } from './transform.js';
7
8
  /* eslint-disable functional/no-let */
8
9
  let browser;
9
10
  let browserChecked = false;
10
- /* eslint-enable functional/no-let */
11
- export async function runAxeForUrl(url, ruleIds, timeout) {
12
- try {
13
- if (!browser) {
14
- await ensureBrowserInstalled();
15
- logger.debug('Launching Chromium browser...');
16
- browser = await chromium.launch({ headless: true });
17
- }
11
+ export async function runAxeForUrl(args) {
12
+ const { url, urlIndex, urlsCount } = args;
13
+ if (!browser) {
14
+ await ensureBrowserInstalled();
15
+ browser = await logger.task('Launching Chromium browser', async () => ({
16
+ message: 'Launched Chromium browser',
17
+ result: await chromium.launch({ headless: true }),
18
+ }));
19
+ }
20
+ const prefix = ansis.gray(`[${urlIndex + 1}/${urlsCount}]`);
21
+ return await logger.task(`${prefix} Analyzing URL ${url}`, async () => {
22
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
18
23
  const context = await browser.newContext();
19
24
  try {
20
25
  const page = await context.newPage();
21
26
  try {
22
- await page.goto(url, {
23
- waitUntil: 'networkidle',
24
- timeout,
25
- });
26
- const axeBuilder = new AxeBuilder({ page });
27
- // Use withRules() to include experimental/deprecated rules
28
- if (ruleIds.length > 0) {
29
- axeBuilder.withRules(ruleIds);
30
- }
31
- const results = await axeBuilder.analyze();
32
- const incompleteCount = results.incomplete.length;
33
- if (incompleteCount > 0) {
34
- logger.warn(`Axe returned ${pluralizeToken('incomplete result', incompleteCount)} for ${url}`);
35
- }
36
- return toAuditOutputs(results, url);
27
+ const axeResults = await runAxeForPage(page, args);
28
+ const auditOutputs = toAuditOutputs(axeResults, url);
29
+ return {
30
+ message: `${prefix} Analyzed URL ${url}`,
31
+ result: { url, axeResults, auditOutputs },
32
+ };
37
33
  }
38
34
  finally {
39
35
  await page.close();
@@ -42,16 +38,47 @@ export async function runAxeForUrl(url, ruleIds, timeout) {
42
38
  finally {
43
39
  await context.close();
44
40
  }
41
+ });
42
+ }
43
+ async function runAxeForPage(page, { url, ruleIds, timeout }) {
44
+ await page.goto(url, {
45
+ waitUntil: 'networkidle',
46
+ timeout,
47
+ });
48
+ const axeBuilder = new AxeBuilder({ page });
49
+ // Use withRules() to include experimental/deprecated rules
50
+ if (ruleIds.length > 0) {
51
+ axeBuilder.withRules(ruleIds);
45
52
  }
46
- catch (error) {
47
- logger.error(`Axe execution failed for ${url}: ${stringifyError(error)}`);
48
- throw error;
53
+ const results = await axeBuilder.analyze();
54
+ logger.debug(formatAsciiTable({
55
+ columns: ['left', 'right'],
56
+ rows: [
57
+ ['Passes', results.passes.length],
58
+ ['Violations', results.violations.length],
59
+ ['Incomplete', results.incomplete.length],
60
+ ['Inapplicable', results.inapplicable.length],
61
+ ],
62
+ }));
63
+ if (results.incomplete.length > 0) {
64
+ logger.warn(`Axe returned ${pluralizeToken('incomplete result', results.incomplete.length)}`);
65
+ logger.debug(results.incomplete
66
+ .flatMap(res => [
67
+ `• ${res.id}`,
68
+ indentLines(res.nodes
69
+ .flatMap(node => [...node.all, ...node.any])
70
+ .map(check => `- ${check.message}`)
71
+ .join('\n'), 2),
72
+ ])
73
+ .join('\n'));
49
74
  }
75
+ return results;
50
76
  }
51
77
  export async function closeBrowser() {
52
78
  if (browser) {
53
79
  await browser.close();
54
80
  browser = undefined;
81
+ logger.debug('Closed Chromium browser');
55
82
  }
56
83
  }
57
84
  /**
@@ -64,7 +91,7 @@ async function ensureBrowserInstalled() {
64
91
  if (browserChecked) {
65
92
  return;
66
93
  }
67
- logger.debug('Checking Chromium browser installation...');
94
+ logger.debug('Checking Chromium browser installation ...');
68
95
  const require = createRequire(import.meta.url);
69
96
  const pkgPath = require.resolve('playwright-core/package.json');
70
97
  const pkg = require(pkgPath);
@@ -1 +1 @@
1
- {"version":3,"file":"run-axe.js","sourceRoot":"","sources":["../../../../src/lib/runner/run-axe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-axe.js","sourceRoot":"","sources":["../../../../src/lib/runner/run-axe.ts"],"names":[],"mappings":"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"}
@@ -1,41 +1,62 @@
1
- import { addIndex, logger, pluralizeToken, shouldExpandForUrls, stringifyError, } from '@code-pushup/utils';
2
- import { closeBrowser, runAxeForUrl } from './run-axe.js';
1
+ import { addIndex, asyncSequential, formatAsciiTable, logger, pluralizeToken, shouldExpandForUrls, stringifyError, } from '@code-pushup/utils';
2
+ import { closeBrowser, runAxeForUrl, } from './run-axe.js';
3
3
  export function createRunnerFunction(urls, ruleIds, timeout) {
4
- return async (_runnerArgs) => {
5
- const urlCount = urls.length;
6
- const isSingleUrl = !shouldExpandForUrls(urlCount);
7
- logger.info(`Running Axe accessibility checks for ${pluralizeToken('URL', urlCount)}...`);
4
+ return async () => {
5
+ const urlsCount = urls.length;
6
+ logger.info(`Running Axe accessibility checks for ${pluralizeToken('URL', urlsCount)} ...`);
8
7
  try {
9
- const allResults = await urls.reduce(async (prev, url, index) => {
10
- const acc = await prev;
11
- logger.debug(`Testing URL ${index + 1}/${urlCount}: ${url}`);
12
- try {
13
- const auditOutputs = await runAxeForUrl(url, ruleIds, timeout);
14
- const processedOutputs = isSingleUrl
15
- ? auditOutputs
16
- : auditOutputs.map(audit => ({
17
- ...audit,
18
- slug: addIndex(audit.slug, index),
19
- }));
20
- return [...acc, ...processedOutputs];
21
- }
22
- catch (error) {
23
- logger.warn(stringifyError(error));
24
- return acc;
25
- }
26
- }, Promise.resolve([]));
27
- const totalAuditCount = allResults.length;
28
- if (totalAuditCount === 0) {
29
- throw new Error(isSingleUrl
30
- ? 'Axe did not produce any results.'
31
- : 'Axe failed to produce results for all URLs.');
8
+ const results = await asyncSequential(urls, async (url, urlIndex) => runForUrl({ urlsCount, ruleIds, timeout, url, urlIndex }));
9
+ const collectedResults = results.filter(res => res != null);
10
+ const auditOutputs = collectedResults.flatMap(res => res.auditOutputs);
11
+ if (collectedResults.length === 0) {
12
+ throw new Error(shouldExpandForUrls(urlsCount)
13
+ ? 'Axe failed to produce results for all URLs.'
14
+ : 'Axe did not produce any results.');
32
15
  }
33
- logger.info(`Completed Axe accessibility checks with ${pluralizeToken('audit', totalAuditCount)}`);
34
- return allResults;
16
+ logResultsForAllUrls(collectedResults);
17
+ return auditOutputs;
35
18
  }
36
19
  finally {
37
20
  await closeBrowser();
38
21
  }
39
22
  };
40
23
  }
24
+ async function runForUrl(args) {
25
+ const { url, urlsCount, urlIndex } = args;
26
+ try {
27
+ const result = await runAxeForUrl(args);
28
+ if (shouldExpandForUrls(urlsCount)) {
29
+ return {
30
+ ...result,
31
+ auditOutputs: result.auditOutputs.map(audit => ({
32
+ ...audit,
33
+ slug: addIndex(audit.slug, urlIndex),
34
+ })),
35
+ };
36
+ }
37
+ return result;
38
+ }
39
+ catch (error) {
40
+ logger.warn(`Axe execution failed for ${url}: ${stringifyError(error)}`);
41
+ return null;
42
+ }
43
+ }
44
+ function logResultsForAllUrls(results) {
45
+ logger.info(formatAsciiTable({
46
+ columns: [
47
+ { key: 'url', label: 'URL', align: 'left' },
48
+ { key: 'passes', label: 'Passes', align: 'right' },
49
+ { key: 'violations', label: 'Violations', align: 'right' },
50
+ { key: 'incomplete', label: 'Incomplete', align: 'right' },
51
+ { key: 'inapplicable', label: 'Inapplicable', align: 'right' },
52
+ ],
53
+ rows: results.map(res => ({
54
+ url: res.url,
55
+ passes: res.axeResults.passes.length,
56
+ violations: res.axeResults.violations.length,
57
+ incomplete: res.axeResults.incomplete.length,
58
+ inapplicable: res.axeResults.inapplicable.length,
59
+ })),
60
+ }));
61
+ }
41
62
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EACR,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,OAAiB,EACjB,OAAe;IAEf,OAAO,KAAK,EAAE,WAAwB,EAAyB,EAAE;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,WAAW,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,CAAC,IAAI,CACT,wCAAwC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAC7E,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;gBAEvB,MAAM,CAAC,KAAK,CAAC,eAAe,KAAK,GAAG,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;gBAE7D,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBAE/D,MAAM,gBAAgB,GAAG,WAAW;wBAClC,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BACzB,GAAG,KAAK;4BACR,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;yBAClC,CAAC,CAAC,CAAC;oBAER,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,gBAAgB,CAAC,CAAC;gBACvC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnC,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC,EAAE,OAAO,CAAC,OAAO,CAAe,EAAE,CAAC,CAAC,CAAC;YAEtC,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC;YAE1C,IAAI,eAAe,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,WAAW;oBACT,CAAC,CAAC,kCAAkC;oBACpC,CAAC,CAAC,6CAA6C,CAClD,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CACT,2CAA2C,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CACtF,CAAC;YAEF,OAAO,UAAU,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../src/lib/runner/runner.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { expandAuditsForUrls, expandGroupsForUrls, shouldExpandForUrls, } from '@code-pushup/utils';
2
- import { loadAxeRules, transformRulesToAudits, transformRulesToGroups, } from './meta/transform.js';
3
- export function processAuditsAndGroups(urls, preset) {
4
- const rules = loadAxeRules(preset);
5
- const ruleIds = rules.map(({ ruleId }) => ruleId);
6
- const audits = transformRulesToAudits(rules);
7
- const groups = transformRulesToGroups(rules);
8
- if (!shouldExpandForUrls(urls.length)) {
9
- return { audits, groups, ruleIds };
10
- }
11
- return {
12
- audits: expandAuditsForUrls(audits, urls),
13
- groups: expandGroupsForUrls(groups, urls),
14
- ruleIds,
15
- };
16
- }
17
- //# sourceMappingURL=processing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processing.js","sourceRoot":"","sources":["../../../src/lib/processing.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,sBAAsB,CACpC,IAAc,EACd,MAAiB;IAMjB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QACzC,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QACzC,OAAO;KACR,CAAC;AACJ,CAAC"}