apex-code-coverage-transformer 2.10.0 → 2.11.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 +13 -0
- package/README.md +61 -50
- package/lib/helpers/types.d.ts +1 -0
- package/lib/hooks/postrun.js +16 -1
- package/lib/hooks/postrun.js.map +1 -1
- package/oclif.lock +25 -25
- package/oclif.manifest.json +1 -1
- package/package.json +5 -5
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.11.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.10.0...v2.11.0) (2025-03-07)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* include ignore package directories flag in hook ([fded594](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/fded594ccb229035aecfa426da972c5819a212a5))
|
|
14
|
+
* include ignore package directories flag in hook ([a7294a4](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/a7294a47a85141d4b1d0e21854ac14d4f19b9e14))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* **deps:** bump @salesforce/sf-plugins-core from 12.1.4 to 12.2.0 ([b96e83c](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/b96e83cc28c5f3ae82422c069fa157caa5e805b1))
|
|
20
|
+
|
|
8
21
|
## [2.10.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.9.0...v2.10.0) (2025-02-26)
|
|
9
22
|
|
|
10
23
|
|
package/README.md
CHANGED
|
@@ -10,18 +10,18 @@
|
|
|
10
10
|
- [Usage](#usage)
|
|
11
11
|
- [Salesforce CLI](#salesforce-cli)
|
|
12
12
|
- [SFDX Hardis](#sfdx-hardis)
|
|
13
|
-
- [
|
|
13
|
+
- [Fixes and Enhancements](#fixes-and-enhancements)
|
|
14
14
|
- [Command](#command)
|
|
15
15
|
- [`sf acc-transformer transform`](#sf-acc-transformer-transform)
|
|
16
16
|
- [Coverage Report Formats](#coverage-report-formats)
|
|
17
17
|
- [Hook](#hook)
|
|
18
|
-
- [
|
|
19
|
-
- [Contributing](#contributing)
|
|
18
|
+
- [Troubleshooting](#troubleshooting)
|
|
20
19
|
- [Issues](#issues)
|
|
20
|
+
- [Contributing](#contributing)
|
|
21
21
|
- [License](#license)
|
|
22
22
|
</details>
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Transform the Salesforce Apex code coverage JSON files created during deployments and test runs into other [formats](#coverage-report-formats) accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
|
|
25
25
|
|
|
26
26
|
If there's a coverage format not yet supported by this plugin, feel free to provide a pull request or issue for the coverage format.
|
|
27
27
|
|
|
@@ -33,22 +33,20 @@ sf plugins install apex-code-coverage-transformer@x.y.z
|
|
|
33
33
|
|
|
34
34
|
## Usage
|
|
35
35
|
|
|
36
|
-
This plugin is
|
|
36
|
+
This plugin is designed for users deploying Apex or running Apex tests within Salesforce DX projects (`sfdx-project.json`). It transforms Salesforce CLI JSON coverage reports into formats recognized by external tools.
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
The plugin ensures that coverage data is only reported for files found in your package directories, preventing mismatches in tools like SonarQube. If Apex files are missing from your project (i.e. Apex from managed or unlocked packages), they will be excluded from the transformed report with a [warning](#troubleshooting).
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
You should run this plugin after you deploy or invoke Apex tests in your org either using the Salesforce CLI or sfdx-hardis. See [Hook](#hook) if you'd like to automatically transform the coverage JSON after you run Salesforce CLI or sfdx-hardis commands.
|
|
40
|
+
To automate coverage transformation after deployments or test executions, see [Hook](#hook).
|
|
43
41
|
|
|
44
42
|
### Salesforce CLI
|
|
45
43
|
|
|
46
|
-
|
|
44
|
+
> This plugin will only support the "json" coverage format from the Salesforce CLI. Do not use other coverage formats from the Salesforce CLI.
|
|
47
45
|
|
|
48
46
|
To create the code coverage JSON when deploying or validating, append `--coverage-formatters json --results-dir "coverage"` to the `sf project deploy` command. This will create a coverage JSON in this relative path - `coverage/coverage/coverage.json`.
|
|
49
47
|
|
|
50
48
|
```
|
|
51
|
-
sf project deploy [start/validate] --coverage-formatters json --results-dir "coverage"
|
|
49
|
+
sf project deploy [start/validate/report/resume] --coverage-formatters json --results-dir "coverage"
|
|
52
50
|
```
|
|
53
51
|
|
|
54
52
|
To create the code coverage JSON when running tests directly in the org, append `--code-coverage --output-dir "coverage"` to the `sf apex run test` or `sf apex get test` command. This will create the code coverage JSON in this relative path - `coverage/test-result-codecoverage.json`
|
|
@@ -60,22 +58,26 @@ sf apex get test --test-run-id <test run id> --code-coverage --output-dir "cover
|
|
|
60
58
|
|
|
61
59
|
### SFDX Hardis
|
|
62
60
|
|
|
63
|
-
This plugin can be used after running [sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis) commands
|
|
61
|
+
This plugin can be used after running the below [sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis) commands:
|
|
62
|
+
|
|
63
|
+
- `sf hardis project deploy smart` (only if `COVERAGE_FORMATTER_JSON=true` environment variable is defined)
|
|
64
|
+
- `sf hardis org test apex`
|
|
64
65
|
|
|
65
|
-
Both hardis commands will create the code coverage JSON to transform here: `hardis-report/apex-coverage-results.json`.
|
|
66
|
+
Both hardis commands will create the code coverage JSON to transform here: `hardis-report/apex-coverage-results.json`.
|
|
66
67
|
|
|
67
|
-
|
|
68
|
+
### Fixes and Enhancements
|
|
68
69
|
|
|
69
|
-
-
|
|
70
|
-
- Normalizes
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
- To
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
70
|
+
- **Maps Apex file names** in the original coverage report (e.g., `no-map/AccountTriggerHandler`) to their corresponding relative file paths in the Salesforce DX project (e.g., `force-app/main/default/classes/AccountTriggerHandler.cls`).
|
|
71
|
+
- **Normalizes coverage reports** across both deploy and test commands, improving compatibility with external tools.
|
|
72
|
+
- **Adds additional coverage formats** not available in the default Salesforce CLI deploy and test commands.
|
|
73
|
+
- **"Fixes" inaccuracies** in Salesforce CLI deploy command coverage reports, such as:
|
|
74
|
+
- Out-of-range covered lines (e.g., line 100 reported as "covered" in a 98-line Apex class).
|
|
75
|
+
- Incorrect total line counts (e.g., 120 lines reported for a 100-line Apex class).
|
|
76
|
+
- To address these inaccuracies, the plugin includes a **re-numbering function** that only applies to deploy coverage reports. This function reassigns out-of-range `covered` lines to unused lines, ensuring reports are accepted by external tools.
|
|
77
|
+
- The `uncovered` lines are always correctly reported by the deploy command.
|
|
78
|
+
- Once Salesforce resolves the issue with the API that affects deploy command coverage reports, the re-numbering function will be removed in a future **breaking** release.
|
|
79
|
+
- See issues [5511](https://github.com/forcedotcom/salesforcedx-vscode/issues/5511) and [1568](https://github.com/forcedotcom/cli/issues/1568) for more details.
|
|
80
|
+
- **Note**: This does not affect coverage reports generated by the Salesforce CLI test commands.
|
|
79
81
|
|
|
80
82
|
## Command
|
|
81
83
|
|
|
@@ -106,41 +108,51 @@ DESCRIPTION
|
|
|
106
108
|
Transform the Apex code coverage JSON file created by the Salesforce CLI deploy and test command into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.
|
|
107
109
|
|
|
108
110
|
EXAMPLES
|
|
111
|
+
Transform the JSON into Sonar format:
|
|
112
|
+
|
|
109
113
|
$ sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "sonar"
|
|
110
114
|
|
|
115
|
+
Transform the JSON into Cobertura format:
|
|
116
|
+
|
|
111
117
|
$ sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "cobertura"
|
|
112
118
|
|
|
119
|
+
Transform the JSON into Clover format:
|
|
120
|
+
|
|
113
121
|
$ sf acc-transformer transform -j "coverage.json" -r "coverage.xml" -f "clover"
|
|
114
122
|
|
|
123
|
+
Transform the JSON into LCovOnly format:
|
|
124
|
+
|
|
115
125
|
$ sf acc-transformer transform -j "coverage.json" -r "coverage.info" -f "lcovonly"
|
|
116
126
|
|
|
127
|
+
Transform the JSON into Sonar format, ignoring Apex in the "force-app" directory:
|
|
128
|
+
|
|
117
129
|
$ sf acc-transformer transform -j "coverage.json" -i "force-app"
|
|
118
130
|
```
|
|
119
131
|
|
|
120
132
|
## Coverage Report Formats
|
|
121
133
|
|
|
122
|
-
The `-f`/`--format` flag allows you to specify the format of the coverage report.
|
|
134
|
+
The `-f`/`--format` flag allows you to specify the format of the transformed coverage report.
|
|
123
135
|
|
|
124
|
-
| Flag Option | Description | Example
|
|
125
|
-
| ----------- | ----------------------------------------------------------------------------------- |
|
|
126
|
-
| `sonar` | Generates a SonarQube-compatible coverage report. This is the default option. | [
|
|
127
|
-
| `clover` | Produces a Clover XML report format, commonly used with Atlassian tools. | [
|
|
128
|
-
| `lcovonly` | Outputs coverage data in LCOV format, useful for integrating with LCOV-based tools. | [
|
|
129
|
-
| `cobertura` | Creates a Cobertura XML report, a widely used format for coverage reporting. | [
|
|
130
|
-
| `jacoco` | Creates a JaCoCo XML report, the standard for Java projects. | [
|
|
136
|
+
| Flag Option | Description | Example |
|
|
137
|
+
| ----------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
138
|
+
| `sonar` | Generates a SonarQube-compatible coverage report. This is the default option. | [example](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/sonar_baseline.xml) |
|
|
139
|
+
| `clover` | Produces a Clover XML report format, commonly used with Atlassian tools. | [example](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/clover_baseline.xml) |
|
|
140
|
+
| `lcovonly` | Outputs coverage data in LCOV format, useful for integrating with LCOV-based tools. | [example](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/lcov_baseline.info) |
|
|
141
|
+
| `cobertura` | Creates a Cobertura XML report, a widely used format for coverage reporting. | [example](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/cobertura_baseline.xml) |
|
|
142
|
+
| `jacoco` | Creates a JaCoCo XML report, the standard for Java projects. | [example](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/test/jacoco_baseline.xml) |
|
|
131
143
|
|
|
132
144
|
## Hook
|
|
133
145
|
|
|
134
|
-
|
|
146
|
+
To enable automatic transformation after the below `sf` commands complete, create `.apexcodecovtransformer.config.json` in your project’s root directory.
|
|
135
147
|
|
|
136
|
-
- `sf project deploy start`
|
|
137
|
-
- `sf project deploy validate`
|
|
138
|
-
- `sf project deploy report`
|
|
139
|
-
- `sf project deploy resume`
|
|
148
|
+
- `sf project deploy [start/validate/report/resume]`
|
|
140
149
|
- `sf apex run test`
|
|
141
150
|
- `sf apex get test`
|
|
142
|
-
- `sf hardis project deploy smart`
|
|
143
|
-
-
|
|
151
|
+
- `sf hardis project deploy smart`
|
|
152
|
+
- only if `sfdx-hardis` is installed
|
|
153
|
+
- `COVERAGE_FORMATTER_JSON=true` must be set in the environment variables
|
|
154
|
+
- `sf hardis org test apex`
|
|
155
|
+
- only if `sfdx-hardis` is installed
|
|
144
156
|
|
|
145
157
|
You can copy the sample [Salesforce CLI .apexcodecovtransformer.config.json](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/defaults/salesforce-cli/.apexcodecovtransformer.config.json), which assumes you are running the Salesforce CLI commands and specifying the `--results-dir`/`--output-dir` directory as "coverage". Update this sample with your desired output report path and format.
|
|
146
158
|
|
|
@@ -151,21 +163,20 @@ The `.apexcodecovtransformer.config.json` follows this structure:
|
|
|
151
163
|
- `deployCoverageJsonPath` is required to use the hook after deploy commands and should be the path to the code coverage JSON created by the Salesforce CLI/SFDX Hardis deploy command. Recommend using a relative path.
|
|
152
164
|
- `testCoverageJsonPath` is required to use the hook after test commands and should be the path to the code coverage JSON created by the Salesforce CLI/SFDX Hardis test command. Recommend using a relative path.
|
|
153
165
|
- `outputReportPath` is optional and should be the path to the code coverage file created by this plugin. Recommend using a relative path. If this isn't provided, it will default to `coverage.[xml/info]` in the working directory.
|
|
154
|
-
- `format` is optional and should be the intended coverage report format created by this plugin. If this isn't provided, it will default to "sonar".
|
|
166
|
+
- `format` is optional and should be the intended coverage report [format](#coverage-report-formats) created by this plugin. If this isn't provided, it will default to "sonar".
|
|
167
|
+
- `ignorePackageDirectories` is optional and should be a comma-separated string of package directories to ignore when looking for matching files in the coverage report. Package directories should match how they appear in the `sfdx-project.json` file.
|
|
155
168
|
|
|
156
|
-
If
|
|
169
|
+
If `.apexcodecovtransformer.config.json` is missing, the hook will not run.
|
|
157
170
|
|
|
158
|
-
##
|
|
171
|
+
## Troubleshooting
|
|
159
172
|
|
|
160
|
-
Any file in the coverage JSON that isn't found in any package directory will result in this warning:
|
|
173
|
+
Any file in the coverage JSON that isn't found in any package directory will result in this warning and will not be added to the transformed report:
|
|
161
174
|
|
|
162
175
|
```
|
|
163
176
|
Warning: The file name AccountTrigger was not found in any package directory.
|
|
164
177
|
```
|
|
165
178
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
If none of the files listed in the coverage JSON were found in a package directory, the plugin will print an additional warning stating no files were processed. In this case, the output coverage report generated will be an empty file.
|
|
179
|
+
If none of the files listed in the coverage JSON were found in a package directory, the plugin will print an additional warning stating no files were processed. In this case, the transformed report generated will be an empty file.
|
|
169
180
|
|
|
170
181
|
```
|
|
171
182
|
Warning: The file name AccountTrigger was not found in any package directory.
|
|
@@ -191,13 +202,13 @@ Any ENOENT failures indicate that the plugin had issues finding one of the packa
|
|
|
191
202
|
Error (1): ENOENT: no such file or directory: {packageDirPath}
|
|
192
203
|
```
|
|
193
204
|
|
|
194
|
-
##
|
|
205
|
+
## Issues
|
|
195
206
|
|
|
196
|
-
|
|
207
|
+
If you encounter any issues or would like to suggest features, please create an [issue](https://github.com/mcarvin8/apex-code-coverage-transformer/issues).
|
|
197
208
|
|
|
198
|
-
##
|
|
209
|
+
## Contributing
|
|
199
210
|
|
|
200
|
-
|
|
211
|
+
Contributions are welcome! See [Contributing](https://github.com/mcarvin8/apex-code-coverage-transformer/blob/main/CONTRIBUTING.md).
|
|
201
212
|
|
|
202
213
|
## License
|
|
203
214
|
|
package/lib/helpers/types.d.ts
CHANGED
package/lib/hooks/postrun.js
CHANGED
|
@@ -7,7 +7,13 @@ import { getRepoRoot } from '../helpers/getRepoRoot.js';
|
|
|
7
7
|
export const postrun = async function (options) {
|
|
8
8
|
let commandType;
|
|
9
9
|
let coverageJson;
|
|
10
|
-
if ([
|
|
10
|
+
if ([
|
|
11
|
+
'project:deploy:validate',
|
|
12
|
+
'project:deploy:start',
|
|
13
|
+
'project:deploy:report',
|
|
14
|
+
'project:deploy:resume',
|
|
15
|
+
'hardis:project:deploy:smart',
|
|
16
|
+
].includes(options.Command.id)) {
|
|
11
17
|
commandType = 'deploy';
|
|
12
18
|
}
|
|
13
19
|
else if (['apex:run:test', 'apex:get:test', 'hardis:org:test:apex'].includes(options.Command.id)) {
|
|
@@ -31,6 +37,7 @@ export const postrun = async function (options) {
|
|
|
31
37
|
}
|
|
32
38
|
const outputReport = configFile.outputReportPath || 'coverage.xml';
|
|
33
39
|
const coverageFormat = configFile.format || 'sonar';
|
|
40
|
+
const ignorePackageDirs = configFile.ignorePackageDirectories || '';
|
|
34
41
|
if (commandType === 'deploy') {
|
|
35
42
|
coverageJson = configFile.deployCoverageJsonPath || '.';
|
|
36
43
|
}
|
|
@@ -52,6 +59,14 @@ export const postrun = async function (options) {
|
|
|
52
59
|
commandArgs.push(outputReportPath);
|
|
53
60
|
commandArgs.push('--format');
|
|
54
61
|
commandArgs.push(coverageFormat);
|
|
62
|
+
if (ignorePackageDirs.trim() !== '') {
|
|
63
|
+
const ignorePackageDirArray = ignorePackageDirs.split(',');
|
|
64
|
+
for (const dirs of ignorePackageDirArray) {
|
|
65
|
+
const sanitizedDir = dirs.replace(/,/g, '');
|
|
66
|
+
commandArgs.push('--ignore-package-directory');
|
|
67
|
+
commandArgs.push(sanitizedDir);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
55
70
|
await TransformerTransform.run(commandArgs);
|
|
56
71
|
};
|
|
57
72
|
//# sourceMappingURL=postrun.js.map
|
package/lib/hooks/postrun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postrun.js","sourceRoot":"","sources":["../../src/hooks/postrun.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,OAAO,GAAoB,KAAK,WAAW,OAAO;IAC7D,IAAI,WAAmB,CAAC;IACxB,IAAI,YAAoB,CAAC;IACzB,IACE,
|
|
1
|
+
{"version":3,"file":"postrun.js","sourceRoot":"","sources":["../../src/hooks/postrun.ts"],"names":[],"mappings":"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"}
|
package/oclif.lock
CHANGED
|
@@ -1495,7 +1495,7 @@
|
|
|
1495
1495
|
"@nodelib/fs.scandir" "2.1.5"
|
|
1496
1496
|
fastq "^1.6.0"
|
|
1497
1497
|
|
|
1498
|
-
"@oclif/core@^4", "@oclif/core@^4.2.
|
|
1498
|
+
"@oclif/core@^4", "@oclif/core@^4.2.4", "@oclif/core@^4.2.8":
|
|
1499
1499
|
version "4.2.8"
|
|
1500
1500
|
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.2.8.tgz#6e71c76b8ea91064ffc8390a3fd2502c5d32a3db"
|
|
1501
1501
|
integrity sha512-OWv4Va6bERxIhrYcnUGzyhGRqktc64lJO6cZ3UwkzJDpfR8ZrbCxRfKRBBah1i8kzUlOAeAXnpbMBMah3skKwA==
|
|
@@ -1519,13 +1519,13 @@
|
|
|
1519
1519
|
wordwrap "^1.0.0"
|
|
1520
1520
|
wrap-ansi "^7.0.0"
|
|
1521
1521
|
|
|
1522
|
-
"@oclif/plugin-command-snapshot@^5.2.
|
|
1523
|
-
version "5.2.
|
|
1524
|
-
resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.2.
|
|
1525
|
-
integrity sha512-
|
|
1522
|
+
"@oclif/plugin-command-snapshot@^5.2.36":
|
|
1523
|
+
version "5.2.36"
|
|
1524
|
+
resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.2.36.tgz#83b4ff3fcb0be14416a486405a15d29867a081d1"
|
|
1525
|
+
integrity sha512-NM8up8CGfybXPVESMaeubBqY5jMtIzZYGVrzhMI92Du46O46Ld1IX4jSdnNMjwnTRzTYdz3Br57d5IpnfpEcKw==
|
|
1526
1526
|
dependencies:
|
|
1527
1527
|
"@oclif/core" "^4"
|
|
1528
|
-
ansis "^3.
|
|
1528
|
+
ansis "^3.16.0"
|
|
1529
1529
|
globby "^14.1.0"
|
|
1530
1530
|
just-diff "^5.2.0"
|
|
1531
1531
|
lodash.difference "^4.5.0"
|
|
@@ -1732,10 +1732,10 @@
|
|
|
1732
1732
|
resolved "https://registry.yarnpkg.com/@salesforce/schemas/-/schemas-1.9.0.tgz#ba477a112653a20b4edcf989c61c57bdff9aa3ca"
|
|
1733
1733
|
integrity sha512-LiN37zG5ODT6z70sL1fxF7BQwtCX9JOWofSU8iliSNIM+WDEeinnoFtVqPInRSNt8I0RiJxIKCrqstsmQRBNvA==
|
|
1734
1734
|
|
|
1735
|
-
"@salesforce/sf-plugins-core@^12.
|
|
1736
|
-
version "12.
|
|
1737
|
-
resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-12.
|
|
1738
|
-
integrity sha512-
|
|
1735
|
+
"@salesforce/sf-plugins-core@^12.2.0":
|
|
1736
|
+
version "12.2.0"
|
|
1737
|
+
resolved "https://registry.yarnpkg.com/@salesforce/sf-plugins-core/-/sf-plugins-core-12.2.0.tgz#c53f5342841cc490752b78f2707e84d8946dd740"
|
|
1738
|
+
integrity sha512-aGNk74rMt8I+HTP7hRsX6kxiGTuun9ONrWkX7JvWDdtIoO9TsEbNVZENH8GFxHFalWPFCj31IMUQD/bGbxMFbg==
|
|
1739
1739
|
dependencies:
|
|
1740
1740
|
"@inquirer/confirm" "^3.1.22"
|
|
1741
1741
|
"@inquirer/password" "^2.2.0"
|
|
@@ -2474,9 +2474,9 @@
|
|
|
2474
2474
|
undici-types "~6.20.0"
|
|
2475
2475
|
|
|
2476
2476
|
"@types/node@18", "@types/node@^18.19.41":
|
|
2477
|
-
version "18.19.
|
|
2478
|
-
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.
|
|
2479
|
-
integrity sha512-
|
|
2477
|
+
version "18.19.78"
|
|
2478
|
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.78.tgz#29f5e7b947840c7aa9050ecac920fe6b1c7646a0"
|
|
2479
|
+
integrity sha512-m1ilZCTwKLkk9rruBJXFeYN0Bc5SbjirwYX/Td3MqPfioYbgun3IvK/m8dQxMCnrPGZPg1kvXjp3SIekCN/ynw==
|
|
2480
2480
|
dependencies:
|
|
2481
2481
|
undici-types "~5.26.4"
|
|
2482
2482
|
|
|
@@ -2806,7 +2806,7 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1:
|
|
|
2806
2806
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
|
|
2807
2807
|
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
|
|
2808
2808
|
|
|
2809
|
-
ansis@^3.10.0, ansis@^3.
|
|
2809
|
+
ansis@^3.10.0, ansis@^3.16.0, ansis@^3.3.2, ansis@^3.5.2:
|
|
2810
2810
|
version "3.16.0"
|
|
2811
2811
|
resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.16.0.tgz#5e365fd173133756a01199c77fc9146bb22fb5eb"
|
|
2812
2812
|
integrity sha512-sU7d/tfZiYrsIAXbdL/CNZld5bCkruzwT5KmqmadCJYxuLxHAOBjidxD5+iLmN/6xEfjcQq1l7OpsiCBlc4LzA==
|
|
@@ -6776,17 +6776,17 @@ object.values@^1.2.0:
|
|
|
6776
6776
|
define-properties "^1.2.1"
|
|
6777
6777
|
es-object-atoms "^1.0.0"
|
|
6778
6778
|
|
|
6779
|
-
oclif@^4.17.
|
|
6780
|
-
version "4.17.
|
|
6781
|
-
resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.17.
|
|
6782
|
-
integrity sha512-
|
|
6779
|
+
oclif@^4.17.32:
|
|
6780
|
+
version "4.17.32"
|
|
6781
|
+
resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.17.32.tgz#73786c41873252a3a78e19010506e52b361a3713"
|
|
6782
|
+
integrity sha512-OKdEMhDNSHn/4NYdyM4b8VfVEbnB4VuzZwvDc24AuoyhZFQBTfQaE+mqoPOGh5wb4eF74cWBlSKOLsrLCPbN0w==
|
|
6783
6783
|
dependencies:
|
|
6784
6784
|
"@aws-sdk/client-cloudfront" "^3.749.0"
|
|
6785
6785
|
"@aws-sdk/client-s3" "^3.749.0"
|
|
6786
6786
|
"@inquirer/confirm" "^3.1.22"
|
|
6787
6787
|
"@inquirer/input" "^2.2.4"
|
|
6788
6788
|
"@inquirer/select" "^2.5.0"
|
|
6789
|
-
"@oclif/core" "^4.2.
|
|
6789
|
+
"@oclif/core" "^4.2.8"
|
|
6790
6790
|
"@oclif/plugin-help" "^6.2.25"
|
|
6791
6791
|
"@oclif/plugin-not-found" "^3.2.32"
|
|
6792
6792
|
"@oclif/plugin-warn-if-update-available" "^3.1.31"
|
|
@@ -6801,7 +6801,7 @@ oclif@^4.17.30:
|
|
|
6801
6801
|
got "^13"
|
|
6802
6802
|
lodash "^4.17.21"
|
|
6803
6803
|
normalize-package-data "^6"
|
|
6804
|
-
semver "^7.7.
|
|
6804
|
+
semver "^7.7.1"
|
|
6805
6805
|
sort-package-json "^2.14.0"
|
|
6806
6806
|
tiny-jsonc "^1.0.1"
|
|
6807
6807
|
validate-npm-package-name "^5.0.1"
|
|
@@ -7617,7 +7617,7 @@ semver@^6.0.0, semver@^6.3.1:
|
|
|
7617
7617
|
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
|
|
7618
7618
|
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
|
7619
7619
|
|
|
7620
|
-
semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@^7.7.
|
|
7620
|
+
semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@^7.7.1:
|
|
7621
7621
|
version "7.7.1"
|
|
7622
7622
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
|
|
7623
7623
|
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
|
@@ -8528,10 +8528,10 @@ typedoc@^0.26.5:
|
|
|
8528
8528
|
shiki "^1.16.2"
|
|
8529
8529
|
yaml "^2.5.1"
|
|
8530
8530
|
|
|
8531
|
-
"typescript@^4.6.4 || ^5.2.2", typescript@^5.5.4, typescript@^5.
|
|
8532
|
-
version "5.
|
|
8533
|
-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.
|
|
8534
|
-
integrity sha512-
|
|
8531
|
+
"typescript@^4.6.4 || ^5.2.2", typescript@^5.5.4, typescript@^5.8.2:
|
|
8532
|
+
version "5.8.2"
|
|
8533
|
+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4"
|
|
8534
|
+
integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==
|
|
8535
8535
|
|
|
8536
8536
|
typescript@~5.4.2:
|
|
8537
8537
|
version "5.4.5"
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "apex-code-coverage-transformer",
|
|
3
3
|
"description": "Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.11.0",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@oclif/core": "^4.2.8",
|
|
7
7
|
"@salesforce/core": "^8.8.3",
|
|
8
|
-
"@salesforce/sf-plugins-core": "^12.
|
|
8
|
+
"@salesforce/sf-plugins-core": "^12.2.0",
|
|
9
9
|
"async": "^3.2.6",
|
|
10
10
|
"xmlbuilder2": "^3.1.1"
|
|
11
11
|
},
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@commitlint/cli": "^19.7.1",
|
|
14
14
|
"@commitlint/config-conventional": "^19.7.1",
|
|
15
|
-
"@oclif/plugin-command-snapshot": "^5.2.
|
|
15
|
+
"@oclif/plugin-command-snapshot": "^5.2.36",
|
|
16
16
|
"@salesforce/cli-plugins-testkit": "^5.3.39",
|
|
17
17
|
"@salesforce/dev-scripts": "^10.2.11",
|
|
18
18
|
"@types/async": "^3.2.24",
|
|
19
19
|
"@types/node": "18",
|
|
20
20
|
"eslint-plugin-sf-plugin": "^1.20.14",
|
|
21
21
|
"husky": "^9.1.7",
|
|
22
|
-
"oclif": "^4.17.
|
|
22
|
+
"oclif": "^4.17.32",
|
|
23
23
|
"shx": "0.3.4",
|
|
24
24
|
"ts-node": "^10.9.2",
|
|
25
|
-
"typescript": "^5.
|
|
25
|
+
"typescript": "^5.8.2"
|
|
26
26
|
},
|
|
27
27
|
"engines": {
|
|
28
28
|
"node": ">=18.0.0"
|