@aiready/consistency 0.20.21 → 0.20.23

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.
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.26% </span>
26
+ <span class="strong">90.37% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>133/149</span>
28
+ <span class='fraction'>122/135</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">65.87% </span>
33
+ <span class="strong">62.8% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>83/126</span>
35
+ <span class='fraction'>76/121</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">96.15% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>25/26</span>
42
+ <span class='fraction'>25/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.33% </span>
47
+ <span class="strong">90.19% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>106/120</span>
49
+ <span class='fraction'>92/102</span>
50
50
  </div>
51
51
 
52
52
 
@@ -304,27 +304,7 @@
304
304
  <a name='L239'></a><a href='#L239'>239</a>
305
305
  <a name='L240'></a><a href='#L240'>240</a>
306
306
  <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
307
+ <a name='L242'></a><a href='#L242'>242</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
328
308
  <span class="cline-any cline-neutral">&nbsp;</span>
329
309
  <span class="cline-any cline-neutral">&nbsp;</span>
330
310
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -357,54 +337,55 @@
357
337
  <span class="cline-any cline-yes">3x</span>
358
338
  <span class="cline-any cline-yes">3x</span>
359
339
  <span class="cline-any cline-yes">3x</span>
360
- <span class="cline-any cline-yes">7x</span>
361
340
  <span class="cline-any cline-yes">3x</span>
341
+ <span class="cline-any cline-yes">8x</span>
362
342
  <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-yes">4x</span>
364
- <span class="cline-any cline-yes">3x</span>
365
343
  <span class="cline-any cline-neutral">&nbsp;</span>
366
- <span class="cline-any cline-yes">4x</span>
367
- <span class="cline-any cline-yes">3x</span>
368
- <span class="cline-any cline-yes">3x</span>
369
- <span class="cline-any cline-yes">4x</span>
370
- <span class="cline-any cline-yes">4x</span>
344
+ <span class="cline-any cline-yes">8x</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-yes">8x</span>
371
348
  <span class="cline-any cline-yes">3x</span>
372
- <span class="cline-any cline-yes">37x</span>
373
- <span class="cline-any cline-yes">15x</span>
374
349
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-yes">49x</span>
376
- <span class="cline-any cline-yes">22x</span>
377
- <span class="cline-any cline-yes">26x</span>
350
+ <span class="cline-any cline-yes">5x</span>
351
+ <span class="cline-any cline-yes">8x</span>
352
+ <span class="cline-any cline-yes">38x</span>
353
+ <span class="cline-any cline-yes">38x</span>
378
354
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-yes">26x</span>
380
355
  <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-yes">64x</span>
357
+ <span class="cline-any cline-yes">27x</span>
358
+ <span class="cline-any cline-yes">27x</span>
381
359
  <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-yes">27x</span>
382
361
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">26x</span>
384
362
  <span class="cline-any cline-neutral">&nbsp;</span>
385
363
  <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-yes">26x</span>
387
- <span class="cline-any cline-yes">26x</span>
364
+ <span class="cline-any cline-yes">27x</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-yes">27x</span>
368
+ <span class="cline-any cline-yes">8x</span>
389
369
  <span class="cline-any cline-yes">33x</span>
390
- <span class="cline-any cline-yes">16x</span>
391
- <span class="cline-any cline-yes">42x</span>
370
+ <span class="cline-any cline-yes">12x</span>
371
+ <span class="cline-any cline-yes">5x</span>
392
372
  <span class="cline-any cline-yes">26x</span>
393
373
  <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">6x</span>
395
374
  <span class="cline-any cline-neutral">&nbsp;</span>
396
375
  <span class="cline-any cline-yes">3x</span>
376
+ <span class="cline-any cline-yes">3x</span>
377
+ <span class="cline-any cline-yes">5x</span>
378
+ <span class="cline-any cline-yes">3x</span>
397
379
  <span class="cline-any cline-yes">4x</span>
398
- <span class="cline-any cline-yes">9x</span>
399
380
  <span class="cline-any cline-yes">6x</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
381
  <span class="cline-any cline-no">&nbsp;</span>
402
382
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">7x</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-yes">8x</span>
404
385
  <span class="cline-any cline-yes">4x</span>
405
386
  <span class="cline-any cline-neutral">&nbsp;</span>
406
387
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-yes">3x</span>
388
+ <span class="cline-any cline-yes">6x</span>
408
389
  <span class="cline-any cline-neutral">&nbsp;</span>
