@adaptivestone/framework 4.8.0 → 4.8.2
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.
- package/CHANGELOG.md +10 -0
- package/Cli.js +2 -0
- package/commands/migration/Create.js +4 -3
- package/coverage/clover.xml +2820 -2789
- package/coverage/coverage-final.json +43 -43
- package/coverage/framework/config/auth.js.html +6 -6
- package/coverage/framework/config/http.js.html +10 -10
- package/coverage/framework/config/i18n.js.html +13 -13
- package/coverage/framework/config/index.html +1 -1
- package/coverage/framework/config/log.js.html +23 -23
- package/coverage/framework/config/mail.js.html +30 -30
- package/coverage/framework/config/mongo.js.html +4 -4
- package/coverage/framework/config/rateLimiter.js.html +17 -17
- package/coverage/framework/config/redis.js.html +5 -5
- package/coverage/framework/config/validate.js.html +4 -4
- package/coverage/framework/controllers/Auth.js.html +90 -90
- package/coverage/framework/controllers/Home.js.html +39 -39
- package/coverage/framework/controllers/index.html +17 -17
- package/coverage/framework/controllers/index.js.html +54 -54
- package/coverage/framework/controllers/test/SomeController.js.html +106 -106
- package/coverage/framework/controllers/test/index.html +19 -19
- package/coverage/framework/helpers/files.js.html +66 -66
- package/coverage/framework/helpers/index.html +1 -1
- package/coverage/framework/helpers/logger.js.html +14 -14
- package/coverage/framework/helpers/redis/clearNamespace.js.html +28 -28
- package/coverage/framework/helpers/redis/index.html +17 -17
- package/coverage/framework/index.html +19 -19
- package/coverage/framework/models/Migration.js.html +16 -16
- package/coverage/framework/models/Sequence.js.html +39 -39
- package/coverage/framework/models/User.js.html +192 -192
- package/coverage/framework/models/index.html +28 -28
- package/coverage/framework/modules/AbstractController.js.html +478 -478
- package/coverage/framework/modules/AbstractModel.js.html +54 -54
- package/coverage/framework/modules/Base.js.html +52 -52
- package/coverage/framework/modules/index.html +21 -21
- package/coverage/framework/server.js.html +478 -385
- package/coverage/framework/services/cache/Cache.js.html +216 -216
- package/coverage/framework/services/cache/index.html +20 -20
- package/coverage/framework/services/documentation/DocumentationGenerator.js.html +17 -17
- package/coverage/framework/services/documentation/index.html +1 -1
- package/coverage/framework/services/http/HttpServer.js.html +90 -90
- package/coverage/framework/services/http/index.html +1 -1
- package/coverage/framework/services/http/middleware/AbstractMiddleware.js.html +60 -60
- package/coverage/framework/services/http/middleware/Auth.js.html +16 -16
- package/coverage/framework/services/http/middleware/GetUserByToken.js.html +60 -60
- package/coverage/framework/services/http/middleware/I18n.js.html +129 -129
- package/coverage/framework/services/http/middleware/Pagination.js.html +95 -95
- package/coverage/framework/services/http/middleware/PrepareAppInfo.js.html +27 -27
- package/coverage/framework/services/http/middleware/RateLimiter.js.html +166 -166
- package/coverage/framework/services/http/middleware/RequestLogger.js.html +21 -21
- package/coverage/framework/services/http/middleware/RequestParser.js.html +47 -47
- package/coverage/framework/services/http/middleware/Role.js.html +55 -55
- package/coverage/framework/services/http/middleware/index.html +99 -99
- package/coverage/framework/services/http/middleware/test/CheckFlag.js.html +36 -36
- package/coverage/framework/services/http/middleware/test/index.html +19 -19
- package/coverage/framework/services/messaging/email/index.html +1 -1
- package/coverage/framework/services/messaging/email/index.js.html +67 -67
- package/coverage/framework/services/messaging/index.html +1 -1
- package/coverage/framework/services/messaging/index.js.html +6 -6
- package/coverage/framework/services/validate/ValidateService.js.html +202 -202
- package/coverage/framework/services/validate/drivers/AbstractValidator.js.html +24 -24
- package/coverage/framework/services/validate/drivers/CustomValidator.js.html +14 -14
- package/coverage/framework/services/validate/drivers/YupValidator.js.html +55 -55
- package/coverage/framework/services/validate/drivers/index.html +1 -1
- package/coverage/framework/services/validate/index.html +21 -21
- package/coverage/index.html +110 -110
- package/models/User.test.js +3 -3
- package/package.json +2 -1
- package/server.d.ts +9 -1
- package/server.js +50 -19
- package/services/http/middleware/I18n.test.js +1 -1
- package/services/http/middleware/RateLimiter.test.js +7 -7
- package/services/validate/ValidateService.test.js +3 -3
- package/tests/setup.js +3 -1
- 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">
|
|
26
|
+
<span class="strong">56.58% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>73/129</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">53.84% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>7/13</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">60% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>3/5</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">56.58% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>73/129</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -192,42 +192,54 @@
|
|
|
192
192
|
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
193
|
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
194
|
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
-
<a name='L130'></a><a href='#L130'>130</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
196
|
-
<span class="cline-any cline-yes">
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
199
|
-
<span class="cline-any cline-yes">
|
|
200
|
-
<span class="cline-any cline-yes">
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
196
|
+
<span class="cline-any cline-yes">2x</span>
|
|
197
|
+
<span class="cline-any cline-yes">2x</span>
|
|
198
|
+
<span class="cline-any cline-yes">2x</span>
|
|
199
|
+
<span class="cline-any cline-yes">2x</span>
|
|
200
|
+
<span class="cline-any cline-yes">2x</span>
|
|
201
|
+
<span class="cline-any cline-yes">2x</span>
|
|
202
|
+
<span class="cline-any cline-yes">2x</span>
|
|
203
|
+
<span class="cline-any cline-yes">2x</span>
|
|
204
|
+
<span class="cline-any cline-yes">2x</span>
|
|
205
|
+
<span class="cline-any cline-yes">2x</span>
|
|
206
|
+
<span class="cline-any cline-yes">2x</span>
|
|
207
|
+
<span class="cline-any cline-yes">2x</span>
|
|
201
208
|
<span class="cline-any cline-no"> </span>
|
|
202
209
|
<span class="cline-any cline-no"> </span>
|
|
210
|
+
<span class="cline-any cline-yes">2x</span>
|
|
211
|
+
<span class="cline-any cline-yes">2x</span>
|
|
212
|
+
<span class="cline-any cline-yes">24x</span>
|
|
213
|
+
<span class="cline-any cline-yes">24x</span>
|
|
214
|
+
<span class="cline-any cline-yes">24x</span>
|
|
215
|
+
<span class="cline-any cline-yes">24x</span>
|
|
216
|
+
<span class="cline-any cline-yes">24x</span>
|
|
217
|
+
<span class="cline-any cline-yes">24x</span>
|
|
218
|
+
<span class="cline-any cline-yes">24x</span>
|
|
219
|
+
<span class="cline-any cline-yes">24x</span>
|
|
220
|
+
<span class="cline-any cline-yes">24x</span>
|
|
221
|
+
<span class="cline-any cline-yes">24x</span>
|
|
222
|
+
<span class="cline-any cline-yes">24x</span>
|
|
223
|
+
<span class="cline-any cline-yes">24x</span>
|
|
203
224
|
<span class="cline-any cline-no"> </span>
|
|
204
|
-
<span class="cline-any cline-
|
|
205
|
-
<span class="cline-any cline-yes">
|
|
206
|
-
<span class="cline-any cline-yes">
|
|
207
|
-
<span class="cline-any cline-
|
|
208
|
-
<span class="cline-any cline-
|
|
209
|
-
<span class="cline-any cline-
|
|
210
|
-
<span class="cline-any cline-
|
|
211
|
-
<span class="cline-any cline-
|
|
212
|
-
<span class="cline-any cline-yes">
|
|
213
|
-
<span class="cline-any cline-yes">
|
|
214
|
-
<span class="cline-any cline-
|
|
215
|
-
<span class="cline-any cline-
|
|
216
|
-
<span class="cline-any cline-
|
|
217
|
-
<span class="cline-any cline-
|
|
218
|
-
<span class="cline-any cline-yes">
|
|
219
|
-
<span class="cline-any cline-yes">
|
|
225
|
+
<span class="cline-any cline-no"> </span>
|
|
226
|
+
<span class="cline-any cline-yes">24x</span>
|
|
227
|
+
<span class="cline-any cline-yes">24x</span>
|
|
228
|
+
<span class="cline-any cline-no"> </span>
|
|
229
|
+
<span class="cline-any cline-no"> </span>
|
|
230
|
+
<span class="cline-any cline-no"> </span>
|
|
231
|
+
<span class="cline-any cline-no"> </span>
|
|
232
|
+
<span class="cline-any cline-no"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">24x</span>
|
|
234
|
+
<span class="cline-any cline-yes">24x</span>
|
|
235
|
+
<span class="cline-any cline-no"> </span>
|
|
236
|
+
<span class="cline-any cline-no"> </span>
|
|
237
|
+
<span class="cline-any cline-no"> </span>
|
|
238
|
+
<span class="cline-any cline-no"> </span>
|
|
239
|
+
<span class="cline-any cline-yes">24x</span>
|
|
240
|
+
<span class="cline-any cline-yes">24x</span>
|
|
220
241
|
<span class="cline-any cline-yes">2x</span>
|
|
221
242
|
<span class="cline-any cline-yes">2x</span>
|
|
222
|
-
<span class="cline-any cline-yes">11x</span>
|
|
223
|
-
<span class="cline-any cline-yes">11x</span>
|
|
224
|
-
<span class="cline-any cline-yes">6x</span>
|
|
225
|
-
<span class="cline-any cline-yes">6x</span>
|
|
226
|
-
<span class="cline-any cline-yes">11x</span>
|
|
227
|
-
<span class="cline-any cline-yes">11x</span>
|
|
228
|
-
<span class="cline-any cline-yes">1x</span>
|
|
229
|
-
<span class="cline-any cline-yes">1x</span>
|
|
230
|
-
<span class="cline-any cline-yes">1x</span>
|
|
231
243
|
<span class="cline-any cline-no"> </span>
|
|
232
244
|
<span class="cline-any cline-no"> </span>
|
|
233
245
|
<span class="cline-any cline-no"> </span>
|
|
@@ -240,42 +252,7 @@
|
|
|
240
252
|
<span class="cline-any cline-no"> </span>
|
|
241
253
|
<span class="cline-any cline-no"> </span>
|
|
242
254
|
<span class="cline-any cline-no"> </span>
|
|
243
|
-
<span class="cline-any cline-yes">6x</span>
|
|
244
|
-
<span class="cline-any cline-yes">6x</span>
|
|
245
|
-
<span class="cline-any cline-yes">6x</span>
|
|
246
|
-
<span class="cline-any cline-yes">6x</span>
|
|
247
|
-
<span class="cline-any cline-yes">6x</span>
|
|
248
|
-
<span class="cline-any cline-yes">6x</span>
|
|
249
|
-
<span class="cline-any cline-yes">6x</span>
|
|
250
|
-
<span class="cline-any cline-yes">6x</span>
|
|
251
|
-
<span class="cline-any cline-yes">6x</span>
|
|
252
|
-
<span class="cline-any cline-yes">6x</span>
|
|
253
|
-
<span class="cline-any cline-yes">6x</span>
|
|
254
255
|
<span class="cline-any cline-no"> </span>
|
|
255
|
-
<span class="cline-any cline-yes">6x</span>
|
|
256
|
-
<span class="cline-any cline-yes">6x</span>
|
|
257
|
-
<span class="cline-any cline-yes">6x</span>
|
|
258
|
-
<span class="cline-any cline-yes">6x</span>
|
|
259
|
-
<span class="cline-any cline-yes">6x</span>
|
|
260
|
-
<span class="cline-any cline-yes">6x</span>
|
|
261
|
-
<span class="cline-any cline-yes">6x</span>
|
|
262
|
-
<span class="cline-any cline-yes">43x</span>
|
|
263
|
-
<span class="cline-any cline-yes">43x</span>
|
|
264
|
-
<span class="cline-any cline-yes">43x</span>
|
|
265
|
-
<span class="cline-any cline-yes">43x</span>
|
|
266
|
-
<span class="cline-any cline-yes">43x</span>
|
|
267
|
-
<span class="cline-any cline-yes">43x</span>
|
|
268
|
-
<span class="cline-any cline-yes">43x</span>
|
|
269
|
-
<span class="cline-any cline-yes">43x</span>
|
|
270
|
-
<span class="cline-any cline-yes">43x</span>
|
|
271
|
-
<span class="cline-any cline-yes">43x</span>
|
|
272
|
-
<span class="cline-any cline-yes">65x</span>
|
|
273
|
-
<span class="cline-any cline-yes">65x</span>
|
|
274
|
-
<span class="cline-any cline-yes">65x</span>
|
|
275
|
-
<span class="cline-any cline-yes">65x</span>
|
|
276
|
-
<span class="cline-any cline-yes">65x</span>
|
|
277
|
-
<span class="cline-any cline-yes">65x</span>
|
|
278
|
-
<span class="cline-any cline-yes">65x</span>
|
|
279
256
|
<span class="cline-any cline-no"> </span>
|
|
280
257
|
<span class="cline-any cline-no"> </span>
|
|
281
258
|
<span class="cline-any cline-no"> </span>
|
|
@@ -284,154 +261,177 @@
|
|
|
284
261
|
<span class="cline-any cline-no"> </span>
|
|
285
262
|
<span class="cline-any cline-no"> </span>
|
|
286
263
|
<span class="cline-any cline-no"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">1x</span>
|
|
288
|
-
<span class="cline-any cline-yes">1x</span>
|
|
289
|
-
<span class="cline-any cline-yes">1x</span>
|
|
290
|
-
<span class="cline-any cline-yes">43x</span>
|
|
291
264
|
<span class="cline-any cline-no"> </span>
|
|
292
265
|
<span class="cline-any cline-no"> </span>
|
|
293
266
|
<span class="cline-any cline-no"> </span>
|
|
294
267
|
<span class="cline-any cline-no"> </span>
|
|
295
268
|
<span class="cline-any cline-no"> </span>
|
|
296
269
|
<span class="cline-any cline-no"> </span>
|
|
270
|
+
<span class="cline-any cline-yes">2x</span>
|
|
271
|
+
<span class="cline-any cline-yes">2x</span>
|
|
272
|
+
<span class="cline-any cline-yes">30x</span>
|
|
273
|
+
<span class="cline-any cline-yes">30x</span>
|
|
274
|
+
<span class="cline-any cline-yes">30x</span>
|
|
275
|
+
<span class="cline-any cline-yes">30x</span>
|
|
276
|
+
<span class="cline-any cline-yes">30x</span>
|
|
277
|
+
<span class="cline-any cline-yes">30x</span>
|
|
278
|
+
<span class="cline-any cline-yes">30x</span>
|
|
279
|
+
<span class="cline-any cline-yes">30x</span>
|
|
280
|
+
<span class="cline-any cline-yes">30x</span>
|
|
281
|
+
<span class="cline-any cline-yes">30x</span>
|
|
297
282
|
<span class="cline-any cline-no"> </span>
|
|
298
283
|
<span class="cline-any cline-no"> </span>
|
|
299
|
-
<span class="cline-any cline-yes">
|
|
300
|
-
<span class="cline-any cline-yes">
|
|
301
|
-
<span class="cline-any cline-
|
|
302
|
-
<span class="cline-any cline-
|
|
303
|
-
<span class="cline-any cline-
|
|
304
|
-
<span class="cline-any cline-
|
|
305
|
-
<span class="cline-any cline-
|
|
306
|
-
<span class="cline-any cline-
|
|
307
|
-
<span class="cline-any cline-
|
|
308
|
-
<span class="cline-any cline-
|
|
309
|
-
<span class="cline-any cline-
|
|
284
|
+
<span class="cline-any cline-yes">30x</span>
|
|
285
|
+
<span class="cline-any cline-yes">30x</span>
|
|
286
|
+
<span class="cline-any cline-no"> </span>
|
|
287
|
+
<span class="cline-any cline-no"> </span>
|
|
288
|
+
<span class="cline-any cline-no"> </span>
|
|
289
|
+
<span class="cline-any cline-no"> </span>
|
|
290
|
+
<span class="cline-any cline-no"> </span>
|
|
291
|
+
<span class="cline-any cline-no"> </span>
|
|
292
|
+
<span class="cline-any cline-no"> </span>
|
|
293
|
+
<span class="cline-any cline-no"> </span>
|
|
294
|
+
<span class="cline-any cline-no"> </span>
|
|
295
|
+
<span class="cline-any cline-yes">30x</span>
|
|
296
|
+
<span class="cline-any cline-yes">30x</span>
|
|
297
|
+
<span class="cline-any cline-yes">30x</span>
|
|
310
298
|
<span class="cline-any cline-yes">2x</span>
|
|
311
|
-
<span class="cline-any cline-yes">
|
|
312
|
-
<span class="cline-any cline-yes">
|
|
313
|
-
<span class="cline-any cline-
|
|
314
|
-
<span class="cline-any cline-
|
|
315
|
-
<span class="cline-any cline-
|
|
316
|
-
<span class="cline-any cline-
|
|
317
|
-
<span class="cline-any cline-
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
319
|
-
<span class="cline-any cline-yes">
|
|
320
|
-
<span class="cline-any cline-yes">
|
|
321
|
-
<span class="cline-any cline-yes">
|
|
299
|
+
<span class="cline-any cline-yes">2x</span>
|
|
300
|
+
<span class="cline-any cline-yes">30x</span>
|
|
301
|
+
<span class="cline-any cline-no"> </span>
|
|
302
|
+
<span class="cline-any cline-no"> </span>
|
|
303
|
+
<span class="cline-any cline-no"> </span>
|
|
304
|
+
<span class="cline-any cline-no"> </span>
|
|
305
|
+
<span class="cline-any cline-no"> </span>
|
|
306
|
+
<span class="cline-any cline-yes">30x</span>
|
|
307
|
+
<span class="cline-any cline-yes">30x</span>
|
|
308
|
+
<span class="cline-any cline-yes">30x</span>
|
|
309
|
+
<span class="cline-any cline-yes">30x</span>
|
|
310
|
+
<span class="cline-any cline-yes">30x</span>
|
|
311
|
+
<span class="cline-any cline-yes">30x</span>
|
|
312
|
+
<span class="cline-any cline-yes">30x</span>
|
|
313
|
+
<span class="cline-any cline-yes">30x</span>
|
|
322
314
|
<span class="cline-any cline-yes">1x</span>
|
|
315
|
+
<span class="cline-any cline-yes">30x</span>
|
|
316
|
+
<span class="cline-any cline-yes">30x</span>
|
|
317
|
+
<span class="cline-any cline-yes">29x</span>
|
|
318
|
+
<span class="cline-any cline-yes">29x</span>
|
|
323
319
|
<span class="cline-any cline-yes">1x</span>
|
|
320
|
+
<span class="cline-any cline-yes">30x</span>
|
|
321
|
+
<span class="cline-any cline-yes">2x</span>
|
|
322
|
+
<span class="cline-any cline-yes">2x</span>
|
|
323
|
+
<span class="cline-any cline-yes">2x</span>
|
|
324
324
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
325
325
|
RateLimiterMemory,
|
|
326
326
|
RateLimiterRedis,
|
|
327
327
|
RateLimiterMongo,
|
|
328
328
|
} = require('rate-limiter-flexible');
|
|
329
329
|
const merge = require('deepmerge');
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
330
|
+
const redis = require('redis');
|
|
331
|
+
const mongoose = require('mongoose');
|
|
332
|
+
|
|
333
333
|
const AbstractMiddleware = require('./AbstractMiddleware');
|
|
334
334
|
|
|
335
335
|
class RateLimiter extends AbstractMiddleware {
|
|
336
|
-
static get description() {
|
|
337
|
-
return 'Rate limiter middleware. Limit amount of request. Please refer to documentation'
|
|
338
|
-
}
|
|
336
|
+
static <span class="fstat-no" title="function not covered" >get description() {</span>
|
|
337
|
+
<span class="cstat-no" title="statement not covered" > return 'Rate limiter middleware. Limit amount of request. Please refer to documentation';</span>
|
|
338
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
339
339
|
|
|
340
340
|
constructor(app, params) {
|
|
341
341
|
super(app, params);
|
|
342
342
|
const limiterOptions = this.app.getConfig('rateLimiter');
|
|
343
343
|
|
|
344
344
|
this.finalOptions = merge(limiterOptions, params);
|
|
345
|
-
|
|
345
|
+
this.limiter = null;
|
|
346
346
|
|
|
347
347
|
switch (this.finalOptions.driver) {
|
|
348
348
|
case 'memory':
|
|
349
|
-
|
|
349
|
+
this.limiter = new RateLimiterMemory(this.finalOptions.limiterOptions);
|
|
350
350
|
break;
|
|
351
351
|
|
|
352
|
-
case 'redis'
|
|
353
|
-
this.limiter = this.initRedisLimiter()
|
|
354
|
-
break
|
|
352
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > case 'redis':</span>
|
|
353
|
+
<span class="cstat-no" title="statement not covered" > this.limiter = this.initRedisLimiter();</span>
|
|
354
|
+
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
355
355
|
|
|
356
356
|
<span class="branch-0 cbranch-no" title="branch not covered" > case 'mongo':</span>
|
|
357
|
-
this.limiter = new RateLimiterMongo({
|
|
358
|
-
storeClient: mongoose.connection
|
|
359
|
-
|
|
357
|
+
<span class="cstat-no" title="statement not covered" > this.limiter = new RateLimiterMongo({</span>
|
|
358
|
+
<span class="cstat-no" title="statement not covered" > storeClient: mongoose.connection,</span>
|
|
359
|
+
<span class="cstat-no" title="statement not covered" > ...this.finalOptions.limiterOptions,</span>
|
|
360
360
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
361
361
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
362
|
-
|
|
363
|
-
<span class="
|
|
362
|
+
|
|
363
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
|
|
364
364
|
<span class="cstat-no" title="statement not covered" > this.logger.error(</span>
|
|
365
365
|
<span class="cstat-no" title="statement not covered" > `Unknwon option for driver ${this.finalOptions.driver}`,</span>
|
|
366
366
|
<span class="cstat-no" title="statement not covered" > );</span>
|
|
367
367
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
371
|
-
<span class="cstat-no" title="statement not covered" > initRedisLimiter() {</span>
|
|
372
|
-
const redisConfig = this.app.getConfig('redis');
|
|
373
|
-
const redisClient = redis.createClient({
|
|
374
|
-
url: redisConfig.url,
|
|
375
|
-
});
|
|
376
|
-
|
|
377
|
-
// TODO: change it
|
|
378
|
-
(async () => {
|
|
379
|
-
await redisClient.connect();
|
|
380
|
-
})();
|
|
368
|
+
}
|
|
369
|
+
}
|
|
381
370
|
|
|
382
|
-
|
|
371
|
+
<span class="fstat-no" title="function not covered" > initRedisLimiter() {</span>
|
|
372
|
+
<span class="cstat-no" title="statement not covered" > const redisConfig = this.app.getConfig('redis');</span>
|
|
373
|
+
<span class="cstat-no" title="statement not covered" > const redisClient = redis.createClient({</span>
|
|
374
|
+
<span class="cstat-no" title="statement not covered" > url: redisConfig.url,</span>
|
|
375
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
376
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
377
|
+
<span class="cstat-no" title="statement not covered" > // TODO: change it</span>
|
|
378
|
+
<span class="cstat-no" title="statement not covered" > (async () => {</span>
|
|
379
|
+
<span class="cstat-no" title="statement not covered" > await redisClient.connect();</span>
|
|
380
|
+
<span class="cstat-no" title="statement not covered" > })();</span>
|
|
381
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
382
|
+
<span class="cstat-no" title="statement not covered" > redisClient.on('error', (error, b, c) => {</span>
|
|
383
383
|
<span class="cstat-no" title="statement not covered" > this.logger.error(error, b, c);</span>
|
|
384
|
-
})
|
|
385
|
-
redisClient.on('connect', () => {
|
|
386
|
-
this.logger.info('Redis connection success')
|
|
387
|
-
})
|
|
388
|
-
|
|
389
|
-
this.app.events.on('shutdown', async () => {
|
|
390
|
-
await redisClient.disconnect()
|
|
391
|
-
})
|
|
392
|
-
|
|
393
|
-
return new RateLimiterRedis({
|
|
394
|
-
storeClient: redisClient
|
|
395
|
-
useRedisPackage: true
|
|
396
|
-
...this.finalOptions.limiterOptions
|
|
397
|
-
})
|
|
398
|
-
}
|
|
384
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
385
|
+
<span class="cstat-no" title="statement not covered" > redisClient.on('connect', () => {</span>
|
|
386
|
+
<span class="cstat-no" title="statement not covered" > this.logger.info('Redis connection success');</span>
|
|
387
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
388
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
389
|
+
<span class="cstat-no" title="statement not covered" > this.app.events.on('shutdown', async () => {</span>
|
|
390
|
+
<span class="cstat-no" title="statement not covered" > await redisClient.disconnect();</span>
|
|
391
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
392
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
393
|
+
<span class="cstat-no" title="statement not covered" > return new RateLimiterRedis({</span>
|
|
394
|
+
<span class="cstat-no" title="statement not covered" > storeClient: redisClient,</span>
|
|
395
|
+
<span class="cstat-no" title="statement not covered" > useRedisPackage: true,</span>
|
|
396
|
+
<span class="cstat-no" title="statement not covered" > ...this.finalOptions.limiterOptions,</span>
|
|
397
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
398
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
399
399
|
|
|
400
400
|
gerenateConsumeKey(req) {
|
|
401
401
|
const { ip, route, user, request } = this.finalOptions.consumeKeyComponents;
|
|
402
402
|
|
|
403
403
|
const key = [];
|
|
404
404
|
if (ip) {
|
|
405
|
-
key.push(req
|
|
405
|
+
key.push(req.ip);
|
|
406
406
|
}
|
|
407
407
|
if (route) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
<span class="
|
|
408
|
+
key.push(req.originalUrl);
|
|
409
|
+
}
|
|
410
|
+
if (user && req.appInfo?.user) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
411
411
|
<span class="cstat-no" title="statement not covered" > key.push(req.appInfo?.user.id);</span>
|
|
412
412
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
413
|
-
|
|
414
|
-
<span class="
|
|
413
|
+
|
|
414
|
+
if (request && request.length) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
415
415
|
<span class="cstat-no" title="statement not covered" > request.forEach((val) => {</span>
|
|
416
|
-
if (req.body && req.body[val]) {
|
|
417
|
-
key.push(req.body[val])
|
|
418
|
-
}
|
|
419
|
-
// if (req.appInfo.request && req.appInfo
|
|
416
|
+
<span class="cstat-no" title="statement not covered" > if (req.body && req.body[val]) {</span>
|
|
417
|
+
<span class="cstat-no" title="statement not covered" > key.push(req.body[val]);</span>
|
|
418
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
419
|
+
<span class="cstat-no" title="statement not covered" > // if (req.appInfo.request && req.appInfo.request[val]) {</span>
|
|
420
420
|
<span class="cstat-no" title="statement not covered" > // key.push(req.appInfo.request[val]);</span>
|
|
421
421
|
<span class="cstat-no" title="statement not covered" > // }</span>
|
|
422
422
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
423
423
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
424
|
+
|
|
425
|
+
return key.join('_');
|
|
426
|
+
}
|
|
427
|
+
|
|
428
428
|
async middleware(req, res, next) {
|
|
429
|
-
if (!this.limiter) {
|
|
430
|
-
this.logger.info(
|
|
431
|
-
`RateLimmiter not inited correclty! Please check init logs
|
|
432
|
-
)
|
|
433
|
-
return res.status(500).send('')
|
|
434
|
-
}
|
|
429
|
+
if (!this.limiter) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
430
|
+
<span class="cstat-no" title="statement not covered" > this.logger.info(</span>
|
|
431
|
+
<span class="cstat-no" title="statement not covered" > `RateLimmiter not inited correclty! Please check init logs `,</span>
|
|
432
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
433
|
+
<span class="cstat-no" title="statement not covered" > return res.status(500).send('');</span>
|
|
434
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
435
435
|
|
|
436
436
|
const { namespace } = this.app.getConfig('redis');
|
|
437
437
|
|
|
@@ -457,7 +457,7 @@ module.exports = RateLimiter;
|
|
|
457
457
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
458
458
|
Code coverage generated by
|
|
459
459
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
460
|
-
at 2023-09-
|
|
460
|
+
at 2023-09-21T12:04:18.148Z
|
|
461
461
|
</div>
|
|
462
462
|
<script src="../../../../prettify.js"></script>
|
|
463
463
|
<script>
|
|
@@ -85,28 +85,28 @@
|
|
|
85
85
|
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
86
|
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
87
|
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
-
<a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
89
|
-
<span class="cline-any cline-yes">
|
|
90
|
-
<span class="cline-any cline-yes">
|
|
91
|
-
<span class="cline-any cline-yes">
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
89
|
+
<span class="cline-any cline-yes">2x</span>
|
|
90
|
+
<span class="cline-any cline-yes">2x</span>
|
|
91
|
+
<span class="cline-any cline-yes">2x</span>
|
|
92
92
|
<span class="cline-any cline-no"> </span>
|
|
93
93
|
<span class="cline-any cline-no"> </span>
|
|
94
|
-
<span class="cline-any cline-yes">
|
|
95
|
-
<span class="cline-any cline-yes">
|
|
96
|
-
<span class="cline-any cline-yes">
|
|
97
|
-
<span class="cline-any cline-yes">
|
|
98
|
-
<span class="cline-any cline-yes">
|
|
99
|
-
<span class="cline-any cline-yes">
|
|
100
|
-
<span class="cline-any cline-yes">
|
|
101
|
-
<span class="cline-any cline-yes">
|
|
102
|
-
<span class="cline-any cline-yes">
|
|
103
|
-
<span class="cline-any cline-yes">
|
|
104
|
-
<span class="cline-any cline-yes">
|
|
105
|
-
<span class="cline-any cline-yes">
|
|
106
|
-
<span class="cline-any cline-yes">
|
|
107
|
-
<span class="cline-any cline-yes">
|
|
108
|
-
<span class="cline-any cline-yes">
|
|
109
|
-
<span class="cline-any cline-yes">
|
|
94
|
+
<span class="cline-any cline-yes">2x</span>
|
|
95
|
+
<span class="cline-any cline-yes">2x</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">30x</span>
|
|
100
|
+
<span class="cline-any cline-yes">30x</span>
|
|
101
|
+
<span class="cline-any cline-yes">30x</span>
|
|
102
|
+
<span class="cline-any cline-yes">30x</span>
|
|
103
|
+
<span class="cline-any cline-yes">30x</span>
|
|
104
|
+
<span class="cline-any cline-yes">30x</span>
|
|
105
|
+
<span class="cline-any cline-yes">30x</span>
|
|
106
|
+
<span class="cline-any cline-yes">30x</span>
|
|
107
|
+
<span class="cline-any cline-yes">2x</span>
|
|
108
|
+
<span class="cline-any cline-yes">2x</span>
|
|
109
|
+
<span class="cline-any cline-yes">2x</span>
|
|
110
110
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const AbstractMiddleware = require('./AbstractMiddleware');
|
|
111
111
|
|
|
112
112
|
class RequestLogger extends AbstractMiddleware {
|
|
@@ -136,7 +136,7 @@ module.exports = RequestLogger;
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at 2023-09-
|
|
139
|
+
at 2023-09-21T12:04:18.148Z
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../../../../prettify.js"></script>
|
|
142
142
|
<script>
|