@aiready/consistency 0.20.18 → 0.20.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/.turbo/turbo-build.log +24 -23
  2. package/.turbo/turbo-lint.log +5 -24
  3. package/.turbo/turbo-test.log +35 -28
  4. package/coverage/clover.xml +562 -565
  5. package/coverage/coverage-final.json +12 -12
  6. package/coverage/index.html +36 -36
  7. package/coverage/src/analyzer.ts.html +263 -368
  8. package/coverage/src/analyzers/index.html +55 -55
  9. package/coverage/src/analyzers/naming-ast.ts.html +305 -164
  10. package/coverage/src/analyzers/naming-constants.ts.html +42 -36
  11. package/coverage/src/analyzers/naming-generalized.ts.html +312 -33
  12. package/coverage/src/analyzers/naming.ts.html +58 -52
  13. package/coverage/src/analyzers/patterns.ts.html +43 -52
  14. package/coverage/src/index.html +22 -22
  15. package/coverage/src/index.ts.html +1 -1
  16. package/coverage/src/provider.ts.html +22 -49
  17. package/coverage/src/scoring.ts.html +39 -45
  18. package/coverage/src/utils/ast-parser.ts.html +33 -33
  19. package/coverage/src/utils/config-loader.ts.html +1 -1
  20. package/coverage/src/utils/context-detector.ts.html +92 -92
  21. package/coverage/src/utils/index.html +14 -14
  22. package/coverage/src/utils/scope-tracker.ts.html +52 -52
  23. package/dist/chunk-KWQVBF7K.mjs +831 -0
  24. package/dist/chunk-P6NVKUBB.mjs +831 -0
  25. package/dist/cli.js +6 -7
  26. package/dist/cli.mjs +1 -1
  27. package/dist/index.js +6 -7
  28. package/dist/index.mjs +1 -1
  29. package/package.json +2 -2
  30. package/src/__tests__/naming.test.ts +88 -0
  31. package/src/__tests__/scope-tracker.test.ts +184 -0
  32. package/src/__tests__/scoring.test.ts +9 -9
  33. package/src/analyzers/naming-ast.ts +10 -8
  34. package/src/analyzers/naming-generalized.ts +1 -1
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.71% </span>
26
+ <span class="strong">89.2% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>157/175</span>
28
+ <span class='fraction'>157/176</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.57% </span>
33
+ <span class="strong">81.31% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>154/196</span>
35
+ <span class='fraction'>161/198</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.91% </span>
47
+ <span class="strong">91.27% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>139/148</span>
49
+ <span class='fraction'>136/149</span>
50
50
  </div>
51
51
 
52
52
 
@@ -353,9 +353,54 @@
353
353
  <a name='L288'></a><a href='#L288'>288</a>
354
354
  <a name='L289'></a><a href='#L289'>289</a>
355
355
  <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
359
404
  <span class="cline-any cline-neutral">&nbsp;</span>
360
405
  <span class="cline-any cline-neutral">&nbsp;</span>
361
406
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -378,20 +423,22 @@
378
423
  <span class="cline-any cline-neutral">&nbsp;</span>
379
424
  <span class="cline-any cline-yes">7x</span>
380
425
  <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">13x</span>
382
- <span class="cline-any cline-yes">62x</span>
426
+ <span class="cline-any cline-yes">7x</span>
383
427
  <span class="cline-any cline-yes">62x</span>
428
+ <span class="cline-any cline-yes">68x</span>
384
429
  <span class="cline-any cline-yes">62x</span>
385
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">51x</span>
432
+ <span class="cline-any cline-yes">45x</span>
386
433
  <span class="cline-any cline-yes">45x</span>
387
434
  <span class="cline-any cline-yes">68x</span>
388
435
  <span class="cline-any cline-yes">123x</span>
389
436
  <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-yes">39x</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
438
  <span class="cline-any cline-yes">6x</span>
392
439
  <span class="cline-any cline-yes">55x</span>
393
440
  <span class="cline-any cline-yes">55x</span>
394
- <span class="cline-any cline-yes">62x</span>
441
+ <span class="cline-any cline-yes">55x</span>
395
442
  <span class="cline-any cline-neutral">&nbsp;</span>
396
443
  <span class="cline-any cline-yes">45x</span>
397
444
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -400,15 +447,13 @@
400
447
  <span class="cline-any cline-neutral">&nbsp;</span>
401
448
  <span class="cline-any cline-neutral">&nbsp;</span>