409
390
  <span class="cline-any cline-neutral">&nbsp;</span>
410
391
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -412,53 +393,52 @@
412
393
  <span class="cline-any cline-neutral">&nbsp;</span>
413
394
  <span class="cline-any cline-yes">7x</span>
414
395
  <span class="cline-any cline-yes">6x</span>
415
- <span class="cline-any cline-yes">4x</span>
416
396
  <span class="cline-any cline-no">&nbsp;</span>
417
397
  <span class="cline-any cline-no">&nbsp;</span>
418
- <span class="cline-any cline-yes">4x</span>
419
- <span class="cline-any cline-yes">6x</span>
420
- <span class="cline-any cline-yes">6x</span>
421
- <span class="cline-any cline-yes">9x</span>
422
398
  <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-yes">5x</span>
400
+ <span class="cline-any cline-yes">5x</span>
423
401
  <span class="cline-any cline-neutral">&nbsp;</span>
424
402
  <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-yes">5x</span>
425
405
  <span class="cline-any cline-yes">3x</span>
426
- <span class="cline-any cline-yes">12x</span>
406
+ <span class="cline-any cline-yes">18x</span>
427
407
  <span class="cline-any cline-neutral">&nbsp;</span>
428
408
  <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">16x</span>
430
- <span class="cline-any cline-yes">16x</span>
431
- <span class="cline-any cline-yes">15x</span>
432
409
  <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-yes">4x</span>
434
- <span class="cline-any cline-yes">2x</span>
435
410
  <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-yes">9x</span>
437
- <span class="cline-any cline-yes">20x</span>
438
411
  <span class="cline-any cline-neutral">&nbsp;</span>
439
412
  <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-yes">20x</span>
441
- <span class="cline-any cline-yes">30x</span>
442
- <span class="cline-any cline-yes">4x</span>
443
- <span class="cline-any cline-yes">24x</span>
444
- <span class="cline-any cline-yes">48x</span>
445
413
  <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">9x</span>
414
+ <span class="cline-any cline-yes">5x</span>
415
+ <span class="cline-any cline-yes">5x</span>
416
+ <span class="cline-any cline-yes">7x</span>
417
+ <span class="cline-any cline-yes">25x</span>
418
+ <span class="cline-any cline-yes">8x</span>
419
+ <span class="cline-any cline-yes">5x</span>
420
+ <span class="cline-any cline-yes">20x</span>
421
+ <span class="cline-any cline-yes">35x</span>
422
+ <span class="cline-any cline-yes">3x</span>
423
+ <span class="cline-any cline-yes">20x</span>
424
+ <span class="cline-any cline-yes">44x</span>
447
425
  <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-yes">24x</span>
449
- <span class="cline-any cline-yes">10x</span>
450
426
  <span class="cline-any cline-neutral">&nbsp;</span>
427
+ <span class="cline-any cline-yes">5x</span>
428
+ <span class="cline-any cline-yes">25x</span>
429
+ <span class="cline-any cline-yes">11x</span>
451
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">8x</span>
452
432
  <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-yes">18x</span>
433
+ <span class="cline-any cline-yes">19x</span>
454
434
  <span class="cline-any cline-neutral">&nbsp;</span>
455
435
  <span class="cline-any cline-neutral">&nbsp;</span>
456
436
  <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-yes">3x</span>
437
+ <span class="cline-any cline-yes">8x</span>
458
438
  <span class="cline-any cline-neutral">&nbsp;</span>
459
439
  <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-yes">33x</span>
461
- <span class="cline-any cline-yes">3x</span>
440
+ <span class="cline-any cline-yes">38x</span>
441
+ <span class="cline-any cline-yes">8x</span>
462
442
  <span class="cline-any cline-neutral">&nbsp;</span>
463
443
  <span class="cline-any cline-neutral">&nbsp;</span>
464
444
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -467,92 +447,86 @@
467
447
  <span class="cline-any cline-neutral">&nbsp;</span>
468
448
  <span class="cline-any cline-neutral">&nbsp;</span>
469
449
  <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-yes">16x</span>
471
450
  <span class="cline-any cline-neutral">&nbsp;</span>
472
451
  <span class="cline-any cline-neutral">&nbsp;</span>
473
452
  <span class="cline-any cline-neutral">&nbsp;</span>
474
453
  <span class="cline-any cline-neutral">&nbsp;</span>
475
454
  <span class="cline-any cline-neutral">&nbsp;</span>
