@adaptivestone/framework 4.8.0 → 4.8.1

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 (74) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/commands/migration/Create.js +4 -3
  3. package/coverage/clover.xml +2820 -2789
  4. package/coverage/coverage-final.json +43 -43
  5. package/coverage/framework/config/auth.js.html +6 -6
  6. package/coverage/framework/config/http.js.html +10 -10
  7. package/coverage/framework/config/i18n.js.html +13 -13
  8. package/coverage/framework/config/index.html +1 -1
  9. package/coverage/framework/config/log.js.html +23 -23
  10. package/coverage/framework/config/mail.js.html +30 -30
  11. package/coverage/framework/config/mongo.js.html +4 -4
  12. package/coverage/framework/config/rateLimiter.js.html +17 -17
  13. package/coverage/framework/config/redis.js.html +5 -5
  14. package/coverage/framework/config/validate.js.html +4 -4
  15. package/coverage/framework/controllers/Auth.js.html +90 -90
  16. package/coverage/framework/controllers/Home.js.html +39 -39
  17. package/coverage/framework/controllers/index.html +17 -17
  18. package/coverage/framework/controllers/index.js.html +54 -54
  19. package/coverage/framework/controllers/test/SomeController.js.html +106 -106
  20. package/coverage/framework/controllers/test/index.html +19 -19
  21. package/coverage/framework/helpers/files.js.html +66 -66
  22. package/coverage/framework/helpers/index.html +1 -1
  23. package/coverage/framework/helpers/logger.js.html +14 -14
  24. package/coverage/framework/helpers/redis/clearNamespace.js.html +28 -28
  25. package/coverage/framework/helpers/redis/index.html +17 -17
  26. package/coverage/framework/index.html +19 -19
  27. package/coverage/framework/models/Migration.js.html +16 -16
  28. package/coverage/framework/models/Sequence.js.html +39 -39
  29. package/coverage/framework/models/User.js.html +192 -192
  30. package/coverage/framework/models/index.html +28 -28
  31. package/coverage/framework/modules/AbstractController.js.html +478 -478
  32. package/coverage/framework/modules/AbstractModel.js.html +54 -54
  33. package/coverage/framework/modules/Base.js.html +52 -52
  34. package/coverage/framework/modules/index.html +21 -21
  35. package/coverage/framework/server.js.html +478 -385
  36. package/coverage/framework/services/cache/Cache.js.html +216 -216
  37. package/coverage/framework/services/cache/index.html +20 -20
  38. package/coverage/framework/services/documentation/DocumentationGenerator.js.html +17 -17
  39. package/coverage/framework/services/documentation/index.html +1 -1
  40. package/coverage/framework/services/http/HttpServer.js.html +90 -90
  41. package/coverage/framework/services/http/index.html +1 -1
  42. package/coverage/framework/services/http/middleware/AbstractMiddleware.js.html +60 -60
  43. package/coverage/framework/services/http/middleware/Auth.js.html +16 -16
  44. package/coverage/framework/services/http/middleware/GetUserByToken.js.html +60 -60
  45. package/coverage/framework/services/http/middleware/I18n.js.html +129 -129
  46. package/coverage/framework/services/http/middleware/Pagination.js.html +95 -95
  47. package/coverage/framework/services/http/middleware/PrepareAppInfo.js.html +27 -27
  48. package/coverage/framework/services/http/middleware/RateLimiter.js.html +166 -166
  49. package/coverage/framework/services/http/middleware/RequestLogger.js.html +21 -21
  50. package/coverage/framework/services/http/middleware/RequestParser.js.html +47 -47
  51. package/coverage/framework/services/http/middleware/Role.js.html +55 -55
  52. package/coverage/framework/services/http/middleware/index.html +99 -99
  53. package/coverage/framework/services/http/middleware/test/CheckFlag.js.html +36 -36
  54. package/coverage/framework/services/http/middleware/test/index.html +19 -19
  55. package/coverage/framework/services/messaging/email/index.html +1 -1
  56. package/coverage/framework/services/messaging/email/index.js.html +67 -67
  57. package/coverage/framework/services/messaging/index.html +1 -1
  58. package/coverage/framework/services/messaging/index.js.html +6 -6
  59. package/coverage/framework/services/validate/ValidateService.js.html +202 -202
  60. package/coverage/framework/services/validate/drivers/AbstractValidator.js.html +24 -24
  61. package/coverage/framework/services/validate/drivers/CustomValidator.js.html +14 -14
  62. package/coverage/framework/services/validate/drivers/YupValidator.js.html +55 -55
  63. package/coverage/framework/services/validate/drivers/index.html +1 -1
  64. package/coverage/framework/services/validate/index.html +21 -21
  65. package/coverage/index.html +110 -110
  66. package/models/User.test.js +3 -3
  67. package/package.json +2 -1
  68. package/server.d.ts +9 -1
  69. package/server.js +50 -19
  70. package/services/http/middleware/I18n.test.js +1 -1
  71. package/services/http/middleware/RateLimiter.test.js +7 -7
  72. package/services/validate/ValidateService.test.js +3 -3
  73. package/tests/setup.js +3 -1
  74. package/tests/setupVitest.js +3 -5
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.73% </span>
26
+ <span class="strong">86.84% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>36/38</span>
28
+ <span class='fraction'>33/38</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/6</span>
35
+ <span class='fraction'>2/3</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/4</span>
42
+ <span class='fraction'>1/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.73% </span>
47
+ <span class="strong">86.84% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>36/38</span>
49
+ <span class='fraction'>33/38</span>
50
50
  </div>
