@biorate/nestjs-tools 1.27.1 → 1.27.5

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 (45) hide show
  1. package/.nyc_output/{36e11d2e-e154-417a-8863-fa821a50c83e.json → 55c3d5e9-e941-46ef-bbb3-0b05bb6b8c38.json} +1 -1
  2. package/.nyc_output/processinfo/55c3d5e9-e941-46ef-bbb3-0b05bb6b8c38.json +1 -0
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/CHANGELOG.md +20 -78
  5. package/coverage/lcov-report/index.html +20 -20
  6. package/coverage/lcov-report/nestjs-tools/index.html +1 -1
  7. package/coverage/lcov-report/nestjs-tools/interfaces.ts.html +1 -1
  8. package/coverage/lcov-report/nestjs-tools/src/decorators/auth.ts.html +1 -1
  9. package/coverage/lcov-report/nestjs-tools/src/decorators/index.html +1 -1
  10. package/coverage/lcov-report/nestjs-tools/src/decorators/index.ts.html +1 -1
  11. package/coverage/lcov-report/nestjs-tools/src/decorators/roles.ts.html +1 -1
  12. package/coverage/lcov-report/nestjs-tools/src/enums/index.html +1 -1
  13. package/coverage/lcov-report/nestjs-tools/src/enums/index.ts.html +1 -1
  14. package/coverage/lcov-report/nestjs-tools/src/enums/user.ts.html +1 -1
  15. package/coverage/lcov-report/nestjs-tools/src/errors.ts.html +1 -1
  16. package/coverage/lcov-report/nestjs-tools/src/filters/all-exception-filter.ts.html +1 -1
  17. package/coverage/lcov-report/nestjs-tools/src/filters/index.html +1 -1
  18. package/coverage/lcov-report/nestjs-tools/src/filters/index.ts.html +1 -1
  19. package/coverage/lcov-report/nestjs-tools/src/index.html +1 -1
  20. package/coverage/lcov-report/nestjs-tools/src/index.ts.html +1 -1
  21. package/coverage/lcov-report/nestjs-tools/src/interceptors/index.html +7 -7
  22. package/coverage/lcov-report/nestjs-tools/src/interceptors/index.ts.html +1 -1
  23. package/coverage/lcov-report/nestjs-tools/src/interceptors/routes-interceptor.ts.html +3 -3
  24. package/coverage/lcov-report/nestjs-tools/src/middlewares/index.html +18 -18
  25. package/coverage/lcov-report/nestjs-tools/src/middlewares/index.ts.html +1 -1
  26. package/coverage/lcov-report/nestjs-tools/src/middlewares/proxy-middleware.ts.html +4 -4
  27. package/coverage/lcov-report/nestjs-tools/src/middlewares/request-count-middleware.ts.html +41 -8
  28. package/coverage/lcov-report/nestjs-tools/src/middlewares/response-time-middleware.ts.html +49 -10
  29. package/coverage/lcov-report/nestjs-tools/src/providers/auth.ts.html +1 -1
  30. package/coverage/lcov-report/nestjs-tools/src/providers/index.html +5 -5
  31. package/coverage/lcov-report/nestjs-tools/src/providers/index.ts.html +1 -1
  32. package/coverage/lcov-report/nestjs-tools/src/providers/roles.ts.html +4 -4
  33. package/coverage/lcov.info +65 -56
  34. package/dist/src/interceptors/routes-interceptor.js.map +1 -1
  35. package/dist/src/middlewares/proxy-middleware.js +3 -3
  36. package/dist/src/middlewares/proxy-middleware.js.map +1 -1
  37. package/dist/src/middlewares/request-count-middleware.js +8 -1
  38. package/dist/src/middlewares/request-count-middleware.js.map +1 -1
  39. package/dist/src/middlewares/response-time-middleware.js +6 -4
  40. package/dist/src/middlewares/response-time-middleware.js.map +1 -1
  41. package/dist/src/providers/auth.js.map +1 -1
  42. package/dist/src/providers/roles.js.map +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +5 -5
  45. package/.nyc_output/processinfo/36e11d2e-e154-417a-8863-fa821a50c83e.json +0 -1
