@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
@@ -24,4 +24,5 @@ jobs:
24
24
  security-events: write
25
25
  with:
26
26
  code-scanning: ${{ contains(fromJSON('["all", "code-scanning"]'), github.event.inputs.security-type || 'all') }}
27
+ code-scanning-languages: "actions,typescript"
27
28
  sca: ${{ contains(fromJSON('["all", "sca"]'), github.event.inputs.security-type || 'all') }}
@@ -74,19 +74,6 @@ on: # yamllint disable-line rule:truthy
74
74
  - "compact-group-by-sarif-per-severity"
75
75
  - "compact-total-per-level"
76
76
  - "compact-total-per-severity"
77
- log-level:
78
- description: "Log level:"
79
- required: false
80
- default: "info"
81
- type: choice
82
- options:
83
- - "silly"
84
- - "trace"
85
- - "debug"
86
- - "info"
87
- - "warning"
88
- - "error"
89
- - "fatal"
90
77
  send-if:
91
78
  description: "Send if:"
92
79
  required: false
@@ -151,6 +138,39 @@ on: # yamllint disable-line rule:truthy
151
138
  required: false
152
139
  default: true
153
140
  type: boolean
141
+ log-level:
142
+ description: "Log level:"
143
+ required: false
144
+ default: "info"
145
+ type: choice
146
+ options:
147
+ - "silly"
148
+ - "trace"
149
+ - "debug"
150
+ - "info"
151
+ - "warning"
152
+ - "error"
153
+ - "fatal"
154
+ log-template:
155
+ description: "Log template:"
156
+ required: false
157
+ default: "[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "
158
+ type: string
159
+ style-pretty-logs:
160
+ description: "Colored logs"
161
+ required: false
162
+ default: true
163
+ type: boolean
164
+ log-function-name:
165
+ description: "Log function name"
166
+ required: false
167
+ default: false
168
+ type: boolean
169
+ log-function-name-on-position:
170
+ description: "Log function name from this position in stacktrace:"
171
+ required: false
172
+ default: 2
173
+ type: number
154
174
 
155
175
  defaults:
156
176
  run:
@@ -161,6 +181,8 @@ jobs:
161
181
  name: ${{ github.event.inputs.sarif }}
162
182
  timeout-minutes: 5
163
183
  runs-on: ubuntu-latest
184
+ permissions:
185
+ contents: read
164
186
  steps:
165
187
  - name: Checkout ${{ github.repository }}
166
188
  uses: actions/checkout@v6
@@ -289,8 +311,10 @@ jobs:
289
311
  SARIF_TO_SLACK_SARIF_PATH_RECURSIVE: "false"
290
312
  SARIF_TO_SLACK_SARIF_FILE_EXTENSION: "sarif"
291
313
  SARIF_TO_SLACK_LOG_LEVEL: "${{ github.event.inputs.log-level }}"
292
- SARIF_TO_SLACK_LOG_TEMPLATE: "[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "
293
- SARIF_TO_SLACK_LOG_COLORED: "true"
314
+ SARIF_TO_SLACK_LOG_TEMPLATE: "${{ github.event.inputs.log-template }}"
315
+ SARIF_TO_SLACK_STYLE_PRETTY_LOGS: "${{ github.event.inputs.style-pretty-logs }}"
316
+ SARIF_TO_SLACK_LOG_FUNCTION_NAME: "${{ github.event.inputs.log-function-name }}"
317
+ SARIF_TO_SLACK_LOG_FUNCTION_NAME_ON_POSITION: "${{ github.event.inputs.log-function-name-on-position }}"
294
318
  SARIF_TO_SLACK_HEADER: "${{ github.event.inputs.header }}"
295
319
  SARIF_TO_SLACK_FOOTER: "${{ github.event.inputs.footer }}"
296
320
  SARIF_TO_SLACK_ACTOR: "${{ github.event.inputs.actor }}"
package/README.md CHANGED
@@ -22,12 +22,6 @@ TypeScript library to send results of SARIF file to Slack webhook URL.
22
22
 
23
23
  ## How to use
24
24
 
