@adaptivestone/framework 4.6.0 → 4.8.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 (90) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/Cli.js +1 -0
  3. package/cluster.js +1 -2
  4. package/commands/GetOpenApiJson.js +1 -2
  5. package/commands/SyncIndexes.js +1 -1
  6. package/commands/migration/Migrate.js +2 -2
  7. package/controllers/Auth.js +3 -5
  8. package/controllers/index.js +0 -3
  9. package/coverage/clover.xml +2035 -1926
  10. package/coverage/coverage-final.json +43 -40
  11. package/coverage/framework/config/auth.js.html +6 -6
  12. package/coverage/framework/config/http.js.html +10 -10
  13. package/coverage/framework/config/i18n.js.html +13 -13
  14. package/coverage/framework/config/index.html +1 -1
  15. package/coverage/framework/config/log.js.html +23 -23
  16. package/coverage/framework/config/mail.js.html +30 -30
  17. package/coverage/framework/config/mongo.js.html +4 -4
  18. package/coverage/framework/config/rateLimiter.js.html +17 -17
  19. package/coverage/framework/config/redis.js.html +5 -5
  20. package/coverage/framework/config/validate.js.html +4 -4
  21. package/coverage/framework/controllers/Auth.js.html +97 -103
  22. package/coverage/framework/controllers/Home.js.html +27 -27
  23. package/coverage/framework/controllers/index.html +15 -15
  24. package/coverage/framework/controllers/index.js.html +58 -67
  25. package/coverage/framework/controllers/test/SomeController.js.html +44 -89
  26. package/coverage/framework/controllers/test/index.html +17 -17
  27. package/coverage/framework/helpers/files.js.html +310 -0
  28. package/coverage/framework/helpers/index.html +131 -0
  29. package/coverage/framework/helpers/logger.js.html +142 -0
  30. package/coverage/framework/helpers/redis/clearNamespace.js.html +10 -10
  31. package/coverage/framework/helpers/redis/index.html +1 -1
  32. package/coverage/framework/index.html +19 -19
  33. package/coverage/framework/models/Migration.js.html +130 -0
  34. package/coverage/framework/models/Sequence.js.html +11 -11
  35. package/coverage/framework/models/User.js.html +130 -130
  36. package/coverage/framework/models/index.html +20 -5
  37. package/coverage/framework/modules/AbstractController.js.html +100 -106
  38. package/coverage/framework/modules/AbstractModel.js.html +58 -58
  39. package/coverage/framework/modules/Base.js.html +70 -403
  40. package/coverage/framework/modules/index.html +24 -24
  41. package/coverage/framework/server.js.html +704 -338
  42. package/coverage/framework/services/cache/Cache.js.html +96 -81
  43. package/coverage/framework/services/cache/index.html +19 -19
  44. package/coverage/framework/services/documentation/DocumentationGenerator.js.html +39 -45
  45. package/coverage/framework/services/documentation/index.html +11 -11
  46. package/coverage/framework/services/http/HttpServer.js.html +90 -90
  47. package/coverage/framework/services/http/index.html +1 -1
  48. package/coverage/framework/services/http/middleware/AbstractMiddleware.js.html +45 -45
  49. package/coverage/framework/services/http/middleware/Auth.js.html +19 -19
  50. package/coverage/framework/services/http/middleware/GetUserByToken.js.html +36 -36
  51. package/coverage/framework/services/http/middleware/I18n.js.html +67 -67
  52. package/coverage/framework/services/http/middleware/Pagination.js.html +21 -21
  53. package/coverage/framework/services/http/middleware/PrepareAppInfo.js.html +5 -5
  54. package/coverage/framework/services/http/middleware/RateLimiter.js.html +19 -19
  55. package/coverage/framework/services/http/middleware/RequestLogger.js.html +21 -21
  56. package/coverage/framework/services/http/middleware/RequestParser.js.html +7 -7
  57. package/coverage/framework/services/http/middleware/Role.js.html +43 -43
  58. package/coverage/framework/services/http/middleware/index.html +33 -33
  59. package/coverage/framework/services/http/middleware/test/CheckFlag.js.html +9 -9
  60. package/coverage/framework/services/http/middleware/test/index.html +1 -1
  61. package/coverage/framework/services/messaging/email/index.html +1 -1
  62. package/coverage/framework/services/messaging/email/index.js.html +67 -67
  63. package/coverage/framework/services/messaging/index.html +1 -1
  64. package/coverage/framework/services/messaging/index.js.html +6 -6
  65. package/coverage/framework/services/validate/ValidateService.js.html +155 -167
  66. package/coverage/framework/services/validate/drivers/AbstractValidator.js.html +24 -24
  67. package/coverage/framework/services/validate/drivers/CustomValidator.js.html +14 -14
  68. package/coverage/framework/services/validate/drivers/YupValidator.js.html +41 -41
  69. package/coverage/framework/services/validate/drivers/index.html +1 -1
  70. package/coverage/framework/services/validate/index.html +5 -5
  71. package/coverage/index.html +91 -76
  72. package/helpers/files.js +75 -0
  73. package/helpers/logger.js +19 -0
  74. package/models/Migration.test.js +19 -0
  75. package/modules/AbstractController.js +2 -4
  76. package/modules/Base.js +8 -119
  77. package/modules/BaseCli.js +0 -4
  78. package/package.json +2 -2
  79. package/server.d.ts +14 -1
  80. package/server.js +208 -86
  81. package/services/cache/Cache.js +10 -5
  82. package/services/cache/Cache.test.js +81 -0
  83. package/services/documentation/DocumentationGenerator.js +18 -20
  84. package/services/http/middleware/Auth.test.js +57 -0
  85. package/services/http/middleware/I18n.test.js +15 -3
  86. package/services/http/middleware/PrepareAppInfo.test.js +1 -1
  87. package/services/http/middleware/Role.test.js +93 -0
  88. package/services/validate/ValidateService.js +3 -7
  89. package/tests/setup.js +1 -0
  90. package/tests/setupVitest.js +1 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.86% </span>
