@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">85.71% </span>
26
+ <span class="strong">35.71% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>48/56</span>
28
+ <span class='fraction'>20/56</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">25% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/12</span>
35
+ <span class='fraction'>2/2</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">33.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/3</span>
42
+ <span class='fraction'>1/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">85.71% </span>
47
+ <span class="strong">35.71% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>48/56</span>
49
+ <span class='fraction'>20/56</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>
@@ -119,62 +119,62 @@
119
119
  <a name='L54'></a><a href='#L54'>54</a>
120
120
  <a name='L55'></a><a href='#L55'>55</a>
121
121
  <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
123
- <span class="cline-any cline-yes">15x</span>
124
- <span class="cline-any cline-yes">15x</span>
125
- <span class="cline-any cline-yes">15x</span>
126
- <span class="cline-any cline-yes">15x</span>
127
- <span class="cline-any cline-yes">15x</span>
128
- <span class="cline-any cline-yes">15x</span>
129
- <span class="cline-any cline-no">&nbsp;</span>
130
- <span class="cline-any cline-no">&nbsp;</span>
131
- <span class="cline-any cline-yes">15x</span>
132
- <span class="cline-any cline-yes">15x</span>
133
- <span class="cline-any cline-yes">15x</span>
134
- <span class="cline-any cline-yes">18x</span>
135
- <span class="cline-any cline-yes">18x</span>
136
- <span class="cline-any cline-yes">18x</span>
137
- <span class="cline-any cline-yes">18x</span>
138
- <span class="cline-any cline-yes">18x</span>
139
- <span class="cline-any cline-yes">15x</span>
140
- <span class="cline-any cline-yes">15x</span>
141
- <span class="cline-any cline-yes">1x</span>
142
- <span class="cline-any cline-yes">1x</span>
143
- <span class="cline-any cline-yes">1x</span>
144
- <span class="cline-any cline-yes">1x</span>
145
- <span class="cline-any cline-yes">1x</span>
146
- <span class="cline-any cline-yes">1x</span>
147
- <span class="cline-any cline-yes">1x</span>
148
- <span class="cline-any cline-yes">1x</span>
149
- <span class="cline-any cline-yes">1x</span>
150
- <span class="cline-any cline-yes">1x</span>
151
- <span class="cline-any cline-yes">1x</span>
152
- <span class="cline-any cline-yes">1x</span>
153
- <span class="cline-any cline-yes">1x</span>
154
- <span class="cline-any cline-yes">1x</span>
155
- <span class="cline-any cline-yes">1x</span>
156
- <span class="cline-any cline-yes">1x</span>
157
- <span class="cline-any cline-yes">1x</span>
158
- <span class="cline-any cline-no">&nbsp;</span>
159
- <span class="cline-any cline-no">&nbsp;</span>
160
- <span class="cline-any cline-yes">1x</span>
161
- <span class="cline-any cline-yes">1x</span>
162
- <span class="cline-any cline-no">&nbsp;</span>
163
- <span class="cline-any cline-no">&nbsp;</span>
164
- <span class="cline-any cline-yes">1x</span>
165
- <span class="cline-any cline-yes">1x</span>
166
- <span class="cline-any cline-no">&nbsp;</span>
167
- <span class="cline-any cline-no">&nbsp;</span>
168
- <span class="cline-any cline-yes">1x</span>
169
- <span class="cline-any cline-yes">1x</span>
170
- <span class="cline-any cline-yes">1x</span>
171
- <span class="cline-any cline-yes">1x</span>
172
- <span class="cline-any cline-yes">1x</span>
173
- <span class="cline-any cline-yes">1x</span>
174
- <span class="cline-any cline-yes">1x</span>
175
- <span class="cline-any cline-yes">15x</span>
176
- <span class="cline-any cline-yes">15x</span>
177
- <span class="cline-any cline-yes">15x</span>
122
+ <a name='L57'></a><a href='#L57'>57</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
123
+ <span class="cline-any cline-yes">2x</span>
124
+ <span class="cline-any cline-yes">2x</span>
125
+ <span class="cline-any cline-yes">2x</span>
126
+ <span class="cline-any cline-yes">2x</span>
127
+ <span class="cline-any cline-yes">2x</span>
128
+ <span class="cline-any cline-yes">2x</span>
129
+ <span class="cline-any cline-no">&nbsp;</span>
130
+ <span class="cline-any cline-no">&nbsp;</span>
131
+ <span class="cline-any cline-yes">2x</span>
132
+ <span class="cline-any cline-yes">2x</span>
133
+ <span class="cline-any cline-yes">2x</span>
134
+ <span class="cline-any cline-yes">2x</span>
135
+ <span class="cline-any cline-yes">2x</span>
136
+ <span class="cline-any cline-yes">2x</span>
137
+ <span class="cline-any cline-yes">2x</span>
138
+ <span class="cline-any cline-yes">2x</span>
139
+ <span class="cline-any cline-yes">2x</span>
140
+ <span class="cline-any cline-yes">2x</span>
141
+ <span class="cline-any cline-no">&nbsp;</span>
142
+ <span class="cline-any cline-no">&nbsp;</span>
143
+ <span class="cline-any cline-no">&nbsp;</span>
144
+ <span class="cline-any cline-no">&nbsp;</span>
145
+ <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
147
+ <span class="cline-any cline-no">&nbsp;</span>
148
+ <span class="cline-any cline-no">&nbsp;</span>
149
+ <span class="cline-any cline-no">&nbsp;</span>
150
+ <span class="cline-any cline-no">&nbsp;</span>
151
+ <span class="cline-any cline-no">&nbsp;</span>
152
+ <span class="cline-any cline-no">&nbsp;</span>
153
+ <span class="cline-any cline-no">&nbsp;</span>
154
+ <span class="cline-any cline-no">&nbsp;</span>
155
+ <span class="cline-any cline-no">&nbsp;</span>
156
+ <span class="cline-any cline-no">&nbsp;</span>
157
+ <span class="cline-any cline-no">&nbsp;</span>
158
+ <span class="cline-any cline-no">&nbsp;</span>
159
+ <span class="cline-any cline-no">&nbsp;</span>
160
+ <span class="cline-any cline-no">&nbsp;</span>
161
+ <span class="cline-any cline-no">&nbsp;</span>
162
+ <span class="cline-any cline-no">&nbsp;</span>
163
+ <span class="cline-any cline-no">&nbsp;</span>
164
+ <span class="cline-any cline-no">&nbsp;</span>
165
+ <span class="cline-any cline-no">&nbsp;</span>
166
+ <span class="cline-any cline-no">&nbsp;</span>
167
+ <span class="cline-any cline-no">&nbsp;</span>
168
+ <span class="cline-any cline-no">&nbsp;</span>
169
+ <span class="cline-any cline-no">&nbsp;</span>
170
+ <span class="cline-any cline-no">&nbsp;</span>
171
+ <span class="cline-any cline-no">&nbsp;</span>
172
+ <span class="cline-any cline-no">&nbsp;</span>
173
+ <span class="cline-any cline-no">&nbsp;</span>
174
+ <span class="cline-any cline-no">&nbsp;</span>
175
+ <span class="cline-any cline-yes">2x</span>
176
+ <span class="cline-any cline-yes">2x</span>
177
+ <span class="cline-any cline-yes">2x</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const yup = require('yup');
179
179
  const AbstractMiddleware = require('./AbstractMiddleware');