455
+ <span class="cline-any cline-yes">11x</span>
476
456
  <span class="cline-any cline-neutral">&nbsp;</span>
477
457
  <span class="cline-any cline-neutral">&nbsp;</span>
478
458
  <span class="cline-any cline-neutral">&nbsp;</span>
479
459
  <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-yes">9x</span>
481
460
  <span class="cline-any cline-neutral">&nbsp;</span>
482
461
  <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">66x</span>
484
- <span class="cline-any cline-yes">75x</span>
485
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-yes">66x</span>
464
+ <span class="cline-any cline-yes">66x</span>
465
+ <span class="cline-any cline-yes">6x</span>
486
466
  <span class="cline-any cline-neutral">&nbsp;</span>
487
467
  <span class="cline-any cline-neutral">&nbsp;</span>
468
+ <span class="cline-any cline-yes">6x</span>
469
+ <span class="cline-any cline-yes">18x</span>
470
+ <span class="cline-any cline-yes">28x</span>
488
471
  <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-yes">21x</span>
490
- <span class="cline-any cline-yes">31x</span>
472
+ <span class="cline-any cline-yes">18x</span>
491
473
  <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">21x</span>
493
474
  <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-yes">9x</span>
495
475
  <span class="cline-any cline-neutral">&nbsp;</span>
496
476
  <span class="cline-any cline-neutral">&nbsp;</span>
497
477
  <span class="cline-any cline-neutral">&nbsp;</span>
498
478
  <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">3x</span>
479
+ <span class="cline-any cline-yes">9x</span>
500
480
  <span class="cline-any cline-neutral">&nbsp;</span>
501
481
  <span class="cline-any cline-yes">3x</span>
502
482
  <span class="cline-any cline-yes">33x</span>
503
483
  <span class="cline-any cline-yes">3x</span>
504
484
  <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-yes">12x</span>
506
- <span class="cline-any cline-yes">3x</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-yes">33x</span>
510
- <span class="cline-any cline-yes">3x</span>
511
- <span class="cline-any cline-yes">9x</span>
512
485
  <span class="cline-any cline-neutral">&nbsp;</span>
513
486
  <span class="cline-any cline-neutral">&nbsp;</span>
514
487
  <span class="cline-any cline-neutral">&nbsp;</span>
515
488
  <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-yes">33x</span>
516
490
  <span class="cline-any cline-yes">9x</span>
517
- <span class="cline-any cline-yes">12x</span>
518
- <span class="cline-any cline-yes">12x</span>
519
- <span class="cline-any cline-yes">12x</span>
520
- <span class="cline-any cline-yes">9x</span>
491
+ <span class="cline-any cline-no">&nbsp;</span>
521
492
  <span class="cline-any cline-neutral">&nbsp;</span>
522
493
  <span class="cline-any cline-neutral">&nbsp;</span>
523
494
  <span class="cline-any cline-neutral">&nbsp;</span>
524
495
  <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-yes">9x</span>
526
- <span class="cline-any cline-yes">9x</span>
527
- <span class="cline-any cline-yes">9x</span>
528
496
  <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">9x</span>
497
+ <span class="cline-any cline-yes">3x</span>
498
+ <span class="cline-any cline-yes">6x</span>
533
499
  <span class="cline-any cline-no">&nbsp;</span>
534
500
  <span class="cline-any cline-no">&nbsp;</span>
501
+ <span class="cline-any cline-yes">6x</span>
502
+ <span class="cline-any cline-yes">6x</span>
503
+ <span class="cline-any cline-yes">6x</span>
504
+ <span class="cline-any cline-yes">9x</span>
505
+ <span class="cline-any cline-yes">6x</span>
506
+ <span class="cline-any cline-yes">6x</span>
507
+ <span class="cline-any cline-yes">6x</span>
535
508
  <span class="cline-any cline-neutral">&nbsp;</span>
536
509
  <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-no">&nbsp;</span>
538
- <span class="cline-any cline-yes">3x</span>
539
- <span class="cline-any cline-no">&nbsp;</span>
540
- <span class="cline-any cline-yes">3x</span>
541
- <span class="cline-any cline-yes">3x</span>
542
510
  <span class="cline-any cline-neutral">&nbsp;</span>
543
511
  <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-yes">3x</span>
512
+ <span class="cline-any cline-yes">6x</span>
513
+ <span class="cline-any cline-yes">6x</span>
514
+ <span class="cline-any cline-yes">6x</span>
545
515
  <span class="cline-any cline-neutral">&nbsp;</span>