402
449
  <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-yes">45x</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">45x</span>
450
+ <span class="cline-any cline-yes">90x</span>
406
451
  <span class="cline-any cline-yes">100x</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
408
453
  <span class="cline-any cline-yes">45x</span>
409
- <span class="cline-any cline-yes">51x</span>
410
454
  <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-yes">2931x</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-yes">2874x</span>
412
457
  <span class="cline-any cline-yes">39x</span>
413
458
  <span class="cline-any cline-yes">39x</span>
414
459
  <span class="cline-any cline-yes">39x</span>
@@ -416,122 +461,163 @@
416
461
  <span class="cline-any cline-neutral">&nbsp;</span>
417
462
  <span class="cline-any cline-neutral">&nbsp;</span>
418
463
  <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-yes">84x</span>
420
- <span class="cline-any cline-yes">2976x</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
466
  <span class="cline-any cline-yes">90x</span>
422
467
  <span class="cline-any cline-yes">90x</span>
423
- <span class="cline-any cline-yes">2892x</span>
468
+ <span class="cline-any cline-yes">2880x</span>
469
+ <span class="cline-any cline-yes">2880x</span>
470
+ <span class="cline-any cline-neutral">&nbsp;</span>
424
471
  <span class="cline-any cline-neutral">&nbsp;</span>
425
472
  <span class="cline-any cline-yes">45x</span>
473
+ <span class="cline-any cline-yes">75x</span>
474
+ <span class="cline-any cline-yes">27900x</span>
475
+ <span class="cline-any cline-yes">90x</span>
476
+ <span class="cline-any cline-yes">90x</span>
477
+ <span class="cline-any cline-yes">25110x</span>
478
+ <span class="cline-any cline-yes">327x</span>
426
479
  <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-yes">27534x</span>
428
- <span class="cline-any cline-yes">78x</span>
429
- <span class="cline-any cline-yes">93x</span>
430
- <span class="cline-any cline-yes">24690x</span>
431
- <span class="cline-any cline-yes">351x</span>
432
480
  <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-yes">3117x</span>
482
+ <span class="cline-any cline-yes">312x</span>
483
+ <span class="cline-any cline-yes">405x</span>
484
+ <span class="cline-any cline-yes">405x</span>
433
485
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">348x</span>
435
- <span class="cline-any cline-yes">348x</span>
436
- <span class="cline-any cline-yes">471x</span>
437
- <span class="cline-any cline-yes">411x</span>
438
- <span class="cline-any cline-yes">411x</span>
439
486
  <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-yes">60x</span>
487
+ <span class="cline-any cline-yes">15x</span>
441
488
  <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">48x</span>
489
+ <span class="cline-any cline-no">&nbsp;</span>
443
490
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-yes">2937x</span>
445
491
  <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-yes">27231x</span>
447
- <span class="cline-any cline-yes">3582x</span>
448
- <span class="cline-any cline-yes">26541x</span>
449
- <span class="cline-any cline-yes">2970x</span>
450
- <span class="cline-any cline-yes">23613x</span>
451
- <span class="cline-any cline-yes">48x</span>
452
492
  <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-yes">24828x</span>
494
+ <span class="cline-any cline-yes">714x</span>
495
+ <span class="cline-any cline-yes">26949x</span>
496
+ <span class="cline-any cline-yes">2913x</span>
497
+ <span class="cline-any cline-yes">26871x</span>
498
+ <span class="cline-any cline-yes">2841x</span>
453
499
  <span class="cline-any cline-neutral">&nbsp;</span>
454
500
  <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-yes">24642x</span>
456
- <span class="cline-any cline-yes">573x</span>
457
- <span class="cline-any cline-yes">600x</span>
458
- <span class="cline-any cline-yes">558x</span>
501
+ <span class="cline-any cline-yes">87x</span>
502
+ <span class="cline-any cline-yes">25065x</span>
503
+ <span class="cline-any cline-yes">543x</span>
504
+ <span class="cline-any cline-yes">570x</span>
505
+ <span class="cline-any cline-yes">528x</span>
459
506
  <span class="cline-any cline-neutral">&nbsp;</span>
460
507
  <span class="cline-any cline-neutral">&nbsp;</span>
461
508
  <span class="cline-any cline-neutral">&nbsp;</span>
462
509
  <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">603x</span>
464
- <span class="cline-any cline-yes">558x</span>
465
510
  <span class="cline-any cline-neutral">&nbsp;</span>
