apex-code-coverage-transformer 2.16.1 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@
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.17.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.16.1...v2.17.0) (2026-02-24)
9
+
10
+
11
+ ### Features
12
+
13
+ * **html:** add package directory coverage and group files by directory ([#266](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/266)) ([1e55894](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/1e558945553f171bf731c8ce32d89c495af40491))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **deps:** bump @oclif/core from 4.8.0 to 4.8.1 ([#261](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/261)) ([14448d3](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/14448d316b544009546bfcb4e4141189f31b8a7b))
19
+ * **deps:** bump @salesforce/core from 8.25.0 to 8.26.2 ([#264](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/264)) ([0fdb0ad](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/0fdb0adf78d1dd694c822d5c10fc893eba4e142a))
20
+
8
21
  ## [2.16.1](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.16.0...v2.16.1) (2026-02-02)
9
22
 
10
23
 
@@ -22,6 +22,7 @@ export declare class HtmlCoverageHandler extends BaseHandler {
22
22
  private readonly coverageObj;
23
23
  private totalLinesAccumulator;
24
24
  private coveredLinesAccumulator;
25
+ private readonly packageMap;
25
26
  constructor();
26
27
  processFile(filePath: string, fileName: string, lines: Record<string, number>): void;
27
28
  finalize(): HtmlCoverageObject;
@@ -23,6 +23,7 @@ export class HtmlCoverageHandler extends BaseHandler {
23
23
  coverageObj;
24
24
  totalLinesAccumulator = 0;
25
25
  coveredLinesAccumulator = 0;
26
+ packageMap = new Map();
26
27
  constructor() {
27
28
  super();
28
29
  this.coverageObj = {
@@ -32,6 +33,7 @@ export class HtmlCoverageHandler extends BaseHandler {
32
33
  uncoveredLines: 0,
33
34
  lineRate: 0,
34
35
  },
36
+ packageSummaries: [],
35
37
  files: [],
36
38
  };
37
39
  }
@@ -57,6 +59,17 @@ export class HtmlCoverageHandler extends BaseHandler {
57
59
  // Accumulate totals
58
60
  this.totalLinesAccumulator += totalLines;
59
61
  this.coveredLinesAccumulator += coveredLines;
62
+ // Accumulate per-package-directory (e.g. force-app)
63
+ const directory = filePath.split('/')[0] || 'root';
64
+ const existing = this.packageMap.get(directory);
65
+ if (existing) {
66
+ existing.totalLines += totalLines;
67
+ existing.coveredLines += coveredLines;
68
+ existing.fileCount += 1;
69
+ }
70
+ else {
71
+ this.packageMap.set(directory, { totalLines, coveredLines, fileCount: 1 });
72
+ }
60
73
  }
61
74
  finalize() {
62
75
  // Calculate summary
@@ -68,8 +81,29 @@ export class HtmlCoverageHandler extends BaseHandler {
68
81
  uncoveredLines,
69
82
  lineRate,
70
83
  };
71
- // Sort files by path for deterministic output
72
- this.coverageObj.files.sort((a, b) => a.filePath.localeCompare(b.filePath));
84
+ // Sort files by package directory first, then by path (mimics folder structure)
85
+ this.coverageObj.files.sort((a, b) => {
86
+ const dirA = a.filePath.split('/')[0] || '';
87
+ const dirB = b.filePath.split('/')[0] || '';
88
+ if (dirA !== dirB)
89
+ return dirA.localeCompare(dirB);
90
+ return a.filePath.localeCompare(b.filePath);
91
+ });
92
+ // Build package directory summaries (e.g. force-app)
93
+ this.coverageObj.packageSummaries = Array.from(this.packageMap.entries())
94
+ .map(([directory, acc]) => {
95
+ const pkgUncoveredLines = acc.totalLines - acc.coveredLines;
96
+ const pkgLineRate = acc.totalLines > 0 ? acc.coveredLines / acc.totalLines : 0;
97
+ return {
98
+ directory,
99
+ totalLines: acc.totalLines,
100
+ coveredLines: acc.coveredLines,
101
+ uncoveredLines: pkgUncoveredLines,
102
+ lineRate: pkgLineRate,
103
+ fileCount: acc.fileCount,
104
+ };
105
+ })
106
+ .sort((a, b) => a.directory.localeCompare(b.directory));
73
107
  return this.coverageObj;
74
108
  }
75
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/handlers/html.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IACjC,WAAW,CAAqB;IACzC,qBAAqB,GAAG,CAAC,CAAC;IAC1B,uBAAuB,GAAG,CAAC,CAAC;IAEpC;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;aACZ;YACD,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAEM,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE,KAA6B;QAClF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE7F,MAAM,SAAS,GAA8B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,QAAQ;YACR,OAAO,EAAE,QAAQ,GAAG,CAAC;SACtB,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAqB;YACrC,QAAQ;YACR,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,cAAc;YACd,QAAQ;YACR,KAAK,EAAE,SAAS;SACjB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1C,oBAAoB;QACpB,IAAI,CAAC,qBAAqB,IAAI,UAAU,CAAC;QACzC,IAAI,CAAC,uBAAuB,IAAI,YAAY,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACb,oBAAoB;QACpB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhH,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG;YACzB,UAAU,EAAE,IAAI,CAAC,qBAAqB;YACtC,YAAY,EAAE,IAAI,CAAC,uBAAuB;YAC1C,cAAc;YACd,QAAQ;SACT,CAAC;QAEF,8CAA8C;QAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE5E,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,6BAA6B;AAC7B,eAAe,CAAC,QAAQ,CAAC;IACvB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,iDAAiD;IAC9D,aAAa,EAAE,OAAO;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;IACxC,cAAc,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;CACzE,CAAC,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/handlers/html.ts"],"names":[],"mappings":"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"}
@@ -69,25 +69,54 @@ function isHtmlCoverageObject(obj) {
69
69
  return typeof obj === 'object' && obj !== null && 'summary' in obj && 'files' in obj;
70
70
  }
71
71
  function generateHtml(coverageObj) {
72
- const { summary, files } = coverageObj;
72
+ const { summary, packageSummaries, files } = coverageObj;
73
73
  const coveragePercent = (summary.lineRate * 100).toFixed(2);
74
74
  const coverageColor = summary.lineRate >= 0.8 ? '#4caf50' : summary.lineRate >= 0.6 ? '#ff9800' : '#f44336';
75
- const fileRows = files
76
- .map((file) => {
77
- const filePercent = (file.lineRate * 100).toFixed(2);
78
- const fileColor = file.lineRate >= 0.8 ? '#4caf50' : file.lineRate >= 0.6 ? '#ff9800' : '#f44336';
79
- const lineDetails = file.lines
80
- .map((line) => {
81
- const lineClass = line.covered ? 'covered' : 'uncovered';
82
- const lineColor = line.covered ? '#c8e6c9' : '#ffcdd2';
83
- return `<tr class="${lineClass}" style="background-color: ${lineColor}">
75
+ const packageSummaryRows = packageSummaries.length > 0
76
+ ? packageSummaries
77
+ .map((pkg) => {
78
+ const pkgPercent = (pkg.lineRate * 100).toFixed(2);
79
+ const pkgColor = pkg.lineRate >= 0.8 ? '#4caf50' : pkg.lineRate >= 0.6 ? '#ff9800' : '#f44336';
80
+ return `<tr>
81
+ <td class="package-dir">${escapeHtml(pkg.directory)}</td>
82
+ <td class="package-stat">${pkg.fileCount}</td>
83
+ <td class="package-stat">${pkg.totalLines}</td>
84
+ <td class="package-stat">${pkg.coveredLines}</td>
85
+ <td class="package-stat">${pkg.uncoveredLines}</td>
86
+ <td class="package-pct" style="color: ${pkgColor}">${pkgPercent}%</td>
87
+ <td><span class="coverage-bar" style="background-color: ${pkgColor}; width: ${pkgPercent}%"></span></td>
88
+ </tr>`;
89
+ })
90
+ .join('\n')
91
+ : '';
92
+ // Group files by package directory (e.g. force-app) to mimic folder structure
93
+ const filesByDir = new Map();
94
+ for (const file of files) {
95
+ const dir = file.filePath.split('/')[0] || 'root';
96
+ const list = filesByDir.get(dir) ?? [];
97
+ list.push(file);
98
+ filesByDir.set(dir, list);
99
+ }
100
+ const sortedDirs = [...filesByDir.keys()].sort((a, b) => a.localeCompare(b));
101
+ const fileRows = sortedDirs
102
+ .map((dir) => {
103
+ const dirFiles = filesByDir.get(dir);
104
+ const dirFileSections = dirFiles
105
+ .map((file) => {
106
+ const filePercent = (file.lineRate * 100).toFixed(2);
107
+ const fileColor = file.lineRate >= 0.8 ? '#4caf50' : file.lineRate >= 0.6 ? '#ff9800' : '#f44336';
108
+ const lineDetails = file.lines
109
+ .map((line) => {
110
+ const lineClass = line.covered ? 'covered' : 'uncovered';
111
+ const lineColor = line.covered ? '#c8e6c9' : '#ffcdd2';
112
+ return `<tr class="${lineClass}" style="background-color: ${lineColor}">
84
113
  <td class="line-number">${line.lineNumber}</td>
85
114
  <td class="hit-count">${line.hitCount}</td>
86
115
  <td class="line-content"></td>
87
116
  </tr>`;
88
- })
89
- .join('\n');
90
- return `
117
+ })
118
+ .join('\n');
119
+ return `
91
120
  <div class="file-section">
92
121
  <h3 class="file-header" onclick="toggleFile('${file.filePath.replace(/'/g, "\\'")}')">
93
122
  <span class="file-name">${escapeHtml(file.filePath)}</span>
@@ -112,6 +141,14 @@ function generateHtml(coverageObj) {
112
141
  </div>
113
142
  </div>
114
143
  `;
144
+ })
145
+ .join('\n');
146
+ return `
147
+ <div class="package-files-group">
148
+ <h3 class="package-dir-header">${escapeHtml(dir)}/</h3>
149
+ ${dirFileSections}
150
+ </div>
151
+ `;
115
152
  })
116
153
  .join('\n');
117
154
  return `<!DOCTYPE html>
@@ -183,6 +220,17 @@ function generateHtml(coverageObj) {
183
220
  font-weight: bold;
184
221
  margin: 10px 0;
185
222
  }
223
+ .package-files-group {
224
+ margin-bottom: 28px;
225
+ }
226
+ .package-dir-header {
227
+ font-size: 1.1em;
228
+ color: #2c3e50;
229
+ margin-bottom: 12px;
230
+ padding-bottom: 6px;
231
+ border-bottom: 2px solid #3498db;
232
+ font-weight: 600;
233
+ }
186
234
  .file-section {
187
235
  margin-bottom: 20px;
188
236
  border: 1px solid #ddd;
@@ -258,6 +306,55 @@ function generateHtml(coverageObj) {
258
306
  .uncovered {
259
307
  background-color: #ffcdd2 !important;
260
308
  }
309
+ .package-summary {
310
+ margin-bottom: 30px;
311
+ }
312
+ .package-summary h2 {
313
+ margin-bottom: 15px;
314
+ color: #2c3e50;
315
+ font-size: 1.25em;
316
+ }
317
+ .package-summary table {
318
+ width: 100%;
319
+ border-collapse: collapse;
320
+ border: 1px solid #ddd;
321
+ border-radius: 6px;
322
+ overflow: hidden;
323
+ }
324
+ .package-summary th {
325
+ background: #34495e;
326
+ color: white;
327
+ padding: 12px;
328
+ text-align: left;
329
+ font-weight: 600;
330
+ }
331
+ .package-summary td {
332
+ padding: 10px 12px;
333
+ border-bottom: 1px solid #eee;
334
+ }
335
+ .package-summary tr:last-child td {
336
+ border-bottom: none;
337
+ }
338
+ .package-summary tr:hover {
339
+ background: #f8f9fa;
340
+ }
341
+ .package-dir {
342
+ font-weight: 600;
343
+ color: #2c3e50;
344
+ }
345
+ .package-stat {
346
+ text-align: right;
347
+ }
348
+ .package-pct {
349
+ font-weight: 600;
350
+ text-align: right;
351
+ }
352
+ .package-summary .coverage-bar {
353
+ display: block;
354
+ min-width: 60px;
355
+ height: 14px;
356
+ border-radius: 4px;
357
+ }
261
358
  @media (max-width: 768px) {
262
359
  .file-header {
263
360
  flex-direction: column;
@@ -297,6 +394,30 @@ function generateHtml(coverageObj) {
297
394
  </div>
298
395
  </div>
299
396
 
397
+ ${packageSummaryRows
398
+ ? `
399
+ <div class="package-summary">
400
+ <h2>Package directory coverage</h2>
401
+ <table>
402
+ <thead>
403
+ <tr>
404
+ <th>Directory</th>
405
+ <th>Files</th>
406
+ <th>Total lines</th>
407
+ <th>Covered</th>
408
+ <th>Uncovered</th>
409
+ <th>Coverage</th>
410
+ <th></th>
411
+ </tr>
412
+ </thead>
413
+ <tbody>
414
+ ${packageSummaryRows}
415
+ </tbody>
416
+ </table>
417
+ </div>
418
+ `
419
+ : ''}
420
+
300
421
  <h2 style="margin: 30px 0 20px 0; color: #2c3e50;">File Coverage Details</h2>
301
422
 
302
423
  ${fileRows}
@@ -1 +1 @@
1
- {"version":3,"file":"reportGenerator.js","sourceRoot":"","sources":["../../src/transformers/reportGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportGenerator.js","sourceRoot":"","sources":["../../src/transformers/reportGenerator.ts"],"names":[],"mappings":"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"}
@@ -323,6 +323,15 @@ export type HtmlFileCoverage = {
323
323
  covered: boolean;
324
324
  }>;
325
325
  };
326
+ /** Summary for a package directory (e.g. force-app) in the HTML report */
327
+ export type HtmlPackageSummary = {
328
+ directory: string;
329
+ totalLines: number;
330
+ coveredLines: number;
331
+ uncoveredLines: number;
332
+ lineRate: number;
333
+ fileCount: number;
334
+ };
326
335
  export type HtmlCoverageObject = {
327
336
  summary: {
328
337
  totalLines: number;
@@ -330,6 +339,8 @@ export type HtmlCoverageObject = {
330
339
  uncoveredLines: number;
331
340
  lineRate: number;
332
341
  };
342
+ /** Per-package-directory coverage (e.g. force-app) */
343
+ packageSummaries: HtmlPackageSummary[];
333
344
  files: HtmlFileCoverage[];
334
345
  };
335
346
  export {};