51
51
 
52
52
 
@@ -101,67 +101,67 @@
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
102
  <a name='L37'></a><a href='#L37'>37</a>
103
103
  <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
105
- <span class="cline-any cline-no">&nbsp;</span>
106
- <span class="cline-any cline-yes">15x</span>
107
- <span class="cline-any cline-yes">54x</span>
108
- <span class="cline-any cline-yes">54x</span>
109
- <span class="cline-any cline-yes">54x</span>
110
- <span class="cline-any cline-yes">1x</span>
111
- <span class="cline-any cline-yes">1x</span>
112
- <span class="cline-any cline-yes">54x</span>
113
- <span class="cline-any cline-yes">54x</span>
104
+ <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
114
105
  <span class="cline-any cline-yes">2x</span>
115
106
  <span class="cline-any cline-yes">2x</span>
116
107
  <span class="cline-any cline-yes">2x</span>
117
108
  <span class="cline-any cline-yes">2x</span>
118
109
  <span class="cline-any cline-yes">2x</span>
110
+ <span class="cline-any cline-no">&nbsp;</span>
111
+ <span class="cline-any cline-no">&nbsp;</span>
119
112
  <span class="cline-any cline-yes">2x</span>
120
113
  <span class="cline-any cline-yes">2x</span>
114
+ <span class="cline-any cline-yes">30x</span>
115
+ <span class="cline-any cline-yes">30x</span>
116
+ <span class="cline-any cline-yes">30x</span>
117
+ <span class="cline-any cline-yes">30x</span>
118
+ <span class="cline-any cline-yes">30x</span>
119
+ <span class="cline-any cline-yes">30x</span>
120
+ <span class="cline-any cline-yes">30x</span>
121
+ <span class="cline-any cline-yes">30x</span>
122
+ <span class="cline-any cline-yes">30x</span>
123
+ <span class="cline-any cline-yes">30x</span>
124
+ <span class="cline-any cline-no">&nbsp;</span>
125
+ <span class="cline-any cline-no">&nbsp;</span>
126
+ <span class="cline-any cline-no">&nbsp;</span>
127
+ <span class="cline-any cline-yes">30x</span>
128
+ <span class="cline-any cline-yes">30x</span>
129
+ <span class="cline-any cline-yes">30x</span>
130
+ <span class="cline-any cline-yes">30x</span>
131
+ <span class="cline-any cline-yes">30x</span>
132
+ <span class="cline-any cline-yes">30x</span>
133
+ <span class="cline-any cline-yes">30x</span>
134
+ <span class="cline-any cline-yes">30x</span>
135
+ <span class="cline-any cline-yes">30x</span>
136
+ <span class="cline-any cline-yes">30x</span>
137
+ <span class="cline-any cline-yes">30x</span>
138
+ <span class="cline-any cline-yes">30x</span>
121
139
  <span class="cline-any cline-yes">2x</span>