25
- ```shell
26
- export SARIF_TO_SLACK_LOG_LEVEL="debug"
27
- export SARIF_TO_SLACK_LOG_TEMPLATE="[{{logLevelName}}] [{{name}}] {{dateIsoStr}} "
28
- export SARIF_TO_SLACK_LOG_COLORED="true"
29
- ```
30
-
31
25
  ```typescript
32
26
  import {
33
27
  Color,
@@ -84,7 +78,14 @@ const client: SarifToSlackClient = await SarifToSlackClient.create(
84
78
  },
85
79
  representation: RepresentationType.CompactGroupByToolNamePerSeverity,
86
80
  sendIf: SendIf.MediumOrHigher,
87
- }
81
+ loggerOptions: {
82
+ logFunctionName: false,
83
+ minLevel: 'debug',
84
+ name: 'my-app',
85
+ stylePrettyLogs: true,
86
+ prettyLogTemplate: '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ',
87
+ },
88
+ },
88
89
  );
89
90
  await client.send();
90
91
  ```
package/dist/Logger.js CHANGED
@@ -1,54 +1,64 @@
1
- import { Logger as TSLogger } from 'tslog';
2
1
  import { z } from 'zod';
2
+ import * as stackTraceParser from 'stacktrace-parser';
3
+ import { Logger as TSLogger } from 'tslog';
3
4
  import { isDebug } from './system';
4
- const LogLevelItems = ['silly', 'trace', 'debug', 'info', 'warning', 'error', 'fatal'];
5
+ import { LogLevelItems } from './types';
6
+ import { globalState } from './globalState';
5
7
  /**
6
8
  * Logger class for managing logging operations.
7
9
  * @internal
8
10
  */
