apex-code-coverage-transformer 3.0.3 → 3.1.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/CHANGELOG.md +14 -0
- package/README.md +92 -20
- package/lib/commands/acc-transformer/transform.js +3 -0
- package/lib/commands/acc-transformer/transform.js.map +1 -1
- package/lib/transformers/coverageTransformer.d.ts +1 -0
- package/lib/transformers/coverageTransformer.js +3 -5
- package/lib/transformers/coverageTransformer.js.map +1 -1
- package/oclif.manifest.json +1 -1
- package/package.json +74 -6
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
|
+
## [3.1.1](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v3.1.0...v3.1.1) (2026-08-21)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **ci:** fix release tag order + catch up stale README ([#378](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/378)) ([a48b4e1](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/a48b4e1462e7343d3b5a50dfda0cc4ab8ddac9a1))
|
|
14
|
+
|
|
15
|
+
## [3.1.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v3.0.3...v3.1.0) (2026-08-21)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **action:** add native GitHub Action wrapper ([#376](https://github.com/mcarvin8/apex-code-coverage-transformer/issues/376)) ([83810f9](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/83810f92f29b5592c83ea3feaa63bf7c07f218dc))
|
|
21
|
+
|
|
8
22
|
## [3.0.3](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v3.0.2...v3.0.3) (2026-08-19)
|
|
9
23
|
|
|
10
24
|
|
package/README.md
CHANGED
|
@@ -110,35 +110,75 @@ Works with [sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis):
|
|
|
110
110
|
|
|
111
111
|
## Command Reference
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
<!-- commands -->
|
|
114
|
+
* [`sf acc-transformer transform`](#sf-acc-transformer-transform)
|
|
115
|
+
|
|
116
|
+
## `sf acc-transformer transform`
|
|
117
|
+
|
|
118
|
+
Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
|
|
114
119
|
|
|
115
120
|
```
|
|
116
121
|
USAGE
|
|
117
|
-
$ sf acc-transformer transform -j <value>...
|
|
118
|
-
|
|
122
|
+
$ sf acc-transformer transform -j <value>... -r <value> [--json] [--flags-dir <value>] [-f
|
|
123
|
+
clover|cobertura|github-actions|html|jacoco|json|json-summary|lcovonly|markdown|opencover|simplecov|sonar...] [-i
|
|
124
|
+
<value>...] [--min-coverage <value>] [--max-annotations <value>] [-e <value>...]
|
|
119
125
|
|
|
120
126
|
FLAGS
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
-
|
|
129
|
-
|
|
130
|
-
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
127
|
+
-e, --exclude-pattern=<value>... Glob pattern for file paths to exclude from the coverage report. Matched
|
|
128
|
+
against the relative path from the repo root (e.g.
|
|
129
|
+
force-app/main/default/classes/MyClass.cls). Repeat the flag for multiple
|
|
130
|
+
patterns.
|
|
131
|
+
-f, --format=<option>... Output format for the coverage report.
|
|
132
|
+
<options: clover|cobertura|github-actions|html|jacoco|json|json-summary|lco
|
|
133
|
+
vonly|markdown|opencover|simplecov|sonar>
|
|
134
|
+
-i, --ignore-package-directory=<value>... Ignore a package directory when looking for matching files in the coverage
|
|
135
|
+
report.
|
|
136
|
+
-j, --coverage-json=<value>... (required) Path to a code coverage JSON file created by the Salesforce CLI
|
|
137
|
+
deploy or test command. Repeat the flag to merge multiple files. When the
|
|
138
|
+
same Apex file appears in multiple inputs, covered lines are unioned across
|
|
139
|
+
all inputs — if a line is covered in any input it is counted as covered in
|
|
140
|
+
the final report, even if it is uncovered in others.
|
|
141
|
+
-r, --output-report=<value> (required) [default: coverage.xml] Path to the code coverage file that will
|
|
142
|
+
be created by this plugin.
|
|
143
|
+
--max-annotations=<value> [default: 50] Maximum number of GitHub Actions ::warning annotations to
|
|
144
|
+
emit when using --format github-actions. Defaults to 50. Annotations beyond
|
|
145
|
+
this limit are summarised in a ::notice line.
|
|
146
|
+
--min-coverage=<value> Minimum required line coverage percentage (0–100). The command exits with
|
|
147
|
+
an error if overall coverage is below this threshold. Reports are still
|
|
148
|
+
written before the check.
|
|
137
149
|
|
|
138
150
|
GLOBAL FLAGS
|
|
139
|
-
--
|
|
151
|
+
--flags-dir=<value> Import flag values from a directory.
|
|
152
|
+
--json Format output as json.
|
|
153
|
+
|
|
154
|
+
DESCRIPTION
|
|
155
|
+
Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by
|
|
156
|
+
SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
|
|
157
|
+
|
|
158
|
+
Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by
|
|
159
|
+
SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
|
|
160
|
+
|
|
161
|
+
EXAMPLES
|
|
162
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "sonar"`
|
|
163
|
+
|
|
164
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "cobertura"`
|
|
165
|
+
|
|
166
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "clover"`
|
|
167
|
+
|
|
168
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.info" -f "lcovonly"`
|
|
169
|
+
|
|
170
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.md" -f "markdown"`
|
|
171
|
+
|
|
172
|
+
`sf acc-transformer transform -j "coverage.json" -r "coverage.txt" -f "github-actions"`
|
|
173
|
+
|
|
174
|
+
`sf acc-transformer transform -j "coverage.json" -i "force-app"`
|
|
175
|
+
|
|
176
|
+
`sf acc-transformer transform -j "coverage1.json" -j "coverage2.json" -r "coverage.xml" -f "sonar"`
|
|
140
177
|
```
|
|
141
178
|
|
|
179
|
+
_See code: [src/commands/acc-transformer/transform.ts](https://github.com/mcarvin8/apex-code-coverage-transformer/blob/v3.1.1/src/commands/acc-transformer/transform.ts)_
|
|
180
|
+
<!-- commandsstop -->
|
|
181
|
+
|
|
142
182
|
## Coverage Report Formats
|
|
143
183
|
|
|
144
184
|
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`).
|
|
@@ -240,6 +280,38 @@ sonar-scanner \
|
|
|
240
280
|
|
|
241
281
|
### GitHub Actions
|
|
242
282
|
|
|
283
|
+
#### Native Action (skip the sf CLI install)
|
|
284
|
+
|
|
285
|
+
For GitHub Actions specifically, the transform step can run as a native Action instead of `sf acc-transformer transform` - no need to install `@salesforce/cli` or this plugin just to convert a coverage file:
|
|
286
|
+
|
|
287
|
+
```yaml
|
|
288
|
+
- name: Transform Coverage
|
|
289
|
+
uses: mcarvin8/apex-code-coverage-transformer@v3
|
|
290
|
+
with:
|
|
291
|
+
coverage-json: coverage/test-result-codecoverage.json
|
|
292
|
+
output-report: coverage.xml
|
|
293
|
+
format: sonar
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Repeatable inputs (`coverage-json`, `format`, `ignore-package-directory`, `exclude-pattern`) accept one value per line. The action exposes `report-paths`, `coverage-percentage`, and `warnings` as step outputs:
|
|
297
|
+
|
|
298
|
+
```yaml
|
|
299
|
+
- name: Transform Coverage
|
|
300
|
+
id: transform
|
|
301
|
+
uses: mcarvin8/apex-code-coverage-transformer@v3
|
|
302
|
+
with:
|
|
303
|
+
coverage-json: coverage/test-result-codecoverage.json
|
|
304
|
+
format: |
|
|
305
|
+
sonar
|
|
306
|
+
markdown
|
|
307
|
+
min-coverage: 80
|
|
308
|
+
|
|
309
|
+
- name: Use the coverage percentage
|
|
310
|
+
run: echo "Coverage was ${{ steps.transform.outputs.coverage-percentage }}%"
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
`sf acc-transformer transform` remains available for every other CI provider (GitLab, Azure DevOps, Bitbucket) and for local/hook use - see [Automatic Transformation (Hook)](#automatic-transformation-hook) below.
|
|
314
|
+
|
|
243
315
|
#### Markdown PR comments (built-in)
|
|
244
316
|
|
|
245
317
|
Skip third-party summary actions by using the built-in `markdown` format:
|
|
@@ -71,6 +71,9 @@ export default class TransformerTransform extends SfCommand {
|
|
|
71
71
|
this.warn(warning);
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
+
if (!result.success) {
|
|
75
|
+
this.error(`Coverage of ${(result.lineRate * 100).toFixed(2)}% is below the required minimum of ${flags['min-coverage']}%.`);
|
|
76
|
+
}
|
|
74
77
|
return { path: result.finalPaths };
|
|
75
78
|
}
|
|
76
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,wDAAwD,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,QAAQ,CAAC,kCAAkC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,gCAAgC,EAAE,uBAAuB,CAAC,CAAC;AAElG,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,SAAqC;IAC9E,MAAM,CAAmB,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,CAAmB,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,CAAmB,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAErE,MAAM,CAAmB,KAAK,GAAG;QACtC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;YAC3D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;YAC3D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,cAAc;SACxB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACpD,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,aAAa;SACvB,CAAC;QACF,0BAA0B,EAAE,KAAK,CAAC,SAAS,CAAC;YAC1C,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wCAAwC,CAAC;YACtE,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,0DAA0D;QAC1D,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;YAC1D,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,GAAG;SACT,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;YAC7D,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,uBAAuB;SACjC,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;YAC7D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,KAAK,CAAC,eAAe,CAAC,EACtB,KAAK,CAAC,eAAe,CAAC,EACtB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5B,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,EACvC;YACE,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC;YAClC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACxC,eAAe,EAAE,KAAK,CAAC,iBAAiB,CAAC;SAC1C,CACF,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,CAAC,GAAG,CAAC,4CAA4C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CACR,eAAe,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sCAAsC,KAAK,CAAC,cAAc,CAAC,IAAI,CACjH,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -15,7 +15,7 @@ export async function transformCoverageReport(jsonFilePaths, outputReportPath, f
|
|
|
15
15
|
const jsonDataItems = await Promise.all(jsonFilePaths.map((p) => tryReadJson(p, warnings)));
|
|
16
16
|
const validData = jsonDataItems.filter((d) => d !== null);
|
|
17
17
|
if (validData.length === 0)
|
|
18
|
-
return { finalPaths: [outputReportPath], warnings, lineRate: 0 };
|
|
18
|
+
return { finalPaths: [outputReportPath], warnings, lineRate: 0, success: true };
|
|
19
19
|
const parsedItems = validData.map((d) => JSON.parse(d));
|
|
20
20
|
const types = parsedItems.map(checkCoverageDataType);
|
|
21
21
|
if (types.some((t) => t === 'Unknown')) {
|
|
@@ -54,9 +54,7 @@ export async function transformCoverageReport(jsonFilePaths, outputReportPath, f
|
|
|
54
54
|
const finalPath = await generateAndWriteReport(outputReportPath, coverageObj, format, formatAmount, renderOptions);
|
|
55
55
|
finalPaths.push(finalPath);
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
return { finalPaths, warnings, lineRate };
|
|
57
|
+
const success = options?.minCoverage === undefined || lineRate * 100 >= options.minCoverage;
|
|
58
|
+
return { finalPaths, warnings, lineRate, success };
|
|
61
59
|
}
|
|
62
60
|
//# sourceMappingURL=coverageTransformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverageTransformer.js","sourceRoot":"","sources":["../../src/transformers/coverageTransformer.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAQxE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAuB,EACvB,gBAAwB,EACxB,OAAiB,EACjB,UAAoB,EACpB,OAA0B;IAE1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,YAAY,GAAW,OAAO,CAAC,MAAM,CAAC;IAE5C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAEvE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"coverageTransformer.js","sourceRoot":"","sources":["../../src/transformers/coverageTransformer.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAQxE,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAuB,EACvB,gBAAwB,EACxB,OAAiB,EACjB,UAAoB,EACpB,OAA0B;IAE1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,YAAY,GAAW,OAAO,CAAC,MAAM,CAAC;IAE5C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAEvE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE5G,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAkB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAErD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;IAEnD,qEAAqE;IACrE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACjH,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAEhC,MAAM,OAAO,GAA8B;QACzC,QAAQ;QACR,WAAW,EAAE,kBAAkB;QAC/B,QAAQ;QACR,gBAAgB;QAChB,QAAQ;QACR,aAAa;QACb,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,EAAE;KAChD,CAAC;IAEF,MAAM,aAAa,GACjB,WAAW,KAAK,oBAAoB;QAClC,CAAC,CAAC,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,WAAmC,CAAC,EAAE,OAAO,CAAC;QACpG,CAAC,CAAC,MAAM,mBAAmB,CAAC,qBAAqB,CAAC,WAAmC,CAAC,EAAE,OAAO,CAAC,CAAC;IAErG,IAAI,aAAa,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IACpH,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1G,MAAM,aAAa,GAAG,OAAO,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAErH,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QACnH,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;IAE5F,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACrD,CAAC"}
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apex-code-coverage-transformer",
|
|
3
3
|
"description": "Transform Salesforce Apex code coverage JSON for SonarQube, SonarCloud, GitHub, GitLab, Azure, and Bitbucket",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.1.1",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@oclif/core": "4.13.3",
|
|
7
7
|
"@salesforce/core": "9.1.2",
|
|
8
8
|
"@salesforce/sf-plugins-core": "13.0.0"
|
|
9
9
|
},
|
|
10
10
|
"devDependencies": {
|
|
11
|
+
"@actions/core": "3.0.1",
|
|
11
12
|
"@biomejs/biome": "2.5.9",
|
|
12
13
|
"@commitlint/cli": "21.2.2",
|
|
13
14
|
"@commitlint/config-conventional": "21.2.2",
|
|
14
15
|
"@salesforce/cli-plugins-testkit": "5.3.66",
|
|
15
16
|
"@salesforce/dev-config": "4.3.3",
|
|
16
|
-
"@stryker-mutator/core": "
|
|
17
|
-
"@stryker-mutator/vitest-runner": "
|
|
17
|
+
"@stryker-mutator/core": "10.0.0",
|
|
18
|
+
"@stryker-mutator/vitest-runner": "10.0.0",
|
|
18
19
|
"@types/node": "26.2.0",
|
|
19
20
|
"@vitest/coverage-v8": "4.1.10",
|
|
21
|
+
"esbuild": "0.28.1",
|
|
20
22
|
"husky": "9.1.7",
|
|
21
23
|
"knip": "6.32.2",
|
|
22
24
|
"lint-staged": "17.3.0",
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
},
|
|
34
36
|
"files": [
|
|
35
37
|
"/lib",
|
|
38
|
+
"!/lib/action",
|
|
36
39
|
"/messages",
|
|
37
40
|
"/oclif.manifest.json",
|
|
38
41
|
"/oclif.lock",
|
|
@@ -84,6 +87,7 @@
|
|
|
84
87
|
},
|
|
85
88
|
"scripts": {
|
|
86
89
|
"build": "wireit",
|
|
90
|
+
"build:action": "wireit",
|
|
87
91
|
"clean": "wireit",
|
|
88
92
|
"clean:build": "wireit",
|
|
89
93
|
"clean:package-manager": "wireit",
|
|
@@ -95,9 +99,10 @@
|
|
|
95
99
|
"postpack": "shx rm -f oclif.manifest.json oclif.lock",
|
|
96
100
|
"prepack": "wireit",
|
|
97
101
|
"prepare": "husky",
|
|
102
|
+
"readme": "wireit",
|
|
98
103
|
"test": "wireit",
|
|
99
|
-
"test:mutation": "
|
|
100
|
-
"test:mutation:incremental": "
|
|
104
|
+
"test:mutation": "wireit",
|
|
105
|
+
"test:mutation:incremental": "wireit",
|
|
101
106
|
"test:nuts": "wireit",
|
|
102
107
|
"test:only": "wireit"
|
|
103
108
|
},
|
|
@@ -138,9 +143,24 @@
|
|
|
138
143
|
"build": {
|
|
139
144
|
"dependencies": [
|
|
140
145
|
"compile",
|
|
141
|
-
"lint"
|
|
146
|
+
"lint",
|
|
147
|
+
"build:action"
|
|
142
148
|
]
|
|
143
149
|
},
|
|
150
|
+
"build:action": {
|
|
151
|
+
"command": "esbuild src/action/index.ts --bundle --minify --platform=node --format=cjs --target=node22 --outfile=dist/action/index.cjs",
|
|
152
|
+
"files": [
|
|
153
|
+
"src/action/**/*.ts",
|
|
154
|
+
"src/transformers/**/*.ts",
|
|
155
|
+
"src/utils/**/*.ts",
|
|
156
|
+
"src/handlers/**/*.ts",
|
|
157
|
+
"tsconfig.json"
|
|
158
|
+
],
|
|
159
|
+
"output": [
|
|
160
|
+
"dist/action/**"
|
|
161
|
+
],
|
|
162
|
+
"clean": false
|
|
163
|
+
},
|
|
144
164
|
"compile": {
|
|
145
165
|
"command": "tsc -p . --pretty --incremental",
|
|
146
166
|
"files": [
|
|
@@ -210,6 +230,21 @@
|
|
|
210
230
|
],
|
|
211
231
|
"clean": false
|
|
212
232
|
},
|
|
233
|
+
"readme": {
|
|
234
|
+
"command": "oclif readme",
|
|
235
|
+
"files": [
|
|
236
|
+
"src/commands/acc-transformer/transform.ts",
|
|
237
|
+
"messages/transformer.transform.md",
|
|
238
|
+
"README.md"
|
|
239
|
+
],
|
|
240
|
+
"dependencies": [
|
|
241
|
+
"build"
|
|
242
|
+
],
|
|
243
|
+
"output": [
|
|
244
|
+
"README.md"
|
|
245
|
+
],
|
|
246
|
+
"clean": false
|
|
247
|
+
},
|
|
213
248
|
"test:compile": {
|
|
214
249
|
"command": "tsc -p \"./test\" --pretty",
|
|
215
250
|
"files": [
|
|
@@ -225,6 +260,39 @@
|
|
|
225
260
|
"lint"
|
|
226
261
|
]
|
|
227
262
|
},
|
|
263
|
+
"test:mutation": {
|
|
264
|
+
"command": "stryker run",
|
|
265
|
+
"files": [
|
|
266
|
+
"src/**/*.ts",
|
|
267
|
+
"test/**/*.ts",
|
|
268
|
+
"**/tsconfig.json",
|
|
269
|
+
"stryker.config.json",
|
|
270
|
+
"vitest.config.ts"
|
|
271
|
+
],
|
|
272
|
+
"output": [
|
|
273
|
+
"reports/mutation/**"
|
|
274
|
+
],
|
|
275
|
+
"dependencies": [
|
|
276
|
+
"lint"
|
|
277
|
+
]
|
|
278
|
+
},
|
|
279
|
+
"test:mutation:incremental": {
|
|
280
|
+
"command": "node scripts/incremental-mutation.mjs",
|
|
281
|
+
"files": [
|
|
282
|
+
"src/**/*.ts",
|
|
283
|
+
"test/**/*.ts",
|
|
284
|
+
"**/tsconfig.json",
|
|
285
|
+
"stryker.config.json",
|
|
286
|
+
"vitest.config.ts",
|
|
287
|
+
"scripts/incremental-mutation.mjs"
|
|
288
|
+
],
|
|
289
|
+
"output": [
|
|
290
|
+
"reports/mutation/**"
|
|
291
|
+
],
|
|
292
|
+
"dependencies": [
|
|
293
|
+
"lint"
|
|
294
|
+
]
|
|
295
|
+
},
|
|
228
296
|
"test:nuts": {
|
|
229
297
|
"command": "vitest run --config ./vitest.nut.config.ts && shx rm -f oclif.manifest.json oclif.lock *.tsbuildinfo",
|
|
230
298
|
"files": [
|