466
511
  <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-yes">564x</span>
468
- <span class="cline-any cline-yes">15x</span>
469
- <span class="cline-any cline-yes">15x</span>
470
512
  <span class="cline-any cline-neutral">&nbsp;</span>
471
513
  <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-yes">588x</span>
515
+ <span class="cline-any cline-yes">543x</span>
516
+ <span class="cline-any cline-yes">60x</span>
517
+ <span class="cline-any cline-neutral">&nbsp;</span>
518
+ <span class="cline-any cline-yes">25071x</span>
519
+ <span class="cline-any cline-neutral">&nbsp;</span>
520
+ <span class="cline-any cline-neutral">&nbsp;</span>
521
+ <span class="cline-any cline-yes">25065x</span>
472
522
  <span class="cline-any cline-neutral">&nbsp;</span>
523
+ <span class="cline-any cline-yes">8739x</span>
524
+ <span class="cline-any cline-yes">8211x</span>
525
+ <span class="cline-any cline-yes">8100x</span>
473
526
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">24642x</span>
475
527
  <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-yes">8655x</span>
477
- <span class="cline-any cline-yes">8097x</span>
478
- <span class="cline-any cline-yes">7983x</span>
479
528
  <span class="cline-any cline-neutral">&nbsp;</span>
480
529
  <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-yes">24684x</span>
530
+ <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">25065x</span>
482
532
  <span class="cline-any cline-yes">87x</span>
483
533
  <span class="cline-any cline-yes">87x</span>
484
- <span class="cline-any cline-yes">24642x</span>
485
- <span class="cline-any cline-yes">45x</span>
486
- <span class="cline-any cline-yes">45x</span>
487
- <span class="cline-any cline-yes">24642x</span>
534
+ <span class="cline-any cline-yes">25065x</span>
535
+ <span class="cline-any cline-yes">25065x</span>
536
+ <span class="cline-any cline-yes">25065x</span>
537
+ <span class="cline-any cline-yes">25065x</span>
538
+ <span class="cline-any cline-yes">25065x</span>
488
539
  <span class="cline-any cline-neutral">&nbsp;</span>
489
540
  <span class="cline-any cline-neutral">&nbsp;</span>
490
541
  <span class="cline-any cline-yes">42x</span>
491
- <span class="cline-any cline-yes">24642x</span>
542
+ <span class="cline-any cline-yes">1077x</span>
492
543
  <span class="cline-any cline-no">&nbsp;</span>
493
544
  <span class="cline-any cline-neutral">&nbsp;</span>
494
545
  <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-yes">1077x</span>
496
546
  <span class="cline-any cline-neutral">&nbsp;</span>
497
547
  <span class="cline-any cline-neutral">&nbsp;</span>
548
+ <span class="cline-any cline-yes">45x</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-yes">45x</span>
551
+ <span class="cline-any cline-yes">996x</span>
552
+ <span class="cline-any cline-yes">954x</span>
498
553
  <span class="cline-any cline-neutral">&nbsp;</span>
499
554
  <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-yes">954x</span>
556
+ <span class="cline-any cline-yes">954x</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-yes">954x</span>
560
+ <span class="cline-any cline-yes">954x</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-neutral">&nbsp;</span>
563
+ <span class="cline-any cline-yes">954x</span>
500
564
  <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-yes">45x</span>
502
565
  <span class="cline-any cline-neutral">&nbsp;</span>
503
566
  <span class="cline-any cline-yes">45x</span>
504
- <span class="cline-any cline-yes">1011x</span>
505
- <span class="cline-any cline-yes">1011x</span>
567
+ <span class="cline-any cline-yes">954x</span>
506
568
  <span class="cline-any cline-neutral">&nbsp;</span>
507
569
  <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-yes">1011x</span>
509
- <span class="cline-any cline-yes">1011x</span>
510
570
  <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-yes">45x</span>
572
+ <span class="cline-any cline-neutral">&nbsp;</span>
573
+ <span class="cline-any cline-yes">105x</span>
511
574
  <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-yes">1011x</span>
513
- <span class="cline-any cline-yes">1011x</span>
514
575
  <span class="cline-any cline-neutral">&nbsp;</span>
515
576
  <span class="cline-any cline-yes">45x</span>
