Skip to content

Commit 1550240

Browse files
authored
Merge branch 'main' into axe-auth-support
2 parents 7639b33 + 91f50cf commit 1550240

36 files changed

+1037
-647
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## 0.106.0 (2026-01-15)
2+
3+
### 🚀 Features
4+
5+
- multi-URL aware helpers for cross-plugin composition ([6bfad3ce](https://github.com/code-pushup/cli/commit/6bfad3ce))
6+
7+
### ❤️ Thank You
8+
9+
- hanna-skryl
10+
111
## 0.105.0 (2026-01-14)
212

313
### 🚀 Features

code-pushup.preset.ts

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
/* eslint-disable @nx/enforce-module-boundaries */
22
import { createProjectGraphAsync } from '@nx/devkit';
3-
import type {
4-
CategoryConfig,
5-
CoreConfig,
6-
PluginUrls,
7-
} from './packages/models/src/index.js';
3+
import type { CoreConfig, PluginUrls } from './packages/models/src/index.js';
84
import axePlugin, {
95
type AxePluginOptions,
106
axeCategories,
@@ -19,8 +15,7 @@ import eslintPlugin, {
1915
import jsPackagesPlugin from './packages/plugin-js-packages/src/index.js';
2016
import jsDocsPlugin from './packages/plugin-jsdocs/src/index.js';
2117
import {
22-
lighthouseCategories,
23-
lighthouseGroupRef,
18+
lighthouseGroupRefs,
2419
lighthousePlugin,
2520
} from './packages/plugin-lighthouse/src/index.js';
2621
import typescriptPlugin, {
@@ -198,31 +193,30 @@ export async function configureLighthousePlugin(
198193
urls: PluginUrls,
199194
): Promise<CoreConfig> {
200195
const lhPlugin = await lighthousePlugin(urls);
201-
const lhCategories: CategoryConfig[] = [
202-
{
203-
slug: 'performance',
204-
title: 'Performance',
205-
refs: [lighthouseGroupRef('performance')],
206-
},
207-
{
208-
slug: 'a11y',
209-
title: 'Accessibility',
210-
refs: [lighthouseGroupRef('accessibility')],
211-
},
212-
{
213-
slug: 'best-practices',
214-
title: 'Best Practices',
215-
refs: [lighthouseGroupRef('best-practices')],
216-
},
217-
{
218-
slug: 'seo',
219-
title: 'SEO',
220-
refs: [lighthouseGroupRef('seo')],
221-
},
222-
];
223196
return {
224197
plugins: [lhPlugin],
225-
categories: lighthouseCategories(lhPlugin, lhCategories),
198+
categories: [
199+
{
200+
slug: 'performance',
201+
title: 'Performance',
202+
refs: lighthouseGroupRefs(lhPlugin, 'performance'),
203+
},
204+
{
205+
slug: 'a11y',
206+
title: 'Accessibility',
207+
refs: lighthouseGroupRefs(lhPlugin, 'accessibility'),
208+
},
209+
{
210+
slug: 'best-practices',
211+
title: 'Best Practices',
212+
refs: lighthouseGroupRefs(lhPlugin, 'best-practices'),
213+
},
214+
{
215+
slug: 'seo',
216+
title: 'SEO',
217+
refs: lighthouseGroupRefs(lhPlugin, 'seo'),
218+
},
219+
],
226220
};
227221
}
228222

@@ -233,6 +227,12 @@ export function configureAxePlugin(
233227
const axe = axePlugin(urls, options);
234228
return {
235229
plugins: [axe],
236-
categories: axeCategories(axe),
230+
categories: [
231+
{
232+
slug: 'axe-a11y',
233+
title: 'Axe Accessibility',
234+
refs: axeGroupRefs(axe),
235+
},
236+
],
237237
};
238238
}

packages/ci/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code-pushup/ci",
3-
"version": "0.105.0",
3+
"version": "0.106.0",
44
"description": "CI automation logic for Code PushUp (provider-agnostic)",
55
"license": "MIT",
66
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme",
@@ -26,9 +26,9 @@
2626
},
2727
"type": "module",
2828
"dependencies": {
29-
"@code-pushup/models": "0.105.0",
29+
"@code-pushup/models": "0.106.0",
3030
"@code-pushup/portal-client": "^0.16.0",
31-
"@code-pushup/utils": "0.105.0",
31+
"@code-pushup/utils": "0.106.0",
3232
"ansis": "^3.3.2",
3333
"glob": "^11.0.1",
3434
"simple-git": "^3.20.0",

packages/cli/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code-pushup/cli",
3-
"version": "0.105.0",
3+
"version": "0.106.0",
44
"license": "MIT",
55
"description": "A CLI to run all kinds of code quality measurements to align your team with company goals",
66
"homepage": "https://code-pushup.dev",
@@ -45,9 +45,9 @@
4545
"node": ">=20"
4646
},
4747
"dependencies": {
48-
"@code-pushup/models": "0.105.0",
49-
"@code-pushup/core": "0.105.0",
50-
"@code-pushup/utils": "0.105.0",
48+
"@code-pushup/models": "0.106.0",
49+
"@code-pushup/core": "0.106.0",
50+
"@code-pushup/utils": "0.106.0",
5151
"yargs": "^17.7.2",
5252
"ansis": "^3.3.0",
5353
"simple-git": "^3.20.0"

packages/core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code-pushup/core",
3-
"version": "0.105.0",
3+
"version": "0.106.0",
44
"license": "MIT",
55
"description": "Core business logic for the used by the Code PushUp CLI",
66
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/core#readme",
@@ -39,8 +39,8 @@
3939
},
4040
"type": "module",
4141
"dependencies": {
42-
"@code-pushup/models": "0.105.0",
43-
"@code-pushup/utils": "0.105.0",
42+
"@code-pushup/models": "0.106.0",
43+
"@code-pushup/utils": "0.106.0",
4444
"ansis": "^3.3.0"
4545
},
4646
"peerDependencies": {

packages/create-cli/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@code-pushup/create-cli",
3-
"version": "0.105.0",
3+
"version": "0.106.0",
44
"license": "MIT",
55
"bin": "index.js",
66
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/create-cli#readme",
@@ -26,8 +26,8 @@
2626
},
2727
"type": "module",
2828
"dependencies": {
29-
"@code-pushup/nx-plugin": "0.105.0",
30-
"@code-pushup/utils": "0.105.0"
29+
"@code-pushup/nx-plugin": "0.106.0",
30+
"@code-pushup/utils": "0.106.0"
3131
},
3232
"files": [
3333
"src",

packages/models/docs/models-reference.md

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ _All properties are optional._
2525

2626
_Object containing the following properties:_
2727

28-
| Property | Description | Type |
29-
| :----------------------- | :----------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
30-
| **`slug`** (\*) | Unique ID (human-readable, URL-safe) | [Slug](#slug) |
31-
| **`title`** (\*) | Descriptive name | `string` (_max length: 256_) |
32-
| `docsUrl` | Documentation site | `''` _or_ `string` (_url_) (_optional_) |
33-
| **`scores`** (\*) | Score comparison | _Object with properties:_<ul><li>**`before`** (\*): [Score](#score) - Value between 0 and 1 (source commit)</li><li>**`after`** (\*): [Score](#score) - Value between 0 and 1 (target commit)</li><li>**`diff`** (\*): `number` (_≥-1, ≤1_) - Score change (`scores.after - scores.before`)</li></ul> |
34-
| **`plugin`** (\*) | Plugin which defines it | _Object with properties:_<ul><li>**`slug`** (\*): [Slug](#slug) - Unique plugin slug within core config</li><li>**`title`** (\*): `string` (_max length: 256_) - Descriptive name</li><li>`docsUrl`: `''` _or_ `string` (_url_) (_optional_) - Plugin documentation site</li></ul> |
35-
| **`values`** (\*) | Audit `value` comparison | _Object with properties:_<ul><li>**`before`** (\*): `number` (_≥0_) - Raw numeric value (source commit)</li><li>**`after`** (\*): `number` (_≥0_) - Raw numeric value (target commit)</li><li>**`diff`** (\*): `number` - Value change (`values.after - values.before`)</li></ul> |
36-
| **`displayValues`** (\*) | Audit `displayValue` comparison | _Object with properties:_<ul><li>`before`: `string` - Formatted value (e.g. '0.9 s', '2.1 MB') (source commit)</li><li>`after`: `string` - Formatted value (e.g. '0.9 s', '2.1 MB') (target commit)</li></ul> |
28+
| Property | Description | Type |
29+
| :----------------------- | :----------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
30+
| **`slug`** (\*) | Unique ID (human-readable, URL-safe) | [Slug](#slug) |
31+
| **`title`** (\*) | Descriptive name | `string` (_max length: 256_) |
32+
| `docsUrl` | Documentation site | `''` _or_ `string` (_url_) (_optional_) |
33+
| **`scores`** (\*) | Score comparison | _Object with properties:_<ul><li>**`before`** (\*): [Score](#score) - Value between 0 and 1 (source commit)</li><li>**`after`** (\*): [Score](#score) - Value between 0 and 1 (target commit)</li><li>**`diff`** (\*): `number` (_≥-1, ≤1_) - Score change (`scores.after - scores.before`)</li></ul> |
34+
| **`plugin`** (\*) | Plugin which defines it | _Object with properties:_<ul><li>**`slug`** (\*): [Slug](#slug) - Unique plugin slug within core config</li><li>**`title`** (\*): `string` (_max length: 256_) - Descriptive name</li><li>`docsUrl`: `''` _or_ `string` (_url_) (_optional_) - Plugin documentation site</li></ul> |
35+
| **`values`** (\*) | Audit `value` comparison | _Object with properties:_<ul><li>**`before`** (\*): [NonnegativeNumber](#nonnegativenumber) - Raw numeric value (source commit)</li><li>**`after`** (\*): [NonnegativeNumber](#nonnegativenumber) - Raw numeric value (target commit)</li><li>**`diff`** (\*): `number` - Value change (`values.after - values.before`)</li></ul> |
36+
| **`displayValues`** (\*) | Audit `displayValue` comparison | _Object with properties:_<ul><li>`before`: `string` - Formatted value (e.g. '0.9 s', '2.1 MB') (source commit)</li><li>`after`: `string` - Formatted value (e.g. '0.9 s', '2.1 MB') (target commit)</li></ul> |
3737

3838
_(\*) Required._
3939

@@ -43,14 +43,14 @@ Audit information
4343

4444
_Object containing the following properties:_
4545

46-
| Property | Description | Type |
47-
| :--------------- | :--------------------------------------- | :---------------------------- |
48-
| **`slug`** (\*) | Reference to audit | [Slug](#slug) |
49-
| `displayValue` | Formatted value (e.g. '0.9 s', '2.1 MB') | `string` |
50-
| **`value`** (\*) | Raw numeric value | `number` (_≥0_) |
51-
| **`score`** (\*) | Value between 0 and 1 | [Score](#score) |
52-
| `scoreTarget` | Pass/fail score threshold (0-1) | `number` (_≥0, ≤1_) |
53-
| `details` | Detailed information | [AuditDetails](#auditdetails) |
46+
| Property | Description | Type |
47+
| :--------------- | :--------------------------------------- | :-------------------------------------- |
48+
| **`slug`** (\*) | Reference to audit | [Slug](#slug) |
49+
| `displayValue` | Formatted value (e.g. '0.9 s', '2.1 MB') | `string` |
50+
| **`value`** (\*) | Raw numeric value | [NonnegativeNumber](#nonnegativenumber) |
51+
| **`score`** (\*) | Value between 0 and 1 | [Score](#score) |
52+
| `scoreTarget` | Pass/fail score threshold (0-1) | `number` (_≥0, ≤1_) |
53+
| `details` | Detailed information | [AuditDetails](#auditdetails) |
5454

5555
_(\*) Required._
5656

@@ -72,7 +72,7 @@ _Object containing the following properties:_
7272
| `docsUrl` | Link to documentation (rationale) | `''` _or_ `string` (_url_) (_optional_) |
7373
| `isSkipped` | Indicates whether the audit is skipped | `boolean` |
7474
| `displayValue` | Formatted value (e.g. '0.9 s', '2.1 MB') | `string` |
75-
| **`value`** (\*) | Raw numeric value | `number` (_≥0_) |
75+
| **`value`** (\*) | Raw numeric value | [NonnegativeNumber](#nonnegativenumber) |
7676
| **`score`** (\*) | Value between 0 and 1 | [Score](#score) |
7777
| `scoreTarget` | Pass/fail score threshold (0-1) | `number` (_≥0, ≤1_) |
7878
| `details` | Detailed information | [AuditDetails](#auditdetails) |
@@ -90,7 +90,7 @@ _Object containing the following properties:_
9090
| `docsUrl` | Documentation site | `''` _or_ `string` (_url_) (_optional_) |
9191
| **`plugin`** (\*) | Plugin which defines it | _Object with properties:_<ul><li>**`slug`** (\*): [Slug](#slug) - Unique plugin slug within core config</li><li>**`title`** (\*): `string` (_max length: 256_) - Descriptive name</li><li>`docsUrl`: `''` _or_ `string` (_url_) (_optional_) - Plugin documentation site</li></ul> |
9292
| **`score`** (\*) | Value between 0 and 1 | [Score](#score) |
93-
| **`value`** (\*) | Raw numeric value | `number` (_≥0_) |
93+
| **`value`** (\*) | Raw numeric value | [NonnegativeNumber](#nonnegativenumber) |
9494
| `displayValue` | Formatted value (e.g. '0.9 s', '2.1 MB') | `string` |
9595

9696
_(\*) Required._
@@ -198,12 +198,12 @@ _(\*) Required._
198198

199199
_Object containing the following properties:_
200200

201-
| Property | Description | Type |
202-
| :---------------- | :----------------------------------------------------------------- | :------------------- |
203-
| **`slug`** (\*) | Slug of an audit or group (depending on `type`) | [Slug](#slug) |
204-
| **`weight`** (\*) | Weight used to calculate score | `number` (_≥0_) |
205-
| **`type`** (\*) | Discriminant for reference kind, affects where `slug` is looked up | `'audit' \| 'group'` |
206-
| **`plugin`** (\*) | Plugin slug (plugin should contain referenced audit or group) | [Slug](#slug) |
201+
| Property | Description | Type |
202+
| :---------------- | :----------------------------------------------------------------- | :-------------------------------------- |
203+
| **`slug`** (\*) | Slug of an audit or group (depending on `type`) | [Slug](#slug) |
204+
| **`weight`** (\*) | Weight used to calculate score | [NonnegativeNumber](#nonnegativenumber) |
205+
| **`type`** (\*) | Discriminant for reference kind, affects where `slug` is looked up | `'audit' \| 'group'` |
206+
| **`plugin`** (\*) | Plugin slug (plugin should contain referenced audit or group) | [Slug](#slug) |
207207

208208
_(\*) Required._
209209

@@ -332,10 +332,10 @@ Weighted reference to a group
332332

333333
_Object containing the following properties:_
334334

335-
| Property | Description | Type |
336-
| :---------------- | :-------------------------------------------------------------- | :-------------- |
337-
| **`slug`** (\*) | Reference slug to a group within this plugin (e.g. 'max-lines') | [Slug](#slug) |
338-
| **`weight`** (\*) | Weight used to calculate score | `number` (_≥0_) |
335+
| Property | Description | Type |
336+
| :---------------- | :-------------------------------------------------------------- | :-------------------------------------- |
337+
| **`slug`** (\*) | Reference slug to a group within this plugin (e.g. 'max-lines') | [Slug](#slug) |
338+
| **`weight`** (\*) | Weight used to calculate score | [NonnegativeNumber](#nonnegativenumber) |
339339

340340
_(\*) Required._
341341

@@ -1262,6 +1262,10 @@ _Enum, one of the following possible values:_
12621262

12631263
</details>
12641264

1265+
## NonnegativeNumber
1266+
1267+
_Number which is greater than or equal to 0._
1268+
12651269
## PersistConfig
12661270

12671271
_Object containing the following properties:_
@@ -1374,7 +1378,7 @@ _Union of the following possible types:_
13741378

13751379
- `string` (_url_)
13761380
- `Array<string (_url_)>`
1377-
- _Object with dynamic keys of type_ `string` (_url_) _and values of type_ `number` (_≥0_)
1381+
- _Object with dynamic keys of type_ `string` (_url_) _and values of type_ [NonnegativeNumber](#nonnegativenumber)
13781382

13791383
## PositiveInt
13801384

@@ -1574,3 +1578,9 @@ _Object containing the following properties:_
15741578
| `timeout` | Request timeout in minutes (default is 5) | `number` (_>0, int_) |
15751579

15761580
_(\*) Required._
1581+
1582+
## Weight
1583+
1584+
Coefficient for the given score (use weight 0 if only for display)
1585+
1586+
_Number which is greater than or equal to 0._

0 commit comments

Comments
 (0)