180
180
  /**
@@ -193,41 +193,41 @@ class Pagination extends AbstractMiddleware {
193
193
  });
194
194
  }
195
195
  &nbsp;
196
- async middleware(req, res, next) {
197
- let { limit, maxLimit } = this.params;
198
- &nbsp;
199
- limit = typeof limit === 'number' <span class="branch-0 cbranch-no" title="branch not covered" >? parseInt(limit, 10) </span>: 10;
200
- maxLimit = typeof maxLimit === 'number' <span class="branch-0 cbranch-no" title="branch not covered" >? parseInt(maxLimit, 10) </span>: 100;
201
- &nbsp;
202
- req.appInfo.pagination = {};
203
- req.appInfo.pagination.page =
204
- typeof req?.query?.page === 'string'
205
- ? parseInt(req?.query?.page, 10) <span class="branch-0 cbranch-no" title="branch not covered" >|| 1</span>
206
- <span class="branch-0 cbranch-no" title="branch not covered" > : 1;</span>
207
- &nbsp;
208
- req.appInfo.pagination.limit =
209
- typeof req?.query?.limit === 'string'
210
- ? parseInt(req?.query?.limit, 10) <span class="branch-0 cbranch-no" title="branch not covered" >|| 0</span>
211
- <span class="branch-0 cbranch-no" title="branch not covered" > : limit;</span>
212
- &nbsp;
213
- if (req.appInfo.pagination.limit &gt; maxLimit) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
196
+ <span class="fstat-no" title="function not covered" > async middleware(req, res, next) {</span>
197
+ <span class="cstat-no" title="statement not covered" > let { limit, maxLimit } = this.params;</span>
198
+ <span class="cstat-no" title="statement not covered" ></span>
199
+ <span class="cstat-no" title="statement not covered" > limit = typeof limit === 'number' ? parseInt(limit, 10) : 10;</span>
200
+ <span class="cstat-no" title="statement not covered" > maxLimit = typeof maxLimit === 'number' ? parseInt(maxLimit, 10) : 100;</span>
201
+ <span class="cstat-no" title="statement not covered" ></span>
202
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination = {};</span>
203
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.page =</span>
204
+ <span class="cstat-no" title="statement not covered" > typeof req?.query?.page === 'string'</span>
205
+ <span class="cstat-no" title="statement not covered" > ? parseInt(req?.query?.page, 10) || 1</span>
206
+ <span class="cstat-no" title="statement not covered" > : 1;</span>
207
+ <span class="cstat-no" title="statement not covered" ></span>
208
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.limit =</span>
209
+ <span class="cstat-no" title="statement not covered" > typeof req?.query?.limit === 'string'</span>
210
+ <span class="cstat-no" title="statement not covered" > ? parseInt(req?.query?.limit, 10) || 0</span>
211
+ <span class="cstat-no" title="statement not covered" > : limit;</span>
212
+ <span class="cstat-no" title="statement not covered" ></span>
213
+ <span class="cstat-no" title="statement not covered" > if (req.appInfo.pagination.limit &gt; maxLimit) {</span>
214
214
  <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.limit = maxLimit;</span>
215
215
  <span class="cstat-no" title="statement not covered" > }</span>
216
- &nbsp;
217
- if (req.appInfo.pagination.page &lt; 1) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
216
+ <span class="cstat-no" title="statement not covered" ></span>
217
+ <span class="cstat-no" title="statement not covered" > if (req.appInfo.pagination.page &lt; 1) {</span>
218
218
  <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.page = 1;</span>
219
219
  <span class="cstat-no" title="statement not covered" > }</span>
220
- &nbsp;
221
- if (req.appInfo.pagination.limit &lt; 0) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
220
+ <span class="cstat-no" title="statement not covered" ></span>
221
+ <span class="cstat-no" title="statement not covered" > if (req.appInfo.pagination.limit &lt; 0) {</span>
222
222
  <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.limit = 0;</span>
223
223
  <span class="cstat-no" title="statement not covered" > }</span>
224
- &nbsp;
225
- req.appInfo.pagination.skip =
226
- req.appInfo.pagination.page * req.appInfo.pagination.limit -
227
- req.appInfo.pagination.limit;
228
- &nbsp;
229
- return next();
230
- }
224
+ <span class="cstat-no" title="statement not covered" ></span>
225
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.skip =</span>
226
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.page * req.appInfo.pagination.limit -</span>
227
+ <span class="cstat-no" title="statement not covered" > req.appInfo.pagination.limit;</span>
228
+ <span class="cstat-no" title="statement not covered" ></span>
229
+ <span class="cstat-no" title="statement not covered" > return next();</span>
230
+ <span class="cstat-no" title="statement not covered" > }</span>
231
231
  }
232
232
  &nbsp;
233
233
  module.exports = Pagination;
@@ -238,7 +238,7 @@ module.exports = Pagination;
238
238
  <div class='footer quiet pad2 space-top1 center small'>
239
239
  Code coverage generated by
240
240
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
241
- at 2023-09-21T04:47:08.309Z
241
+ at 2023-09-21T12:04:18.148Z
242
242
  </div>
243
243
  <script src="../../../../prettify.js"></script>
244
244
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">88.88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/18</span>
28
+ <span class='fraction'>16/18</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
35
+ <span class='fraction'>2/2</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">100% </span>
47
+ <span class="strong">88.88% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/18</span>
49
+ <span class='fraction'>16/18</span>
50
50
  </div>
51
51
 
52
52
 
@@ -81,30 +81,30 @@
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
83
  <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
85
- <span class="cline-any cline-yes">54x</span>
86
- <span class="cline-any cline-yes">54x</span>
87
- <span class="cline-any cline-yes">54x</span>
88
- <span class="cline-any cline-yes">1x</span>
89
- <span class="cline-any cline-yes">1x</span>
90
- <span class="cline-any cline-yes">1x</span>
91
- <span class="cline-any cline-yes">1x</span>
84
+ <a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
85
+ <span class="cline-any cline-yes">2x</span>
86
+ <span class="cline-any cline-yes">2x</span>
92
87
  <span class="cline-any cline-yes">2x</span>
93
- <span class="cline-any cline-yes">1x</span>
94
- <span class="cline-any cline-yes">1x</span>
95
- <span class="cline-any cline-yes">1x</span>
96
- <span class="cline-any cline-yes">1x</span>
88
+ <span class="cline-any cline-no">&nbsp;</span>
89
+ <span class="cline-any cline-no">&nbsp;</span>
97
90
  <span class="cline-any cline-yes">2x</span>
98
91
  <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
- <span class="cline-any cline-yes">1x</span>
102
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="fstat-no" title="function not covered" >const AbstractMiddleware </span>= require('./AbstractMiddleware');
92
+ <span class="cline-any cline-yes">30x</span>
93
+ <span class="cline-any cline-yes">30x</span>
94
+ <span class="cline-any cline-yes">30x</span>
95
+ <span class="cline-any cline-yes">30x</span>
96
+ <span class="cline-any cline-yes">30x</span>
97
+ <span class="cline-any cline-yes">30x</span>
98
+ <span class="cline-any cline-yes">30x</span>
99
+ <span class="cline-any cline-yes">2x</span>
100
+ <span class="cline-any cline-yes">2x</span>
101
+ <span class="cline-any cline-yes">2x</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const AbstractMiddleware = require('./AbstractMiddleware');
103
103
  &nbsp;
104
104
  class PrepareAppInfo extends AbstractMiddleware {
105
- static get description() {
106
- return 'Basic middleware that creates "req.appInfo" object';
107
- }
105
+ static <span class="fstat-no" title="function not covered" >get description() {</span>
106
+ <span class="cstat-no" title="statement not covered" > return 'Basic middleware that creates "req.appInfo" object';</span>
107
+ <span class="cstat-no" title="statement not covered" > }</span>
108
108
  &nbsp;
109
109
  async middleware(req, res, next) {
110
110
  if (!req.appInfo) {
@@ -124,7 +124,7 @@ module.exports = PrepareAppInfo;
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at 2023-09-21T04:47:08.309Z
127
+ at 2023-09-21T12:04:18.148Z
128
128
  </div>
129
129
  <script src="../../../../prettify.js"></script>
130
130
  <script>