122
140
  <span class="cline-any cline-yes">2x</span>
123
- <span class="cline-any cline-yes">1x</span>
124
- <span class="cline-any cline-yes">1x</span>
125
- <span class="cline-any cline-yes">1x</span>
126
- <span class="cline-any cline-yes">1x</span>
127
- <span class="cline-any cline-yes">1x</span>
128
- <span class="cline-any cline-yes">1x</span>
129
- <span class="cline-any cline-yes">1x</span>
130
- <span class="cline-any cline-yes">1x</span>
131
- <span class="cline-any cline-yes">1x</span>
132
- <span class="cline-any cline-yes">1x</span>
133
- <span class="cline-any cline-yes">1x</span>
134
- <span class="cline-any cline-yes">1x</span>
135
- <span class="cline-any cline-yes">1x</span>
136
- <span class="cline-any cline-yes">1x</span>
137
- <span class="cline-any cline-yes">1x</span>
138
141
  <span class="cline-any cline-yes">2x</span>
139
- <span class="cline-any cline-yes">1x</span>
140
- <span class="cline-any cline-yes">1x</span>
141
- <span class="cline-any cline-yes">1x</span>
142
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >const formidable = require('formidable').default;</span></span>
143
- <span class="cstat-no" title="statement not covered" ></span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const formidable = require('formidable').default;
143
+ &nbsp;
144
144
  const AbstractMiddleware = require('./AbstractMiddleware');
145
145
  &nbsp;
