apex-code-coverage-transformer 2.18.2 → 2.19.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +71 -24
  3. package/lib/handlers/BaseHandler.d.ts +2 -2
  4. package/lib/handlers/BaseHandler.js.map +1 -1
  5. package/lib/handlers/clover.js +1 -3
  6. package/lib/handlers/clover.js.map +1 -1
  7. package/lib/handlers/cobertura.js +1 -3
  8. package/lib/handlers/cobertura.js.map +1 -1
  9. package/lib/handlers/getHandler.d.ts +2 -0
  10. package/lib/handlers/getHandler.js +2 -0
  11. package/lib/handlers/getHandler.js.map +1 -1
  12. package/lib/handlers/githubActions.d.ts +33 -0
  13. package/lib/handlers/githubActions.js +82 -0
  14. package/lib/handlers/githubActions.js.map +1 -0
  15. package/lib/handlers/istanbulJson.d.ts +1 -1
  16. package/lib/handlers/istanbulJson.js +1 -1
  17. package/lib/handlers/istanbulJson.js.map +1 -1
  18. package/lib/handlers/jacoco.d.ts +1 -1
  19. package/lib/handlers/jacoco.js +1 -1
  20. package/lib/handlers/jacoco.js.map +1 -1
  21. package/lib/handlers/lcov.d.ts +1 -1
  22. package/lib/handlers/lcov.js +2 -4
  23. package/lib/handlers/lcov.js.map +1 -1
  24. package/lib/handlers/markdown.d.ts +28 -0
  25. package/lib/handlers/markdown.js +105 -0
  26. package/lib/handlers/markdown.js.map +1 -0
  27. package/lib/handlers/sonar.js +1 -3
  28. package/lib/handlers/sonar.js.map +1 -1
  29. package/lib/transformers/generators/generateGitHubActions.d.ts +2 -0
  30. package/lib/transformers/generators/generateGitHubActions.js +27 -0
  31. package/lib/transformers/generators/generateGitHubActions.js.map +1 -0
  32. package/lib/transformers/generators/generateHtml.d.ts +2 -0
  33. package/lib/transformers/generators/generateHtml.js +399 -0
  34. package/lib/transformers/generators/generateHtml.js.map +1 -0
  35. package/lib/transformers/generators/generateMarkdown.d.ts +2 -0
  36. package/lib/transformers/generators/generateMarkdown.js +39 -0
  37. package/lib/transformers/generators/generateMarkdown.js.map +1 -0
  38. package/lib/transformers/reportGenerator.d.ts +2 -2
  39. package/lib/transformers/reportGenerator.js +28 -449
  40. package/lib/transformers/reportGenerator.js.map +1 -1
  41. package/lib/utils/constants.d.ts +17 -0
  42. package/lib/utils/constants.js +31 -0
  43. package/lib/utils/constants.js.map +1 -1
  44. package/lib/utils/types.d.ts +48 -1
  45. package/messages/transformer.transform.md +2 -0
  46. package/oclif.manifest.json +5 -1
  47. package/package.json +30 -18
  48. package/oclif.lock +0 -10078
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@
5
5
 
6
6
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
7
7
 
