tg-bot-ts/tsconfig.json
Nuno Duque Nunes 9e8877483d feat: Leaderboard & Result systems with aligned columns, call/confirm-no commands, persistent message slots
- TextAlign: column alignment for embeds using real gg sans font metrics
- EmbedHelpers: per-player grid/column layouts immune to 1024-char field limit
- Layout: domain-aware formatting wrapper (wrank, bringer, cockroach, tgCount)
- PersistentMessage: multi-slot support for independently-updatable embeds
- Leaderboard: weekly rankings + highlights embed (most kills/deaths, next Bringer)
- Result: per-TG breakdown with wRankAtSubmission snapshot for historical accuracy
- /tg call, /tg poll confirm-no, /tg-admin score-inject, result/leaderboard post commands
- Fix: CharacterRegistry wasn't hydrating ownerKey, breaking K/D bot-wide
- Fix: Leaderboard.buildEntries used current week instead of passed-in week param
- /tg-admin test-align: permanent calibration tool for embed text alignment

Includes data/emojis/anima-mastery.json for new combat stat icons.
2026-06-20 03:04:52 +01:00

49 lines
No EOL
1.6 KiB
JSON

{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": ".",
"paths": {
"@root/*": ["./*"],
"@src/*": ["src/*"],
"@data/*": ["data/*"],
"@tests/*": ["tests/*"],
"@messages/*": ["messages/*"],
"@tgHistory/*": ["data/tg-history/*"],
"@scripts/*": ["scripts/*"],
"@helpers/*": ["src/helpers/*"],
"@systems/*": ["src/systems/*"],
"@registry/*": ["src/systems/registry/*"],
"@commands/*": ["src/commands/*"],
"@subcommands/*": ["src/subcommands/*"],
"@handlers/*": ["src/handlers/*"],
"@utils": ["src/utils"],
"@types": ["src/types"],
"@format": ["src/systems/format"],
"@emojis": ["src/systems/emojis"],
"@scheduler/*": ["src/systems/scheduler/*"],
"@paths": ["src/helpers/paths"],
"@characters": ["src/systems/characters"],
"@systems/scheduler": ["src/systems/scheduler/index"],
"@ui": ["src/ui/index"],
"@ui/*": ["src/ui/*"],
"@ui/poll": ["src/ui/poll/index"],
"@ui/types": ["src/ui/types"],
"@discord": ["src/discord/index"],
"@discord/*": ["src/discord/*"],
"@ui/layout": ["src/ui/layout"],
"@ui/result": ["src/ui/result/index"],
"@ui/leaderboard": ["src/ui/leaderboard/index"]
}
},
"include": ["src/**/*", "scripts/**/*"],
"exclude": ["node_modules", "dist"]
}