516
- <span class="cline-any cline-yes">1011x</span>
577
+ <span class="cline-any cline-yes">849x</span>
578
+ <span class="cline-any cline-neutral">&nbsp;</span>
579
+ <span class="cline-any cline-yes">33x</span>
580
+ <span class="cline-any cline-yes">33x</span>
581
+ <span class="cline-any cline-no">&nbsp;</span>
582
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-neutral">&nbsp;</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
517
585
  <span class="cline-any cline-neutral">&nbsp;</span>
518
586
  <span class="cline-any cline-neutral">&nbsp;</span>
519
587
  <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">1011x</span>
521
- <span class="cline-any cline-yes">1011x</span>
522
588
  <span class="cline-any cline-yes">45x</span>
523
589
  <span class="cline-any cline-neutral">&nbsp;</span>
590
+ <span class="cline-any cline-yes">33x</span>
524
591
  <span class="cline-any cline-neutral">&nbsp;</span>
525
592
  <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-yes">120x</span>
527
593
  <span class="cline-any cline-neutral">&nbsp;</span>
594
+ <span class="cline-any cline-yes">816x</span>
595
+ <span class="cline-any cline-yes">48x</span>
528
596
  <span class="cline-any cline-neutral">&nbsp;</span>
597
+ <span class="cline-any cline-yes">24x</span>
598
+ <span class="cline-any cline-yes">24x</span>
599
+ <span class="cline-any cline-yes">816x</span>
600
+ <span class="cline-any cline-yes">12x</span>
601
+ <span class="cline-any cline-yes">48x</span>
529
602
  <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-yes">891x</span>
531
603
  <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-yes">27x</span>
533
- <span class="cline-any cline-yes">891x</span>
604
+ <span class="cline-any cline-neutral">&nbsp;</span>
605
+ <span class="cline-any cline-neutral">&nbsp;</span>
606
+ <span class="cline-any cline-neutral">&nbsp;</span>
607
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-neutral">&nbsp;</span>
609
+ <span class="cline-any cline-yes">48x</span>
610
+ <span class="cline-any cline-neutral">&nbsp;</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-no">&nbsp;</span>
613
+ <span class="cline-any cline-yes">768x</span>
614
+ <span class="cline-any cline-yes">768x</span>
615
+ <span class="cline-any cline-no">&nbsp;</span>
616
+ <span class="cline-any cline-no">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
534
618
  <span class="cline-any cline-no">&nbsp;</span>
619
+ <span class="cline-any cline-yes">45x</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
535
621
  <span class="cline-any cline-neutral">&nbsp;</span>
536
622
  <span class="cline-any cline-neutral">&nbsp;</span>
537
623
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -540,94 +626,101 @@
540
626
  <span class="cline-any cline-neutral">&nbsp;</span>
541
627
  <span class="cline-any cline-neutral">&nbsp;</span>
542
628
  <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-yes">27x</span>
544
629
  <span class="cline-any cline-yes">45x</span>
545
630
  <span class="cline-any cline-yes">45x</span>
546
631
  <span class="cline-any cline-yes">45x</span>
547
- <span class="cline-any cline-yes">864x</span>
548
- <span class="cline-any cline-yes">57x</span>
632
+ <span class="cline-any cline-yes">25065x</span>
633
+ <span class="cline-any cline-yes">162x</span>
634
+ <span class="cline-any cline-yes">162x</span>
549
635
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-yes">6x</span>
551
- <span class="cline-any cline-yes">6x</span>
552
- <span class="cline-any cline-yes">3x</span>
636
+ <span class="cline-any cline-yes">162x</span>
553
637
  <span class="cline-any cline-neutral">&nbsp;</span>
554
638
  <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-yes">162x</span>
555
640
  <span class="cline-any cline-neutral">&nbsp;</span>
556
641
  <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-yes">45x</span>
642
+ <span class="cline-any cline-yes">162x</span>
558
643
  <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-yes">162x</span>
645
+ <span class="cline-any cline-yes">162x</span>
646
+ <span class="cline-any cline-yes">162x</span>
647
+ <span class="cline-any cline-yes">162x</span>
648
+ <span class="cline-any cline-yes">162x</span>
559
649
  <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-yes">162x</span>
651
+ <span class="cline-any cline-yes">162x</span>
652
+ <span class="cline-any cline-yes">162x</span>
560
653
  <span class="cline-any cline-neutral">&nbsp;</span>
561
654
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">57x</span>
563
- <span class="cline-any cline-yes">864x</span>
564
- <span class="cline-any cline-yes">45x</span>
655
+ <span class="cline-any cline-yes">162x</span>
565
656
  <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-yes">807x</span>