546
516
  <span class="cline-any cline-neutral">&nbsp;</span>
547
517
  <span class="cline-any cline-neutral">&nbsp;</span>
548
518
  <span class="cline-any cline-neutral">&nbsp;</span>
549
519
  <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-yes">3x</span>
521
+ <span class="cline-any cline-yes">3x</span>
522
+ <span class="cline-any cline-no">&nbsp;</span>
523
+ <span class="cline-any cline-no">&nbsp;</span>
524
+ <span class="cline-any cline-yes">3x</span>
550
525
  <span class="cline-any cline-neutral">&nbsp;</span>
551
526
  <span class="cline-any cline-neutral">&nbsp;</span>
552
527
  <span class="cline-any cline-neutral">&nbsp;</span>
553
528
  <span class="cline-any cline-neutral">&nbsp;</span>
554
529
  <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-no">&nbsp;</span>
556
530
  <span class="cline-any cline-neutral">&nbsp;</span>
557
531
  <span class="cline-any cline-neutral">&nbsp;</span>
558
532
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -562,28 +536,14 @@
562
536
  <span class="cline-any cline-neutral">&nbsp;</span>
563
537
  <span class="cline-any cline-neutral">&nbsp;</span>
564
538
  <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-yes">6x</span>
566
- <span class="cline-any cline-yes">6x</span>
567
- <span class="cline-any cline-yes">9x</span>
568
- <span class="cline-any cline-yes">9x</span>
569
539
  <span class="cline-any cline-neutral">&nbsp;</span>
570
540
  <span class="cline-any cline-no">&nbsp;</span>
571
- <span class="cline-any cline-no">&nbsp;</span>
572
541
  <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">2x</span>
574
- <span class="cline-any cline-yes">2x</span>
575
542
  <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-yes">7x</span>
577
- <span class="cline-any cline-yes">7x</span>
578
543
  <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-no">&nbsp;</span>
580
- <span class="cline-any cline-no">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-no">&nbsp;</span>
583
544
  <span class="cline-any cline-neutral">&nbsp;</span>
584
545
  <span class="cline-any cline-neutral">&nbsp;</span>
585
546
  <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">6x</span>
587
547
  <span class="cline-any cline-neutral">&nbsp;</span>
588
548
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
589
549
  scanFiles,
