@fabasoad/sarif-to-slack 1.2.2 → 1.2.3

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/dist/index.cjs CHANGED
@@ -274,9 +274,9 @@ function sendIfLogMessage(sendIf) {
274
274
  var import_webhook = require("@slack/webhook");
275
275
 
276
276
  // src/metadata.json
277
- var version = "1.2.2";
278
- var sha = "9b1eb78a551a7afd49036e4721c93ff9a6c18a9b";
279
- var buildAt = "2025-08-18T15:22:58Z";
277
+ var version = "1.2.3";
278
+ var sha = "ec8d9a860e38996de3cbf56f2e6103aa1229e85b";
279
+ var buildAt = "2025-08-21T04:21:37Z";
280
280
 
281
281
  // src/model/SlackMessage.ts
282
282
  function createSlackMessage(url, opts) {
@@ -511,12 +511,17 @@ ${summary}`;
511
511
  }).join("\n\n");
512
512
  }
513
513
  composeCompactReport(findings, key) {
514
- return Object.entries(Object.groupBy(findings, (f) => f[key])).map(([prop, findings2]) => {
515
- if (findings2 == null) {
516
- return void 0;
514
+ const result = [];
515
+ findings.reduce((grouped, f) => {
516
+ if (!grouped.get(f[key])) {
517
+ grouped.set(f[key], new Array());
517
518
  }
518
- return `${this.bold(this.extractEnumValue(key, prop))}: ${findings2.length}`;
519
- }).filter((v) => v != null).join(", ");
519
+ grouped.get(f[key])?.push(f);
520
+ return grouped;
521
+ }, /* @__PURE__ */ new Map()).forEach((v, k) => {
522
+ result.push(`${this.bold(this.extractEnumValue(key, k))}: ${v.length}`);
523
+ });
524
+ return result.join(", ");
520
525
  }
521
526
  extractEnumValue(key, prop) {
522
527
  switch (key) {
@@ -36,16 +36,19 @@ export default class CompactGroupByRepresentation extends Representation {
36
36
  .join('\n\n');
37
37
  }
38
38
  composeCompactReport(findings, key) {
39
- return Object
40
- .entries(Object.groupBy(findings, (f) => f[key]))
41
- .map(([prop, findings2]) => {
42
- if (findings2 == null) {
43
- return undefined;
39
+ const result = [];
40
+ findings
41
+ .reduce((grouped, f) => {
42
+ if (!grouped.get(f[key])) {
43
+ grouped.set(f[key], new Array());
44
44
  }
45
- return `${this.bold(this.extractEnumValue(key, prop))}: ${findings2.length}`;
46
- })
47
- .filter((v) => v != null)
48
- .join(', ');
45
+ grouped.get(f[key])?.push(f);
46
+ return grouped;
47
+ }, new Map())
48
+ .forEach((v, k) => {
49
+ result.push(`${this.bold(this.extractEnumValue(key, k))}: ${v.length}`);
50
+ });
51
+ return result.join(', ');
49
52
  }
50
53
  extractEnumValue(key, prop) {
51
54
  switch (key) {
@@ -55,4 +58,4 @@ export default class CompactGroupByRepresentation extends Representation {
55
58
  }
56
59
  }
57
60
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXByZXNlbnRhdGlvbnMvQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRTFELE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUE7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFnQiw0QkFBNkIsU0FBUSxjQUFjO0lBSXJFLGlCQUFpQixDQUFzRCxHQUFNO1FBQ3JGLE1BQU0sT0FBTyxHQUEyQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDNUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sbUJBQW1CLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFzQixFQUFVLEVBQUU7WUFDdEQsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzNDLE1BQU0sT0FBTyxHQUNYLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLG1CQUFtQjtnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDNUMsT0FBTyxHQUFHLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFzRCxRQUFtQixFQUFFLEdBQU07UUFDM0csT0FBTyxNQUFNO2FBQ1YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFnQixDQUFDLENBQUM7YUFDckYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFrQyxFQUFzQixFQUFFO1lBQzlFLElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN0QixPQUFPLFNBQVMsQ0FBQTtZQUNsQixDQUFDO1lBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUM5RSxDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFxQixFQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBc0QsR0FBTSxFQUFFLElBQVk7UUFDaEcsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNaLEtBQUssT0FBTyxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDaEQsS0FBSyxVQUFVLENBQUMsQ0FBQyxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1lBQ3RELE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDcEQsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXByZXNlbnRhdGlvbnMvQ29tcGFjdEdyb3VwQnlSZXByZXNlbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRTFELE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUE7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFnQiw0QkFBNkIsU0FBUSxjQUFjO0lBSXJFLGlCQUFpQixDQUFzRCxHQUFNO1FBQ3JGLE1BQU0sT0FBTyxHQUEyQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDNUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sbUJBQW1CLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDdkIsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFzQixFQUFVLEVBQUU7WUFDdEQsUUFBUSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzNDLE1BQU0sT0FBTyxHQUNYLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLG1CQUFtQjtnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDNUMsT0FBTyxHQUFHLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQTtRQUMvQixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVPLG9CQUFvQixDQUFzRCxRQUFtQixFQUFFLEdBQU07UUFDM0csTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFBO1FBQzNCLFFBQVE7YUFDTCxNQUFNLENBQUMsQ0FBQyxPQUF3QyxFQUFFLENBQVUsRUFBbUMsRUFBRTtZQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEtBQUssRUFBVyxDQUFDLENBQUE7WUFDM0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzVCLE9BQU8sT0FBTyxDQUFBO1FBQ2hCLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBOEIsQ0FBQzthQUN4QyxPQUFPLENBQUMsQ0FBQyxDQUFpQixFQUFFLENBQWEsRUFBUSxFQUFFO1lBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtRQUN6RSxDQUFDLENBQUMsQ0FBQTtRQUNKLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRU8sZ0JBQWdCLENBQXNELEdBQU0sRUFBRSxJQUFnQjtRQUNwRyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUNoRCxLQUFLLFVBQVUsQ0FBQyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDdEQsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNwRCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.52.10"
8
+ "packageVersion": "7.52.11"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fabasoad/sarif-to-slack",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "TypeScript library to send results of SARIF file to Slack webhook URL.",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -48,8 +48,8 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@biomejs/biome": "2.2.0",
51
- "@microsoft/api-documenter": "7.26.31",
52
- "@microsoft/api-extractor": "7.52.10",
51
+ "@microsoft/api-documenter": "7.26.32",
52
+ "@microsoft/api-extractor": "7.52.11",
53
53
  "@types/jest": "30.0.0",
54
54
  "@types/uuid": "10.0.0",
55
55
  "jest": "30.0.5",
@@ -45,19 +45,22 @@ export default abstract class CompactGroupByRepresentation extends Representatio
45
45
  }
46
46
 
47
47
  private composeCompactReport<K extends keyof Pick<Finding, 'level' | 'severity'>>(findings: Finding[], key: K): string {
48
- return Object
49
- .entries(Object.groupBy(findings, (f: Finding): PropertyKey => f[key] as PropertyKey))
50
- .map(([prop, findings2]: [string, Finding[] | undefined]): string | undefined => {
51
- if (findings2 == null) {
52
- return undefined
48
+ const result: string[] = []
49
+ findings
50
+ .reduce((grouped: Map<Finding[K], Array<Finding>>, f: Finding): Map<Finding[K], Array<Finding>> => {
51
+ if (!grouped.get(f[key])) {
52
+ grouped.set(f[key], new Array<Finding>())
53
53
  }
54
- return `${this.bold(this.extractEnumValue(key, prop))}: ${findings2.length}`
54
+ grouped.get(f[key])?.push(f)
55
+ return grouped
56
+ }, new Map<Finding[K], Array<Finding>>())
57
+ .forEach((v: Array<Finding>, k: Finding[K]): void => {
58
+ result.push(`${this.bold(this.extractEnumValue(key, k))}: ${v.length}`)
55
59
  })
56
- .filter((v: string | undefined): v is string => v != null)
57
- .join(', ')
60
+ return result.join(', ')
58
61
  }
59
62
 
60
- private extractEnumValue<K extends keyof Pick<Finding, 'level' | 'severity'>>(key: K, prop: string): string {
63
+ private extractEnumValue<K extends keyof Pick<Finding, 'level' | 'severity'>>(key: K, prop: Finding[K]): string {
61
64
  switch (key) {
62
65
  case 'level': return SecurityLevel[Number(prop)]
63
66
  case 'severity': return SecuritySeverity[Number(prop)]