@@ -79,7 +79,7 @@ export * from './response-time-middleware';
79
79
  <div class='footer quiet pad2 space-top1 center small'>
80
80
  Code coverage generated by
81
81
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
82
- at 2023-04-17T06:50:37.738Z
82
+ at 2023-05-03T18:28:13.866Z
83
83
  </div>
84
84
  <script src="../../../prettify.js"></script>
85
85
  <script>
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">44.44% </span>
47
+ <span class="strong">47.36% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>8/18</span>
49
+ <span class='fraction'>9/19</span>
50
50
  </div>
51
51
 
52
52
 
@@ -142,7 +142,7 @@
142
142
  <span class="cline-any cline-yes">1x</span>
143
143
  <span class="cline-any cline-yes">1x</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
- <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-yes">1x</span>
146
146
  <span class="cline-any cline-yes">1x</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -277,7 +277,7 @@ export class ProxyPrometheusMiddleware {
277
277
  <div class='footer quiet pad2 space-top1 center small'>
278
278
  Code coverage generated by
279
279
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
280
- at 2023-04-17T06:50:37.738Z
280
+ at 2023-05-03T18:28:13.866Z
281
281
  </div>
282
282
  <script src="../../../prettify.js"></script>
283
283
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">66.66% </span>
26
+ <span class="strong">71.42% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>8/12</span>
28
+ <span class='fraction'>10/14</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/10</span>
35
+ <span class='fraction'>0/12</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60% </span>
47
+ <span class="strong">66.66% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/10</span>
49
+ <span class='fraction'>8/12</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,15 +93,30 @@
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
95
  <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
97
108
  <span class="cline-any cline-yes">1x</span>
98
109
  <span class="cline-any cline-yes">1x</span>
99
110
  <span class="cline-any cline-yes">1x</span>
111
+ <span class="cline-any cline-yes">1x</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
113
  <span class="cline-any cline-neutral">&nbsp;</span>
101
114
  <span class="cline-any cline-yes">1x</span>
102
115
  <span class="cline-any cline-neutral">&nbsp;</span>
103
116
  <span class="cline-any cline-neutral">&nbsp;</span>
104
117
  <span class="cline-any cline-yes">1x</span>
118
+ <span class="cline-any cline-yes">1x</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
120
  <span class="cline-any cline-neutral">&nbsp;</span>
106
121
  <span class="cline-any cline-neutral">&nbsp;</span>
107
122
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -120,6 +135,13 @@
120
135
  <span class="cline-any cline-neutral">&nbsp;</span>
121
136
  <span class="cline-any cline-neutral">&nbsp;</span>
122
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
145
  <span class="cline-any cline-no">&nbsp;</span>
124
146
  <span class="cline-any cline-neutral">&nbsp;</span>
125
147
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -127,11 +149,15 @@
127
149
  import * as onHeaders from 'on-headers';
128
150
  import { Injectable, NestMiddleware } from '@nestjs/common';
129
151
  import { counter, Counter } from '@biorate/prometheus';
152
+ import { inject, Types } from '@biorate/inversion';
153
+ import { IConfig } from '@biorate/config';
130
154
  import { Request, Response, NextFunction } from 'express';
131
155
  import { RoutesInterceptor } from '../interceptors';
132
156
  &nbsp;
133
157
  @Injectable()
134
158
  export class RequestCountMiddleware implements NestMiddleware {
159
+ @inject(Types.Config) private config: IConfig;
160
+ &nbsp;
135
161
  @counter({
136
162
  name: 'http_server_requests_seconds_count',
137
163
  help: 'Http server requests count',
@@ -145,7 +171,14 @@ export class RequestCountMiddleware implements NestMiddleware {
145
171
  <span class="cstat-no" title="statement not covered" > this.counter</span>
146
172
  .labels({
147
173
  method: req.method,
148
- url: route?.path ?? (req.baseUrl || req.originalUrl),
174
+ url:
175
+ route?.path ??
176
+ this.config.get&lt;boolean&gt;(
177
+ 'app.middleware.RequestCountMiddleware.log-base-url',
178
+ false,
179
+ )
180
+ ? '/'
181
+ : req.baseUrl || req.originalUrl,
149
182
  status: res.statusCode,
150
183
  })
151
184
  .inc();
@@ -160,7 +193,7 @@ export class RequestCountMiddleware implements NestMiddleware {
160
193
  <div class='footer quiet pad2 space-top1 center small'>
161
194
  Code coverage generated by
162
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at 2023-04-17T06:50:37.738Z
196
+ at 2023-05-03T18:28:13.866Z
164
197
  </div>
165
198
  <script src="../../../prettify.js"></script>
166
199
  <script>
@@ -32,7 +32,7 @@
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/12</span>
35
+ <span class='fraction'>0/14</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">47.36% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>9/19</span>
49
+ <span class='fraction'>10/20</span>
50
50
  </div>
51
51
 
52
52
 
@@ -117,7 +117,20 @@
117
117
  <a name='L52'></a><a href='#L52'>52</a>
118
118
  <a name='L53'></a><a href='#L53'>53</a>
119
119
  <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
121
134
  <span class="cline-any cline-yes">1x</span>
122
135
  <span class="cline-any cline-yes">1x</span>
123
136
  <span class="cline-any cline-yes">1x</span>
@@ -127,7 +140,7 @@
127
140
  <span class="cline-any cline-yes">1x</span>
128
141
  <span class="cline-any cline-yes">1x</span>
129
142
  <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-yes">1x</span>
131
144
  <span class="cline-any cline-yes">1x</span>
132
145
  <span class="cline-any cline-yes">1x</span>
133
146
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -147,6 +160,9 @@
147
160
  <span class="cline-any cline-neutral">&nbsp;</span>
148
161
  <span class="cline-any cline-neutral">&nbsp;</span>
149
162
  <span class="cline-any cline-no">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
166
  <span class="cline-any cline-no">&nbsp;</span>
151
167
  <span class="cline-any cline-neutral">&nbsp;</span>
152
168
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -155,6 +171,9 @@
155
171
  <span class="cline-any cline-neutral">&nbsp;</span>
156
172
  <span class="cline-any cline-neutral">&nbsp;</span>
157
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
177
  <span class="cline-any cline-no">&nbsp;</span>
159
178
  <span class="cline-any cline-no">&nbsp;</span>
160
179
  <span class="cline-any cline-no">&nbsp;</span>
@@ -166,6 +185,13 @@
166
185
  <span class="cline-any cline-neutral">&nbsp;</span>
167
186
  <span class="cline-any cline-neutral">&nbsp;</span>
168
187
  <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-neutral">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
195
  <span class="cline-any cline-no">&nbsp;</span>
170
196
  <span class="cline-any cline-neutral">&nbsp;</span>
171
197
  <span class="cline-any cline-no">&nbsp;</span>
@@ -200,12 +226,18 @@ export class ResponseTimeMiddleware implements NestMiddleware {
200
226
  private histogram: Histogram;
201
227
  &nbsp;
202
228
  <span class="fstat-no" title="function not covered" > public constructor() {</span>
203
- <span class="cstat-no" title="statement not covered" > this.suffix = this.config.get&lt;boolean&gt;('app.middleware.ResponseTime.suffix', true);</span>
229
+ <span class="cstat-no" title="statement not covered" > this.suffix = this.config.get&lt;boolean&gt;(</span>
230
+ 'app.middleware.ResponseTimeMiddleware.suffix',
231
+ true,
232
+ );
204
233
  <span class="cstat-no" title="statement not covered" > this.header = this.config.get&lt;string&gt;(</span>
205
- 'app.middleware.ResponseTime.header',
234
+ 'app.middleware.ResponseTimeMiddleware.header',
206
235
  'x-response-time',
207
236
  );
208
- <span class="cstat-no" title="statement not covered" > this.digits = this.config.get&lt;number&gt;('app.middleware.ResponseTime.digits', 3);</span>
237
+ <span class="cstat-no" title="statement not covered" > this.digits = this.config.get&lt;number&gt;(</span>
238
+ 'app.middleware.ResponseTimeMiddleware.digits',
239
+ 3,
240
+ );
209
241
  }
210
242
  &nbsp;
211
243
  public <span class="fstat-no" title="function not covered" >use(</span>req: Request, res: Response, next: NextFunction) {
@@ -216,7 +248,14 @@ export class ResponseTimeMiddleware implements NestMiddleware {
216
248
  <span class="cstat-no" title="statement not covered" > this.histogram</span>
217
249
  .labels({
218
250
  method: req.method,
219
- url: route?.path ?? (req.baseUrl || req.originalUrl),
251
+ url:
252
+ route?.path ??
253
+ this.config.get&lt;boolean&gt;(
254
+ 'app.middleware.ResponseTimeMiddleware.log-base-url',
255
+ false,
256
+ )
257
+ ? '/'
258
+ : req.baseUrl || req.originalUrl,
220
259
  status: res.statusCode,
221
260
  })
222
261
  .observe(time);
@@ -232,7 +271,7 @@ export class ResponseTimeMiddleware implements NestMiddleware {
232
271
  <div class='footer quiet pad2 space-top1 center small'>
233
272
  Code coverage generated by
234
273
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at 2023-04-17T06:50:37.738Z
274
+ at 2023-05-03T18:28:13.866Z
236
275
  </div>
237
276
  <script src="../../../prettify.js"></script>
238
277
  <script>
@@ -178,7 +178,7 @@ export class AuthGuardProvider implements CanActivate {
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
181
- at 2023-04-17T06:50:37.738Z
181
+ at 2023-05-03T18:28:13.866Z
182
182
  </div>
183
183
  <script src="../../../prettify.js"></script>
184
184
  <script>
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">42.3% </span>
47
+ <span class="strong">44.44% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/26</span>
49
+ <span class='fraction'>12/27</span>
50
50
  </div>
51
51
 
52
52
 
@@ -119,8 +119,8 @@
119
119
  <td data-value="2" class="abs low">0/2</td>
120
120
  <td data-value="0" class="pct low">0%</td>
121
121
  <td data-value="3" class="abs low">0/3</td>
122
- <td data-value="45.45" class="pct low">45.45%</td>
123
- <td data-value="11" class="abs low">5/11</td>
122
+ <td data-value="50" class="pct medium">50%</td>
123
+ <td data-value="12" class="abs medium">6/12</td>
124
124
  </tr>
125
125
 
126
126
  </tbody>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2023-04-17T06:50:37.738Z
134
+ at 2023-05-03T18:28:13.866Z
135
135
  </div>
136
136
  <script src="../../../prettify.js"></script>
137
137
  <script>
@@ -76,7 +76,7 @@ export * from './auth';
76
76
  <div class='footer quiet pad2 space-top1 center small'>
77
77
  Code coverage generated by
78
78
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
79
- at 2023-04-17T06:50:37.738Z
79
+ at 2023-05-03T18:28:13.866Z
80
80
  </div>
81
81
  <script src="../../../prettify.js"></script>
82
82
  <script>
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">45.45% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/11</span>
49
+ <span class='fraction'>6/12</span>
50
50
  </div>
51
51
 
52
52
 
@@ -102,7 +102,7 @@
102
102
  <span class="cline-any cline-yes">1x</span>
103
103
  <span class="cline-any cline-yes">1x</span>
104
104
  <span class="cline-any cline-neutral">&nbsp;</span>
105
- <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-yes">1x</span>
106
106
  <span class="cline-any cline-yes">1x</span>
107
107
  <span class="cline-any cline-no">&nbsp;</span>
108
108
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -172,7 +172,7 @@ export class RolesGuardProvider implements CanActivate {
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
175
- at 2023-04-17T06:50:37.738Z
175
+ at 2023-05-03T18:28:13.866Z
176
176
  </div>
177
177
  <script src="../../../prettify.js"></script>
178
178
  <script>
@@ -265,10 +265,10 @@ BRH:0
265
265
  end_of_record
266
266
  TN:
267
267
  SF:src/middlewares/proxy-middleware.ts
268
- FN:36,(anonymous_2)
269
- FN:40,(anonymous_3)
270
- FN:49,(anonymous_4)
271
- FN:32,(anonymous_5)
268
+ FN:32,(anonymous_2)
269
+ FN:36,(anonymous_3)
270
+ FN:40,(anonymous_4)
271
+ FN:49,(anonymous_5)
272
272
  FNF:4
273
273
  FNH:0
274
274
  FNDA:0,(anonymous_2)
@@ -280,6 +280,7 @@ DA:5,1
280
280
  DA:7,1
281
281
  DA:8,1
282
282
  DA:9,1
283
+ DA:11,1
283
284
  DA:12,1
284
285
  DA:18,1
285
286
  DA:26,1
@@ -293,8 +294,8 @@ DA:50,0
293
294
  DA:51,0
294
295
  DA:58,0
295
296
  DA:65,0
296
- LF:18
297
- LH:8
297
+ LF:19
298
+ LH:9
298
299
  BRDA:47,0,0,0
299
300
  BRDA:47,0,1,0
300
301
  BRDA:47,1,0,0
@@ -308,8 +309,8 @@ BRH:0
308
309
  end_of_record
309
310
  TN:
310
311
  SF:src/middlewares/request-count-middleware.ts
311
- FN:17,(anonymous_2)
312
- FN:18,(anonymous_3)
312
+ FN:21,(anonymous_2)
313
+ FN:22,(anonymous_3)
313
314
  FNF:2
314
315
  FNH:0
315
316
  FNDA:0,(anonymous_2)
@@ -317,33 +318,37 @@ FNDA:0,(anonymous_3)
317
318
  DA:2,1
318
319
  DA:3,1
319
320
  DA:4,1
320
- DA:6,1
321
- DA:9,1
322
- DA:15,1
323
- DA:18,0
324
- DA:19,0
325
- DA:20,0
326
- DA:28,0
327
- LF:10
328
- LH:6
329
- BRDA:23,0,0,0
330
- BRDA:23,0,1,0
331
- BRDA:23,1,0,0
332
- BRDA:23,1,1,0
333
- BRDA:23,2,0,0
334
- BRDA:23,2,1,0
335
- BRDA:23,3,0,0
336
- BRDA:23,3,1,0
337
- BRDA:23,4,0,0
338
- BRDA:23,4,1,0
339
- BRF:10
321
+ DA:5,1
322
+ DA:8,1
323
+ DA:11,1
324
+ DA:12,1
325
+ DA:19,1
326
+ DA:22,0
327
+ DA:23,0
328
+ DA:24,0
329
+ DA:39,0
330
+ LF:12
331
+ LH:8
332
+ BRDA:28,0,0,0
333
+ BRDA:28,0,1,0
334
+ BRDA:28,1,0,0
335
+ BRDA:28,1,1,0
336
+ BRDA:28,2,0,0
337
+ BRDA:28,2,1,0
338
+ BRDA:28,3,0,0
339
+ BRDA:28,3,1,0
340
+ BRDA:28,4,0,0
341
+ BRDA:28,4,1,0
342
+ BRDA:34,5,0,0
343
+ BRDA:34,5,1,0
344
+ BRF:12
340
345
  BRH:0
341
346
  end_of_record
342
347
  TN:
343
348
  SF:src/middlewares/response-time-middleware.ts
344
349
  FN:29,(anonymous_2)
345
- FN:38,(anonymous_3)
346
- FN:40,(anonymous_4)
350
+ FN:44,(anonymous_3)
351
+ FN:46,(anonymous_4)
347
352
  FNF:3
348
353
  FNH:0
349
354
  FNDA:0,(anonymous_2)
@@ -355,34 +360,37 @@ DA:4,1
355
360
  DA:6,1
356
361
  DA:8,1
357
362
  DA:9,1
363
+ DA:11,1
358
364
  DA:12,1
359
365
  DA:13,1
360
366
  DA:27,1
361
367
  DA:30,0
362
- DA:31,0
363
- DA:35,0
364
- DA:39,0
365
- DA:40,0
366
- DA:41,0
367
- DA:42,0
368
- DA:43,0
369
- DA:50,0
370
- DA:52,0
371
- LF:19
372
- LH:9
373
- BRDA:46,0,0,0
374
- BRDA:46,0,1,0
375
- BRDA:46,1,0,0
376
- BRDA:46,1,1,0
377
- BRDA:46,2,0,0
378
- BRDA:46,2,1,0
379
- BRDA:46,3,0,0
380
- BRDA:46,3,1,0
381
- BRDA:46,4,0,0
382
- BRDA:46,4,1,0
383
- BRDA:50,5,0,0
384
- BRDA:50,5,1,0
385
- BRF:12
368
+ DA:34,0
369
+ DA:38,0
370
+ DA:45,0
371
+ DA:46,0
372
+ DA:47,0
373
+ DA:48,0
374
+ DA:49,0
375
+ DA:63,0
376
+ DA:65,0
377
+ LF:20
378
+ LH:10
379
+ BRDA:53,0,0,0
380
+ BRDA:53,0,1,0
381
+ BRDA:53,1,0,0
382
+ BRDA:53,1,1,0
383
+ BRDA:53,2,0,0
384
+ BRDA:53,2,1,0
385
+ BRDA:53,3,0,0
386
+ BRDA:53,3,1,0
387
+ BRDA:53,4,0,0
388
+ BRDA:53,4,1,0
389
+ BRDA:59,5,0,0
390
+ BRDA:59,5,1,0
391
+ BRDA:63,6,0,0
392
+ BRDA:63,6,1,0
393
+ BRF:14
386
394
  BRH:0
387
395
  end_of_record
388
396
  TN:
@@ -442,6 +450,7 @@ DA:1,1
442
450
  DA:2,1
443
451
  DA:3,1
444
452
  DA:4,1
453
+ DA:6,1
445
454
  DA:7,1
446
455
  DA:8,0
447
456
  DA:22,0
@@ -449,8 +458,8 @@ DA:26,0
449
458
  DA:30,0
450
459
  DA:31,0
451
460
  DA:32,0
452
- LF:11
453
- LH:5
461
+ LF:12
462
+ LH:6
454
463
  BRDA:30,0,0,0
455
464
  BRDA:30,0,1,0
456
465
  BRF:2
@@ -1 +1 @@
1
- {"version":3,"file":"routes-interceptor.js","sourceRoot":"","sources":["../../../src/interceptors/routes-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAA6C;AAC7C,uCAAyC;AACzC,wDAAyD;AAEzD,2CAKwB;AAGxB,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAA9B;QAGmB,cAAS,GAAG,IAAI,gBAAS,EAAE,CAAC;IAc/C,CAAC;IAZQ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC3D,mBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;YAC7D,IAAI,EAAE,IAAA,iBAAS,EACb,IAAA,YAAI,EACF,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,yBAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,yBAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAChE,CACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAhBwB,qBAAG,GAAG,IAAI,OAAO,EAA8B,CAAA;AAD3D,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAiB7B;AAjBY,8CAAiB"}
1
+ {"version":3,"file":"routes-interceptor.js","sourceRoot":"","sources":["../../../src/interceptors/routes-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAA6C;AAC7C,uCAAyC;AACzC,wDAAyD;AAEzD,2CAKwB;AAGxB,IAAa,iBAAiB,yBAA9B,MAAa,iBAAiB;IAA9B;QAGmB,cAAS,GAAG,IAAI,gBAAS,EAAE,CAAC;IAc/C,CAAC;IAZQ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAC3D,mBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;YAC7D,IAAI,EAAE,IAAA,iBAAS,EACb,IAAA,YAAI,EACF,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,yBAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAC7D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAS,yBAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAChE,CACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;;AAfsB,qBAAG,GAAG,IAAI,OAAO,EAA6B,AAA3C,CAA4C;AAD3D,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAiB7B;AAjBY,8CAAiB"}
@@ -16,6 +16,9 @@ const common_1 = require("@nestjs/common");
16
16
  const prometheus_1 = require("@biorate/prometheus");
17
17
  const tools_1 = require("@biorate/tools");
18
18
  let ProxyPrometheusMiddleware = class ProxyPrometheusMiddleware {
19
+ static create(options) {
20
+ return new this(options).handler;
21
+ }
19
22
  constructor(options) {
20
23
  this.time = new WeakMap();
21
24
  const { onProxyReq, onProxyRes } = (0, lodash_1.pick)(options, 'onProxyReq', 'onProxyRes');
@@ -41,9 +44,6 @@ let ProxyPrometheusMiddleware = class ProxyPrometheusMiddleware {
41
44
  return onProxyRes === null || onProxyRes === void 0 ? void 0 : onProxyRes(proxyRes, req, res);
42
45
  } }));
43
46
  }
44
- static create(options) {
45
- return new this(options).handler;
46
- }
47
47
  };
48
48
  __decorate([
49
49
  (0, prometheus_1.counter)({
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-middleware.js","sourceRoot":"","sources":["../../../src/middlewares/proxy-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mCAAoC;AAEpC,iEAA8D;AAE9D,2CAA4C;AAC5C,oDAA6E;AAC7E,0CAAsC;AAGtC,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAwBpC,YAAoB,OAAiB;QAN7B,SAAI,GAAG,IAAI,OAAO,EAAmC,CAAC;QAO5D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,aAAI,EAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAA,6CAAqB,kCAC/B,IAAA,aAAI,EAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,KAC5C,UAAU,EAAE,CACV,QAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,OAAgC,EAChC,EAAE;gBACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1C,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC,EACD,UAAU,EAAE,CAAC,QAA8B,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO;qBACT,MAAM,CAAC;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,OAAO;oBAChB,MAAM,EAAE,GAAG,CAAC,UAAU;iBACvB,CAAC;qBACD,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS;qBACX,MAAM,CAAC;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,OAAO;oBAChB,MAAM,EAAE,GAAG,CAAC,UAAU;iBACvB,CAAC;qBACD,OAAO,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzB,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC,IACD,CAAC;IACL,CAAC;IApCM,MAAM,CAAC,MAAM,CAAC,OAAiB;QACpC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACnC,CAAC;CAmCF,CAAA;AAnDC;IALC,IAAA,oBAAO,EAAC;QACP,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxC,CAAC;;0DACuB;AAQzB;IANC,IAAA,sBAAS,EAAC;QACT,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,2CAA2C;QACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KACvE,CAAC;;4DAC2B;AAdlB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;;GACA,yBAAyB,CAyDrC;AAzDY,8DAAyB"}
1
+ {"version":3,"file":"proxy-middleware.js","sourceRoot":"","sources":["../../../src/middlewares/proxy-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,mCAAoC;AAEpC,iEAA8D;AAE9D,2CAA4C;AAC5C,oDAA6E;AAC7E,0CAAsC;AAEtC,IACa,yBAAyB,GADtC,MACa,yBAAyB;IAoB7B,MAAM,CAAC,MAAM,CAAC,OAAiB;QACpC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,YAAoB,OAAiB;QAN7B,SAAI,GAAG,IAAI,OAAO,EAAmC,CAAC;QAO5D,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAA,aAAI,EAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAA,6CAAqB,kCAC/B,IAAA,aAAI,EAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,KAC5C,UAAU,EAAE,CACV,QAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,OAAgC,EAChC,EAAE;gBACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1C,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC,EACD,UAAU,EAAE,CAAC,QAA8B,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;gBAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,OAAO;qBACT,MAAM,CAAC;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,OAAO;oBAChB,MAAM,EAAE,GAAG,CAAC,UAAU;iBACvB,CAAC;qBACD,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,SAAS;qBACX,MAAM,CAAC;oBACN,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,OAAO;oBAChB,MAAM,EAAE,GAAG,CAAC,UAAU;iBACvB,CAAC;qBACD,OAAO,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzB,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC,IACD,CAAC;IACL,CAAC;CACF,CAAA;AAnDS;IALP,IAAA,oBAAO,EAAC;QACP,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxC,CAAC;;0DACuB;AAQjB;IANP,IAAA,sBAAS,EAAC;QACT,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,2CAA2C;QACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;QACvC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KACvE,CAAC;;4DAC2B;AAdlB,yBAAyB;IADrC,IAAA,mBAAU,GAAE;;GACA,yBAAyB,CAyDrC;AAzDY,8DAAyB"}
@@ -13,6 +13,7 @@ exports.RequestCountMiddleware = void 0;
13
13
  const onHeaders = require("on-headers");
14
14
  const common_1 = require("@nestjs/common");
15
15
  const prometheus_1 = require("@biorate/prometheus");
16
+ const inversion_1 = require("@biorate/inversion");
16
17
  const interceptors_1 = require("../interceptors");
17
18
  let RequestCountMiddleware = class RequestCountMiddleware {
18
19
  use(req, res, next) {
@@ -22,7 +23,9 @@ let RequestCountMiddleware = class RequestCountMiddleware {
22
23
  this.counter
23
24
  .labels({
24
25
  method: req.method,
25
- url: (_a = route === null || route === void 0 ? void 0 : route.path) !== null && _a !== void 0 ? _a : (req.baseUrl || req.originalUrl),
26
+ url: ((_a = route === null || route === void 0 ? void 0 : route.path) !== null && _a !== void 0 ? _a : this.config.get('app.middleware.RequestCountMiddleware.log-base-url', false))
27
+ ? '/'
28
+ : req.baseUrl || req.originalUrl,
26
29
  status: res.statusCode,
27
30
  })
28
31
  .inc();
@@ -30,6 +33,10 @@ let RequestCountMiddleware = class RequestCountMiddleware {
30
33
  next();
31
34
  }
32
35
  };
36
+ __decorate([
37
+ (0, inversion_1.inject)(inversion_1.Types.Config),
38
+ __metadata("design:type", Object)
39
+ ], RequestCountMiddleware.prototype, "config", void 0);
33
40
  __decorate([
34
41
  (0, prometheus_1.counter)({
35
42
  name: 'http_server_requests_seconds_count',
@@ -1 +1 @@
1
- {"version":3,"file":"request-count-middleware.js","sourceRoot":"","sources":["../../../src/middlewares/request-count-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAAwC;AACxC,2CAA4D;AAC5D,oDAAuD;AAEvD,kDAAoD;AAGpD,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAQ1B,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACxD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;;YAClB,MAAM,KAAK,GAAG,gCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO;iBACT,MAAM,CAAC;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC;gBACpD,MAAM,EAAE,GAAG,CAAC,UAAU;aACvB,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QACH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AAfC;IALC,IAAA,oBAAO,EAAC;QACP,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,4BAA4B;QAClC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxC,CAAC;;uDACuB;AANd,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CAqBlC;AArBY,wDAAsB"}
1
+ {"version":3,"file":"request-count-middleware.js","sourceRoot":"","sources":["../../../src/middlewares/request-count-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,wCAAwC;AACxC,2CAA4D;AAC5D,oDAAuD;AACvD,kDAAmD;AAGnD,kDAAoD;AAGpD,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAU1B,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACxD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;;YAClB,MAAM,KAAK,GAAG,gCAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO;iBACT,MAAM,CAAC;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EACD,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,mCACX,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,oDAAoD,EACpD,KAAK,CACN;oBACC,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW;gBACpC,MAAM,EAAE,GAAG,CAAC,UAAU;aACvB,CAAC;iBACD,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QACH,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AA7B+B;IAA7B,IAAA,kBAAM,EAAC,iBAAK,CAAC,MAAM,CAAC;;sDAAyB;AAOtC;IALP,IAAA,oBAAO,EAAC;QACP,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,4BAA4B;QAClC,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxC,CAAC;;uDACuB;AARd,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CA8BlC;AA9BY,wDAAsB"}