@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">82.59% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>337/408</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">78.26% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>36/46</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">66.66% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>6/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">82.59% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>337/408</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
|
|
64
|
+
<div class='status-line high'></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>
|
|
@@ -471,75 +471,7 @@
|
|
|
471
471
|
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
472
|
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
473
|
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
-
<a name='L409'></a><a href='#L409'>409</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
475
|
-
<span class="cline-any cline-yes">15x</span>
|
|
476
|
-
<span class="cline-any cline-yes">15x</span>
|
|
477
|
-
<span class="cline-any cline-yes">15x</span>
|
|
478
|
-
<span class="cline-any cline-yes">15x</span>
|
|
479
|
-
<span class="cline-any cline-yes">15x</span>
|
|
480
|
-
<span class="cline-any cline-yes">15x</span>
|
|
481
|
-
<span class="cline-any cline-yes">15x</span>
|
|
482
|
-
<span class="cline-any cline-yes">15x</span>
|
|
483
|
-
<span class="cline-any cline-yes">15x</span>
|
|
484
|
-
<span class="cline-any cline-yes">15x</span>
|
|
485
|
-
<span class="cline-any cline-yes">15x</span>
|
|
486
|
-
<span class="cline-any cline-yes">15x</span>
|
|
487
|
-
<span class="cline-any cline-yes">46x</span>
|
|
488
|
-
<span class="cline-any cline-yes">46x</span>
|
|
489
|
-
<span class="cline-any cline-yes">46x</span>
|
|
490
|
-
<span class="cline-any cline-yes">46x</span>
|
|
491
|
-
<span class="cline-any cline-yes">1x</span>
|
|
492
|
-
<span class="cline-any cline-yes">1x</span>
|
|
493
|
-
<span class="cline-any cline-yes">1x</span>
|
|
494
|
-
<span class="cline-any cline-yes">1x</span>
|
|
495
|
-
<span class="cline-any cline-yes">1x</span>
|
|
496
|
-
<span class="cline-any cline-yes">1x</span>
|
|
497
|
-
<span class="cline-any cline-yes">1x</span>
|
|
498
|
-
<span class="cline-any cline-yes">1x</span>
|
|
499
|
-
<span class="cline-any cline-yes">1x</span>
|
|
500
|
-
<span class="cline-any cline-yes">1x</span>
|
|
501
|
-
<span class="cline-any cline-no"> </span>
|
|
502
|
-
<span class="cline-any cline-no"> </span>
|
|
503
|
-
<span class="cline-any cline-no"> </span>
|
|
504
|
-
<span class="cline-any cline-yes">94x</span>
|
|
505
|
-
<span class="cline-any cline-yes">94x</span>
|
|
506
|
-
<span class="cline-any cline-yes">94x</span>
|
|
507
|
-
<span class="cline-any cline-yes">94x</span>
|
|
508
|
-
<span class="cline-any cline-yes">94x</span>
|
|
509
|
-
<span class="cline-any cline-yes">280x</span>
|
|
510
|
-
<span class="cline-any cline-yes">280x</span>
|
|
511
|
-
<span class="cline-any cline-yes">80x</span>
|
|
512
|
-
<span class="cline-any cline-no"> </span>
|
|
513
|
-
<span class="cline-any cline-no"> </span>
|
|
514
|
-
<span class="cline-any cline-no"> </span>
|
|
515
|
-
<span class="cline-any cline-no"> </span>
|
|
516
|
-
<span class="cline-any cline-no"> </span>
|
|
517
|
-
<span class="cline-any cline-no"> </span>
|
|
518
|
-
<span class="cline-any cline-no"> </span>
|
|
519
|
-
<span class="cline-any cline-no"> </span>
|
|
520
|
-
<span class="cline-any cline-no"> </span>
|
|
521
|
-
<span class="cline-any cline-no"> </span>
|
|
522
|
-
<span class="cline-any cline-no"> </span>
|
|
523
|
-
<span class="cline-any cline-no"> </span>
|
|
524
|
-
<span class="cline-any cline-no"> </span>
|
|
525
|
-
<span class="cline-any cline-no"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">1x</span>
|
|
527
|
-
<span class="cline-any cline-yes">1x</span>
|
|
528
|
-
<span class="cline-any cline-yes">1x</span>
|
|
529
|
-
<span class="cline-any cline-yes">1x</span>
|
|
530
|
-
<span class="cline-any cline-yes">1x</span>
|
|
531
|
-
<span class="cline-any cline-yes">1x</span>
|
|
532
|
-
<span class="cline-any cline-yes">1x</span>
|
|
533
|
-
<span class="cline-any cline-yes">1x</span>
|
|
534
|
-
<span class="cline-any cline-yes">1x</span>
|
|
535
|
-
<span class="cline-any cline-yes">1x</span>
|
|
536
|
-
<span class="cline-any cline-yes">1x</span>
|
|
537
|
-
<span class="cline-any cline-yes">1x</span>
|
|
538
|
-
<span class="cline-any cline-yes">1x</span>
|
|
539
|
-
<span class="cline-any cline-yes">1x</span>
|
|
540
|
-
<span class="cline-any cline-yes">1x</span>
|
|
541
|
-
<span class="cline-any cline-yes">1x</span>
|
|
542
|
-
<span class="cline-any cline-yes">1x</span>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
543
475
|
<span class="cline-any cline-yes">2x</span>
|
|
544
476
|
<span class="cline-any cline-yes">2x</span>
|
|
545
477
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -548,106 +480,217 @@
|
|
|
548
480
|
<span class="cline-any cline-yes">2x</span>
|
|
549
481
|
<span class="cline-any cline-yes">2x</span>
|
|
550
482
|
<span class="cline-any cline-yes">2x</span>
|
|
551
|
-
<span class="cline-any cline-yes">
|
|
552
|
-
<span class="cline-any cline-yes">
|
|
553
|
-
<span class="cline-any cline-yes">
|
|
554
|
-
<span class="cline-any cline-yes">
|
|
555
|
-
<span class="cline-any cline-yes">
|
|
556
|
-
<span class="cline-any cline-
|
|
557
|
-
<span class="cline-any cline-
|
|
558
|
-
<span class="cline-any cline-
|
|
559
|
-
<span class="cline-any cline-
|
|
560
|
-
<span class="cline-any cline-
|
|
561
|
-
<span class="cline-any cline-yes">
|
|
562
|
-
<span class="cline-any cline-yes">
|
|
563
|
-
<span class="cline-any cline-
|
|
564
|
-
<span class="cline-any cline-
|
|
565
|
-
<span class="cline-any cline-
|
|
566
|
-
<span class="cline-any cline-
|
|
567
|
-
<span class="cline-any cline-
|
|
568
|
-
<span class="cline-any cline-
|
|
569
|
-
<span class="cline-any cline-no"> </span>
|
|
570
|
-
<span class="cline-any cline-no"> </span>
|
|
571
|
-
<span class="cline-any cline-no"> </span>
|
|
572
|
-
<span class="cline-any cline-no"> </span>
|
|
573
|
-
<span class="cline-any cline-no"> </span>
|
|
574
|
-
<span class="cline-any cline-
|
|
575
|
-
<span class="cline-any cline-
|
|
576
|
-
<span class="cline-any cline-
|
|
577
|
-
<span class="cline-any cline-
|
|
578
|
-
<span class="cline-any cline-
|
|
579
|
-
<span class="cline-any cline-
|
|
580
|
-
<span class="cline-any cline-
|
|
581
|
-
<span class="cline-any cline-
|
|
582
|
-
<span class="cline-any cline-
|
|
583
|
-
<span class="cline-any cline-
|
|
584
|
-
<span class="cline-any cline-
|
|
585
|
-
<span class="cline-any cline-
|
|
586
|
-
<span class="cline-any cline-
|
|
587
|
-
<span class="cline-any cline-
|
|
588
|
-
<span class="cline-any cline-
|
|
589
|
-
<span class="cline-any cline-
|
|
590
|
-
<span class="cline-any cline-
|
|
591
|
-
<span class="cline-any cline-
|
|
592
|
-
<span class="cline-any cline-
|
|
593
|
-
<span class="cline-any cline-
|
|
594
|
-
<span class="cline-any cline-
|
|
595
|
-
<span class="cline-any cline-
|
|
596
|
-
<span class="cline-any cline-
|
|
597
|
-
<span class="cline-any cline-
|
|
598
|
-
<span class="cline-any cline-
|
|
599
|
-
<span class="cline-any cline-
|
|
600
|
-
<span class="cline-any cline-
|
|
601
|
-
<span class="cline-any cline-
|
|
602
|
-
<span class="cline-any cline-
|
|
603
|
-
<span class="cline-any cline-
|
|
604
|
-
<span class="cline-any cline-
|
|
605
|
-
<span class="cline-any cline-
|
|
606
|
-
<span class="cline-any cline-
|
|
607
|
-
<span class="cline-any cline-
|
|
608
|
-
<span class="cline-any cline-
|
|
609
|
-
<span class="cline-any cline-
|
|
610
|
-
<span class="cline-any cline-
|
|
611
|
-
<span class="cline-any cline-
|
|
612
|
-
<span class="cline-any cline-
|
|
613
|
-
<span class="cline-any cline-
|
|
614
|
-
<span class="cline-any cline-yes">
|
|
615
|
-
<span class="cline-any cline-yes">
|
|
616
|
-
<span class="cline-any cline-
|
|
617
|
-
<span class="cline-any cline-
|
|
618
|
-
<span class="cline-any cline-
|
|
619
|
-
<span class="cline-any cline-
|
|
620
|
-
<span class="cline-any cline-yes">
|
|
621
|
-
<span class="cline-any cline-yes">
|
|
622
|
-
<span class="cline-any cline-yes">
|
|
623
|
-
<span class="cline-any cline-yes">
|
|
624
|
-
<span class="cline-any cline-yes">
|
|
625
|
-
<span class="cline-any cline-
|
|
626
|
-
<span class="cline-any cline-
|
|
627
|
-
<span class="cline-any cline-no"> </span>
|
|
628
|
-
<span class="cline-any cline-no"> </span>
|
|
629
|
-
<span class="cline-any cline-no"> </span>
|
|
630
|
-
<span class="cline-any cline-no"> </span>
|
|
631
|
-
<span class="cline-any cline-
|
|
632
|
-
<span class="cline-any cline-
|
|
633
|
-
<span class="cline-any cline-
|
|
634
|
-
<span class="cline-any cline-
|
|
635
|
-
<span class="cline-any cline-
|
|
636
|
-
<span class="cline-any cline-
|
|
637
|
-
<span class="cline-any cline-
|
|
638
|
-
<span class="cline-any cline-
|
|
639
|
-
<span class="cline-any cline-
|
|
640
|
-
<span class="cline-any cline-
|
|
641
|
-
<span class="cline-any cline-
|
|
642
|
-
<span class="cline-any cline-
|
|
643
|
-
<span class="cline-any cline-
|
|
644
|
-
<span class="cline-any cline-
|
|
483
|
+
<span class="cline-any cline-yes">2x</span>
|
|
484
|
+
<span class="cline-any cline-yes">2x</span>
|
|
485
|
+
<span class="cline-any cline-yes">2x</span>
|
|
486
|
+
<span class="cline-any cline-yes">2x</span>
|
|
487
|
+
<span class="cline-any cline-yes">2x</span>
|
|
488
|
+
<span class="cline-any cline-yes">2x</span>
|
|
489
|
+
<span class="cline-any cline-yes">2x</span>
|
|
490
|
+
<span class="cline-any cline-yes">2x</span>
|
|
491
|
+
<span class="cline-any cline-yes">6x</span>
|
|
492
|
+
<span class="cline-any cline-yes">6x</span>
|
|
493
|
+
<span class="cline-any cline-yes">6x</span>
|
|
494
|
+
<span class="cline-any cline-yes">6x</span>
|
|
495
|
+
<span class="cline-any cline-yes">6x</span>
|
|
496
|
+
<span class="cline-any cline-yes">6x</span>
|
|
497
|
+
<span class="cline-any cline-yes">6x</span>
|
|
498
|
+
<span class="cline-any cline-yes">6x</span>
|
|
499
|
+
<span class="cline-any cline-yes">6x</span>
|
|
500
|
+
<span class="cline-any cline-yes">6x</span>
|
|
501
|
+
<span class="cline-any cline-no"> </span>
|
|
502
|
+
<span class="cline-any cline-no"> </span>
|
|
503
|
+
<span class="cline-any cline-no"> </span>
|
|
504
|
+
<span class="cline-any cline-no"> </span>
|
|
505
|
+
<span class="cline-any cline-no"> </span>
|
|
506
|
+
<span class="cline-any cline-yes">6x</span>
|
|
507
|
+
<span class="cline-any cline-yes">6x</span>
|
|
508
|
+
<span class="cline-any cline-yes">6x</span>
|
|
509
|
+
<span class="cline-any cline-yes">6x</span>
|
|
510
|
+
<span class="cline-any cline-yes">6x</span>
|
|
511
|
+
<span class="cline-any cline-yes">6x</span>
|
|
512
|
+
<span class="cline-any cline-yes">12x</span>
|
|
513
|
+
<span class="cline-any cline-yes">36x</span>
|
|
514
|
+
<span class="cline-any cline-yes">10x</span>
|
|
515
|
+
<span class="cline-any cline-yes">10x</span>
|
|
516
|
+
<span class="cline-any cline-yes">10x</span>
|
|
517
|
+
<span class="cline-any cline-yes">10x</span>
|
|
518
|
+
<span class="cline-any cline-yes">10x</span>
|
|
519
|
+
<span class="cline-any cline-yes">10x</span>
|
|
520
|
+
<span class="cline-any cline-yes">10x</span>
|
|
521
|
+
<span class="cline-any cline-yes">10x</span>
|
|
522
|
+
<span class="cline-any cline-yes">10x</span>
|
|
523
|
+
<span class="cline-any cline-yes">10x</span>
|
|
524
|
+
<span class="cline-any cline-yes">10x</span>
|
|
525
|
+
<span class="cline-any cline-yes">12x</span>
|
|
526
|
+
<span class="cline-any cline-yes">6x</span>
|
|
527
|
+
<span class="cline-any cline-yes">6x</span>
|
|
528
|
+
<span class="cline-any cline-yes">6x</span>
|
|
529
|
+
<span class="cline-any cline-yes">6x</span>
|
|
530
|
+
<span class="cline-any cline-yes">6x</span>
|
|
531
|
+
<span class="cline-any cline-yes">6x</span>
|
|
532
|
+
<span class="cline-any cline-yes">6x</span>
|
|
533
|
+
<span class="cline-any cline-yes">6x</span>
|
|
534
|
+
<span class="cline-any cline-yes">6x</span>
|
|
535
|
+
<span class="cline-any cline-yes">6x</span>
|
|
536
|
+
<span class="cline-any cline-yes">6x</span>
|
|
537
|
+
<span class="cline-any cline-yes">6x</span>
|
|
538
|
+
<span class="cline-any cline-yes">6x</span>
|
|
539
|
+
<span class="cline-any cline-yes">6x</span>
|
|
540
|
+
<span class="cline-any cline-yes">6x</span>
|
|
541
|
+
<span class="cline-any cline-yes">6x</span>
|
|
542
|
+
<span class="cline-any cline-yes">6x</span>
|
|
543
|
+
<span class="cline-any cline-yes">14x</span>
|
|
544
|
+
<span class="cline-any cline-yes">14x</span>
|
|
545
|
+
<span class="cline-any cline-yes">14x</span>
|
|
546
|
+
<span class="cline-any cline-yes">14x</span>
|
|
547
|
+
<span class="cline-any cline-yes">14x</span>
|
|
548
|
+
<span class="cline-any cline-yes">14x</span>
|
|
549
|
+
<span class="cline-any cline-yes">14x</span>
|
|
550
|
+
<span class="cline-any cline-yes">14x</span>
|
|
551
|
+
<span class="cline-any cline-yes">6x</span>
|
|
552
|
+
<span class="cline-any cline-yes">6x</span>
|
|
553
|
+
<span class="cline-any cline-yes">6x</span>
|
|
554
|
+
<span class="cline-any cline-yes">6x</span>
|
|
555
|
+
<span class="cline-any cline-yes">6x</span>
|
|
556
|
+
<span class="cline-any cline-yes">12x</span>
|
|
557
|
+
<span class="cline-any cline-no"> </span>
|
|
558
|
+
<span class="cline-any cline-no"> </span>
|
|
559
|
+
<span class="cline-any cline-no"> </span>
|
|
560
|
+
<span class="cline-any cline-no"> </span>
|
|
561
|
+
<span class="cline-any cline-no"> </span>
|
|
562
|
+
<span class="cline-any cline-no"> </span>
|
|
563
|
+
<span class="cline-any cline-yes">12x</span>
|
|
564
|
+
<span class="cline-any cline-yes">36x</span>
|
|
565
|
+
<span class="cline-any cline-yes">36x</span>
|
|
566
|
+
<span class="cline-any cline-yes">36x</span>
|
|
567
|
+
<span class="cline-any cline-yes">36x</span>
|
|
568
|
+
<span class="cline-any cline-yes">36x</span>
|
|
569
|
+
<span class="cline-any cline-yes">36x</span>
|
|
570
|
+
<span class="cline-any cline-yes">36x</span>
|
|
571
|
+
<span class="cline-any cline-yes">6x</span>
|
|
572
|
+
<span class="cline-any cline-yes">6x</span>
|
|
573
|
+
<span class="cline-any cline-yes">6x</span>
|
|
574
|
+
<span class="cline-any cline-yes">6x</span>
|
|
575
|
+
<span class="cline-any cline-yes">6x</span>
|
|
576
|
+
<span class="cline-any cline-yes">6x</span>
|
|
577
|
+
<span class="cline-any cline-yes">6x</span>
|
|
578
|
+
<span class="cline-any cline-yes">6x</span>
|
|
579
|
+
<span class="cline-any cline-no"> </span>
|
|
580
|
+
<span class="cline-any cline-no"> </span>
|
|
581
|
+
<span class="cline-any cline-no"> </span>
|
|
582
|
+
<span class="cline-any cline-no"> </span>
|
|
583
|
+
<span class="cline-any cline-no"> </span>
|
|
584
|
+
<span class="cline-any cline-no"> </span>
|
|
585
|
+
<span class="cline-any cline-no"> </span>
|
|
586
|
+
<span class="cline-any cline-no"> </span>
|
|
587
|
+
<span class="cline-any cline-yes">6x</span>
|
|
588
|
+
<span class="cline-any cline-yes">36x</span>
|
|
589
|
+
<span class="cline-any cline-yes">36x</span>
|
|
590
|
+
<span class="cline-any cline-yes">36x</span>
|
|
591
|
+
<span class="cline-any cline-yes">36x</span>
|
|
592
|
+
<span class="cline-any cline-yes">36x</span>
|
|
593
|
+
<span class="cline-any cline-yes">36x</span>
|
|
594
|
+
<span class="cline-any cline-yes">36x</span>
|
|
595
|
+
<span class="cline-any cline-yes">36x</span>
|
|
596
|
+
<span class="cline-any cline-yes">36x</span>
|
|
597
|
+
<span class="cline-any cline-yes">36x</span>
|
|
598
|
+
<span class="cline-any cline-yes">36x</span>
|
|
599
|
+
<span class="cline-any cline-yes">36x</span>
|
|
600
|
+
<span class="cline-any cline-yes">36x</span>
|
|
601
|
+
<span class="cline-any cline-yes">36x</span>
|
|
602
|
+
<span class="cline-any cline-yes">36x</span>
|
|
603
|
+
<span class="cline-any cline-yes">36x</span>
|
|
604
|
+
<span class="cline-any cline-yes">36x</span>
|
|
605
|
+
<span class="cline-any cline-yes">36x</span>
|
|
606
|
+
<span class="cline-any cline-yes">36x</span>
|
|
607
|
+
<span class="cline-any cline-yes">36x</span>
|
|
608
|
+
<span class="cline-any cline-yes">36x</span>
|
|
609
|
+
<span class="cline-any cline-yes">36x</span>
|
|
610
|
+
<span class="cline-any cline-yes">36x</span>
|
|
611
|
+
<span class="cline-any cline-yes">36x</span>
|
|
612
|
+
<span class="cline-any cline-yes">36x</span>
|
|
613
|
+
<span class="cline-any cline-yes">36x</span>
|
|
614
|
+
<span class="cline-any cline-yes">36x</span>
|
|
615
|
+
<span class="cline-any cline-yes">36x</span>
|
|
616
|
+
<span class="cline-any cline-yes">10x</span>
|
|
617
|
+
<span class="cline-any cline-yes">10x</span>
|
|
618
|
+
<span class="cline-any cline-yes">10x</span>
|
|
619
|
+
<span class="cline-any cline-yes">10x</span>
|
|
620
|
+
<span class="cline-any cline-yes">10x</span>
|
|
621
|
+
<span class="cline-any cline-yes">10x</span>
|
|
622
|
+
<span class="cline-any cline-yes">36x</span>
|
|
623
|
+
<span class="cline-any cline-yes">36x</span>
|
|
624
|
+
<span class="cline-any cline-yes">36x</span>
|
|
625
|
+
<span class="cline-any cline-yes">36x</span>
|
|
626
|
+
<span class="cline-any cline-yes">36x</span>
|
|
627
|
+
<span class="cline-any cline-yes">29x</span>
|
|
628
|
+
<span class="cline-any cline-yes">29x</span>
|
|
629
|
+
<span class="cline-any cline-yes">29x</span>
|
|
630
|
+
<span class="cline-any cline-yes">29x</span>
|
|
631
|
+
<span class="cline-any cline-yes">29x</span>
|
|
632
|
+
<span class="cline-any cline-yes">29x</span>
|
|
633
|
+
<span class="cline-any cline-yes">29x</span>
|
|
634
|
+
<span class="cline-any cline-yes">29x</span>
|
|
635
|
+
<span class="cline-any cline-yes">29x</span>
|
|
636
|
+
<span class="cline-any cline-yes">29x</span>
|
|
637
|
+
<span class="cline-any cline-yes">29x</span>
|
|
638
|
+
<span class="cline-any cline-yes">29x</span>
|
|
639
|
+
<span class="cline-any cline-yes">29x</span>
|
|
640
|
+
<span class="cline-any cline-yes">29x</span>
|
|
641
|
+
<span class="cline-any cline-yes">29x</span>
|
|
642
|
+
<span class="cline-any cline-yes">29x</span>
|
|
643
|
+
<span class="cline-any cline-yes">29x</span>
|
|
644
|
+
<span class="cline-any cline-yes">29x</span>
|
|
645
|
+
<span class="cline-any cline-yes">29x</span>
|
|
646
|
+
<span class="cline-any cline-yes">29x</span>
|
|
647
|
+
<span class="cline-any cline-yes">29x</span>
|
|
648
|
+
<span class="cline-any cline-yes">28x</span>
|
|
649
|
+
<span class="cline-any cline-yes">28x</span>
|
|
650
|
+
<span class="cline-any cline-yes">29x</span>
|
|
651
|
+
<span class="cline-any cline-yes">29x</span>
|
|
652
|
+
<span class="cline-any cline-yes">29x</span>
|
|
653
|
+
<span class="cline-any cline-yes">29x</span>
|
|
654
|
+
<span class="cline-any cline-yes">29x</span>
|
|
655
|
+
<span class="cline-any cline-yes">29x</span>
|
|
656
|
+
<span class="cline-any cline-yes">29x</span>
|
|
657
|
+
<span class="cline-any cline-yes">29x</span>
|
|
658
|
+
<span class="cline-any cline-yes">29x</span>
|
|
659
|
+
<span class="cline-any cline-yes">29x</span>
|
|
660
|
+
<span class="cline-any cline-yes">29x</span>
|
|
661
|
+
<span class="cline-any cline-yes">29x</span>
|
|
662
|
+
<span class="cline-any cline-yes">29x</span>
|
|
663
|
+
<span class="cline-any cline-yes">29x</span>
|
|
664
|
+
<span class="cline-any cline-yes">1x</span>
|
|
665
|
+
<span class="cline-any cline-yes">1x</span>
|
|
666
|
+
<span class="cline-any cline-yes">1x</span>
|
|
667
|
+
<span class="cline-any cline-yes">1x</span>
|
|
668
|
+
<span class="cline-any cline-yes">28x</span>
|
|
669
|
+
<span class="cline-any cline-yes">28x</span>
|
|
670
|
+
<span class="cline-any cline-no"> </span>
|
|
671
|
+
<span class="cline-any cline-no"> </span>
|
|
672
|
+
<span class="cline-any cline-no"> </span>
|
|
673
|
+
<span class="cline-any cline-no"> </span>
|
|
674
|
+
<span class="cline-any cline-yes">28x</span>
|
|
675
|
+
<span class="cline-any cline-yes">28x</span>
|
|
676
|
+
<span class="cline-any cline-yes">28x</span>
|
|
677
|
+
<span class="cline-any cline-yes">28x</span>
|
|
678
|
+
<span class="cline-any cline-yes">2x</span>
|
|
679
|
+
<span class="cline-any cline-yes">2x</span>
|
|
680
|
+
<span class="cline-any cline-yes">2x</span>
|
|
681
|
+
<span class="cline-any cline-yes">2x</span>
|
|
682
|
+
<span class="cline-any cline-yes">28x</span>
|
|
683
|
+
<span class="cline-any cline-yes">28x</span>
|
|
684
|
+
<span class="cline-any cline-yes">28x</span>
|
|
685
|
+
<span class="cline-any cline-yes">29x</span>
|
|
645
686
|
<span class="cline-any cline-no"> </span>
|
|
646
687
|
<span class="cline-any cline-no"> </span>
|
|
647
688
|
<span class="cline-any cline-no"> </span>
|
|
648
689
|
<span class="cline-any cline-no"> </span>
|
|
649
690
|
<span class="cline-any cline-no"> </span>
|
|
650
691
|
<span class="cline-any cline-no"> </span>
|
|
692
|
+
<span class="cline-any cline-yes">28x</span>
|
|
693
|
+
<span class="cline-any cline-yes">29x</span>
|
|
651
694
|
<span class="cline-any cline-no"> </span>
|
|
652
695
|
<span class="cline-any cline-no"> </span>
|
|
653
696
|
<span class="cline-any cline-no"> </span>
|
|
@@ -656,11 +699,48 @@
|
|
|
656
699
|
<span class="cline-any cline-no"> </span>
|
|
657
700
|
<span class="cline-any cline-no"> </span>
|
|
658
701
|
<span class="cline-any cline-no"> </span>
|
|
702
|
+
<span class="cline-any cline-yes">28x</span>
|
|
659
703
|
<span class="cline-any cline-no"> </span>
|
|
660
704
|
<span class="cline-any cline-no"> </span>
|
|
661
705
|
<span class="cline-any cline-no"> </span>
|
|
662
706
|
<span class="cline-any cline-no"> </span>
|
|
663
707
|
<span class="cline-any cline-no"> </span>
|
|
708
|
+
<span class="cline-any cline-yes">28x</span>
|
|
709
|
+
<span class="cline-any cline-yes">36x</span>
|
|
710
|
+
<span class="cline-any cline-yes">36x</span>
|
|
711
|
+
<span class="cline-any cline-yes">36x</span>
|
|
712
|
+
<span class="cline-any cline-yes">12x</span>
|
|
713
|
+
<span class="cline-any cline-yes">6x</span>
|
|
714
|
+
<span class="cline-any cline-yes">6x</span>
|
|
715
|
+
<span class="cline-any cline-yes">6x</span>
|
|
716
|
+
<span class="cline-any cline-yes">6x</span>
|
|
717
|
+
<span class="cline-any cline-yes">6x</span>
|
|
718
|
+
<span class="cline-any cline-yes">6x</span>
|
|
719
|
+
<span class="cline-any cline-yes">6x</span>
|
|
720
|
+
<span class="cline-any cline-yes">6x</span>
|
|
721
|
+
<span class="cline-any cline-yes">6x</span>
|
|
722
|
+
<span class="cline-any cline-yes">6x</span>
|
|
723
|
+
<span class="cline-any cline-yes">6x</span>
|
|
724
|
+
<span class="cline-any cline-yes">6x</span>
|
|
725
|
+
<span class="cline-any cline-yes">18x</span>
|
|
726
|
+
<span class="cline-any cline-yes">18x</span>
|
|
727
|
+
<span class="cline-any cline-yes">64x</span>
|
|
728
|
+
<span class="cline-any cline-yes">64x</span>
|
|
729
|
+
<span class="cline-any cline-yes">64x</span>
|
|
730
|
+
<span class="cline-any cline-yes">64x</span>
|
|
731
|
+
<span class="cline-any cline-yes">64x</span>
|
|
732
|
+
<span class="cline-any cline-yes">64x</span>
|
|
733
|
+
<span class="cline-any cline-yes">18x</span>
|
|
734
|
+
<span class="cline-any cline-yes">6x</span>
|
|
735
|
+
<span class="cline-any cline-yes">6x</span>
|
|
736
|
+
<span class="cline-any cline-yes">6x</span>
|
|
737
|
+
<span class="cline-any cline-yes">6x</span>
|
|
738
|
+
<span class="cline-any cline-yes">6x</span>
|
|
739
|
+
<span class="cline-any cline-yes">6x</span>
|
|
740
|
+
<span class="cline-any cline-yes">6x</span>
|
|
741
|
+
<span class="cline-any cline-yes">6x</span>
|
|
742
|
+
<span class="cline-any cline-yes">6x</span>
|
|
743
|
+
<span class="cline-any cline-yes">6x</span>
|
|
664
744
|
<span class="cline-any cline-no"> </span>
|
|
665
745
|
<span class="cline-any cline-no"> </span>
|
|
666
746
|
<span class="cline-any cline-no"> </span>
|
|
@@ -669,122 +749,90 @@
|
|
|
669
749
|
<span class="cline-any cline-no"> </span>
|
|
670
750
|
<span class="cline-any cline-no"> </span>
|
|
671
751
|
<span class="cline-any cline-no"> </span>
|
|
752
|
+
<span class="cline-any cline-yes">6x</span>
|
|
753
|
+
<span class="cline-any cline-yes">6x</span>
|
|
754
|
+
<span class="cline-any cline-yes">6x</span>
|
|
755
|
+
<span class="cline-any cline-yes">6x</span>
|
|
672
756
|
<span class="cline-any cline-yes">2x</span>
|
|
673
757
|
<span class="cline-any cline-yes">2x</span>
|
|
674
758
|
<span class="cline-any cline-yes">2x</span>
|
|
675
759
|
<span class="cline-any cline-yes">2x</span>
|
|
676
760
|
<span class="cline-any cline-yes">2x</span>
|
|
677
|
-
<span class="cline-any cline-yes">
|
|
678
|
-
<span class="cline-any cline-
|
|
679
|
-
<span class="cline-any cline-
|
|
680
|
-
<span class="cline-any cline-
|
|
681
|
-
<span class="cline-any cline-no"> </span>
|
|
682
|
-
<span class="cline-any cline-no"> </span>
|
|
683
|
-
<span class="cline-any cline-no"> </span>
|
|
761
|
+
<span class="cline-any cline-yes">12x</span>
|
|
762
|
+
<span class="cline-any cline-yes">12x</span>
|
|
763
|
+
<span class="cline-any cline-yes">12x</span>
|
|
764
|
+
<span class="cline-any cline-yes">20x</span>
|
|
684
765
|
<span class="cline-any cline-no"> </span>
|
|
685
766
|
<span class="cline-any cline-no"> </span>
|
|
767
|
+
<span class="cline-any cline-yes">20x</span>
|
|
768
|
+
<span class="cline-any cline-yes">28x</span>
|
|
769
|
+
<span class="cline-any cline-yes">28x</span>
|
|
770
|
+
<span class="cline-any cline-yes">28x</span>
|
|
686
771
|
<span class="cline-any cline-no"> </span>
|
|
687
772
|
<span class="cline-any cline-no"> </span>
|
|
688
773
|
<span class="cline-any cline-no"> </span>
|
|
689
774
|
<span class="cline-any cline-no"> </span>
|
|
775
|
+
<span class="cline-any cline-yes">28x</span>
|
|
776
|
+
<span class="cline-any cline-yes">20x</span>
|
|
777
|
+
<span class="cline-any cline-yes">20x</span>
|
|
690
778
|
<span class="cline-any cline-no"> </span>
|
|
691
779
|
<span class="cline-any cline-no"> </span>
|
|
692
780
|
<span class="cline-any cline-no"> </span>
|
|
693
781
|
<span class="cline-any cline-no"> </span>
|
|
782
|
+
<span class="cline-any cline-yes">20x</span>
|
|
783
|
+
<span class="cline-any cline-yes">20x</span>
|
|
784
|
+
<span class="cline-any cline-yes">28x</span>
|
|
694
785
|
<span class="cline-any cline-no"> </span>
|
|
695
786
|
<span class="cline-any cline-no"> </span>
|
|
696
787
|
<span class="cline-any cline-no"> </span>
|
|
697
788
|
<span class="cline-any cline-no"> </span>
|
|
698
789
|
<span class="cline-any cline-no"> </span>
|
|
699
790
|
<span class="cline-any cline-no"> </span>
|
|
700
|
-
<span class="cline-any cline-
|
|
701
|
-
<span class="cline-any cline-
|
|
702
|
-
<span class="cline-any cline-
|
|
703
|
-
<span class="cline-any cline-
|
|
704
|
-
<span class="cline-any cline-
|
|
705
|
-
<span class="cline-any cline-
|
|
706
|
-
<span class="cline-any cline-
|
|
707
|
-
<span class="cline-any cline-
|
|
708
|
-
<span class="cline-any cline-
|
|
709
|
-
<span class="cline-any cline-
|
|
710
|
-
<span class="cline-any cline-
|
|
711
|
-
<span class="cline-any cline-
|
|
712
|
-
<span class="cline-any cline-
|
|
713
|
-
<span class="cline-any cline-yes">
|
|
714
|
-
<span class="cline-any cline-yes">
|
|
715
|
-
<span class="cline-any cline-yes">
|
|
716
|
-
<span class="cline-any cline-yes">
|
|
717
|
-
<span class="cline-any cline-yes">
|
|
718
|
-
<span class="cline-any cline-yes">
|
|
719
|
-
<span class="cline-any cline-yes">
|
|
720
|
-
<span class="cline-any cline-yes">
|
|
721
|
-
<span class="cline-any cline-yes">
|
|
722
|
-
<span class="cline-any cline-yes">
|
|
723
|
-
<span class="cline-any cline-yes">
|
|
724
|
-
<span class="cline-any cline-yes">
|
|
725
|
-
<span class="cline-any cline-yes">
|
|
726
|
-
<span class="cline-any cline-yes">
|
|
791
|
+
<span class="cline-any cline-yes">28x</span>
|
|
792
|
+
<span class="cline-any cline-yes">28x</span>
|
|
793
|
+
<span class="cline-any cline-yes">28x</span>
|
|
794
|
+
<span class="cline-any cline-yes">28x</span>
|
|
795
|
+
<span class="cline-any cline-yes">28x</span>
|
|
796
|
+
<span class="cline-any cline-yes">28x</span>
|
|
797
|
+
<span class="cline-any cline-yes">28x</span>
|
|
798
|
+
<span class="cline-any cline-yes">28x</span>
|
|
799
|
+
<span class="cline-any cline-yes">6x</span>
|
|
800
|
+
<span class="cline-any cline-yes">6x</span>
|
|
801
|
+
<span class="cline-any cline-yes">28x</span>
|
|
802
|
+
<span class="cline-any cline-yes">28x</span>
|
|
803
|
+
<span class="cline-any cline-yes">28x</span>
|
|
804
|
+
<span class="cline-any cline-yes">28x</span>
|
|
805
|
+
<span class="cline-any cline-yes">28x</span>
|
|
806
|
+
<span class="cline-any cline-yes">28x</span>
|
|
807
|
+
<span class="cline-any cline-yes">28x</span>
|
|
808
|
+
<span class="cline-any cline-yes">28x</span>
|
|
809
|
+
<span class="cline-any cline-yes">28x</span>
|
|
810
|
+
<span class="cline-any cline-yes">28x</span>
|
|
811
|
+
<span class="cline-any cline-yes">28x</span>
|
|
812
|
+
<span class="cline-any cline-yes">28x</span>
|
|
813
|
+
<span class="cline-any cline-yes">28x</span>
|
|
814
|
+
<span class="cline-any cline-yes">28x</span>
|
|
815
|
+
<span class="cline-any cline-yes">28x</span>
|
|
816
|
+
<span class="cline-any cline-yes">28x</span>
|
|
817
|
+
<span class="cline-any cline-yes">20x</span>
|
|
818
|
+
<span class="cline-any cline-yes">12x</span>
|
|
819
|
+
<span class="cline-any cline-yes">12x</span>
|
|
820
|
+
<span class="cline-any cline-yes">2x</span>
|
|
821
|
+
<span class="cline-any cline-yes">2x</span>
|
|
727
822
|
<span class="cline-any cline-yes">2x</span>
|
|
728
823
|
<span class="cline-any cline-yes">2x</span>
|
|
729
824
|
<span class="cline-any cline-yes">2x</span>
|
|
730
825
|
<span class="cline-any cline-yes">2x</span>
|
|
731
826
|
<span class="cline-any cline-yes">2x</span>
|
|
732
827
|
<span class="cline-any cline-yes">2x</span>
|
|
733
|
-
<span class="cline-any cline-yes">3x</span>
|
|
734
|
-
<span class="cline-any cline-yes">1x</span>
|
|
735
|
-
<span class="cline-any cline-yes">1x</span>
|
|
736
|
-
<span class="cline-any cline-yes">1x</span>
|
|
737
|
-
<span class="cline-any cline-yes">1x</span>
|
|
738
|
-
<span class="cline-any cline-yes">1x</span>
|
|
739
|
-
<span class="cline-any cline-yes">1x</span>
|
|
740
|
-
<span class="cline-any cline-yes">1x</span>
|
|
741
|
-
<span class="cline-any cline-yes">1x</span>
|
|
742
|
-
<span class="cline-any cline-yes">1x</span>
|
|
743
|
-
<span class="cline-any cline-yes">1x</span>
|
|
744
|
-
<span class="cline-any cline-no"> </span>
|
|
745
|
-
<span class="cline-any cline-no"> </span>
|
|
746
|
-
<span class="cline-any cline-no"> </span>
|
|
747
|
-
<span class="cline-any cline-no"> </span>
|
|
748
|
-
<span class="cline-any cline-no"> </span>
|
|
749
|
-
<span class="cline-any cline-no"> </span>
|
|
750
|
-
<span class="cline-any cline-yes">92x</span>
|
|
751
|
-
<span class="cline-any cline-yes">92x</span>
|
|
752
|
-
<span class="cline-any cline-yes">92x</span>
|
|
753
|
-
<span class="cline-any cline-yes">92x</span>
|
|
754
|
-
<span class="cline-any cline-yes">92x</span>
|
|
755
|
-
<span class="cline-any cline-yes">92x</span>
|
|
756
|
-
<span class="cline-any cline-yes">92x</span>
|
|
757
|
-
<span class="cline-any cline-yes">92x</span>
|
|
758
|
-
<span class="cline-any cline-yes">92x</span>
|
|
759
|
-
<span class="cline-any cline-yes">158x</span>
|
|
760
|
-
<span class="cline-any cline-yes">158x</span>
|
|
761
828
|
<span class="cline-any cline-yes">2x</span>
|
|
762
829
|
<span class="cline-any cline-yes">2x</span>
|
|
763
830
|
<span class="cline-any cline-yes">2x</span>
|
|
764
|
-
<span class="cline-any cline-yes">1x</span>
|
|
765
|
-
<span class="cline-any cline-no"> </span>
|
|
766
|
-
<span class="cline-any cline-no"> </span>
|
|
767
|
-
<span class="cline-any cline-yes">1x</span>
|
|
768
831
|
<span class="cline-any cline-yes">2x</span>
|
|
769
832
|
<span class="cline-any cline-yes">2x</span>
|
|
770
833
|
<span class="cline-any cline-yes">2x</span>
|
|
771
|
-
<span class="cline-any cline-no"> </span>
|
|
772
|
-
<span class="cline-any cline-no"> </span>
|
|
773
|
-
<span class="cline-any cline-no"> </span>
|
|
774
|
-
<span class="cline-any cline-no"> </span>
|
|
775
834
|
<span class="cline-any cline-yes">2x</span>
|
|
776
|
-
<span class="cline-any cline-no"> </span>
|
|
777
|
-
<span class="cline-any cline-no"> </span>
|
|
778
|
-
<span class="cline-any cline-no"> </span>
|
|
779
|
-
<span class="cline-any cline-no"> </span>
|
|
780
|
-
<span class="cline-any cline-no"> </span>
|
|
781
|
-
<span class="cline-any cline-no"> </span>
|
|
782
|
-
<span class="cline-any cline-no"> </span>
|
|
783
|
-
<span class="cline-any cline-no"> </span>
|
|
784
835
|
<span class="cline-any cline-yes">2x</span>
|
|
785
|
-
<span class="cline-any cline-no"> </span>
|
|
786
|
-
<span class="cline-any cline-no"> </span>
|
|
787
|
-
<span class="cline-any cline-no"> </span>
|
|
788
836
|
<span class="cline-any cline-no"> </span>
|
|
789
837
|
<span class="cline-any cline-no"> </span>
|
|
790
838
|
<span class="cline-any cline-no"> </span>
|
|
@@ -796,8 +844,6 @@
|
|
|
796
844
|
<span class="cline-any cline-yes">2x</span>
|
|
797
845
|
<span class="cline-any cline-yes">2x</span>
|
|
798
846
|
<span class="cline-any cline-yes">2x</span>
|
|
799
|
-
<span class="cline-any cline-no"> </span>
|
|
800
|
-
<span class="cline-any cline-no"> </span>
|
|
801
847
|
<span class="cline-any cline-yes">2x</span>
|
|
802
848
|
<span class="cline-any cline-yes">2x</span>
|
|
803
849
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -805,80 +851,34 @@
|
|
|
805
851
|
<span class="cline-any cline-yes">2x</span>
|
|
806
852
|
<span class="cline-any cline-yes">2x</span>
|
|
807
853
|
<span class="cline-any cline-yes">2x</span>
|
|
854
|
+
<span class="cline-any cline-no"> </span>
|
|
855
|
+
<span class="cline-any cline-no"> </span>
|
|
808
856
|
<span class="cline-any cline-yes">2x</span>
|
|
809
857
|
<span class="cline-any cline-yes">2x</span>
|
|
810
858
|
<span class="cline-any cline-yes">2x</span>
|
|
811
859
|
<span class="cline-any cline-yes">2x</span>
|
|
812
860
|
<span class="cline-any cline-yes">2x</span>
|
|
861
|
+
<span class="cline-any cline-yes">16x</span>
|
|
862
|
+
<span class="cline-any cline-yes">6x</span>
|
|
863
|
+
<span class="cline-any cline-yes">6x</span>
|
|
864
|
+
<span class="cline-any cline-yes">6x</span>
|
|
865
|
+
<span class="cline-any cline-yes">6x</span>
|
|
866
|
+
<span class="cline-any cline-yes">10x</span>
|
|
867
|
+
<span class="cline-any cline-yes">16x</span>
|
|
813
868
|
<span class="cline-any cline-yes">2x</span>
|
|
814
869
|
<span class="cline-any cline-yes">2x</span>
|
|
815
870
|
<span class="cline-any cline-yes">2x</span>
|
|
816
871
|
<span class="cline-any cline-yes">2x</span>
|
|
817
|
-
<span class="cline-any cline-yes">
|
|
872
|
+
<span class="cline-any cline-yes">2x</span>
|
|
873
|
+
<span class="cline-any cline-yes">4x</span>
|
|
874
|
+
<span class="cline-any cline-yes">4x</span>
|
|
875
|
+
<span class="cline-any cline-yes">2x</span>
|
|
876
|
+
<span class="cline-any cline-yes">2x</span>
|
|
877
|
+
<span class="cline-any cline-yes">6x</span>
|
|
878
|
+
<span class="cline-any cline-yes">6x</span>
|
|
879
|
+
<span class="cline-any cline-yes">2x</span>
|
|
818
880
|
<span class="cline-any cline-yes">2x</span>
|
|
819
881
|
<span class="cline-any cline-yes">2x</span>
|
|
820
|
-
<span class="cline-any cline-yes">15x</span>
|
|
821
|
-
<span class="cline-any cline-yes">15x</span>
|
|
822
|
-
<span class="cline-any cline-yes">15x</span>
|
|
823
|
-
<span class="cline-any cline-yes">15x</span>
|
|
824
|
-
<span class="cline-any cline-yes">15x</span>
|
|
825
|
-
<span class="cline-any cline-yes">15x</span>
|
|
826
|
-
<span class="cline-any cline-yes">15x</span>
|
|
827
|
-
<span class="cline-any cline-no"> </span>
|
|
828
|
-
<span class="cline-any cline-no"> </span>
|
|
829
|
-
<span class="cline-any cline-yes">15x</span>
|
|
830
|
-
<span class="cline-any cline-yes">15x</span>
|
|
831
|
-
<span class="cline-any cline-yes">15x</span>
|
|
832
|
-
<span class="cline-any cline-yes">15x</span>
|
|
833
|
-
<span class="cline-any cline-yes">15x</span>
|
|
834
|
-
<span class="cline-any cline-yes">15x</span>
|
|
835
|
-
<span class="cline-any cline-yes">15x</span>
|
|
836
|
-
<span class="cline-any cline-yes">2x</span>
|
|
837
|
-
<span class="cline-any cline-yes">2x</span>
|
|
838
|
-
<span class="cline-any cline-yes">2x</span>
|
|
839
|
-
<span class="cline-any cline-yes">15x</span>
|
|
840
|
-
<span class="cline-any cline-yes">15x</span>
|
|
841
|
-
<span class="cline-any cline-yes">15x</span>
|
|
842
|
-
<span class="cline-any cline-yes">15x</span>
|
|
843
|
-
<span class="cline-any cline-yes">15x</span>
|
|
844
|
-
<span class="cline-any cline-yes">15x</span>
|
|
845
|
-
<span class="cline-any cline-yes">15x</span>
|
|
846
|
-
<span class="cline-any cline-yes">15x</span>
|
|
847
|
-
<span class="cline-any cline-yes">15x</span>
|
|
848
|
-
<span class="cline-any cline-yes">15x</span>
|
|
849
|
-
<span class="cline-any cline-yes">15x</span>
|
|
850
|
-
<span class="cline-any cline-yes">15x</span>
|
|
851
|
-
<span class="cline-any cline-yes">123x</span>
|
|
852
|
-
<span class="cline-any cline-yes">123x</span>
|
|
853
|
-
<span class="cline-any cline-yes">123x</span>
|
|
854
|
-
<span class="cline-any cline-yes">1x</span>
|
|
855
|
-
<span class="cline-any cline-yes">1x</span>
|
|
856
|
-
<span class="cline-any cline-yes">45x</span>
|
|
857
|
-
<span class="cline-any cline-yes">45x</span>
|
|
858
|
-
<span class="cline-any cline-yes">123x</span>
|
|
859
|
-
<span class="cline-any cline-yes">78x</span>
|
|
860
|
-
<span class="cline-any cline-yes">78x</span>
|
|
861
|
-
<span class="cline-any cline-yes">3x</span>
|
|
862
|
-
<span class="cline-any cline-no"> </span>
|
|
863
|
-
<span class="cline-any cline-yes">31x</span>
|
|
864
|
-
<span class="cline-any cline-yes">31x</span>
|
|
865
|
-
<span class="cline-any cline-yes">31x</span>
|
|
866
|
-
<span class="cline-any cline-yes">3x</span>
|
|
867
|
-
<span class="cline-any cline-yes">46x</span>
|
|
868
|
-
<span class="cline-any cline-yes">46x</span>
|
|
869
|
-
<span class="cline-any cline-yes">46x</span>
|
|
870
|
-
<span class="cline-any cline-yes">15x</span>
|
|
871
|
-
<span class="cline-any cline-yes">15x</span>
|
|
872
|
-
<span class="cline-any cline-yes">1x</span>
|
|
873
|
-
<span class="cline-any cline-yes">1x</span>
|
|
874
|
-
<span class="cline-any cline-yes">1x</span>
|
|
875
|
-
<span class="cline-any cline-yes">1x</span>
|
|
876
|
-
<span class="cline-any cline-yes">1x</span>
|
|
877
|
-
<span class="cline-any cline-yes">1x</span>
|
|
878
|
-
<span class="cline-any cline-yes">1x</span>
|
|
879
|
-
<span class="cline-any cline-yes">1x</span>
|
|
880
|
-
<span class="cline-any cline-yes">1x</span>
|
|
881
|
-
<span class="cline-any cline-yes">1x</span>
|
|
882
882
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable no-restricted-syntax */
|
|
883
883
|
/* eslint-disable guard-for-in */
|
|
884
884
|
const express = require('express');
|
|
@@ -898,7 +898,7 @@ class AbstractController extends Base {
|
|
|
898
898
|
constructor(app, prefix, isExpressMergeParams = false) {
|
|
899
899
|
const time = Date.now();
|
|
900
900
|
super(app);
|
|
901
|
-
this.prefix =
|
|
901
|
+
this.prefix = prefix;
|
|
902
902
|
this.router = express.Router({
|
|
903
903
|
mergeParams: isExpressMergeParams,
|
|
904
904
|
});
|
|
@@ -909,28 +909,28 @@ class AbstractController extends Base {
|
|
|
909
909
|
<span class="cstat-no" title="statement not covered" > this.logger.warn(</span>
|
|
910
910
|
<span class="cstat-no" title="statement not covered" > `getExpressPath deprecated. Please use getHttpPath instead. Will be removed on v5`,</span>
|
|
911
911
|
<span class="cstat-no" title="statement not covered" > );</span>
|
|
912
|
-
httpPath = this.getExpressPath()
|
|
913
|
-
}
|
|
912
|
+
<span class="cstat-no" title="statement not covered" > httpPath = this.getExpressPath();</span>
|
|
913
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
914
914
|
|
|
915
915
|
/**
|
|
916
916
|
* Grab route middleware onlo one Map
|
|
917
917
|
*/
|
|
918
918
|
const routeMiddlewares = new Map();
|
|
919
919
|
Object.entries(routes).forEach(([method, methodRoutes]) => {
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
920
|
+
Object.entries(methodRoutes).forEach(([route, routeParam]) => {
|
|
921
|
+
if (routeParam?.middleware) {
|
|
922
|
+
const fullRoute = method.toUpperCase() + route;
|
|
923
|
+
|
|
924
|
+
if (!routeMiddlewares.has(fullRoute)) {
|
|
925
|
+
routeMiddlewares.set(fullRoute, []);
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
routeMiddlewares.set(fullRoute, [
|
|
929
|
+
...routeMiddlewares.get(fullRoute),
|
|
930
|
+
...routeParam.middleware,
|
|
931
|
+
]);
|
|
932
|
+
}
|
|
933
|
+
});
|
|
934
934
|
});
|
|
935
935
|
|
|
936
936
|
const routeMiddlewaresReg = this.parseMiddlewares(
|
|
@@ -952,7 +952,7 @@ class AbstractController extends Base {
|
|
|
952
952
|
middleware.path,
|
|
953
953
|
new middleware.MiddlewareFunction(
|
|
954
954
|
this.app,
|
|
955
|
-
|
|
955
|
+
middleware.params,
|
|
956
956
|
).getMiddleware(),
|
|
957
957
|
);
|
|
958
958
|
}
|
|
@@ -960,30 +960,30 @@ class AbstractController extends Base {
|
|
|
960
960
|
/**
|
|
961
961
|
* Register routes itself
|
|
962
962
|
*/
|
|
963
|
-
for (const verb in routes)
|
|
964
|
-
<span class="
|
|
963
|
+
for (const verb in routes) {
|
|
964
|
+
if (typeof this.router[verb] !== 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
965
965
|
<span class="cstat-no" title="statement not covered" > this.logger.error(</span>
|
|
966
966
|
<span class="cstat-no" title="statement not covered" > `Method ${verb} not exist for router. Please check your codebase`,</span>
|
|
967
967
|
<span class="cstat-no" title="statement not covered" > );</span>
|
|
968
968
|
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line no-continue</span>
|
|
969
|
-
continue
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
<span class="
|
|
969
|
+
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
970
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
971
|
+
for (const path in routes[verb]) {
|
|
972
|
+
const routeAdditionalMiddlewares = routeMiddlewaresReg.filter(
|
|
973
|
+
(middleware) =>
|
|
974
|
+
middleware.path === path && middleware.method === verb,
|
|
975
|
+
);
|
|
976
|
+
|
|
977
|
+
let routeObject = routes[verb][path];
|
|
978
|
+
if (Object.prototype.toString.call(routeObject) !== '[object Object]') {
|
|
979
|
+
routeObject = {
|
|
980
|
+
handler: routeObject,
|
|
981
|
+
request: null,
|
|
982
|
+
query: null,
|
|
983
|
+
middleware: null,
|
|
984
|
+
};
|
|
985
|
+
|
|
986
|
+
if (typeof routeObject.handler !== 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
987
987
|
<span class="cstat-no" title="statement not covered" > this.logger.error(</span>
|
|
988
988
|
<span class="cstat-no" title="statement not covered" > `Can't resolve function '${</span>
|
|
989
989
|
<span class="cstat-no" title="statement not covered" > routeObject.handler</span>
|
|
@@ -992,39 +992,39 @@ class AbstractController extends Base {
|
|
|
992
992
|
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line no-continue</span>
|
|
993
993
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
994
994
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
let fnName = routeObject.handler;
|
|
998
|
+
if (typeof fnName === 'function') {
|
|
999
|
+
fnName = fnName.name;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
const fullPath = `/${httpPath}/${path}`
|
|
1003
|
+
.split('//')
|
|
1004
|
+
.join('/')
|
|
1005
|
+
.split('//')
|
|
1006
|
+
.join('/');
|
|
1007
|
+
|
|
1008
|
+
routesInfo.push({
|
|
1009
|
+
name: fnName,
|
|
1010
|
+
description: routeObject?.description,
|
|
1011
|
+
method: verb.toUpperCase(),
|
|
1012
|
+
fields: routeObject?.request?.fields,
|
|
1013
|
+
queryFields: routeObject?.query?.fields,
|
|
1014
|
+
path,
|
|
1015
|
+
fullPath,
|
|
1016
|
+
});
|
|
1017
|
+
// this.logger.verbose(
|
|
1018
|
+
// `Controller '${this.getConstructorName()}' register function '${fnName}' for method '${verb}' and path '${path}' Full path '${fullPath}'`,
|
|
1019
|
+
// );
|
|
1020
|
+
|
|
1021
|
+
let additionalMiddlewares;
|
|
1022
1022
|
|
|
1023
1023
|
if (routeAdditionalMiddlewares.length > 0) {
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1024
|
+
additionalMiddlewares = Array.from(
|
|
1025
|
+
routeAdditionalMiddlewares,
|
|
1026
|
+
({ MiddlewareFunction, params }) =>
|
|
1027
|
+
new MiddlewareFunction(this.app, params).getMiddleware(),
|
|
1028
1028
|
);
|
|
1029
1029
|
}
|
|
1030
1030
|
|
|
@@ -1032,73 +1032,73 @@ class AbstractController extends Base {
|
|
|
1032
1032
|
path,
|
|
1033
1033
|
additionalMiddlewares || [],
|
|
1034
1034
|
async (req, res, next) => {
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
<span class="
|
|
1035
|
+
const requestObj = {
|
|
1036
|
+
query: req.query,
|
|
1037
|
+
body: req.body,
|
|
1038
|
+
appInfo: req.appInfo,
|
|
1039
|
+
};
|
|
1040
|
+
try {
|
|
1041
|
+
req.appInfo.request = await new ValidateService(
|
|
1042
|
+
this.app,
|
|
1043
|
+
routeObject?.request,
|
|
1044
|
+
).validateReqData(requestObj, {
|
|
1045
|
+
selectedReqData: req.body,
|
|
1046
|
+
additionalMiddlewareFieldsData: {
|
|
1047
|
+
middlewaresInfo,
|
|
1048
|
+
routeMiddlewaresReg,
|
|
1049
|
+
options: {
|
|
1050
|
+
method: verb,
|
|
1051
|
+
path: fullPath,
|
|
1052
|
+
prefix: 'request',
|
|
1053
|
+
},
|
|
1054
|
+
},
|
|
1055
|
+
});
|
|
1056
|
+
req.appInfo.query = await new ValidateService(
|
|
1057
|
+
this.app,
|
|
1058
|
+
routeObject?.query,
|
|
1059
|
+
).validateReqData(requestObj, {
|
|
1060
|
+
selectedReqData: req.query,
|
|
1061
|
+
additionalMiddlewareFieldsData: {
|
|
1062
|
+
middlewaresInfo,
|
|
1063
|
+
routeMiddlewaresReg,
|
|
1064
|
+
options: {
|
|
1065
|
+
method: verb,
|
|
1066
|
+
path: fullPath,
|
|
1067
|
+
prefix: 'query',
|
|
1068
|
+
},
|
|
1069
|
+
},
|
|
1070
|
+
});
|
|
1071
|
+
} catch (err) {
|
|
1072
|
+
return res.status(400).json({
|
|
1073
|
+
errors: err.message,
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
req.body = new Proxy(req.body, {
|
|
1077
|
+
get: <span class="fstat-no" title="function not covered" >(target, prop) => {</span>
|
|
1078
1078
|
<span class="cstat-no" title="statement not covered" > this.logger.warn(</span>
|
|
1079
1079
|
<span class="cstat-no" title="statement not covered" > 'Please not use "req.body" directly. Implement "request" and use "req.appInfo.request" ',</span>
|
|
1080
|
-
)
|
|
1081
|
-
return target[prop]
|
|
1080
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
1081
|
+
<span class="cstat-no" title="statement not covered" > return target[prop];</span>
|
|
1082
1082
|
},
|
|
1083
1083
|
});
|
|
1084
1084
|
req.query = new Proxy(req.query, {
|
|
1085
1085
|
get: (target, prop) => {
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
<span class="
|
|
1086
|
+
this.logger.warn(
|
|
1087
|
+
'Please not use "req.query" directly. Implement "query" and use "req.appInfo.query" ',
|
|
1088
|
+
);
|
|
1089
|
+
return target[prop];
|
|
1090
|
+
},
|
|
1091
|
+
});
|
|
1092
|
+
|
|
1093
|
+
if (!routeObject.handler) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1094
1094
|
<span class="cstat-no" title="statement not covered" > this.logger.error(`Route object have no handler defined`);</span>
|
|
1095
1095
|
<span class="cstat-no" title="statement not covered" > return res.status(500).json({</span>
|
|
1096
1096
|
<span class="cstat-no" title="statement not covered" > message:</span>
|
|
1097
|
-
<span class="cstat-no" title="statement not covered"
|
|
1097
|
+
<span class="cstat-no" title="statement not covered" > 'Platform error 2. Please check later or contact support',</span>
|
|
1098
1098
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1099
1099
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1100
|
-
|
|
1101
|
-
<span class="
|
|
1100
|
+
|
|
1101
|
+
if (routeObject.handler.constructor.name !== 'AsyncFunction') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1102
1102
|
<span class="cstat-no" title="statement not covered" > const error =</span>
|
|
1103
1103
|
<span class="cstat-no" title="statement not covered" > "Handler should be AsyncFunction. Perhabs you miss 'async' of function declaration?";</span>
|
|
1104
1104
|
<span class="cstat-no" title="statement not covered" > this.logger.error(error);</span>
|
|
@@ -1107,17 +1107,17 @@ class AbstractController extends Base {
|
|
|
1107
1107
|
<span class="cstat-no" title="statement not covered" > 'Platform error. Please check later or contact support',</span>
|
|
1108
1108
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1109
1109
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1110
|
-
|
|
1110
|
+
return routeObject.handler.call(this, req, res, next).catch((e) => {
|
|
1111
1111
|
<span class="cstat-no" title="statement not covered" > this.logger.error(e);</span>
|
|
1112
1112
|
<span class="cstat-no" title="statement not covered" > return res.status(500).json({</span>
|
|
1113
1113
|
<span class="cstat-no" title="statement not covered" > message:</span>
|
|
1114
1114
|
<span class="cstat-no" title="statement not covered" > 'Platform error. Please check later or contact support',</span>
|
|
1115
1115
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1116
|
+
});
|
|
1117
|
+
},
|
|
1118
|
+
);
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
1121
|
|
|
1122
1122
|
/**
|
|
1123
1123
|
* Generate text info
|
|
@@ -1140,7 +1140,7 @@ class AbstractController extends Base {
|
|
|
1140
1140
|
}
|
|
1141
1141
|
}
|
|
1142
1142
|
|
|
1143
|
-
text.push(`Time: ${
|
|
1143
|
+
text.push(`Time: ${Date.now() - time} ms`);
|
|
1144
1144
|
|
|
1145
1145
|
this.logger.verbose(text.join('\n'));
|
|
1146
1146
|
this.loadedTime = Date.now() - time;
|
|
@@ -1155,8 +1155,8 @@ class AbstractController extends Base {
|
|
|
1155
1155
|
<span class="cstat-no" title="statement not covered" > routesInfo,</span>
|
|
1156
1156
|
<span class="cstat-no" title="statement not covered" > middlewaresInfo,</span>
|
|
1157
1157
|
<span class="cstat-no" title="statement not covered" > routeMiddlewaresReg,</span>
|
|
1158
|
-
)
|
|
1159
|
-
)
|
|
1158
|
+
<span class="cstat-no" title="statement not covered" > ),</span>
|
|
1159
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
1160
1160
|
} else {
|
|
1161
1161
|
this.app.httpServer.express.use(httpPath, this.router);
|
|
1162
1162
|
}
|
|
@@ -1165,11 +1165,11 @@ class AbstractController extends Base {
|
|
|
1165
1165
|
/**
|
|
1166
1166
|
* Parse middlewares to be an object.
|
|
1167
1167
|
*/
|
|
1168
|
-
parseMiddlewares(
|
|
1168
|
+
parseMiddlewares(middlewareMap, httpPath) {
|
|
1169
1169
|
const middlewaresInfo = [];
|
|
1170
1170
|
// eslint-disable-next-line prefer-const
|
|
1171
1171
|
for (let [path, middleware] of middlewareMap) {
|
|
1172
|
-
if (!Array.isArray(
|
|
1172
|
+
if (!Array.isArray(middleware)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1173
1173
|
<span class="cstat-no" title="statement not covered" > middleware = [middleware];</span>
|
|
1174
1174
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1175
1175
|
for (const M of middleware) {
|
|
@@ -1177,18 +1177,18 @@ class AbstractController extends Base {
|
|
|
1177
1177
|
let realPath = path;
|
|
1178
1178
|
if (typeof realPath !== 'string') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1179
1179
|
<span class="cstat-no" title="statement not covered" > this.logger.error(`Path not a string ${realPath}. Please check it`);</span>
|
|
1180
|
-
<span class="cstat-no" title="statement not covered" > //
|
|
1180
|
+
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line no-continue</span>
|
|
1181
1181
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
1182
1182
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1183
|
-
if (!realPath.startsWith('/'))
|
|
1184
|
-
|
|
1185
|
-
<span class="
|
|
1183
|
+
if (!realPath.startsWith('/')) {
|
|
1184
|
+
method = realPath.split('/')[0]?.toLowerCase();
|
|
1185
|
+
if (!method) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1186
1186
|
<span class="cstat-no" title="statement not covered" > this.logger.error(`Method not found for ${realPath}`);</span>
|
|
1187
|
-
<span class="cstat-no" title="statement not covered" > // eslint
|
|
1187
|
+
<span class="cstat-no" title="statement not covered" > // eslint-disable-next-line no-continue</span>
|
|
1188
1188
|
<span class="cstat-no" title="statement not covered" > continue;</span>
|
|
1189
1189
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1190
|
-
|
|
1191
|
-
|
|
1190
|
+
realPath = realPath.substring(method.length);
|
|
1191
|
+
}
|
|
1192
1192
|
if (typeof this.router[method] !== 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1193
1193
|
<span class="cstat-no" title="statement not covered" > this.logger.error(</span>
|
|
1194
1194
|
<span class="cstat-no" title="statement not covered" > `Method ${method} not exist for middleware. Please check your codebase`,</span>
|
|
@@ -1203,9 +1203,9 @@ class AbstractController extends Base {
|
|
|
1203
1203
|
.join('/');
|
|
1204
1204
|
let MiddlewareFunction = M;
|
|
1205
1205
|
let middlewareParams = {};
|
|
1206
|
-
if (Array.isArray(M))
|
|
1207
|
-
|
|
1208
|
-
|
|
1206
|
+
if (Array.isArray(M)) {
|
|
1207
|
+
[MiddlewareFunction, middlewareParams] = M;
|
|
1208
|
+
}
|
|
1209
1209
|
|
|
1210
1210
|
middlewaresInfo.push({
|
|
1211
1211
|
name: MiddlewareFunction.name,
|
|
@@ -1231,19 +1231,19 @@ class AbstractController extends Base {
|
|
|
1231
1231
|
* @example
|
|
1232
1232
|
* return {
|
|
1233
1233
|
* post: {
|
|
1234
|
-
* "/someUrl":
|
|
1235
|
-
|
|
1236
|
-
|
|
1234
|
+
* "/someUrl": {
|
|
1235
|
+
* handler: this.postSomeUrl,
|
|
1236
|
+
* request: yup.object().shape({
|
|
1237
1237
|
* count: yup.number().max(100)required(),
|
|
1238
1238
|
* })
|
|
1239
1239
|
* }
|
|
1240
1240
|
* },
|
|
1241
1241
|
* };
|
|
1242
1242
|
*/
|
|
1243
|
-
get routes() {
|
|
1244
|
-
this.logger.warn('Please implement "routes" method on controller.')
|
|
1245
|
-
return {}
|
|
1246
|
-
}
|
|
1243
|
+
<span class="fstat-no" title="function not covered" > get routes() {</span>
|
|
1244
|
+
<span class="cstat-no" title="statement not covered" > this.logger.warn('Please implement "routes" method on controller.');</span>
|
|
1245
|
+
<span class="cstat-no" title="statement not covered" > return {};</span>
|
|
1246
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1247
1247
|
|
|
1248
1248
|
/**
|
|
1249
1249
|
* Array of middlewares to append for route
|
|
@@ -1254,20 +1254,20 @@ class AbstractController extends Base {
|
|
|
1254
1254
|
* return new Map([
|
|
1255
1255
|
* ['/*', [GetUserByToken]] // for any method for this controller
|
|
1256
1256
|
* ['POST/', [Auth]] // for POST method
|
|
1257
|
-
|
|
1257
|
+
* ['/superSecretMethod', [OnlySuperSecretUsers]] // route with ANY method
|
|
1258
1258
|
* ['PUT/superSecretMathod', [OnlySuperSecretAdmin]] // route with PUT method
|
|
1259
1259
|
* ]);
|
|
1260
1260
|
*/
|
|
1261
|
-
static get middleware() {
|
|
1262
|
-
return new Map([['/*', [GetUserByToken, Auth]]])
|
|
1263
|
-
}
|
|
1261
|
+
static <span class="fstat-no" title="function not covered" >get middleware() {</span>
|
|
1262
|
+
<span class="cstat-no" title="statement not covered" > return new Map([['/*', [GetUserByToken, Auth]]]);</span>
|
|
1263
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1264
1264
|
|
|
1265
1265
|
/**
|
|
1266
1266
|
* Get constructor name that can include preix
|
|
1267
1267
|
*/
|
|
1268
1268
|
getConstructorName() {
|
|
1269
|
-
if (this.prefix)
|
|
1270
|
-
|
|
1269
|
+
if (this.prefix) {
|
|
1270
|
+
return `${this.prefix.charAt(0).toUpperCase()}${this.prefix.slice(1)}/${
|
|
1271
1271
|
this.constructor.name
|
|
1272
1272
|
}`;
|
|
1273
1273
|
}
|
|
@@ -1294,7 +1294,7 @@ module.exports = AbstractController;
|
|
|
1294
1294
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1295
1295
|
Code coverage generated by
|
|
1296
1296
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1297
|
-
at 2023-09-
|
|
1297
|
+
at 2023-09-21T12:04:18.148Z
|
|
1298
1298
|
</div>
|
|
1299
1299
|
<script src="../../prettify.js"></script>
|
|
1300
1300
|
<script>
|