@fabasoad/sarif-to-slack 1.3.5 → 1.4.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.
Files changed (142) hide show
  1. package/.github/workflows/security.yml +1 -0
  2. package/.github/workflows/send-sarif-to-slack.yml +39 -15
  3. package/README.md +8 -7
  4. package/dist/Logger.js +40 -30
  5. package/dist/SarifToSlackClient.d.ts +0 -1
  6. package/dist/SarifToSlackClient.d.ts.map +1 -1
  7. package/dist/SarifToSlackClient.js +11 -8
  8. package/dist/globalState.d.ts +2 -0
  9. package/dist/globalState.d.ts.map +1 -0
  10. package/dist/globalState.js +2 -0
  11. package/dist/index.cjs +111 -81
  12. package/dist/index.d.ts +40 -2
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +9 -2
  15. package/dist/model/Finding.js +7 -5
  16. package/dist/model/FindingArray.js +1 -1
  17. package/dist/model/SendIf.js +1 -1
  18. package/dist/model/SlackMessage.js +6 -6
  19. package/dist/model/color/Color.d.ts.map +1 -1
  20. package/dist/model/color/Color.js +1 -1
  21. package/dist/model/color/ColorIdentification.js +5 -5
  22. package/dist/model/color/ColorOptions.d.ts.map +1 -1
  23. package/dist/processors/CodeQLProcessor.js +1 -1
  24. package/dist/processors/CommonProcessor.js +1 -1
  25. package/dist/processors/ProcessorFactory.js +1 -1
  26. package/dist/processors/SnykProcessor.js +2 -1
  27. package/dist/representations/CompactGroupByRepresentation.js +1 -1
  28. package/dist/representations/CompactGroupByRunPerLevelRepresentation.js +1 -1
  29. package/dist/representations/CompactGroupByRunPerSeverityRepresentation.js +1 -1
  30. package/dist/representations/CompactGroupByRunRepresentation.js +1 -1
  31. package/dist/representations/CompactGroupBySarifPerLevelRepresentation.js +1 -1
  32. package/dist/representations/CompactGroupBySarifPerSeverityRepresentation.js +1 -1
  33. package/dist/representations/CompactGroupBySarifRepresentation.js +1 -1
  34. package/dist/representations/CompactGroupByToolNamePerLevelRepresentation.js +1 -1
  35. package/dist/representations/CompactGroupByToolNamePerSeverityRepresentation.js +1 -1
  36. package/dist/representations/CompactGroupByToolNameRepresentation.js +1 -1
  37. package/dist/representations/CompactTotalPerLevelRepresentation.js +1 -1
  38. package/dist/representations/CompactTotalPerSeverityRepresentation.js +1 -1
  39. package/dist/representations/CompactTotalRepresentation.js +1 -1
  40. package/dist/representations/Representation.js +1 -1
  41. package/dist/representations/RepresentationFactory.js +1 -1
  42. package/dist/representations/TableGroupByRunPerLevelRepresentation.d.ts.map +1 -1
  43. package/dist/representations/TableGroupByRunPerLevelRepresentation.js +1 -1
  44. package/dist/representations/TableGroupByRunPerSeverityRepresentation.d.ts.map +1 -1
  45. package/dist/representations/TableGroupByRunPerSeverityRepresentation.js +1 -1
  46. package/dist/representations/TableGroupByRunRepresentation.d.ts.map +1 -1
  47. package/dist/representations/TableGroupByRunRepresentation.js +1 -1
  48. package/dist/representations/TableGroupBySarifPerLevelRepresentation.d.ts.map +1 -1
  49. package/dist/representations/TableGroupBySarifPerLevelRepresentation.js +1 -1
  50. package/dist/representations/TableGroupBySarifPerSeverityRepresentation.d.ts.map +1 -1
  51. package/dist/representations/TableGroupBySarifPerSeverityRepresentation.js +1 -1
  52. package/dist/representations/TableGroupBySarifRepresentation.d.ts.map +1 -1
  53. package/dist/representations/TableGroupBySarifRepresentation.js +1 -1
  54. package/dist/representations/TableGroupByToolNamePerLevelRepresentation.d.ts.map +1 -1
  55. package/dist/representations/TableGroupByToolNamePerLevelRepresentation.js +1 -1
  56. package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.d.ts.map +1 -1
  57. package/dist/representations/TableGroupByToolNamePerSeverityRepresentation.js +1 -1
  58. package/dist/representations/TableGroupByToolNameRepresentation.d.ts.map +1 -1
  59. package/dist/representations/TableGroupByToolNameRepresentation.js +1 -1
  60. package/dist/representations/TableGroupRepresentation.d.ts +0 -1
  61. package/dist/representations/TableGroupRepresentation.d.ts.map +1 -1
  62. package/dist/representations/TableGroupRepresentation.js +3 -3
  63. package/dist/representations/table/Cell.d.ts.map +1 -1
  64. package/dist/representations/table/Cell.js +1 -1
  65. package/dist/representations/table/Column.d.ts +0 -1
  66. package/dist/representations/table/Column.d.ts.map +1 -1
  67. package/dist/representations/table/Column.js +4 -3
  68. package/dist/representations/table/Row.d.ts +0 -1
  69. package/dist/representations/table/Row.d.ts.map +1 -1
  70. package/dist/representations/table/Row.js +3 -3
  71. package/dist/representations/table/Table.d.ts.map +1 -1
  72. package/dist/representations/table/Table.js +1 -1
  73. package/dist/system.js +5 -5
  74. package/dist/tsdoc-metadata.json +1 -1
  75. package/dist/types.d.ts +29 -1
  76. package/dist/types.d.ts.map +1 -1
  77. package/dist/types.js +11 -1
  78. package/dist/utils/Comparators.js +1 -1
  79. package/dist/utils/ExtendedArray.js +1 -1
  80. package/dist/utils/FileUtils.js +2 -2
  81. package/dist/utils/SarifUtils.js +1 -1
  82. package/dist/utils/StringUtils.js +1 -1
  83. package/etc/sarif-to-slack.api.md +21 -1
  84. package/jest.config.json +4 -4
  85. package/package.json +5 -4
  86. package/src/Logger.ts +50 -34
  87. package/src/SarifToSlackClient.ts +73 -68
  88. package/src/globalState.ts +11 -0
  89. package/src/index.ts +23 -12
  90. package/src/model/Finding.ts +36 -35
  91. package/src/model/FindingArray.ts +5 -5
  92. package/src/model/SendIf.ts +25 -25
  93. package/src/model/SlackMessage.ts +49 -49
  94. package/src/model/color/Color.ts +7 -7
  95. package/src/model/color/ColorIdentification.ts +77 -77
  96. package/src/model/color/ColorOptions.ts +1 -1
  97. package/src/processors/CodeQLProcessor.ts +3 -3
  98. package/src/processors/CommonProcessor.ts +24 -24
  99. package/src/processors/ProcessorFactory.ts +9 -9
  100. package/src/processors/SnykProcessor.ts +3 -2
  101. package/src/representations/CompactGroupByRepresentation.ts +20 -20
  102. package/src/representations/CompactGroupByRunPerLevelRepresentation.ts +2 -2
  103. package/src/representations/CompactGroupByRunPerSeverityRepresentation.ts +2 -2
  104. package/src/representations/CompactGroupByRunRepresentation.ts +10 -10
  105. package/src/representations/CompactGroupBySarifPerLevelRepresentation.ts +2 -2
  106. package/src/representations/CompactGroupBySarifPerSeverityRepresentation.ts +2 -2
  107. package/src/representations/CompactGroupBySarifRepresentation.ts +11 -11
  108. package/src/representations/CompactGroupByToolNamePerLevelRepresentation.ts +2 -2
  109. package/src/representations/CompactGroupByToolNamePerSeverityRepresentation.ts +2 -2
  110. package/src/representations/CompactGroupByToolNameRepresentation.ts +10 -10
  111. package/src/representations/CompactTotalPerLevelRepresentation.ts +2 -2
  112. package/src/representations/CompactTotalPerSeverityRepresentation.ts +2 -2
  113. package/src/representations/CompactTotalRepresentation.ts +5 -5
  114. package/src/representations/Representation.ts +8 -8
  115. package/src/representations/RepresentationFactory.ts +32 -32
  116. package/src/representations/TableGroupByRunPerLevelRepresentation.ts +3 -3
  117. package/src/representations/TableGroupByRunPerSeverityRepresentation.ts +3 -3
  118. package/src/representations/TableGroupByRunRepresentation.ts +5 -5
  119. package/src/representations/TableGroupBySarifPerLevelRepresentation.ts +3 -3
  120. package/src/representations/TableGroupBySarifPerSeverityRepresentation.ts +3 -3
  121. package/src/representations/TableGroupBySarifRepresentation.ts +9 -9
  122. package/src/representations/TableGroupByToolNamePerLevelRepresentation.ts +3 -3
  123. package/src/representations/TableGroupByToolNamePerSeverityRepresentation.ts +3 -3
  124. package/src/representations/TableGroupByToolNameRepresentation.ts +4 -4
  125. package/src/representations/TableGroupRepresentation.ts +32 -32
  126. package/src/representations/table/Cell.ts +8 -8
  127. package/src/representations/table/Column.ts +13 -13
  128. package/src/representations/table/Row.ts +17 -17
  129. package/src/representations/table/Table.ts +21 -21
  130. package/src/system.ts +5 -5
  131. package/src/types.ts +43 -13
  132. package/src/utils/Comparators.ts +6 -6
  133. package/src/utils/ExtendedArray.ts +1 -1
  134. package/src/utils/FileUtils.ts +3 -3
  135. package/src/utils/SarifUtils.ts +6 -6
  136. package/src/utils/StringUtils.ts +3 -3
  137. package/tests/integration/SendSarifToSlack.spec.ts +73 -67
  138. package/tests/representations/CompactGroupByRunPerLevelRepresentation.spec.ts +121 -0
  139. package/tests/representations/CompactGroupByRunPerSeverityRepresentation.spec.ts +122 -0
  140. package/tests/representations/CompactGroupBySarifPerLevelRepresentation.spec.ts +132 -0
  141. package/tests/representations/CompactGroupBySarifPerSeverityRepresentation.spec.ts +133 -0
  142. package/tsconfig.json +1 -1
