apex-code-coverage-transformer 2.9.0 → 2.10.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 +13 -13
- package/lib/handlers/coberturaCoverageHandler.d.ts +1 -1
- package/lib/handlers/coberturaCoverageHandler.js +26 -20
- package/lib/handlers/coberturaCoverageHandler.js.map +1 -1
- package/oclif.lock +81 -48
- package/oclif.manifest.json +1 -1
- package/package.json +4 -4
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.10.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.9.0...v2.10.0) (2025-02-26)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* dynamically determine cobertura package names from file paths ([cbf63df](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/cbf63dfc44ec79c9ec4e58bdc68bb9458f925e4f))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **deps:** bump @oclif/core from 4.2.6 to 4.2.8 ([b838b3f](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/b838b3f6a47eb8fee04d6d8a1321fc82c949cfe4))
|
|
19
|
+
* **deps:** bump @salesforce/core from 8.8.2 to 8.8.3 ([c395e9c](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/c395e9cf8e38fdd606b594589376b9670e7f220c))
|
|
20
|
+
|
|
8
21
|
## [2.9.0](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.8.7...v2.9.0) (2025-02-16)
|
|
9
22
|
|
|
10
23
|
|
package/README.md
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
<summary>Table of Contents</summary>
|
|
8
8
|
|
|
9
9
|
- [Install](#install)
|
|
10
|
-
- [
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
13
|
-
- [What
|
|
10
|
+
- [Usage](#usage)
|
|
11
|
+
- [Salesforce CLI](#salesforce-cli)
|
|
12
|
+
- [SFDX Hardis](#sfdx-hardis)
|
|
13
|
+
- [What This Fixes](#what-this-fixes)
|
|
14
14
|
- [Command](#command)
|
|
15
15
|
- [`sf acc-transformer transform`](#sf-acc-transformer-transform)
|
|
16
16
|
- [Coverage Report Formats](#coverage-report-formats)
|
|
@@ -31,17 +31,19 @@ If there's a coverage format not yet supported by this plugin, feel free to prov
|
|
|
31
31
|
sf plugins install apex-code-coverage-transformer@x.y.z
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## Usage
|
|
35
35
|
|
|
36
|
-
This plugin is intended for users who deploy their Apex
|
|
36
|
+
This plugin is intended for users who deploy their Apex or invoke Apex tests in their orgs from any Salesforce DX project (`sfdx-project.json` file) and would like to import the code coverage reports into external tools. The code coverage reports created by the Salesforce CLI aren't accepted automatically by external tools and needs to be transformed using this plugin.
|
|
37
37
|
|
|
38
38
|
This plugin will work regardless of your testing strategy (running all tests, running specified tests, running all local tests). The files in the original coverage JSON has to be found in one of the package directories to be added to the final report. This ensures external tools like SonarQube can match files in the coverage report to a file in the project.
|
|
39
39
|
|
|
40
40
|
When the plugin is unable to find a matching Apex file in your project (i.e. Apex from managed and unlocked packages), it will print a warning and not add that file's coverage data to the final coverage report. See [Debugging](#debugging) for more information.
|
|
41
41
|
|
|
42
|
-
|
|
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.
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
### Salesforce CLI
|
|
45
|
+
|
|
46
|
+
**This plugin will only support the "json" coverage format from the Salesforce CLI. Do not use other coverage formats from the Salesforce CLI.**
|
|
45
47
|
|
|
46
48
|
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`.
|
|
47
49
|
|
|
@@ -56,15 +58,13 @@ sf apex run test --code-coverage --output-dir "coverage"
|
|
|
56
58
|
sf apex get test --test-run-id <test run id> --code-coverage --output-dir "coverage"
|
|
57
59
|
```
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
## Creating Code Coverage Files with SFDX Hardis
|
|
61
|
+
### SFDX Hardis
|
|
62
62
|
|
|
63
63
|
This plugin can be used after running [sfdx-hardis](https://github.com/hardisgroupcom/sfdx-hardis) commands `hardis:project:deploy:smart` (only if `COVERAGE_FORMATTER_JSON=true` environment variable is defined) and `hardis:org:test:apex` assuming you have sfdx-hardis and this plugin installed.
|
|
64
64
|
|
|
65
65
|
Both hardis commands will create the code coverage JSON to transform here: `hardis-report/apex-coverage-results.json`. Provide this relative path as the `--coverage-json`/`-j` input for this plugin.
|
|
66
66
|
|
|
67
|
-
## What this
|
|
67
|
+
## What this fixes
|
|
68
68
|
|
|
69
69
|
- The coverage reports created by this plugin will add correct file-paths per your Salesforce DX project. Salesforce CLI coverage reports have the `no-map/` prefix hard-coded into their coverage reports. The coverage report created in this plugin will only contain Apex coverage results against files found in your Salesforce DX project, allowing you to use these reports in external code quality tools like SonarQube.
|
|
70
70
|
- Normalizes the coverage reports created by the Salesforce CLI deploy and test command. The coverage reports created by both CLI commands follow different formats and have different coverage format options. These differences cause issues when trying to have external tools like SonarQube parse the coverage reports. This plugin handles parsing both command coverage reports and converting them into common formats accepted by external tools like SonarQube and GitLab.
|
|
@@ -95,7 +95,7 @@ FLAGS
|
|
|
95
95
|
[default: "coverage.[xml/info]"]
|
|
96
96
|
-f, --format=<value> Output format for the code coverage format.
|
|
97
97
|
[default: "sonar"]
|
|
98
|
-
-i, --ignore-package-directory=<value> Package
|
|
98
|
+
-i, --ignore-package-directory=<value> Package directory to ignore when looking for matching files in the coverage report.
|
|
99
99
|
Should be as they appear in the "sfdx-project.json".
|
|
100
100
|
Can be declared multiple times.
|
|
101
101
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CoberturaCoverageObject, CoverageHandler } from '../helpers/types.js';
|
|
2
2
|
export declare class CoberturaCoverageHandler implements CoverageHandler {
|
|
3
3
|
private readonly coverageObj;
|
|
4
|
-
private
|
|
4
|
+
private packageMap;
|
|
5
5
|
constructor();
|
|
6
6
|
processFile(filePath: string, fileName: string, lines: Record<string, number>): void;
|
|
7
7
|
finalize(): CoberturaCoverageObject;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
export class CoberturaCoverageHandler {
|
|
3
3
|
coverageObj;
|
|
4
|
-
|
|
4
|
+
packageMap;
|
|
5
5
|
constructor() {
|
|
6
6
|
this.coverageObj = {
|
|
7
7
|
coverage: {
|
|
@@ -18,15 +18,19 @@ export class CoberturaCoverageHandler {
|
|
|
18
18
|
packages: { package: [] },
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
|
-
this.
|
|
22
|
-
'@name': 'main',
|
|
23
|
-
'@line-rate': 0,
|
|
24
|
-
'@branch-rate': 1,
|
|
25
|
-
classes: { class: [] },
|
|
26
|
-
};
|
|
27
|
-
this.coverageObj.coverage.packages.package.push(this.packageObj);
|
|
21
|
+
this.packageMap = new Map();
|
|
28
22
|
}
|
|
29
23
|
processFile(filePath, fileName, lines) {
|
|
24
|
+
const packageName = filePath.split('/')[0]; // Extract root directory as package name
|
|
25
|
+
if (!this.packageMap.has(packageName)) {
|
|
26
|
+
this.packageMap.set(packageName, {
|
|
27
|
+
'@name': packageName,
|
|
28
|
+
'@line-rate': 0,
|
|
29
|
+
'@branch-rate': 1,
|
|
30
|
+
classes: { class: [] },
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const packageObj = this.packageMap.get(packageName);
|
|
30
34
|
const classObj = {
|
|
31
35
|
'@name': fileName,
|
|
32
36
|
'@filename': filePath,
|
|
@@ -50,24 +54,26 @@ export class CoberturaCoverageHandler {
|
|
|
50
54
|
'@branch': 'false',
|
|
51
55
|
});
|
|
52
56
|
}
|
|
53
|
-
// Calculate and set the line rate for this class
|
|
54
57
|
if (totalLines > 0) {
|
|
55
|
-
|
|
56
|
-
classObj['@line-rate'] = lineRate;
|
|
58
|
+
classObj['@line-rate'] = (coveredLineCount / totalLines).toFixed(4);
|
|
57
59
|
}
|
|
58
60
|
this.coverageObj.coverage['@lines-valid'] += totalLines;
|
|
59
61
|
this.coverageObj.coverage['@lines-covered'] += coveredLineCount;
|
|
60
|
-
|
|
61
|
-
this.
|
|
62
|
-
this.packageObj.classes.class.push(classObj);
|
|
62
|
+
packageObj.classes.class.push(classObj);
|
|
63
|
+
this.packageMap.set(packageName, packageObj);
|
|
63
64
|
}
|
|
64
65
|
finalize() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
this.coverageObj.coverage.packages.package = Array.from(this.packageMap.values());
|
|
67
|
+
for (const pkg of this.coverageObj.coverage.packages.package) {
|
|
68
|
+
const totalLines = pkg.classes.class.reduce((sum, cls) => sum + parseFloat(cls['@line-rate']) * cls.lines.line.length, 0);
|
|
69
|
+
const totalClasses = pkg.classes.class.reduce((sum, cls) => sum + cls.lines.line.length, 0);
|
|
70
|
+
pkg['@line-rate'] = totalClasses > 0 ? parseFloat((totalLines / totalClasses).toFixed(4)) : 0;
|
|
71
|
+
}
|
|
72
|
+
this.coverageObj.coverage['@line-rate'] = parseFloat((this.coverageObj.coverage['@lines-covered'] / this.coverageObj.coverage['@lines-valid']).toFixed(4));
|
|
73
|
+
this.coverageObj.coverage.packages.package.sort((a, b) => a['@name'].localeCompare(b['@name']));
|
|
74
|
+
for (const pkg of this.coverageObj.coverage.packages.package) {
|
|
75
|
+
if (pkg.classes?.class) {
|
|
76
|
+
pkg.classes.class.sort((a, b) => a['@filename'].localeCompare(b['@filename']));
|
|
71
77
|
}
|
|
72
78
|
}
|
|
73
79
|
return this.coverageObj;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coberturaCoverageHandler.js","sourceRoot":"","sources":["../../src/handlers/coberturaCoverageHandler.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,MAAM,OAAO,wBAAwB;IAClB,WAAW,CAA0B;IAC9C,UAAU,
|
|
1
|
+
{"version":3,"file":"coberturaCoverageHandler.js","sourceRoot":"","sources":["../../src/handlers/coberturaCoverageHandler.ts"],"names":[],"mappings":"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"}
|
package/oclif.lock
CHANGED
|
@@ -1458,10 +1458,10 @@
|
|
|
1458
1458
|
"@jridgewell/resolve-uri" "^3.1.0"
|
|
1459
1459
|
"@jridgewell/sourcemap-codec" "^1.4.14"
|
|
1460
1460
|
|
|
1461
|
-
"@jsforce/jsforce-node@^3.6.
|
|
1462
|
-
version "3.6.
|
|
1463
|
-
resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.6.
|
|
1464
|
-
integrity sha512-
|
|
1461
|
+
"@jsforce/jsforce-node@^3.6.5":
|
|
1462
|
+
version "3.6.5"
|
|
1463
|
+
resolved "https://registry.yarnpkg.com/@jsforce/jsforce-node/-/jsforce-node-3.6.5.tgz#d8a4097b46348b6b5001da66d616b3e9c7efb59f"
|
|
1464
|
+
integrity sha512-XqYOCgqET9XYhwI3wmrg4oMRzKkTqy0ua8aopMQRMGT2QVuq2IBfRTSrfoMa129lqJvNy7XXA4ntXQJkKI/VqQ==
|
|
1465
1465
|
dependencies:
|
|
1466
1466
|
"@sindresorhus/is" "^4"
|
|
1467
1467
|
base64url "^3.0.1"
|
|
@@ -1495,13 +1495,13 @@
|
|
|
1495
1495
|
"@nodelib/fs.scandir" "2.1.5"
|
|
1496
1496
|
fastq "^1.6.0"
|
|
1497
1497
|
|
|
1498
|
-
"@oclif/core@^4", "@oclif/core@^4.2.3", "@oclif/core@^4.2.4", "@oclif/core@^4.2.
|
|
1499
|
-
version "4.2.
|
|
1500
|
-
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.2.
|
|
1501
|
-
integrity sha512-
|
|
1498
|
+
"@oclif/core@^4", "@oclif/core@^4.2.3", "@oclif/core@^4.2.4", "@oclif/core@^4.2.8":
|
|
1499
|
+
version "4.2.8"
|
|
1500
|
+
resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.2.8.tgz#6e71c76b8ea91064ffc8390a3fd2502c5d32a3db"
|
|
1501
|
+
integrity sha512-OWv4Va6bERxIhrYcnUGzyhGRqktc64lJO6cZ3UwkzJDpfR8ZrbCxRfKRBBah1i8kzUlOAeAXnpbMBMah3skKwA==
|
|
1502
1502
|
dependencies:
|
|
1503
1503
|
ansi-escapes "^4.3.2"
|
|
1504
|
-
ansis "^3.
|
|
1504
|
+
ansis "^3.16.0"
|
|
1505
1505
|
clean-stack "^3.0.1"
|
|
1506
1506
|
cli-spinners "^2.9.2"
|
|
1507
1507
|
debug "^4.4.0"
|
|
@@ -1519,14 +1519,14 @@
|
|
|
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.35":
|
|
1523
|
+
version "5.2.35"
|
|
1524
|
+
resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.2.35.tgz#19eacd8180772d9f172606edf3d6c99522fecbb3"
|
|
1525
|
+
integrity sha512-8A7iJ7tg2ZvyMG63sBOvdPIPq7RmggIdeACA0p6NfwzDI9mRL94v78m/6whqJKTUuzcERIIO+L2hwxPbBKwdGw==
|
|
1526
1526
|
dependencies:
|
|
1527
1527
|
"@oclif/core" "^4"
|
|
1528
|
-
ansis "^3.
|
|
1529
|
-
globby "^14.0
|
|
1528
|
+
ansis "^3.14.0"
|
|
1529
|
+
globby "^14.1.0"
|
|
1530
1530
|
just-diff "^5.2.0"
|
|
1531
1531
|
lodash.difference "^4.5.0"
|
|
1532
1532
|
lodash.get "^4.4.2"
|
|
@@ -1654,12 +1654,12 @@
|
|
|
1654
1654
|
strip-ansi "6.0.1"
|
|
1655
1655
|
ts-retry-promise "^0.8.1"
|
|
1656
1656
|
|
|
1657
|
-
"@salesforce/core@^8.5.1", "@salesforce/core@^8.8.0", "@salesforce/core@^8.8.2":
|
|
1658
|
-
version "8.8.
|
|
1659
|
-
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.8.
|
|
1660
|
-
integrity sha512-
|
|
1657
|
+
"@salesforce/core@^8.5.1", "@salesforce/core@^8.8.0", "@salesforce/core@^8.8.2", "@salesforce/core@^8.8.3":
|
|
1658
|
+
version "8.8.3"
|
|
1659
|
+
resolved "https://registry.yarnpkg.com/@salesforce/core/-/core-8.8.3.tgz#a764f1cf5f07b0a57d68c80d0d0a94bc95a7c97a"
|
|
1660
|
+
integrity sha512-2yzDs+qGIFCeUtXcB6rOCZbBftqFH3492CfAlP1KSK8xY16wH38SAvW0RsuepetA2UBOZhwx7R4uyHKDn26Png==
|
|
1661
1661
|
dependencies:
|
|
1662
|
-
"@jsforce/jsforce-node" "^3.6.
|
|
1662
|
+
"@jsforce/jsforce-node" "^3.6.5"
|
|
1663
1663
|
"@salesforce/kit" "^3.2.2"
|
|
1664
1664
|
"@salesforce/schemas" "^1.9.0"
|
|
1665
1665
|
"@salesforce/ts-types" "^2.0.10"
|
|
@@ -2741,17 +2741,7 @@ ajv@^6.12.4:
|
|
|
2741
2741
|
json-schema-traverse "^0.4.1"
|
|
2742
2742
|
uri-js "^4.2.2"
|
|
2743
2743
|
|
|
2744
|
-
ajv@^8.11.0:
|
|
2745
|
-
version "8.12.0"
|
|
2746
|
-
resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz"
|
|
2747
|
-
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
|
|
2748
|
-
dependencies:
|
|
2749
|
-
fast-deep-equal "^3.1.1"
|
|
2750
|
-
json-schema-traverse "^1.0.0"
|
|
2751
|
-
require-from-string "^2.0.2"
|
|
2752
|
-
uri-js "^4.2.2"
|
|
2753
|
-
|
|
2754
|
-
ajv@^8.17.1:
|
|
2744
|
+
ajv@^8.11.0, ajv@^8.17.1:
|
|
2755
2745
|
version "8.17.1"
|
|
2756
2746
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
|
|
2757
2747
|
integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
|
|
@@ -2816,10 +2806,10 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1:
|
|
|
2816
2806
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
|
|
2817
2807
|
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
|
|
2818
2808
|
|
|
2819
|
-
ansis@^3.10.0, ansis@^3.3.2, ansis@^3.5.2:
|
|
2820
|
-
version "3.
|
|
2821
|
-
resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.
|
|
2822
|
-
integrity sha512-
|
|
2809
|
+
ansis@^3.10.0, ansis@^3.14.0, ansis@^3.16.0, ansis@^3.3.2, ansis@^3.5.2:
|
|
2810
|
+
version "3.16.0"
|
|
2811
|
+
resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.16.0.tgz#5e365fd173133756a01199c77fc9146bb22fb5eb"
|
|
2812
|
+
integrity sha512-sU7d/tfZiYrsIAXbdL/CNZld5bCkruzwT5KmqmadCJYxuLxHAOBjidxD5+iLmN/6xEfjcQq1l7OpsiCBlc4LzA==
|
|
2823
2813
|
|
|
2824
2814
|
anymatch@~3.1.2:
|
|
2825
2815
|
version "3.1.3"
|
|
@@ -3078,6 +3068,13 @@ braces@^3.0.2, braces@~3.0.2:
|
|
|
3078
3068
|
dependencies:
|
|
3079
3069
|
fill-range "^7.0.1"
|
|
3080
3070
|
|
|
3071
|
+
braces@^3.0.3:
|
|
3072
|
+
version "3.0.3"
|
|
3073
|
+
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
|
3074
|
+
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
|
3075
|
+
dependencies:
|
|
3076
|
+
fill-range "^7.1.1"
|
|
3077
|
+
|
|
3081
3078
|
browser-stdout@^1.3.1:
|
|
3082
3079
|
version "1.3.1"
|
|
3083
3080
|
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
|
|
@@ -4437,7 +4434,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
|
|
4437
4434
|
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
|
|
4438
4435
|
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
|
4439
4436
|
|
|
4440
|
-
fast-glob@^3.2.11, fast-glob@^3.2.9
|
|
4437
|
+
fast-glob@^3.2.11, fast-glob@^3.2.9:
|
|
4441
4438
|
version "3.3.2"
|
|
4442
4439
|
resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
|
|
4443
4440
|
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
|
|
@@ -4448,6 +4445,17 @@ fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.2:
|
|
|
4448
4445
|
merge2 "^1.3.0"
|
|
4449
4446
|
micromatch "^4.0.4"
|
|
4450
4447
|
|
|
4448
|
+
fast-glob@^3.3.3:
|
|
4449
|
+
version "3.3.3"
|
|
4450
|
+
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
|
|
4451
|
+
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
|
|
4452
|
+
dependencies:
|
|
4453
|
+
"@nodelib/fs.stat" "^2.0.2"
|
|
4454
|
+
"@nodelib/fs.walk" "^1.2.3"
|
|
4455
|
+
glob-parent "^5.1.2"
|
|
4456
|
+
merge2 "^1.3.0"
|
|
4457
|
+
micromatch "^4.0.8"
|
|
4458
|
+
|
|
4451
4459
|
fast-json-stable-stringify@^2.0.0:
|
|
4452
4460
|
version "2.1.0"
|
|
4453
4461
|
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
|
|
@@ -4544,6 +4552,13 @@ fill-range@^7.0.1:
|
|
|
4544
4552
|
dependencies:
|
|
4545
4553
|
to-regex-range "^5.0.1"
|
|
4546
4554
|
|
|
4555
|
+
fill-range@^7.1.1:
|
|
4556
|
+
version "7.1.1"
|
|
4557
|
+
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
|
4558
|
+
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
|
4559
|
+
dependencies:
|
|
4560
|
+
to-regex-range "^5.0.1"
|
|
4561
|
+
|
|
4547
4562
|
find-cache-dir@^3.2.0:
|
|
4548
4563
|
version "3.3.2"
|
|
4549
4564
|
resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz"
|
|
@@ -4928,17 +4943,17 @@ globby@^11.1.0:
|
|
|
4928
4943
|
merge2 "^1.4.1"
|
|
4929
4944
|
slash "^3.0.0"
|
|
4930
4945
|
|
|
4931
|
-
globby@^14.0
|
|
4932
|
-
version "14.0
|
|
4933
|
-
resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.
|
|
4934
|
-
integrity sha512-
|
|
4946
|
+
globby@^14.1.0:
|
|
4947
|
+
version "14.1.0"
|
|
4948
|
+
resolved "https://registry.yarnpkg.com/globby/-/globby-14.1.0.tgz#138b78e77cf5a8d794e327b15dce80bf1fb0a73e"
|
|
4949
|
+
integrity sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==
|
|
4935
4950
|
dependencies:
|
|
4936
4951
|
"@sindresorhus/merge-streams" "^2.1.0"
|
|
4937
|
-
fast-glob "^3.3.
|
|
4938
|
-
ignore "^
|
|
4939
|
-
path-type "^
|
|
4952
|
+
fast-glob "^3.3.3"
|
|
4953
|
+
ignore "^7.0.3"
|
|
4954
|
+
path-type "^6.0.0"
|
|
4940
4955
|
slash "^5.1.0"
|
|
4941
|
-
unicorn-magic "^0.
|
|
4956
|
+
unicorn-magic "^0.3.0"
|
|
4942
4957
|
|
|
4943
4958
|
gopd@^1.0.1:
|
|
4944
4959
|
version "1.0.1"
|
|
@@ -5245,6 +5260,11 @@ ignore@^5.3.0:
|
|
|
5245
5260
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
|
|
5246
5261
|
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
|
|
5247
5262
|
|
|
5263
|
+
ignore@^7.0.3:
|
|
5264
|
+
version "7.0.3"
|
|
5265
|
+
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733"
|
|
5266
|
+
integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==
|
|
5267
|
+
|
|
5248
5268
|
immediate@~3.0.5:
|
|
5249
5269
|
version "3.0.6"
|
|
5250
5270
|
resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
|
|
@@ -6399,6 +6419,14 @@ micromatch@^4.0.2, micromatch@^4.0.4:
|
|
|
6399
6419
|
braces "^3.0.2"
|
|
6400
6420
|
picomatch "^2.3.1"
|
|
6401
6421
|
|
|
6422
|
+
micromatch@^4.0.8:
|
|
6423
|
+
version "4.0.8"
|
|
6424
|
+
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
|
|
6425
|
+
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
|
|
6426
|
+
dependencies:
|
|
6427
|
+
braces "^3.0.3"
|
|
6428
|
+
picomatch "^2.3.1"
|
|
6429
|
+
|
|
6402
6430
|
mime-db@1.52.0:
|
|
6403
6431
|
version "1.52.0"
|
|
6404
6432
|
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
|
|
@@ -7001,10 +7029,10 @@ path-type@^4.0.0:
|
|
|
7001
7029
|
resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
|
|
7002
7030
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
|
7003
7031
|
|
|
7004
|
-
path-type@^
|
|
7005
|
-
version "
|
|
7006
|
-
resolved "https://registry.yarnpkg.com/path-type/-/path-type-
|
|
7007
|
-
integrity sha512-
|
|
7032
|
+
path-type@^6.0.0:
|
|
7033
|
+
version "6.0.0"
|
|
7034
|
+
resolved "https://registry.yarnpkg.com/path-type/-/path-type-6.0.0.tgz#2f1bb6791a91ce99194caede5d6c5920ed81eb51"
|
|
7035
|
+
integrity sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==
|
|
7008
7036
|
|
|
7009
7037
|
pathval@^1.1.1:
|
|
7010
7038
|
version "1.1.1"
|
|
@@ -8540,6 +8568,11 @@ unicorn-magic@^0.1.0:
|
|
|
8540
8568
|
resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4"
|
|
8541
8569
|
integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==
|
|
8542
8570
|
|
|
8571
|
+
unicorn-magic@^0.3.0:
|
|
8572
|
+
version "0.3.0"
|
|
8573
|
+
resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz#4efd45c85a69e0dd576d25532fbfa22aa5c8a104"
|
|
8574
|
+
integrity sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==
|
|
8575
|
+
|
|
8543
8576
|
unist-util-is@^6.0.0:
|
|
8544
8577
|
version "6.0.0"
|
|
8545
8578
|
resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424"
|
package/oclif.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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.10.0",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@oclif/core": "^4.2.
|
|
7
|
-
"@salesforce/core": "^8.8.
|
|
6
|
+
"@oclif/core": "^4.2.8",
|
|
7
|
+
"@salesforce/core": "^8.8.3",
|
|
8
8
|
"@salesforce/sf-plugins-core": "^12.1.4",
|
|
9
9
|
"async": "^3.2.6",
|
|
10
10
|
"xmlbuilder2": "^3.1.1"
|
|
@@ -12,7 +12,7 @@
|
|
|
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.35",
|
|
16
16
|
"@salesforce/cli-plugins-testkit": "^5.3.39",
|
|
17
17
|
"@salesforce/dev-scripts": "^10.2.11",
|
|
18
18
|
"@types/async": "^3.2.24",
|