146
146
  class RequestParser extends AbstractMiddleware {
147
- static get description() {
148
- return 'Parses incoming request. Based on Formidable library';
149
- }
147
+ static <span class="fstat-no" title="function not covered" >get description() {</span>
148
+ <span class="cstat-no" title="statement not covered" > return 'Parses incoming request. Based on Formidable library';</span>
149
+ <span class="cstat-no" title="statement not covered" > }</span>
150
150
  &nbsp;
151
151
  async middleware(req, res, next) {
152
152
  const time = Date.now();
153
153
  this.logger.verbose(`Parsing request`);
154
154
  // TODO update this to https://github.com/node-formidable/formidable/issues/412#issuecomment-1367914268 in node v20 (in 2023?)
155
155
  &nbsp;
156
- const <span class="branch-0 cbranch-no" title="branch not covered" >form = formidable(this.params); // not in construstor as reuse formidable affects performance</span>
156
+ const form = formidable(this.params); // not in construstor as reuse formidable affects performance
157
157
  let fields;
158
158
  let files;
159
159
  try {
160
160
  [fields, files] = await form.parse(req);
161
- } catch (err) {
162
- this.logger.error(`Parsing failed ${err}`);
163
- return next(err);
164
- }
161
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (err) {</span>
162
+ <span class="cstat-no" title="statement not covered" > this.logger.error(`Parsing failed ${err}`);</span>
163
+ <span class="cstat-no" title="statement not covered" > return next(err);</span>
164
+ <span class="cstat-no" title="statement not covered" > }</span>
165
165
  this.logger.verbose(
166
166
  `Parsing multipart/formdata request DONE ${Date.now() - time}ms`,
167
167
  );
@@ -184,7 +184,7 @@ module.exports = RequestParser;
184
184
  <div class='footer quiet pad2 space-top1 center small'>
185
185
  Code coverage generated by
186
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at 2023-09-21T04:47:08.309Z
187
+ at 2023-09-21T12:04:18.148Z
188
188
  </div>
189
189
  <script src="../../../../prettify.js"></script>
190
190
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.1% </span>
26
+ <span class="strong">31.03% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>27/29</span>
28
+ <span class='fraction'>9/29</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76.92% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/13</span>
35
+ <span class='fraction'>1/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">75% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/4</span>
42
+ <span class='fraction'>0/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.1% </span>
47
+ <span class="strong">31.03% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/29</span>
49
+ <span class='fraction'>9/29</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -92,61 +92,61 @@
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
96
- <span class="cline-any cline-no">&nbsp;</span>
97
- <span class="cline-any cline-yes">15x</span>
95
+ <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
98
96
  <span class="cline-any cline-yes">2x</span>
99
- <span class="cline-any cline-yes">1x</span>
100
- <span class="cline-any cline-yes">1x</span>
101
97
  <span class="cline-any cline-yes">2x</span>
102
98
  <span class="cline-any cline-yes">2x</span>
103
- <span class="cline-any cline-yes">3x</span>
104
- <span class="cline-any cline-yes">3x</span>
105
- <span class="cline-any cline-yes">3x</span>
106
- <span class="cline-any cline-yes">1x</span>
107
- <span class="cline-any cline-yes">1x</span>
99
+ <span class="cline-any cline-no">&nbsp;</span>
100
+ <span class="cline-any cline-no">&nbsp;</span>
108
101
  <span class="cline-any cline-yes">2x</span>
109
102
  <span class="cline-any cline-yes">2x</span>
103
+ <span class="cline-any cline-no">&nbsp;</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-no">&nbsp;</span>
106
+ <span class="cline-any cline-no">&nbsp;</span>
107
+ <span class="cline-any cline-no">&nbsp;</span>
108
+ <span class="cline-any cline-no">&nbsp;</span>
109
+ <span class="cline-any cline-no">&nbsp;</span>
110
+ <span class="cline-any cline-no">&nbsp;</span>
111
+ <span class="cline-any cline-no">&nbsp;</span>
112
+ <span class="cline-any cline-no">&nbsp;</span>
113
+ <span class="cline-any cline-no">&nbsp;</span>
114
+ <span class="cline-any cline-no">&nbsp;</span>
115
+ <span class="cline-any cline-no">&nbsp;</span>
116
+ <span class="cline-any cline-no">&nbsp;</span>
117
+ <span class="cline-any cline-no">&nbsp;</span>
118
+ <span class="cline-any cline-no">&nbsp;</span>
119
+ <span class="cline-any cline-no">&nbsp;</span>
120
+ <span class="cline-any cline-no">&nbsp;</span>
110
121
  <span class="cline-any cline-yes">2x</span>
111
- <span class="cline-any cline-yes">4x</span>
112
- <span class="cline-any cline-yes">1x</span>
113
- <span class="cline-any cline-yes">1x</span>
114
122
  <span class="cline-any cline-yes">2x</span>
115
123
  <span class="cline-any cline-yes">2x</span>
116
- <span class="cline-any cline-yes">3x</span>
117
- <span class="cline-any cline-yes">1x</span>
118
- <span class="cline-any cline-yes">1x</span>
119
- <span class="cline-any cline-yes">1x</span>
120
- <span class="cline-any cline-yes">3x</span>
121
- <span class="cline-any cline-yes">1x</span>
122
- <span class="cline-any cline-yes">1x</span>
123
- <span class="cline-any cline-yes">1x</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >const AbstractMiddleware = require('./AbstractMiddleware');</span></span>
125
- <span class="cstat-no" title="statement not covered" ></span>
126
- class RoleMiddleware extends AbstractMiddleware {
127
- static get description() {
128
- return 'Check user role (user.roles property). If <span class="branch-0 cbranch-no" title="branch not covered" >the user has no role then stop request and return </span>error. OR logic (any role will pass user)';
129
- }
130
- &nbsp;
131
- async middleware(req, res, next) {
132
- const { <span class="branch-0 cbranch-no" title="branch not covered" >user } = req.appInfo;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const AbstractMiddleware = require('./AbstractMiddleware');
133
125
  &nbsp;
134
- if (!user) {
135
- return res.status(401).send();
136
- }
137
- &nbsp;
138
- let hasRole = false;
139
- user.roles.forEach((role) =&gt; {
140
- <span class="branch-0 cbranch-no" title="branch not covered" > if (this.params.roles.</span>includes(role)) {
141
- hasRole = true;
142
- }
143
- });
126
+ class RoleMiddleware extends AbstractMiddleware {
127
+ static <span class="fstat-no" title="function not covered" >get description() {</span>
128
+ <span class="cstat-no" title="statement not covered" > return 'Check user role (user.roles property). If the user has no role then stop request and return error. OR logic (any role will pass user)';</span>
129
+ <span class="cstat-no" title="statement not covered" > }</span>
144
130
  &nbsp;
145
- if (!hasRole) {
146
- return res.status(403).json({ message: 'You do not have access' });
147
- }
148
- return next();
149
- }
131
+ <span class="fstat-no" title="function not covered" > async middleware(req, res, next) {</span>
132
+ <span class="cstat-no" title="statement not covered" > const { user } = req.appInfo;</span>
133
+ <span class="cstat-no" title="statement not covered" ></span>
134
+ <span class="cstat-no" title="statement not covered" > if (!user) {</span>
135
+ <span class="cstat-no" title="statement not covered" > return res.status(401).send();</span>
136
+ <span class="cstat-no" title="statement not covered" > }</span>
137
+ <span class="cstat-no" title="statement not covered" ></span>
138
+ <span class="cstat-no" title="statement not covered" > let hasRole = false;</span>
139
+ <span class="cstat-no" title="statement not covered" > user.roles.forEach((role) =&gt; {</span>
140
+ <span class="cstat-no" title="statement not covered" > if (this.params.roles.includes(role)) {</span>
141
+ <span class="cstat-no" title="statement not covered" > hasRole = true;</span>
142
+ <span class="cstat-no" title="statement not covered" > }</span>
143
+ <span class="cstat-no" title="statement not covered" > });</span>
144
+ <span class="cstat-no" title="statement not covered" ></span>
145
+ <span class="cstat-no" title="statement not covered" > if (!hasRole) {</span>
146
+ <span class="cstat-no" title="statement not covered" > return res.status(403).json({ message: 'You do not have access' });</span>
147
+ <span class="cstat-no" title="statement not covered" > }</span>
148
+ <span class="cstat-no" title="statement not covered" > return next();</span>
149
+ <span class="cstat-no" title="statement not covered" > }</span>
150
150
  }
151
151
  &nbsp;
152
152
  module.exports = RoleMiddleware;
@@ -157,7 +157,7 @@ module.exports = RoleMiddleware;
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
160
- at 2023-09-21T04:47:08.309Z
160
+ at 2023-09-21T12:04:18.148Z
161
161
  </div>
162
162
  <script src="../../../../prettify.js"></script>
163
163
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">88.82% </span>
26
+ <span class="strong">68.93% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>469/528</span>
28
+ <span class='fraction'>364/528</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.57% </span>
33
+ <span class="strong">72.72% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>109/132</span>
35
+ <span class='fraction'>40/55</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">77.77% </span>
40
+ <span class="strong">54.76% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>49/63</span>
42
+ <span class='fraction'>23/42</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.82% </span>
47
+ <span class="strong">68.93% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>469/528</span>
49
+ <span class='fraction'>364/528</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <div class="pad1">
66
66
  <table class="coverage-summary">
67
67
  <thead>
@@ -79,108 +79,108 @@
79
79
  </tr>
80
80
  </thead>
81
81
  <tbody><tr>
82
- <td class="file high" data-value="AbstractMiddleware.js"><a href="AbstractMiddleware.js.html">AbstractMiddleware.js</a></td>
83
- <td data-value="86.27" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
82
+ <td class="file medium" data-value="AbstractMiddleware.js"><a href="AbstractMiddleware.js.html">AbstractMiddleware.js</a></td>
83
+ <td data-value="70.58" class="pic medium">
84
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
85
85
  </td>
86
- <td data-value="86.27" class="pct high">86.27%</td>
87
- <td data-value="51" class="abs high">44/51</td>
86
+ <td data-value="70.58" class="pct medium">70.58%</td>
87
+ <td data-value="51" class="abs medium">36/51</td>
88
88
  <td data-value="100" class="pct high">100%</td>
89
- <td data-value="7" class="abs high">7/7</td>
90
- <td data-value="66.66" class="pct medium">66.66%</td>
91
- <td data-value="9" class="abs medium">6/9</td>
92
- <td data-value="86.27" class="pct high">86.27%</td>
93
- <td data-value="51" class="abs high">44/51</td>
89
+ <td data-value="5" class="abs high">5/5</td>
90
+ <td data-value="44.44" class="pct low">44.44%</td>
91
+ <td data-value="9" class="abs low">4/9</td>
92
+ <td data-value="70.58" class="pct medium">70.58%</td>
93
+ <td data-value="51" class="abs medium">36/51</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
- <td class="file high" data-value="Auth.js"><a href="Auth.js.html">Auth.js</a></td>
98
- <td data-value="90" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
97
+ <td class="file medium" data-value="Auth.js"><a href="Auth.js.html">Auth.js</a></td>
98
+ <td data-value="75" class="pic medium">
99
+ <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
100
100
  </td>
101
- <td data-value="90" class="pct high">90%</td>
102
- <td data-value="20" class="abs high">18/20</td>
101
+ <td data-value="75" class="pct medium">75%</td>
102
+ <td data-value="20" class="abs medium">15/20</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
- <td data-value="6" class="abs high">6/6</td>
104
+ <td data-value="4" class="abs high">4/4</td>
105
+ <td data-value="50" class="pct medium">50%</td>
106
+ <td data-value="4" class="abs medium">2/4</td>
105
107
  <td data-value="75" class="pct medium">75%</td>
106
- <td data-value="4" class="abs medium">3/4</td>
107
- <td data-value="90" class="pct high">90%</td>
108
- <td data-value="20" class="abs high">18/20</td>
108
+ <td data-value="20" class="abs medium">15/20</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
112
- <td class="file high" data-value="GetUserByToken.js"><a href="GetUserByToken.js.html">GetUserByToken.js</a></td>
113
- <td data-value="95.65" class="pic high">
114
- <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
112
+ <td class="file medium" data-value="GetUserByToken.js"><a href="GetUserByToken.js.html">GetUserByToken.js</a></td>
113
+ <td data-value="76.08" class="pic medium">
114
+ <div class="chart"><div class="cover-fill" style="width: 76%"></div><div class="cover-empty" style="width: 24%"></div></div>
115
115
  </td>
116
- <td data-value="95.65" class="pct high">95.65%</td>
117
- <td data-value="46" class="abs high">44/46</td>
118
- <td data-value="100" class="pct high">100%</td>
119
- <td data-value="8" class="abs high">8/8</td>
116
+ <td data-value="76.08" class="pct medium">76.08%</td>
117
+ <td data-value="46" class="abs medium">35/46</td>
118
+ <td data-value="50" class="pct medium">50%</td>
119
+ <td data-value="6" class="abs medium">3/6</td>
120
120
  <td data-value="66.66" class="pct medium">66.66%</td>
121
121
  <td data-value="3" class="abs medium">2/3</td>
122
- <td data-value="95.65" class="pct high">95.65%</td>
123
- <td data-value="46" class="abs high">44/46</td>
122
+ <td data-value="76.08" class="pct medium">76.08%</td>
123
+ <td data-value="46" class="abs medium">35/46</td>
124
124
  </tr>
125
125
 
126
126
  <tr>
127
127
  <td class="file high" data-value="I18n.js"><a href="I18n.js.html">I18n.js</a></td>
128
- <td data-value="98.31" class="pic high">
129
- <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
128
+ <td data-value="89.91" class="pic high">
129
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
130
130
  </td>
131
- <td data-value="98.31" class="pct high">98.31%</td>
132
- <td data-value="119" class="abs high">117/119</td>
133
- <td data-value="86.84" class="pct high">86.84%</td>
134
- <td data-value="38" class="abs high">33/38</td>
135
- <td data-value="90" class="pct high">90%</td>
136
- <td data-value="20" class="abs high">18/20</td>
137
- <td data-value="98.31" class="pct high">98.31%</td>
138
- <td data-value="119" class="abs high">117/119</td>
131
+ <td data-value="89.91" class="pct high">89.91%</td>
132
+ <td data-value="119" class="abs high">107/119</td>
133
+ <td data-value="68.75" class="pct medium">68.75%</td>
134
+ <td data-value="16" class="abs medium">11/16</td>
135
+ <td data-value="80" class="pct high">80%</td>
136
+ <td data-value="10" class="abs high">8/10</td>
137
+ <td data-value="89.91" class="pct high">89.91%</td>
138
+ <td data-value="119" class="abs high">107/119</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
142
- <td class="file high" data-value="Pagination.js"><a href="Pagination.js.html">Pagination.js</a></td>
143
- <td data-value="85.71" class="pic high">
144
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
142
+ <td class="file low" data-value="Pagination.js"><a href="Pagination.js.html">Pagination.js</a></td>
143
+ <td data-value="35.71" class="pic low">
144
+ <div class="chart"><div class="cover-fill" style="width: 35%"></div><div class="cover-empty" style="width: 65%"></div></div>
145
145
  </td>
146
- <td data-value="85.71" class="pct high">85.71%</td>
147
- <td data-value="56" class="abs high">48/56</td>
148
- <td data-value="25" class="pct low">25%</td>
149
- <td data-value="12" class="abs low">3/12</td>
150
- <td data-value="66.66" class="pct medium">66.66%</td>
151
- <td data-value="3" class="abs medium">2/3</td>
152
- <td data-value="85.71" class="pct high">85.71%</td>
153
- <td data-value="56" class="abs high">48/56</td>
146
+ <td data-value="35.71" class="pct low">35.71%</td>
147
+ <td data-value="56" class="abs low">20/56</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="2" class="abs high">2/2</td>
150
+ <td data-value="33.33" class="pct low">33.33%</td>
151
+ <td data-value="3" class="abs low">1/3</td>
152
+ <td data-value="35.71" class="pct low">35.71%</td>
153
+ <td data-value="56" class="abs low">20/56</td>
154
154
  </tr>
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="PrepareAppInfo.js"><a href="PrepareAppInfo.js.html">PrepareAppInfo.js</a></td>
158
- <td data-value="100" class="pic high">
159
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
158
+ <td data-value="88.88" class="pic high">
159
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
160
160
  </td>
161
+ <td data-value="88.88" class="pct high">88.88%</td>
162
+ <td data-value="18" class="abs high">16/18</td>
161
163
  <td data-value="100" class="pct high">100%</td>
162
- <td data-value="18" class="abs high">18/18</td>
163
- <td data-value="100" class="pct high">100%</td>
164
- <td data-value="5" class="abs high">5/5</td>
165
- <td data-value="75" class="pct medium">75%</td>
166
- <td data-value="4" class="abs medium">3/4</td>
167
- <td data-value="100" class="pct high">100%</td>
168
- <td data-value="18" class="abs high">18/18</td>
164
+ <td data-value="2" class="abs high">2/2</td>
165
+ <td data-value="50" class="pct medium">50%</td>
166
+ <td data-value="2" class="abs medium">1/2</td>
167
+ <td data-value="88.88" class="pct high">88.88%</td>
168
+ <td data-value="18" class="abs high">16/18</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
172
172
  <td class="file medium" data-value="RateLimiter.js"><a href="RateLimiter.js.html">RateLimiter.js</a></td>
173
- <td data-value="75.19" class="pic medium">
174
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
173
+ <td data-value="56.58" class="pic medium">
174
+ <div class="chart"><div class="cover-fill" style="width: 56%"></div><div class="cover-empty" style="width: 44%"></div></div>
175
175
  </td>
176
- <td data-value="75.19" class="pct medium">75.19%</td>
177
- <td data-value="129" class="abs medium">97/129</td>
178
- <td data-value="85.29" class="pct high">85.29%</td>
179
- <td data-value="34" class="abs high">29/34</td>
180
- <td data-value="80" class="pct high">80%</td>
181
- <td data-value="10" class="abs high">8/10</td>
182
- <td data-value="75.19" class="pct medium">75.19%</td>
183
- <td data-value="129" class="abs medium">97/129</td>
176
+ <td data-value="56.58" class="pct medium">56.58%</td>
177
+ <td data-value="129" class="abs medium">73/129</td>
178
+ <td data-value="53.84" class="pct medium">53.84%</td>
179
+ <td data-value="13" class="abs medium">7/13</td>
180
+ <td data-value="60" class="pct medium">60%</td>
181
+ <td data-value="5" class="abs medium">3/5</td>
182
+ <td data-value="56.58" class="pct medium">56.58%</td>
183
+ <td data-value="129" class="abs medium">73/129</td>
184
184
  </tr>
185
185
 
186
186
  <tr>
@@ -200,32 +200,32 @@
200
200
 
201
201
  <tr>
202
202
  <td class="file high" data-value="RequestParser.js"><a href="RequestParser.js.html">RequestParser.js</a></td>
203
- <td data-value="94.73" class="pic high">
204
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
203
+ <td data-value="86.84" class="pic high">
204
+ <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
205
205
  </td>
206
- <td data-value="94.73" class="pct high">94.73%</td>
207
- <td data-value="38" class="abs high">36/38</td>
208
- <td data-value="83.33" class="pct high">83.33%</td>
209
- <td data-value="6" class="abs high">5/6</td>
210
- <td data-value="75" class="pct medium">75%</td>
211
- <td data-value="4" class="abs medium">3/4</td>
212
- <td data-value="94.73" class="pct high">94.73%</td>
213
- <td data-value="38" class="abs high">36/38</td>
206
+ <td data-value="86.84" class="pct high">86.84%</td>
207
+ <td data-value="38" class="abs high">33/38</td>
208
+ <td data-value="66.66" class="pct medium">66.66%</td>
209
+ <td data-value="3" class="abs medium">2/3</td>
210
+ <td data-value="50" class="pct medium">50%</td>
211
+ <td data-value="2" class="abs medium">1/2</td>
212
+ <td data-value="86.84" class="pct high">86.84%</td>
213
+ <td data-value="38" class="abs high">33/38</td>
214
214
  </tr>
215
215
 
216
216
  <tr>
217
- <td class="file high" data-value="Role.js"><a href="Role.js.html">Role.js</a></td>
218
- <td data-value="93.1" class="pic high">
219
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
217
+ <td class="file low" data-value="Role.js"><a href="Role.js.html">Role.js</a></td>
218
+ <td data-value="31.03" class="pic low">
219
+ <div class="chart"><div class="cover-fill" style="width: 31%"></div><div class="cover-empty" style="width: 69%"></div></div>
220
220
  </td>
221
- <td data-value="93.1" class="pct high">93.1%</td>
222
- <td data-value="29" class="abs high">27/29</td>
223
- <td data-value="76.92" class="pct medium">76.92%</td>
224
- <td data-value="13" class="abs medium">10/13</td>
225
- <td data-value="75" class="pct medium">75%</td>
226
- <td data-value="4" class="abs medium">3/4</td>
227
- <td data-value="93.1" class="pct high">93.1%</td>
228
- <td data-value="29" class="abs high">27/29</td>
221
+ <td data-value="31.03" class="pct low">31.03%</td>
222
+ <td data-value="29" class="abs low">9/29</td>
223
+ <td data-value="100" class="pct high">100%</td>
224
+ <td data-value="1" class="abs high">1/1</td>
225
+ <td data-value="0" class="pct low">0%</td>
226
+ <td data-value="2" class="abs low">0/2</td>
227
+ <td data-value="31.03" class="pct low">31.03%</td>
228
+ <td data-value="29" class="abs low">9/29</td>
229
229
  </tr>
230
230
 
231
231
  </tbody>
@@ -236,7 +236,7 @@
236
236
  <div class='footer quiet pad2 space-top1 center small'>
237
237
  Code coverage generated by
238
238
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
239
- at 2023-09-21T04:47:08.309Z
239
+ at 2023-09-21T12:04:18.148Z
240
240
  </div>
241
241
  <script src="../../../../prettify.js"></script>
242
242
  <script>