Skip to content

Commit 66b25e6

Browse files
committed
Merge branch 'main' into chore/add-plugin-for-build
# Conflicts: # nx.json # package-lock.json # tools/zod2md-jsdocs/project.json
2 parents e392ed7 + ce4fadb commit 66b25e6

294 files changed

Lines changed: 17130 additions & 7552 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Code Coverage
1+
name: Coverage
22

33
on:
44
push:
@@ -35,7 +35,7 @@ jobs:
3535
strategy:
3636
fail-fast: false
3737
matrix: ${{ fromJson(needs.list-packages.outputs.matrix) }}
38-
name: Collect code coverage
38+
name: Collect coverage
3939
runs-on: ubuntu-latest
4040
steps:
4141
- name: Checkout the repository

CHANGELOG.md

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,157 @@
1+
## 0.108.0 (2026-01-16)
2+
3+
### 🚀 Features
4+
5+
- add profiler class and measure API ([#1216](https://github.com/code-pushup/cli/pull/1216))
6+
7+
### ❤️ Thank You
8+
9+
- Michael Hladky @BioPhoton
10+
11+
## 0.107.0 (2026-01-16)
12+
13+
### 🚀 Features
14+
15+
- **plugin-axe:** add authentication support via setup script ([#1198](https://github.com/code-pushup/cli/pull/1198))
16+
17+
### ❤️ Thank You
18+
19+
- Hanna Skryl @hanna-skryl
20+
21+
## 0.106.0 (2026-01-15)
22+
23+
### 🚀 Features
24+
25+
- multi-URL aware helpers for cross-plugin composition ([6bfad3ce](https://github.com/code-pushup/cli/commit/6bfad3ce))
26+
27+
### ❤️ Thank You
28+
29+
- hanna-skryl
30+
31+
## 0.105.0 (2026-01-14)
32+
33+
### 🚀 Features
34+
35+
- add trace event utils ([#1215](https://github.com/code-pushup/cli/pull/1215))
36+
37+
### ❤️ Thank You
38+
39+
- Michael Hladky @BioPhoton
40+
41+
## 0.104.0 (2026-01-14)
42+
43+
### 🚀 Features
44+
45+
- **utils:** measure utils ([#1211](https://github.com/code-pushup/cli/pull/1211))
46+
47+
### ❤️ Thank You
48+
49+
- Michael Hladky @BioPhoton
50+
51+
## 0.103.0 (2026-01-14)
52+
53+
### 🚀 Features
54+
55+
- add process exit handler ([#1212](https://github.com/code-pushup/cli/pull/1212))
56+
57+
### ❤️ Thank You
58+
59+
- Michael Hladky @BioPhoton
60+
61+
## 0.102.0 (2026-01-10)
62+
63+
### 🚀 Features
64+
65+
- **utils:** add performance observer ([#1206](https://github.com/code-pushup/cli/pull/1206))
66+
67+
### ❤️ Thank You
68+
69+
- Michael Hladky @BioPhoton
70+
71+
## 0.101.1 (2026-01-06)
72+
73+
### 🩹 Fixes
74+
75+
- **plugin-typescript:** exclude test files from standalone analysis ([bf008fd4](https://github.com/code-pushup/cli/commit/bf008fd4))
76+
77+
### ❤️ Thank You
78+
79+
- hanna-skryl
80+
81+
## 0.101.0 (2026-01-05)
82+
83+
### 🚀 Features
84+
85+
- **plugin-eslint:** make patterns input optional with default ([7ce6e9b7](https://github.com/code-pushup/cli/commit/7ce6e9b7))
86+
87+
### ❤️ Thank You
88+
89+
- Hanna Skryl @hanna-skryl
90+
91+
## 0.100.1 (2025-12-29)
92+
93+
### 🩹 Fixes
94+
95+
- update to nx v22 ([#1196](https://github.com/code-pushup/cli/pull/1196))
96+
97+
### ❤️ Thank You
98+
99+
- Michael Hladky @BioPhoton
100+
101+
## 0.100.0 (2025-12-20)
102+
103+
### 🚀 Features
104+
105+
- **plugin-axe:** log initializer steps ([f226f67e](https://github.com/code-pushup/cli/commit/f226f67e))
106+
- **plugin-axe:** log runner steps, incl. stats and incomplete results ([0cd87769](https://github.com/code-pushup/cli/commit/0cd87769))
107+
- **plugin-jsdocs:** log initializer and runner steps ([18db8310](https://github.com/code-pushup/cli/commit/18db8310))
108+
- **plugin-lighthouse:** log initializer steps (audit/group counts, expanded, skipped) ([b868bc09](https://github.com/code-pushup/cli/commit/b868bc09))
109+
- **plugin-lighthouse:** log runner steps (incl. categories per url, config loading) ([e23c97e7](https://github.com/code-pushup/cli/commit/e23c97e7))
110+
111+
### 🩹 Fixes
112+
113+
- **utils:** break urls in ascii table differently to regular words ([964441c8](https://github.com/code-pushup/cli/commit/964441c8))
114+
115+
### ❤️ Thank You
116+
117+
- Matěj Chalk
118+
119+
## 0.99.0 (2025-12-18)
120+
121+
### 🚀 Features
122+
123+
- **plugin-typescript:** log initializer and runner steps ([53384e0a](https://github.com/code-pushup/cli/commit/53384e0a))
124+
125+
### ❤️ Thank You
126+
127+
- Matěj Chalk
128+
129+
## 0.98.0 (2025-12-17)
130+
131+
### 🚀 Features
132+
133+
- **plugin-js-packages:** log initializer and runner steps ([1b8bbd2e](https://github.com/code-pushup/cli/commit/1b8bbd2e))
134+
135+
### ❤️ Thank You
136+
137+
- Matěj Chalk
138+
139+
## 0.97.0 (2025-12-17)
140+
141+
### 🚀 Features
142+
143+
- **plugin-coverage:** log initializer and nx helper steps ([2eb0cc82](https://github.com/code-pushup/cli/commit/2eb0cc82))
144+
- **plugin-coverage:** log runner steps and statistics ([639a4471](https://github.com/code-pushup/cli/commit/639a4471))
145+
- **utils:** truncate paths with shared prefix and/or suffix ([5f10cf9c](https://github.com/code-pushup/cli/commit/5f10cf9c))
146+
147+
### 🩹 Fixes
148+
149+
- **utils:** handle suffixes like -ch and -sh in pluralize helper ([f680f5e1](https://github.com/code-pushup/cli/commit/f680f5e1))
150+
151+
### ❤️ Thank You
152+
153+
- Matěj Chalk
154+
1155
## 0.96.1 (2025-12-11)
2156

3157
### 🩹 Fixes

README.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,18 @@
1616

1717
---
1818

19+
### 🏷️ Category labels
20+
21+
See how your project measures up. With [portal integration](./packages/cli/README.md#portal-integration), category scores are embeddable and always reflect your latest report.
22+
1923
![Type safety](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/type-safety?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2024
![Bug prevention](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/bug-prevention?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2125
![Code style](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/code-style?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2226
![Code coverage](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/code-coverage?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2327
![Security](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/security?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2428
![Updates](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/updates?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2529
![Documentation](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/docs?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
30+
![Axe Accessibility](https://api.staging.code-pushup.dev/badges/code-pushup/cli-workspace/axe-a11y?apiKey=cp_def67c4efe558a9149061d0c62de893e1689ad793071db332790238446173fef)
2631

2732
---
2833

@@ -31,8 +36,7 @@
3136
_Common problems with keeping track of technical quality:_
3237

3338
- When **tech debt is invisible**, it's difficult to plan much-needed maintenance efforts 🔧
34-
- Individual tools measure different metrics, inability to combine them leads to
35-
a **lack of comprehensive overview** 🧑‍🦯
39+
- Individual tools measure different metrics, the inability to combine them leads to a **lack of comprehensive overview** 🧑‍🦯
3640
- Open-source tools typically used for failing checks in CI, which **can't measure incremental improvements** due to arbitrary pass/fail thresholds 🤖
3741
- Off-the-shelf solutions tend to be opinionated and **hard to customize**, so may not fit your specific needs 🧱
3842

@@ -42,15 +46,15 @@ _We want to change that!_
4246

4347
## 🔎🔬 Code quality integrations for any tool 📉🔍
4448

45-
| [🚀 Get started](./packages/cli/README.md#getting-started) | [🤖 CI automation](https://github.com/marketplace/actions/code-pushup) |
46-
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
47-
| <a href="./packages/cli/README.md#getting-started"><img alt="Getting started cover image" title="Getting started with code-pushup" src="packages/cli/docs/images/cli-terminal-overview.png" width="1000"></a> | <a href="./packages/cli/README.md#-ci-automation"><img alt="CI Automation cover" title="CI automation guide" src="docs/images/gh-action.png" width="1000"></a> |
48-
| <ul><li>Run **[📦 `@code-pushup/cli`](./packages/cli#readme)** to collect **reports**.</li><li>[Get started](./packages/cli/README.md#getting-started) quickly with our [**official plugins**](#-officially-supported-plugins)! ⏱️</li></ul> | <ul><li>Easy **CI** setup with **[🤖 `code-pushup/github-action`](https://github.com/marketplace/actions/code-pushup)**.</li><li>Import logic from **[📦 `@code-pushup/core`](./packages/core#readme)** to craft **custom tools**.</li></ul> |
49+
| [🚀 Get started](./packages/cli/README.md#getting-started)| [🤖 CI automation](https://github.com/marketplace/actions/code-pushup) |
50+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51+
| <a href="./packages/cli/README.md#getting-started"><img alt="Getting started cover image" title="Getting started with code-pushup" src="packages/cli/docs/images/cli-terminal-overview.png" width="1000"></a> | <a href="./packages/cli/README.md#-ci-automation"><img alt="CI Automation cover" title="CI automation guide" src="docs/images/gh-action.png" width="1000"></a> |
52+
| <ul><li>Run **[📦 `@code-pushup/cli`](./packages/cli#readme)** to collect **reports**.</li><li>Get started quickly with our [**official plugins**](#-officially-supported-plugins)! ⏱️</li></ul> | <ul><li>Easy **CI** setup with **[🤖 `code-pushup/github-action`](https://github.com/marketplace/actions/code-pushup)**.</li><li>Import logic from **[📦 `@code-pushup/core`](./packages/core#readme)** to craft **custom tools**.</li></ul> |
4953

50-
| 📈 [Portal](https://code-pushup.dev#portal) | 🔌 [Custom plugins](./packages/cli/docs/custom-plugins.md) |
51-
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
52-
| <a href="#portal-integration"><img alt="Portal integration cover image" title="Inetegrate code-pushup portal" src="packages/cli/docs/images/portal-cover.png" width="1000"></a> | <a href="#custom-plugins"><img alt="Custom plugins" title="Create custom code-pushup plugins" src="docs/images/code-pushup-custom-plugins.png" width="1000"></a> |
53-
| <ul><li>**[Portal](https://code-pushup.dev#portal)** 🌐 **visualizes reports** in a slick UI.</li><li>Track **historical data** from uploads. ⬆️</li></ul> | <ul><li>All the [data models](./packages/models/docs/models-reference.md) you need are provided in **[📦 `@code-pushup/models`](./packages/models/README.md)**.</li><li>Find tons of useful utilities in **[📦 `@code-pushup/utils`](./packages/utils/README.md)**.</li></ul> |
54+
| 📈 [Portal](https://code-pushup.dev/features) | 🔌 [Custom plugins](./packages/cli/docs/custom-plugins.md) |
55+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
56+
| <a href="./packages/cli/README.md#portal-integration"><img alt="Portal integration cover image" title="Integrate code-pushup portal" src="packages/cli/docs/images/portal-cover.png" width="1000"></a> | <a href="./packages/cli/docs/custom-plugins.md"><img alt="Custom plugins" title="Create custom code-pushup plugins" src="docs/images/code-pushup-custom-plugins.png" width="1000"></a> |
57+
| <ul><li>**[Portal](https://code-pushup.dev/features)** 🌐 **visualizes reports** in a slick UI.</li><li>Track **historical data** from uploads. ⬆️</li></ul> | <ul><li>All the [data models](./packages/models/docs/models-reference.md) you need are provided in **[📦 `@code-pushup/models`](./packages/models/README.md)**.</li><li>Find tons of useful utilities in **[📦 `@code-pushup/utils`](./packages/utils/README.md)**.</li></ul> |
5458

5559
---
5660

@@ -64,6 +68,7 @@ _We want to change that!_
6468
| <img width="24" src="docs/images/plugin-lighthouse.icon.png"> | [Lighthouse](./packages/plugin-lighthouse#readme) | Measures web performance and best practices with **Lighthouse**. |
6569
| <img width="24" src="docs/images/plugin-jsdocs.icon.png"> | [JSDocs](./packages/plugin-jsdocs#readme) | Analyzes how much source code is **documented** using JSDocs comments. |
6670
| <img width="24" src="docs/images/plugin-typescript.icon.png"> | [TypeScript](./packages/plugin-typescript#readme) | Checks for **TypeScript** errors using strict compiler flags. |
71+
| <img width="24" src="docs/images/plugin-axe.icon.png"> | [Axe](./packages/plugin-axe#readme) | Detects accessibility issues using **Axe**. |
6772

6873
---
6974

@@ -75,7 +80,7 @@ _We want to change that!_
7580
2. **[Integrate](https://github.com/marketplace/actions/code-pushup)**
7681
Use our integration guide and packages to set up CI integration in minutes. ⏱️
7782

78-
3. **[Observe](https://code-pushup.dev#portal)**
83+
3. **[Observe](https://code-pushup.dev/features)**
7984
Guard regressions and track improvements with every code change. 🔍
8085

8186
4. **Relax!**

code-pushup.preset.ts

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
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';
8-
import axePlugin, { axeCategories } from './packages/plugin-axe/src/index.js';
3+
import type { CoreConfig, PluginUrls } from './packages/models/src/index.js';
4+
import axePlugin, {
5+
type AxePluginOptions,
6+
axeGroupRefs,
7+
} from './packages/plugin-axe/src/index.js';
98
import coveragePlugin, {
109
type CoveragePluginConfig,
1110
getNxCoveragePaths,
@@ -16,12 +15,7 @@ import eslintPlugin, {
1615
import jsPackagesPlugin from './packages/plugin-js-packages/src/index.js';
1716
import jsDocsPlugin from './packages/plugin-jsdocs/src/index.js';
1817
import {
19-
PLUGIN_SLUG,
20-
groups,
21-
} from './packages/plugin-jsdocs/src/lib/constants.js';
22-
import {
23-
lighthouseCategories,
24-
lighthouseGroupRef,
18+
lighthouseGroupRefs,
2519
lighthousePlugin,
2620
} from './packages/plugin-lighthouse/src/index.js';
2721
import typescriptPlugin, {
@@ -49,10 +43,7 @@ export async function configureEslintPlugin(
4943
plugins: [
5044
projectName
5145
? await eslintPlugin(
52-
{
53-
eslintrc: `packages/${projectName}/eslint.config.js`,
54-
patterns: ['.'],
55-
},
46+
{ eslintrc: `packages/${projectName}/eslint.config.js` },
5647
{
5748
artifacts: {
5849
// We leverage Nx dependsOn to only run all lint targets before we run code-pushup
@@ -162,7 +153,7 @@ export async function configureJsPackagesPlugin(): Promise<CoreConfig> {
162153
export function configureTypescriptPlugin(projectName?: string): CoreConfig {
163154
const tsconfig = projectName
164155
? `packages/${projectName}/tsconfig.lib.json`
165-
: 'tsconfig.base.json';
156+
: 'tsconfig.code-pushup.json';
166157
return {
167158
plugins: [typescriptPlugin({ tsconfig })],
168159
categories: getCategories(),
@@ -185,12 +176,14 @@ export function configureJsDocsPlugin(projectName?: string): CoreConfig {
185176
slug: 'docs',
186177
title: 'Documentation',
187178
description: 'Measures how much of your code is **documented**.',
188-
refs: groups.map(group => ({
189-
weight: 1,
190-
type: 'group',
191-
plugin: PLUGIN_SLUG,
192-
slug: group.slug,
193-
})),
179+
refs: [
180+
{
181+
type: 'group',
182+
plugin: 'jsdocs',
183+
slug: 'documentation-coverage',
184+
weight: 1,
185+
},
186+
],
194187
},
195188
],
196189
};
@@ -200,38 +193,46 @@ export async function configureLighthousePlugin(
200193
urls: PluginUrls,
201194
): Promise<CoreConfig> {
202195
const lhPlugin = await lighthousePlugin(urls);
203-
const lhCategories: CategoryConfig[] = [
204-
{
205-
slug: 'performance',
206-
title: 'Performance',
207-
refs: [lighthouseGroupRef('performance')],
208-
},
209-
{
210-
slug: 'a11y',
211-
title: 'Accessibility',
212-
refs: [lighthouseGroupRef('accessibility')],
213-
},
214-
{
215-
slug: 'best-practices',
216-
title: 'Best Practices',
217-
refs: [lighthouseGroupRef('best-practices')],
218-
},
219-
{
220-
slug: 'seo',
221-
title: 'SEO',
222-
refs: [lighthouseGroupRef('seo')],
223-
},
224-
];
225196
return {
226197
plugins: [lhPlugin],
227-
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+
],
228220
};
229221
}
230222

231-
export function configureAxePlugin(urls: PluginUrls): CoreConfig {
232-
const axe = axePlugin(urls);
223+
export function configureAxePlugin(
224+
urls: PluginUrls,
225+
options?: AxePluginOptions,
226+
): CoreConfig {
227+
const axe = axePlugin(urls, options);
233228
return {
234229
plugins: [axe],
235-
categories: axeCategories(axe),
230+
categories: [
231+
{
232+
slug: 'axe-a11y',
233+
title: 'Axe Accessibility',
234+
refs: axeGroupRefs(axe),
235+
},
236+
],
236237
};
237238
}

docs/images/plugin-axe.icon.png

3.81 KB
Loading

docs/images/plugin-jsdocs.icon.png

1.28 KB
Loading

0 commit comments

Comments
 (0)