@@ -600,6 +560,7 @@ import type {
600
560
  import { analyzeNamingAST } from './analyzers/naming-ast';
601
561
  import { analyzeNamingGeneralized } from './analyzers/naming-generalized';
602
562
  import { analyzePatterns } from './analyzers/patterns';
563
+ import { calculateConsistencyScore as calculateConsistencyScoreFromScoring } from './scoring';
603
564
  &nbsp;
604
565
  /**
605
566
  * Main consistency analyzer that orchestrates all analysis types.
@@ -615,10 +576,10 @@ export async function analyzeConsistency(
615
576
  const {
616
577
  checkNaming = true,
617
578
  checkPatterns = true,
618
- checkArchitecture = false, // Not implemented yet
619
- <span class="missing-if-branch" title="else path not taken" >E</span> minSeverity = Severity.Info,
620
- ...scanOptions<span class="branch-1 cbranch-no" title="branch not covered" ></span>
621
- } = options;<span class="branch-0 cbranch-no" title="branch not covered" ></span>
579
+ <span class="missing-if-branch" title="else path not taken" >E</span> checkArchitecture = false, // Not implemented yet
580
+ minSeverity = Severity.Info,<span class="branch-1 cbranch-no" title="branch not covered" ></span>
581
+ ...scanOptions<span class="branch-0 cbranch-no" title="branch not covered" ></span>
582
+ } = options;
622
583
  &nbsp;
623
584
  // Mark intentionally-unused option to avoid lint warnings
624
585
  void checkArchitecture;
@@ -658,8 +619,8 @@ export async function analyzeConsistency(
658
619
  <span class="branch-3 cbranch-no" title="branch not covered" > 'unknown';</span>
659
620
  if (!fileIssuesMap.has(fileName)) fileIssuesMap.set(fileName, []);
660
621
  fileIssuesMap.get(fileName)!.push(issue as unknown as ConsistencyIssue);
661
- }
662
- <span class="cstat-no" title="statement not covered" ></span>
622
+ }<span class="cstat-no" title="statement not covered" ></span>
623
+ &nbsp;
663
624
  // Process pattern issues
664
625
  for (const issue of patternIssues) {
665
626
  if (!shouldIncludeSeverity(issue.severity, minSeverity)) continue;
@@ -673,15 +634,19 @@ export async function analyzeConsistency(
673
634
  : <span class="branch-1 cbranch-no" title="branch not covered" >'unknown');</span>
674
635
  if (!fileIssuesMap.has(fileName)) fileIssuesMap.set(fileName, []);
675
636
  fileIssuesMap.get(fileName)!.push(issue as unknown as ConsistencyIssue);
676
- }
637
+ }<span class="cstat-no" title="statement not covered" ></span>
677
638
  <span class="cstat-no" title="statement not covered" ></span>
678
- // B<span class="cstat-no" title="statement not covered" >uild final results</span>
639
+ // Build final results
679
640
  for (const [fileName, issues] of fileIssuesMap.entries()) {
641
+ const scoreResult = calculateConsistencyScoreFromScoring(
642
+ issues,
643
+ filePaths.length
644
+ );
680
645
  results.push({
681
646
  fileName,
682
647
  issues: issues.map((i) =&gt; transformToIssue(i)),
683
648
  metrics: {
684
- consistencyScore: calculateConsistencyScore(issues),
649
+ consistencyScore: scoreResult.score / 100,
685
650
  },
686
651
  });
687
652
  }
@@ -719,7 +684,7 @@ export async function analyzeConsistency(
719
684
  &nbsp;
720
685
  /**
721
686
  * Check if an issue severity meets the minimum threshold.
722
- *<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span>
687
+ *
723
688
  * @param severity - The severity of the issue.
724
689
  * @param minSeverity - The minimum severity threshold.
725
690
  * @returns True if severity is greater than or equal to minSeverity.
@@ -754,53 +719,53 @@ function getIssueType(type: string | undefined): IssueType {
754
719
  &nbsp;
755
720
  return typeMap[type] || <span class="branch-1 cbranch-no" title="branch not covered" >IssueType.NamingInconsistency;</span>
756
721
  }
757
- &nbsp;
722
+ <span class="missing-if-branch" title="else path not taken" >E</span>
758
723
  /**
759
- * Transform NamingIssue or PatternIssue to the required Issue format.
760
- *
724
+ * T<span class="missing-if-branch" title="if path not taken" >I</span>ransform NamingIssue or PatternIssue to the required Issue format.
725
+ *<span class="cstat-no" title="statement not covered" ></span>
761
726
  * @param i - The raw issue object to transform.
762
- *<span class="missing-if-branch" title="else path not taken" >E</span> @returns Standardized Issue object.
727
+ * @returns Standardized Issue object.
763
728
  */
764
- func<span class="missing-if-branch" title="if path not taken" >I</span>tion transformToIssue(i: any): Issue {
765
- // I<span class="cstat-no" title="statement not covered" >f already has message and location, return as is</span>
766
- if (i.message &amp;&amp; i.location) {
767
- return {
729
+ function transformToIssue(i: any): Issue {
730
+ // If already has message and location, return as is
731
+ <span class="missing-if-branch" title="if path not taken" >I</span>if<span class="missing-if-branch" title="if path not taken" >I</span> (i.message &amp;&amp; i.location) {
732
+ <span class="cstat-no" title="statement not covered" > re<span class="cstat-no" title="statement not covered" >turn {</span></span>
768
733
  type: getIssueType(i.type),
769
734
  severity: i.severity as Severity,
770
735
  message: i.message,
771
- <span class="missing-if-branch" title="if path not taken" >I</span> location: i.location,
736
+ location: i.location,
772
737
  suggestion: i.suggestion,
773
- };
738
+ <span class="missing-if-branch" title="if path not taken" >I</span> };
774
739
  }
775
- &nbsp;
776
- // Handle NamingIssue format (has file, line, column, identifier, suggestion)
740
+ <span class="cstat-no" title="statement not covered" ></span>
741
+ // H<span class="cstat-no" title="statement not covered" >andle NamingIssue format (has file, line, column, identifier, suggestion)</span>
777
742
  <span class="missing-if-branch" title="else path not taken" >E</span>if (i.identifier || i.type) {
778
- <span class="missing-if-branch" title="if path not taken" >I</span> const line = i.line || 1;
743
+ const line = i.line || 1;
779
744
  const column = i.column || 1;
780
- <span class="missing-if-branch" title="else path not taken" >E</span>return {
745
+ return {
781
746
  type: getIssueType(i.type),
782
- severity: i.severity as Severity,
747
+ <span class="missing-if-branch" title="else path not taken" >E</span> severity: i.severity as Severity,
783
748
  message: i.suggestion
784
749
  ? `Naming issue: ${i.suggestion}`
785
750
  : `Naming issue for '${i.identifier || 'unknown'}'`,
786
751
  location: {
787
- <span class="missing-if-branch" title="else path not taken" >E</span> file: i.file || i.fileName || '',
752
+ file: i.file || i.fileName || '',
788
753
  line,
789
- column,
754
+ <span class="missing-if-branch" title="else path not taken" >E</span> column,
790
755
  endLine: line,
791
756
  endColumn: column + (i.identifier?.length || 10),
792
757
  },
793
758
  suggestion: i.suggestion,
794
- <span class="cstat-no" title="statement not covered" > };</span>
795
- }<span class="cstat-no" title="statement not covered" ></span>
796
- &nbsp;
759
+ };
760
+ }
761
+ <span class="missing-if-branch" title="else path not taken" >E</span>
797
762
  // Handle PatternIssue format (has description, files)
798
- <span class="cstat-no" title="statement not covered" > if (i.description || i.files) {</span>
799
- const fileName = Array.isArray(i.files) ? <span class="branch-0 cbranch-no" title="branch not covered" >i.files[0] : <span class="branch-0 cbranch-no" title="branch not covered" >i</span>.file || '</span>';
763
+ <span class="cstat-no" title="statement not covered" > if (i.description || <span class="branch-1 cbranch-no" title="branch not covered" >i.files) {</span></span>
764
+ const fileName = <span class="cstat-no" title="statement not covered" >Array.isArray(i.files) ? i.files[0] : i.file || '';</span>
800
765
  <span class="cstat-no" title="statement not covered" > return {</span>
801
- <span class="missing-if-branch" title="else path not taken" >E</span> type: getIssueType(i.type),
766
+ type: getIssueType(i.type),
802
767
  severity: i.severity as Severity,
803
- message: i.description || <span class="branch-1 cbranch-no" title="branch not covered" >'Pattern inconsistency found',</span>
768
+ message: i.description || 'Pattern inconsistency found',
804
769
  location: {
805
770
  file: fileName,
806
771
  line: 1,
@@ -821,31 +786,6 @@ func<span class="missing-if-branch" title="if path not taken" >I</span>tion tran
821
786
  suggestion: i.suggestion,
822
787
  };
823
788
  }
824
- &nbsp;
825
- function calculateConsistencyScore(issues: ConsistencyIssue[]): number {
826
- let totalWeight = 0;
827
- for (const issue of issues) {
828
- const val = getSeverityLevel(issue.severity);
829
- switch (val) {
830
- <span class="branch-0 cbranch-no" title="branch not covered" > case 4:</span>
831
- <span class="cstat-no" title="statement not covered" > totalWeight += 10;</span>
832
- <span class="cstat-no" title="statement not covered" > break;</span>
833
- case 3:
834
- totalWeight += 5;
835
- break;
836
- case 2:
837
- totalWeight += 2;
838
- break;
839
- <span class="branch-3 cbranch-no" title="branch not covered" > case 1:</span>
840
- <span class="cstat-no" title="statement not covered" > totalWeight += 1;</span>
841
- <span class="cstat-no" title="statement not covered" > break;</span>
842
- <span class="branch-4 cbranch-no" title="branch not covered" > default:</span>
843
- <span class="cstat-no" title="statement not covered" > totalWeight += 1;</span>
844
- }
845
- }
846
- // Score from 0-1, where 1 is perfect
847
- return Math.max(0, 1 - totalWeight / 100);
848
- }
849
789
  &nbsp;</pre></td></tr></table></pre>
850
790
 
851
791
  <div class='push'></div><!-- for sticky footer -->
@@ -853,7 +793,7 @@ function calculateConsistencyScore(issues: ConsistencyIssue[]): number {
853
793
  <div class='footer quiet pad2 space-top1 center small'>
854
794
  Code coverage generated by
855
795
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
856
- at 2026-03-21T12:56:00.785Z
796
+ at 2026-03-24T11:21:03.934Z
857
797
  </div>
858
798
  <script src="../prettify.js"></script>
859
799
  <script>