package/dist/index.cjs CHANGED
@@ -32,7 +32,9 @@ var index_exports = {};
32
32
  __export(index_exports, {
33
33
  Color: () => Color,
34
34
  FooterType: () => FooterType,
35
+ LogLevelItems: () => LogLevelItems,
35
36
  RepresentationType: () => RepresentationType,
37
+ SarifFileExtensionItems: () => SarifFileExtensionItems,
36
38
  SarifToSlackClient: () => SarifToSlackClient,
37
39
  SendIf: () => SendIf
38
40
  });
@@ -168,23 +170,24 @@ function sendIfLogMessage(sendIf) {
168
170
  var import_node_fs2 = require("fs");
169
171
 
170
172
  // src/Logger.ts
171
- var import_tslog = require("tslog");
172
173
  var import_zod2 = require("zod");
174
+ var stackTraceParser = __toESM(require("stacktrace-parser"));
175
+ var import_tslog = require("tslog");
173
176
 
174
177
  // src/system.ts
175
178
  var import_zod = require("zod");
176
179
 
177
180
  // src/metadata.json
178
- var version = "1.3.5";
179
- var sha = "4b44572f95bfdaab5159a2bd89a3ed2b193b55aa";
180
- var buildAt = "2026-04-04T14:25:40Z";
181
+ var version = "1.4.0";
182
+ var sha = "3b7ca554e41d0d7c94a7eeae079f3afc1d384c4d";
183
+ var buildAt = "2026-04-12T13:12:12Z";
181
184
 
182
185
  // src/system.ts
183
186
  function logMetadata() {
184
- const logger = new Logger(logMetadata.name);
185
- logger.info(`version: ${version}`);
186
- logger.info(`sha: ${sha}`);
187
- logger.info(`built at: ${buildAt}`);
187
+ const logger = new Logger();
188
+ logger.debug(`version: ${version}`);
189
+ logger.debug(`sha: ${sha}`);
190
+ logger.debug(`built at: ${buildAt}`);
188
191
  }
189
192
  function isDebug() {
190
193
  const parseResult = import_zod.z.stringbool().safeParse(
@@ -193,61 +196,6 @@ function isDebug() {
193
196
  return parseResult.success && parseResult.data;
194
197
  }
195
198
 
196
- // src/Logger.ts
197
- var LogLevelItems = ["silly", "trace", "debug", "info", "warning", "error", "fatal"];
198
- var Logger = class _Logger {
199
- static APP_NAME = "@fabasoad/sarif-to-slack";
200
- static DEFAULT_LOG_LEVEL = "info";
201
- static DEFAULT_LOG_TEMPLATE = "[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ";
202
- static DEFAULT_LOG_COLORED = true;
203
- _instance;
204
- isLogLevel(v) {
205
- return LogLevelItems.includes(v);
206
- }
207
- getMinLevel() {
208
- let result = _Logger.DEFAULT_LOG_LEVEL;
209
- if (isDebug()) {
210
- result = "silly";
211
- } else {
212
- const parseResult = import_zod2.z.string().refine((v) => this.isLogLevel(v)).transform((v) => v).safeParse(process.env.SARIF_TO_SLACK_LOG_LEVEL);
213
- if (parseResult.success) {
214
- result = parseResult.data;
215
- }
216
- }
217
- return LogLevelItems.findIndex((v) => v === result);
218
- }
219
- getLogTemplate() {
220
- const result = import_zod2.z.string().safeParse(process.env.SARIF_TO_SLACK_LOG_TEMPLATE);
221
- return result.success ? result.data : _Logger.DEFAULT_LOG_TEMPLATE;
222
- }
223
- getLogColored() {
224
- const result = import_zod2.z.stringbool().safeParse(process.env.SARIF_TO_SLACK_LOG_COLORED);
225
- return result.success ? result.data : _Logger.DEFAULT_LOG_COLORED;
226
- }
227
- constructor(memberName) {
228
- this._instance = new import_tslog.Logger({
229
- name: `${_Logger.APP_NAME}${memberName === void 0 ? "" : `::${memberName}`}`,
230
- minLevel: this.getMinLevel(),
231
- type: "pretty",
232
- prettyLogTimeZone: "UTC",
233
- prettyLogTemplate: this.getLogTemplate(),
234
- stylePrettyLogs: this.getLogColored()
235
- });
236
- }
237
- info(...args) {
238
- this._instance.info(...args);
239
- }
240
- warn(...args) {
241
- this._instance.warn(...args);
242
- }
243
- trace(...args) {
244
- this._instance.trace(...args);
245
- }
246
- debug(...args) {
247
- this._instance.debug(...args);
248
- }
249
- };
250
-
251
199
  // src/types.ts
252
200
  var FooterType = /* @__PURE__ */ ((FooterType2) => {
253
201
  FooterType2["PlainText"] = "plain_text";
@@ -271,6 +219,8 @@ var RepresentationType = /* @__PURE__ */ ((RepresentationType2) => {
271
219
  RepresentationType2[RepresentationType2["TableGroupBySarifPerSeverity"] = 13] = "TableGroupBySarifPerSeverity";
272
220
  return RepresentationType2;
273
221
  })(RepresentationType || {});
222
+ var SarifFileExtensionItems = ["sarif", "json"];
223
+ var LogLevelItems = ["silly", "trace", "debug", "info", "warning", "error", "fatal"];
274
224
  var SecuritySeverity = /* @__PURE__ */ ((SecuritySeverity2) => {
275
225
  SecuritySeverity2[SecuritySeverity2["Unknown"] = 0] = "Unknown";
276
226
  SecuritySeverity2[SecuritySeverity2["None"] = 1] = "None";
@@ -295,6 +245,78 @@ var SecurityLevelValues = Object.values(SecurityLevel).filter(
295
245
  (v) => typeof v === "string"
296
246
  );
297
247
 
248
+ // src/globalState.ts
249
+ var globalState = {};
250
+
251
+ // src/Logger.ts
252
+ var Logger = class _Logger {
253
+ static DEFAULT_LOG_LEVEL = "info";
254
+ static DEFAULT_FUNC_NAME_POSITION = 2;
255
+ _instance;
256
+ getMinLevel(minLevel) {
257
+ let result = _Logger.DEFAULT_LOG_LEVEL;
258
+ if (isDebug()) {
259
+ result = "silly";
260
+ } else if (minLevel !== void 0) {
261
+ const parseResult = import_zod2.z.enum(LogLevelItems).safeParse(minLevel);
262
+ if (parseResult.success) {
263
+ result = parseResult.data;
264
+ }
265
+ }
266
+ return LogLevelItems.findIndex((v) => v === result);
267
+ }
268
+ composeLogHeader(name, logFunctionName, logFunctionNameOnPosition) {
269
+ let result = name;
270
+ if (logFunctionName === true) {
271
+ const pos = logFunctionNameOnPosition ?? _Logger.DEFAULT_FUNC_NAME_POSITION;
272
+ if (result === void 0) {
273
+ result = "";
274
+ } else {
275
+ result += "::";
276
+ }
277
+ const stackFrames = stackTraceParser.parse(
278
+ new Error().stack ?? ""
279
+ );
280
+ if (stackFrames.length > pos) {
281
+ result += stackFrames[pos].methodName;
282
+ }
283
+ }
284
+ return result;
285
+ }
286
+ constructor(overrides = {}) {
287
+ const opts = {
288
+ ...structuredClone(globalState.loggerOpts ?? {}),
289
+ ...overrides
290
+ };
291
+ const logName = this.composeLogHeader(
292
+ opts.name,
293
+ opts.logFunctionName,
294
+ opts.logFunctionNameOnPosition
295
+ );
296
+ const settings = {
297
+ minLevel: this.getMinLevel(opts.minLevel),
298
+ name: logName,
299
+ type: "pretty",
300
+ prettyLogTemplate: opts.prettyLogTemplate || (logName === void 0 ? "[{{logLevelName}}] {{dateIsoStr}} " : "[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "),
301
+ prettyLogTimeZone: "UTC",
302
+ stylePrettyLogs: opts.stylePrettyLogs ?? true
303
+ };
304
+ this._instance = new import_tslog.Logger(settings);
305
+ }
306
+ info(...args) {
307
+ this._instance.info(...args);
308
+ }
309
+ warn(...args) {
310
+ this._instance.warn(...args);
311
+ }
312
+ trace(...args) {
313
+ this._instance.trace(...args);
314
+ }
315
+ debug(...args) {
316
+ this._instance.debug(...args);
317
+ }
318
+ };
319
+
298
320
  // src/utils/FileUtils.ts
299
321
  var import_node_fs = __toESM(require("fs"));
300
322
  var path = __toESM(require("path"));
@@ -313,10 +335,10 @@ function listFiles(dir, recursive, extension, fileList = []) {
313
335
  return fileList;
314
336
  }
315
337
  function extractListOfFiles(opts) {
316
- const logger = new Logger(extractListOfFiles.name);
317
338
  if (!import_node_fs.default.existsSync(opts.path)) {
318
339
  throw new Error(`Provided path does not exist: ${opts.path}`);
319
340
  }
341
+ const logger = new Logger();
320
342
  const stats = import_node_fs.default.statSync(opts.path);
321
343
  if (stats.isDirectory()) {
322
344
  logger.info(`Provided path is a directory: ${opts.path}`);
@@ -566,7 +588,6 @@ var Column = class {
566
588
  this._cells = new Array(cellsCount);
567
589
  }
568
590
  header;
569
- _logger = new Logger("Column");
570
591
  _cells;
571
592
  get total() {
572
593
  return this._cells.reduce((sum, c) => {
@@ -586,7 +607,9 @@ var Column = class {
586
607
  const width = this.width;
587
608
  this._cells.forEach((c) => c.setWidth(width));
588
609
  } else {
589
- this._logger.warn(`Cell index out of range. Requested index: ${index}. Cells count: ${this._cells.length}.`);
610
+ const logger = new Logger();
611
+ ;
612
+ logger.warn(`Cell index out of range. Requested index: ${index}. Cells count: ${this._cells.length}.`);
590
613
  }
591
614
  }
592
615
  };
@@ -625,7 +648,6 @@ var Row = class {
625
648
  }
626
649
  _header;
627
650
  headerWidth;
628
- _logger = new Logger("Row");
629
651
  _cells;
630
652
  _totalWidth;
631
653
  get total() {
@@ -638,7 +660,8 @@ var Row = class {
638
660
  if (index >= 0 && index < this._cells.length) {
639
661
  this._cells[index] = value;
640
662
  } else {
641
- this._logger.warn(`Setting cell failed. Reason: index out of range. Requested index: ${index}. Cells count: ${this._cells.length}.`);
663
+ const logger = new Logger();
664
+ logger.warn(`Setting cell failed. Reason: index out of range. Requested index: ${index}. Cells count: ${this._cells.length}.`);
642
665
  }
643
666
  }
644
667
  get totalWidth() {
@@ -736,7 +759,6 @@ var TableGroupRepresentation = class extends Representation {
736
759
  _keyBy;
737
760
  _keyPer;
738
761
  _values;
739
- _logger = new Logger("TableGroupRepresentation");
740
762
  groupFindingsPer(findings) {
741
763
  return findings.reduce(
742
764
  (grouped, f) => {
@@ -775,6 +797,7 @@ var TableGroupRepresentation = class extends Representation {
775
797
  }
776
798
  }
777
799
  compose() {
800
+ const logger = new Logger();
778
801
  const groupedBy = this.groupFindingsBy(this._model.findings);
779
802
  const table = new Table({
780
803
  main: this.title,
@@ -790,7 +813,7 @@ var TableGroupRepresentation = class extends Representation {
790
813
  i++;
791
814
  }
792
815
  const result = this.codeBlock(table.toString());
793
- this._logger.trace(result);
816
+ logger.trace(result);
794
817
  return result;
795
818
  }
796
819
  };
@@ -998,6 +1021,7 @@ var SnykProcessor = class extends CommonProcessor {
998
1021
  * property where CVSS score is also defined. This method tries to get level
999
1022
  * from this "cvssv3_baseScore" property and if it fails to do so, then it tries
1000
1023
  * to get CVSS score in a common way.
1024
+ * @internal
1001
1025
  */
1002
1026
  tryFindCvssScore() {
1003
1027
  return this.tryFindRuleProperty("cvssv3_baseScore") ?? super.tryFindCvssScore();
@@ -1035,7 +1059,6 @@ function createFinding(opts) {
1035
1059
  return new FindingImpl(opts);
1036
1060
  }
1037
1061
  var FindingImpl = class {
1038
- _logger = new Logger("FindingImpl");
1039
1062
  _runMetadata;
1040
1063
  _result;
1041
1064
  _sarifPath;
@@ -1081,7 +1104,9 @@ var FindingImpl = class {
1081
1104
  this._levelCache = this._processor.tryFindLevel();
1082
1105
  }
1083
1106
  if (this._levelCache === void 0) {
1084
- this._logger.debug(`Unknown level of ${this._rule?.id} rule`);
1107
+ const logger = new Logger();
1108
+ ;
1109
+ logger.debug(`Unknown level of ${this._rule?.id} rule`);
1085
1110
  return 0 /* Unknown */;
1086
1111
  }
1087
1112
  switch (this._levelCache) {
@@ -1097,7 +1122,8 @@ var FindingImpl = class {
1097
1122
  }
1098
1123
  get severity() {
1099
1124
  if (this.cvssScore == null || this.cvssScore < 0 || this.cvssScore > 10) {
1100
- this._logger.debug(`Unsupported CVSS score ${this.cvssScore} in ${this._rule?.id} rule`);
1125
+ const logger = new Logger();
1126
+ logger.debug(`Unsupported CVSS score ${this.cvssScore} in ${this._rule?.id} rule`);
1101
1127
  return 0 /* Unknown */;
1102
1128
  }
1103
1129
  if (this.cvssScore >= 9) {
@@ -1129,7 +1155,7 @@ function logPropIsNotDefined(logger, key, val) {
1129
1155
  logger.trace(`'${prop}.${val}' property is not defined. Continue color identification...`);
1130
1156
  }
1131
1157
  function identifyColorCommon(findings, prop, none, unknown, color) {
1132
- const logger = new Logger(identifyColorCommon.name);
1158
+ const logger = new Logger();
1133
1159
  if (color.none) {
1134
1160
  if (findings.findByProperty(prop, none) != null) {
1135
1161
  logColorTaken(logger, color.none, `${prop === "severity" ? "bySeverity" : "byLevel"}.none`);
@@ -1153,7 +1179,7 @@ function identifyColorCommon(findings, prop, none, unknown, color) {
1153
1179
  return void 0;
1154
1180
  }
1155
1181
  function identifyColorBySeverity(findings, color) {
1156
- const logger = new Logger(identifyColorBySeverity.name);
1182
+ const logger = new Logger();
1157
1183
  if (color.critical) {
1158
1184
  if (findings.findByProperty("severity", 5 /* Critical */) != null) {
1159
1185
  logColorTaken(logger, color.critical, "bySeverity.critical");
@@ -1197,7 +1223,7 @@ function identifyColorBySeverity(findings, color) {
1197
1223
  return identifyColorCommon(findings, "severity", 1 /* None */, 0 /* Unknown */, color);
1198
1224
  }
1199
1225
  function identifyColorByLevel(findings, color) {
1200
- const logger = new Logger(identifyColorByLevel.name);
1226
+ const logger = new Logger();
1201
1227
  if (color.error) {
1202
1228
  if (findings.findByProperty("level", 4 /* Error */) != null) {
1203
1229
  logColorTaken(logger, color.error, "byLevel.error");
@@ -1231,7 +1257,7 @@ function identifyColorByLevel(findings, color) {
1231
1257
  return identifyColorCommon(findings, "level", 1 /* None */, 0 /* Unknown */, color);
1232
1258
  }
1233
1259
  function identifyColor(findings, colorOpts) {
1234
- const logger = new Logger(identifyColor.name);
1260
+ const logger = new Logger();
1235
1261
  if (!colorOpts) {
1236
1262
  logger.debug("Message has no color as color options are not defined.");
1237
1263
  return void 0;
@@ -1362,7 +1388,6 @@ var SlackMessageImpl = class {
1362
1388
 
1363
1389
  // src/SarifToSlackClient.ts
1364
1390
  var SarifToSlackClient = class _SarifToSlackClient {
1365
- _logger = new Logger("SarifToSlackClient");
1366
1391
  _message;
1367
1392
  _sarifModel;
1368
1393
  _sendIf = 20 /* Always */;
@@ -1386,8 +1411,10 @@ var SarifToSlackClient = class _SarifToSlackClient {
1386
1411
  * @public
1387
1412
  */
1388
1413
  static async create(webhookUrl, opts) {
1414
+ globalState.loggerOpts = opts.loggerOptions;
1415
+ const logger = new Logger();
1416
+ logger.trace(opts);
1389
1417
  const instance = new _SarifToSlackClient();
1390
- instance._logger.trace(opts);
1391
1418
  instance._sendIf = opts.sendIf ?? instance._sendIf;
1392
1419
  instance._sarifModel = await _SarifToSlackClient.buildModel(opts.sarif);
1393
1420
  instance._message = await _SarifToSlackClient.initialize(webhookUrl, opts, instance._sarifModel);
@@ -1465,14 +1492,15 @@ var SarifToSlackClient = class _SarifToSlackClient {
1465
1492
  if (this._sarifModel == null) {
1466
1493
  throw new Error("Could not parse SARIF file(s).");
1467
1494
  }
1495
+ const logger = new Logger();
1468
1496
  if (this.shouldSendMessage) {
1469
1497
  if (this._message == null) {
1470
1498
  throw new Error("Slack message was not prepared.");
1471
1499
  }
1472
1500
  const text = await this._message.send();
1473
- this._logger.info("Message sent. Status:", text);
1501
+ logger.info("Message sent. Status:", text);
1474
1502
  } else {
1475
- this._logger.info(sendIfLogMessage(this._sendIf));
1503
+ logger.info(sendIfLogMessage(this._sendIf));
1476
1504
  }
1477
1505
  }
1478
1506
  get shouldSendMessage() {
@@ -1537,7 +1565,9 @@ var SarifToSlackClient = class _SarifToSlackClient {
1537
1565
  0 && (module.exports = {
1538
1566
  Color,
1539
1567
  FooterType,
1568
+ LogLevelItems,
1540
1569
  RepresentationType,
1570
+ SarifFileExtensionItems,
1541
1571
  SarifToSlackClient,
1542
1572
  SendIf
1543
1573
  });
package/dist/index.d.ts CHANGED
@@ -61,6 +61,13 @@
61
61
  * },
62
62
  * representation: RepresentationType.CompactGroupByToolNamePerSeverity,
63
63
  * sendIf: SendIf.MediumOrHigher,
64
+ * loggerOptions: {
65
+ * logFunctionName: false,
66
+ * minLevel: 'debug',
67
+ * name: 'my-app',
68
+ * stylePrettyLogs: true,
69
+ * prettyLogTemplate: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
70
+ * },
64
71
  * });
65
72
  * await client.send();
66
73
  * ```
@@ -201,6 +208,31 @@ export declare type IncludeAwareWithValueOptions = IncludeAwareOptions & {
201
208
  value?: string;
202
209
  };
203
210
 
211
+ /**
212
+ * It is used to stored logging options in global state
213
+ * @public
214
+ */
215
+ export declare type LoggerOptions = {
216
+ logFunctionName?: boolean;
217
+ logFunctionNameOnPosition?: number;
218
+ minLevel?: LogLevel;
219
+ name?: string;
220
+ stylePrettyLogs?: boolean;
221
+ prettyLogTemplate?: string;
222
+ };
223
+
224
+ /**
225
+ * Log levels for the Logger.
226
+ * @public
227
+ */
228
+ export declare type LogLevel = typeof LogLevelItems[number];
229
+
230
+ /**
231
+ * Valid log levels for the Logger.
232
+ * @public
233
+ */
234
+ export declare const LogLevelItems: readonly ["silly", "trace", "debug", "info", "warning", "error", "fatal"];
235
+
204
236
  /**
205
237
  * This represents what type of message should be sent. There are various options
206
238
  * to show information from SARIF in Slack message.
@@ -380,7 +412,13 @@ export declare enum RepresentationType {
380
412
  * SARIF file extension.
381
413
  * @public
382
414
  */
383
- export declare type SarifFileExtension = 'sarif' | 'json';
415
+ export declare type SarifFileExtension = typeof SarifFileExtensionItems[number];
416
+
417
+ /**
418
+ * Valid SARIF file extensions.
419
+ * @public
420
+ */
421
+ export declare const SarifFileExtensionItems: readonly ["sarif", "json"];
384
422
 
385
423
  /**
386
424
  * Represents options for the provided SARIF file(s), such as path, should files
@@ -398,7 +436,6 @@ export declare type SarifOptions = {
398
436
  * @public
399
437
  */
400
438
  export declare class SarifToSlackClient {
401
- private readonly _logger;
402
439
  private _message?;
403
440
  private _sarifModel?;
404
441
  private _sendIf;
@@ -441,6 +478,7 @@ export declare type SarifToSlackClientOptions = {
441
478
  run?: IncludeAwareOptions;
442
479
  representation?: RepresentationType;
443
480
  sendIf?: SendIf;
481
+ loggerOptions?: LoggerOptions;
444
482
  };
445
483
 
446
484
  /**
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EACjC,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -62,6 +62,13 @@
62
62
  * },
63
63
  * representation: RepresentationType.CompactGroupByToolNamePerSeverity,
64
64
  * sendIf: SendIf.MediumOrHigher,
65
+ * loggerOptions: {
66
+ * logFunctionName: false,
67
+ * minLevel: 'debug',
68
+ * name: 'my-app',
69
+ * stylePrettyLogs: true,
70
+ * prettyLogTemplate: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
71
+ * },
65
72
  * });
66
73
  * await client.send();
67
74
  * ```
@@ -73,5 +80,5 @@
73
80
  export { Color } from './model/color/Color';
74
81
  export { SendIf } from './model/SendIf';
75
82
  export { SarifToSlackClient } from './SarifToSlackClient';
76
- export { FooterType, RepresentationType } from './types';
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEZBQTBGO0FBRTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0VHO0FBQ0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBTzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN6RCxPQUFPLEVBRUwsVUFBVSxFQUdWLGtCQUFrQixFQUluQixNQUFNLFNBQVMsQ0FBQSJ9
83
+ export { FooterType, LogLevelItems, RepresentationType, SarifFileExtensionItems, } from './types';
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEZBQTBGO0FBRTFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZFRztBQUNILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU81QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQVNMLFVBQVUsRUFDVixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUN4QixNQUFNLFNBQVMsQ0FBQyJ9
@@ -15,7 +15,6 @@ export function createFinding(opts) {
15
15
  * @private
16
16
  */
17
17
  class FindingImpl {
18
- _logger = new Logger('FindingImpl');
19
18
  _runMetadata;
20
19
  _result;
21
20
  _sarifPath;
@@ -36,7 +35,7 @@ class FindingImpl {
36
35
  return createFinding({
37
36
  sarifPath: this._sarifPath,
38
37
  runMetadata: this._runMetadata,
39
- result: this._result
38
+ result: this._result,
40
39
  });
41
40
  }
42
41
  get sarifPath() {
@@ -61,7 +60,9 @@ class FindingImpl {
61
60
  this._levelCache = this._processor.tryFindLevel();
62
61
  }
63
62
  if (this._levelCache === undefined) {
64
- this._logger.debug(`Unknown level of ${this._rule?.id} rule`);
63
+ const logger = new Logger();
64
+ ;
65
+ logger.debug(`Unknown level of ${this._rule?.id} rule`);
65
66
  return SecurityLevel.Unknown;
66
67
  }
67
68
  switch (this._levelCache) {
@@ -73,7 +74,8 @@ class FindingImpl {
73
74
  }
74
75
  get severity() {
75
76
  if (this.cvssScore == null || this.cvssScore < 0 || this.cvssScore > 10) {
76
- this._logger.debug(`Unsupported CVSS score ${this.cvssScore} in ${this._rule?.id} rule`);
77
+ const logger = new Logger();
78
+ logger.debug(`Unsupported CVSS score ${this.cvssScore} in ${this._rule?.id} rule`);
77
79
  return SecuritySeverity.Unknown;
78
80
  }
79
81
  if (this.cvssScore >= 9) {
@@ -91,4 +93,4 @@ class FindingImpl {
91
93
  return SecuritySeverity.None;
92
94
  }
93
95
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9GaW5kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3hFLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQTtBQUU5QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUEwQmhFOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBb0I7SUFDaEQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUM5QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVc7SUFDRSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsWUFBWSxDQUFVO0lBQ3RCLE9BQU8sQ0FBUztJQUNoQixVQUFVLENBQVM7SUFDbkIsS0FBSyxDQUF1QjtJQUM1QixVQUFVLENBQWtCO0lBRXJDLHdCQUF3QixHQUFZLEtBQUssQ0FBQztJQUMxQyxlQUFlLEdBQXVCLFNBQVMsQ0FBQztJQUVoRCxvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsV0FBVyxHQUE2QixTQUFTLENBQUM7SUFFMUQsWUFBWSxJQUFvQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcs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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9GaW5kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pFLE9BQU8sTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUUvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUEwQmpFOzs7R0FHRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBb0I7SUFDaEQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVc7SUFDRSxZQUFZLENBQVU7SUFDdEIsT0FBTyxDQUFTO0lBQ2hCLFVBQVUsQ0FBUztJQUNuQixLQUFLLENBQXVCO0lBQzVCLFVBQVUsQ0FBa0I7SUFFckMsd0JBQXdCLEdBQVksS0FBSyxDQUFDO0lBQzFDLGVBQWUsR0FBdUIsU0FBUyxDQUFDO0lBRWhELG9CQUFvQixHQUFZLEtBQUssQ0FBQztJQUN0QyxXQUFXLEdBQTZCLFNBQVMsQ0FBQztJQUUxRCxZQUFZLElBQW9CO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLGFBQWEs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
@@ -21,4 +21,4 @@ export default class FindingArray extends ExtendedArray {
21
21
  .some((v) => this.findByProperty('level', v) != null);
22
22
  }
23
23
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZGluZ0FycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL0ZpbmRpbmdBcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFELE9BQU8sYUFBYSxNQUFNLHdCQUF3QixDQUFBO0FBRWxEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxhQUFzQjtJQUV2RCxtQkFBbUIsQ0FBQyxRQUEwQjtRQUNuRCxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBNEIsRUFBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQzthQUN0RixNQUFNLENBQUMsQ0FBQyxDQUFtQixFQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDO2FBQ3ZELElBQUksQ0FBQyxDQUFDLENBQW1CLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFBO0lBQ3ZGLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUMxQyxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsYUFBYSxDQUFDO2FBQ3JCLE1BQU0sQ0FBQyxDQUFDLENBQXlCLEVBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDaEYsTUFBTSxDQUFDLENBQUMsQ0FBZ0IsRUFBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQzthQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFnQixFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUNqRixDQUFDO0NBQ0YifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmluZGluZ0FycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL0ZpbmRpbmdBcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNELE9BQU8sYUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBRW5EOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxhQUFzQjtJQUV2RCxtQkFBbUIsQ0FBQyxRQUEwQjtRQUNuRCxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBNEIsRUFBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQzthQUN0RixNQUFNLENBQUMsQ0FBQyxDQUFtQixFQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDO2FBQ3ZELElBQUksQ0FBQyxDQUFDLENBQW1CLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFvQjtRQUMxQyxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsYUFBYSxDQUFDO2FBQ3JCLE1BQU0sQ0FBQyxDQUFDLENBQXlCLEVBQXNCLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDaEYsTUFBTSxDQUFDLENBQUMsQ0FBZ0IsRUFBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQzthQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFnQixFQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0YifQ==
@@ -173,4 +173,4 @@ export function sendIfLogMessage(sendIf) {
173
173
  return 'Unknown SendIf value.';
174
174
  }
175
175
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZElmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL1NlbmRJZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksTUE2R1g7QUE3R0QsV0FBWSxNQUFNO0lBQ2hCOzs7O09BSUc7SUFDSCwyREFBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILG1EQUFZLENBQUE7SUFDWjs7O09BR0c7SUFDSCxtRUFBb0IsQ0FBQTtJQUNwQjs7T0FFRztJQUNILHVEQUFjLENBQUE7SUFDZDs7O09BR0c7SUFDSCx1RUFBc0IsQ0FBQTtJQUN0Qjs7T0FFRztJQUNILGlEQUFXLENBQUE7SUFDWDs7O09BR0c7SUFDSCxpRUFBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILG1EQUFZLENBQUE7SUFDWjs7O09BR0c7SUFDSCxtRUFBb0IsQ0FBQTtJQUNwQjs7T0FFRztJQUNILHlEQUFlLENBQUE7SUFDZjs7O09BR0c7SUFDSCwwRUFBdUIsQ0FBQTtJQUN2Qjs7O09BR0c7SUFDSCxnREFBVSxDQUFBO0lBQ1Y7O09BRUc7SUFDSCxvREFBWSxDQUFBO0lBQ1o7OztPQUdHO0lBQ0gsb0VBQW9CLENBQUE7SUFDcEI7O09BRUc7SUFDSCw4Q0FBUyxDQUFBO0lBQ1Q7OztPQUdHO0lBQ0gsOERBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCw4Q0FBUyxDQUFBO0lBQ1Q7OztPQUdHO0lBQ0gsOERBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBWSxDQUFBO0lBQ1o7OztPQUdHO0lBQ0gsb0VBQW9CLENBQUE7SUFDcEI7O09BRUc7SUFDSCx3Q0FBTSxDQUFBO0lBQ047O09BRUc7SUFDSCxvQ0FBSSxDQUFBO0lBQ0o7O09BRUc7SUFDSCxzQ0FBSyxDQUFBO0lBQ0w7O09BRUc7SUFDSCxzQ0FBSyxDQUFBO0FBQ1AsQ0FBQyxFQTdHVyxNQUFNLEtBQU4sTUFBTSxRQTZHakI7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWM7SUFDN0MsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDLGdCQUFnQjtZQUMxQixPQUFPLHdEQUF3RCxDQUFBO1FBQ2pFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQTtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQTtRQUN2RSxLQUFLLE1BQU0sQ0FBQyxjQUFjO1lBQ3hCLE9BQU8sc0RBQXNELENBQUE7UUFDL0QsS0FBSyxNQUFNLENBQUMsc0JBQXNCO1lBQ2hDLE9BQU8sZ0VBQWdFLENBQUE7UUFDekUsS0FBSyxNQUFNLENBQUMsV0FBVztZQUNyQixPQUFPLG1EQUFtRCxDQUFBO1FBQzVELEtBQUssTUFBTSxDQUFDLG1CQUFtQjtZQUM3QixPQUFPLDZEQUE2RCxDQUFBO1FBQ3RFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQTtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQTtRQUN2RSxLQUFLLE1BQU0sQ0FBQyxlQUFlO1lBQ3pCLE9BQU8sdURBQXVELENBQUE7UUFDaEUsS0FBSyxNQUFNLENBQUMsdUJBQXVCO1lBQ2pDLE9BQU8saUVBQWlFLENBQUE7UUFDMUUsS0FBSyxNQUFNLENBQUMsVUFBVTtZQUNwQixPQUFPLGtEQUFrRCxDQUFBO1FBQzNELEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQTtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQTtRQUN2RSxLQUFLLE1BQU0sQ0FBQyxTQUFTO1lBQ25CLE9BQU8saURBQWlELENBQUE7UUFDMUQsS0FBSyxNQUFNLENBQUMsaUJBQWlCO1lBQzNCLE9BQU8sMkRBQTJELENBQUE7UUFDcEUsS0FBSyxNQUFNLENBQUMsU0FBUztZQUNuQixPQUFPLGlEQUFpRCxDQUFBO1FBQzFELEtBQUssTUFBTSxDQUFDLGlCQUFpQjtZQUMzQixPQUFPLDJEQUEyRCxDQUFBO1FBQ3BFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQTtRQUM3RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQTtRQUN2RSxLQUFLLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLE9BQU8sc0JBQXNCLENBQUE7UUFDL0IsS0FBSyxNQUFNLENBQUMsSUFBSTtZQUNkLE9BQU8sMENBQTBDLENBQUE7UUFDbkQsS0FBSyxNQUFNLENBQUMsS0FBSztZQUNmLE9BQU8sMkNBQTJDLENBQUE7UUFDcEQsS0FBSyxNQUFNLENBQUMsS0FBSztZQUNmLE9BQU8sdUNBQXVDLENBQUE7UUFDaEQ7WUFDRSxPQUFPLHVCQUF1QixDQUFBO0lBQ2xDLENBQUM7QUFDSCxDQUFDIn0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZElmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL1NlbmRJZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksTUE2R1g7QUE3R0QsV0FBWSxNQUFNO0lBQ2hCOzs7O09BSUc7SUFDSCwyREFBZ0IsQ0FBQTtJQUNoQjs7T0FFRztJQUNILG1EQUFZLENBQUE7SUFDWjs7O09BR0c7SUFDSCxtRUFBb0IsQ0FBQTtJQUNwQjs7T0FFRztJQUNILHVEQUFjLENBQUE7SUFDZDs7O09BR0c7SUFDSCx1RUFBc0IsQ0FBQTtJQUN0Qjs7T0FFRztJQUNILGlEQUFXLENBQUE7SUFDWDs7O09BR0c7SUFDSCxpRUFBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILG1EQUFZLENBQUE7SUFDWjs7O09BR0c7SUFDSCxtRUFBb0IsQ0FBQTtJQUNwQjs7T0FFRztJQUNILHlEQUFlLENBQUE7SUFDZjs7O09BR0c7SUFDSCwwRUFBdUIsQ0FBQTtJQUN2Qjs7O09BR0c7SUFDSCxnREFBVSxDQUFBO0lBQ1Y7O09BRUc7SUFDSCxvREFBWSxDQUFBO0lBQ1o7OztPQUdHO0lBQ0gsb0VBQW9CLENBQUE7SUFDcEI7O09BRUc7SUFDSCw4Q0FBUyxDQUFBO0lBQ1Q7OztPQUdHO0lBQ0gsOERBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCw4Q0FBUyxDQUFBO0lBQ1Q7OztPQUdHO0lBQ0gsOERBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBWSxDQUFBO0lBQ1o7OztPQUdHO0lBQ0gsb0VBQW9CLENBQUE7SUFDcEI7O09BRUc7SUFDSCx3Q0FBTSxDQUFBO0lBQ047O09BRUc7SUFDSCxvQ0FBSSxDQUFBO0lBQ0o7O09BRUc7SUFDSCxzQ0FBSyxDQUFBO0lBQ0w7O09BRUc7SUFDSCxzQ0FBSyxDQUFBO0FBQ1AsQ0FBQyxFQTdHVyxNQUFNLEtBQU4sTUFBTSxRQTZHakI7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWM7SUFDN0MsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxDQUFDLGdCQUFnQjtZQUMxQixPQUFPLHdEQUF3RCxDQUFDO1FBQ2xFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQztRQUM5RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQztRQUN4RSxLQUFLLE1BQU0sQ0FBQyxjQUFjO1lBQ3hCLE9BQU8sc0RBQXNELENBQUM7UUFDaEUsS0FBSyxNQUFNLENBQUMsc0JBQXNCO1lBQ2hDLE9BQU8sZ0VBQWdFLENBQUM7UUFDMUUsS0FBSyxNQUFNLENBQUMsV0FBVztZQUNyQixPQUFPLG1EQUFtRCxDQUFDO1FBQzdELEtBQUssTUFBTSxDQUFDLG1CQUFtQjtZQUM3QixPQUFPLDZEQUE2RCxDQUFDO1FBQ3ZFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQztRQUM5RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQztRQUN4RSxLQUFLLE1BQU0sQ0FBQyxlQUFlO1lBQ3pCLE9BQU8sdURBQXVELENBQUM7UUFDakUsS0FBSyxNQUFNLENBQUMsdUJBQXVCO1lBQ2pDLE9BQU8saUVBQWlFLENBQUM7UUFDM0UsS0FBSyxNQUFNLENBQUMsVUFBVTtZQUNwQixPQUFPLGtEQUFrRCxDQUFDO1FBQzVELEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQztRQUM5RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQztRQUN4RSxLQUFLLE1BQU0sQ0FBQyxTQUFTO1lBQ25CLE9BQU8saURBQWlELENBQUM7UUFDM0QsS0FBSyxNQUFNLENBQUMsaUJBQWlCO1lBQzNCLE9BQU8sMkRBQTJELENBQUM7UUFDckUsS0FBSyxNQUFNLENBQUMsU0FBUztZQUNuQixPQUFPLGlEQUFpRCxDQUFDO1FBQzNELEtBQUssTUFBTSxDQUFDLGlCQUFpQjtZQUMzQixPQUFPLDJEQUEyRCxDQUFDO1FBQ3JFLEtBQUssTUFBTSxDQUFDLFlBQVk7WUFDdEIsT0FBTyxvREFBb0QsQ0FBQztRQUM5RCxLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7WUFDOUIsT0FBTyw4REFBOEQsQ0FBQztRQUN4RSxLQUFLLE1BQU0sQ0FBQyxNQUFNO1lBQ2hCLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsS0FBSyxNQUFNLENBQUMsSUFBSTtZQUNkLE9BQU8sMENBQTBDLENBQUM7UUFDcEQsS0FBSyxNQUFNLENBQUMsS0FBSztZQUNmLE9BQU8sMkNBQTJDLENBQUM7UUFDckQsS0FBSyxNQUFNLENBQUMsS0FBSztZQUNmLE9BQU8sdUNBQXVDLENBQUM7UUFDakQ7WUFDRSxPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7QUFDSCxDQUFDIn0=
@@ -25,7 +25,7 @@ class SlackMessageImpl {
25
25
  constructor(url, opts) {
26
26
  this._webhook = new IncomingWebhook(url, {
27
27
  username: opts.username || 'SARIF results',
28
- icon_url: opts.iconUrl
28
+ icon_url: opts.iconUrl,
29
29
  });
30
30
  this._gitHubServerUrl = process.env.GITHUB_SERVER_URL || 'https://github.com';
31
31
  this._color = opts.color;
@@ -36,8 +36,8 @@ class SlackMessageImpl {
36
36
  type: 'header',
37
37
  text: {
38
38
  type: 'plain_text',
39
- text: header || process.env.GITHUB_REPOSITORY || 'SARIF results'
40
- }
39
+ text: header || process.env.GITHUB_REPOSITORY || 'SARIF results',
40
+ },
41
41
  };
42
42
  }
43
43
  withActor(actor) {
@@ -66,13 +66,13 @@ class SlackMessageImpl {
66
66
  text: {
67
67
  type: 'mrkdwn',
68
68
  text: this.buildText(),
69
- }
69
+ },
70
70
  });
71
71
  if (this._footer) {
72
72
  blocks.push(this._footer);
73
73
  }
74
74
  const { text } = await this._webhook.send({
75
- attachments: [{ color: this._color, blocks }]
75
+ attachments: [{ color: this._color, blocks }],
76
76
  });
77
77
  return text;
78
78
  }
@@ -96,4 +96,4 @@ class SlackMessageImpl {
96
96
  return text.join('\n\n');
97
97
  }
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xhY2tNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL1NsYWNrTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUE2QjFDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBVyxFQUFFLElBQXlCO0lBQ3ZFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCO0lBQ0gsUUFBUSxDQUFpQjtJQUN6QixnQkFBZ0IsQ0FBUTtJQUN4QixNQUFNLENBQVM7SUFDZixlQUFlLENBQWdCO0lBRXhDLE9BQU8sQ0FBYztJQUNyQixPQUFPLENBQWU7SUFDdEIsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBRXZCLFlBQVksR0FBVyxFQUFFLElBQXlCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLGVBQWU7WUFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLG9CQUFvQixDQUFBO1FBQzdFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFlO1FBQ3hCLElBQUks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
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xhY2tNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL1NsYWNrTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUE2QjNDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBVyxFQUFFLElBQXlCO0lBQ3ZFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCO0lBQ0gsUUFBUSxDQUFrQjtJQUMxQixnQkFBZ0IsQ0FBUztJQUN6QixNQUFNLENBQVU7SUFDaEIsZUFBZSxDQUFpQjtJQUV6QyxPQUFPLENBQWU7SUFDdEIsT0FBTyxDQUFnQjtJQUN2QixNQUFNLENBQVU7SUFDaEIsTUFBTSxDQUFVO0lBRXhCLFlBQVksR0FBVyxFQUFFLElBQXlCO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLGVBQWU7WUFDMUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLG9CQUFvQixDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFlO1FBQ3hCLElB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
@@ -1 +1 @@
1
- {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../src/model/color/Color.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,KAAK;IAChB;;;OAGG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAA;IAE7B,OAAO;IAKP;;;;;;;;;OASG;WACW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS;IAIhE,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,QAAQ;CASjB"}
1
+ {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../src/model/color/Color.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,KAAK;IAChB;;;OAGG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,OAAO;IAKP;;;;;;;;;OASG;WACW,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS;IAIhE,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,QAAQ;CASjB"}
@@ -43,4 +43,4 @@ export class Color {
43
43
  return map.get(from) ?? from;
44
44
  }
45
45
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvY29sb3IvQ29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFDaEI7OztPQUdHO0lBQ2EsS0FBSyxDQUFRO0lBRTdCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUF5QjtRQUMxQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUM3QyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sYUFBYSxHQUFHLG9FQUFvRSxDQUFBO1lBRTFGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUN2RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsSUFBWTtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBaUI7WUFDbEMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ3RCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztZQUN0QixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDeEIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1NBQ3ZCLENBQUMsQ0FBQTtRQUNGLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUE7SUFDOUIsQ0FBQztDQUNGIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvY29sb3IvQ29sb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFDaEI7OztPQUdHO0lBQ2EsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUF5QjtRQUMxQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sYUFBYSxHQUFHLG9FQUFvRSxDQUFDO1lBRTNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsSUFBWTtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBaUI7WUFDbEMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1lBQ3RCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztZQUN0QixDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7WUFDeEIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO1NBQ3ZCLENBQUMsQ0FBQTtRQUNGLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0IsQ0FBQztDQUNGIn0=