@fabasoad/sarif-to-slack 1.3.0 → 1.3.2
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/.gitattributes +1 -0
- package/.github/workflows/release.yml +3 -3
- package/.github/workflows/send-sarif-to-slack.yml +15 -12
- package/.pre-commit-config.yaml +2 -1
- package/.tool-versions +1 -1
- package/README.md +47 -12
- package/biome.json +5 -52
- package/dist/Logger.js +51 -22
- package/dist/SarifToSlackClient.d.ts +12 -10
- package/dist/SarifToSlackClient.d.ts.map +1 -1
- package/dist/SarifToSlackClient.js +28 -15
- package/dist/index.cjs +612 -244
- package/dist/index.d.ts +1 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -8
- package/dist/model/Finding.js +4 -3
- package/dist/model/SlackMessage.d.ts +0 -16
- package/dist/model/SlackMessage.d.ts.map +1 -1
- package/dist/model/color/ColorIdentification.js +50 -46
- package/dist/model/color/ColorOptions.d.ts +1 -1
- package/dist/model/color/ColorOptions.d.ts.map +1 -1
- package/dist/representations/CompactGroupByRepresentation.js +2 -2
- package/dist/representations/Representation.js +6 -2
- package/dist/representations/RepresentationFactory.js +19 -1
- package/dist/representations/TableGroupByRunPerLevelRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupByRunPerLevelRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByRunPerLevelRepresentation.js +8 -0
- package/dist/representations/TableGroupByRunPerSeverityRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupByRunPerSeverityRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByRunPerSeverityRepresentation.js +8 -0
- package/dist/representations/TableGroupByRunRepresentation.d.ts +7 -0
- package/dist/representations/TableGroupByRunRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByRunRepresentation.js +7 -0
- package/dist/representations/TableGroupBySarifPerLevelRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupBySarifPerLevelRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupBySarifPerLevelRepresentation.js +8 -0
- package/dist/representations/TableGroupBySarifPerSeverityRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupBySarifPerSeverityRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupBySarifPerSeverityRepresentation.js +8 -0
- package/dist/representations/TableGroupBySarifRepresentation.d.ts +9 -0
- package/dist/representations/TableGroupBySarifRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupBySarifRepresentation.js +15 -0
- package/dist/representations/TableGroupByToolNamePerLevelRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupByToolNamePerLevelRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByToolNamePerLevelRepresentation.js +8 -0
- package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.d.ts +6 -0
- package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.js +8 -0
- package/dist/representations/TableGroupByToolNameRepresentation.d.ts +7 -0
- package/dist/representations/TableGroupByToolNameRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupByToolNameRepresentation.js +7 -0
- package/dist/representations/TableGroupRepresentation.d.ts +16 -0
- package/dist/representations/TableGroupRepresentation.d.ts.map +1 -0
- package/dist/representations/TableGroupRepresentation.js +62 -0
- package/dist/representations/table/Cell.d.ts +10 -0
- package/dist/representations/table/Cell.d.ts.map +1 -0
- package/dist/representations/table/Cell.js +23 -0
- package/dist/representations/table/Column.d.ts +11 -0
- package/dist/representations/table/Column.d.ts.map +1 -0
- package/dist/representations/table/Column.js +31 -0
- package/dist/representations/table/Row.d.ts +15 -0
- package/dist/representations/table/Row.d.ts.map +1 -0
- package/dist/representations/table/Row.js +45 -0
- package/dist/representations/table/Table.d.ts +14 -0
- package/dist/representations/table/Table.d.ts.map +1 -0
- package/dist/representations/table/Table.js +66 -0
- package/dist/sarif-to-slack.d.ts +98 -88
- package/dist/system.d.ts +2 -0
- package/dist/system.d.ts.map +1 -0
- package/dist/system.js +24 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +90 -56
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +89 -42
- package/dist/utils/FileUtils.js +23 -21
- package/dist/utils/StringUtils.d.ts +2 -0
- package/dist/utils/StringUtils.d.ts.map +1 -0
- package/dist/utils/StringUtils.js +5 -0
- package/etc/sarif-to-slack.api.md +8 -36
- package/package.json +11 -11
- package/src/Logger.ts +64 -26
- package/src/SarifToSlackClient.ts +42 -29
- package/src/index.ts +0 -9
- package/src/model/Finding.ts +14 -13
- package/src/model/FindingArray.ts +1 -1
- package/src/model/SlackMessage.ts +5 -5
- package/src/model/color/ColorIdentification.ts +66 -50
- package/src/model/color/ColorOptions.ts +1 -1
- package/src/processors/CodeQLProcessor.ts +1 -1
- package/src/representations/CompactGroupByRepresentation.ts +2 -2
- package/src/representations/CompactGroupByRunRepresentation.ts +2 -2
- package/src/representations/CompactGroupBySarifRepresentation.ts +2 -2
- package/src/representations/CompactGroupByToolNameRepresentation.ts +2 -2
- package/src/representations/CompactTotalRepresentation.ts +1 -1
- package/src/representations/Representation.ts +9 -4
- package/src/representations/RepresentationFactory.ts +26 -2
- package/src/representations/TableGroupByRunPerLevelRepresentation.ts +9 -0
- package/src/representations/TableGroupByRunPerSeverityRepresentation.ts +9 -0
- package/src/representations/TableGroupByRunRepresentation.ts +15 -0
- package/src/representations/TableGroupBySarifPerLevelRepresentation.ts +9 -0
- package/src/representations/TableGroupBySarifPerSeverityRepresentation.ts +9 -0
- package/src/representations/TableGroupBySarifRepresentation.ts +25 -0
- package/src/representations/TableGroupByToolNamePerLevelRepresentation.ts +10 -0
- package/src/representations/TableGroupByToolNamePerSeverityRepresentation.ts +10 -0
- package/src/representations/TableGroupByToolNameRepresentation.ts +15 -0
- package/src/representations/TableGroupRepresentation.ts +78 -0
- package/src/representations/table/Cell.ts +25 -0
- package/src/representations/table/Column.ts +39 -0
- package/src/representations/table/Row.ts +50 -0
- package/src/representations/table/Table.ts +93 -0
- package/src/system.ts +27 -0
- package/src/types.ts +98 -58
- package/src/utils/Comparators.ts +1 -1
- package/src/utils/FileUtils.ts +30 -27
- package/src/utils/StringUtils.ts +7 -0
- package/test-data/sarif/codeql-go.sarif +1 -1
- package/test-data/sarif/runs-1-extensions-1-results-0.sarif +2 -2
- package/test-data/sarif/snyk-hex.sarif +1 -1
- package/tests/integration/SendSarifToSlack.spec.ts +73 -83
- package/tests/representations/table/Table.spec.ts +174 -0
- package/dist/System.d.ts +0 -2
- package/dist/System.d.ts.map +0 -1
- package/dist/System.js +0 -15
- package/src/System.ts +0 -16
- /package/test-data/sarif/{tmp → multiple}/codeql-csharp.sarif +0 -0
- /package/test-data/sarif/{tmp → multiple}/grype-container.sarif +0 -0
- /package/test-data/sarif/{tmp → multiple}/runs-1-tools-1-results-0.sarif +0 -0
- /package/test-data/sarif/{tmp → multiple}/runs-2-tools-2.sarif +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
* import {
|
|
11
11
|
* Color,
|
|
12
12
|
* FooterType,
|
|
13
|
-
* LogLevel,
|
|
14
13
|
* RepresentationType,
|
|
15
14
|
* SarifToSlackClient,
|
|
16
15
|
* SendIf
|
|
@@ -44,11 +43,6 @@
|
|
|
44
43
|
* recursive: true,
|
|
45
44
|
* extension: 'sarif',
|
|
46
45
|
* },
|
|
47
|
-
* log: {
|
|
48
|
-
* level: LogLevel.Info,
|
|
49
|
-
* template: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
|
|
50
|
-
* colored: false,
|
|
51
|
-
* },
|
|
52
46
|
* header: {
|
|
53
47
|
* include: true,
|
|
54
48
|
* value: 'SARIF Analysis Results'
|
|
@@ -78,7 +72,6 @@
|
|
|
78
72
|
export { Color } from './model/color/Color';
|
|
79
73
|
export { ColorOptions, ColorGroupCommon, ColorGroupByLevel, ColorGroupBySeverity } from './model/color/ColorOptions';
|
|
80
74
|
export { SendIf } from './model/SendIf';
|
|
81
|
-
export { SlackMessage } from './model/SlackMessage';
|
|
82
75
|
export { SarifToSlackClient } from './SarifToSlackClient';
|
|
83
|
-
export { FooterOptions, FooterType, IncludeAwareOptions, IncludeAwareWithValueOptions,
|
|
76
|
+
export { FooterOptions, FooterType, IncludeAwareOptions, IncludeAwareWithValueOptions, RepresentationType, SarifFileExtension, SarifOptions, SarifToSlackClientOptions } from './types';
|
|
84
77
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACL,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,yBAAyB,EAC1B,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
* import {
|
|
12
12
|
* Color,
|
|
13
13
|
* FooterType,
|
|
14
|
-
* LogLevel,
|
|
15
14
|
* RepresentationType,
|
|
16
15
|
* SarifToSlackClient,
|
|
17
16
|
* SendIf
|
|
@@ -45,11 +44,6 @@
|
|
|
45
44
|
* recursive: true,
|
|
46
45
|
* extension: 'sarif',
|
|
47
46
|
* },
|
|
48
|
-
* log: {
|
|
49
|
-
* level: LogLevel.Info,
|
|
50
|
-
* template: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
|
|
51
|
-
* colored: false,
|
|
52
|
-
* },
|
|
53
47
|
* header: {
|
|
54
48
|
* include: true,
|
|
55
49
|
* value: 'SARIF Analysis Results'
|
|
@@ -79,5 +73,5 @@
|
|
|
79
73
|
export { Color } from './model/color/Color';
|
|
80
74
|
export { SendIf } from './model/SendIf';
|
|
81
75
|
export { SarifToSlackClient } from './SarifToSlackClient';
|
|
82
|
-
export { FooterType,
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
export { FooterType, RepresentationType } from './types';
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEZBQTBGO0FBRTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0VHO0FBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBTzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RCxPQUFPLEVBRUwsVUFBVSxFQUdWLGtCQUFrQixFQUluQixNQUFNLFNBQVMsQ0FBQSJ9
|
package/dist/model/Finding.js
CHANGED
|
@@ -15,6 +15,7 @@ export function createFinding(opts) {
|
|
|
15
15
|
* @private
|
|
16
16
|
*/
|
|
17
17
|
class FindingImpl {
|
|
18
|
+
_logger = new Logger('FindingImpl');
|
|
18
19
|
_runMetadata;
|
|
19
20
|
_result;
|
|
20
21
|
_sarifPath;
|
|
@@ -60,7 +61,7 @@ class FindingImpl {
|
|
|
60
61
|
this._levelCache = this._processor.tryFindLevel();
|
|
61
62
|
}
|
|
62
63
|
if (this._levelCache === undefined) {
|
|
63
|
-
|
|
64
|
+
this._logger.debug(`Unknown level of ${this._rule?.id} rule`);
|
|
64
65
|
return SecurityLevel.Unknown;
|
|
65
66
|
}
|
|
66
67
|
switch (this._levelCache) {
|
|
@@ -72,7 +73,7 @@ class FindingImpl {
|
|
|
72
73
|
}
|
|
73
74
|
get severity() {
|
|
74
75
|
if (this.cvssScore == null || this.cvssScore < 0 || this.cvssScore > 10) {
|
|
75
|
-
|
|
76
|
+
this._logger.debug(`Unsupported CVSS score ${this.cvssScore} in ${this._rule?.id} rule`);
|
|
76
77
|
return SecuritySeverity.Unknown;
|
|
77
78
|
}
|
|
78
79
|
if (this.cvssScore >= 9) {
|
|
@@ -90,4 +91,4 @@ class FindingImpl {
|
|
|
90
91
|
return SecuritySeverity.None;
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9GaW5kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3hFLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQTtBQUU5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUEwQmhFOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBb0I7SUFDaEQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVc7SUFDRSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsWUFBWSxDQUFVO0lBQ3RCLE9BQU8sQ0FBUztJQUNoQixVQUFVLENBQVM7SUFDbkIsS0FBSyxDQUF1QjtJQUM1QixVQUFVLENBQWtCO0lBRXJDLHdCQUF3QixHQUFZLEtBQUssQ0FBQztJQUMxQyxlQUFlLEdBQXVCLFNBQVMsQ0FBQztJQUVoRCxvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsV0FBVyxHQUE2QixTQUFTLENBQUM7SUFFMUQsWUFBWSxJQUFvQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcs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
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
import { FooterType } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Interface for a Slack message that can be sent.
|
|
4
|
-
* @public
|
|
5
|
-
*/
|
|
6
|
-
export interface SlackMessage {
|
|
7
|
-
/**
|
|
8
|
-
* Sends the Slack message.
|
|
9
|
-
* @returns A promise that resolves to the response from the Slack webhook.
|
|
10
|
-
*/
|
|
11
|
-
send: () => Promise<string>;
|
|
12
|
-
withActor(actor?: string): void;
|
|
13
|
-
withFooter(text?: string, type?: FooterType): void;
|
|
14
|
-
withHeader(header?: string): void;
|
|
15
|
-
withRun(): void;
|
|
16
|
-
}
|
|
17
1
|
/**
|
|
18
2
|
* Creates a new instance of {@link SlackMessage} class.
|
|
19
3
|
* @param url Slack webhook URL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackMessage.d.ts","sourceRoot":"","sources":["../../src/model/SlackMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SlackMessage.d.ts","sourceRoot":"","sources":["../../src/model/SlackMessage.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,YAAY,CAEvF"}
|
|
@@ -1,130 +1,133 @@
|
|
|
1
1
|
import { SecurityLevel, SecuritySeverity } from '../../types';
|
|
2
2
|
import Logger from '../../Logger';
|
|
3
|
-
function logColorTaken(color, prop) {
|
|
4
|
-
|
|
3
|
+
function logColorTaken(logger, color, prop) {
|
|
4
|
+
logger.debug(`Message has ${color?.color} color taken from '${prop}' property.`);
|
|
5
5
|
}
|
|
6
|
-
function logPropDefinedButNoFindings(key, val) {
|
|
6
|
+
function logPropDefinedButNoFindings(logger, key, val) {
|
|
7
7
|
const prop = key === 'level' ? 'byLevel' : 'bySeverity';
|
|
8
|
-
|
|
8
|
+
logger.trace(`'${prop}.${val}' property is defined but no findings with "${val}" ${key} is found. Continue color identification...`);
|
|
9
9
|
}
|
|
10
|
-
function logPropIsNotDefined(key, val) {
|
|
10
|
+
function logPropIsNotDefined(logger, key, val) {
|
|
11
11
|
const prop = key === 'level' ? 'byLevel' : 'bySeverity';
|
|
12
|
-
|
|
12
|
+
logger.trace(`'${prop}.${val}' property is not defined. Continue color identification...`);
|
|
13
13
|
}
|
|
14
14
|
function identifyColorCommon(findings, prop, none, unknown, color) {
|
|
15
|
+
const logger = new Logger(identifyColorCommon.name);
|
|
15
16
|
if (color.none) {
|
|
16
17
|
if (findings.findByProperty(prop, none) != null) {
|
|
17
|
-
logColorTaken(color.none, `${prop === 'severity' ? 'bySeverity' : 'byLevel'}.none`);
|
|
18
|
+
logColorTaken(logger, color.none, `${prop === 'severity' ? 'bySeverity' : 'byLevel'}.none`);
|
|
18
19
|
return color.none.color;
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
21
|
-
logPropDefinedButNoFindings(prop, 'none');
|
|
22
|
+
logPropDefinedButNoFindings(logger, prop, 'none');
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
else {
|
|
25
|
-
logPropIsNotDefined(prop, 'none');
|
|
26
|
+
logPropIsNotDefined(logger, prop, 'none');
|
|
26
27
|
}
|
|
27
28
|
if (color.unknown) {
|
|
28
29
|
if (findings.findByProperty(prop, unknown) != null) {
|
|
29
|
-
logColorTaken(color.unknown, `${prop === 'severity' ? 'bySeverity' : 'byLevel'}.unknown`);
|
|
30
|
+
logColorTaken(logger, color.unknown, `${prop === 'severity' ? 'bySeverity' : 'byLevel'}.unknown`);
|
|
30
31
|
return color.unknown.color;
|
|
31
32
|
}
|
|
32
33
|
else {
|
|
33
|
-
logPropDefinedButNoFindings(prop, 'unknown');
|
|
34
|
+
logPropDefinedButNoFindings(logger, prop, 'unknown');
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
37
|
-
logPropIsNotDefined(prop, 'unknown');
|
|
38
|
+
logPropIsNotDefined(logger, prop, 'unknown');
|
|
38
39
|
}
|
|
39
40
|
return undefined;
|
|
40
41
|
}
|
|
41
42
|
function identifyColorBySeverity(findings, color) {
|
|
43
|
+
const logger = new Logger(identifyColorBySeverity.name);
|
|
42
44
|
if (color.critical) {
|
|
43
45
|
if (findings.findByProperty('severity', SecuritySeverity.Critical) != null) {
|
|
44
|
-
logColorTaken(color.critical, 'bySeverity.critical');
|
|
46
|
+
logColorTaken(logger, color.critical, 'bySeverity.critical');
|
|
45
47
|
return color.critical.color;
|
|
46
48
|
}
|
|
47
49
|
else {
|
|
48
|
-
logPropDefinedButNoFindings('severity', 'critical');
|
|
50
|
+
logPropDefinedButNoFindings(logger, 'severity', 'critical');
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
else {
|
|
52
|
-
logPropIsNotDefined('severity', 'critical');
|
|
54
|
+
logPropIsNotDefined(logger, 'severity', 'critical');
|
|
53
55
|
}
|
|
54
56
|
if (color.high) {
|
|
55
57
|
if (findings.findByProperty('severity', SecuritySeverity.High) != null) {
|
|
56
|
-
logColorTaken(color.high, 'bySeverity.high');
|
|
58
|
+
logColorTaken(logger, color.high, 'bySeverity.high');
|
|
57
59
|
return color.high.color;
|
|
58
60
|
}
|
|
59
61
|
else {
|
|
60
|
-
logPropDefinedButNoFindings('severity', 'high');
|
|
62
|
+
logPropDefinedButNoFindings(logger, 'severity', 'high');
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
else {
|
|
64
|
-
logPropIsNotDefined('severity', 'high');
|
|
66
|
+
logPropIsNotDefined(logger, 'severity', 'high');
|
|
65
67
|
}
|
|
66
68
|
if (color.medium) {
|
|
67
69
|
if (findings.findByProperty('severity', SecuritySeverity.Medium) != null) {
|
|
68
|
-
logColorTaken(color.medium, 'bySeverity.medium');
|
|
70
|
+
logColorTaken(logger, color.medium, 'bySeverity.medium');
|
|
69
71
|
return color.medium.color;
|
|
70
72
|
}
|
|
71
73
|
else {
|
|
72
|
-
logPropDefinedButNoFindings('severity', 'medium');
|
|
74
|
+
logPropDefinedButNoFindings(logger, 'severity', 'medium');
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
else {
|
|
76
|
-
logPropIsNotDefined('severity', 'medium');
|
|
78
|
+
logPropIsNotDefined(logger, 'severity', 'medium');
|
|
77
79
|
}
|
|
78
80
|
if (color.low) {
|
|
79
81
|
if (findings.findByProperty('severity', SecuritySeverity.Low) != null) {
|
|
80
|
-
logColorTaken(color.low, 'bySeverity.low');
|
|
82
|
+
logColorTaken(logger, color.low, 'bySeverity.low');
|
|
81
83
|
return color.low.color;
|
|
82
84
|
}
|
|
83
85
|
else {
|
|
84
|
-
logPropDefinedButNoFindings('severity', 'low');
|
|
86
|
+
logPropDefinedButNoFindings(logger, 'severity', 'low');
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
else {
|
|
88
|
-
logPropIsNotDefined('severity', 'low');
|
|
90
|
+
logPropIsNotDefined(logger, 'severity', 'low');
|
|
89
91
|
}
|
|
90
92
|
return identifyColorCommon(findings, 'severity', SecuritySeverity.None, SecuritySeverity.Unknown, color);
|
|
91
93
|
}
|
|
92
94
|
function identifyColorByLevel(findings, color) {
|
|
95
|
+
const logger = new Logger(identifyColorByLevel.name);
|
|
93
96
|
if (color.error) {
|
|
94
97
|
if (findings.findByProperty('level', SecurityLevel.Error) != null) {
|
|
95
|
-
logColorTaken(color.error, 'byLevel.error');
|
|
98
|
+
logColorTaken(logger, color.error, 'byLevel.error');
|
|
96
99
|
return color.error.color;
|
|
97
100
|
}
|
|
98
101
|
else {
|
|
99
|
-
logPropDefinedButNoFindings('level', 'error');
|
|
102
|
+
logPropDefinedButNoFindings(logger, 'level', 'error');
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
else {
|
|
103
|
-
logPropIsNotDefined('level', 'error');
|
|
106
|
+
logPropIsNotDefined(logger, 'level', 'error');
|
|
104
107
|
}
|
|
105
108
|
if (color.warning) {
|
|
106
109
|
if (findings.findByProperty('level', SecurityLevel.Warning) != null) {
|
|
107
|
-
logColorTaken(color.warning, 'byLevel.warning');
|
|
110
|
+
logColorTaken(logger, color.warning, 'byLevel.warning');
|
|
108
111
|
return color.warning.color;
|
|
109
112
|
}
|
|
110
113
|
else {
|
|
111
|
-
logPropDefinedButNoFindings('level', 'warning');
|
|
114
|
+
logPropDefinedButNoFindings(logger, 'level', 'warning');
|
|
112
115
|
}
|
|
113
116
|
}
|
|
114
117
|
else {
|
|
115
|
-
logPropIsNotDefined('level', 'warning');
|
|
118
|
+
logPropIsNotDefined(logger, 'level', 'warning');
|
|
116
119
|
}
|
|
117
120
|
if (color.note != null) {
|
|
118
121
|
if (findings.findByProperty('level', SecurityLevel.Note) != null) {
|
|
119
|
-
logColorTaken(color.note, 'byLevel.note');
|
|
122
|
+
logColorTaken(logger, color.note, 'byLevel.note');
|
|
120
123
|
return color.note.color;
|
|
121
124
|
}
|
|
122
125
|
else {
|
|
123
|
-
logPropDefinedButNoFindings('level', 'note');
|
|
126
|
+
logPropDefinedButNoFindings(logger, 'level', 'note');
|
|
124
127
|
}
|
|
125
128
|
}
|
|
126
129
|
else {
|
|
127
|
-
logPropIsNotDefined('level', 'note');
|
|
130
|
+
logPropIsNotDefined(logger, 'level', 'note');
|
|
128
131
|
}
|
|
129
132
|
return identifyColorCommon(findings, 'level', SecurityLevel.None, SecurityLevel.Unknown, color);
|
|
130
133
|
}
|
|
@@ -137,50 +140,51 @@ function identifyColorByLevel(findings, color) {
|
|
|
137
140
|
* @internal
|
|
138
141
|
*/
|
|
139
142
|
export function identifyColor(findings, colorOpts) {
|
|
143
|
+
const logger = new Logger(identifyColor.name);
|
|
140
144
|
if (!colorOpts) {
|
|
141
|
-
|
|
145
|
+
logger.debug('Message has no color as color options are not defined.');
|
|
142
146
|
return undefined;
|
|
143
147
|
}
|
|
144
|
-
|
|
148
|
+
logger.trace(`Identifying color for ${findings.length} findings and the following color options:`, JSON.stringify(colorOpts, null, 2));
|
|
145
149
|
if (colorOpts.bySeverity) {
|
|
146
150
|
const color = identifyColorBySeverity(findings, colorOpts.bySeverity);
|
|
147
151
|
if (color) {
|
|
148
152
|
return color;
|
|
149
153
|
}
|
|
150
|
-
|
|
154
|
+
logger.trace('None of the properties in \'bySeverity\' group is applicable. Continue color identification...');
|
|
151
155
|
}
|
|
152
156
|
else {
|
|
153
|
-
|
|
157
|
+
logger.trace('\'bySeverity\' group is not defined. Continue color identification...');
|
|
154
158
|
}
|
|
155
159
|
if (colorOpts.byLevel) {
|
|
156
160
|
const color = identifyColorByLevel(findings, colorOpts.byLevel);
|
|
157
161
|
if (color) {
|
|
158
162
|
return color;
|
|
159
163
|
}
|
|
160
|
-
|
|
164
|
+
logger.trace('None of the properties in \'byLevel\' group is applicable. Continue color identification...');
|
|
161
165
|
}
|
|
162
166
|
else {
|
|
163
|
-
|
|
167
|
+
logger.trace('\'byLevel\' group is not defined. Continue color identification...');
|
|
164
168
|
}
|
|
165
169
|
if (findings.length === 0) {
|
|
166
|
-
|
|
170
|
+
logger.trace('There are no findings in the provided SARIF file(s). Checking if color is defined in "empty" property...');
|
|
167
171
|
if (colorOpts.empty?.color) {
|
|
168
|
-
logColorTaken(colorOpts.empty, 'empty');
|
|
172
|
+
logColorTaken(logger, colorOpts.empty, 'empty');
|
|
169
173
|
return colorOpts.empty.color;
|
|
170
174
|
}
|
|
171
175
|
else {
|
|
172
|
-
|
|
176
|
+
logger.trace('"empty" color is not defined. Continue color identification...');
|
|
173
177
|
}
|
|
174
178
|
}
|
|
175
179
|
else {
|
|
176
|
-
|
|
180
|
+
logger.trace(`"empty" color is not taken into account because there are ${findings.length} findings in the provided SARIF file(s). Continue color identification...`);
|
|
177
181
|
}
|
|
178
182
|
if (colorOpts.default?.color) {
|
|
179
|
-
logColorTaken(colorOpts.default, 'default');
|
|
183
|
+
logColorTaken(logger, colorOpts.default, 'default');
|
|
180
184
|
}
|
|
181
185
|
else {
|
|
182
|
-
|
|
186
|
+
logger.debug('Message has no color as none of the defined color options is applicable.');
|
|
183
187
|
}
|
|
184
188
|
return colorOpts?.default?.color;
|
|
185
189
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3JJZGVudGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9jb2xvci9Db2xvcklkZW50aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0QsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBU2pDLFNBQVMsYUFBYSxDQUNwQixNQUFjLEVBQ2QsS0FBd0IsRUFDeEIsSUFBWTtJQUVaLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxLQUFLLEVBQUUsS0FBSyxzQkFBc0IsSUFBSSxhQUFhLENBQUMsQ0FBQTtBQUNsRixDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FDbEMsTUFBYyxFQUNkLEdBQU0sRUFDTixHQUFXO0lBRVgsTUFBTSxJQUFJLEdBQVcsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUE7SUFDL0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLCtDQUErQyxHQUFHLEtBQUssR0FBRyw2Q0FBNkMsQ0FBQyxDQUFBO0FBQ3RJLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixNQUFjLEVBQ2QsR0FBTSxFQUNOLEdBQVc7SUFFWCxNQUFNLElBQUksR0FBVyxHQUFHLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQTtJQUMvRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLEdBQUcsNkRBQTZELENBQUMsQ0FBQTtBQUM1RixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsUUFBc0IsRUFDdEIsSUFBTyxFQUNQLElBQWdCLEVBQ2hCLE9BQW1CLEVBQ25CLEtBQXVCO0lBRXZCLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLG1C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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorOptions.d.ts","sourceRoot":"","sources":["../../../src/model/color/ColorOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"ColorOptions.d.ts","sourceRoot":"","sources":["../../../src/model/color/ColorOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,GAAG,CAAC,EAAE,KAAK,CAAC;CACb,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAA"}
|
|
@@ -40,7 +40,7 @@ export default class CompactGroupByRepresentation extends Representation {
|
|
|
40
40
|
findings
|
|
41
41
|
.reduce((grouped, f) => {
|
|
42
42
|
if (!grouped.get(f[key])) {
|
|
43
|
-
grouped.set(f[key],
|
|
43
|
+
grouped.set(f[key], []);
|
|
44
44
|
}
|
|
45
45
|
grouped.get(f[key])?.push(f);
|
|
46
46
|
return grouped;
|
|
@@ -58,4 +58,4 @@ export default class CompactGroupByRepresentation extends Representation {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXByZXNlbnRhdGlvbnMvQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRTFELE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUE7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFnQiw0QkFBNkIsU0FBUSxjQUFjO0lBSXJFLGlCQUFpQixDQUFzRCxHQUFNO1FBQ3JGLE1BQU0sT0FBTyxHQUEyQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDNUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sbUJBQW1CLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFzQixFQUFVLEVBQUU7WUFDdEQsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzNDLE1BQU0sT0FBTyxHQUNYLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLG1CQUFtQjtnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDNUMsT0FBTyxHQUFHLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFzRCxRQUFtQixFQUFFLEdBQU07UUFDM0csTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFBO1FBQzNCLFFBQVE7YUFDTCxNQUFNLENBQUMsQ0FBQyxPQUF3QyxFQUFFLENBQVUsRUFBbUMsRUFBRTtZQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFlLENBQUMsQ0FBQTtZQUN0QyxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDNUIsT0FBTyxPQUFPLENBQUE7UUFDaEIsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUE4QixDQUFDO2FBQ3hDLE9BQU8sQ0FBQyxDQUFDLENBQWlCLEVBQUUsQ0FBYSxFQUFRLEVBQUU7WUFDbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ3pFLENBQUMsQ0FBQyxDQUFBO1FBQ0osT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBc0QsR0FBTSxFQUFFLElBQWdCO1FBQ3BHLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQ2hELEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUN0RCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ3BELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { findingsComparatorByKey } from '../utils/Comparators';
|
|
2
1
|
import FindingArray from '../model/FindingArray';
|
|
2
|
+
import { findingsComparatorByKey } from '../utils/Comparators';
|
|
3
3
|
/**
|
|
4
4
|
* The most base abstract class for the representation. Every representation class
|
|
5
5
|
* must be derived from this class implicitly or explicitly.
|
|
@@ -24,5 +24,9 @@ export default class Representation {
|
|
|
24
24
|
italic(text) {
|
|
25
25
|
return `_${text}_`;
|
|
26
26
|
}
|
|
27
|
+
codeBlock(text) {
|
|
28
|
+
// biome-ignore lint/style/useTemplate: Template literals are unreadable here
|
|
29
|
+
return '```\n' + text + '\n```';
|
|
30
|
+
}
|
|
27
31
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwcmVzZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwcmVzZW50YXRpb25zL1JlcHJlc2VudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sWUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9EOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFnQixjQUFjO0lBQ3ZCLE1BQU0sQ0FBWTtJQUVyQyxZQUFtQixLQUFpQixFQUFFLGlCQUFnQyxPQUFPO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUs7YUFDekIsUUFBUTthQUNSLEdBQUcsQ0FBQyxDQUFDLENBQVUsRUFBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUM3QyxNQUFNLENBQUMsQ0FBQyxHQUFpQixFQUFFLENBQVUsRUFBZ0IsRUFBRTtZQUN0RCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1gsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLEVBQUUsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFFUyxJQUFJLENBQUMsSUFBWTtRQUN6QixPQUFPLElBQUksSUFBSSxHQUFHLENBQUE7SUFDcEIsQ0FBQztJQUVTLE1BQU0sQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxJQUFJLEdBQUcsQ0FBQTtJQUNwQixDQUFDO0lBRVMsU0FBUyxDQUFDLElBQVk7UUFDOUIsNkVBQTZFO1FBQzdFLE9BQU8sT0FBTyxHQUFHLElBQUksR0FBRyxPQUFPLENBQUE7SUFDakMsQ0FBQztDQUdGIn0=
|
|
@@ -7,6 +7,12 @@ import CompactGroupBySarifPerLevelRepresentation from './CompactGroupBySarifPerL
|
|
|
7
7
|
import CompactGroupBySarifPerSeverityRepresentation from './CompactGroupBySarifPerSeverityRepresentation';
|
|
8
8
|
import CompactTotalPerSeverityRepresentation from './CompactTotalPerSeverityRepresentation';
|
|
9
9
|
import CompactTotalPerLevelRepresentation from './CompactTotalPerLevelRepresentation';
|
|
10
|
+
import TableGroupByToolNamePerLevelRepresentation from './TableGroupByToolNamePerLevelRepresentation';
|
|
11
|
+
import TableGroupByToolNamePerSeverityRepresentation from './TableGroupByToolNamePerSeverityRepresentation';
|
|
12
|
+
import TableGroupByRunPerLevelRepresentation from './TableGroupByRunPerLevelRepresentation';
|
|
13
|
+
import TableGroupByRunPerSeverityRepresentation from './TableGroupByRunPerSeverityRepresentation';
|
|
14
|
+
import TableGroupBySarifPerLevelRepresentation from './TableGroupBySarifPerLevelRepresentation';
|
|
15
|
+
import TableGroupBySarifPerSeverityRepresentation from './TableGroupBySarifPerSeverityRepresentation';
|
|
10
16
|
/**
|
|
11
17
|
* Factory class that creates a {@link Representation} class based on the provided
|
|
12
18
|
* {@link RepresentationType}.
|
|
@@ -30,8 +36,20 @@ export function createRepresentation(model, type = RepresentationType.CompactGro
|
|
|
30
36
|
return new CompactTotalPerLevelRepresentation(model);
|
|
31
37
|
case RepresentationType.CompactTotalPerSeverity:
|
|
32
38
|
return new CompactTotalPerSeverityRepresentation(model);
|
|
39
|
+
case RepresentationType.TableGroupByRunPerLevel:
|
|
40
|
+
return new TableGroupByRunPerLevelRepresentation(model);
|
|
41
|
+
case RepresentationType.TableGroupByRunPerSeverity:
|
|
42
|
+
return new TableGroupByRunPerSeverityRepresentation(model);
|
|
43
|
+
case RepresentationType.TableGroupByToolNamePerLevel:
|
|
44
|
+
return new TableGroupByToolNamePerLevelRepresentation(model);
|
|
45
|
+
case RepresentationType.TableGroupByToolNamePerSeverity:
|
|
46
|
+
return new TableGroupByToolNamePerSeverityRepresentation(model);
|
|
47
|
+
case RepresentationType.TableGroupBySarifPerLevel:
|
|
48
|
+
return new TableGroupBySarifPerLevelRepresentation(model);
|
|
49
|
+
case RepresentationType.TableGroupBySarifPerSeverity:
|
|
50
|
+
return new TableGroupBySarifPerSeverityRepresentation(model);
|
|
33
51
|
default:
|
|
34
52
|
throw new Error(`Unknown representation type: ${type}`);
|
|
35
53
|
}
|
|
36
54
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVwcmVzZW50YXRpb25GYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcHJlc2VudGF0aW9ucy9SZXByZXNlbnRhdGlvbkZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFtQixNQUFNLFVBQVUsQ0FBQTtBQUM5RCxPQUFPLHVDQUF1QyxNQUN2QywyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLDBDQUEwQyxNQUMxQyw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLDRDQUE0QyxNQUM1QyxnREFBZ0QsQ0FBQTtBQUN2RCxPQUFPLCtDQUErQyxNQUMvQyxtREFBbUQsQ0FBQTtBQUMxRCxPQUFPLHlDQUF5QyxNQUN6Qyw2Q0FBNkMsQ0FBQTtBQUNwRCxPQUFPLDRDQUE0QyxNQUM1QyxnREFBZ0QsQ0FBQTtBQUN2RCxPQUFPLHFDQUFxQyxNQUNyQyx5Q0FBeUMsQ0FBQTtBQUNoRCxPQUFPLGtDQUFrQyxNQUNsQyxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLDBDQUEwQyxNQUMxQyw4Q0FBOEMsQ0FBQTtBQUNyRCxPQUFPLDZDQUE2QyxNQUM3QyxpREFBaUQsQ0FBQTtBQUN4RCxPQUFPLHFDQUFxQyxNQUNyQyx5Q0FBeUMsQ0FBQTtBQUNoRCxPQUFPLHdDQUF3QyxNQUN4Qyw0Q0FBNEMsQ0FBQTtBQUNuRCxPQUFPLHVDQUF1QyxNQUN2QywyQ0FBMkMsQ0FBQTtBQUNsRCxPQUFPLDBDQUEwQyxNQUMxQyw4Q0FBOEMsQ0FBQTtBQUVyRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxLQUFpQixFQUNqQixPQUEyQixrQkFBa0IsQ0FBQyxpQ0FBaUM7SUFFL0UsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssa0JBQWtCLENBQUMseUJBQXlCO1lBQy9DLE9BQU8sSUFBSSx1Q0FBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzRCxLQUFLLGtCQUFrQixDQUFDLDRCQUE0QjtZQUNsRCxPQUFPLElBQUksMENBQTBDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUQsS0FBSyxrQkFBa0IsQ0FBQyw4QkFBOEI7WUFDcEQsT0FBTyxJQUFJLDRDQUE0QyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hFLEtBQUssa0JBQWtCLENBQUMsaUNBQWlDO1lBQ3ZELE9BQU8sSUFBSSwrQ0FBK0MsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuRSxLQUFLLGtCQUFrQixDQUFDLDJCQUEyQjtZQUNqRCxPQUFPLElBQUkseUNBQXlDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0QsS0FBSyxrQkFBa0IsQ0FBQyw4QkFBOEI7WUFDcEQsT0FBTyxJQUFJLDRDQUE0QyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hFLEtBQUssa0JBQWtCLENBQUMsb0JBQW9CO1lBQzFDLE9BQU8sSUFBSSxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN0RCxLQUFLLGtCQUFrQixDQUFDLHVCQUF1QjtZQUM3QyxPQUFPLElBQUkscUNBQXFDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekQsS0FBSyxrQkFBa0IsQ0FBQyx1QkFBdUI7WUFDN0MsT0FBTyxJQUFJLHFDQUFxQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pELEtBQUssa0JBQWtCLENBQUMsMEJBQTBCO1lBQ2hELE9BQU8sSUFBSSx3Q0FBd0MsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM1RCxLQUFLLGtCQUFrQixDQUFDLDRCQUE0QjtZQUNsRCxPQUFPLElBQUksMENBQTBDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUQsS0FBSyxrQkFBa0IsQ0FBQywrQkFBK0I7WUFDckQsT0FBTyxJQUFJLDZDQUE2QyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pFLEtBQUssa0JBQWtCLENBQUMseUJBQXlCO1lBQy9DLE9BQU8sSUFBSSx1Q0FBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzRCxLQUFLLGtCQUFrQixDQUFDLDRCQUE0QjtZQUNsRCxPQUFPLElBQUksMENBQTBDLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUQ7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzNELENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SarifModel } from '../types';
|
|
2
|
+
import TableGroupByRunRepresentation from './TableGroupByRunRepresentation';
|
|
3
|
+
export default class TableGroupByRunPerLevelRepresentation extends TableGroupByRunRepresentation<'level'> {
|
|
4
|
+
constructor(model: SarifModel);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TableGroupByRunPerLevelRepresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupByRunPerLevelRepresentation.d.ts","sourceRoot":"","sources":["../../src/representations/TableGroupByRunPerLevelRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,UAAU,CAAA;AAC/D,OAAO,6BAA6B,MAAM,iCAAiC,CAAA;AAE3E,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,6BAA6B,CAAC,OAAO,CAAC;gBAEpF,KAAK,EAAE,UAAU;CAGrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SecurityLevelValues } from '../types';
|
|
2
|
+
import TableGroupByRunRepresentation from './TableGroupByRunRepresentation';
|
|
3
|
+
export default class TableGroupByRunPerLevelRepresentation extends TableGroupByRunRepresentation {
|
|
4
|
+
constructor(model) {
|
|
5
|
+
super('level', SecurityLevelValues, model);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVHcm91cEJ5UnVuUGVyTGV2ZWxSZXByZXNlbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXByZXNlbnRhdGlvbnMvVGFibGVHcm91cEJ5UnVuUGVyTGV2ZWxSZXByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQy9ELE9BQU8sNkJBQTZCLE1BQU0saUNBQWlDLENBQUE7QUFFM0UsTUFBTSxDQUFDLE9BQU8sT0FBTyxxQ0FBc0MsU0FBUSw2QkFBc0M7SUFFdkcsWUFBbUIsS0FBaUI7UUFDbEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SarifModel } from '../types';
|
|
2
|
+
import TableGroupByRunRepresentation from './TableGroupByRunRepresentation';
|
|
3
|
+
export default class TableGroupByRunPerSeverityRepresentation extends TableGroupByRunRepresentation<'severity'> {
|
|
4
|
+
constructor(model: SarifModel);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TableGroupByRunPerSeverityRepresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupByRunPerSeverityRepresentation.d.ts","sourceRoot":"","sources":["../../src/representations/TableGroupByRunPerSeverityRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,UAAU,CAAA;AAClE,OAAO,6BAA6B,MAAM,iCAAiC,CAAA;AAE3E,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,6BAA6B,CAAC,UAAU,CAAC;gBAE1F,KAAK,EAAE,UAAU;CAGrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SecuritySeverityValues } from '../types';
|
|
2
|
+
import TableGroupByRunRepresentation from './TableGroupByRunRepresentation';
|
|
3
|
+
export default class TableGroupByRunPerSeverityRepresentation extends TableGroupByRunRepresentation {
|
|
4
|
+
constructor(model) {
|
|
5
|
+
super('severity', SecuritySeverityValues, model);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVHcm91cEJ5UnVuUGVyU2V2ZXJpdHlSZXByZXNlbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXByZXNlbnRhdGlvbnMvVGFibGVHcm91cEJ5UnVuUGVyU2V2ZXJpdHlSZXByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ2xFLE9BQU8sNkJBQTZCLE1BQU0saUNBQWlDLENBQUE7QUFFM0UsTUFBTSxDQUFDLE9BQU8sT0FBTyx3Q0FBeUMsU0FBUSw2QkFBeUM7SUFFN0csWUFBbUIsS0FBaUI7UUFDbEMsS0FBSyxDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SarifModel } from '../types';
|
|
2
|
+
import type Finding from '../model/Finding';
|
|
3
|
+
import TableGroupRepresentation from './TableGroupRepresentation';
|
|
4
|
+
export default abstract class TableGroupByRunRepresentation<KPer extends keyof Pick<Finding, 'level' | 'severity'>> extends TableGroupRepresentation<'runId', KPer> {
|
|
5
|
+
protected constructor(keyPer: KPer, values: string[], model: SarifModel);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=TableGroupByRunRepresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupByRunRepresentation.d.ts","sourceRoot":"","sources":["../../src/representations/TableGroupByRunRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAC3C,OAAO,wBAAwB,MAAM,4BAA4B,CAAA;AAEjE,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,6BAA6B,CACzD,IAAI,SAAS,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,CACtD,SAAQ,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC/C,SAAS,aACP,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,UAAU;CAIpB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import TableGroupRepresentation from './TableGroupRepresentation';
|
|
2
|
+
export default class TableGroupByRunRepresentation extends TableGroupRepresentation {
|
|
3
|
+
constructor(keyPer, values, model) {
|
|
4
|
+
super('runId', keyPer, values, model);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVHcm91cEJ5UnVuUmVwcmVzZW50YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVwcmVzZW50YXRpb25zL1RhYmxlR3JvdXBCeVJ1blJlcHJlc2VudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sd0JBQXdCLE1BQU0sNEJBQTRCLENBQUE7QUFFakUsTUFBTSxDQUFDLE9BQU8sT0FBZ0IsNkJBRTVCLFNBQVEsd0JBQXVDO0lBQy9DLFlBQ0UsTUFBWSxFQUNaLE1BQWdCLEVBQ2hCLEtBQWlCO1FBRWpCLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SarifModel } from '../types';
|
|
2
|
+
import TableGroupBySarifRepresentation from './TableGroupBySarifRepresentation';
|
|
3
|
+
export default class TableGroupBySarifPerLevelRepresentation extends TableGroupBySarifRepresentation<'level'> {
|
|
4
|
+
constructor(model: SarifModel);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TableGroupBySarifPerLevelRepresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupBySarifPerLevelRepresentation.d.ts","sourceRoot":"","sources":["../../src/representations/TableGroupBySarifPerLevelRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAuB,MAAM,UAAU,CAAA;AAC/D,OAAO,+BAA+B,MAAM,mCAAmC,CAAA;AAE/E,MAAM,CAAC,OAAO,OAAO,uCAAwC,SAAQ,+BAA+B,CAAC,OAAO,CAAC;gBAExF,KAAK,EAAE,UAAU;CAGrC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SecurityLevelValues } from '../types';
|
|
2
|
+
import TableGroupBySarifRepresentation from './TableGroupBySarifRepresentation';
|
|
3
|
+
export default class TableGroupBySarifPerLevelRepresentation extends TableGroupBySarifRepresentation {
|
|
4
|
+
constructor(model) {
|
|
5
|
+
super('level', SecurityLevelValues, model);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVHcm91cEJ5U2FyaWZQZXJMZXZlbFJlcHJlc2VudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcHJlc2VudGF0aW9ucy9UYWJsZUdyb3VwQnlTYXJpZlBlckxldmVsUmVwcmVzZW50YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUMvRCxPQUFPLCtCQUErQixNQUFNLG1DQUFtQyxDQUFBO0FBRS9FLE1BQU0sQ0FBQyxPQUFPLE9BQU8sdUNBQXdDLFNBQVEsK0JBQXdDO0lBRTNHLFlBQW1CLEtBQWlCO1FBQ2xDLEtBQUssQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDNUMsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type SarifModel } from '../types';
|
|
2
|
+
import TableGroupBySarifRepresentation from './TableGroupBySarifRepresentation';
|
|
3
|
+
export default class TableGroupBySarifPerSeverityRepresentation extends TableGroupBySarifRepresentation<'severity'> {
|
|
4
|
+
constructor(model: SarifModel);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=TableGroupBySarifPerSeverityRepresentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableGroupBySarifPerSeverityRepresentation.d.ts","sourceRoot":"","sources":["../../src/representations/TableGroupBySarifPerSeverityRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA0B,MAAM,UAAU,CAAA;AAClE,OAAO,+BAA+B,MAAM,mCAAmC,CAAA;AAE/E,MAAM,CAAC,OAAO,OAAO,0CAA2C,SAAQ,+BAA+B,CAAC,UAAU,CAAC;gBAE9F,KAAK,EAAE,UAAU;CAGrC"}
|