mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
88643d366d79ccb641d7c7942777f2be15cabbeb
The /session/ page crashed when a tracked player's tank stats included a tank with no matching tank definition or no average stats (WN8 baseline). The delta memo dereferenced `tank.id` on a possibly missing definition and forced `average?.mu!` through as non-null, so a missing average threw inside `compositeStats`/`calculateWN8` uncaught, breaking the page on every load while the bad state persisted in localStorage. Skip those entries instead of crashing: entries with no tank definition or no average `mu` are dropped from the delta via `flatMap`, so the rest of the session table still renders.
BlitzKit
Tools for everything and anything, World of Tanks Blitz.
This GitHub repository contains the code for BlitzKit and all its services. If you are here, looking to use BlitzKit, go to https://blitzkit.app/.
If you intend to contribute to the code, note that you may need to check out sensitive, closed-source submodules to locally develop certain aspects of BlitzKit. Communicate with @tresabhi on Discord to get started or discuss sensitive content, such as environment variables or submodules.
Packages
| Package | Title | Source | Memo |
|---|---|---|---|
| packages/core | Mutual internal code shared between all other packages. | ||
| packages/i18n | Crowdin | Translations served as JSON shared across all other packages, including some utility code. | |
| packages/scripts | CLI utilities for the development and deployment of BlitzKit services. | ||
| packages/varuna | Varuna | NPM | React and Astro-oriented state management library, awaiting separation from BlitzKit. Unavailable from NPM at this time. |
| packages/website | BlitzKit | https://blitzkit.app | The BlitzKit website provides a wide range of tools, APIs, and interconnects all other services. |
Submodules
| Submodule | Title | Source | Memo |
|---|---|---|---|
| submodules/blitzkit-closed | ClosedKit | blitzkit/closed | Closed source, sensitive code hidden from the public to prevent bad actors from abusing the game. Discuss with @tresabhi on Discord for special permission to access. |
Environment Variables
| Name | Source | BlitzKit Default | Memo |
|---|---|---|---|
PUBLIC_WARGAMING_APPLICATION_ID |
Wargaming Developer's Room | Application ID needed to communicate with Wargaming APIs. | |
PUBLIC_PROMOTE_OPENTEST |
false |
Optional boolean dictating whether the website advertises the opentest subdomain of BlitzKit. | |
WOTB_GLOSSARY, WOTB_GLOSSARY_DOMAIN, WOTB_GLOSSARY_PATH |
|||
PUBLIC_GOOGLE_TAG_MANAGER_ID |
Google Tag Manager | G-GL2JVHCGPQ |
Google Tag Manager's unique identifier for analytical purposes. |
PUBLIC_GOOGLE_ANALYTICS_PROPERTY_ID |
Google Analytics | 430711767 |
Google Analytics' unique property ID for BlitzKit's apex domain and subdomains. |
GOOGLE_APPLICATION_CREDENTIALS |
Google Cloud | Google Cloud's API key, primarily used for ranking popular tanks and finding relevant tank review videos in Tankopedia. | |
PUBLIC_DISCORD_SERVER_ID |
BlitzKit Discord Server | 734786591205359697 |
BlitzKit Discord Server's id. |
PUBLIC_ASSET_BASE |
blitzkit/assets | https://blitzkit.github.io/assets |
The root domain and path that serves the external assets like tank models and icons. |
PUBLIC_GUIDE_WEBSITE |
GuidesBlitz | https://guidesblitz.com |
The website that serves the encyclopedia-like content in BlitzKit. |
SERVICING |
false |
Wether the website is down for servicing. | |
GH_TOKEN |
GitHub Fine-Grained Tokens | The GitHub API key used for checking out private submodules and pushing content to the asset repository. | |
DATABASE_URL |
CockroachDB | The CockroachDB-SQL database URL used to link Wargaming and Discord users. | |
WOTB_DLC_CDN |
Languages
TypeScript
96.2%
Astro
3.2%
GLSL
0.4%
CSS
0.2%