26
+ <span class="strong">94.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>93/115</span>
28
+ <span class='fraction'>113/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">72.22% </span>
33
+ <span class="strong">92.59% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/18</span>
35
+ <span class='fraction'>25/27</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/5</span>
42
+ <span class='fraction'>6/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.86% </span>
47
+ <span class="strong">94.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>93/115</span>
49
+ <span class='fraction'>113/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -178,11 +178,20 @@
178
178
  <a name='L113'></a><a href='#L113'>113</a>
179
179
  <a name='L114'></a><a href='#L114'>114</a>
180
180
  <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
182
- <span class="cline-any cline-yes">1x</span>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
187
+ <span class="cline-any cline-yes">15x</span>
188
+ <span class="cline-any cline-yes">15x</span>
189
+ <span class="cline-any cline-yes">15x</span>
183
190
  <span class="cline-any cline-yes">1x</span>
184
191
  <span class="cline-any cline-yes">1x</span>
185
192
  <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-yes">15x</span>
194
+ <span class="cline-any cline-yes">15x</span>
186
195
  <span class="cline-any cline-yes">1x</span>
187
196
  <span class="cline-any cline-yes">1x</span>
188
197
  <span class="cline-any cline-yes">1x</span>
@@ -207,25 +216,43 @@
207
216
  <span class="cline-any cline-yes">1x</span>
208
217
  <span class="cline-any cline-yes">1x</span>
209
218
  <span class="cline-any cline-yes">1x</span>
219
+ <span class="cline-any cline-yes">15x</span>
220
+ <span class="cline-any cline-yes">15x</span>
221
+ <span class="cline-any cline-yes">10x</span>
222
+ <span class="cline-any cline-yes">10x</span>
223
+ <span class="cline-any cline-yes">15x</span>
224
+ <span class="cline-any cline-yes">15x</span>
225
+ <span class="cline-any cline-yes">9x</span>
226
+ <span class="cline-any cline-yes">9x</span>
210
227
  <span class="cline-any cline-yes">1x</span>
211
228
  <span class="cline-any cline-yes">1x</span>
212
- <span class="cline-any cline-yes">4x</span>
213
- <span class="cline-any cline-yes">4x</span>
229
+ <span class="cline-any cline-yes">9x</span>
230
+ <span class="cline-any cline-yes">9x</span>
231
+ <span class="cline-any cline-yes">9x</span>
232
+ <span class="cline-any cline-yes">9x</span>
233
+ <span class="cline-any cline-yes">9x</span>
234
+ <span class="cline-any cline-yes">2x</span>
235
+ <span class="cline-any cline-yes">2x</span>
236
+ <span class="cline-any cline-yes">7x</span>
237
+ <span class="cline-any cline-yes">7x</span>
238
+ <span class="cline-any cline-yes">7x</span>
239
+ <span class="cline-any cline-yes">7x</span>
240
+ <span class="cline-any cline-yes">7x</span>
241
+ <span class="cline-any cline-yes">7x</span>
242
+ <span class="cline-any cline-yes">7x</span>
243
+ <span class="cline-any cline-yes">7x</span>
244
+ <span class="cline-any cline-yes">7x</span>
245
+ <span class="cline-any cline-yes">7x</span>
246
+ <span class="cline-any cline-yes">9x</span>
247
+ <span class="cline-any cline-yes">5x</span>
248
+ <span class="cline-any cline-yes">5x</span>
249
+ <span class="cline-any cline-yes">5x</span>
250
+ <span class="cline-any cline-yes">5x</span>
251
+ <span class="cline-any cline-yes">1x</span>
214
252
  <span class="cline-any cline-yes">1x</span>
215
253
  <span class="cline-any cline-yes">1x</span>
216
- <span class="cline-any cline-yes">4x</span>
217
254
  <span class="cline-any cline-yes">1x</span>
218
255
  <span class="cline-any cline-yes">1x</span>
219
- <span class="cline-any cline-yes">4x</span>
220
- <span class="cline-any cline-yes">4x</span>
221
- <span class="cline-any cline-yes">4x</span>
222
- <span class="cline-any cline-yes">4x</span>
223
- <span class="cline-any cline-yes">4x</span>
224
- <span class="cline-any cline-no">&nbsp;</span>
225
- <span class="cline-any cline-no">&nbsp;</span>
226
- <span class="cline-any cline-yes">4x</span>
227
- <span class="cline-any cline-yes">4x</span>
228
- <span class="cline-any cline-yes">4x</span>
229
256
  <span class="cline-any cline-yes">4x</span>
230
257
  <span class="cline-any cline-yes">4x</span>
231
258
  <span class="cline-any cline-yes">4x</span>
@@ -234,22 +261,7 @@
234
261
  <span class="cline-any cline-yes">4x</span>
235
262
  <span class="cline-any cline-yes">4x</span>
236
263
  <span class="cline-any cline-yes">4x</span>
237
- <span class="cline-any cline-yes">2x</span>
238
- <span class="cline-any cline-yes">2x</span>
239
- <span class="cline-any cline-yes">2x</span>
240
- <span class="cline-any cline-yes">2x</span>
241
- <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-no">&nbsp;</span>
243
- <span class="cline-any cline-no">&nbsp;</span>
244
- <span class="cline-any cline-no">&nbsp;</span>
245
- <span class="cline-any cline-no">&nbsp;</span>
246
- <span class="cline-any cline-no">&nbsp;</span>
247
- <span class="cline-any cline-no">&nbsp;</span>
248
- <span class="cline-any cline-yes">2x</span>
249
- <span class="cline-any cline-yes">2x</span>
250
- <span class="cline-any cline-yes">2x</span>
251
- <span class="cline-any cline-yes">2x</span>
252
- <span class="cline-any cline-yes">2x</span>
264
+ <span class="cline-any cline-yes">9x</span>
253
265
  <span class="cline-any cline-yes">2x</span>
254
266
  <span class="cline-any cline-yes">2x</span>
255
267
  <span class="cline-any cline-yes">2x</span>
@@ -259,13 +271,9 @@
259
271
  <span class="cline-any cline-yes">2x</span>
260
272
  <span class="cline-any cline-yes">2x</span>
261
273
  <span class="cline-any cline-yes">2x</span>
262
- <span class="cline-any cline-yes">2x</span>
263
- <span class="cline-any cline-yes">2x</span>
264
- <span class="cline-any cline-yes">2x</span>
265
- <span class="cline-any cline-yes">8x</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-yes">8x</span>
274
+ <span class="cline-any cline-yes">1x</span>
275
+ <span class="cline-any cline-yes">1x</span>
276
+ <span class="cline-any cline-yes">1x</span>
269
277
  <span class="cline-any cline-yes">2x</span>
270
278
  <span class="cline-any cline-yes">2x</span>
271
279
  <span class="cline-any cline-no">&nbsp;</span>
@@ -273,36 +281,42 @@
273
281
  <span class="cline-any cline-no">&nbsp;</span>
274
282
  <span class="cline-any cline-no">&nbsp;</span>
275
283
  <span class="cline-any cline-yes">2x</span>
276
- <span class="cline-any cline-yes">4x</span>
277
- <span class="cline-any cline-yes">4x</span>
278
- <span class="cline-any cline-yes">4x</span>
279
- <span class="cline-any cline-yes">4x</span>
280
- <span class="cline-any cline-yes">4x</span>
284
+ <span class="cline-any cline-yes">6x</span>
285
+ <span class="cline-any cline-yes">6x</span>
286
+ <span class="cline-any cline-yes">6x</span>
287
+ <span class="cline-any cline-yes">6x</span>
288
+ <span class="cline-any cline-yes">9x</span>
289
+ <span class="cline-any cline-yes">15x</span>
290
+ <span class="cline-any cline-yes">15x</span>
291
+ <span class="cline-any cline-yes">1x</span>
281
292
  <span class="cline-any cline-yes">1x</span>
282
293
  <span class="cline-any cline-yes">1x</span>
283
294
  <span class="cline-any cline-no">&nbsp;</span>
284
295
  <span class="cline-any cline-no">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-no">&nbsp;</span>
288
- <span class="cline-any cline-no">&nbsp;</span>
289
- <span class="cline-any cline-yes">1x</span>
290
- <span class="cline-any cline-yes">1x</span>
291
296
  <span class="cline-any cline-yes">1x</span>
292
297
  <span class="cline-any cline-yes">1x</span>
293
298
  <span class="cline-any cline-yes">1x</span>
299
+ <span class="cline-any cline-yes">15x</span>
300
+ <span class="cline-any cline-yes">15x</span>
294
301
  <span class="cline-any cline-yes">1x</span>
295
302
  <span class="cline-any cline-yes">1x</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const redis = require('redis');
297
- const Base = require('../../modules/Base');
303
+ <span class="cline-any cline-yes">15x</span>
304
+ <span class="cline-any cline-yes">15x</span>
305
+ <span class="cline-any cline-yes">15x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Base = require('../../modules/Base');
298
307
  &nbsp;
299
308
  class Cache extends Base {
300
309
  constructor(app) {
310
+ super(app);
311
+ this.whenReady = this.#init();
312
+ }
313
+ &nbsp;
314
+ async #init() {
301
315
  // todo for now only redis. refactor for drives support in future
302
316
  // at least memory and redis drivers should be presented
303
317
  // memory drives should works on master process level
304
318
  // we should support multiple cashe same time
305
- super(app);
319
+ const redis = await import('redis');
306
320
  const conf = this.app.getConfig('redis');
307
321
  this.redisClient = redis.createClient({
308
322
  url: conf.url,
@@ -328,6 +342,7 @@ class Cache extends Base {
328
342
  }
329
343
  &nbsp;
330
344
  async getSetValue(keyValue, onNotFound, storeTime = 60 * 5) {
345
+ await this.whenReady;
331
346
  if (!this.redisClient.isOpen) {
332
347
  await this.redisClient.connect();
333
348
  }
@@ -335,9 +350,9 @@ class Cache extends Base {
335
350
  // 5 mins default
336
351
  let resolve = null;
337
352
  let reject = null;
338
- if (this.promiseMapping.has(key)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
339
- <span class="cstat-no" title="statement not covered" > return this.promiseMapping.get(key);</span>
340
- <span class="cstat-no" title="statement not covered" > }</span>
353
+ if (this.promiseMapping.has(key)) {
354
+ return this.promiseMapping.get(key);
355
+ }
341
356
  &nbsp;
342
357
  this.promiseMapping.set(
343
358
  key,
@@ -352,20 +367,18 @@ class Cache extends Base {
352
367
  this.logger.verbose(`getSetValueFromCache not found for key ${key}`);
353
368
  try {
354
369
  result = await onNotFound();
355
- } <span class="branch-0 cbranch-no" title="branch not covered" >catch (e) {</span>
356
- <span class="cstat-no" title="statement not covered" > this.logger.error(</span>
357
- <span class="cstat-no" title="statement not covered" > `Cache onNotFound for key '${key}' error: ${e.message}`,</span>
358
- <span class="cstat-no" title="statement not covered" > );</span>
359
- <span class="cstat-no" title="statement not covered" > this.promiseMapping.delete(key);</span>
360
- <span class="cstat-no" title="statement not covered" > reject(e);</span>
361
- <span class="cstat-no" title="statement not covered" > return Promise.reject(e);</span>
362
- <span class="cstat-no" title="statement not covered" > }</span>
370
+ } catch (e) {
371
+ this.logger.error(`Cache onNotFound for key '${key}' error: ${e}`);
372
+ this.promiseMapping.delete(key);
373
+ reject(e);
374
+ return Promise.reject(e);
375
+ }
363
376
  &nbsp;
364
377
  this.redisClient.setEx(
365
378
  key,
366
379
  storeTime,
367
380
  JSON.stringify(result, (jsonkey, value) =&gt;
368
- typeof value === 'bigint' <span class="branch-0 cbranch-no" title="branch not covered" >? `${value}n` </span>: value,
381
+ typeof value === 'bigint' ? `${value}n` : value,
369
382
  ),
370
383
  );
371
384
  } else {
@@ -377,9 +390,9 @@ class Cache extends Base {
377
390
  );
378
391
  try {
379
392
  result = JSON.parse(result, (jsonkey, value) =&gt; {
380
- if (typeof value === 'string' &amp;&amp; /^\d+n$/.test(value)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
381
- <span class="cstat-no" title="statement not covered" > return BigInt(value.slice(0, value.length - 1));</span>
382
- <span class="cstat-no" title="statement not covered" > }</span>
393
+ if (typeof value === 'string' &amp;&amp; /^\d+n$/.test(value)) {
394
+ return BigInt(value.slice(0, value.length - 1));
395
+ }
383
396
  return value;
384
397
  });
385
398
  } <span class="branch-0 cbranch-no" title="branch not covered" >catch (e) {</span>
@@ -394,13 +407,15 @@ class Cache extends Base {
394
407
  return result;
395
408
  }
396
409
  &nbsp;
397
- <span class="fstat-no" title="function not covered" > async removeKey(keyValue) {</span>
398
- <span class="cstat-no" title="statement not covered" > if (!this.redisClient.isOpen) {</span>
410
+ async removeKey(keyValue) {
411
+ await this.whenReady;
412
+ &nbsp;
413
+ if (!this.redisClient.isOpen) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
399
414
  <span class="cstat-no" title="statement not covered" > await this.redisClient.connect();</span>
400
415
  <span class="cstat-no" title="statement not covered" > }</span>
401
- <span class="cstat-no" title="statement not covered" > const key = this.getKeyWithNameSpace(keyValue);</span>
402
- <span class="cstat-no" title="statement not covered" > return this.redisClient.del(key);</span>
403
- <span class="cstat-no" title="statement not covered" > }</span>
416
+ const key = this.getKeyWithNameSpace(keyValue);
417
+ return this.redisClient.del(key);
418
+ }
404
419
  &nbsp;
405
420
  static get loggerGroup() {
406
421
  return 'Cache_';
@@ -415,7 +430,7 @@ module.exports = Cache;
415
430
  <div class='footer quiet pad2 space-top1 center small'>
416
431
  Code coverage generated by
417
432
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
418
- at 2023-09-05T18:04:40.903Z
433
+ at 2023-09-21T04:47:08.309Z
419
434
  </div>
420
435
  <script src="../../../prettify.js"></script>
421
436
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">80.86% </span>
26
+ <span class="strong">94.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>93/115</span>
28
+ <span class='fraction'>113/120</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">72.22% </span>
33
+ <span class="strong">92.59% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>13/18</span>
35
+ <span class='fraction'>25/27</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">80% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/5</span>
42
+ <span class='fraction'>6/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">80.86% </span>
47
+ <span class="strong">94.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>93/115</span>
49
+ <span class='fraction'>113/120</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="Cache.js"><a href="Cache.js.html">Cache.js</a></td>
83
- <td data-value="80.86" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
83
+ <td data-value="94.16" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
85
85
  </td>
86
- <td data-value="80.86" class="pct high">80.86%</td>
87
- <td data-value="115" class="abs high">93/115</td>
88
- <td data-value="72.22" class="pct medium">72.22%</td>
89
- <td data-value="18" class="abs medium">13/18</td>
90
- <td data-value="80" class="pct high">80%</td>
91
- <td data-value="5" class="abs high">4/5</td>
92
- <td data-value="80.86" class="pct high">80.86%</td>
93
- <td data-value="115" class="abs high">93/115</td>
86
+ <td data-value="94.16" class="pct high">94.16%</td>
87
+ <td data-value="120" class="abs high">113/120</td>
88
+ <td data-value="92.59" class="pct high">92.59%</td>
89
+ <td data-value="27" class="abs high">25/27</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="6" class="abs high">6/6</td>
92
+ <td data-value="94.16" class="pct high">94.16%</td>
93
+ <td data-value="120" class="abs high">113/120</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-09-05T18:04:40.903Z
104
+ at 2023-09-21T04:47:08.309Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">8.18% </span>
26
+ <span class="strong">9.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>14/171</span>
28
+ <span class='fraction'>16/169</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">8.18% </span>
47
+ <span class="strong">9.46% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>14/171</span>
49
+ <span class='fraction'>16/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -232,13 +232,12 @@
232
232
  <a name='L167'></a><a href='#L167'>167</a>
233
233
  <a name='L168'></a><a href='#L168'>168</a>
234
234
  <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">11x</span>
238
- <span class="cline-any cline-yes">11x</span>
239
- <span class="cline-any cline-yes">11x</span>
240
- <span class="cline-any cline-yes">11x</span>
241
- <span class="cline-any cline-yes">11x</span>
235
+ <a name='L170'></a><a href='#L170'>170</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
236
+ <span class="cline-any cline-yes">15x</span>
237
+ <span class="cline-any cline-yes">15x</span>
238
+ <span class="cline-any cline-yes">15x</span>
239
+ <span class="cline-any cline-yes">15x</span>
240
+ <span class="cline-any cline-yes">15x</span>
242
241
  <span class="cline-any cline-no">&nbsp;</span>
243
242
  <span class="cline-any cline-no">&nbsp;</span>
244
243
  <span class="cline-any cline-no">&nbsp;</span>
@@ -271,8 +270,9 @@
271
270
  <span class="cline-any cline-no">&nbsp;</span>
272
271
  <span class="cline-any cline-no">&nbsp;</span>
273
272
  <span class="cline-any cline-no">&nbsp;</span>
274
- <span class="cline-any cline-yes">11x</span>
275
- <span class="cline-any cline-yes">11x</span>
273
+ <span class="cline-any cline-yes">15x</span>
274
+ <span class="cline-any cline-yes">15x</span>
275
+ <span class="cline-any cline-yes">15x</span>
276
276
  <span class="cline-any cline-no">&nbsp;</span>
277
277
  <span class="cline-any cline-no">&nbsp;</span>
278
278
  <span class="cline-any cline-no">&nbsp;</span>
@@ -287,8 +287,8 @@
287
287
  <span class="cline-any cline-no">&nbsp;</span>
288
288
  <span class="cline-any cline-no">&nbsp;</span>
289
289
  <span class="cline-any cline-no">&nbsp;</span>
290
- <span class="cline-any cline-yes">11x</span>
291
- <span class="cline-any cline-yes">11x</span>
290
+ <span class="cline-any cline-yes">15x</span>
291
+ <span class="cline-any cline-yes">15x</span>
292
292
  <span class="cline-any cline-no">&nbsp;</span>
293
293
  <span class="cline-any cline-no">&nbsp;</span>
294
294
  <span class="cline-any cline-no">&nbsp;</span>
@@ -306,8 +306,8 @@
306
306
  <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-no">&nbsp;</span>
308
308
  <span class="cline-any cline-no">&nbsp;</span>
309
- <span class="cline-any cline-yes">11x</span>
310
- <span class="cline-any cline-yes">11x</span>
309
+ <span class="cline-any cline-yes">15x</span>
310
+ <span class="cline-any cline-yes">15x</span>
311
311
  <span class="cline-any cline-no">&nbsp;</span>
312
312
  <span class="cline-any cline-no">&nbsp;</span>
313
313
  <span class="cline-any cline-no">&nbsp;</span>
@@ -398,18 +398,15 @@
398
398
  <span class="cline-any cline-no">&nbsp;</span>
399
399
  <span class="cline-any cline-no">&nbsp;</span>
400
400
  <span class="cline-any cline-no">&nbsp;</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-no">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-no">&nbsp;</span>
405
- <span class="cline-any cline-yes">11x</span>
406
- <span class="cline-any cline-yes">11x</span>
407
- <span class="cline-any cline-yes">11x</span>
401
+ <span class="cline-any cline-yes">15x</span>
402
+ <span class="cline-any cline-yes">15x</span>
403
+ <span class="cline-any cline-yes">15x</span>
408
404
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Base = require('../../modules/Base');
409
405
  const ValidateService = require('../validate/ValidateService');
410
406
  &nbsp;
411
407
  class DocumentationGenerator extends Base {
412
- static <span class="fstat-no" title="function not covered" >processingFields(fieldsByRoute) {</span>
408
+ // eslint-disable-next-line class-methods-use-this
409
+ <span class="fstat-no" title="function not covered" > processingFields(fieldsByRoute) {</span>
413
410
  <span class="cstat-no" title="statement not covered" > const fields = [];</span>
414
411
  <span class="cstat-no" title="statement not covered" > if (!fieldsByRoute) {</span>
415
412
  <span class="cstat-no" title="statement not covered" > return fields;</span>
@@ -443,7 +440,8 @@ class DocumentationGenerator extends Base {
443
440
  <span class="cstat-no" title="statement not covered" > return fields;</span>
444
441
  <span class="cstat-no" title="statement not covered" > }</span>
445
442
  &nbsp;
446
- static <span class="fstat-no" title="function not covered" >selectUniqueFields(fields) {</span>
443
+ // eslint-disable-next-line class-methods-use-this
444
+ <span class="fstat-no" title="function not covered" > selectUniqueFields(fields) {</span>
447
445
  <span class="cstat-no" title="statement not covered" > return Array.from(</span>
448
446
  <span class="cstat-no" title="statement not covered" > new Map(fields.map((item) =&gt; [item.name, item])).values(),</span>
449
447
  <span class="cstat-no" title="statement not covered" > ).reduce((uniqueArray, item) =&gt; {</span>
@@ -459,7 +457,7 @@ class DocumentationGenerator extends Base {
459
457
  <span class="cstat-no" title="statement not covered" > }, []);</span>
460
458
  <span class="cstat-no" title="statement not covered" > }</span>
461
459
  &nbsp;
462
- static <span class="fstat-no" title="function not covered" >groupFieldsFromSchemas(schemas) {</span>
460
+ <span class="fstat-no" title="function not covered" > groupFieldsFromSchemas(schemas) {</span>
463
461
  <span class="cstat-no" title="statement not covered" > const result = [];</span>
464
462
  <span class="cstat-no" title="statement not covered" > schemas.forEach((schema) =&gt; {</span>
465
463
  <span class="cstat-no" title="statement not covered" > const convertedSchema = new ValidateService(this.app, schema).validator;</span>
@@ -478,7 +476,7 @@ class DocumentationGenerator extends Base {
478
476
  <span class="cstat-no" title="statement not covered" > return result;</span>
479
477
  <span class="cstat-no" title="statement not covered" > }</span>
480
478
  &nbsp;
481
- static <span class="fstat-no" title="function not covered" >convertDataToDocumentationElement(</span>
479
+ <span class="fstat-no" title="function not covered" > convertDataToDocumentationElement(</span>
482
480
  <span class="cstat-no" title="statement not covered" > controllerName,</span>
483
481
  <span class="cstat-no" title="statement not covered" > routesInfo,</span>
484
482
  <span class="cstat-no" title="statement not covered" > middlewaresInfo,</span>
@@ -487,23 +485,19 @@ class DocumentationGenerator extends Base {
487
485
  <span class="cstat-no" title="statement not covered" > return {</span>
488
486
  <span class="cstat-no" title="statement not covered" > contollerName: controllerName,</span>
489
487
  <span class="cstat-no" title="statement not covered" > routesInfo: routesInfo.map((route) =&gt; {</span>
490
- <span class="cstat-no" title="statement not covered" > const middlewareQueryParams = ValidateService.getMiddlewareParams(</span>
491
- <span class="cstat-no" title="statement not covered" > middlewaresInfo,</span>
492
- <span class="cstat-no" title="statement not covered" > routeMiddlewaresReg,</span>
493
- <span class="cstat-no" title="statement not covered" > {</span>
494
- <span class="cstat-no" title="statement not covered" > method: route.method.toLowerCase(),</span>
495
- <span class="cstat-no" title="statement not covered" > path: route.fullPath,</span>
496
- <span class="cstat-no" title="statement not covered" > },</span>
497
- <span class="cstat-no" title="statement not covered" > ).query;</span>
488
+ <span class="cstat-no" title="statement not covered" > const middlewareQueryParams = new ValidateService(</span>
489
+ <span class="cstat-no" title="statement not covered" > this.app,</span>
490
+ <span class="cstat-no" title="statement not covered" > ).getMiddlewareParams(middlewaresInfo, routeMiddlewaresReg, {</span>
491
+ <span class="cstat-no" title="statement not covered" > method: route.method.toLowerCase(),</span>
492
+ <span class="cstat-no" title="statement not covered" > path: route.fullPath,</span>
493
+ <span class="cstat-no" title="statement not covered" > }).query;</span>
498
494
  <span class="cstat-no" title="statement not covered" ></span>
499
- <span class="cstat-no" title="statement not covered" > const middlewareRequestParams = ValidateService.getMiddlewareParams(</span>
500
- <span class="cstat-no" title="statement not covered" > middlewaresInfo,</span>
501
- <span class="cstat-no" title="statement not covered" > routeMiddlewaresReg,</span>
502
- <span class="cstat-no" title="statement not covered" > {</span>
503
- <span class="cstat-no" title="statement not covered" > method: route.method.toLowerCase(),</span>
504
- <span class="cstat-no" title="statement not covered" > path: route.fullPath,</span>
505
- <span class="cstat-no" title="statement not covered" > },</span>
506
- <span class="cstat-no" title="statement not covered" > ).request;</span>
495
+ <span class="cstat-no" title="statement not covered" > const middlewareRequestParams = new ValidateService(</span>
496
+ <span class="cstat-no" title="statement not covered" > this.app,</span>
497
+ <span class="cstat-no" title="statement not covered" > ).getMiddlewareParams(middlewaresInfo, routeMiddlewaresReg, {</span>
498
+ <span class="cstat-no" title="statement not covered" > method: route.method.toLowerCase(),</span>
499
+ <span class="cstat-no" title="statement not covered" > path: route.fullPath,</span>
500
+ <span class="cstat-no" title="statement not covered" > }).request;</span>
507
501
  <span class="cstat-no" title="statement not covered" ></span>
508
502
  <span class="cstat-no" title="statement not covered" > const queryParams = this.groupFieldsFromSchemas(middlewareQueryParams);</span>
509
503
  <span class="cstat-no" title="statement not covered" ></span>
@@ -583,7 +577,7 @@ module.exports = DocumentationGenerator;
583
577
  <div class='footer quiet pad2 space-top1 center small'>
584
578
  Code coverage generated by
585
579
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
586
- at 2023-09-05T18:04:40.903Z
580
+ at 2023-09-21T04:47:08.309Z
587
581
  </div>
588
582
  <script src="../../../prettify.js"></script>
589
583
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">8.18% </span>
26
+ <span class="strong">9.46% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>14/171</span>
28
+ <span class='fraction'>16/169</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">8.18% </span>
47
+ <span class="strong">9.46% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>14/171</span>
49
+ <span class='fraction'>16/169</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,17 +80,17 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file low" data-value="DocumentationGenerator.js"><a href="DocumentationGenerator.js.html">DocumentationGenerator.js</a></td>
83
- <td data-value="8.18" class="pic low">
84
- <div class="chart"><div class="cover-fill" style="width: 8%"></div><div class="cover-empty" style="width: 92%"></div></div>
83
+ <td data-value="9.46" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
85
85
  </td>
86
- <td data-value="8.18" class="pct low">8.18%</td>
87
- <td data-value="171" class="abs low">14/171</td>
86
+ <td data-value="9.46" class="pct low">9.46%</td>
87
+ <td data-value="169" class="abs low">16/169</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
89
  <td data-value="1" class="abs high">1/1</td>
90
90
  <td data-value="0" class="pct low">0%</td>
91
91
  <td data-value="4" class="abs low">0/4</td>
92
- <td data-value="8.18" class="pct low">8.18%</td>
93
- <td data-value="171" class="abs low">14/171</td>
92
+ <td data-value="9.46" class="pct low">9.46%</td>
93
+ <td data-value="169" class="abs low">16/169</td>
94
94
  </tr>
95
95
 
96
96
  </tbody>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2023-09-05T18:04:40.903Z
104
+ at 2023-09-21T04:47:08.309Z
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>