8
+ ## [2.19.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.18.3...v2.19.0) (2026-05-01)
9
+
10
+
11
+ ### Features
12
+
13
+ * add markdown and github-actions output formats ([#283](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/283)) ([4fa1c27](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/4fa1c27780cfe08268a282d3c0ce2499f54d2ed1))
14
+
15
+ ## [2.18.3](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.18.2...v2.18.3) (2026-04-21)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **quality:** remove dead code in clover, cobertura, lcov, sonar handlers ([8c28d45](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/8c28d4528da8058264f1bf5fbfabea3e6fd37c4c))
21
+
8
22
  ## [2.18.2](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.18.1...v2.18.2) (2026-04-10)
9
23
 
10
24
 
package/README.md CHANGED
@@ -4,11 +4,12 @@
4
4
  [![Downloads/week](https://img.shields.io/npm/dw/apex-code-coverage-transformer.svg)](https://npmjs.org/package/apex-code-coverage-transformer)
5
5
  [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md)
6
6
  [![Maintainability](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/maintainability.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
7
- [![Code Coverage](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/test_coverage.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
8
- [![Known Vulnerabilities](https://snyk.io//test/github/mcarvin8/apex-code-coverage-transformer/badge.svg?targetFile=package.json)](https://snyk.io//test/github/mcarvin8/apex-code-coverage-transformer?targetFile=package.json)
7
+ [![codecov](https://codecov.io/gh/mcarvin8/apex-code-coverage-transformer/graph/badge.svg?token=4IQ4NWTPQZ)](https://codecov.io/gh/mcarvin8/apex-code-coverage-transformer)
9
8
 
10
9
  A Salesforce CLI plugin that converts Apex code coverage JSON (from deploy or test runs) into formats used by SonarQube, Codecov, GitHub, GitLab, Azure DevOps, Bitbucket, and other tools. Use it to keep coverage in sync with your CI/CD and code quality pipelines.
11
10
 
11
+ It also produces presentation-ready output for pull-request reviews: a Markdown summary for PR/MR comments and CI job summaries, and GitHub Actions workflow command annotations that surface uncovered lines inline on the PR diff. The GitHub Actions output is designed to pair with the Apex code quality annotations from [sf-cat](https://www.npmjs.com/package/sf-cat), so a single PR can show coverage gaps and quality findings side-by-side.
12
+
12
13
  > Missing an output format via `--format`? Open an [issue](https://github.com/mcarvin8/apex-code-coverage-transformer/issues) or submit a [pull request](https://github.com/mcarvin8/apex-code-coverage-transformer/blob/main/CONTRIBUTING.md).
13
14
 
14
15
  <!-- TABLE OF CONTENTS -->
@@ -46,7 +47,7 @@ A Salesforce CLI plugin that converts Apex code coverage JSON (from deploy or te
46
47
  ## Install
47
48
 
48
49
  ```bash
49
- sf plugins install apex-code-coverage-transformer@x.y.z
50
+ sf plugins install apex-code-coverage-transformer@latest
50
51
  ```
51
52
 
52
53
  ## Quick Start
@@ -88,6 +89,8 @@ This plugin is for Salesforce DX projects (`sfdx-project.json`). It maps Apex na
88
89
 
89
90
  To run transformation automatically after deploy or test commands, use the [Hook](#automatic-transformation-hook).
90
91
 
92
+ > **Tip — diff-scoped coverage on PRs.** The Salesforce CLI already scopes `sf project deploy validate`/`start` coverage to whatever is in the deployed manifest. If your PR pipeline builds a manifest from the git diff (for example with [sfdx-git-delta](https://github.com/scolladon/sfdx-git-delta)) and then runs `sf project deploy validate --coverage-formatters json --manifest <delta>`, the resulting coverage JSON only contains the changed Apex. Running this plugin against that JSON gives you per-PR coverage with no extra flags — the diff scoping happens upstream in the deployment, not here.
93
+
91
94
  ### Salesforce CLI
92
95
 
93
96
  **Deploy/validate** — coverage path: `coverage/coverage/coverage.json`
@@ -144,18 +147,20 @@ GLOBAL FLAGS
144
147
 
145
148
  Use `-f` / `--format` to choose the output format. Multiple `-f` values produce multiple files with the format in the name (e.g. `coverage-sonar.xml`, `coverage-cobertura.xml`).
146
149
 
147
- | Format | Description | Typical use | Example |
148
- | ------------ | -------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------- |
149
- | sonar | SonarQube generic coverage | SonarQube, SonarCloud | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "sonar"` |
150
- | cobertura | Cobertura XML | Codecov, Azure, Jenkins, GitLab, GitHub | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "cobertura"` |
151
- | jacoco | JaCoCo XML | Codecov, Jenkins, Maven, Gradle | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "jacoco"` |
152
- | lcovonly | LCOV | Codecov, Coveralls, GitHub | `sf acc-transformer transform -j "coverage.json" -r "coverage.info" -f "lcovonly"` |
153
- | clover | Clover XML | Bamboo, Bitbucket, Jenkins | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "clover"` |
154
- | json | Istanbul JSON | Istanbul/NYC, Codecov | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "json"` |
155
- | json-summary | JSON summary | Badges, PR comments | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "json-summary"` |
156
- | simplecov | SimpleCov JSON | Codecov, Ruby tools | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "simplecov"` |
157
- | opencover | OpenCover XML | Azure DevOps, VS, Codecov | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "opencover"` |
158
- | html | HTML report | Browsers, CI artifacts | `sf acc-transformer transform -j "coverage.json" -r "coverage.html" -f "html"` |
150
+ | Format | Description | Typical use | Example |
151
+ | -------------- | -------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------- |
152
+ | sonar | SonarQube generic coverage | SonarQube, SonarCloud | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "sonar"` |
153
+ | cobertura | Cobertura XML | Codecov, Azure, Jenkins, GitLab, GitHub | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "cobertura"` |
154
+ | jacoco | JaCoCo XML | Codecov, Jenkins, Maven, Gradle | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "jacoco"` |
155
+ | lcovonly | LCOV | Codecov, Coveralls, GitHub | `sf acc-transformer transform -j "coverage.json" -r "coverage.info" -f "lcovonly"` |
156
+ | clover | Clover XML | Bamboo, Bitbucket, Jenkins | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "clover"` |
157
+ | json | Istanbul JSON | Istanbul/NYC, Codecov | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "json"` |
158
+ | json-summary | JSON summary | Badges, PR comments | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "json-summary"` |
159
+ | simplecov | SimpleCov JSON | Codecov, Ruby tools | `sf acc-transformer transform -j "coverage.json" -r "coverage.json" -f "simplecov"` |
160
+ | opencover | OpenCover XML | Azure DevOps, VS, Codecov | `sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "opencover"` |
161
+ | html | HTML report | Browsers, CI artifacts | `sf acc-transformer transform -j "coverage.json" -r "coverage.html" -f "html"` |
162
+ | markdown | Markdown summary | PR/MR comments, CI job summaries | `sf acc-transformer transform -j "coverage.json" -r "coverage.md" -f "markdown"` |
163
+ | github-actions | GitHub Actions annotations | GitHub Actions PR diff annotations | `sf acc-transformer transform -j "coverage.json" -r "coverage.txt" -f "github-actions"` |
159
164
 
160
165
  ## CI/CD Integration
161
166
 
@@ -199,7 +204,7 @@ jobs:
199
204
 
200
205
  ### SonarQube
201
206
 
202
- Use the **sonar** format and upload using SonarQube's generic test coverage report formatter, `sonar.coverageReportPaths`.
207
+ Use the **sonar** format and upload using SonarQube's generic test coverage report formatter, `sonar.coverageReportPaths`.
203
208
 
204
209
  **Scanner:**
205
210
 
@@ -290,6 +295,48 @@ jobs:
290
295
  path: code-coverage-results.md
291
296
  ```
292
297
 
298
+ #### Markdown PR comments (built-in)
299
+
300
+ Skip the third-party summary action by using the built-in `markdown` format. The output is ready to drop straight into a PR comment or the GitHub Actions [job summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary):
301
+
302
+ ```yaml
303
+ - name: Run Apex Tests
304
+ run: sf apex run test --code-coverage --output-dir coverage --target-org ci-org
305
+ - name: Transform Coverage to Markdown
306
+ run: sf acc-transformer transform -j "coverage/test-result-codecoverage.json" -r "coverage.md" -f "markdown"
307
+ - name: Add coverage to job summary
308
+ run: cat coverage.md >> $GITHUB_STEP_SUMMARY
309
+ - name: Add Coverage PR Comment
310
+ uses: marocchino/sticky-pull-request-comment@v2
311
+ if: github.event_name == 'pull_request'
312
+ with:
313
+ recreate: true
314
+ path: coverage.md
315
+ ```
316
+
317
+ The Markdown report includes an overall summary block, a per-package-directory table, and a file-level table sorted with the lowest coverage first so reviewers see the most actionable rows at the top.
318
+
319
+ #### GitHub Actions inline annotations
320
+
321
+ The `github-actions` format emits one [`::warning`](https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions) workflow command per uncovered Apex line, plus a `::notice` summary. When a step prints the file to stdout, the runner renders annotations inline on the PR diff and on the workflow run page.
322
+
323
+ ```yaml
324
+ - name: Run Apex Tests
325
+ run: sf apex run test --code-coverage --output-dir coverage --target-org ci-org
326
+ - name: Transform Coverage to GitHub Actions Annotations
327
+ run: sf acc-transformer transform -j "coverage/test-result-codecoverage.json" -r "coverage.txt" -f "github-actions"
328
+ - name: Emit coverage annotations
329
+ run: cat coverage.txt
330
+ ```
331
+
332
+ This pairs with the [`sf-cat`](https://www.npmjs.com/package/sf-cat) plugin's GitHub Actions output for code quality findings, so a single PR shows coverage gaps and quality issues as inline annotations on the same diff.
333
+
334
+ You can produce both at once with multiple `-f` flags:
335
+
336
+ ```bash
337
+ sf acc-transformer transform -j "coverage/test-result-codecoverage.json" -f "markdown" -f "github-actions" -f "sonar"
338
+ ```
339
+
293
340
  ### GitLab CI
294
341
 
295
342
  Cobertura for coverage in the UI:
@@ -343,13 +390,13 @@ Create `.apexcodecovtransformer.config.json` in the project root to transform co
343
390
 
344
391
  Sample configs: [Salesforce CLI](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/defaults/salesforce-cli/.apexcodecovtransformer.config.json), [SFDX Hardis](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/defaults/sfdx-hardis/.apexcodecovtransformer.config.json).
345
392
 
346
- | Key | Required | Description |
347
- | -------------------------- | ---------- | -------------------------------------------------------- |
348
- | `deployCoverageJsonPath` | For deploy | Path to deploy coverage JSON. |
349
- | `testCoverageJsonPath` | For test | Path to test coverage JSON. |
393
+ | Key | Required | Description |
394
+ | -------------------------- | ---------- | ------------------------------------------------------------ |
395
+ | `deployCoverageJsonPath` | For deploy | Path to deploy coverage JSON. |
396
+ | `testCoverageJsonPath` | For test | Path to test coverage JSON. |
350
397
  | `outputReportPath` | No | Output path (default: `coverage.[xml/info/json]` by format). |
351
- | `format` | No | Format(s), comma-separated (default: `sonar`). |
352
- | `ignorePackageDirectories` | No | Comma-separated package directories to ignore. |
398
+ | `format` | No | Format(s), comma-separated (default: `sonar`). |
399
+ | `ignorePackageDirectories` | No | Comma-separated package directories to ignore. |
353
400
 
354
401
  ## Troubleshooting
355
402
 
@@ -385,8 +432,8 @@ Error (1): ENOENT: no such file or directory: {packageDir}
385
432
 
386
433
  ## Contributing
387
434
 
388
- Contributions are welcome. See [CONTRIBUTING.md](https://github.com/mcarvin8/apex-code-coverage-transformer/blob/main/CONTRIBUTING.md) for setup, testing, and how to add new coverage formats.
435
+ Contributions are welcome. See [CONTRIBUTING.md](https://github.com/mcarvin8/apex-code-coverage-transformer/blob/main/CONTRIBUTING.md).
389
436
 
390
437
  ## License
391
438
 
392
- MIT. See [LICENSE](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md).
439
+ [MIT](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md)
@@ -1,4 +1,4 @@
1
- import { CoverageHandler, SonarCoverageObject, CoberturaCoverageObject, CloverCoverageObject, LcovCoverageObject, JaCoCoCoverageObject, IstanbulCoverageObject, JsonSummaryCoverageObject, SimpleCovCoverageObject, OpenCoverCoverageObject, HtmlCoverageObject } from '../utils/types.js';
1
+ import { CoverageHandler, SonarCoverageObject, CoberturaCoverageObject, CloverCoverageObject, LcovCoverageObject, JaCoCoCoverageObject, IstanbulCoverageObject, JsonSummaryCoverageObject, SimpleCovCoverageObject, OpenCoverCoverageObject, HtmlCoverageObject, MarkdownCoverageObject, GitHubActionsCoverageObject } from '../utils/types.js';
2
2
  /**
3
3
  * Abstract base class for coverage handlers providing common utilities.
4
4
  * Reduces code duplication across different format handlers.
@@ -47,5 +47,5 @@ export declare abstract class BaseHandler implements CoverageHandler {
47
47
  '@name'?: string;
48
48
  }>(items: T[]): T[];
49
49
  abstract processFile(filePath: string, fileName: string, lines: Record<string, number>, sourceContent?: string): void;
50
- abstract finalize(): SonarCoverageObject | CoberturaCoverageObject | CloverCoverageObject | LcovCoverageObject | JaCoCoCoverageObject | IstanbulCoverageObject | JsonSummaryCoverageObject | SimpleCovCoverageObject | OpenCoverCoverageObject | HtmlCoverageObject;
50
+ abstract finalize(): SonarCoverageObject | CoberturaCoverageObject | CloverCoverageObject | LcovCoverageObject | JaCoCoCoverageObject | IstanbulCoverageObject | JsonSummaryCoverageObject | SimpleCovCoverageObject | OpenCoverCoverageObject | HtmlCoverageObject | MarkdownCoverageObject | GitHubActionsCoverageObject;
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHandler.js","sourceRoot":"","sources":["../../src/handlers/BaseHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAgBb;;;GAGG;AACH,MAAM,OAAgB,WAAW;IAC/B;;;;;OAKG;IACH,kDAAkD;IACxC,iBAAiB,CAAC,KAA6B;QAMvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IACxC,oBAAoB,CAAC,KAA6B,EAAE,OAAgB;QAC5E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAAC,KAA6B;QAI5D,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IACxC,UAAU,CAAyE,KAAU;QACrG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;CAoBF"}
1
+ {"version":3,"file":"BaseHandler.js","sourceRoot":"","sources":["../../src/handlers/BaseHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAkBb;;;GAGG;AACH,MAAM,OAAgB,WAAW;IAC/B;;;;;OAKG;IACH,kDAAkD;IACxC,iBAAiB,CAAC,KAA6B;QAMvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5E,MAAM,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IACxC,oBAAoB,CAAC,KAA6B,EAAE,OAAgB;QAC5E,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAAC,KAA6B;QAI5D,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,kDAAkD;IACxC,UAAU,CAAyE,KAAU;QACrG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;CAsBF"}
@@ -80,9 +80,7 @@ export class CloverCoverageHandler extends BaseHandler {
80
80
  projectMetrics['@ncloc'] += totalLines;
81
81
  }
82
82
  finalize() {
83
- if (this.coverageObj.coverage?.project?.file) {
84
- this.coverageObj.coverage.project.file = this.sortByPath(this.coverageObj.coverage.project.file);
85
- }
83
+ this.coverageObj.coverage.project.file = this.sortByPath(this.coverageObj.coverage.project.file);
86
84
  return this.coverageObj;
87
85
  }
88
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clover.js","sourceRoot":"","sources":["../../src/handlers/clover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clover.js","sourceRoot":"","sources":["../../src/handlers/clover.ts"],"names":[],"mappings":"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"}
@@ -76,9 +76,7 @@ export class CoberturaCoverageHandler extends BaseHandler {
76
76
  this.coverageObj.coverage['@line-rate'] = parseFloat((this.coverageObj.coverage['@lines-covered'] / this.coverageObj.coverage['@lines-valid']).toFixed(4));
77
77
  this.coverageObj.coverage.packages.package.sort((a, b) => a['@name'].localeCompare(b['@name']));
78
78
  for (const pkg of this.coverageObj.coverage.packages.package) {
79
- if (pkg.classes?.class) {
80
- pkg.classes.class.sort((a, b) => a['@filename'].localeCompare(b['@filename']));
81
- }
79
+ pkg.classes.class.sort((a, b) => a['@filename'].localeCompare(b['@filename']));
82
80
  }
83
81
  return this.coverageObj;
84
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cobertura.js","sourceRoot":"","sources":["../../src/handlers/cobertura.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cobertura.js","sourceRoot":"","sources":["../../src/handlers/cobertura.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ import './jsonSummary.js';
9
9
  import './simplecov.js';
10
10
  import './opencover.js';
11
11
  import './html.js';
12
+ import './markdown.js';
13
+ import './githubActions.js';
12
14
  /**
13
15
  * Get a coverage handler for the specified format.
14
16
  *
@@ -11,6 +11,8 @@ import './jsonSummary.js';
11
11
  import './simplecov.js';
12
12
  import './opencover.js';
13
13
  import './html.js';
14
+ import './markdown.js';
15
+ import './githubActions.js';
14
16
  /**
15
17
  * Get a coverage handler for the specified format.
16
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"getHandler.js","sourceRoot":"","sources":["../../src/handlers/getHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,mDAAmD;AACnD,OAAO,YAAY,CAAC;AACpB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,WAAW,CAAC;AAEnB;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"getHandler.js","sourceRoot":"","sources":["../../src/handlers/getHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,mDAAmD;AACnD,OAAO,YAAY,CAAC;AACpB,OAAO,gBAAgB,CAAC;AACxB,OAAO,aAAa,CAAC;AACrB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { GitHubActionsCoverageObject } from '../utils/types.js';
2
+ import { BaseHandler } from './BaseHandler.js';
3
+ /**
4
+ * Handler for generating GitHub Actions workflow command output.
5
+ *
6
+ * Emits one `::warning file=...,line=...` annotation per uncovered Apex line
7
+ * plus a `::notice` summary line. When the resulting file is printed to stdout
8
+ * by a workflow step, the GitHub Actions runner renders the annotations
9
+ * inline on the PR diff and on the workflow run page.
10
+ *
11
+ * Pairs with the existing `sf-cat` plugin's GitHub Actions output for code
12
+ * quality, giving Salesforce teams a unified annotation experience for
13
+ * coverage and quality on the same PR.
14
+ *
15
+ * @see https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions
16
+ *
17
+ * @example
18
+ * ```yaml
19
+ * - name: Transform coverage to GitHub Actions annotations
20
+ * run: sf acc-transformer transform -j coverage.json -r coverage.txt -f github-actions
21
+ * - name: Emit annotations
22
+ * run: cat coverage.txt
23
+ * ```
24
+ */
25
+ export declare class GitHubActionsCoverageHandler extends BaseHandler {
26
+ private readonly coverageObj;
27
+ private totalLinesAccumulator;
28
+ private coveredLinesAccumulator;
29
+ private fileCount;
30
+ constructor();
31
+ processFile(filePath: string, _fileName: string, lines: Record<string, number>): void;
32
+ finalize(): GitHubActionsCoverageObject;
33
+ }
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+ import { BaseHandler } from './BaseHandler.js';
3
+ import { HandlerRegistry } from './HandlerRegistry.js';
4
+ /**
5
+ * Handler for generating GitHub Actions workflow command output.
6
+ *
7
+ * Emits one `::warning file=...,line=...` annotation per uncovered Apex line
8
+ * plus a `::notice` summary line. When the resulting file is printed to stdout
9
+ * by a workflow step, the GitHub Actions runner renders the annotations
10
+ * inline on the PR diff and on the workflow run page.
11
+ *
12
+ * Pairs with the existing `sf-cat` plugin's GitHub Actions output for code
13
+ * quality, giving Salesforce teams a unified annotation experience for
14
+ * coverage and quality on the same PR.
15
+ *
16
+ * @see https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions
17
+ *
18
+ * @example
19
+ * ```yaml
20
+ * - name: Transform coverage to GitHub Actions annotations
21
+ * run: sf acc-transformer transform -j coverage.json -r coverage.txt -f github-actions
22
+ * - name: Emit annotations
23
+ * run: cat coverage.txt
24
+ * ```
25
+ */
26
+ export class GitHubActionsCoverageHandler extends BaseHandler {
27
+ coverageObj;
28
+ totalLinesAccumulator = 0;
29
+ coveredLinesAccumulator = 0;
30
+ fileCount = 0;
31
+ constructor() {
32
+ super();
33
+ this.coverageObj = {
34
+ summary: {
35
+ totalLines: 0,
36
+ coveredLines: 0,
37
+ uncoveredLines: 0,
38
+ lineRate: 0,
39
+ fileCount: 0,
40
+ },
41
+ uncoveredLines: [],
42
+ };
43
+ }
44
+ processFile(filePath, _fileName, lines) {
45
+ const { totalLines, coveredLines } = this.calculateCoverage(lines);
46
+ this.totalLinesAccumulator += totalLines;
47
+ this.coveredLinesAccumulator += coveredLines;
48
+ this.fileCount += 1;
49
+ const uncovered = this.extractLinesByStatus(lines, false);
50
+ for (const lineNumber of uncovered) {
51
+ this.coverageObj.uncoveredLines.push({ filePath, lineNumber });
52
+ }
53
+ }
54
+ finalize() {
55
+ const totalLines = this.totalLinesAccumulator;
56
+ const coveredLines = this.coveredLinesAccumulator;
57
+ const uncoveredLines = totalLines - coveredLines;
58
+ const lineRate = totalLines > 0 ? coveredLines / totalLines : 0;
59
+ this.coverageObj.summary = {
60
+ totalLines,
61
+ coveredLines,
62
+ uncoveredLines,
63
+ lineRate,
64
+ fileCount: this.fileCount,
65
+ };
66
+ this.coverageObj.uncoveredLines.sort((a, b) => {
67
+ const pathCompare = a.filePath.localeCompare(b.filePath);
68
+ if (pathCompare !== 0)
69
+ return pathCompare;
70
+ return a.lineNumber - b.lineNumber;
71
+ });
72
+ return this.coverageObj;
73
+ }
74
+ }
75
+ HandlerRegistry.register({
76
+ name: 'github-actions',
77
+ description: 'GitHub Actions workflow command annotations for uncovered lines',
78
+ fileExtension: '.txt',
79
+ handler: () => new GitHubActionsCoverageHandler(),
80
+ compatibleWith: ['GitHub Actions'],
81
+ });
82
+ //# sourceMappingURL=githubActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubActions.js","sourceRoot":"","sources":["../../src/handlers/githubActions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAC1C,WAAW,CAA8B;IAClD,qBAAqB,GAAG,CAAC,CAAC;IAC1B,uBAAuB,GAAG,CAAC,CAAC;IAC5B,SAAS,GAAG,CAAC,CAAC;IAEtB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE;gBACP,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,CAAC;gBACf,cAAc,EAAE,CAAC;gBACjB,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;aACb;YACD,cAAc,EAAE,EAAE;SACnB,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAA6B;QACnF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEnE,IAAI,CAAC,qBAAqB,IAAI,UAAU,CAAC;QACzC,IAAI,CAAC,uBAAuB,IAAI,YAAY,CAAC;QAC7C,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAClD,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG;YACzB,UAAU;YACV,YAAY;YACZ,cAAc;YACd,QAAQ;YACR,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,WAAW,KAAK,CAAC;gBAAE,OAAO,WAAW,CAAC;YAC1C,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,iEAAiE;IAC9E,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,4BAA4B,EAAE;IACjD,cAAc,EAAE,CAAC,gBAAgB,CAAC;CACnC,CAAC,CAAC"}
@@ -17,6 +17,6 @@ import { BaseHandler } from './BaseHandler.js';
17
17
  export declare class IstanbulCoverageHandler extends BaseHandler {
18
18
  private coverageMap;
19
19
  constructor();
20
- processFile(filePath: string, fileName: string, lines: Record<string, number>): void;
20
+ processFile(filePath: string, _fileName: string, lines: Record<string, number>): void;
21
21
  finalize(): IstanbulCoverageObject;
22
22
  }
@@ -20,7 +20,7 @@ export class IstanbulCoverageHandler extends BaseHandler {
20
20
  constructor() {
21
21
  super();
22
22
  }
23
- processFile(filePath, fileName, lines) {
23
+ processFile(filePath, _fileName, lines) {
24
24
  const statementMap = {};
25
25
  const s = {};
26
26
  const lineCoverage = {};
@@ -1 +1 @@
1
- {"version":3,"file":"istanbulJson.js","sourceRoot":"","sources":["../../src/handlers/istanbulJson.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAC9C,WAAW,GAAwB,EAAE,CAAC;IAE9C;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAA6B;QAClF,MAAM,YAAY,GAAgC,EAAE,CAAC;QACrD,MAAM,CAAC,GAA2B,EAAE,CAAC;QACrC,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAChC,YAAY,CAAC,UAAU,CAAC,GAAG;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;aACzB,CAAC;YACF,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,YAAY,GAAyB;YACzC,IAAI,EAAE,QAAQ;YACd,YAAY;YACZ,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,CAAC;YACD,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,YAAY;SAChB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,SAAS,GAAwB,EAAE,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,6BAA6B;AAC7B,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uDAAuD;IACpE,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE;IAC5C,cAAc,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;CAC1E,CAAC,CAAC"}
1
+ {"version":3,"file":"istanbulJson.js","sourceRoot":"","sources":["../../src/handlers/istanbulJson.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAC9C,WAAW,GAAwB,EAAE,CAAC;IAE9C;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAA6B;QACnF,MAAM,YAAY,GAAgC,EAAE,CAAC;QACrD,MAAM,CAAC,GAA2B,EAAE,CAAC;QACrC,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAChC,YAAY,CAAC,UAAU,CAAC,GAAG;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;aACzB,CAAC;YACF,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,YAAY,GAAyB;YACzC,IAAI,EAAE,QAAQ;YACd,YAAY;YACZ,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,EAAE;YACb,CAAC;YACD,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,YAAY;SAChB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;IAC5C,CAAC;IAEM,QAAQ;QACb,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,SAAS,GAAwB,EAAE,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,6BAA6B;AAC7B,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uDAAuD;IACpE,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE;IAC5C,cAAc,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC;CAC1E,CAAC,CAAC"}
@@ -19,7 +19,7 @@ export declare class JaCoCoCoverageHandler extends BaseHandler {
19
19
  private readonly coverageObj;
20
20
  private packageMap;
21
21
  constructor();
22
- processFile(filePath: string, fileName: string, lines: Record<string, number>): void;
22
+ processFile(filePath: string, _fileName: string, lines: Record<string, number>): void;
23
23
  finalize(): JaCoCoCoverageObject;
24
24
  private getOrCreatePackage;
25
25
  }
@@ -30,7 +30,7 @@ export class JaCoCoCoverageHandler extends BaseHandler {
30
30
  };
31
31
  this.packageMap = {}; // Stores packages by directory
32
32
  }
33
- processFile(filePath, fileName, lines) {
33
+ processFile(filePath, _fileName, lines) {
34
34
  const pathParts = filePath.split('/');
35
35
  const fileNamewithExt = pathParts.pop();
36
36
  const packageName = pathParts.join('/');
@@ -1 +1 @@
1
- {"version":3,"file":"jacoco.js","sourceRoot":"","sources":["../../src/handlers/jacoco.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jacoco.js","sourceRoot":"","sources":["../../src/handlers/jacoco.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,6 @@ import { BaseHandler } from './BaseHandler.js';
17
17
  export declare class LcovCoverageHandler extends BaseHandler {
18
18
  private readonly coverageObj;
19
19
  constructor();
20
- processFile(filePath: string, fileName: string, lines: Record<string, number>): void;
20
+ processFile(filePath: string, _fileName: string, lines: Record<string, number>): void;
21
21
  finalize(): LcovCoverageObject;
22
22
  }
@@ -21,7 +21,7 @@ export class LcovCoverageHandler extends BaseHandler {
21
21
  super();
22
22
  this.coverageObj = { files: [] };
23
23
  }
24
- processFile(filePath, fileName, lines) {
24
+ processFile(filePath, _fileName, lines) {
25
25
  const { totalLines, coveredLines } = this.calculateCoverage(lines);
26
26
  const lcovFile = {
27
27
  sourceFile: filePath,
@@ -38,9 +38,7 @@ export class LcovCoverageHandler extends BaseHandler {
38
38
  this.coverageObj.files.push(lcovFile);
39
39
  }
40
40
  finalize() {
41
- if ('files' in this.coverageObj && Array.isArray(this.coverageObj.files)) {
42
- this.coverageObj.files.sort((a, b) => a.sourceFile.localeCompare(b.sourceFile));
43
- }
41
+ this.coverageObj.files.sort((a, b) => a.sourceFile.localeCompare(b.sourceFile));
44
42
  return this.coverageObj;
45
43
  }
46
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lcov.js","sourceRoot":"","sources":["../../src/handlers/lcov.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACjC,WAAW,CAAqB;IAEjD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAA6B;QAClF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAa;YACzB,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,EAAE;YACT,UAAU;YACV,YAAY;SACb,CAAC;QAEF,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,QAAQ,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,QAAQ;QACb,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,6BAA6B;AAC7B,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,+CAA+C;IAC5D,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;IACxC,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;CAC3D,CAAC,CAAC"}
1
+ {"version":3,"file":"lcov.js","sourceRoot":"","sources":["../../src/handlers/lcov.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACjC,WAAW,CAAqB;IAEjD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAE,KAA6B;QACnF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAa;YACzB,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,EAAE;YACT,UAAU;YACV,YAAY;SACb,CAAC;QAEF,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,QAAQ,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,6BAA6B;AAC7B,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,+CAA+C;IAC5D,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;IACxC,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;CAC3D,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { MarkdownCoverageObject } from '../utils/types.js';
2
+ import { BaseHandler } from './BaseHandler.js';
3
+ /**
4
+ * Handler for generating Markdown coverage summaries.
5
+ *
6
+ * Designed for pipeline PR / MR comments and job summary blocks
7
+ * (e.g. `$GITHUB_STEP_SUMMARY`, GitLab MR widgets, Bitbucket comments).
8
+ *
9
+ * The report includes:
10
+ * - An overall coverage summary block
11
+ * - A per-package-directory coverage table
12
+ * - A file coverage table sorted with the lowest coverage first
13
+ *
14
+ * Compatible with:
15
+ * - GitHub Actions (job summary, sticky PR comments)
16
+ * - GitLab CI (MR comments)
17
+ * - Bitbucket / Azure DevOps PR comments
18
+ * - Any tool that renders GitHub-flavored Markdown
19
+ */
20
+ export declare class MarkdownCoverageHandler extends BaseHandler {
21
+ private readonly coverageObj;
22
+ private totalLinesAccumulator;
23
+ private coveredLinesAccumulator;
24
+ private readonly packageMap;
25
+ constructor();
26
+ processFile(filePath: string, _fileName: string, lines: Record<string, number>): void;
27
+ finalize(): MarkdownCoverageObject;
28
+ }