567
- <span class="cline-any cline-yes">807x</span>
568
- <span class="cline-any cline-no">&nbsp;</span>
569
- <span class="cline-any cline-no">&nbsp;</span>
570
657
  <span class="cline-any cline-neutral">&nbsp;</span>
571
658
  <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-yes">162x</span>
660
+ <span class="cline-any cline-yes">162x</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-yes">162x</span>
663
+ <span class="cline-any cline-yes">21x</span>
572
664
  <span class="cline-any cline-neutral">&nbsp;</span>
573
665
  <span class="cline-any cline-neutral">&nbsp;</span>
574
666
  <span class="cline-any cline-neutral">&nbsp;</span>
575
667
  <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-no">&nbsp;</span>
577
668
  <span class="cline-any cline-neutral">&nbsp;</span>
578
669
  <span class="cline-any cline-neutral">&nbsp;</span>
579
670
  <span class="cline-any cline-neutral">&nbsp;</span>
580
671
  <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-yes">25065x</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
581
676
  <span class="cline-any cline-neutral">&nbsp;</span>
582
677
  <span class="cline-any cline-yes">45x</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
679
  <span class="cline-any cline-yes">45x</span>
584
680
  <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">24642x</span>
586
- <span class="cline-any cline-yes">165x</span>
587
- <span class="cline-any cline-yes">165x</span>
588
- <span class="cline-any cline-yes">24642x</span>
589
- <span class="cline-any cline-yes">165x</span>
590
681
  <span class="cline-any cline-neutral">&nbsp;</span>
591
682
  <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-yes">165x</span>
593
683
  <span class="cline-any cline-neutral">&nbsp;</span>
594
684
  <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-yes">24687x</span>
596
685
  <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-yes">165x</span>
598
- <span class="cline-any cline-yes">165x</span>
599
- <span class="cline-any cline-yes">165x</span>
600
- <span class="cline-any cline-yes">165x</span>
601
- <span class="cline-any cline-yes">165x</span>
602
686
  <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">24690x</span>
604
- <span class="cline-any cline-yes">165x</span>
605
- <span class="cline-any cline-yes">165x</span>
687
+ <span class="cline-any cline-yes">45x</span>
606
688
  <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-yes">24648x</span>
608
- <span class="cline-any cline-yes">165x</span>
689
+ <span class="cline-any cline-yes">15x</span>
690
+ <span class="cline-any cline-yes">12x</span>
691
+ <span class="cline-any cline-yes">42x</span>
692
+ <span class="cline-any cline-yes">27x</span>
609
693
  <span class="cline-any cline-neutral">&nbsp;</span>
610
694
  <span class="cline-any cline-neutral">&nbsp;</span>
611
695
  <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-yes">165x</span>
613
- <span class="cline-any cline-yes">165x</span>
614
696
  <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-yes">165x</span>
616
- <span class="cline-any cline-yes">21x</span>
617
- <span class="cline-any cline-no">&nbsp;</span>
618
- <span class="cline-any cline-yes">45x</span>
619
- <span class="cline-any cline-yes">45x</span>
620
697
  <span class="cline-any cline-neutral">&nbsp;</span>
621
698
  <span class="cline-any cline-neutral">&nbsp;</span>
622
699
  <span class="cline-any cline-neutral">&nbsp;</span>
623
700
  <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-yes">15x</span>
702
+ <span class="cline-any cline-yes">3x</span>
624
703
  <span class="cline-any cline-neutral">&nbsp;</span>
625
704
  <span class="cline-any cline-neutral">&nbsp;</span>
626
705
  <span class="cline-any cline-neutral">&nbsp;</span>
627
706
  <span class="cline-any cline-neutral">&nbsp;</span>
628
707
  <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-no">&nbsp;</span>
709
+ <span class="cline-any cline-yes">15x</span>
710
+ <span class="cline-any cline-yes">15x</span>
711
+ <span class="cline-any cline-yes">15x</span>
629
712
  <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-yes">45x</span>
713
+ <span class="cline-any cline-yes">3x</span>
714
+ <span class="cline-any cline-yes">3x</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-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-no">&nbsp;</span>
631
724
  <span class="cline-any cline-no">&nbsp;</span>
632
725
  <span class="cline-any cline-no">&nbsp;</span>
633
726
  <span class="cline-any cline-no">&nbsp;</span>
@@ -639,19 +732,18 @@
639
732
  <span class="cline-any cline-neutral">&nbsp;</span>
640
733
  <span class="cline-any cline-neutral">&nbsp;</span>
641
734
  <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">18x</span>
643
- <span class="cline-any cline-yes">12x</span>
644
- <span class="cline-any cline-yes">45x</span>
645
- <span class="cline-any cline-yes">30x</span>
735
+ <span class="cline-any cline-neutral">&nbsp;</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
740
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { TSESTree } from '@typescript-eslint/typescript-estree';
647
741
  import { Severity } from '@aiready/core';
648
742
  import type { NamingIssue } from '../types';
649
743
  import {
650
744
  parseFile,
651
745
  traverseAST,
652
- getFunctionName,
653
746
  getLineNumber,
654
- isCoverageContext,
655
747
  isLoopStatement,
656
748
  } from '../utils/ast-parser';
657
749
  import {
@@ -692,9 +784,9 @@ function analyzeIdentifiers(
692
784
  filePath: string,
693
785
  context: any
694
786
  ): NamingIssue[] {
695
- cons<span class="cstat-no" title="statement not covered" >t issues: NamingIssue[] = [];</span>
787
+ const issues: NamingIssue[] = [];
696
788
  const scopeTracker = new ScopeTracker();
697
- &nbsp;
789
+ <span class="cstat-no" title="statement not covered" ></span>
698
790
  traverseAST(ast, {
699
791
  enter: (node) =&gt; {
700
792
  // 1. Variable Declarations
@@ -715,17 +807,23 @@ function analyzeIdentifiers(
715
807
  node.type === 'FunctionExpression' ||
716
808
  node.type === 'ArrowFunctionExpression'
717
809
  ) {
810
+ const isArrowParameter = node.type === 'ArrowFunctionExpression';
718
811
  node.params.forEach((param) =&gt; {
719
812
  if (param.type === 'Identifier') {
720
813
  scopeTracker.declareVariable(
721
814
  param.name,
722
815
  param,
723
816
  getLineNumber(param),
724
- <span class="missing-if-branch" title="else path not taken" >E</span> { isParameter: true }
817
+ { isParameter: true, isArrowParameter }
725
818
  );
726
819
  <span class="missing-if-branch" title="else path not taken" >E</span><span class="missing-if-branch" title="else path not taken" >E</span>} else if (param.type === 'ObjectPattern') {
727
820
  // Handle destructured parameters: { id, name }
728
- extractDestructuredIdentifiers(param, true, scopeTracker);
821
+ extractDestructuredIdentifiers(
822
+ param,
823
+ true,
824
+ scope<span class="missing-if-branch" title="if path not taken" >I</span>Tracker,
825
+ isArrowParameter
826
+ );<span class="cstat-no" title="statement not covered" ></span>
729
827
  }
730
828
  });
731
829
  }
@@ -746,16 +844,16 @@ function analyzeIdentifiers(
746
844
  context
747
845
  );
748
846
  }
749
- },
847
+ },<span class="branch-1 cbranch-no" title="branch not covered" ></span>
750
848
  });
751
849
  &nbsp;
752
850
  // Check all collected variables
753
- for (const varInfo of scopeTracker.getVariables()) {<span class="branch-1 cbranch-no" title="branch not covered" ></span>
754
- checkVariableNaming(varInfo, filePath, issues, context);
851
+ for (const varInfo of scopeTracker.getVariables()) {
852
+ checkVariab<span class="missing-if-branch" title="else path not taken" >E</span>leNaming(varInfo, filePath, issues, context);
755
853
  }
756
854
  &nbsp;
757
855
  return issues;
758
- }<span class="missing-if-branch" title="else path not taken" >E</span>
856
+ }
759
857
  &nbsp;
760
858
  /**
761
859
  * Check if a name follows a specific convention
@@ -791,37 +889,41 @@ function checkNamingConvention(
791
889
  }
792
890
  &nbsp;
793
891
  /**
794
- * Advanced variable naming checks
795
- */
892
+ * A<span class="missing-if-branch" title="if path not taken" >I</span>dvanced variable naming checks<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ></span></span>
893
+ */<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span></span>
796
894
  function checkVariableNaming(
797
895
  varInfo: any,
798
- fi<span class="missing-if-branch" title="if path not taken" >I</span>le: string,<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ></span></span>
799
- is<span class="missing-if-branch" title="if path not taken" >I</span>sues: NamingIssue[],<span class="cstat-no" title="statement not covered" ><span class="branch-1 cbranch-no" title="branch not covered" ></span></span>
896
+ file: string,
897
+ is<span class="missing-if-branch" title="if path not taken" >I</span>sues: NamingIssue[<span class="cstat-no" title="statement not covered" >],</span>
800
898
  context: any
801
899
  ) {
802
- const { name, node, line, options } = varInfo;
803
- <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
900
+ const { name, line, options } = varInfo;
901
+ <span class="branch-0 cbranch-no" title="branch not covered" ></span>
804
902
  // Skip very common small names if they are in acceptable context
805
903
  if (isAcceptableInContext(name, context, options)) {
806
904
  return;
807
- }<span class="branch-0 cbranch-no" title="branch not covered" ></span>
905
+ }
808
906
  &nbsp;
809
907
  // 1. Single letter names
810
- if (name.length === 1 &amp;&amp; !options.isLoopVariable) {
908
+ if (
909
+ name.length === 1 &amp;&amp;
910
+ !options.isLoopVariable &amp;&amp;
911
+ <span class="branch-2 cbranch-no" title="branch not covered" > !options.isArrowParameter</span>
912
+ ) {
811
913
  const severity = adjustSeverity(Severity.Minor, context, 'poor-naming');
812
914
  issues.push({
813
915
  file,
814
916
  line,
815
- type: 'poor-naming',
816
- identifier: name,
917
+ <span class="missing-if-branch" title="if path not taken" >I</span>type: 'poor-naming',
918
+ id<span class="cstat-no" title="statement not covered" >entifier: name,</span>
817
919
  severity,
818
920
  suggestion: 'Use a more descriptive name than a single letter',
819
921
  });
820
922
  }
821
923
  &nbsp;
822
924
  // 2. Vague names
823
- cons<span class="missing-if-branch" title="if path not taken" >I</span>t vagueNames = [
824
- 'dat<span class="cstat-no" title="statement not covered" >a',</span>
925
+ const vagueNames = [
926
+ 'data',
825
927
  'info',
826
928
  'item',
827
929
  'obj',
@@ -844,42 +946,71 @@ function checkVariableNaming(
844
946
  }
845
947
  &nbsp;
846
948
  // 3. Abbreviations
847
- if (
848
- name.length &gt; 1 &amp;&amp;
849
- name.length &lt;= 3 &amp;&amp;
850
- <span class="branch-2 cbranch-no" title="branch not covered" > !options.isLoopVariable &amp;&amp;</span>
851
- <span class="branch-3 cbranch-no" title="branch not covered" > !isCommonAbbreviation(name)</span>
949
+ <span class="cstat-no" title="statement not covered" > if (</span>
950
+ <span class="missing-if-branch" title="else path not taken" >E</span>name.length &gt; 1 &amp;&amp;
951
+ <span class="branch-1 cbranch-no" title="branch not covered" > na<span class="missing-if-branch" title="if path not taken" >I</span>me.length &lt;= 3 &amp;&amp;</span>
952
+ <span class="branch-2 cbranch-no" title="branch not covered" > !options.isLoopVariabl<span class="cstat-no" title="statement not covered" >e &amp;&amp;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span></span>
953
+ <span class="branch-3 cbranch-no" title="branch not covered" > !isC<span class="cstat-no" title="statement not covered" >ommonAbbreviation(name)</span></span>
852
954
  ) {
853
- const severity = adjustSeverity(Severity.Info, context, 'abbreviation');
955
+ const <span class="cstat-no" title="statement not covered" >severity = adjustSeverity(Severity.Info, context, 'abbreviation');</span>
854
956
  issues.push({
855
957
  file,
856
- <span class="missing-if-branch" title="else path not taken" >E</span> line,
857
- <span class="missing-if-branch" title="if path not taken" >I</span>type: 'abbreviation',
858
- identifier: name,<span class="cstat-no" title="statement not covered" ><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ></span></span></span>
859
- se<span class="cstat-no" title="statement not covered" >verity,</span>
958
+ line,
959
+ type: 'abbreviation',
960
+ identifier: name,
961
+ severity,
860
962
  suggestion: 'Avoid non-standard abbreviations',
861
963
  });
862
964
  }
863
965
  }
864
- &nbsp;
966
+ <span class="missing-if-branch" title="else path not taken" >E</span>
865
967
  function isCommonAbbreviation(name: string): boolean {
866
- const common = <span class="cstat-no" title="statement not covered" >[</span>
968
+ const common = [
867
969
  'id',
868
970
  'db',
869
- 'fs',
971
+ 'fs',<span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
870
972
  'os',
871
973
  'ip',
872
- <span class="missing-if-branch" title="else path not taken" >E</span> 'ui',
974
+ 'ui',
873
975
  'ux',
874
- 'api',
976
+ 'api',<span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
875
977
  'env',
876
978
  'url',
877
- ];<span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span></span>
979
+ 'req',
980
+ 'res',
981
+ 'err',
982
+ 'ctx',
983
+ 'cb',
984
+ 'idx',
985
+ 'src',
986
+ 'dir',
987
+ 'app',
988
+ 'dev',
989
+ 'qa',
990
+ 'dto',
991
+ 'dao',
992
+ 'ref',
993
+ 'ast',
994
+ 'dom',
995
+ 'log',
996
+ 'msg',
997
+ 'pkg',
998
+ 'req',
999
+ 'err',
1000
+ 'res',
1001
+ 'css',
1002
+ 'html',
1003
+ 'xml',
1004
+ 'jsx',
1005
+ 'tsx',
1006
+ 'ts',
1007
+ 'js',
1008
+ ];
878
1009
  return common.includes(name.toLowerCase());
879
1010
  }
880
1011
  &nbsp;
881
1012
  /**
882
- * Simple <span class="missing-if-branch" title="if path not taken" >I</span>scope-aware variable tracker<span class="cstat-no" title="statement not covered" ></span>
1013
+ * Simple scope-aware variable tracker
883
1014
  */
884
1015
  class ScopeTracker {
885
1016
  private variables: any[] = [];
@@ -898,21 +1029,30 @@ class ScopeTracker {
898
1029
  }
899
1030
  }
900
1031
  &nbsp;
1032
+ /**
1033
+ * Extracts identifiers from destructured patterns (object or array destructuring)
1034
+ * and registers them in the scope tracker.
1035
+ * @param node - The AST node representing the destructured pattern
1036
+ * @param isParameter - When true, indicates the destructured variable is a function parameter; when false, it's a local variable
1037
+ * @param scopeTracker - The scope tracker to register variables with
1038
+ */
901
1039
  function <span class="fstat-no" title="function not covered" >extractDestructuredIdentifiers(</span>
902
1040
  node: TSESTree.ObjectPattern | TSESTree.ArrayPattern,
903
1041
  isParameter: boolean,
904
- scopeTracker: ScopeTracker
1042
+ scopeTracker: ScopeTracker,
1043
+ isArrowParameter: boolean = false
905
1044
  ) {
906
1045
  <span class="cstat-no" title="statement not covered" > if (node.type === 'ObjectPattern') {</span>
907
- <span class="cstat-no" title="statement not covered" > node.properties.forEach((prop) =&gt; {</span>
908
- <span class="missing-if-branch" title="else path not taken" >E</span>if (prop.type === 'Property' &amp;&amp; prop.value.type === 'Identifier') {
1046
+ node.properties.forEach((prop) =&gt; {
1047
+ if (prop.type === 'Property' &amp;&amp; prop.value.type === 'Identifier') {
909
1048
  scopeTracker.declareVariable(
910
1049
  prop.value.name,
911
- prop.value,
1050
+ <span class="missing-if-branch" title="else path not taken" >E</span> prop.value,
912
1051
  getLineNumber(prop.value),
913
- {
1052
+ <span class="missing-if-branch" title="else path not taken" >E</span> {
914
1053
  isParameter,
915
1054
  isDestructured: true,
1055
+ isArrowParameter,
916
1056
  }
917
1057
  );
918
1058
  }
@@ -927,6 +1067,7 @@ function <span class="fstat-no" title="function not covered" >extractDestructure
927
1067
  {
928
1068
  isParameter,
929
1069
  isDestructured: true,
1070
+ isArrowParameter,
930
1071
  }
931
1072
  );
932
1073
  }
@@ -940,7 +1081,7 @@ function <span class="fstat-no" title="function not covered" >extractDestructure
940
1081
  <div class='footer quiet pad2 space-top1 center small'>
941
1082
  Code coverage generated by
942
1083
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
943
- at 2026-03-09T03:06:05.217Z
1084
+ at 2026-03-21T12:56:00.785Z
944
1085
  </div>
945
1086
  <script src="../../prettify.js"></script>
946
1087
  <script>