9
11
  export default class Logger {
10
- static APP_NAME = '@fabasoad/sarif-to-slack';
11
12
  static DEFAULT_LOG_LEVEL = 'info';
12
- static DEFAULT_LOG_TEMPLATE = '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} ';
13
- static DEFAULT_LOG_COLORED = true;
13
+ static DEFAULT_FUNC_NAME_POSITION = 2;
14
14
  _instance;
15
- isLogLevel(v) {
16
- return LogLevelItems.includes(v);
17
- }
18
- getMinLevel() {
15
+ getMinLevel(minLevel) {
19
16
  let result = Logger.DEFAULT_LOG_LEVEL;
20
17
  if (isDebug()) {
21
18
  result = 'silly';
22
19
  }
23
- else {
24
- const parseResult = z
25
- .string()
26
- .refine((v) => this.isLogLevel(v))
27
- .transform((v) => v)
28
- .safeParse(process.env.SARIF_TO_SLACK_LOG_LEVEL);
20
+ else if (minLevel !== undefined) {
21
+ const parseResult = z.enum(LogLevelItems).safeParse(minLevel);
29
22
  if (parseResult.success) {
30
23
  result = parseResult.data;
31
24
  }
32
25
  }
33
26
  return LogLevelItems.findIndex((v) => v === result);
34
27
  }
35
- getLogTemplate() {
36
- const result = z.string().safeParse(process.env.SARIF_TO_SLACK_LOG_TEMPLATE);
37
- return result.success ? result.data : Logger.DEFAULT_LOG_TEMPLATE;
38
- }
39
- getLogColored() {
40
- const result = z.stringbool().safeParse(process.env.SARIF_TO_SLACK_LOG_COLORED);
41
- return result.success ? result.data : Logger.DEFAULT_LOG_COLORED;
28
+ composeLogHeader(name, logFunctionName, logFunctionNameOnPosition) {
29
+ let result = name;
30
+ if (logFunctionName === true) {
31
+ const pos = logFunctionNameOnPosition ?? Logger.DEFAULT_FUNC_NAME_POSITION;
32
+ if (result === undefined) {
33
+ result = '';
34
+ }
35
+ else {
36
+ result += '::';
37
+ }
38
+ const stackFrames = stackTraceParser.parse(new Error().stack ?? '');
39
+ if (stackFrames.length > pos) {
40
+ result += stackFrames[pos].methodName;
41
+ }
42
+ }
43
+ return result;
42
44
  }
43
- constructor(memberName) {
44
- this._instance = new TSLogger({
45
- name: `${Logger.APP_NAME}${memberName === undefined ? '' : `::${memberName}`}`,
46
- minLevel: this.getMinLevel(),
45
+ constructor(overrides = {}) {
46
+ const opts = {
47
+ ...structuredClone(globalState.loggerOpts ?? {}),
48
+ ...overrides,
49
+ };
50
+ const logName = this.composeLogHeader(opts.name, opts.logFunctionName, opts.logFunctionNameOnPosition);
51
+ const settings = {
52
+ minLevel: this.getMinLevel(opts.minLevel),
53
+ name: logName,
47
54
  type: 'pretty',
55
+ prettyLogTemplate: opts.prettyLogTemplate || (logName === undefined
56
+ ? '[{{logLevelName}}] {{dateIsoStr}} '
57
+ : '[{{logLevelName}}] [{{name}}] {{dateIsoStr}} '),
48
58
  prettyLogTimeZone: 'UTC',
49
- prettyLogTemplate: this.getLogTemplate(),
50
- stylePrettyLogs: this.getLogColored(),
51
- });
59
+ stylePrettyLogs: opts.stylePrettyLogs ?? true,
60
+ };
61
+ this._instance = new TSLogger(settings);
52
62
  }
53
63
  info(...args) {
54
64
  this._instance.info(...args);
@@ -63,4 +73,4 @@ export default class Logger {
63
73
  this._instance.debug(...args);
64
74
  }
65
75
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sSUFBSSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDeEQsT0FBTyxFQUFFLENBQUMsRUFBMkIsTUFBTSxLQUFLLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVuQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBR2hHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sTUFBTTtJQUNqQixNQUFNLENBQUMsUUFBUSxHQUFXLDBCQUEwQixDQUFDO0lBQ3JELE1BQU0sQ0FBQyxpQkFBaUIsR0FBYSxNQUFNLENBQUM7SUFDNUMsTUFBTSxDQUFDLG9CQUFvQixHQUFXLCtDQUErQyxDQUFDO0lBQ3RGLE1BQU0sQ0FBQyxtQkFBbUIsR0FBWSxJQUFJLENBQUM7SUFFbEMsU0FBUyxDQUFvQjtJQUV0QyxVQUFVLENBQUMsQ0FBUztRQUMxQixPQUFRLGFBQXVDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksTUFBTSxHQUFhLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUVoRCxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxXQUFXLEdBQWlDLENBQUM7aUJBQ2hELE1BQU0sRUFBRTtpQkFDUixNQUFNLENBQUMsQ0FBQyxDQUFTLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2xELFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBWSxFQUFFLENBQUMsQ0FBYSxDQUFDO2lCQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ25ELElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVcsRUFBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sTUFBTSxHQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO0lBQ3BFLENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sTUFBTSxHQUNWLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO0lBQ25FLENBQUM7SUFFRCxZQUFtQixVQUFtQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksUUFBUSxDQUFDO1lBQzVCLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsRUFBRSxFQUFFO1lBQzlFLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVCLElBQUksRUFBRSxRQUFRO1lBQ2QsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO1NBQ3RDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxJQUFJLENBQUMsR0FBRyxJQUFlO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHLElBQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUcsSUFBZTtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBRyxJQUFlO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQyJ9
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUEyQixNQUFNLEtBQUssQ0FBQztBQUNqRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFxQyxNQUFNLElBQUksUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbkMsT0FBTyxFQUFxQyxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU07SUFDakIsTUFBTSxDQUFDLGlCQUFpQixHQUFhLE1BQU0sQ0FBQztJQUM1QyxNQUFNLENBQUMsMEJBQTBCLEdBQVcsQ0FBQyxDQUFDO0lBRXJDLFNBQVMsQ0FBb0I7SUFFdEMsV0FBVyxDQUFDLFFBQThCO1FBQ2hELElBQUksTUFBTSxHQUFhLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUVoRCxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBaUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUYsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBVyxFQUFXLEVBQUUsQ0FBQyxDQUFDLEtB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
@@ -4,7 +4,6 @@ import { type SarifToSlackClientOptions } from './types';
4
4
  * @public
5
5
  */
6
6
  export declare class SarifToSlackClient {
7
- private readonly _logger;
8
7
  private _message?;
9
8
  private _sarifModel?;
10
9
  private _sendIf;
@@ -1 +1 @@
1
- {"version":3,"file":"SarifToSlackClient.d.ts","sourceRoot":"","sources":["../src/SarifToSlackClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,yBAAyB,EAG/B,MAAM,SAAS,CAAA;AAWhB;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO;IAIP,OAAO,CAAC,MAAM,CAAE,oBAAoB;IAOpC;;;;;;;;;OASG;WACiB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;mBASvF,UAAU;IAoE/B;;;;;OAKG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAelC,OAAO,KAAK,iBAAiB,GAyD5B;CACF"}
1
+ {"version":3,"file":"SarifToSlackClient.d.ts","sourceRoot":"","sources":["../src/SarifToSlackClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,yBAAyB,EAG/B,MAAM,SAAS,CAAC;AAYjB;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAe;IAChC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,OAAO,CAAC,OAAO,CAAyB;IAExC,OAAO;IAIP,OAAO,CAAC,MAAM,CAAE,oBAAoB;IAOpC;;;;;;;;;OASG;WACiB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;mBAavF,UAAU;IAoE/B;;;;;OAKG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBlC,OAAO,KAAK,iBAAiB,GAyD5B;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { promises as fs } from 'node:fs';
2
2
  import Logger from './Logger';
3
- import { SecurityLevel, SecuritySeverity } from './types';
3
+ import { SecurityLevel, SecuritySeverity, } from './types';
4
4
  import { logMetadata } from './system';
5
5
  import { extractListOfFiles } from './utils/FileUtils';
6
6
  import { createRepresentation } from './representations/RepresentationFactory';
@@ -10,12 +10,12 @@ import { identifyColor } from './model/color/ColorIdentification';
10
10
  import FindingArray from './model/FindingArray';
11
11
  import { createSlackMessage } from './model/SlackMessage';
12
12
  import { SendIf, sendIfLogMessage } from './model/SendIf';
13
+ import { globalState } from './globalState';
13
14
  /**
14
15
  * Service to convert SARIF files to Slack messages and send them.
15
16
  * @public
16
17
  */
17
18
  export class SarifToSlackClient {
18
- _logger = new Logger('SarifToSlackClient');
19
19
  _message;
20
20
  _sarifModel;
21
21
  _sendIf = SendIf.Always;
@@ -39,8 +39,10 @@ export class SarifToSlackClient {
39
39
  * @public
40
40
  */
41
41
  static async create(webhookUrl, opts) {
42
+ globalState.loggerOpts = opts.loggerOptions;
43
+ const logger = new Logger();
44
+ logger.trace(opts);
42
45
  const instance = new SarifToSlackClient();
43
- instance._logger.trace(opts);
44
46
  instance._sendIf = opts.sendIf ?? instance._sendIf;
45
47
  instance._sarifModel = await SarifToSlackClient.buildModel(opts.sarif);
46
48
  instance._message = await SarifToSlackClient.initialize(webhookUrl, opts, instance._sarifModel);
@@ -63,12 +65,12 @@ export class SarifToSlackClient {
63
65
  runMetadata = {
64
66
  id: runId.value,
65
67
  run,
66
- toolName: findToolComponent(run, result).name
68
+ toolName: findToolComponent(run, result).name,
67
69
  };
68
70
  model.findings.push(createFinding({ sarifPath, result, runMetadata }));
69
71
  }
70
72
  runMetadata ??= {
71
- id: runId.value, run, toolName: findToolComponentDriver(run).name
73
+ id: runId.value, run, toolName: findToolComponentDriver(run).name,
72
74
  };
73
75
  model.runs.push(runMetadata);
74
76
  }
@@ -116,15 +118,16 @@ export class SarifToSlackClient {
116
118
  if (this._sarifModel == null) {
117
119
  throw new Error('Could not parse SARIF file(s).');
118
120
  }
121
+ const logger = new Logger();
119
122
  if (this.shouldSendMessage) {
120
123
  if (this._message == null) {
121
124
  throw new Error('Slack message was not prepared.');
122
125
  }
123
126
  const text = await this._message.send();
124
- this._logger.info('Message sent. Status:', text);
127
+ logger.info('Message sent. Status:', text);
125
128
  }
126
129
  else {
127
- this._logger.info(sendIfLogMessage(this._sendIf));
130
+ logger.info(sendIfLogMessage(this._sendIf));
128
131
  }
129
132
  }
130
133
  get shouldSendMessage() {
@@ -185,4 +188,4 @@ export class SarifToSlackClient {
185
188
  }
186
189
  }
187
190
  }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2FyaWZUb1NsYWNrQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NhcmlmVG9TbGFja0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV4QyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDN0IsT0FBTyxFQUtMLGFBQWEsRUFDYixnQkFBZ0IsRUFDakIsTUFBTSxTQUFTLENBQUE7QUFDaEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ2pFLE9BQU8sWUFBWSxNQUFNLHNCQUFzQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFekQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3BELFFBQVEsQ0FBZ0I7SUFDeEIsV0FBVyxDQUFjO0lBRXpCLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRXhDO1FBQ0UsV0FBVyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQjtRQUNsQyxJQUFJLEtBQUss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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2FyaWZUb1NsYWNrQ2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NhcmlmVG9TbGFja0NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUM7QUFDOUIsT0FBTyxFQUtMLGFBQWEsRUFDYixnQkFBZ0IsR0FDakIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sWUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLFFBQVEsQ0FBZ0I7SUFDeEIsV0FBVyxDQUFjO0lBRXpCLE9BQU8sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRXhDO1FBQ0UsV0FBVyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQjtRQUNsQyxJQUFJLEtBQUssR0FBVyxDQUFDLENBQUM7UUFDdEIsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sS0FBSyxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFrQixFQUFFLElBQStCO1FBQzVFLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUU1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxXQUFXLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLFFBQVEsQ0FBQyxRQUFRLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEcsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQXVCO1FBQ3JELE1BQU0sVUFBVSxHQUFhLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQWUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxZQUFZLEVBQUUsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sY0FBYyxHQUFzQixrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3BGLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQVcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRCxNQUFNLFFBQVEsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBUSxDQUFDO1lBRW5ELEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQyxNQUFNLEtBQUssR0FBMkIsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1RCxJQUFJLFdBQWdDLENBQUM7Z0JBQ3JDLEtBQUssTUFBTSxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDdkMsV0FBVyxHQUFHO3dCQUNaLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSzt3QkFDZixHQUFHO3dCQUNILFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSTtxQkFDOUMsQ0FBQztvQkFDRixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekUsQ0FBQztnQkFDRCxXQUFXLEtBQUs7b0JBQ2QsRUFBRSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJO2lCQUNsRSxDQUFDO2dCQUNGLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQzdCLFVBQWtCLEVBQ2xCLElBQStCLEVBQy9CLFVBQXNCO1FBRXRCLE1BQU0sT0FBTyxHQUFpQixrQkFBa0IsQ0FBQyxVQUFVLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNyRCxjQUFjLEVBQUUsb0JBQW9CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdEUsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLElBQUk7UUFDZixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFXLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVksaUJBQWlCO1FBQzNCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sQ0FBQyxnQkFBZ0I7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbEcsS0FBSyxNQUFNLENBQUMsWUFBWTtnQkFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUM5RixLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLEtBQUssTUFBTSxDQUFDLGNBQWM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDaEcsS0FBSyxNQUFNLENBQUMsc0JBQXNCO2dCQUNoQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRixLQUFLLE1BQU0sQ0FBQyxXQUFXO2dCQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQzdGLEtBQUssTUFBTSxDQUFDLG1CQUFtQjtnQkFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEYsS0FBSyxNQUFNLENBQUMsWUFBWTtnQkFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUM5RixLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLEtBQUssTUFBTSxDQUFDLGVBQWU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDakcsS0FBSyxNQUFNLENBQUMsdUJBQXVCO2dCQUNqQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRixLQUFLLE1BQU0sQ0FBQyxVQUFVO2dCQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN6RixLQUFLLE1BQU0sQ0FBQyxZQUFZO2dCQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUMzRixLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RSxLQUFLLE1BQU0sQ0FBQyxTQUFTO2dCQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN4RixLQUFLLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQzNCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRSxLQUFLLE1BQU0sQ0FBQyxTQUFTO2dCQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN4RixLQUFLLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQzNCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRSxLQUFLLE1BQU0sQ0FBQyxZQUFZO2dCQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUMzRixLQUFLLE1BQU0sQ0FBQyxvQkFBb0I7Z0JBQzlCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RSxLQUFLLE1BQU0sQ0FBQyxNQUFNO2dCQUNoQixPQUFPLElBQUksQ0FBQztZQUNkLEtBQUssTUFBTSxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsS0FBSyxNQUFNLENBQUMsS0FBSztnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RCxLQUFLLE1BQU0sQ0FBQyxLQUFLO2dCQUNmLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
@@ -0,0 +1,2 @@
1
+ export declare const globalState: GlobalState;
2
+ //# sourceMappingURL=globalState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalState.d.ts","sourceRoot":"","sources":["../src/globalState.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW,EAAE,WAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const globalState = {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsU3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ2xvYmFsU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQixFQUFFLENBQUMifQ==