mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
feat(manascore): add extended codebase metrics to all app audits
Add LOC, source files, size, commits, contributors, first commit date, TODO count, API endpoints, stores, and max file size metrics to all 20 ManaScore audit files with real measured data from the monorepo. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
89e32d4798
commit
b9a9052ae5
23 changed files with 326 additions and 4 deletions
|
|
@ -285,6 +285,15 @@ const manascoreCollection = defineCollection({
|
|||
testCount: z.number().optional(),
|
||||
languages: z.number().optional(),
|
||||
linesOfCode: z.number().optional(),
|
||||
sourceFiles: z.number().optional(),
|
||||
sizeInMb: z.number().optional(),
|
||||
commits: z.number().optional(),
|
||||
contributors: z.number().optional(),
|
||||
firstCommitDate: z.string().optional(),
|
||||
todoCount: z.number().optional(),
|
||||
apiEndpoints: z.number().optional(),
|
||||
stores: z.number().optional(),
|
||||
maxFileLines: z.number().optional(),
|
||||
})
|
||||
.optional(),
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -65,6 +65,16 @@ stats:
|
|||
testFiles: 24
|
||||
testCount: 250
|
||||
languages: 5
|
||||
linesOfCode: 43549
|
||||
sourceFiles: 269
|
||||
sizeInMb: 2.2
|
||||
commits: 310
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-02'
|
||||
todoCount: 103
|
||||
apiEndpoints: 49
|
||||
stores: 46
|
||||
maxFileLines: 1686
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 2
|
||||
testCount: 78
|
||||
languages: 5
|
||||
linesOfCode: 28989
|
||||
sourceFiles: 203
|
||||
sizeInMb: 1.5
|
||||
commits: 178
|
||||
contributors: 4
|
||||
firstCommitDate: '2025-11-26'
|
||||
todoCount: 477
|
||||
apiEndpoints: 45
|
||||
stores: 22
|
||||
maxFileLines: 959
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 2
|
||||
linesOfCode: 7720
|
||||
sourceFiles: 97
|
||||
sizeInMb: 0.6
|
||||
commits: 131
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-03'
|
||||
todoCount: 94
|
||||
apiEndpoints: 26
|
||||
stores: 22
|
||||
maxFileLines: 478
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 14
|
||||
testCount: 150
|
||||
languages: 5
|
||||
linesOfCode: 27840
|
||||
sourceFiles: 177
|
||||
sizeInMb: 1.5
|
||||
commits: 181
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-02'
|
||||
todoCount: 52
|
||||
apiEndpoints: 46
|
||||
stores: 28
|
||||
maxFileLines: 1696
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 4
|
||||
testCount: 70
|
||||
languages: 2
|
||||
linesOfCode: 31386
|
||||
sourceFiles: 220
|
||||
sizeInMb: 1.6
|
||||
commits: 26
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-05'
|
||||
todoCount: 523
|
||||
apiEndpoints: 23
|
||||
stores: 16
|
||||
maxFileLines: 1104
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 12
|
||||
testCount: 103
|
||||
languages: 5
|
||||
linesOfCode: 50234
|
||||
sourceFiles: 300
|
||||
sizeInMb: 7.8
|
||||
commits: 214
|
||||
contributors: 4
|
||||
firstCommitDate: '2025-11-26'
|
||||
todoCount: 111
|
||||
apiEndpoints: 0
|
||||
stores: 12
|
||||
maxFileLines: 2001
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 1
|
||||
testCount: 8
|
||||
languages: 5
|
||||
linesOfCode: 21118
|
||||
sourceFiles: 185
|
||||
sizeInMb: 2.5
|
||||
commits: 99
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-11-26'
|
||||
todoCount: 295
|
||||
apiEndpoints: 58
|
||||
stores: 23
|
||||
maxFileLines: 971
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 2
|
||||
testCount: 5
|
||||
languages: 2
|
||||
linesOfCode: 16076
|
||||
sourceFiles: 100
|
||||
sizeInMb: 1.4
|
||||
commits: 111
|
||||
contributors: 3
|
||||
firstCommitDate: '2026-01-28'
|
||||
todoCount: 489
|
||||
apiEndpoints: 0
|
||||
stores: 8
|
||||
maxFileLines: 2019
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 6
|
||||
testCount: 113
|
||||
languages: 1
|
||||
linesOfCode: 16327
|
||||
sourceFiles: 142
|
||||
sizeInMb: 1.0
|
||||
commits: 60
|
||||
contributors: 1
|
||||
firstCommitDate: '2026-03-17'
|
||||
todoCount: 61
|
||||
apiEndpoints: 59
|
||||
stores: 25
|
||||
maxFileLines: 572
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 8
|
||||
testCount: 45
|
||||
languages: 2
|
||||
linesOfCode: 6521
|
||||
sourceFiles: 83
|
||||
sizeInMb: 0.6
|
||||
commits: 78
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-11-26'
|
||||
todoCount: 158
|
||||
apiEndpoints: 19
|
||||
stores: 5
|
||||
maxFileLines: 298
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 3
|
||||
linesOfCode: 6136
|
||||
sourceFiles: 73
|
||||
sizeInMb: 0.2
|
||||
commits: 40
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-02-11'
|
||||
todoCount: 46
|
||||
apiEndpoints: 26
|
||||
stores: 14
|
||||
maxFileLines: 421
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 4
|
||||
testCount: 70
|
||||
languages: 5
|
||||
linesOfCode: 54828
|
||||
sourceFiles: 406
|
||||
sizeInMb: 5.0
|
||||
commits: 139
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-11-26'
|
||||
todoCount: 253
|
||||
apiEndpoints: 68
|
||||
stores: 40
|
||||
maxFileLines: 1064
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 3
|
||||
linesOfCode: 4228
|
||||
sourceFiles: 65
|
||||
sizeInMb: 0.6
|
||||
commits: 58
|
||||
contributors: 2
|
||||
firstCommitDate: '2026-01-18'
|
||||
todoCount: 46
|
||||
apiEndpoints: 15
|
||||
stores: 8
|
||||
maxFileLines: 279
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 10
|
||||
testCount: 72
|
||||
languages: 6
|
||||
linesOfCode: 7086
|
||||
sourceFiles: 90
|
||||
sizeInMb: 0.7
|
||||
commits: 98
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-11-27'
|
||||
todoCount: 48
|
||||
apiEndpoints: 18
|
||||
stores: 12
|
||||
maxFileLines: 675
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 3
|
||||
linesOfCode: 6009
|
||||
sourceFiles: 89
|
||||
sizeInMb: 0.5
|
||||
commits: 48
|
||||
contributors: 3
|
||||
firstCommitDate: '2026-01-28'
|
||||
todoCount: 46
|
||||
apiEndpoints: 32
|
||||
stores: 14
|
||||
maxFileLines: 320
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 2
|
||||
testCount: 12
|
||||
languages: 4
|
||||
linesOfCode: 7417
|
||||
sourceFiles: 71
|
||||
sizeInMb: 0.7
|
||||
commits: 56
|
||||
contributors: 3
|
||||
firstCommitDate: '2026-01-28'
|
||||
todoCount: 48
|
||||
apiEndpoints: 13
|
||||
stores: 10
|
||||
maxFileLines: 554
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -35,6 +35,16 @@ stats:
|
|||
testFiles: 19
|
||||
testCount: 205
|
||||
languages: 2
|
||||
linesOfCode: 12908
|
||||
sourceFiles: 113
|
||||
sizeInMb: 0.9
|
||||
commits: 90
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-02'
|
||||
todoCount: 48
|
||||
apiEndpoints: 35
|
||||
stores: 12
|
||||
maxFileLines: 676
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -65,6 +65,16 @@ stats:
|
|||
testFiles: 16
|
||||
testCount: 210
|
||||
languages: 5
|
||||
linesOfCode: 26567
|
||||
sourceFiles: 187
|
||||
sizeInMb: 1.2
|
||||
commits: 223
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-12-03'
|
||||
todoCount: 98
|
||||
apiEndpoints: 50
|
||||
stores: 30
|
||||
maxFileLines: 1252
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 0
|
||||
linesOfCode: 11637
|
||||
sourceFiles: 78
|
||||
sizeInMb: 0.8
|
||||
commits: 6
|
||||
contributors: 1
|
||||
firstCommitDate: '2026-03-15'
|
||||
todoCount: 38
|
||||
apiEndpoints: 14
|
||||
stores: 0
|
||||
maxFileLines: 760
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -31,6 +31,16 @@ stats:
|
|||
testFiles: 0
|
||||
testCount: 0
|
||||
languages: 2
|
||||
linesOfCode: 7807
|
||||
sourceFiles: 70
|
||||
sizeInMb: 0.6
|
||||
commits: 105
|
||||
contributors: 3
|
||||
firstCommitDate: '2025-11-28'
|
||||
todoCount: 47
|
||||
apiEndpoints: 12
|
||||
stores: 20
|
||||
maxFileLines: 1425
|
||||
---
|
||||
|
||||
## Zusammenfassung
|
||||
|
|
|
|||
|
|
@ -488,7 +488,78 @@ function getBarColor(score: number): string {
|
|||
audit.data.stats && (
|
||||
<div class="border-border/50 mb-8 rounded-xl border bg-gradient-to-br from-white/5 to-white/[0.02] p-6">
|
||||
<h2 class="text-foreground mb-4 text-sm font-semibold">Metriken</h2>
|
||||
{/* Codebase size highlight */}
|
||||
{(audit.data.stats.linesOfCode ||
|
||||
audit.data.stats.sourceFiles ||
|
||||
audit.data.stats.sizeInMb) && (
|
||||
<div class="mb-4 grid grid-cols-3 gap-4 rounded-lg bg-white/5 p-4">
|
||||
{audit.data.stats.linesOfCode !== undefined && (
|
||||
<div class="text-center">
|
||||
<span class="text-primary text-2xl font-bold">
|
||||
{audit.data.stats.linesOfCode.toLocaleString('de-DE')}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Lines of Code</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.sourceFiles !== undefined && (
|
||||
<div class="text-center">
|
||||
<span class="text-primary text-2xl font-bold">
|
||||
{audit.data.stats.sourceFiles}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Source Files</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.sizeInMb !== undefined && (
|
||||
<div class="text-center">
|
||||
<span class="text-primary text-2xl font-bold">
|
||||
{audit.data.stats.sizeInMb}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">MB (Source)</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
{/* Activity & History */}
|
||||
{(audit.data.stats.commits ||
|
||||
audit.data.stats.contributors ||
|
||||
audit.data.stats.firstCommitDate) && (
|
||||
<div class="mb-4 grid grid-cols-3 gap-4 rounded-lg bg-white/5 p-4">
|
||||
{audit.data.stats.commits !== undefined && (
|
||||
<div class="text-center">
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
{audit.data.stats.commits}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Commits</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.contributors !== undefined && (
|
||||
<div class="text-center">
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
{audit.data.stats.contributors}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Contributors</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.firstCommitDate && (
|
||||
<div class="text-center">
|
||||
<span class="text-foreground text-lg font-bold">
|
||||
{audit.data.stats.firstCommitDate}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Erster Commit</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
<div class="grid grid-cols-2 gap-4 sm:grid-cols-4">
|
||||
{audit.data.stats.apiEndpoints !== undefined &&
|
||||
audit.data.stats.apiEndpoints > 0 && (
|
||||
<div>
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
{audit.data.stats.apiEndpoints}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">API Endpoints</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.backendModules !== undefined && (
|
||||
<div>
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
|
|
@ -505,6 +576,14 @@ function getBarColor(score: number): string {
|
|||
<span class="text-muted-foreground block text-xs">Web Routes</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.stores !== undefined && audit.data.stats.stores > 0 && (
|
||||
<div>
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
{audit.data.stats.stores}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Stores</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.components !== undefined && (
|
||||
<div>
|
||||
<span class="text-foreground text-2xl font-bold">
|
||||
|
|
@ -545,6 +624,26 @@ function getBarColor(score: number): string {
|
|||
<span class="text-muted-foreground block text-xs">Sprachen</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.todoCount !== undefined && audit.data.stats.todoCount > 0 && (
|
||||
<div>
|
||||
<span
|
||||
class={`text-2xl font-bold ${audit.data.stats.todoCount > 200 ? 'text-yellow-500' : audit.data.stats.todoCount > 400 ? 'text-red-500' : 'text-foreground'}`}
|
||||
>
|
||||
{audit.data.stats.todoCount}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">TODOs/FIXMEs</span>
|
||||
</div>
|
||||
)}
|
||||
{audit.data.stats.maxFileLines !== undefined && (
|
||||
<div>
|
||||
<span
|
||||
class={`text-2xl font-bold ${audit.data.stats.maxFileLines > 1000 ? 'text-yellow-500' : 'text-foreground'}`}
|
||||
>
|
||||
{audit.data.stats.maxFileLines}
|
||||
</span>
|
||||
<span class="text-muted-foreground block text-xs">Max File (LOC)</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -288,11 +288,25 @@ const statuses = [...new Set(sortedAudits.map((a) => a.data.status))];
|
|||
{/* Stats row */}
|
||||
{data.stats && (
|
||||
<div class="text-muted-foreground/60 mt-2 flex flex-wrap gap-3 text-[10px]">
|
||||
{data.stats.backendModules ? (
|
||||
<span>{data.stats.backendModules} Module</span>
|
||||
{data.stats.linesOfCode ? (
|
||||
<span class="text-foreground/70 font-medium">
|
||||
{data.stats.linesOfCode.toLocaleString('de-DE')} LOC
|
||||
</span>
|
||||
) : null}
|
||||
{data.stats.sourceFiles ? (
|
||||
<span>{data.stats.sourceFiles} Files</span>
|
||||
) : null}
|
||||
{data.stats.sizeInMb ? <span>{data.stats.sizeInMb} MB</span> : null}
|
||||
{data.stats.commits ? <span>{data.stats.commits} Commits</span> : null}
|
||||
{data.stats.apiEndpoints ? (
|
||||
<span>{data.stats.apiEndpoints} Endpoints</span>
|
||||
) : null}
|
||||
{data.stats.stores ? <span>{data.stats.stores} Stores</span> : null}
|
||||
{data.stats.todoCount ? (
|
||||
<span class={data.stats.todoCount > 200 ? 'text-yellow-500' : ''}>
|
||||
{data.stats.todoCount} TODOs
|
||||
</span>
|
||||
) : null}
|
||||
{data.stats.webRoutes ? <span>{data.stats.webRoutes} Routes</span> : null}
|
||||
{data.stats.dbTables ? <span>{data.stats.dbTables} Tables</span> : null}
|
||||
{data.stats.testCount !== undefined ? (
|
||||
<span>{data.stats.testCount} Tests</span>
|
||||
) : null}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue