diff --git a/.vscode/settings.json b/.vscode/settings.json index 588494a00..5b01a0358 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -65,6 +65,7 @@ "Everytime", "FASTNAME", "FOURCC", + "frameloop", "fsformat", "Fullscreen", "fullstats", diff --git a/bun.lockb b/bun.lockb index 748c3458b..cf0d7b47d 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index d20962e93..076c0a48c 100644 --- a/package.json +++ b/package.json @@ -30,51 +30,34 @@ "discoverids": "scripts/discoverIds.ts" }, "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, "devDependencies": { "typescript": "^5.5.4" }, "_dependencies": { "@radix-ui/colors": "^3.0.0", - "@resvg/resvg-js": "^2.6.2", "@types/three": "^0.160.0", "@vanilla-extract/css": "^1.15.5", - "bepaint": "^0.1.0-beta.3", "csv-parse": "^5.5.6", - "decompress": "^4.2.1", - "discord.js": "^14.15.3", - "dotenv": "^16.4.5", "esbuild": "^0.19.12", "express": "^4.19.2", "false": "^0.0.4", "fuzzysort": "^2.0.4", - "googleapis": "^134.0.0", - "js-yaml": "^4.1.0", - "markdown-escape": "^2.0.0", - "markdown-to-jsx": "^7.5.0", "parse-dds": "^1.2.1", "postprocessing": "^6.36.0", - "progress": "^2.0.3", - "satori": "^0.10.14", - "sharp": "^0.33.5", "three-stdlib": "^2.32.2", - "urlon": "^3.1.0", - "yaml": "^2.5.0" + "urlon": "^3.1.0" }, "_devDependencies": { "@total-typescript/ts-reset": "^0.5.1", "@types/bun": "latest", - "@types/decompress": "^4.2.7", "@types/escape-html": "^1.0.4", "@types/express": "^4.17.21", - "@types/js-yaml": "^4.0.9", - "@types/markdown-escape": "^1.1.3", "@types/node": "^20.16.3", "@types/parse-dds": "^1.0.3", "@types/pngjs": "^6.0.5", - "@types/progress": "^2.0.7", - "compare-versions": "^6.1.1", - "crc": "^4.3.2", - "fast-xml-parser": "^4.4.1", "knip": "^3.13.2", "prettier": "^3.3.3", "prisma": "^5.19.1" diff --git a/packages/bot/package.json b/packages/bot/package.json new file mode 100644 index 000000000..e3806b6a0 --- /dev/null +++ b/packages/bot/package.json @@ -0,0 +1,17 @@ +{ + "name": "@blitzkit/bot", + "private": true, + "type": "module", + "dependencies": { + "@blitzkit/core": "workspace:*", + "satori": "^0.10.14", + "@resvg/resvg-js": "^2.6.2", + "discord.js": "^14.15.3", + "bepaint": "^0.1.0-beta.3", + "dotenv": "^16.4.5", + "markdown-escape": "^2.0.0" + }, + "devDependencies": { + "@types/markdown-escape": "^1.1.3" + } +} \ No newline at end of file diff --git a/packages/bot/src/commands/breakdown/index.tsx b/packages/bot/src/commands/breakdown/index.tsx index 5acd2237a..656563c9a 100644 --- a/packages/bot/src/commands/breakdown/index.tsx +++ b/packages/bot/src/commands/breakdown/index.tsx @@ -1,4 +1,4 @@ -import { getBlitzStarsLinkButton } from '../../core/blitzstars/getBlitzStarsLinkButton'; +import { getBlitzStarsLinkButton } from '../../../../website/src/core/blitzstars/getBlitzStarsLinkButton'; import addPeriodicFilterOptions from '../../core/discord/addPeriodicFilterOptions'; import addUsernameChoices from '../../core/discord/addUsernameChoices'; import autocompleteTanks from '../../core/discord/autocompleteTanks'; diff --git a/packages/bot/src/commands/breakdown/render.tsx b/packages/bot/src/commands/breakdown/render.tsx index 3cde58f48..d4e3ea55a 100644 --- a/packages/bot/src/commands/breakdown/render.tsx +++ b/packages/bot/src/commands/breakdown/render.tsx @@ -1,27 +1,28 @@ -import getStatsInPeriod from '@blitzkit/core/src/blitzstars/getStatsInPeriod'; +import { + BlitzStats, + filterStats, + StatFilters, + TankDefinition, + tankDefinitions, +} from '@blitzkit/core'; +import calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8'; +import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile'; import { Locale } from 'discord.js'; import { chunk } from 'lodash'; +import { getAccountInfo } from '../../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../../website/src/core/blitz/getClanAccountInfo'; +import getTankStats from '../../../../website/src/core/blitz/getTankStats'; +import { filtersToDescription } from '../../../../website/src/core/blitzkit/filtersToDescription'; +import { tankAverages } from '../../../../website/src/core/blitzstars/tankAverages'; +import { UserError } from '../../../../website/src/hooks/userError'; import * as Breakdown from '../../components/Breakdown'; import CommandWrapper from '../../components/CommandWrapper'; import NoData from '../../components/NoData'; import TitleBar from '../../components/TitleBar'; -import { getAccountInfo } from '../../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../../core/blitz/getClanAccountInfo'; -import getTankStats from '../../core/blitz/getTankStats'; -import { filtersToDescription } from '../../core/blitzkit/filtersToDescription'; -import { - TankDefinition, - tankDefinitions, -} from '../../core/blitzkit/tankDefinitions'; -import { tankAverages } from '../../core/blitzstars/tankAverages'; +import getStatsInPeriod from '../../core/blitzstars/getStatsInPeriod'; import { ResolvedPeriod } from '../../core/discord/resolvePeriodFromCommand'; import { ResolvedPlayer } from '../../core/discord/resolvePlayerFromCommand'; import { translator } from '../../core/localization/translator'; -import calculateWN8 from '../../core/statistics/calculateWN8'; -import { BlitzStats } from '../../core/statistics/compositeStats/constants'; -import { StatFilters, filterStats } from '../../core/statistics/filterStats'; -import getWN8Percentile from '../../core/statistics/getWN8Percentile'; -import { UserError } from '../../hooks/userError'; const ROWS_PER_PAGE = 8; const MAX_PAGES = 9; diff --git a/packages/bot/src/commands/debug.ts b/packages/bot/src/commands/debug.ts index e2d99f541..56fedeb6d 100644 --- a/packages/bot/src/commands/debug.ts +++ b/packages/bot/src/commands/debug.ts @@ -1,4 +1,4 @@ -import packageJSON from '../../package.json' assert { type: 'json' }; +import packageJSON from '../../../../package.json' assert { type: 'json' }; import { client } from '../core/discord/client'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; import { translator } from '../core/localization/translator'; diff --git a/packages/bot/src/commands/evolution.tsx b/packages/bot/src/commands/evolution.tsx index 32a5b2eea..9dd5d0211 100644 --- a/packages/bot/src/commands/evolution.tsx +++ b/packages/bot/src/commands/evolution.tsx @@ -1,16 +1,16 @@ import { Locale, SlashCommandSubcommandGroupBuilder } from 'discord.js'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import resolveTankId from '../../../website/src/core/blitz/resolveTankId'; +import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; +import { getBlitzStarsLinkButton } from '../../../website/src/core/blitzstars/getBlitzStarsLinkButton'; +import getPlayerHistories from '../../../website/src/core/blitzstars/getPlayerHistories'; import CommandWrapper from '../components/CommandWrapper'; import * as Graph from '../components/Graph'; import { LineColor } from '../components/Graph/components/Line/constants'; import NoData from '../components/NoData'; import TitleBar from '../components/TitleBar'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import resolveTankId from '../core/blitz/resolveTankId'; -import { emblemURL } from '../core/blitzkit/emblemURL'; -import getTankHistories from '../core/blitzkit/getTankHistories'; -import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton'; -import getPlayerHistories from '../core/blitzstars/getPlayerHistories'; +import getTankHistories from '../core/blitzstars/getTankHistories'; import { addPeriodSubCommands } from '../core/discord/addPeriodSubCommands'; import addTankChoices from '../core/discord/addTankChoices'; import addUsernameChoices from '../core/discord/addUsernameChoices'; diff --git a/packages/bot/src/commands/fullStats.tsx b/packages/bot/src/commands/fullStats.tsx index c73fd759c..3fbebfb80 100644 --- a/packages/bot/src/commands/fullStats.tsx +++ b/packages/bot/src/commands/fullStats.tsx @@ -1,15 +1,16 @@ -import getStatsInPeriod from '@blitzkit/core/src/blitzstars/getStatsInPeriod'; +import { StatFilters, filterStats, getTierWeights } from '@blitzkit/core'; import { Locale } from 'discord.js'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; +import { filtersToDescription } from '../../../website/src/core/blitzkit/filtersToDescription'; +import { getBlitzStarsLinkButton } from '../../../website/src/core/blitzstars/getBlitzStarsLinkButton'; import CommandWrapper from '../components/CommandWrapper'; import GenericAllStats from '../components/GenericAllStats'; import NoData from '../components/NoData'; import TierWeights from '../components/TierWeights'; import TitleBar from '../components/TitleBar'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import { emblemURL } from '../core/blitzkit/emblemURL'; -import { filtersToDescription } from '../core/blitzkit/filtersToDescription'; -import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton'; +import getStatsInPeriod from '../core/blitzstars/getStatsInPeriod'; import addPeriodicFilterOptions from '../core/discord/addPeriodicFilterOptions'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteTanks from '../core/discord/autocompleteTanks'; @@ -28,8 +29,6 @@ import resolvePlayerFromButton from '../core/discord/resolvePlayerFromButton'; import resolvePlayerFromCommand, { ResolvedPlayer, } from '../core/discord/resolvePlayerFromCommand'; -import { StatFilters, filterStats } from '../core/statistics/filterStats'; -import { getTierWeights } from '../core/statistics/getTierWeights'; import { CommandRegistry } from '../events/interactionCreate'; async function render( diff --git a/packages/bot/src/commands/inactive.tsx b/packages/bot/src/commands/inactive.tsx index 4b78ea910..62e3d121f 100644 --- a/packages/bot/src/commands/inactive.tsx +++ b/packages/bot/src/commands/inactive.tsx @@ -1,10 +1,10 @@ import { Locale } from 'discord.js'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanInfo } from '../../../website/src/core/blitz/getClanInfo'; import CommandWrapper from '../components/CommandWrapper'; import GenericStats from '../components/GenericStats'; import NoData from '../components/NoData'; import TitleBar from '../components/TitleBar'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanInfo } from '../core/blitz/getClanInfo'; import addClanChoices from '../core/discord/addClanChoices'; import autocompleteClan from '../core/discord/autocompleteClan'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; @@ -72,7 +72,9 @@ export const inactiveCommand = new Promise((resolve) => { {!hasInactiveMembers && ( diff --git a/packages/bot/src/commands/link.tsx b/packages/bot/src/commands/link.tsx index 8d8ee8999..8cf45f682 100644 --- a/packages/bot/src/commands/link.tsx +++ b/packages/bot/src/commands/link.tsx @@ -1,9 +1,9 @@ import { teal } from '@radix-ui/colors'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import { linkBlitzAndDiscord } from '../../../website/src/core/blitzkit/linkBlitzAndDiscord'; import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow'; import CommandWrapper from '../components/CommandWrapper'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import { linkBlitzAndDiscord } from '../core/blitzkit/linkBlitzAndDiscord'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteUsername from '../core/discord/autocompleteUsername'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; diff --git a/packages/bot/src/commands/ownedTanks.tsx b/packages/bot/src/commands/ownedTanks.tsx index c476a343d..78f586511 100644 --- a/packages/bot/src/commands/ownedTanks.tsx +++ b/packages/bot/src/commands/ownedTanks.tsx @@ -1,16 +1,16 @@ -import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions'; -import { chunk } from 'lodash'; -import markdownEscape from 'markdown-escape'; -import { TANK_CLASSES } from '../components/Tanks/components/Item/constants'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import getTankStats from '../core/blitz/getTankStats'; import { + TANK_CLASSES, + TIER_ROMAN_NUMERALS, TankDefinition, Tier, flags, tankDefinitions, -} from '../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../core/blitzkit/tankDefinitions/constants'; +} from '@blitzkit/core'; +import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions'; +import { chunk } from 'lodash'; +import markdownEscape from 'markdown-escape'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import getTankStats from '../../../website/src/core/blitz/getTankStats'; import addTierChoices from '../core/discord/addTierChoices'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteUsername from '../core/discord/autocompleteUsername'; diff --git a/packages/bot/src/commands/playerInfo.ts b/packages/bot/src/commands/playerInfo.ts index f6af4a6dc..68d29026c 100644 --- a/packages/bot/src/commands/playerInfo.ts +++ b/packages/bot/src/commands/playerInfo.ts @@ -1,5 +1,5 @@ import markdownEscape from 'markdown-escape'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteUsername from '../core/discord/autocompleteUsername'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; diff --git a/packages/bot/src/commands/rating.tsx b/packages/bot/src/commands/rating.tsx index fc62d2465..eaa04a4ea 100644 --- a/packages/bot/src/commands/rating.tsx +++ b/packages/bot/src/commands/rating.tsx @@ -1,24 +1,23 @@ +import { BkrlFormat, deltaBkrlBlitzStats } from '@blitzkit/core'; import { SlashCommandSubcommandBuilder } from 'discord.js'; import markdownEscape from 'markdown-escape'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import { getLeagueFromScore } from '../../../website/src/core/blitz/getLeagueFromScore'; +import getRatingInfo from '../../../website/src/core/blitz/getRatingInfo'; +import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors'; +import { normalizeLeagueIcon } from '../../../website/src/core/blitz/normalizeLeagueIcon'; +import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; +import getArchivedRatingMidnightLeaderboard from '../../../website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard'; +import { iconPng } from '../../../website/src/core/blitzkit/iconPng'; import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow'; import CommandWrapper from '../components/CommandWrapper'; import { DeltaCaret } from '../components/DeltaCaret'; import TitleBar from '../components/TitleBar'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import { getLeagueFromScore } from '../core/blitz/getLeagueFromScore'; -import getRatingInfo from '../core/blitz/getRatingInfo'; -import { getRatingNeighbors } from '../core/blitz/getRatingNeighbors'; -import { normalizeLeagueIcon } from '../core/blitz/normalizeLeagueIcon'; -import { emblemURL } from '../core/blitzkit/emblemURL'; -import getArchivedRatingMidnightLeaderboard from '../core/blitzkit/getArchivedRatingMidnightLeaderboard'; -import { iconPng } from '../core/blitzkit/iconPng'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand'; import { translator } from '../core/localization/translator'; -import { deltaBkrlBlitzStats } from '../core/statistics/deltaBkrlBlitzStats'; -import { BkrlFormat } from '../core/streams/bkrl'; import { CommandRegistry } from '../events/interactionCreate'; import { theme } from '../stitches.config'; @@ -122,9 +121,9 @@ export const ratingCommand = new Promise((resolve) => {
((resolve) => { padding: 16, backgroundColor: theme.colors[`appBackground2${leagueTheme}`], borderRadius: 4, - border: `1px solid ${theme.colors[`componentInteractive${leagueTheme}`]}`, + border: `1px solid ${ + theme.colors[`componentInteractive${leagueTheme}`] + }`, display: 'flex', alignItems: 'center', justifyContent: 'space-between', diff --git a/packages/bot/src/commands/ratingLeaderboard.tsx b/packages/bot/src/commands/ratingLeaderboard.tsx index 50f75f4eb..c450d0241 100644 --- a/packages/bot/src/commands/ratingLeaderboard.tsx +++ b/packages/bot/src/commands/ratingLeaderboard.tsx @@ -1,3 +1,9 @@ +import { + BkrlDiscriminatedEntries, + FIRST_MINIMAL_ARCHIVED_RATING_SEASON, + LEAGUES, + Region, +} from '@blitzkit/core'; import { APIApplicationCommandOptionChoice, Locale, @@ -5,22 +11,20 @@ import { } from 'discord.js'; import { range } from 'lodash'; import markdownEscape from 'markdown-escape'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import getRatingInfo from '../../../website/src/core/blitz/getRatingInfo'; +import { getRatingLeague } from '../../../website/src/core/blitz/getRatingLeague'; +import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors'; +import { isOnGoingRatingSeason } from '../../../website/src/core/blitz/isOnGoingRatingSeason'; +import { getArchivedLatestSeasonNumber } from '../../../website/src/core/blitzkit/getArchivedLatestSeasonNumber'; +import getArchivedRatingInfo from '../../../website/src/core/blitzkit/getArchivedRatingInfo'; +import { getArchivedRatingLeaderboard } from '../../../website/src/core/blitzkit/getArchivedRatingLeaderboard'; +import getArchivedRatingMidnightLeaderboard from '../../../website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard'; +import { UserError } from '../../../website/src/hooks/userError'; import CommandWrapper from '../components/CommandWrapper'; import * as Leaderboard from '../components/Leaderboard'; import TitleBar from '../components/TitleBar'; -import { LEAGUES } from '../constants/leagues'; -import { FIRST_MINIMAL_ARCHIVED_RATING_SEASON } from '../constants/rating'; -import { Region } from '../constants/regions'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import getRatingInfo from '../core/blitz/getRatingInfo'; -import { getRatingLeague } from '../core/blitz/getRatingLeague'; -import { getRatingNeighbors } from '../core/blitz/getRatingNeighbors'; -import { isOnGoingRatingSeason } from '../core/blitz/isOnGoingRatingSeason'; -import { getArchivedLatestSeasonNumber } from '../core/blitzkit/getArchivedLatestSeasonNumber'; -import getArchivedRatingInfo from '../core/blitzkit/getArchivedRatingInfo'; -import { getArchivedRatingLeaderboard } from '../core/blitzkit/getArchivedRatingLeaderboard'; -import getArchivedRatingMidnightLeaderboard from '../core/blitzkit/getArchivedRatingMidnightLeaderboard'; import addRegionChoices from '../core/discord/addRegionChoices'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteUsername from '../core/discord/autocompleteUsername'; @@ -28,9 +32,7 @@ import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; import { localizationObject } from '../core/discord/localizationObject'; import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand'; import { translator } from '../core/localization/translator'; -import { BkrlDiscriminatedEntries } from '../core/streams/bkrl'; import { CommandRegistry } from '../events/interactionCreate'; -import { UserError } from '../hooks/userError'; export interface RatingPlayer { spa_id: number; @@ -254,7 +256,7 @@ export const ratingLeaderboardCommand = new Promise( name_localizations: localizationObject( `common.leagues.${name}`, ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(true); @@ -277,8 +279,8 @@ export const ratingLeaderboardCommand = new Promise( const season = seasonOption ? parseInt(seasonOption) : onGoingSeason - ? latestArchivedSeasonNumber + 1 - : latestArchivedSeasonNumber; + ? latestArchivedSeasonNumber + 1 + : latestArchivedSeasonNumber; const isCurrentSeason = season === latestArchivedSeasonNumber + 1; let titleName: string; let titleImage: string | undefined; @@ -311,7 +313,7 @@ export const ratingLeaderboardCommand = new Promise( position: player.number, clan: player.clan_tag, nickname: player.nickname, - }) satisfies SimplifiedPlayer, + } satisfies SimplifiedPlayer), ), ) : await getArchivedRatingLeaderboard(region, season!).then( @@ -347,7 +349,7 @@ export const ratingLeaderboardCommand = new Promise( 'bot.commands.rating_leaderboard.body.deleted_player', [`${player.id}`], ), - }) satisfies SimplifiedPlayer, + } satisfies SimplifiedPlayer), ); }, ); @@ -396,7 +398,7 @@ export const ratingLeaderboardCommand = new Promise( score: player.score, clan: player.clan_tag, nickname: player.nickname, - }) satisfies SimplifiedPlayer, + } satisfies SimplifiedPlayer), ), ) : await getArchivedRatingLeaderboard(region, season!).then( diff --git a/packages/bot/src/commands/replay.tsx b/packages/bot/src/commands/replay.tsx index 6833d4a73..c13a61a21 100644 --- a/packages/bot/src/commands/replay.tsx +++ b/packages/bot/src/commands/replay.tsx @@ -1,19 +1,21 @@ +import { + idToRegion, + tankDefinitions, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; import { tankIcon } from '@blitzkit/core/src/blitzkit/tankIcon'; +import calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8'; import { clamp } from 'lodash'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; +import { iconPng } from '../../../website/src/core/blitzkit/iconPng'; +import { mapDefinitions } from '../../../website/src/core/blitzkit/mapDefinitions'; +import { RenderConfiguration } from '../../../website/src/core/blitzkit/renderConfiguration'; +import { tankAverages } from '../../../website/src/core/blitzstars/tankAverages'; import CommandWrapper from '../components/CommandWrapper'; import TitleBar from '../components/TitleBar'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import { idToRegion } from '../core/blitz/idToRegion'; -import { emblemURL } from '../core/blitzkit/emblemURL'; -import { iconPng } from '../core/blitzkit/iconPng'; -import { mapDefinitions } from '../core/blitzkit/mapDefinitions'; -import { RenderConfiguration } from '../core/blitzkit/renderConfiguration'; -import { tankDefinitions } from '../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../core/blitzkit/tankDefinitions/constants'; -import { tankAverages } from '../core/blitzstars/tankAverages'; import buttonLink from '../core/discord/buttonLink'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; -import calculateWN8 from '../core/statistics/calculateWN8'; import { CommandRegistry } from '../events/interactionCreate'; import { theme } from '../stitches.config'; diff --git a/packages/bot/src/commands/research.tsx b/packages/bot/src/commands/research.tsx index 0b1a91f9e..a29216fb2 100644 --- a/packages/bot/src/commands/research.tsx +++ b/packages/bot/src/commands/research.tsx @@ -1,22 +1,22 @@ -import { Locale, escapeMarkdown } from 'discord.js'; +import { + asset, + equipmentPriceMatrix, + TANK_ICONS, + tankDefinitions, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; +import { escapeMarkdown, Locale } from 'discord.js'; +import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo'; +import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo'; +import getTankStats from '../../../website/src/core/blitz/getTankStats'; +import resolveTankId from '../../../website/src/core/blitz/resolveTankId'; +import { buildTechTreeLine } from '../../../website/src/core/blitzkit/buildTechTreeLine'; +import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; +import { iconPng } from '../../../website/src/core/blitzkit/iconPng'; +import { resolveAncestry } from '../../../website/src/core/blitzkit/resolveAncestry'; +import { tankIconPng } from '../../../website/src/core/blitzkit/tankIconPng'; import CommandWrapper from '../components/CommandWrapper'; import TitleBar from '../components/TitleBar'; -import { equipmentPriceMatrix } from '../constants/equipmentPrice'; -import { getAccountInfo } from '../core/blitz/getAccountInfo'; -import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo'; -import getTankStats from '../core/blitz/getTankStats'; -import resolveTankId from '../core/blitz/resolveTankId'; -import { asset } from '../core/blitzkit/asset'; -import { buildTechTreeLine } from '../core/blitzkit/buildTechTreeLine'; -import { emblemURL } from '../core/blitzkit/emblemURL'; -import { iconPng } from '../core/blitzkit/iconPng'; -import { resolveAncestry } from '../core/blitzkit/resolveAncestry'; -import { tankDefinitions } from '../core/blitzkit/tankDefinitions'; -import { - TANK_ICONS, - TIER_ROMAN_NUMERALS, -} from '../core/blitzkit/tankDefinitions/constants'; -import { tankIconPng } from '../core/blitzkit/tankIconPng'; import addUsernameChoices from '../core/discord/addUsernameChoices'; import autocompleteTanks from '../core/discord/autocompleteTanks'; import { createLocalizedCommand } from '../core/discord/createLocalizedCommand'; @@ -220,7 +220,9 @@ export const researchCommand = new Promise((resolve) => {
= { researchable: 'Tech tree', diff --git a/packages/bot/src/components/Tanks/components/Item/index.tsx b/packages/bot/src/components/Tanks/components/Item/index.tsx index 3619808c3..b5383dff0 100644 --- a/packages/bot/src/components/Tanks/components/Item/index.tsx +++ b/packages/bot/src/components/Tanks/components/Item/index.tsx @@ -1,8 +1,6 @@ +import { TankClass, TreeType } from '@blitzkit/core'; import { theme } from '../../../../stitches.config'; -import { TANK_CLASSES, TREE_TYPES, TREE_TYPE_ICONS } from './constants'; - -export type TankClass = (typeof TANK_CLASSES)[number]; -export type TreeType = (typeof TREE_TYPES)[number]; +import { TREE_TYPE_ICONS } from './constants'; export interface ItemProps { tankType?: TankClass; diff --git a/packages/bot/src/components/TierWeights.tsx b/packages/bot/src/components/TierWeights.tsx index 21d291911..b72059c46 100644 --- a/packages/bot/src/components/TierWeights.tsx +++ b/packages/bot/src/components/TierWeights.tsx @@ -1,4 +1,4 @@ -import { Tier } from '../core/blitzkit/tankDefinitions'; +import { Tier } from '@blitzkit/core'; import { theme } from '../stitches.config'; export type TierWeightsRecord = Partial>; diff --git a/packages/website/src/core/blitzkit/getBlitzFromDiscord.ts b/packages/bot/src/core/blitzkit/getBlitzFromDiscord.ts similarity index 66% rename from packages/website/src/core/blitzkit/getBlitzFromDiscord.ts rename to packages/bot/src/core/blitzkit/getBlitzFromDiscord.ts index f82238dcf..d64ebcbc0 100644 --- a/packages/website/src/core/blitzkit/getBlitzFromDiscord.ts +++ b/packages/bot/src/core/blitzkit/getBlitzFromDiscord.ts @@ -1,6 +1,5 @@ -import { usersDatabase } from '../../databases/users'; -import { idToRegion } from '../blitz/idToRegion'; -import { flagUserActivity } from './flagUserActivity'; +import { idToRegion, usersDatabase } from '@blitzkit/core'; +import { flagUserActivity } from '../../../../website/src/core/blitzkit/flagUserActivity'; export async function getBlitzFromDiscord(discordId: bigint) { const unique = await usersDatabase.discordUser.findUnique({ diff --git a/packages/website/src/core/blitzkit/getPeriodNow.ts b/packages/bot/src/core/blitzkit/getPeriodNow.ts similarity index 100% rename from packages/website/src/core/blitzkit/getPeriodNow.ts rename to packages/bot/src/core/blitzkit/getPeriodNow.ts diff --git a/packages/website/src/core/blitzkit/getPeriodStart.ts b/packages/bot/src/core/blitzkit/getPeriodStart.ts similarity index 70% rename from packages/website/src/core/blitzkit/getPeriodStart.ts rename to packages/bot/src/core/blitzkit/getPeriodStart.ts index b60c19307..be8700df0 100644 --- a/packages/website/src/core/blitzkit/getPeriodStart.ts +++ b/packages/bot/src/core/blitzkit/getPeriodStart.ts @@ -1,6 +1,6 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; +import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo'; import { PeriodSize } from '../discord/addPeriodSubCommands'; -import getTimeDaysAgo from './getTimeDaysAgo'; export default function getPeriodStart(region: Region, period: PeriodSize) { if (period === 'career') return 0; diff --git a/packages/website/src/core/blitzkit/jsxToPng.ts b/packages/bot/src/core/blitzkit/jsxToPng.ts similarity index 100% rename from packages/website/src/core/blitzkit/jsxToPng.ts rename to packages/bot/src/core/blitzkit/jsxToPng.ts diff --git a/packages/website/src/core/blitzkit/jsxToPngThreaded.ts b/packages/bot/src/core/blitzkit/jsxToPngThreaded.ts similarity index 76% rename from packages/website/src/core/blitzkit/jsxToPngThreaded.ts rename to packages/bot/src/core/blitzkit/jsxToPngThreaded.ts index 0e8b08991..c3f8466c4 100644 --- a/packages/website/src/core/blitzkit/jsxToPngThreaded.ts +++ b/packages/bot/src/core/blitzkit/jsxToPngThreaded.ts @@ -1,5 +1,5 @@ +import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration'; import jsxToSvg from './jsxToSvg'; -import { RenderConfiguration } from './renderConfiguration'; import { svgToPngThreaded } from './svgToPngThreaded'; export default async function jsxToPngThreaded( diff --git a/packages/website/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf b/packages/bot/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf similarity index 100% rename from packages/website/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf rename to packages/bot/src/core/blitzkit/jsxToSvg/Roboto-Black.ttf diff --git a/packages/website/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf b/packages/bot/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf similarity index 100% rename from packages/website/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf rename to packages/bot/src/core/blitzkit/jsxToSvg/Roboto-Bold.ttf diff --git a/packages/website/src/core/blitzkit/jsxToSvg/Roboto.ttf b/packages/bot/src/core/blitzkit/jsxToSvg/Roboto.ttf similarity index 100% rename from packages/website/src/core/blitzkit/jsxToSvg/Roboto.ttf rename to packages/bot/src/core/blitzkit/jsxToSvg/Roboto.ttf diff --git a/packages/website/src/core/blitzkit/jsxToSvg/index.ts b/packages/bot/src/core/blitzkit/jsxToSvg/index.ts similarity index 88% rename from packages/website/src/core/blitzkit/jsxToSvg/index.ts rename to packages/bot/src/core/blitzkit/jsxToSvg/index.ts index a084517f6..6a67055cd 100644 --- a/packages/website/src/core/blitzkit/jsxToSvg/index.ts +++ b/packages/bot/src/core/blitzkit/jsxToSvg/index.ts @@ -1,6 +1,6 @@ import { readFile } from 'fs/promises'; import satori from 'satori'; -import { RenderConfiguration } from '../renderConfiguration'; +import { RenderConfiguration } from '../../../../../website/src/core/blitzkit/renderConfiguration'; import robotoBlack from './Roboto-Black.ttf'; import robotoBold from './Roboto-Bold.ttf'; import roboto from './Roboto.ttf'; diff --git a/packages/website/src/core/blitzkit/svgToPng.ts b/packages/bot/src/core/blitzkit/svgToPng.ts similarity index 100% rename from packages/website/src/core/blitzkit/svgToPng.ts rename to packages/bot/src/core/blitzkit/svgToPng.ts diff --git a/packages/website/src/core/blitzkit/svgToPngThreaded.ts b/packages/bot/src/core/blitzkit/svgToPngThreaded.ts similarity index 100% rename from packages/website/src/core/blitzkit/svgToPngThreaded.ts rename to packages/bot/src/core/blitzkit/svgToPngThreaded.ts diff --git a/packages/bot/src/core/blitzstars/getStatsInPeriod.ts b/packages/bot/src/core/blitzstars/getStatsInPeriod.ts index a718705bf..3c6a9a55e 100644 --- a/packages/bot/src/core/blitzstars/getStatsInPeriod.ts +++ b/packages/bot/src/core/blitzstars/getStatsInPeriod.ts @@ -1,11 +1,9 @@ +import { BlitzStats, emptyAllStats, Region } from '@blitzkit/core'; import { Locale } from 'discord.js'; -import { Region } from '../../../../../src/constants/regions'; import getTankHistories, { TankHistories, TankHistoryRaw, -} from '../../../../../src/core/blitzkit/getTankHistories'; -import { BlitzStats } from '../../../../../src/core/statistics/compositeStats/constants'; -import { emptyAllStats } from './constants'; +} from './getTankHistories'; const emptyTankHistoryNode: TankHistoryRaw = { account_id: 0, @@ -106,5 +104,3 @@ export default async function getStatsInPeriod( return { diff, order } satisfies DiffedTankStats; } - -export * from './constants'; diff --git a/packages/website/src/core/blitzkit/getTankHistories.ts b/packages/bot/src/core/blitzstars/getTankHistories.ts similarity index 93% rename from packages/website/src/core/blitzkit/getTankHistories.ts rename to packages/bot/src/core/blitzstars/getTankHistories.ts index 9624d8319..1d532e109 100644 --- a/packages/website/src/core/blitzkit/getTankHistories.ts +++ b/packages/bot/src/core/blitzstars/getTankHistories.ts @@ -1,12 +1,13 @@ -import { emptyAllStats } from '@blitzkit/core/src/blitzstars/getStatsInPeriod/constants'; -import { Region } from '../../constants/regions'; +import { Region, emptyAllStats } from '@blitzkit/core'; +import { Locale } from 'discord.js'; +import getTankStats from '../../../../website/src/core/blitz/getTankStats'; +import { UserError } from '../../../../website/src/hooks/userError'; import { GetHistoriesOptions, Histories, History, getHistoriesDefaultOptions, } from '../../types/histories'; -import getTankStats from '../blitz/getTankStats'; import { translator } from '../localization/translator'; export interface TankHistory extends History { diff --git a/packages/website/src/core/discord/addClanChoices.ts b/packages/bot/src/core/discord/addClanChoices.ts similarity index 100% rename from packages/website/src/core/discord/addClanChoices.ts rename to packages/bot/src/core/discord/addClanChoices.ts diff --git a/packages/website/src/core/discord/addFilterOptions.ts b/packages/bot/src/core/discord/addFilterOptions.ts similarity index 91% rename from packages/website/src/core/discord/addFilterOptions.ts rename to packages/bot/src/core/discord/addFilterOptions.ts index 3c874f7e5..377378f3b 100644 --- a/packages/website/src/core/discord/addFilterOptions.ts +++ b/packages/bot/src/core/discord/addFilterOptions.ts @@ -1,13 +1,11 @@ +import { TANK_CLASSES, TREE_TYPES } from '@blitzkit/core'; import { APIApplicationCommandOptionChoice, Locale, SlashCommandBuilder, SlashCommandSubcommandBuilder, } from 'discord.js'; -import { - TANK_CLASSES, - TREE_TYPES, -} from '../../components/Tanks/components/Item/constants'; +import {} from '../../components/Tanks/components/Item/constants'; import { translator } from '../localization/translator'; import addTankChoices from './addTankChoices'; import addTierChoices from './addTierChoices'; @@ -41,7 +39,7 @@ export function addFilterOptions< name_localizations: localizationObject( `common.nations.${nation}`, ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(false), @@ -70,7 +68,7 @@ export function addFilterOptions< name_localizations: localizationObject( `common.tank_class_short.${tankType}`, ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(false), @@ -98,7 +96,7 @@ export function addFilterOptions< name_localizations: localizationObject( `common.tree_type.${treeType}`, ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(false), diff --git a/packages/website/src/core/discord/addPeriodSubCommands.ts b/packages/bot/src/core/discord/addPeriodSubCommands.ts similarity index 100% rename from packages/website/src/core/discord/addPeriodSubCommands.ts rename to packages/bot/src/core/discord/addPeriodSubCommands.ts diff --git a/packages/website/src/core/discord/addPeriodicFilterOptions.ts b/packages/bot/src/core/discord/addPeriodicFilterOptions.ts similarity index 100% rename from packages/website/src/core/discord/addPeriodicFilterOptions.ts rename to packages/bot/src/core/discord/addPeriodicFilterOptions.ts diff --git a/packages/website/src/core/discord/addRegionChoices.ts b/packages/bot/src/core/discord/addRegionChoices.ts similarity index 89% rename from packages/website/src/core/discord/addRegionChoices.ts rename to packages/bot/src/core/discord/addRegionChoices.ts index 9e53ca323..7b1e2afa2 100644 --- a/packages/website/src/core/discord/addRegionChoices.ts +++ b/packages/bot/src/core/discord/addRegionChoices.ts @@ -1,9 +1,9 @@ +import { REGIONS } from '@blitzkit/core'; import { APIApplicationCommandOptionChoice, Locale, SlashCommandStringOption, } from 'discord.js'; -import { REGIONS } from '../../constants/regions'; import { translator } from '../localization/translator'; import { localizationObject } from './localizationObject'; @@ -26,7 +26,7 @@ export default function addRegionChoices(option: SlashCommandStringOption) { name_localizations: localizationObject( `common.regions.normal.${region}`, ), - }) satisfies APIApplicationCommandOptionChoice, + } satisfies APIApplicationCommandOptionChoice), ), ) .setRequired(true); diff --git a/packages/website/src/core/discord/addTankChoices.ts b/packages/bot/src/core/discord/addTankChoices.ts similarity index 100% rename from packages/website/src/core/discord/addTankChoices.ts rename to packages/bot/src/core/discord/addTankChoices.ts diff --git a/packages/website/src/core/discord/addTierChoices.ts b/packages/bot/src/core/discord/addTierChoices.ts similarity index 100% rename from packages/website/src/core/discord/addTierChoices.ts rename to packages/bot/src/core/discord/addTierChoices.ts diff --git a/packages/website/src/core/discord/addUsernameChoices.ts b/packages/bot/src/core/discord/addUsernameChoices.ts similarity index 100% rename from packages/website/src/core/discord/addUsernameChoices.ts rename to packages/bot/src/core/discord/addUsernameChoices.ts diff --git a/packages/website/src/core/discord/autocompleteClan/constants.ts b/packages/bot/src/core/discord/autocompleteClan/constants.ts similarity index 100% rename from packages/website/src/core/discord/autocompleteClan/constants.ts rename to packages/bot/src/core/discord/autocompleteClan/constants.ts diff --git a/packages/website/src/core/discord/autocompleteClan/index.ts b/packages/bot/src/core/discord/autocompleteClan/index.ts similarity index 93% rename from packages/website/src/core/discord/autocompleteClan/index.ts rename to packages/bot/src/core/discord/autocompleteClan/index.ts index ea317791b..24d99d4cf 100644 --- a/packages/website/src/core/discord/autocompleteClan/index.ts +++ b/packages/bot/src/core/discord/autocompleteClan/index.ts @@ -3,7 +3,7 @@ import { AutocompleteInteraction, CacheType, } from 'discord.js'; -import searchClansAcrossRegions from '../../blitz/searchClansAcrossRegions'; +import searchClansAcrossRegions from '../../../../../website/src/core/blitz/searchClansAcrossRegions'; import { translator } from '../../localization/translator'; import { DISCORD_CHOICES_MAX_NAME_SIZE, OVERFLOW_SUFFIX } from './constants'; diff --git a/packages/website/src/core/discord/autocompleteTanks.ts b/packages/bot/src/core/discord/autocompleteTanks.ts similarity index 96% rename from packages/website/src/core/discord/autocompleteTanks.ts rename to packages/bot/src/core/discord/autocompleteTanks.ts index 39e2fd27e..1f09ebb55 100644 --- a/packages/website/src/core/discord/autocompleteTanks.ts +++ b/packages/bot/src/core/discord/autocompleteTanks.ts @@ -4,11 +4,11 @@ import { CacheType, } from 'discord.js'; import { go } from 'fuzzysort'; -import { tankNames } from '../blitzkit/tankDefinitions/tankNames'; import { DISCORD_CHOICES_MAX_NAME_SIZE, OVERFLOW_SUFFIX, } from './autocompleteClan/constants'; +import { tankNames } from '@blitzkit/core'; export const tankNamesTechTreeOnly = tankNames.then((names) => names.filter((tank) => tank.treeType === 'researchable'), diff --git a/packages/website/src/core/discord/autocompleteUsername.ts b/packages/bot/src/core/discord/autocompleteUsername.ts similarity index 93% rename from packages/website/src/core/discord/autocompleteUsername.ts rename to packages/bot/src/core/discord/autocompleteUsername.ts index 7f459d1fd..4a8871157 100644 --- a/packages/website/src/core/discord/autocompleteUsername.ts +++ b/packages/bot/src/core/discord/autocompleteUsername.ts @@ -3,7 +3,7 @@ import { AutocompleteInteraction, CacheType, } from 'discord.js'; -import searchPlayersAcrossRegions from '../blitz/searchPlayersAcrossRegions'; +import searchPlayersAcrossRegions from '../../../../website/src/core/blitz/searchPlayersAcrossRegions'; import { translator } from '../localization/translator'; import { DISCORD_CHOICES_MAX_NAME_SIZE, diff --git a/packages/website/src/core/discord/buttonLink.ts b/packages/bot/src/core/discord/buttonLink.ts similarity index 100% rename from packages/website/src/core/discord/buttonLink.ts rename to packages/bot/src/core/discord/buttonLink.ts diff --git a/packages/website/src/core/discord/buttonPrimary.ts b/packages/bot/src/core/discord/buttonPrimary.ts similarity index 100% rename from packages/website/src/core/discord/buttonPrimary.ts rename to packages/bot/src/core/discord/buttonPrimary.ts diff --git a/packages/website/src/core/discord/buttonRefresh.ts b/packages/bot/src/core/discord/buttonRefresh.ts similarity index 100% rename from packages/website/src/core/discord/buttonRefresh.ts rename to packages/bot/src/core/discord/buttonRefresh.ts diff --git a/packages/website/src/core/discord/client.ts b/packages/bot/src/core/discord/client.ts similarity index 100% rename from packages/website/src/core/discord/client.ts rename to packages/bot/src/core/discord/client.ts diff --git a/packages/website/src/core/discord/commandToURL.ts b/packages/bot/src/core/discord/commandToURL.ts similarity index 100% rename from packages/website/src/core/discord/commandToURL.ts rename to packages/bot/src/core/discord/commandToURL.ts diff --git a/packages/website/src/core/discord/createLocalizedCommand.ts b/packages/bot/src/core/discord/createLocalizedCommand.ts similarity index 100% rename from packages/website/src/core/discord/createLocalizedCommand.ts rename to packages/bot/src/core/discord/createLocalizedCommand.ts diff --git a/packages/website/src/core/discord/embedInfo.ts b/packages/bot/src/core/discord/embedInfo.ts similarity index 83% rename from packages/website/src/core/discord/embedInfo.ts rename to packages/bot/src/core/discord/embedInfo.ts index 75ac86c80..78cf9dd32 100644 --- a/packages/website/src/core/discord/embedInfo.ts +++ b/packages/bot/src/core/discord/embedInfo.ts @@ -1,5 +1,5 @@ import { EmbedBuilder } from 'discord.js'; -import { ACCENT_COLOR } from '../../constants/colors'; +import { ACCENT_COLOR } from './colors'; export default function embedInfo(title: string, description: string) { const embed = new EmbedBuilder() diff --git a/packages/website/src/core/discord/embedNegative.ts b/packages/bot/src/core/discord/embedNegative.ts similarity index 80% rename from packages/website/src/core/discord/embedNegative.ts rename to packages/bot/src/core/discord/embedNegative.ts index 35704b20e..ca2511631 100644 --- a/packages/website/src/core/discord/embedNegative.ts +++ b/packages/bot/src/core/discord/embedNegative.ts @@ -1,5 +1,5 @@ import { EmbedBuilder } from 'discord.js'; -import { NEGATIVE_COLOR } from '../../constants/colors'; +import { NEGATIVE_COLOR } from './colors'; export default function embedNegative(title: string, description: string) { return new EmbedBuilder() diff --git a/packages/website/src/core/discord/embedPositive.ts b/packages/bot/src/core/discord/embedPositive.ts similarity index 80% rename from packages/website/src/core/discord/embedPositive.ts rename to packages/bot/src/core/discord/embedPositive.ts index 47174a0d1..45b2b99e1 100644 --- a/packages/website/src/core/discord/embedPositive.ts +++ b/packages/bot/src/core/discord/embedPositive.ts @@ -1,5 +1,5 @@ import { EmbedBuilder } from 'discord.js'; -import { POSITIVE_COLOR } from '../../constants/colors'; +import { POSITIVE_COLOR } from './colors'; export default function embedPositive(title: string, description: string) { return new EmbedBuilder() diff --git a/packages/website/src/core/discord/embedWarning.ts b/packages/bot/src/core/discord/embedWarning.ts similarity index 80% rename from packages/website/src/core/discord/embedWarning.ts rename to packages/bot/src/core/discord/embedWarning.ts index 3148f7a7a..26550232a 100644 --- a/packages/website/src/core/discord/embedWarning.ts +++ b/packages/bot/src/core/discord/embedWarning.ts @@ -1,5 +1,5 @@ import { EmbedBuilder } from 'discord.js'; -import { WARNING_COLOR } from '../../constants/colors'; +import { WARNING_COLOR } from './colors'; export default function embedWarning(title: string, description: string) { return new EmbedBuilder() diff --git a/packages/website/src/core/discord/getCustomPeriodParams.ts b/packages/bot/src/core/discord/getCustomPeriodParams.ts similarity index 100% rename from packages/website/src/core/discord/getCustomPeriodParams.ts rename to packages/bot/src/core/discord/getCustomPeriodParams.ts diff --git a/packages/website/src/core/discord/getFiltersFromButton.ts b/packages/bot/src/core/discord/getFiltersFromButton.ts similarity index 84% rename from packages/website/src/core/discord/getFiltersFromButton.ts rename to packages/bot/src/core/discord/getFiltersFromButton.ts index 3ad62a16c..4aa8f1716 100644 --- a/packages/website/src/core/discord/getFiltersFromButton.ts +++ b/packages/bot/src/core/discord/getFiltersFromButton.ts @@ -1,6 +1,5 @@ +import { StatFilters, TreeType } from '@blitzkit/core'; import { ButtonInteraction } from 'discord.js'; -import { TreeType } from '../../components/Tanks'; -import { StatFilters } from '../statistics/filterStats'; export function getFiltersFromButton(interaction: ButtonInteraction) { const url = new URL(`https://example.com/${interaction.customId}`); diff --git a/packages/website/src/core/discord/getFiltersFromCommand.ts b/packages/bot/src/core/discord/getFiltersFromCommand.ts similarity index 81% rename from packages/website/src/core/discord/getFiltersFromCommand.ts rename to packages/bot/src/core/discord/getFiltersFromCommand.ts index 0ebf09157..8fc8fd712 100644 --- a/packages/website/src/core/discord/getFiltersFromCommand.ts +++ b/packages/bot/src/core/discord/getFiltersFromCommand.ts @@ -1,7 +1,6 @@ +import { StatFilters, TreeType } from '@blitzkit/core'; import { ChatInputCommandInteraction } from 'discord.js'; -import { TreeType } from '../../components/Tanks'; -import resolveTankId from '../blitz/resolveTankId'; -import { StatFilters } from '../statistics/filterStats'; +import resolveTankId from '../../../../website/src/core/blitz/resolveTankId'; export async function getFiltersFromCommand( interaction: ChatInputCommandInteraction, diff --git a/packages/website/src/core/discord/getPeriodOptionName.ts b/packages/bot/src/core/discord/getPeriodOptionName.ts similarity index 100% rename from packages/website/src/core/discord/getPeriodOptionName.ts rename to packages/bot/src/core/discord/getPeriodOptionName.ts diff --git a/packages/website/src/core/discord/localizationObject.ts b/packages/bot/src/core/discord/localizationObject.ts similarity index 100% rename from packages/website/src/core/discord/localizationObject.ts rename to packages/bot/src/core/discord/localizationObject.ts diff --git a/packages/website/src/core/discord/manager.ts b/packages/bot/src/core/discord/manager.ts similarity index 68% rename from packages/website/src/core/discord/manager.ts rename to packages/bot/src/core/discord/manager.ts index 56e536c5a..280d1d67d 100644 --- a/packages/website/src/core/discord/manager.ts +++ b/packages/bot/src/core/discord/manager.ts @@ -1,5 +1,5 @@ +import { assertSecret } from '@blitzkit/core'; import { ShardingManager } from 'discord.js'; -import { assertSecret } from '../../../packages/core/src/blitzkit/assertSecret'; export const manager = new ShardingManager('dist/bot/workers/bot.js', { token: assertSecret(process.env.DISCORD_TOKEN), diff --git a/packages/website/src/core/discord/markdownTable.ts b/packages/bot/src/core/discord/markdownTable.ts similarity index 100% rename from packages/website/src/core/discord/markdownTable.ts rename to packages/bot/src/core/discord/markdownTable.ts diff --git a/packages/website/src/core/discord/normalizeInteractionReturnable.ts b/packages/bot/src/core/discord/normalizeInteractionReturnable.ts similarity index 95% rename from packages/website/src/core/discord/normalizeInteractionReturnable.ts rename to packages/bot/src/core/discord/normalizeInteractionReturnable.ts index a6532f2e6..24b692086 100644 --- a/packages/website/src/core/discord/normalizeInteractionReturnable.ts +++ b/packages/bot/src/core/discord/normalizeInteractionReturnable.ts @@ -7,10 +7,10 @@ import { InteractionReplyOptions, MessageEditOptions, } from 'discord.js'; +import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration'; import { InteractionReturnable } from '../../events/interactionCreate'; import { Writeable } from '../../types/writable'; import jsxToPngThreaded from '../blitzkit/jsxToPngThreaded'; -import { RenderConfiguration } from '../blitzkit/renderConfiguration'; export default async function normalizeInteractionReturnable( returnable: InteractionReturnable, diff --git a/packages/website/src/core/discord/psa.ts b/packages/bot/src/core/discord/psa.ts similarity index 100% rename from packages/website/src/core/discord/psa.ts rename to packages/bot/src/core/discord/psa.ts diff --git a/packages/website/src/core/discord/resolveClanFromCommand.ts b/packages/bot/src/core/discord/resolveClanFromCommand.ts similarity index 81% rename from packages/website/src/core/discord/resolveClanFromCommand.ts rename to packages/bot/src/core/discord/resolveClanFromCommand.ts index 5b062736b..6c6ee0cf3 100644 --- a/packages/website/src/core/discord/resolveClanFromCommand.ts +++ b/packages/bot/src/core/discord/resolveClanFromCommand.ts @@ -1,8 +1,8 @@ +import { Region } from '@blitzkit/core'; import { ChatInputCommandInteraction } from 'discord.js'; import markdownEscape from 'markdown-escape'; -import { Region } from '../../constants/regions'; -import { UserError } from '../../hooks/userError'; -import searchClansAcrossRegions from '../blitz/searchClansAcrossRegions'; +import searchClansAcrossRegions from '../../../../website/src/core/blitz/searchClansAcrossRegions'; +import { UserError } from '../../../../website/src/hooks/userError'; import { translator } from '../localization/translator'; import { serverAndIdPattern } from './resolvePlayerFromCommand/constants'; diff --git a/packages/website/src/core/discord/resolvePeriodFromButton.ts b/packages/bot/src/core/discord/resolvePeriodFromButton.ts similarity index 91% rename from packages/website/src/core/discord/resolvePeriodFromButton.ts rename to packages/bot/src/core/discord/resolvePeriodFromButton.ts index d0bebfb6e..caddb5527 100644 --- a/packages/website/src/core/discord/resolvePeriodFromButton.ts +++ b/packages/bot/src/core/discord/resolvePeriodFromButton.ts @@ -1,8 +1,8 @@ +import { Region } from '@blitzkit/core'; import { ButtonInteraction } from 'discord.js'; -import { Region } from '../../constants/regions'; +import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo'; import getPeriodNow from '../blitzkit/getPeriodNow'; import getPeriodStart from '../blitzkit/getPeriodStart'; -import getTimeDaysAgo from '../blitzkit/getTimeDaysAgo'; import { PeriodType } from './addPeriodSubCommands'; import { getPeriodOptionName } from './getPeriodOptionName'; import { ResolvedPeriod } from './resolvePeriodFromCommand'; diff --git a/packages/website/src/core/discord/resolvePeriodFromCommand.ts b/packages/bot/src/core/discord/resolvePeriodFromCommand.ts similarity index 92% rename from packages/website/src/core/discord/resolvePeriodFromCommand.ts rename to packages/bot/src/core/discord/resolvePeriodFromCommand.ts index c4084dd74..bb721ce31 100644 --- a/packages/website/src/core/discord/resolvePeriodFromCommand.ts +++ b/packages/bot/src/core/discord/resolvePeriodFromCommand.ts @@ -1,8 +1,8 @@ +import { Region } from '@blitzkit/core'; import { CacheType, ChatInputCommandInteraction } from 'discord.js'; -import { Region } from '../../constants/regions'; +import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo'; import getPeriodNow from '../blitzkit/getPeriodNow'; import getPeriodStart from '../blitzkit/getPeriodStart'; -import getTimeDaysAgo from '../blitzkit/getTimeDaysAgo'; import { translator } from '../localization/translator'; import { PeriodType } from './addPeriodSubCommands'; import { getPeriodOptionName } from './getPeriodOptionName'; diff --git a/packages/website/src/core/discord/resolvePlayerFromButton.ts b/packages/bot/src/core/discord/resolvePlayerFromButton.ts similarity index 89% rename from packages/website/src/core/discord/resolvePlayerFromButton.ts rename to packages/bot/src/core/discord/resolvePlayerFromButton.ts index 8d5a5a4b1..9e165e13b 100644 --- a/packages/website/src/core/discord/resolvePlayerFromButton.ts +++ b/packages/bot/src/core/discord/resolvePlayerFromButton.ts @@ -1,5 +1,5 @@ +import { Region } from '@blitzkit/core'; import { ButtonInteraction } from 'discord.js'; -import { Region } from '../../constants/regions'; import { ResolvedPlayer } from './resolvePlayerFromCommand'; export default async function resolvePlayerFromButton( diff --git a/packages/website/src/core/discord/resolvePlayerFromCommand/constants.ts b/packages/bot/src/core/discord/resolvePlayerFromCommand/constants.ts similarity index 100% rename from packages/website/src/core/discord/resolvePlayerFromCommand/constants.ts rename to packages/bot/src/core/discord/resolvePlayerFromCommand/constants.ts diff --git a/packages/website/src/core/discord/resolvePlayerFromCommand/index.ts b/packages/bot/src/core/discord/resolvePlayerFromCommand/index.ts similarity index 87% rename from packages/website/src/core/discord/resolvePlayerFromCommand/index.ts rename to packages/bot/src/core/discord/resolvePlayerFromCommand/index.ts index 351d5edad..c61a1a03f 100644 --- a/packages/website/src/core/discord/resolvePlayerFromCommand/index.ts +++ b/packages/bot/src/core/discord/resolvePlayerFromCommand/index.ts @@ -1,8 +1,8 @@ +import { Region } from '@blitzkit/core'; import { CacheType, ChatInputCommandInteraction } from 'discord.js'; import markdownEscape from 'markdown-escape'; -import { Region } from '../../../constants/regions'; -import { UserError } from '../../../hooks/userError'; -import searchPlayersAcrossRegions from '../../blitz/searchPlayersAcrossRegions'; +import searchPlayersAcrossRegions from '../../../../../website/src/core/blitz/searchPlayersAcrossRegions'; +import { UserError } from '../../../../../website/src/hooks/userError'; import { getBlitzFromDiscord } from '../../blitzkit/getBlitzFromDiscord'; import { translator } from '../../localization/translator'; import { serverAndIdPattern } from './constants'; diff --git a/packages/website/src/core/localization/strings/constants.ts b/packages/bot/src/core/localization/strings/constants.ts similarity index 68% rename from packages/website/src/core/localization/strings/constants.ts rename to packages/bot/src/core/localization/strings/constants.ts index 5b849f363..d3e372cf3 100644 --- a/packages/website/src/core/localization/strings/constants.ts +++ b/packages/bot/src/core/localization/strings/constants.ts @@ -1 +1,3 @@ +import { Locale } from 'discord.js'; + export const SUPPORTED_LOCALES: Locale[] = [Locale.EnglishUS, Locale.SpanishES]; diff --git a/packages/website/src/core/localization/strings/index.ts b/packages/bot/src/core/localization/strings/index.ts similarity index 92% rename from packages/website/src/core/localization/strings/index.ts rename to packages/bot/src/core/localization/strings/index.ts index 12d16255a..b2c679268 100644 --- a/packages/website/src/core/localization/strings/index.ts +++ b/packages/bot/src/core/localization/strings/index.ts @@ -1,3 +1,4 @@ +import { Locale } from 'discord.js'; import { SUPPORTED_LOCALES } from './constants'; export type TranslationFragmentTree = { diff --git a/packages/website/src/core/localization/translator.ts b/packages/bot/src/core/localization/translator.ts similarity index 100% rename from packages/website/src/core/localization/translator.ts rename to packages/bot/src/core/localization/translator.ts diff --git a/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts b/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts index 807861844..6a0ab7e55 100644 --- a/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts +++ b/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts @@ -8,12 +8,12 @@ import { InteractionReplyOptions, } from 'discord.js'; import { InteractionRawReturnable, commands } from '..'; +import { UserError } from '../../../../../website/src/hooks/userError'; import buttonLink from '../../../core/discord/buttonLink'; import embedWarning from '../../../core/discord/embedWarning'; import normalizeInteractionReturnable from '../../../core/discord/normalizeInteractionReturnable'; import { psa } from '../../../core/discord/psa'; import { translator } from '../../../core/localization/translator'; -import { UserError } from '../../../hooks/userError'; import { Writeable } from '../../../types/writable'; export default async function handleChatInputCommand( diff --git a/packages/bot/src/events/interactionCreate/index.ts b/packages/bot/src/events/interactionCreate/index.ts index 3e408070b..36ddb2147 100644 --- a/packages/bot/src/events/interactionCreate/index.ts +++ b/packages/bot/src/events/interactionCreate/index.ts @@ -1,3 +1,4 @@ +import { assertSecret } from '@blitzkit/core'; import { AttachmentBuilder, AutocompleteInteraction, @@ -13,7 +14,7 @@ import { SlashCommandOptionsOnlyBuilder, SlashCommandSubcommandsOnlyBuilder, } from 'discord.js'; -import { assertSecret } from '../../../packages/core/src/blitzkit/assertSecret'; +import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration'; import { aboutCommand } from '../../commands/about'; import { breakdownCommand } from '../../commands/breakdown'; import { debugCommand } from '../../commands/debug'; @@ -33,7 +34,6 @@ import { searchClansCommand } from '../../commands/searchClans'; import { searchPlayersCommand } from '../../commands/searchPlayers'; import { statsCommand } from '../../commands/stats'; import { todayCommand } from '../../commands/today'; -import { RenderConfiguration } from '../../core/blitzkit/renderConfiguration'; import handleAutocomplete from './handlers/autocomplete'; import handleButton from './handlers/button'; import handleChatInputCommand from './handlers/chatInputCommand'; diff --git a/packages/bot/src/types/histories.ts b/packages/bot/src/types/histories.ts index 47309fae3..322d807a6 100644 --- a/packages/bot/src/types/histories.ts +++ b/packages/bot/src/types/histories.ts @@ -1,6 +1,6 @@ // a cleaner simplification of Blitz Stars' histories because it's a mess there -import { BlitzStats } from '../core/statistics/compositeStats/constants'; +import { BlitzStats } from '@blitzkit/core'; export interface History { all: BlitzStats; diff --git a/packages/bot/src/workers/bot.ts b/packages/bot/src/workers/bot.ts index 8225a4274..b139eb403 100644 --- a/packages/bot/src/workers/bot.ts +++ b/packages/bot/src/workers/bot.ts @@ -1,5 +1,5 @@ -import { assertSecret } from '../../packages/core/src/blitzkit/assertSecret'; -import { registerProcesses } from '../core/blitzkit/processes'; +import { assertSecret } from '@blitzkit/core'; +import { registerProcesses } from '../../../website/src/core/blitzkit/processes'; import { client } from '../core/discord/client'; console.log(`🟡 Launching bot ${client.shard?.ids[0]}`); diff --git a/packages/bot/tsconfig.json b/packages/bot/tsconfig.json new file mode 100644 index 000000000..4082f16a5 --- /dev/null +++ b/packages/bot/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/core/package.json b/packages/core/package.json index 42cc72333..daea6d2c4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -10,8 +10,12 @@ "@octokit/plugin-throttling": "^8.2.0", "protobufjs": "^7.4.0", "lz4js": "^0.2.0", + "yaml": "^2.5.0", + "sharp": "^0.33.5", + "dotenv": "^16.4.5", "pickleparser": "^0.2.1", - "adm-zip": "^0.5.16" + "adm-zip": "^0.5.16", + "crc": "^4.3.2" }, "devDependencies": { "@types/adm-zip": "^0.5.5", diff --git a/packages/core/src/blitz/constants.ts b/packages/core/src/blitz/constants.ts index 3132c6263..2df9f341c 100644 --- a/packages/core/src/blitz/constants.ts +++ b/packages/core/src/blitz/constants.ts @@ -1,3 +1,5 @@ +import { BlitzStats } from '../statistics'; + export const TREE_TYPES = ['researchable', 'premium', 'collector'] as const; export const TANK_CLASSES = [ diff --git a/packages/core/src/blitz/equipmentPrice.ts b/packages/core/src/blitz/equipmentPrice.ts index 2368671c5..beba36083 100644 --- a/packages/core/src/blitz/equipmentPrice.ts +++ b/packages/core/src/blitz/equipmentPrice.ts @@ -1,5 +1,5 @@ import { Vector3Tuple } from 'three'; -import { Tier } from '../core/blitzkit/tankDefinitions'; +import { Tier } from '../blitzkit'; export const equipmentPriceMatrix: Record = { 1: [100, 200, 300], diff --git a/packages/core/src/blitz/idToRegion.ts b/packages/core/src/blitz/idToRegion.ts index ddc7c788f..64f15d810 100644 --- a/packages/core/src/blitz/idToRegion.ts +++ b/packages/core/src/blitz/idToRegion.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from './regions'; export const MIN_REGION_IDS: Record = { asia: 20e8, diff --git a/packages/core/src/blitzkit/averageDefinitions/constants.ts b/packages/core/src/blitzkit/averageDefinitions/constants.ts index 36816d061..16b88f269 100644 --- a/packages/core/src/blitzkit/averageDefinitions/constants.ts +++ b/packages/core/src/blitzkit/averageDefinitions/constants.ts @@ -1,5 +1,6 @@ import { Samples } from '.'; import { emptyAllStats } from '../../blitz/constants'; +import { BlitzkitStats } from '../../statistics'; export const emptyAverageDefinitionsAllStats: BlitzkitStats = { ...emptyAllStats, diff --git a/packages/core/src/blitzkit/averageDefinitions/index.ts b/packages/core/src/blitzkit/averageDefinitions/index.ts index 9d65527ed..825d49570 100644 --- a/packages/core/src/blitzkit/averageDefinitions/index.ts +++ b/packages/core/src/blitzkit/averageDefinitions/index.ts @@ -1,5 +1,5 @@ -import { BlitzkitStats } from '../../../../../src/core/statistics/compositeStats/constants'; import { decodeProtobuf } from '../../protobuf/decodeProtobuf'; +import { BlitzkitStats } from '../../statistics'; import { asset } from '../asset'; export interface AverageDefinitionsEntry { diff --git a/packages/core/src/blitzkit/skillDefinitions.ts b/packages/core/src/blitzkit/skillDefinitions.ts index 89fe65c69..52454608f 100644 --- a/packages/core/src/blitzkit/skillDefinitions.ts +++ b/packages/core/src/blitzkit/skillDefinitions.ts @@ -1,6 +1,6 @@ import { asset } from '@blitzkit/core/src/blitzkit/asset'; import { fetchCdonLz4 } from '@blitzkit/core/src/blitzkit/fetchCdonLz4'; -import { TankClass } from '../../../../src/components/Tanks'; +import { TankClass } from './tankDefinitions'; export interface SkillDefinitions { classes: Record; diff --git a/packages/core/src/blitzkit/tankDefinitions/constants.ts b/packages/core/src/blitzkit/tankDefinitions/constants.ts index 2e5210c85..869a507bc 100644 --- a/packages/core/src/blitzkit/tankDefinitions/constants.ts +++ b/packages/core/src/blitzkit/tankDefinitions/constants.ts @@ -1,4 +1,4 @@ -import { CrewMember, GunDefinition, ShellType, Tier } from '.'; +import { CrewMember, GunDefinition, ShellType, TankClass, Tier } from '.'; export const SHELL_NAMES: Record = { ap: 'AP', diff --git a/packages/core/src/blitzkit/tankDefinitions/index.ts b/packages/core/src/blitzkit/tankDefinitions/index.ts index b2a11a12b..8cfcc6c5e 100644 --- a/packages/core/src/blitzkit/tankDefinitions/index.ts +++ b/packages/core/src/blitzkit/tankDefinitions/index.ts @@ -1,9 +1,12 @@ import { Vector2Tuple } from 'three'; -import { TankClass, TreeType } from '../../../components/Tanks'; +import { TANK_CLASSES, TREE_TYPES } from '../../blitz/constants'; import { asset } from '../asset'; import { fetchCdonLz4 } from '../fetchCdonLz4'; import { TIERS } from './constants'; +export type TankClass = (typeof TANK_CLASSES)[number]; +export type TreeType = (typeof TREE_TYPES)[number]; + export enum ShellType { AP = 'ap', APCR = 'ap_cr', diff --git a/packages/core/src/statistics/deltaBkrlBlitzStats.ts b/packages/core/src/statistics/deltaBkrlBlitzStats.ts index 670d31b9a..db82f8672 100644 --- a/packages/core/src/statistics/deltaBkrlBlitzStats.ts +++ b/packages/core/src/statistics/deltaBkrlBlitzStats.ts @@ -1,5 +1,5 @@ -import { RatingPlayer } from '../../commands/ratingLeaderboard'; -import { RatingStats } from '../blitz/getAccountInfo'; +import { RatingPlayer } from '../../../bot/src/commands/ratingLeaderboard'; +import { RatingStats } from '../../../website/src/core/blitz/getAccountInfo'; import { BkrlSuperset1Entry } from '../streams/bkrl'; export function deltaBkrlBlitzStats( diff --git a/packages/core/src/statistics/deltaTankStats.ts b/packages/core/src/statistics/deltaTankStats.ts index 30bd8d3a6..8f185e51a 100644 --- a/packages/core/src/statistics/deltaTankStats.ts +++ b/packages/core/src/statistics/deltaTankStats.ts @@ -1,3 +1,5 @@ +import { IndividualTankStats, emptyIndividualTankStats } from '../types'; + export function deltaTankStats( tanksA: IndividualTankStats[], tanksB: IndividualTankStats[], diff --git a/packages/core/src/statistics/filterStats.ts b/packages/core/src/statistics/filterStats.ts index f5f73a1c1..2a1b16da5 100644 --- a/packages/core/src/statistics/filterStats.ts +++ b/packages/core/src/statistics/filterStats.ts @@ -1,4 +1,7 @@ -import { tankDefinitions } from '../blitzkit/tankDefinitions'; +import { DiffedTankStats } from '../../../bot/src/core/blitzstars/getStatsInPeriod'; +import { SupplementaryStats } from '../../../website/src/core/blitz/getAccountInfo'; +import { tankAverages } from '../../../website/src/core/blitzstars/tankAverages'; +import { tankDefinitions, TreeType } from '../blitzkit/tankDefinitions'; import calculateWN8 from './calculateWN8'; import sumStats from './sumStats'; diff --git a/packages/core/src/statistics/getTierWeights.ts b/packages/core/src/statistics/getTierWeights.ts index e24b984df..138937f48 100644 --- a/packages/core/src/statistics/getTierWeights.ts +++ b/packages/core/src/statistics/getTierWeights.ts @@ -1,4 +1,4 @@ -import { TierWeightsRecord } from '../../components/TierWeights'; +import { TierWeightsRecord } from '../../../bot/src/components/TierWeights'; import { tankDefinitions } from '../blitzkit/tankDefinitions'; import { BlitzStats } from './compositeStats/constants'; diff --git a/packages/core/src/statistics/sumStats.ts b/packages/core/src/statistics/sumStats.ts index f95278794..45ef1b62a 100644 --- a/packages/core/src/statistics/sumStats.ts +++ b/packages/core/src/statistics/sumStats.ts @@ -1,3 +1,4 @@ +import { emptyAllStats } from '..'; import { BlitzStats } from './compositeStats/constants'; export default function sumStats(allStatsCollection: BlitzStats[]) { diff --git a/packages/core/src/streams/rts.ts b/packages/core/src/streams/rts.ts index e490bdc27..657ef046b 100644 --- a/packages/core/src/streams/rts.ts +++ b/packages/core/src/streams/rts.ts @@ -1,5 +1,5 @@ import { times } from 'lodash'; -import { IndividualTankStats } from '../../types/tanksStats'; +import { IndividualTankStats } from '..'; import { BlitzStats } from '../statistics/compositeStats/constants'; import { ReadStream, WriteStream } from './buffer'; diff --git a/packages/core/src/zustand/createNextSafeStore.tsx b/packages/core/src/zustand/createNextSafeStore.tsx index 0e0337487..8b0e79753 100644 --- a/packages/core/src/zustand/createNextSafeStore.tsx +++ b/packages/core/src/zustand/createNextSafeStore.tsx @@ -1,4 +1,3 @@ -// MIGRATION TODO: i added this use client, it makes stuff work again? 'use client'; import { Draft, produce } from 'immer'; diff --git a/packages/scripts/package.json b/packages/scripts/package.json index b7a161ddc..95115c625 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -3,10 +3,15 @@ "private": true, "type": "module", "dependencies": { + "progress": "^2.0.3", "@gltf-transform/core": "^3.10.1", - "lodash": "^4.17.21" + "decompress": "^4.2.1", + "googleapis": "^134.0.0", + "fast-xml-parser": "^4.4.1" }, "devDependencies": { + "@types/decompress": "^4.2.7", + "@types/progress": "^2.0.7", "@types/lodash": "^4.17.7" } } diff --git a/packages/scripts/src/applyPatches.ts b/packages/scripts/src/applyPatches.ts index 3d7ff6210..983ef99ea 100644 --- a/packages/scripts/src/applyPatches.ts +++ b/packages/scripts/src/applyPatches.ts @@ -1,13 +1,13 @@ +import { assertSecret } from '@blitzkit/core'; import { mkdir, writeFile } from 'fs/promises'; import { parse as parsePath } from 'path'; import ProgressBar from 'progress'; import { parse as parseYaml, stringify as stringifyYaml } from 'yaml'; +import { dvp } from '../../../submodules/blitzkit-closed/src/dvp'; +import { writeDVPL } from '../../website/src/core/blitz/writeDVPL'; import { readStringDVPL } from '../src/core/blitz/readStringDVPL'; -import { readYAMLDVPL } from '../src/core/blitz/readYAMLDVPL'; -import { writeDVPL } from '../src/core/blitz/writeDVPL'; -import { assertSecret } from '../src/core/blitzkit/secret'; -import { dvp } from '../submodules/blitzkit-closed/src/dvp'; import { DATA } from './buildAssets/constants'; +import { readYAMLDVPL } from './core/blitz/readYAMLDVPL'; const versionTextFile = await readStringDVPL(`${DATA}/version.txt.dvpl`); const currentVersion = versionTextFile @@ -21,7 +21,9 @@ console.log(`Installing patches for ${currentVersion}...`); let patchIndex = 1; while (true) { const response = await fetch( - `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/s${currentVersion}_${patchIndex}.yaml`, + `${assertSecret( + process.env.WOTB_DLC_CDN, + )}/dlc/s${currentVersion}_${patchIndex}.yaml`, ); if (response.status === 200) { @@ -32,7 +34,10 @@ while (true) { `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/${data.dx11}`, ).then((response) => response.arrayBuffer()); const dvpd = await fetch( - `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/${data.dx11.replace('.dvpm', '.dvpd')}`, + `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/${data.dx11.replace( + '.dvpm', + '.dvpd', + )}`, ).then((response) => response.arrayBuffer()); const files = await dvp(dvpm, dvpd); const bar = new ProgressBar( @@ -58,7 +63,9 @@ while (true) { console.log('Found dynamic content localizations; patching...'); const localizationsResponse = await fetch( - `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/${data.dynamicContentLocalizationsDir}/en.yaml`, + `${assertSecret(process.env.WOTB_DLC_CDN)}/dlc/${ + data.dynamicContentLocalizationsDir + }/en.yaml`, ); const newStrings = parseYaml(await localizationsResponse.text()); const oldStrings = await readYAMLDVPL>( diff --git a/packages/scripts/src/averages.ts b/packages/scripts/src/averages.ts index 7a7057a19..56a86ab6a 100644 --- a/packages/scripts/src/averages.ts +++ b/packages/scripts/src/averages.ts @@ -1,23 +1,22 @@ -import { chunk, times } from 'lodash'; -import { Region, REGIONS } from '../src/constants/regions'; -import { getAccountInfo } from '../src/core/blitz/getAccountInfo'; -import getTankStats from '../src/core/blitz/getTankStats'; -import { idToRegion } from '../src/core/blitz/idToRegion'; import { AverageDefinitions, AverageDefinitionsEntry, AverageDefinitionsEntrySubPartial, AverageDefinitionsManifest, + IndividualTankStats, + REGIONS, + Region, Samples, -} from '../src/core/blitzkit/averageDefinitions'; -import { averageDefinitionsAllStatsKeys, emptySamples, -} from '../src/core/blitzkit/averageDefinitions/constants'; -import { commitAssets } from '../src/core/blitzkit/commitAssets'; -import { fetchPreDiscoveredIds } from '../src/core/blitzkit/fetchPreDiscoveredIds'; -import { encodeToBase64 } from '../src/core/protobuf/encodeToBase64'; -import { IndividualTankStats } from '../src/types/tanksStats'; + encodeProtobufToBase64, + idToRegion, +} from '@blitzkit/core'; +import { chunk, times } from 'lodash'; +import { getAccountInfo } from '../../website/src/core/blitz/getAccountInfo'; +import getTankStats from '../../website/src/core/blitz/getTankStats'; +import { commitAssets } from './core/github/commitAssets'; +import { fetchPreDiscoveredIds } from './core/github/fetchPreDiscoveredIds'; interface DataPoint { x: number; @@ -130,7 +129,9 @@ times(THREADS, async () => { async function postWork() { console.log( - `Generating statistics based on ${samples.d_120.toLocaleString()} players (${samples.total.toLocaleString()} checked in total) and ${tankIds.length} tanks...`, + `Generating statistics based on ${samples.d_120.toLocaleString()} players (${samples.total.toLocaleString()} checked in total) and ${ + tankIds.length + } tanks...`, ); const averages: Record = {}; @@ -224,7 +225,7 @@ async function postWork() { commitAssets('averages', [ { path: `averages/${latest}.pb`, - content: await encodeToBase64( + content: await encodeProtobufToBase64( 'average_definitions', 'blitzkit.AverageDefinitions', averageDefinitions, diff --git a/packages/scripts/src/buildAssets/boosterIcons.ts b/packages/scripts/src/buildAssets/boosterIcons.ts index e2d0b7e5a..6302ce9f3 100644 --- a/packages/scripts/src/buildAssets/boosterIcons.ts +++ b/packages/scripts/src/buildAssets/boosterIcons.ts @@ -2,8 +2,8 @@ import { readdir } from 'fs/promises'; import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; import { readStringDVPL } from '../../src/core/blitz/readStringDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; export async function boosterIcons() { diff --git a/packages/scripts/src/buildAssets/camouflageIcons.ts b/packages/scripts/src/buildAssets/camouflageIcons.ts index be7705a8b..ff8f0a1bc 100644 --- a/packages/scripts/src/buildAssets/camouflageIcons.ts +++ b/packages/scripts/src/buildAssets/camouflageIcons.ts @@ -1,6 +1,6 @@ import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; export async function camouflageIcons() { diff --git a/packages/scripts/src/buildAssets/consumableProvisionIcons.ts b/packages/scripts/src/buildAssets/consumableProvisionIcons.ts index 447612d14..e8276a7b3 100644 --- a/packages/scripts/src/buildAssets/consumableProvisionIcons.ts +++ b/packages/scripts/src/buildAssets/consumableProvisionIcons.ts @@ -2,12 +2,12 @@ import { existsSync } from 'fs'; import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; import { readStringDVPL } from '../../src/core/blitz/readStringDVPL'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; import { DATA } from './constants'; import { ConsumablesCommon, ProvisionsCommon } from './definitions'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; interface Mappings { Header: { version: number }; diff --git a/packages/scripts/src/buildAssets/currencies.ts b/packages/scripts/src/buildAssets/currencies.ts index d9e00e408..a066ff577 100644 --- a/packages/scripts/src/buildAssets/currencies.ts +++ b/packages/scripts/src/buildAssets/currencies.ts @@ -1,8 +1,8 @@ +import { assertSecret } from '@blitzkit/core'; import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; -import { assertSecret } from '../../src/core/blitzkit/secret'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; const ICONS = [ diff --git a/packages/scripts/src/buildAssets/definitions.ts b/packages/scripts/src/buildAssets/definitions.ts index 93362aa0b..4b689e172 100644 --- a/packages/scripts/src/buildAssets/definitions.ts +++ b/packages/scripts/src/buildAssets/definitions.ts @@ -1,47 +1,39 @@ +import { + assertSecret, + CamouflageDefinitions, + ConsumableDefinitions, + ConsumableEntry, + Crew, + CrewMember, + EquipmentDefinitions, + EquipmentPreset, + EquipmentRow, + GameDefinitions, + GunDefinition, + ModelArmor, + ModelDefinitions, + ProvisionDefinitions, + ProvisionEntry, + ShellType, + superCompress, + TankClass, + TankDefinitions, + TankFilterDefinitionCategory, + TankPrice, + Tier, + Unlock, +} from '@blitzkit/core'; import { SkillDefinitions } from '@blitzkit/core/src/blitzkit/skillDefinitions'; import { readdir } from 'fs/promises'; import { parse as parsePath } from 'path'; import { Vector3Tuple } from 'three'; import { parse as parseYaml } from 'yaml'; -import { TankClass } from '../../src/components/Tanks'; -import { WARGAMING_APPLICATION_ID } from '../../src/constants/wargamingApplicationID'; -import { readStringDVPL } from '../../src/core/blitz/readStringDVPL'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { toUniqueId } from '../../src/core/blitz/toUniqueId'; -import { CamouflageDefinitions } from '../../src/core/blitzkit/camouflageDefinitions'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { - ConsumableDefinitions, - ConsumableEntry, - TankFilterDefinitionCategory, -} from '../../src/core/blitzkit/consumableDefinitions'; -import { - EquipmentDefinitions, - EquipmentPreset, - EquipmentRow, -} from '../../src/core/blitzkit/equipmentDefinitions'; -import { GameDefinitions } from '../../src/core/blitzkit/gameDefinitions'; -import { MapDefinitions } from '../../src/core/blitzkit/mapDefinitions'; -import { - ModelArmor, - ModelDefinitions, -} from '../../src/core/blitzkit/modelDefinitions'; -import { - ProvisionDefinitions, - ProvisionEntry, -} from '../../src/core/blitzkit/provisionDefinitions'; -import { superCompress } from '../../src/core/blitzkit/superCompress'; -import { - Crew, - CrewMember, - GunDefinition, - ShellType, - TankDefinitions, - TankPrice, - Tier, - Unlock, -} from '../../src/core/blitzkit/tankDefinitions'; +import { toUniqueId } from '../../../website/src/core/blitz/toUniqueId'; +import { MapDefinitions } from '../../../website/src/core/blitzkit/mapDefinitions'; +import { readStringDVPL } from '../core/blitz/readStringDVPL'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; import { DATA } from './constants'; import { Avatar } from './skillIcons'; import { TankParameters } from './tankIcons'; @@ -458,7 +450,9 @@ export async function definitions() { console.log('Building definitions...'); const wargamingTankopedia = (await fetch( - `https://api.wotblitz.com/wotb/encyclopedia/vehicles/?application_id=${WARGAMING_APPLICATION_ID}&fields=description`, + `https://api.wotblitz.com/wotb/encyclopedia/vehicles/?application_id=${assertSecret( + process.env.NEXT_PUBLIC_WARGAMING_APPLICATION_ID, + )}&fields=description`, ).then((response) => response.json())) as { data: { [key: number]: { description: null | string } }; }; diff --git a/packages/scripts/src/buildAssets/equipmentIcons.ts b/packages/scripts/src/buildAssets/equipmentIcons.ts index 22514c963..a6b217deb 100644 --- a/packages/scripts/src/buildAssets/equipmentIcons.ts +++ b/packages/scripts/src/buildAssets/equipmentIcons.ts @@ -1,10 +1,10 @@ import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; import { readStringDVPL } from '../../src/core/blitz/readStringDVPL'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; import { OptionalDevices } from './definitions'; diff --git a/packages/scripts/src/buildAssets/flags.ts b/packages/scripts/src/buildAssets/flags.ts index ebab92968..3f94b1724 100644 --- a/packages/scripts/src/buildAssets/flags.ts +++ b/packages/scripts/src/buildAssets/flags.ts @@ -1,9 +1,9 @@ import { readdir } from 'fs/promises'; import sharp from 'sharp'; -import { readBase64DVPL } from '../../src/core/blitz/readBase64DVPL'; -import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { readBase64DVPL } from '../core/blitz/readBase64DVPL'; +import { readDVPLFile } from '../core/blitz/readDVPLFile'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; export async function flags() { @@ -11,7 +11,9 @@ export async function flags() { const changes = [ ...(await Promise.all( - (await readdir(`${DATA}/Gfx/Lobby/flags`)) + ( + await readdir(`${DATA}/Gfx/Lobby/flags`) + ) .filter( (flag) => flag.startsWith('flag_profile-stat_') && @@ -34,7 +36,9 @@ export async function flags() { }), )), ...(await Promise.all( - (await readdir(`${DATA}/Gfx/Lobby/flags`)) + ( + await readdir(`${DATA}/Gfx/Lobby/flags`) + ) .filter( (flag) => flag.startsWith('flag_tutor-tank_') && @@ -54,7 +58,9 @@ export async function flags() { }), )), ...(await Promise.all( - (await readdir(`${DATA}/Gfx/Lobby/flags`)) + ( + await readdir(`${DATA}/Gfx/Lobby/flags`) + ) .filter( (flag) => flag.startsWith('flag_filter_') && diff --git a/packages/scripts/src/buildAssets/gameModeBanners.ts b/packages/scripts/src/buildAssets/gameModeBanners.ts index 506fed1d0..bf0fbee22 100644 --- a/packages/scripts/src/buildAssets/gameModeBanners.ts +++ b/packages/scripts/src/buildAssets/gameModeBanners.ts @@ -1,8 +1,8 @@ import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; import { SquadBattleTypeStyles } from './definitions'; diff --git a/packages/scripts/src/buildAssets/moduleIcons.ts b/packages/scripts/src/buildAssets/moduleIcons.ts index 878cb2410..36a28da55 100644 --- a/packages/scripts/src/buildAssets/moduleIcons.ts +++ b/packages/scripts/src/buildAssets/moduleIcons.ts @@ -1,15 +1,17 @@ import { readdir } from 'fs/promises'; import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; export async function moduleIcons() { console.log('Building module icons...'); const changes = await Promise.all( - (await readdir(`${DATA}/Gfx/UI/ModulesTechTree`)) + ( + await readdir(`${DATA}/Gfx/UI/ModulesTechTree`) + ) .filter( (file) => !file.endsWith('@2x.packed.webp.dvpl') && file.startsWith('vehicle'), diff --git a/packages/scripts/src/buildAssets/shellIcons.ts b/packages/scripts/src/buildAssets/shellIcons.ts index b66546a17..48f46133d 100644 --- a/packages/scripts/src/buildAssets/shellIcons.ts +++ b/packages/scripts/src/buildAssets/shellIcons.ts @@ -2,8 +2,8 @@ import { readdir } from 'fs/promises'; import sharp from 'sharp'; import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; import { readStringDVPL } from '../../src/core/blitz/readStringDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; export async function shellIcons() { @@ -16,7 +16,9 @@ export async function shellIcons() { ); const changes = await Promise.all( - (await readdir(`${DATA}/Gfx/Shared/tank-supply/ammunition/big`)) + ( + await readdir(`${DATA}/Gfx/Shared/tank-supply/ammunition/big`) + ) .filter((file) => file.endsWith('_l.txt.dvpl')) .map(async (file) => { const name = file.match(/(.+)_l\.txt\.dvpl/)![1]; diff --git a/packages/scripts/src/buildAssets/skillIcons.ts b/packages/scripts/src/buildAssets/skillIcons.ts index 02b556c5a..8eeb7eeb5 100644 --- a/packages/scripts/src/buildAssets/skillIcons.ts +++ b/packages/scripts/src/buildAssets/skillIcons.ts @@ -1,9 +1,9 @@ +import { TankClass } from '@blitzkit/core'; import sharp from 'sharp'; -import { TankClass } from '../../src/components/Tanks'; -import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { readDVPLFile } from '../core/blitz/readDVPLFile'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; interface SkillIcon { diff --git a/packages/scripts/src/buildAssets/tankArmors.ts b/packages/scripts/src/buildAssets/tankArmors.ts index a3a6dd08e..f2f2f4a06 100644 --- a/packages/scripts/src/buildAssets/tankArmors.ts +++ b/packages/scripts/src/buildAssets/tankArmors.ts @@ -1,10 +1,10 @@ import { NodeIO } from '@gltf-transform/core'; import { readdir } from 'fs/promises'; -import { extractArmor } from '../../src/core/blitz/extractArmor'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { toUniqueId } from '../../src/core/blitz/toUniqueId'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { extractArmor } from '../../../website/src/core/blitz/extractArmor'; +import { toUniqueId } from '../../../website/src/core/blitz/toUniqueId'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; import { VehicleDefinitionList } from './definitions'; diff --git a/packages/scripts/src/buildAssets/tankIcons.ts b/packages/scripts/src/buildAssets/tankIcons.ts index d3d751824..d1a792ffe 100644 --- a/packages/scripts/src/buildAssets/tankIcons.ts +++ b/packages/scripts/src/buildAssets/tankIcons.ts @@ -1,12 +1,12 @@ +import { NATION_IDS } from '@blitzkit/core'; import { readdir } from 'fs/promises'; import sharp from 'sharp'; import { Vector3Tuple } from 'three'; -import { NATION_IDS } from '../../src/constants/nations'; -import { readDVPLFile } from '../../src/core/blitz/readDVPLFile'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { readDVPLFile } from '../core/blitz/readDVPLFile'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; import { VehicleDefinitionList } from './definitions'; diff --git a/packages/scripts/src/buildAssets/tankModels.ts b/packages/scripts/src/buildAssets/tankModels.ts index d2f05dc9d..24f683b5d 100644 --- a/packages/scripts/src/buildAssets/tankModels.ts +++ b/packages/scripts/src/buildAssets/tankModels.ts @@ -1,11 +1,11 @@ import { NodeIO } from '@gltf-transform/core'; import { readdir } from 'fs/promises'; -import { extractModel } from '../../src/core/blitz/extractModel'; -import { readXMLDVPL } from '../../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../../src/core/blitz/readYAMLDVPL'; -import { toUniqueId } from '../../src/core/blitz/toUniqueId'; -import { commitAssets } from '../../src/core/blitzkit/commitAssets'; -import { FileChange } from '../../src/core/blitzkit/commitMultipleFiles'; +import { extractModel } from '../../../website/src/core/blitz/extractModel'; +import { toUniqueId } from '../../../website/src/core/blitz/toUniqueId'; +import { readXMLDVPL } from '../core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from '../core/blitz/readYAMLDVPL'; +import { commitAssets } from '../core/github/commitAssets'; +import { FileChange } from '../core/github/commitMultipleFiles'; import { DATA } from './constants'; import { VehicleDefinitionList } from './definitions'; import { TankParameters } from './tankIcons'; diff --git a/packages/scripts/src/buildRatingLeaderboard.ts b/packages/scripts/src/buildRatingLeaderboard.ts index 234614bdd..44ff39073 100644 --- a/packages/scripts/src/buildRatingLeaderboard.ts +++ b/packages/scripts/src/buildRatingLeaderboard.ts @@ -1,24 +1,25 @@ +import { + BkrlBaseEntry, + BkrlFormat, + BkrlSuperset1Entry, + BkrlWriteStream, + CdonValue, + CdonWriteStream, + RegionSubdomain, + superCompress, +} from '@blitzkit/core'; import { chunk } from 'lodash'; import { argv } from 'process'; import { RatingInfo, RatingNeighbors, RatingPlayer, -} from '../src/commands/ratingLeaderboard'; -import { RegionSubdomain } from '../src/constants/regions'; -import { getAccountInfo } from '../src/core/blitz/getAccountInfo'; -import regionSubdomainToRegion from '../src/core/blitz/regionSubdomainToRegion'; -import { commitAssets } from '../src/core/blitzkit/commitAssets'; -import { FileChange } from '../src/core/blitzkit/commitMultipleFiles.js'; -import { patientFetchJSON } from '../src/core/blitzkit/patientFetchJSON'; -import { superCompress } from '../src/core/blitzkit/superCompress'; -import { - BkrlBaseEntry, - BkrlFormat, - BkrlSuperset1Entry, - BkrlWriteStream, -} from '../src/core/streams/bkrl'; -import { CdonValue, CdonWriteStream } from '../src/core/streams/cdon'; +} from '../../bot/src/commands/ratingLeaderboard'; +import { getAccountInfo } from '../../website/src/core/blitz/getAccountInfo'; +import regionSubdomainToRegion from '../../website/src/core/blitz/regionSubdomainToRegion'; +import { patientFetchJSON } from '../../website/src/core/blitzkit/patientFetchJSON'; +import { commitAssets } from './core/github/commitAssets'; +import { FileChange } from './core/github/commitMultipleFiles'; /* * Central North American Time (UTC-5): use 0 5 * * *. diff --git a/packages/website/src/core/blitz/readBase64DVPL.ts b/packages/scripts/src/core/blitz/readBase64DVPL.ts similarity index 100% rename from packages/website/src/core/blitz/readBase64DVPL.ts rename to packages/scripts/src/core/blitz/readBase64DVPL.ts diff --git a/packages/website/src/core/blitz/readDVPL.ts b/packages/scripts/src/core/blitz/readDVPL.ts similarity index 100% rename from packages/website/src/core/blitz/readDVPL.ts rename to packages/scripts/src/core/blitz/readDVPL.ts diff --git a/packages/website/src/core/blitz/readDVPLFile.ts b/packages/scripts/src/core/blitz/readDVPLFile.ts similarity index 100% rename from packages/website/src/core/blitz/readDVPLFile.ts rename to packages/scripts/src/core/blitz/readDVPLFile.ts diff --git a/packages/website/src/core/blitz/readStringDVPL.ts b/packages/scripts/src/core/blitz/readStringDVPL.ts similarity index 100% rename from packages/website/src/core/blitz/readStringDVPL.ts rename to packages/scripts/src/core/blitz/readStringDVPL.ts diff --git a/packages/website/src/core/blitz/readXMLDVPL.ts b/packages/scripts/src/core/blitz/readXMLDVPL.ts similarity index 100% rename from packages/website/src/core/blitz/readXMLDVPL.ts rename to packages/scripts/src/core/blitz/readXMLDVPL.ts diff --git a/packages/website/src/core/blitz/readYAML.ts b/packages/scripts/src/core/blitz/readYAML.ts similarity index 100% rename from packages/website/src/core/blitz/readYAML.ts rename to packages/scripts/src/core/blitz/readYAML.ts diff --git a/packages/website/src/core/blitz/readYAMLDVPL.ts b/packages/scripts/src/core/blitz/readYAMLDVPL.ts similarity index 100% rename from packages/website/src/core/blitz/readYAMLDVPL.ts rename to packages/scripts/src/core/blitz/readYAMLDVPL.ts diff --git a/packages/website/src/core/blitzkit/commitAssets.ts b/packages/scripts/src/core/github/commitAssets.ts similarity index 72% rename from packages/website/src/core/blitzkit/commitAssets.ts rename to packages/scripts/src/core/github/commitAssets.ts index b9f2837a8..486f4fa51 100644 --- a/packages/website/src/core/blitzkit/commitAssets.ts +++ b/packages/scripts/src/core/github/commitAssets.ts @@ -1,5 +1,4 @@ -import { assertSecret } from '../../../packages/core/src/blitzkit/assertSecret'; -import { ASSETS_REPO } from '../../constants/assets'; +import { assertSecret } from '@blitzkit/core'; import commitMultipleFiles, { FileChange } from './commitMultipleFiles'; export async function commitAssets(message: string, changes: FileChange[]) { @@ -9,7 +8,7 @@ export async function commitAssets(message: string, changes: FileChange[]) { await commitMultipleFiles( 'tresabhi', - ASSETS_REPO, + assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), assertSecret(process.env.NEXT_PUBLIC_ASSET_BRANCH), `${message} - ${new Date().toDateString()}`, changes, diff --git a/packages/website/src/core/blitzkit/commitMultipleFiles.ts b/packages/scripts/src/core/github/commitMultipleFiles.ts similarity index 88% rename from packages/website/src/core/blitzkit/commitMultipleFiles.ts rename to packages/scripts/src/core/github/commitMultipleFiles.ts index 36f561149..a5087a3df 100644 --- a/packages/website/src/core/blitzkit/commitMultipleFiles.ts +++ b/packages/scripts/src/core/github/commitMultipleFiles.ts @@ -1,6 +1,9 @@ import ProgressBar from 'progress'; -import { GithubChangeBlob, createBlob } from './createBlob'; -import { octokit } from './octokit'; +import { + GithubChangeBlob, + createBlob, +} from '../../../../website/src/core/blitzkit/createBlob'; +import { octokit } from '../../../../website/src/core/blitzkit/octokit'; export interface FileChange { path: string; diff --git a/packages/website/src/core/blitzkit/fetchPreDiscoveredIds.ts b/packages/scripts/src/core/github/fetchPreDiscoveredIds.ts similarity index 77% rename from packages/website/src/core/blitzkit/fetchPreDiscoveredIds.ts rename to packages/scripts/src/core/github/fetchPreDiscoveredIds.ts index d5bfed266..4538b141f 100644 --- a/packages/website/src/core/blitzkit/fetchPreDiscoveredIds.ts +++ b/packages/scripts/src/core/github/fetchPreDiscoveredIds.ts @@ -1,9 +1,8 @@ +import { asset, DidsReadStream } from '@blitzkit/core'; import { times } from 'lodash'; import { decompress } from 'lz4js'; import ProgressBar from 'progress'; -import { DidsReadStream } from '../streams/dids'; -import { asset } from './asset'; -import { DiscoveredIdsDefinitions } from './discoveredIdDefinitions'; +import { DiscoveredIdsDefinitions } from '../../../../website/src/core/blitzkit/discoveredIdDefinitions'; export async function fetchPreDiscoveredIds() { const idChunks: number[][] = []; @@ -11,7 +10,9 @@ export async function fetchPreDiscoveredIds() { response.json(), )) as DiscoveredIdsDefinitions; const bar = new ProgressBar( - `Fetching ${manifest.count.toLocaleString()} ids in ${manifest.chunks} chunks :bar`, + `Fetching ${manifest.count.toLocaleString()} ids in ${ + manifest.chunks + } chunks :bar`, manifest.chunks, ); diff --git a/packages/scripts/src/discoverIds.ts b/packages/scripts/src/discoverIds.ts index 7e3b250b9..d2516a51f 100644 --- a/packages/scripts/src/discoverIds.ts +++ b/packages/scripts/src/discoverIds.ts @@ -1,13 +1,18 @@ +import { + DidsReadStream, + DidsWriteStream, + MIN_REGION_IDS, + REGIONS, + Region, + asset, + idToRegion, +} from '@blitzkit/core'; import { chunk, times, uniq } from 'lodash'; import { compress, decompress } from 'lz4js'; -import { REGIONS, Region } from '../src/constants/regions'; -import { retryAbleBlitzFetchEvent } from '../src/core/blitz/fetchBlitz'; -import { getAccountInfo } from '../src/core/blitz/getAccountInfo'; -import { MIN_IDS, idToRegion } from '../src/core/blitz/idToRegion'; -import { asset } from '../src/core/blitzkit/asset'; -import { commitAssets } from '../src/core/blitzkit/commitAssets'; -import { DiscoveredIdsDefinitions } from '../src/core/blitzkit/discoveredIdDefinitions'; -import { DidsReadStream, DidsWriteStream } from '../src/core/streams/dids'; +import { retryAbleBlitzFetchEvent } from '../../website/src/core/blitz/fetchBlitz'; +import { getAccountInfo } from '../../website/src/core/blitz/getAccountInfo'; +import { DiscoveredIdsDefinitions } from '../../website/src/core/blitzkit/discoveredIdDefinitions'; +import { commitAssets } from './core/github/commitAssets'; const CHUNK_SIZE = 2 ** 21; const RUN_TIME = 1000 * 60 * 60 * 5.5; @@ -47,9 +52,9 @@ while (chunkIndex < preDiscoveredManifest.chunks) { } const regionalIdIndex: Record = { - asia: ids.findLast((id) => idToRegion(id) === 'asia') ?? MIN_IDS.asia, - com: ids.findLast((id) => idToRegion(id) === 'com') ?? MIN_IDS.com, - eu: ids.findLast((id) => idToRegion(id) === 'eu') ?? MIN_IDS.eu, + asia: ids.findLast((id) => idToRegion(id) === 'asia') ?? MIN_REGION_IDS.asia, + com: ids.findLast((id) => idToRegion(id) === 'com') ?? MIN_REGION_IDS.com, + eu: ids.findLast((id) => idToRegion(id) === 'eu') ?? MIN_REGION_IDS.eu, }; const zeroStreak: Record = { asia: 0, com: 0, eu: 0 }; let regionIndex = 0; diff --git a/packages/scripts/src/downloadZipClient.ts b/packages/scripts/src/downloadZipClient.ts deleted file mode 100644 index c3939cf3a..000000000 --- a/packages/scripts/src/downloadZipClient.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { assertSecret } from '../src/core/blitzkit/secret'; - -assertSecret(process.env.ZIP_URL); diff --git a/packages/scripts/src/reviews.ts b/packages/scripts/src/reviews.ts index 739b60dec..659759ba2 100644 --- a/packages/scripts/src/reviews.ts +++ b/packages/scripts/src/reviews.ts @@ -1,22 +1,25 @@ +import { + asset, + decodeProtobuf, + encodeProtobufToBase64, + Reviews, + Video, + youtubers, +} from '@blitzkit/core'; import { readdir } from 'fs/promises'; import { google } from 'googleapis'; import { cloneDeep, uniqBy } from 'lodash'; import { parse as parseYaml } from 'yaml'; -import { youtubers } from '../src/constants/youtubers'; -import { readXMLDVPL } from '../src/core/blitz/readXMLDVPL'; -import { readYAMLDVPL } from '../src/core/blitz/readYAMLDVPL'; -import { toUniqueId } from '../src/core/blitz/toUniqueId'; -import { asset } from '../src/core/blitzkit/asset'; -import { commitAssets } from '../src/core/blitzkit/commitAssets'; -import { Reviews, Video } from '../src/core/blitzkit/reviews'; -import { decode } from '../src/core/protobuf/decode'; -import { encodeToBase64 } from '../src/core/protobuf/encodeToBase64'; +import { toUniqueId } from '../../website/src/core/blitz/toUniqueId'; import { DATA } from './buildAssets/constants'; import { BlitzStrings, botPattern, VehicleDefinitionList, } from './buildAssets/definitions'; +import { readXMLDVPL } from './core/blitz/readXMLDVPL'; +import { readYAMLDVPL } from './core/blitz/readYAMLDVPL'; +import { commitAssets } from './core/github/commitAssets'; const MAX_QUERIES = 128; @@ -25,7 +28,11 @@ console.log('Finding reviews...'); const currentReviews = await fetch(asset('definitions/reviews.pb')) .then((response) => response.arrayBuffer()) .then((buffer) => - decode('reviews', 'blitzkit.Reviews', new Uint8Array(buffer)), + decodeProtobuf( + 'reviews', + 'blitzkit.Reviews', + new Uint8Array(buffer), + ), ); const auth = await google.auth.getClient({ scopes: ['https://www.googleapis.com/auth/youtube.readonly'], @@ -111,7 +118,7 @@ for (const tank of tanksSanitized) { ({ id: item.id!.videoId!, author: item.snippet!.channelId!, - }) satisfies Video, + } satisfies Video), ), }; @@ -124,7 +131,11 @@ for (const tank of tanksSanitized) { } } -const content = await encodeToBase64('reviews', 'blitzkit.Reviews', reviews); +const content = await encodeProtobufToBase64( + 'reviews', + 'blitzkit.Reviews', + reviews, +); await commitAssets('reviews', [ { content, encoding: 'base64', path: 'definitions/reviews.pb' }, diff --git a/packages/scripts/src/sitemap.ts b/packages/scripts/src/sitemap.ts index ece92ca58..3866d7cc6 100644 --- a/packages/scripts/src/sitemap.ts +++ b/packages/scripts/src/sitemap.ts @@ -1,4 +1,4 @@ -import { tankDefinitions } from '../src/core/blitzkit/tankDefinitions'; +import { tankDefinitions } from '@blitzkit/core'; // random vercel bug forces require import const { writeFileSync } = require('fs'); diff --git a/packages/website/package.json b/packages/website/package.json index d405713fd..7f8f263bf 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -16,6 +16,8 @@ "@react-three/drei": "^9.111.5", "@react-three/fiber": "^8.17.6", "react": "^18.3.1", + "markdown-to-jsx": "^7.5.0", + "compare-versions": "^6.1.1", "react-device-detect": "^2.2.3", "react-dom": "^18.3.1", "react-fuzzysort": "^1.0.1", diff --git a/packages/website/src/app/api/[region]/rating/current/info/route.ts b/packages/website/src/app/api/[region]/rating/current/info/route.ts index e464ca6b5..fdd613f79 100644 --- a/packages/website/src/app/api/[region]/rating/current/info/route.ts +++ b/packages/website/src/app/api/[region]/rating/current/info/route.ts @@ -1,5 +1,5 @@ +import { Region } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { Region } from '../../../../../../constants/regions'; import getRatingInfo from '../../../../../../core/blitz/getRatingInfo'; export async function GET( diff --git a/packages/website/src/app/api/[region]/rating/current/league/[league]/route.ts b/packages/website/src/app/api/[region]/rating/current/league/[league]/route.ts index e75eb6e09..05e30e467 100644 --- a/packages/website/src/app/api/[region]/rating/current/league/[league]/route.ts +++ b/packages/website/src/app/api/[region]/rating/current/league/[league]/route.ts @@ -1,5 +1,5 @@ +import { Region } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { Region } from '../../../../../../../constants/regions'; import { getRatingLeague } from '../../../../../../../core/blitz/getRatingLeague'; export async function GET( diff --git a/packages/website/src/app/api/[region]/rating/current/search/[username]/route.ts b/packages/website/src/app/api/[region]/rating/current/search/[username]/route.ts index edf3df3dc..3681ec814 100644 --- a/packages/website/src/app/api/[region]/rating/current/search/[username]/route.ts +++ b/packages/website/src/app/api/[region]/rating/current/search/[username]/route.ts @@ -1,5 +1,5 @@ +import { Region } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { Region } from '../../../../../../../constants/regions'; import { searchCurrentRatingPlayers } from '../../../../../../../core/blitz/searchCurrentRatingPlayers'; export async function GET( diff --git a/packages/website/src/app/api/patreon/auth/[code]/route.ts b/packages/website/src/app/api/patreon/auth/[code]/route.ts index 755ccb13f..8ec284a7a 100644 --- a/packages/website/src/app/api/patreon/auth/[code]/route.ts +++ b/packages/website/src/app/api/patreon/auth/[code]/route.ts @@ -1,5 +1,5 @@ +import { assertSecret } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { assertSecret } from '../../../../../core/blitzkit/secret'; export async function GET( request: Request, @@ -12,7 +12,9 @@ export async function GET( process.env.NEXT_PUBLIC_PATREON_CLIENT_ID, )}&client_secret=${assertSecret( process.env.PATREON_CLIENT_SECRET, - )}&redirect_uri=${assertSecret(process.env.NEXT_PUBLIC_PATREON_REDIRECT_URI)}`, + )}&redirect_uri=${assertSecret( + process.env.NEXT_PUBLIC_PATREON_REDIRECT_URI, + )}`, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, diff --git a/packages/website/src/app/api/patreon/membership/[token]/route.ts b/packages/website/src/app/api/patreon/membership/[token]/route.ts index fd3995f25..ea9d1d2d3 100644 --- a/packages/website/src/app/api/patreon/membership/[token]/route.ts +++ b/packages/website/src/app/api/patreon/membership/[token]/route.ts @@ -1,5 +1,5 @@ +import { assertSecret } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { assertSecret } from '../../../../../core/blitzkit/secret'; interface PatreonMembershipResponse { data: { diff --git a/packages/website/src/app/api/patreon/refresh/[token]/route.ts b/packages/website/src/app/api/patreon/refresh/[token]/route.ts index ef395faef..22106a448 100644 --- a/packages/website/src/app/api/patreon/refresh/[token]/route.ts +++ b/packages/website/src/app/api/patreon/refresh/[token]/route.ts @@ -1,5 +1,5 @@ +import { assertSecret } from '@blitzkit/core'; import { NextResponse } from 'next/server'; -import { assertSecret } from '../../../../../core/blitzkit/secret'; export async function GET( request: Request, diff --git a/packages/website/src/app/api/tank-voting/[id]/average/route.ts b/packages/website/src/app/api/tank-voting/[id]/average/route.ts index 9e93b294c..322703302 100644 --- a/packages/website/src/app/api/tank-voting/[id]/average/route.ts +++ b/packages/website/src/app/api/tank-voting/[id]/average/route.ts @@ -1,7 +1,6 @@ +import { tankDefinitions, usersDatabase } from '@blitzkit/core'; import { NextRequest, NextResponse } from 'next/server'; import { isValidBlitzId } from '../../../../../core/blitz/isValidBlitzId'; -import { tankDefinitions } from '../../../../../core/blitzkit/tankDefinitions'; -import { usersDatabase } from '../../../../../databases/users'; import { BlitzkitResponse, BlitzkitResponseError, diff --git a/packages/website/src/app/api/tank-voting/[id]/cast/route.ts b/packages/website/src/app/api/tank-voting/[id]/cast/route.ts index 3290e0fdc..f3e5e8327 100644 --- a/packages/website/src/app/api/tank-voting/[id]/cast/route.ts +++ b/packages/website/src/app/api/tank-voting/[id]/cast/route.ts @@ -1,7 +1,6 @@ +import { tankDefinitions, usersDatabase } from '@blitzkit/core'; import { NextRequest, NextResponse } from 'next/server'; import { isValidBlitzId } from '../../../../../core/blitz/isValidBlitzId'; -import { tankDefinitions } from '../../../../../core/blitzkit/tankDefinitions'; -import { usersDatabase } from '../../../../../databases/users'; import { BlitzkitResponse, BlitzkitResponseError, diff --git a/packages/website/src/app/components/Checks.tsx b/packages/website/src/app/components/Checks.tsx index fdd07ecd3..1962110e8 100644 --- a/packages/website/src/app/components/Checks.tsx +++ b/packages/website/src/app/components/Checks.tsx @@ -1,9 +1,9 @@ 'use client'; +import { assertSecret, idToRegion } from '@blitzkit/core'; import { Button, Flex, Heading, Link, Text } from '@radix-ui/themes'; import { usePathname } from 'next/navigation'; import { useEffect, useState } from 'react'; -import { idToRegion } from '@blitzkit/core'; import * as App from '../../stores/app'; import { CURRENT_POLICIES_AGREEMENT_INDEX } from '../../stores/app/constants'; import { PatreonAuthResponse } from '../auth/[provider]/page'; @@ -77,9 +77,9 @@ export function Checks() { fetch( `https://api.worldoftanks.${idToRegion( wargaming.id, - )}/wot/auth/prolongate/?application_id=${assertSecret(process.env.WARGAMING_APPLICATION_ID)}&access_token=${ - wargaming.token - }`, + )}/wot/auth/prolongate/?application_id=${assertSecret( + process.env.NEXT_PUBLIC_WARGAMING_APPLICATION_ID, + )}&access_token=${wargaming.token}`, ) .then((response) => response.json() as Promise) .then((json) => { diff --git a/packages/website/src/app/docs/[directory]/[document]/page.tsx b/packages/website/src/app/docs/[directory]/[document]/page.tsx index 781922efc..11238377b 100644 --- a/packages/website/src/app/docs/[directory]/[document]/page.tsx +++ b/packages/website/src/app/docs/[directory]/[document]/page.tsx @@ -1,9 +1,9 @@ +import { assertSecret } from '@blitzkit/core'; import { Table } from '@radix-ui/themes'; import Markdown from 'markdown-to-jsx'; import { use } from 'react'; import { Link } from '../../../../components/Link'; import PageWrapper from '../../../../components/PageWrapper'; -import { assertSecret } from '../../../../core/blitzkit/secret'; export default function Page({ params, diff --git a/packages/website/src/app/tools/compare/components/Body.tsx b/packages/website/src/app/tools/compare/components/Body.tsx index e49ee84cd..f1afb66cf 100644 --- a/packages/website/src/app/tools/compare/components/Body.tsx +++ b/packages/website/src/app/tools/compare/components/Body.tsx @@ -1,7 +1,6 @@ +import { asset, TankCharacteristics } from '@blitzkit/core'; import { Flex, Heading, IconButton, Table } from '@radix-ui/themes'; import { StickyColumnHeaderCell } from '../../../../components/StickyColumnHeaderCell'; -import { asset } from '../../../../core/blitzkit/asset'; -import { TankCharacteristics } from '../../../../core/blitzkit/tankCharacteristics'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import { CompareRow } from './CompareRow'; import { CompareSectionTitle } from './CompareSectionTitle'; diff --git a/packages/website/src/app/tools/compare/components/CompareRow.tsx b/packages/website/src/app/tools/compare/components/CompareRow.tsx index 77c73f01c..6ba15ccb1 100644 --- a/packages/website/src/app/tools/compare/components/CompareRow.tsx +++ b/packages/website/src/app/tools/compare/components/CompareRow.tsx @@ -1,12 +1,12 @@ +import { TankCharacteristics } from '@blitzkit/core'; import { CaretLeftIcon, CaretRightIcon, CaretSortIcon, } from '@radix-ui/react-icons'; import { Flex, IconButton, Table, Text } from '@radix-ui/themes'; +import { theme } from '../../../../../../bot/src/stitches.config'; import { StickyRowHeaderCell } from '../../../../components/StickyRowHeaderCell'; -import { TankCharacteristics } from '../../../../core/blitzkit/tankCharacteristics'; -import { theme } from '../../../../stitches.config'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import * as ComparePersistent from '../../../../stores/comparePersistent'; @@ -103,8 +103,8 @@ export function CompareRow({ const resolvedDisplayValue = display ? display(stats[index]) : decimals === undefined - ? value - : value?.toFixed(decimals); + ? value + : value?.toFixed(decimals); return ( values[0] - : value < values[0] - ) - ? `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_green} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_green}00)` - : `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_red} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_red}00)`, + deltaType === 'higherIsBetter' + ? value > values[0] + : value < values[0] + ) + ? `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_green} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_green}00)` + : `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_red} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_red}00)`, }} > diff --git a/packages/website/src/app/tools/compare/components/CompareTable.tsx b/packages/website/src/app/tools/compare/components/CompareTable.tsx index 8b9aa6401..fbafab3f5 100644 --- a/packages/website/src/app/tools/compare/components/CompareTable.tsx +++ b/packages/website/src/app/tools/compare/components/CompareTable.tsx @@ -1,8 +1,20 @@ +import { + TankCharacteristics, + asset, + availableProvisions, + checkConsumableProvisionInclusivity, + consumableDefinitions, + equipmentDefinitions, + provisionDefinitions, + skillDefinitions, +} from '@blitzkit/core'; import { permanentSkills } from '@blitzkit/core/src/blitz/permanentSkills'; import { ComponentPlaceholderIcon } from '@radix-ui/react-icons'; import { Button, Flex, Popover, Slider, Table, Text } from '@radix-ui/themes'; import { debounce, times } from 'lodash'; import { use } from 'react'; +import { theme } from '../../../../../../bot/src/stitches.config'; +import { BlitzkitButtonGrayIcon } from '../../../../components/BlitzkitButtonGrayIcon'; import { ConsumablesManager } from '../../../../components/ConsumablesManager'; import { CrewSkillManager } from '../../../../components/CrewSkillManager'; import { EquipmentManager } from '../../../../components/EquipmentManager'; @@ -10,16 +22,6 @@ import { ModuleManager } from '../../../../components/ModuleManager'; import { ProvisionsManager } from '../../../../components/ProvisionsManager'; import { StickyColumnHeaderCell } from '../../../../components/StickyColumnHeaderCell'; import { StickyTableRoot } from '../../../../components/StickyTableRoot'; -import { asset } from '../../../../core/blitzkit/asset'; -import { availableProvisions } from '../../../../core/blitzkit/availableProvisions'; -import { checkConsumableProvisionInclusivity } from '../../../../core/blitzkit/checkConsumableProvisionInclusivity'; -import { consumableDefinitions } from '../../../../core/blitzkit/consumableDefinitions'; -import { equipmentDefinitions } from '../../../../core/blitzkit/equipmentDefinitions'; -import { provisionDefinitions } from '../../../../core/blitzkit/provisionDefinitions'; -import { skillDefinitions } from '../../../../core/blitzkit/skillDefinitions'; -import { TankCharacteristics } from '../../../../core/blitzkit/tankCharacteristics'; -import { BlitzkitButtonGray } from '../../../../icons/BlitzkitButtonGray'; -import { theme } from '../../../../stitches.config'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import { EquipmentMatrix } from '../../../../stores/duel'; import { Body } from './Body'; @@ -56,7 +58,7 @@ export function CompareTable({ stats }: CompareTableProps) { align="center" justify="center" > - + diff --git a/packages/website/src/app/tools/compare/components/Controls.tsx b/packages/website/src/app/tools/compare/components/Controls.tsx index 4a8c52a4a..2d798ecb6 100644 --- a/packages/website/src/app/tools/compare/components/Controls.tsx +++ b/packages/website/src/app/tools/compare/components/Controls.tsx @@ -1,7 +1,7 @@ +import { provisionDefinitions } from '@blitzkit/core'; import { PlusIcon, TrashIcon } from '@radix-ui/react-icons'; import { Button, Dialog, Flex, SegmentedControl } from '@radix-ui/themes'; import { use } from 'react'; -import { provisionDefinitions } from '../../../../core/blitzkit/provisionDefinitions'; import { tankToCompareMember } from '../../../../core/blitzkit/tankToCompareMember'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import * as ComparePersistent from '../../../../stores/comparePersistent'; diff --git a/packages/website/src/app/tools/compare/components/IntersectionMarker/index.tsx b/packages/website/src/app/tools/compare/components/IntersectionMarker/index.tsx index fd43a8170..e5243f176 100644 --- a/packages/website/src/app/tools/compare/components/IntersectionMarker/index.tsx +++ b/packages/website/src/app/tools/compare/components/IntersectionMarker/index.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef } from 'react'; -import { theme } from '../../../../../stitches.config'; +import { theme } from '../../../../../../../bot/src/stitches.config'; import { insertionMarkers } from './constants'; export function InsertionMarker({ index }: { index: number }) { diff --git a/packages/website/src/app/tools/compare/components/TankCard.tsx b/packages/website/src/app/tools/compare/components/TankCard.tsx index b027b399f..9ab059a60 100644 --- a/packages/website/src/app/tools/compare/components/TankCard.tsx +++ b/packages/website/src/app/tools/compare/components/TankCard.tsx @@ -1,9 +1,8 @@ +import { TankDefinition, tankIcon } from '@blitzkit/core'; import { Flex, Text } from '@radix-ui/themes'; import { useEffect, useRef } from 'react'; import { Vector2 } from 'three'; import { StickyColumnHeaderCell } from '../../../../components/StickyColumnHeaderCell'; -import { TankDefinition } from '../../../../core/blitzkit/tankDefinitions'; -import { tankIcon } from '../../../../core/blitzkit/tankIcon'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import { InsertionMarker } from './IntersectionMarker'; import { insertionMarkers } from './IntersectionMarker/constants'; diff --git a/packages/website/src/app/tools/compare/components/TankControl.tsx b/packages/website/src/app/tools/compare/components/TankControl.tsx index a97970acf..6597a1901 100644 --- a/packages/website/src/app/tools/compare/components/TankControl.tsx +++ b/packages/website/src/app/tools/compare/components/TankControl.tsx @@ -1,8 +1,8 @@ +import { provisionDefinitions } from '@blitzkit/core'; import { ExternalLinkIcon, LoopIcon, TrashIcon } from '@radix-ui/react-icons'; import { Dialog, Flex, IconButton } from '@radix-ui/themes'; import Link from 'next/link'; import { use, useState } from 'react'; -import { provisionDefinitions } from '../../../../core/blitzkit/provisionDefinitions'; import { tankToCompareMember } from '../../../../core/blitzkit/tankToCompareMember'; import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import { TankSearch } from '../../tankopedia/components/TankSearch'; diff --git a/packages/website/src/app/tools/compare/page.tsx b/packages/website/src/app/tools/compare/page.tsx index 4daa94fed..9491e2896 100644 --- a/packages/website/src/app/tools/compare/page.tsx +++ b/packages/website/src/app/tools/compare/page.tsx @@ -1,17 +1,19 @@ 'use client'; +import { + createDefaultSkills, + equipmentDefinitions, + modelDefinitions, + provisionDefinitions, + skillDefinitions, + tankCharacteristics, + tankDefinitions, +} from '@blitzkit/core'; import { PlusIcon } from '@radix-ui/react-icons'; import { Box, Flex, Heading, IconButton, Text } from '@radix-ui/themes'; import { usePathname, useRouter, useSearchParams } from 'next/navigation'; import { use, useCallback, useEffect, useMemo, useState } from 'react'; import PageWrapper from '../../../components/PageWrapper'; -import { createDefaultSkills } from '../../../core/blitzkit/createDefaultSkills'; -import { equipmentDefinitions } from '../../../core/blitzkit/equipmentDefinitions'; -import { modelDefinitions } from '../../../core/blitzkit/modelDefinitions'; -import { provisionDefinitions } from '../../../core/blitzkit/provisionDefinitions'; -import { skillDefinitions } from '../../../core/blitzkit/skillDefinitions'; -import { tankCharacteristics } from '../../../core/blitzkit/tankCharacteristics'; -import { tankDefinitions } from '../../../core/blitzkit/tankDefinitions'; import { tankToCompareMember } from '../../../core/blitzkit/tankToCompareMember'; import * as CompareEphemeral from '../../../stores/compareEphemeral'; import { CompareTable } from './components/CompareTable'; diff --git a/packages/website/src/app/tools/embed/[embed]/page.tsx b/packages/website/src/app/tools/embed/[embed]/page.tsx index 733108de9..83cd6c631 100644 --- a/packages/website/src/app/tools/embed/[embed]/page.tsx +++ b/packages/website/src/app/tools/embed/[embed]/page.tsx @@ -1,5 +1,6 @@ 'use client'; +import { imgur } from '@blitzkit/core'; import { CodeIcon, HeightIcon, @@ -15,7 +16,6 @@ import { ReactNode, useEffect, useRef, useState } from 'react'; import { stringify } from 'urlon'; import { CopyButton } from '../../../../components/CopyButton'; import PageWrapper from '../../../../components/PageWrapper'; -import { imgur } from '../../../../core/blitzkit/imgur'; import * as App from '../../../../stores/app'; import * as EmbedState from '../../../../stores/embedState'; import { EmbedConfig } from '../../../../stores/embedState'; @@ -97,7 +97,9 @@ export default function Page({ state: stringify(shallowState), }); - return `${location.origin}/tools/embed/${params.embed}/host?${searchParams.toString()}`; + return `${location.origin}/tools/embed/${ + params.embed + }/host?${searchParams.toString()}`; }} > diff --git a/packages/website/src/app/tools/embed/configurations/breakdown.tsx b/packages/website/src/app/tools/embed/configurations/breakdown.tsx index 2d5598dc2..75929da2f 100644 --- a/packages/website/src/app/tools/embed/configurations/breakdown.tsx +++ b/packages/website/src/app/tools/embed/configurations/breakdown.tsx @@ -1,15 +1,15 @@ +import { + CompositeStatsKey, + compositeStatsKeys, + tankDefinitionsArray, +} from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { grayA, grayDark, grayDarkA } from '@radix-ui/colors'; import { use } from 'react'; import { BreakdownEmbedCard, BreakdownEmbedWrapper, } from '../../../../components/TanksEmbed'; -import { tankDefinitionsArray } from '../../../../core/blitzkit/tankDefinitions'; -import { - CompositeStatsKey, - compositeStatsKeys, -} from '../../../../core/statistics/compositeStats/constants'; -import strings from '../../../../lang/en-US.json'; import { EmbedConfig } from '../../../../stores/embedState'; import { EmbedItemType } from '../../../../stores/embedState/constants'; import { useEmbedStateCurry } from '../../../../stores/embedState/utilities'; diff --git a/packages/website/src/app/tools/performance/components/Info.tsx b/packages/website/src/app/tools/performance/components/Info.tsx index a02f188bf..12aa362b3 100644 --- a/packages/website/src/app/tools/performance/components/Info.tsx +++ b/packages/website/src/app/tools/performance/components/Info.tsx @@ -1,11 +1,10 @@ 'use client'; +import { averageDefinitions, formatCompact } from '@blitzkit/core'; import { InfoCircledIcon } from '@radix-ui/react-icons'; import { Callout, Flex } from '@radix-ui/themes'; import { use } from 'react'; -import { averageDefinitions } from '../../../../core/blitzkit/averageDefinitions'; import { discoveredIdsDefinitions } from '../../../../core/blitzkit/discoveredIdDefinitions'; -import { formatCompact } from '../../../../core/math/formatCompact'; export function Info() { const awaitedDiscoveredIdsDefinitions = use(discoveredIdsDefinitions); diff --git a/packages/website/src/app/tools/performance/components/TankRow.tsx b/packages/website/src/app/tools/performance/components/TankRow.tsx index f780fd439..a7a23962a 100644 --- a/packages/website/src/app/tools/performance/components/TankRow.tsx +++ b/packages/website/src/app/tools/performance/components/TankRow.tsx @@ -1,9 +1,11 @@ +import { + TankDefinition, + averageDefinitions, + formatCompact, +} from '@blitzkit/core'; import { Table } from '@radix-ui/themes'; import { memo, use } from 'react'; import { TankRowHeaderCell } from '../../../../components/TankRowHeaderCell'; -import { averageDefinitions } from '../../../../core/blitzkit/averageDefinitions'; -import { TankDefinition } from '../../../../core/blitzkit/tankDefinitions'; -import { formatCompact } from '../../../../core/math/formatCompact'; import { useAveragesExclusionRatio } from '../../../../hooks/useAveragesExclusionRatio'; import * as TankPerformancePersistent from '../../../../stores/tankPerformancePersistent'; diff --git a/packages/website/src/app/tools/performance/components/Tanks.tsx b/packages/website/src/app/tools/performance/components/Tanks.tsx index 897b967af..34324386c 100644 --- a/packages/website/src/app/tools/performance/components/Tanks.tsx +++ b/packages/website/src/app/tools/performance/components/Tanks.tsx @@ -1,11 +1,13 @@ 'use client'; +import { + averageDefinitionsArray, + filterTank, + tankDefinitions, +} from '@blitzkit/core'; import { Table } from '@radix-ui/themes'; import { times } from 'lodash'; import { Suspense, use, useEffect, useMemo, useState } from 'react'; -import { averageDefinitionsArray } from '../../../../core/blitzkit/averageDefinitions'; -import { filterTank } from '../../../../core/blitzkit/filterTank'; -import { tankDefinitions } from '../../../../core/blitzkit/tankDefinitions'; import * as TankFilters from '../../../../stores/tankFilters'; import * as TankPerformancePersistent from '../../../../stores/tankPerformancePersistent'; import * as TankPerformanceSort from '../../../../stores/tankPerformanceSort'; diff --git a/packages/website/src/app/tools/performance/components/TierBreakdown.tsx b/packages/website/src/app/tools/performance/components/TierBreakdown.tsx index df41ac38d..9ed96da21 100644 --- a/packages/website/src/app/tools/performance/components/TierBreakdown.tsx +++ b/packages/website/src/app/tools/performance/components/TierBreakdown.tsx @@ -1,20 +1,20 @@ 'use client'; +import { + averageDefinitionsArray, + formatCompact, + TANK_CLASSES, + TankClass, + tankDefinitions, + Tier, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { ResponsiveBar } from '@nivo/bar'; import { Box, Flex, Heading } from '@radix-ui/themes'; import { times } from 'lodash'; import { use } from 'react'; -import { TankClass } from '../../../../components/Tanks'; -import { TANK_CLASSES } from '../../../../components/Tanks/components/Item/constants'; -import { averageDefinitionsArray } from '../../../../core/blitzkit/averageDefinitions'; -import { - tankDefinitions, - Tier, -} from '../../../../core/blitzkit/tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from '../../../../core/blitzkit/tankDefinitions/constants'; -import { formatCompact } from '../../../../core/math/formatCompact'; import { nivoTheme } from '../../../../core/nivo/theme'; -import strings from '../../../../lang/en-US.json'; export function TierBreakdown() { const awaitedAverageDefinitionsArray = use(averageDefinitionsArray); diff --git a/packages/website/src/app/tools/performance/components/Total.tsx b/packages/website/src/app/tools/performance/components/Total.tsx index 10c648d17..c7b788a5b 100644 --- a/packages/website/src/app/tools/performance/components/Total.tsx +++ b/packages/website/src/app/tools/performance/components/Total.tsx @@ -1,12 +1,12 @@ -import { Table } from '@radix-ui/themes'; -import { memo, use, useCallback } from 'react'; -import { StickyRowHeaderCell } from '../../../../components/StickyRowHeaderCell'; import { averageDefinitions, AverageDefinitionsEntryWithId, -} from '../../../../core/blitzkit/averageDefinitions'; -import { formatCompact } from '../../../../core/math/formatCompact'; -import { BlitzkitStats } from '../../../../core/statistics/compositeStats/constants'; + BlitzkitStats, + formatCompact, +} from '@blitzkit/core'; +import { Table } from '@radix-ui/themes'; +import { memo, use, useCallback } from 'react'; +import { StickyRowHeaderCell } from '../../../../components/StickyRowHeaderCell'; import { useAveragesExclusionRatio } from '../../../../hooks/useAveragesExclusionRatio'; import * as TankPerformancePersistent from '../../../../stores/tankPerformancePersistent'; diff --git a/packages/website/src/app/tools/rating/page.tsx b/packages/website/src/app/tools/rating/page.tsx index 2542baf95..9299eaeb8 100644 --- a/packages/website/src/app/tools/rating/page.tsx +++ b/packages/website/src/app/tools/rating/page.tsx @@ -1,5 +1,12 @@ 'use client'; +import { + FIRST_MINIMAL_ARCHIVED_RATING_SEASON, + LEAGUES, + Region, + REGIONS, + UNLOCALIZED_REGION_NAMES, +} from '@blitzkit/core'; import { blackA, orangeDark } from '@radix-ui/colors'; import { MagnifyingGlassIcon } from '@radix-ui/react-icons'; import { @@ -15,16 +22,13 @@ import { produce } from 'immer'; import { debounce, range } from 'lodash'; import { ChangeEvent, useEffect, useRef, useState } from 'react'; import { create } from 'zustand'; -import { RatingInfo, RatingPlayer } from '../../../commands/ratingLeaderboard'; +import { + RatingInfo, + RatingPlayer, +} from '../../../../../bot/src/commands/ratingLeaderboard'; +import { theme } from '../../../../../bot/src/stitches.config'; import PageWrapper from '../../../components/PageWrapper'; import { Skeleton } from '../../../components/Skeleton'; -import { LEAGUES } from '../../../constants/leagues'; -import { FIRST_MINIMAL_ARCHIVED_RATING_SEASON } from '../../../constants/rating'; -import { - REGIONS, - Region, - UNLOCALIZED_REGION_NAMES, -} from '../../../constants/regions'; import fetchBlitz from '../../../core/blitz/fetchBlitz'; import { getClanAccountInfo } from '../../../core/blitz/getClanAccountInfo'; import getRatingInfo from '../../../core/blitz/getRatingInfo'; @@ -38,7 +42,6 @@ import { import { getArchivedLatestSeasonNumber } from '../../../core/blitzkit/getArchivedLatestSeasonNumber'; import getArchivedRatingInfo from '../../../core/blitzkit/getArchivedRatingInfo'; import { getArchivedRatingLeaderboard } from '../../../core/blitzkit/getArchivedRatingLeaderboard'; -import { theme } from '../../../stitches.config'; import { PageTurner } from './components/PageTurner'; const ROWS_PER_PAGE = Math.floor(100 / 3); diff --git a/packages/website/src/app/tools/session/page.tsx b/packages/website/src/app/tools/session/page.tsx index 13620fe3a..74a9b2e6f 100644 --- a/packages/website/src/app/tools/session/page.tsx +++ b/packages/website/src/app/tools/session/page.tsx @@ -1,5 +1,12 @@ 'use client'; +import { + IndividualTankStats, + UNLOCALIZED_REGION_NAMES_SHORT, + deltaTankStats, + idToRegion, + tankDefinitions, +} from '@blitzkit/core'; import { ArrowDownIcon, MagnifyingGlassIcon, @@ -22,7 +29,6 @@ import { debounce } from 'lodash'; import { use, useEffect, useMemo, useRef, useState } from 'react'; import PageWrapper from '../../../components/PageWrapper'; import { TankRowHeaderCell } from '../../../components/TankRowHeaderCell'; -import { UNLOCALIZED_REGION_NAMES_SHORT } from '../../../constants/regions'; import { STAT_KEYS, STAT_NAMES, @@ -36,15 +42,11 @@ import { getAccountInfo, } from '../../../core/blitz/getAccountInfo'; import getTankStats from '../../../core/blitz/getTankStats'; -import { idToRegion } from '../../../core/blitz/idToRegion'; import searchPlayersAcrossRegions, { AccountListWithServer, } from '../../../core/blitz/searchPlayersAcrossRegions'; -import { tankDefinitions } from '../../../core/blitzkit/tankDefinitions'; import { tankAverages } from '../../../core/blitzstars/tankAverages'; -import { deltaTankStats } from '../../../core/statistics/deltaTankStats'; import * as Session from '../../../stores/session'; -import { IndividualTankStats } from '../../../types/tanksStats'; export default function Page({ searchParams, diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx index ce47d9c24..100d11cc8 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Characteristics/components/Modules.tsx @@ -1,9 +1,14 @@ import { asset, formatCompact, + ModuleDefinition, + ModuleType, + TankDefinition, tankDefinitions, tankIcon, + Tier, TIER_ROMAN_NUMERALS, + Unlock, } from '@blitzkit/core'; import { Button, diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx index 556bedadb..04a479632 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/HeroSection.tsx @@ -1,6 +1,7 @@ import { resolveNearPenetration, tankDefinitions, Var } from '@blitzkit/core'; import { Box, Flex, Heading, Text } from '@radix-ui/themes'; import { Suspense, use, useEffect, useMemo, useRef, useState } from 'react'; +import { ThicknessRange } from '../../../../../../components/Armor/components/StaticArmor'; import { classIcons } from '../../../../../../components/ClassIcon'; import { NAVBAR_HEIGHT } from '../../../../../../components/Navbar/index.css'; import { useFullScreen } from '../../../../../../hooks/useFullScreen'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Votes/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Votes/index.tsx index 57846e014..d975d0387 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Votes/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Votes/index.tsx @@ -1,9 +1,9 @@ 'use client'; +import { formatCompact } from '@blitzkit/core'; import { Flex, Heading, Skeleton, Text } from '@radix-ui/themes'; import { memo } from 'react'; import { WargamingLoginButton } from '../../../../../../../../../components/Navbar/components/WargamingLoginButton'; -import { formatCompact } from '../../../../../../../../../core/math/formatCompact'; import { useTankVotes } from '../../../../../../../../../hooks/useTankVotes'; import * as App from '../../../../../../../../../stores/app'; import * as Duel from '../../../../../../../../../stores/duel'; @@ -71,7 +71,9 @@ export const Votes = memo( {votes ? ( wargaming ? ( votes.last_updated ? ( - `You voted on ${new Date(votes.last_updated).toLocaleDateString()}` + `You voted on ${new Date( + votes.last_updated, + ).toLocaleDateString()}` ) : ( `You haven't voted yet` ) diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx index 08c01a629..ea218c42b 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/index.tsx @@ -11,6 +11,7 @@ import { use, useState } from 'react'; import { classIcons } from '../../../../../../../components/ClassIcon'; import { Link } from '../../../../../../../components/Link'; import { ScienceIcon } from '../../../../../../../components/ScienceIcon'; +import { tankToDuelMember } from '../../../../../../../core/blitzkit/tankToDuelMember'; import * as App from '../../../../../../../stores/app'; import * as Duel from '../../../../../../../stores/duel'; import * as TankopediaEphemeral from '../../../../../../../stores/tankopediaEphemeral'; diff --git a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx index 9883c309b..a69d9b3f6 100644 --- a/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx +++ b/packages/website/src/app/tools/tankopedia/[id]/components/Model/TankSandbox.tsx @@ -159,7 +159,7 @@ export const TankSandbox = forwardRef( ['accentColor']; diff --git a/packages/website/src/components/TankRowHeaderCell.tsx b/packages/website/src/components/TankRowHeaderCell.tsx index e986bcaca..88795c199 100644 --- a/packages/website/src/components/TankRowHeaderCell.tsx +++ b/packages/website/src/components/TankRowHeaderCell.tsx @@ -1,6 +1,6 @@ +import { TankDefinition } from '@blitzkit/core'; import { tankIcon } from '@blitzkit/core/src/blitzkit/tankIcon'; -import { classIcons } from '../../packages/website/src/components/ClassIcon'; -import { TankDefinition } from '../core/blitzkit/tankDefinitions'; +import { classIcons } from './ClassIcon'; import { ExperimentIcon } from './ExperimentIcon'; import { Link } from './Link'; import { StickyRowHeaderCell } from './StickyRowHeaderCell'; diff --git a/packages/website/src/components/TanksEmbed.tsx b/packages/website/src/components/TanksEmbed.tsx index db3612291..a631075e5 100644 --- a/packages/website/src/components/TanksEmbed.tsx +++ b/packages/website/src/components/TanksEmbed.tsx @@ -1,18 +1,20 @@ +import { + CompositeStatsKey, + previewCompositeStat, + TankDefinition, +} from '@blitzkit/core'; +import strings from '@blitzkit/core/lang/en-US.json'; import { amberDark, blueDark } from '@radix-ui/colors'; import { Flex, Text } from '@radix-ui/themes'; import { times } from 'lodash'; import { ReactNode } from 'react'; -import { ClassHeavy } from '../../packages/website/src/components/ClassIcon/components/ClassHeavy'; -import { ClassLight } from '../../packages/website/src/components/ClassIcon/components/ClassLight'; -import { ClassMedium } from '../../packages/website/src/components/ClassIcon/components/ClassMedium'; -import { ClassTankDestroyer } from '../../packages/website/src/components/ClassIcon/components/ClassTankDestroyer'; -import { useEmbedStateCurry } from '../../packages/website/src/stores/embedState/utilities'; import { breakdownConfig } from '../app/tools/embed/configurations/breakdown'; import { toRadiusVar } from '../app/tools/embed/utilities'; -import { TankDefinition } from '../core/blitzkit/tankDefinitions'; -import { previewCompositeStat } from '../core/statistics/compositeStats'; -import { CompositeStatsKey } from '../core/statistics/compositeStats/constants'; -import strings from '../lang/en-US.json'; +import { useEmbedStateCurry } from '../stores/embedState/utilities'; +import { ClassHeavy } from './ClassIcon/components/ClassHeavy'; +import { ClassLight } from './ClassIcon/components/ClassLight'; +import { ClassMedium } from './ClassIcon/components/ClassMedium'; +import { ClassTankDestroyer } from './ClassIcon/components/ClassTankDestroyer'; interface BreakdownEmbedWrapperProps { children: ReactNode; diff --git a/packages/website/src/core/blitz/canSplash.ts b/packages/website/src/core/blitz/canSplash.ts index e67604866..14e7c2e34 100644 --- a/packages/website/src/core/blitz/canSplash.ts +++ b/packages/website/src/core/blitz/canSplash.ts @@ -1,3 +1,5 @@ +import { ShellDefinition, ShellType } from '@blitzkit/core'; + export function canSplash(type: ShellDefinition['type']): type is ShellType.HE { return type === ShellType.HE; } diff --git a/packages/website/src/core/blitz/extractArmor.ts b/packages/website/src/core/blitz/extractArmor.ts index db5302dae..5e4b1addb 100644 --- a/packages/website/src/core/blitz/extractArmor.ts +++ b/packages/website/src/core/blitz/extractArmor.ts @@ -1,13 +1,16 @@ +import { + Hierarchy, + Sc2ReadStream, + ScgReadStream, + VertexAttribute, +} from '@blitzkit/core'; import { Accessor, Document, Node, Scene } from '@gltf-transform/core'; import { times } from 'lodash'; -import { Hierarchy, Sc2ReadStream } from '../streams/sc2'; -import { ScgReadStream } from '../streams/scg'; -import { VertexAttribute } from '../streams/scpg'; +import { readDVPLFile } from '../../../../scripts/src/core/blitz/readDVPLFile'; import { vertexAttributeGLTFName, vertexAttributeGltfVectorSizes, } from './extractModel/constants'; -import { readDVPLFile } from './readDVPLFile'; export async function extractArmor(data: string, fileName: string) { const sc2Path = `${data}/3d/Tanks/CollisionMeshes/${fileName}.sc2.dvpl`; diff --git a/packages/website/src/core/blitz/extractModel/constants.ts b/packages/website/src/core/blitz/extractModel/constants.ts index 2e560c9af..159e8c35f 100644 --- a/packages/website/src/core/blitz/extractModel/constants.ts +++ b/packages/website/src/core/blitz/extractModel/constants.ts @@ -1,5 +1,4 @@ -import { vertexAttributeVectorSizes } from '../../streams/scg'; -import { VertexAttribute } from '../../streams/scpg'; +import { VertexAttribute, vertexAttributeVectorSizes } from '@blitzkit/core'; export const vertexAttributeGLTFName: Partial> = { diff --git a/packages/website/src/core/blitz/extractModel/index.ts b/packages/website/src/core/blitz/extractModel/index.ts index 4020f00d2..c6b3c4432 100644 --- a/packages/website/src/core/blitz/extractModel/index.ts +++ b/packages/website/src/core/blitz/extractModel/index.ts @@ -1,13 +1,17 @@ +import { + Hierarchy, + Sc2ReadStream, + ScgReadStream, + Textures, + VertexAttribute, +} from '@blitzkit/core'; import { Document, Material, Node, Scene } from '@gltf-transform/core'; import { times } from 'lodash'; import { dirname } from 'path'; import { Matrix4, Quaternion, Vector3, Vector4Tuple } from 'three'; +import { readDVPLFile } from '../../../../../scripts/src/core/blitz/readDVPLFile'; import { readTexture } from '../../blitzkit/readTexture'; import { TextureMutation } from '../../blitzkit/readTexture/constants'; -import { Hierarchy, Sc2ReadStream, Textures } from '../../streams/sc2'; -import { ScgReadStream } from '../../streams/scg'; -import { VertexAttribute } from '../../streams/scpg'; -import { readDVPLFile } from '../readDVPLFile'; import { vertexAttributeGLTFName, vertexAttributeGltfVectorSizes, diff --git a/packages/website/src/core/blitz/fetchBlitz.ts b/packages/website/src/core/blitz/fetchBlitz.ts index e635c2ce2..f8d9d11cb 100644 --- a/packages/website/src/core/blitz/fetchBlitz.ts +++ b/packages/website/src/core/blitz/fetchBlitz.ts @@ -1,6 +1,5 @@ -import { assertSecret } from '@blitzkit/core'; +import { assertSecret, Region } from '@blitzkit/core'; import { EventManager } from '@blitzkit/core/src/blitzkit/eventManager'; -import { Region } from '../../constants/regions'; import { patientFetch } from '../blitzkit/patientFetch'; const RETRY_ERRORS = ['REQUEST_LIMIT_EXCEEDED', 'SOURCE_NOT_AVAILABLE']; @@ -73,7 +72,9 @@ export default function fetchBlitz( return new Promise((resolve) => { queue.push({ url: `https://api.wotblitz.${region}/wotb/${path}/?${Object.entries({ - application_id: assertSecret(process.env.WARGAMING_APPLICATION_ID), + application_id: assertSecret( + process.env.NEXT_PUBLIC_WARGAMING_APPLICATION_ID, + ), ...params, }) .filter(([_, value]) => value !== undefined) diff --git a/packages/website/src/core/blitz/generateStats.ts b/packages/website/src/core/blitz/generateStats.ts index 7dfb6115a..47ec6df83 100644 --- a/packages/website/src/core/blitz/generateStats.ts +++ b/packages/website/src/core/blitz/generateStats.ts @@ -1,5 +1,5 @@ -import calculateWN8 from '../statistics/calculateWN8'; -import { BlitzStats } from '../statistics/compositeStats/constants'; +import { BlitzStats } from '@blitzkit/core'; +import calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8'; export type Stat = keyof ReturnType; diff --git a/packages/website/src/core/blitz/getAccountAchievements.ts b/packages/website/src/core/blitz/getAccountAchievements.ts index c87e34118..55a84fcd0 100644 --- a/packages/website/src/core/blitz/getAccountAchievements.ts +++ b/packages/website/src/core/blitz/getAccountAchievements.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; import fetchBlitz from './fetchBlitz'; import { normalizeIds } from './normalizeIds'; diff --git a/packages/website/src/core/blitz/getAccountInfo.ts b/packages/website/src/core/blitz/getAccountInfo.ts index 50a21ee0a..cbd25b93b 100644 --- a/packages/website/src/core/blitz/getAccountInfo.ts +++ b/packages/website/src/core/blitz/getAccountInfo.ts @@ -1,5 +1,4 @@ -import { Region } from '../../constants/regions'; -import { BlitzStats } from '../statistics/compositeStats/constants'; +import { BlitzStats, Region } from '@blitzkit/core'; import fetchBlitz, { FetchBlitzParams } from './fetchBlitz'; import { normalizeIds } from './normalizeIds'; diff --git a/packages/website/src/core/blitz/getClanAccountInfo.ts b/packages/website/src/core/blitz/getClanAccountInfo.ts index 0a986eac7..e56cb05e4 100644 --- a/packages/website/src/core/blitz/getClanAccountInfo.ts +++ b/packages/website/src/core/blitz/getClanAccountInfo.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; import fetchBlitz from './fetchBlitz'; import { normalizeIds } from './normalizeIds'; diff --git a/packages/website/src/core/blitz/getClanInfo.ts b/packages/website/src/core/blitz/getClanInfo.ts index 9ac36d92d..0b1a5423c 100644 --- a/packages/website/src/core/blitz/getClanInfo.ts +++ b/packages/website/src/core/blitz/getClanInfo.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; import fetchBlitz from './fetchBlitz'; import { normalizeIds } from './normalizeIds'; diff --git a/packages/website/src/core/blitz/getLeagueFromScore.ts b/packages/website/src/core/blitz/getLeagueFromScore.ts index d0f881be2..ee58bcbb5 100644 --- a/packages/website/src/core/blitz/getLeagueFromScore.ts +++ b/packages/website/src/core/blitz/getLeagueFromScore.ts @@ -1,4 +1,4 @@ -import { LEAGUES } from '../../constants/leagues'; +import { LEAGUES } from '@blitzkit/core'; export function getLeagueFromScore(score: number) { return LEAGUES.find(({ minScore }) => score >= minScore)!; diff --git a/packages/website/src/core/blitz/getRatingInfo.ts b/packages/website/src/core/blitz/getRatingInfo.ts index d85a7e1d9..bcec8cc18 100644 --- a/packages/website/src/core/blitz/getRatingInfo.ts +++ b/packages/website/src/core/blitz/getRatingInfo.ts @@ -1,5 +1,5 @@ -import { RatingInfo } from '../../commands/ratingLeaderboard'; -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; +import { RatingInfo } from '../../../../bot/src/commands/ratingLeaderboard'; import { context } from '../blitzkit/context'; import { patientFetch } from '../blitzkit/patientFetch'; import regionToRegionSubdomain from './regionToRegionSubdomain'; diff --git a/packages/website/src/core/blitz/getRatingLeague.ts b/packages/website/src/core/blitz/getRatingLeague.ts index dd96cb335..8484821ff 100644 --- a/packages/website/src/core/blitz/getRatingLeague.ts +++ b/packages/website/src/core/blitz/getRatingLeague.ts @@ -1,5 +1,8 @@ -import { LeagueTop, RatingPlayer } from '../../commands/ratingLeaderboard'; -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; +import { + LeagueTop, + RatingPlayer, +} from '../../../../bot/src/commands/ratingLeaderboard'; import { context } from '../blitzkit/context'; import { patientFetch } from '../blitzkit/patientFetch'; import regionToRegionSubdomain from './regionToRegionSubdomain'; diff --git a/packages/website/src/core/blitz/getRatingNeighbors.ts b/packages/website/src/core/blitz/getRatingNeighbors.ts index 879c1e14e..e198b4ec4 100644 --- a/packages/website/src/core/blitz/getRatingNeighbors.ts +++ b/packages/website/src/core/blitz/getRatingNeighbors.ts @@ -1,5 +1,5 @@ -import { RatingNeighbors } from '../../commands/ratingLeaderboard'; -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; +import { RatingNeighbors } from '../../../../bot/src/commands/ratingLeaderboard'; import { patientFetch } from '../blitzkit/patientFetch'; import { withCORSProxy } from '../blitzkit/withCORSProxy'; import regionToRegionSubdomain from './regionToRegionSubdomain'; diff --git a/packages/website/src/core/blitz/getTankStats.ts b/packages/website/src/core/blitz/getTankStats.ts index 61e73f9e4..59526bbe6 100644 --- a/packages/website/src/core/blitz/getTankStats.ts +++ b/packages/website/src/core/blitz/getTankStats.ts @@ -1,5 +1,4 @@ -import { Region } from '../../constants/regions'; -import { TanksStats } from '../../types/tanksStats'; +import { Region, TanksStats } from '@blitzkit/core'; import fetchBlitz, { FetchBlitzParams } from './fetchBlitz'; export default async function getTankStats( diff --git a/packages/website/src/core/blitz/isValidBlitzId.ts b/packages/website/src/core/blitz/isValidBlitzId.ts index 563fbc7b5..cc992d555 100644 --- a/packages/website/src/core/blitz/isValidBlitzId.ts +++ b/packages/website/src/core/blitz/isValidBlitzId.ts @@ -1,6 +1,4 @@ -import { Region } from '../../constants/regions'; -import { WARGAMING_APPLICATION_ID } from '../../constants/wargamingApplicationID'; -import { idToRegion } from './idToRegion'; +import { Region, assertSecret, idToRegion } from '@blitzkit/core'; export async function isValidBlitzId(id: number, token?: string) { let region: Region; @@ -12,9 +10,9 @@ export async function isValidBlitzId(id: number, token?: string) { } const json = await fetch( - `https://api.wotblitz.${region}/wotb/account/info/?account_id=${ - id - }&application_id=${WARGAMING_APPLICATION_ID}${ + `https://api.wotblitz.${region}/wotb/account/info/?account_id=${id}&application_id=${assertSecret( + process.env.NEXT_PUBLIC_WARGAMING_APPLICATION_ID, + )}${ token === undefined ? '' : `&access_token=${token}` }&fields=account_id%2C-account_id`, ).then( diff --git a/packages/website/src/core/blitz/regionSubdomainToRegion.ts b/packages/website/src/core/blitz/regionSubdomainToRegion.ts index 066f772cd..4d6f17ddb 100644 --- a/packages/website/src/core/blitz/regionSubdomainToRegion.ts +++ b/packages/website/src/core/blitz/regionSubdomainToRegion.ts @@ -1,7 +1,7 @@ -import { Region, RegionSubdomain } from '../../constants/regions'; +import { Region, RegionSubdomain } from "@blitzkit/core"; export default function regionSubdomainToRegion( regionDomain: RegionSubdomain, ): Region { - return regionDomain === 'na' ? 'com' : regionDomain; + return regionDomain === 'na' ? 'com' : regionDomain; } diff --git a/packages/website/src/core/blitz/regionToRegionSubdomain.ts b/packages/website/src/core/blitz/regionToRegionSubdomain.ts index fe44d9dcd..1c85f0920 100644 --- a/packages/website/src/core/blitz/regionToRegionSubdomain.ts +++ b/packages/website/src/core/blitz/regionToRegionSubdomain.ts @@ -1,4 +1,4 @@ -import { Region, RegionSubdomain } from '../../constants/regions'; +import { Region, RegionSubdomain } from "@blitzkit/core"; export default function regionToRegionSubdomain( regionDomain: Region, diff --git a/packages/website/src/core/blitz/resolveTankId.ts b/packages/website/src/core/blitz/resolveTankId.ts index 125ed93f2..285ee0cb6 100644 --- a/packages/website/src/core/blitz/resolveTankId.ts +++ b/packages/website/src/core/blitz/resolveTankId.ts @@ -1,11 +1,10 @@ +import { tankDefinitions, tankNames } from '@blitzkit/core'; import { Locale } from 'discord.js'; import { go } from 'fuzzysort'; import markdownEscape from 'markdown-escape'; +import { tankNamesTechTreeOnly } from '../../../../bot/src/core/discord/autocompleteTanks'; +import { translator } from '../../../../bot/src/core/localization/translator'; import { UserError } from '../../hooks/userError'; -import { tankDefinitions } from '../blitzkit/tankDefinitions'; -import { tankNames } from '../blitzkit/tankDefinitions/tankNames'; -import { tankNamesTechTreeOnly } from '../discord/autocompleteTanks'; -import { translator } from '../localization/translator'; export default async function resolveTankId( tank: string | number, diff --git a/packages/website/src/core/blitz/searchClansAcrossRegions.ts b/packages/website/src/core/blitz/searchClansAcrossRegions.ts index 6d14f7e8d..4a7297da8 100644 --- a/packages/website/src/core/blitz/searchClansAcrossRegions.ts +++ b/packages/website/src/core/blitz/searchClansAcrossRegions.ts @@ -1,5 +1,5 @@ -import { Region } from '../../constants/regions'; -import { ClanList } from '../../types/clanList'; +import { Region } from '@blitzkit/core'; +import { ClanList } from '../../../../bot/src/types/clanList'; import fetchBlitz from './fetchBlitz'; export default async function searchClansAcrossRegions( diff --git a/packages/website/src/core/blitz/searchCurrentRatingPlayers.ts b/packages/website/src/core/blitz/searchCurrentRatingPlayers.ts index 4b5b5b2c3..0368782ae 100644 --- a/packages/website/src/core/blitz/searchCurrentRatingPlayers.ts +++ b/packages/website/src/core/blitz/searchCurrentRatingPlayers.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; import { context } from '../blitzkit/context'; import regionToRegionSubdomain from './regionToRegionSubdomain'; diff --git a/packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts b/packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts index 8ca9130a7..b9a534f97 100644 --- a/packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts +++ b/packages/website/src/core/blitz/searchPlayersAcrossRegions/index.ts @@ -1,4 +1,4 @@ -import { Region } from '../../../constants/regions'; +import { Region } from '@blitzkit/core'; import fetchBlitz from '../fetchBlitz'; import { usernamePattern } from './constants'; diff --git a/packages/website/src/core/blitz/toUniqueId.ts b/packages/website/src/core/blitz/toUniqueId.ts index 53eb45c6f..3c080081a 100644 --- a/packages/website/src/core/blitz/toUniqueId.ts +++ b/packages/website/src/core/blitz/toUniqueId.ts @@ -1,4 +1,4 @@ -import { NATION_IDS } from '../../constants/nations'; +import { NATION_IDS } from "@blitzkit/core"; export function toUniqueId(nation: string, id: number) { return (id << 8) + (NATION_IDS[nation] << 4) + 1; diff --git a/packages/website/src/core/blitzkit/buildTechTreeLine.ts b/packages/website/src/core/blitzkit/buildTechTreeLine.ts index 5f7a56aea..7b9a24f43 100644 --- a/packages/website/src/core/blitzkit/buildTechTreeLine.ts +++ b/packages/website/src/core/blitzkit/buildTechTreeLine.ts @@ -1,5 +1,5 @@ +import { tankDefinitions } from '@blitzkit/core'; import { resolveAncestry } from './resolveAncestry'; -import { tankDefinitions } from './tankDefinitions'; export async function buildTechTreeLine(start: number, end: number) { const awaitedTankDefinitions = await tankDefinitions; diff --git a/packages/website/src/core/blitzkit/createBlob.ts b/packages/website/src/core/blitzkit/createBlob.ts index 2677521da..1265acba8 100644 --- a/packages/website/src/core/blitzkit/createBlob.ts +++ b/packages/website/src/core/blitzkit/createBlob.ts @@ -1,5 +1,5 @@ import { throttle } from 'lodash'; -import { FileChange } from './commitMultipleFiles'; +import { FileChange } from '../../../../scripts/src/core/github/commitMultipleFiles'; import { octokit } from './octokit'; export interface GithubChangeBlob { diff --git a/packages/website/src/core/blitzkit/filtersToDescription.ts b/packages/website/src/core/blitzkit/filtersToDescription.ts index c22714aad..ae5f4a7ee 100644 --- a/packages/website/src/core/blitzkit/filtersToDescription.ts +++ b/packages/website/src/core/blitzkit/filtersToDescription.ts @@ -1,8 +1,11 @@ +import { + StatFilters, + tankDefinitions, + Tier, + TIER_ROMAN_NUMERALS, +} from '@blitzkit/core'; import { Locale } from 'discord.js'; -import { translator } from '../localization/translator'; -import { StatFilters } from '../statistics/filterStats'; -import { Tier, tankDefinitions } from './tankDefinitions'; -import { TIER_ROMAN_NUMERALS } from './tankDefinitions/constants'; +import { translator } from '../../../../bot/src/core/localization/translator'; export async function filtersToDescription( { nation, tier, tankType, treeType, tank }: StatFilters, diff --git a/packages/website/src/core/blitzkit/flagUserActivity.ts b/packages/website/src/core/blitzkit/flagUserActivity.ts index d4f35d4e1..986e0a666 100644 --- a/packages/website/src/core/blitzkit/flagUserActivity.ts +++ b/packages/website/src/core/blitzkit/flagUserActivity.ts @@ -1,4 +1,4 @@ -import { usersDatabase } from '../../databases/users'; +import { usersDatabase } from '@blitzkit/core'; export async function flagUserActivity(blitzId: number) { await usersDatabase.user.upsert({ diff --git a/packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts b/packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts index e613eaf6d..3ede181bf 100644 --- a/packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts +++ b/packages/website/src/core/blitzkit/getArchivedLatestSeasonNumber.ts @@ -1,4 +1,4 @@ -import { ASSETS_REPO } from '../../constants/assets'; +import { assertSecret } from '@blitzkit/core'; import getRatingInfo from '../blitz/getRatingInfo'; interface GitHubTrees { @@ -17,7 +17,9 @@ export async function getArchivedLatestSeasonNumber() { if (ratingInfo.detail) { const regionsURL = ( (await fetch( - `https://api.github.com/repos/tresabhi/${ASSETS_REPO}/git/trees/main`, + `https://api.github.com/repos/tresabhi/${assertSecret( + process.env.NEXT_PUBLIC_ASSET_REPO, + )}/git/trees/main`, ).then((response) => response.json())) as GitHubTrees ).tree.find(({ path }) => path === 'regions')!.url; const comURL = ( diff --git a/packages/website/src/core/blitzkit/getArchivedRatingInfo.ts b/packages/website/src/core/blitzkit/getArchivedRatingInfo.ts index fb08928c4..dec923fc5 100644 --- a/packages/website/src/core/blitzkit/getArchivedRatingInfo.ts +++ b/packages/website/src/core/blitzkit/getArchivedRatingInfo.ts @@ -1,7 +1,6 @@ +import { Region, asset } from '@blitzkit/core'; import { superDecompress } from '@blitzkit/core/src/blitzkit/superDecompress'; -import { RatingInfo } from '../../commands/ratingLeaderboard'; -import { Region } from '../../constants/regions'; -import { asset } from './asset'; +import { RatingInfo } from '../../../../bot/src/commands/ratingLeaderboard'; const cache: Record< Region, diff --git a/packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts b/packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts index be9a5278f..0991d783c 100644 --- a/packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts +++ b/packages/website/src/core/blitzkit/getArchivedRatingLeaderboard.ts @@ -1,6 +1,9 @@ -import { Region } from '../../constants/regions'; -import { BkrlDiscriminatedEntries, BkrlReadStream } from '../streams/bkrl'; -import { asset } from './asset'; +import { + asset, + BkrlDiscriminatedEntries, + BkrlReadStream, + Region, +} from '@blitzkit/core'; const cache: Record> = { asia: {}, diff --git a/packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts b/packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts index 2413c7396..150d1b100 100644 --- a/packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts +++ b/packages/website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard.ts @@ -1,6 +1,9 @@ -import { Region } from '../../constants/regions'; -import { BkrlDiscriminatedEntries, BkrlReadStream } from '../streams/bkrl'; -import { asset } from './asset'; +import { + asset, + BkrlDiscriminatedEntries, + BkrlReadStream, + Region, +} from '@blitzkit/core'; const cache: Record> = { com: {}, diff --git a/packages/website/src/core/blitzkit/getTimeDaysAgo.ts b/packages/website/src/core/blitzkit/getTimeDaysAgo.ts index 0d388ddce..f1c529d9f 100644 --- a/packages/website/src/core/blitzkit/getTimeDaysAgo.ts +++ b/packages/website/src/core/blitzkit/getTimeDaysAgo.ts @@ -1,4 +1,4 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; const TIME_ZONE_MAPPINGS: Record = { com: -5, // Central North American Time diff --git a/packages/website/src/core/blitzkit/hasEquipment.ts b/packages/website/src/core/blitzkit/hasEquipment.ts index 6177456d9..e0a36e0ed 100644 --- a/packages/website/src/core/blitzkit/hasEquipment.ts +++ b/packages/website/src/core/blitzkit/hasEquipment.ts @@ -1,5 +1,5 @@ import { equipmentDefinitions } from '@blitzkit/core/src/blitzkit/equipmentDefinitions'; -import { EquipmentMatrix } from '../../../packages/website/src/stores/duel'; +import { EquipmentMatrix } from '../../stores/duel'; export async function hasEquipment( id: number, diff --git a/packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts b/packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts index 045dc80bd..813ea0aab 100644 --- a/packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts +++ b/packages/website/src/core/blitzkit/linkBlitzAndDiscord.ts @@ -1,4 +1,4 @@ -import { usersDatabase } from '../../databases/users'; +import { usersDatabase } from '@blitzkit/core'; import { flagUserActivity } from './flagUserActivity'; export async function linkBlitzAndDiscord(discordId: bigint, blitzId: number) { diff --git a/packages/website/src/core/blitzkit/octokit.ts b/packages/website/src/core/blitzkit/octokit.ts index d11356b62..9078fb23f 100644 --- a/packages/website/src/core/blitzkit/octokit.ts +++ b/packages/website/src/core/blitzkit/octokit.ts @@ -1,6 +1,6 @@ +import { assertSecret } from '@blitzkit/core'; import { throttling } from '@octokit/plugin-throttling'; import { Octokit } from '@octokit/rest'; -import { assertSecret } from '../../../packages/core/src/blitzkit/assertSecret'; Octokit.plugin(throttling); diff --git a/packages/website/src/core/blitzkit/parseBkni.ts b/packages/website/src/core/blitzkit/parseBkni.ts index feec1ae08..bf864354d 100644 --- a/packages/website/src/core/blitzkit/parseBkni.ts +++ b/packages/website/src/core/blitzkit/parseBkni.ts @@ -1,7 +1,5 @@ -import getBkniPercentile, { - BKNI_COLORS, - BkniPercentile, -} from '../statistics/getBkniPercentile'; +import { BKNI_COLORS, BkniPercentile } from '@blitzkit/core'; +import getBkniPercentile from '@blitzkit/core/src/statistics/getBkniPercentile'; export function parseBkni(bkni: number) { const bkniFraction = (bkni + 1) / 2; diff --git a/packages/website/src/core/blitzkit/processes.ts b/packages/website/src/core/blitzkit/processes.ts index ffbf7816f..698ddfada 100644 --- a/packages/website/src/core/blitzkit/processes.ts +++ b/packages/website/src/core/blitzkit/processes.ts @@ -1,5 +1,5 @@ -import { usersDatabase } from '../../databases/users'; -import { client } from '../discord/client'; +import { usersDatabase } from '@blitzkit/core'; +import { client } from '../../../../bot/src/core/discord/client'; const EXIT_EVENTS = [ 'beforeExit', diff --git a/packages/website/src/core/blitzkit/readTexture/index.ts b/packages/website/src/core/blitzkit/readTexture/index.ts index eb64496d2..89c9a0cc8 100644 --- a/packages/website/src/core/blitzkit/readTexture/index.ts +++ b/packages/website/src/core/blitzkit/readTexture/index.ts @@ -1,8 +1,7 @@ +import { DdsReadStream, PvrReadStream } from '@blitzkit/core'; import { existsSync } from 'fs'; import sharp from 'sharp'; -import { readDVPLFile } from '../../blitz/readDVPLFile'; -import { DdsReadStream } from '../../streams/dds'; -import { PvrReadStream } from '../../streams/pvr'; +import { readDVPLFile } from '../../../../../scripts/src/core/blitz/readDVPLFile'; import { TextureMutation } from './constants'; export async function readTexture(path: string, mutation?: TextureMutation) { diff --git a/packages/website/src/core/blitzkit/resolveAncestry.ts b/packages/website/src/core/blitzkit/resolveAncestry.ts index 980c67894..9d919eff5 100644 --- a/packages/website/src/core/blitzkit/resolveAncestry.ts +++ b/packages/website/src/core/blitzkit/resolveAncestry.ts @@ -1,4 +1,4 @@ -import { tankDefinitions } from './tankDefinitions'; +import { tankDefinitions } from '@blitzkit/core'; export async function resolveAncestry(id: number) { const awaitedTankDefinitions = await tankDefinitions; diff --git a/packages/website/src/core/blitzkit/resolveReload.ts b/packages/website/src/core/blitzkit/resolveReload.ts index c9c2b9840..22aa30bc5 100644 --- a/packages/website/src/core/blitzkit/resolveReload.ts +++ b/packages/website/src/core/blitzkit/resolveReload.ts @@ -1,4 +1,4 @@ -import { GunDefinition } from './tankDefinitions'; +import { GunDefinition } from '@blitzkit/core'; export function resolveReload(gun: GunDefinition) { if (gun.type === 'regular') { diff --git a/packages/website/src/core/blitzkit/tankToCompareMember.ts b/packages/website/src/core/blitzkit/tankToCompareMember.ts index 663eecc73..d63c95cfb 100644 --- a/packages/website/src/core/blitzkit/tankToCompareMember.ts +++ b/packages/website/src/core/blitzkit/tankToCompareMember.ts @@ -1,7 +1,7 @@ +import { TankDefinition } from '@blitzkit/core'; import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions'; import { uniqueId } from 'lodash'; -import { CompareMember } from '../../../packages/website/src/stores/compareEphemeral'; -import { TankDefinition } from './tankDefinitions'; +import { CompareMember } from '../../stores/compareEphemeral'; import { tankToDuelMember } from './tankToDuelMember'; export function tankToCompareMember( diff --git a/packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts b/packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts index da2074adc..0152b36e4 100644 --- a/packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts +++ b/packages/website/src/core/blitzstars/getBlitzStarsLinkButton.ts @@ -1,6 +1,6 @@ -import { Region } from '../../constants/regions'; +import { Region } from '@blitzkit/core'; +import buttonLink from '../../../../bot/src/core/discord/buttonLink'; import { getAccountInfo } from '../blitz/getAccountInfo'; -import buttonLink from '../discord/buttonLink'; export async function getBlitzStarsLinkButton( region: Region, diff --git a/packages/website/src/core/blitzstars/getPlayerHistories.ts b/packages/website/src/core/blitzstars/getPlayerHistories.ts index c34834c53..3a0c7440f 100644 --- a/packages/website/src/core/blitzstars/getPlayerHistories.ts +++ b/packages/website/src/core/blitzstars/getPlayerHistories.ts @@ -1,11 +1,10 @@ -import { emptyAllStats } from '@blitzkit/core/src/blitzstars/getStatsInPeriod/constants'; -import { Region } from '../../constants/regions'; +import { Region, emptyAllStats } from '@blitzkit/core'; import { GetHistoriesOptions, Histories, History, getHistoriesDefaultOptions, -} from '../../types/histories'; +} from '../../../../bot/src/types/histories'; import { getAccountInfo } from '../blitz/getAccountInfo'; import { PlayerStats } from './getPlayerStats'; diff --git a/packages/website/src/core/blitzstars/getPlayerStats.ts b/packages/website/src/core/blitzstars/getPlayerStats.ts index 1ba54703a..0cd37eda4 100644 --- a/packages/website/src/core/blitzstars/getPlayerStats.ts +++ b/packages/website/src/core/blitzstars/getPlayerStats.ts @@ -1,5 +1,4 @@ -import { Region } from '../../constants/regions'; -import { BlitzStats } from '../statistics/compositeStats/constants'; +import { BlitzStats, Region } from '@blitzkit/core'; interface IndividualPlayerStats { clan: { clan_id: number; name: string; tag: string }; diff --git a/packages/website/src/core/blitzstars/tankAverages.ts b/packages/website/src/core/blitzstars/tankAverages.ts index a6b0b5bd4..251c62a57 100644 --- a/packages/website/src/core/blitzstars/tankAverages.ts +++ b/packages/website/src/core/blitzstars/tankAverages.ts @@ -1,6 +1,5 @@ +import { BlitzStats, tankDefinitions } from '@blitzkit/core'; import { context } from '../blitzkit/context'; -import { tankDefinitions } from '../blitzkit/tankDefinitions'; -import { BlitzStats } from '../statistics/compositeStats/constants'; interface SpecialStats { winrate: number; diff --git a/packages/website/src/core/github/assetCommit.ts b/packages/website/src/core/github/assetCommit.ts index e415fbee2..550abaf64 100644 --- a/packages/website/src/core/github/assetCommit.ts +++ b/packages/website/src/core/github/assetCommit.ts @@ -1,5 +1,4 @@ -import { assertSecret } from '../../../packages/core/src/blitzkit/assertSecret'; -import { ASSETS_REPO } from '../../constants/assets'; +import { assertSecret } from '@blitzkit/core'; import { GithubChangeBlob, createBlob } from '../blitzkit/createBlob'; import { octokit } from '../blitzkit/octokit'; @@ -10,11 +9,15 @@ export class AssetCommit { async add(path: string, content: string, encoding: 'utf-8' | 'base64') { console.log(`Blob: adding ${path}...`); - const blob = await createBlob('tresabhi', ASSETS_REPO, { - content, - encoding, - path, - }); + const blob = await createBlob( + 'tresabhi', + assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), + { + content, + encoding, + path, + }, + ); this.blobs.push(blob!); } @@ -25,14 +28,14 @@ export class AssetCommit { const latestCommitSha = ( await octokit.git.getRef({ owner: 'tresabhi', - repo: ASSETS_REPO, + repo: assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), ref: `heads/${assertSecret(process.env.NEXT_PUBLIC_ASSET_BRANCH)}`, }) ).data.object.sha; const treeSha = ( await octokit.git.getCommit({ owner: 'tresabhi', - repo: ASSETS_REPO, + repo: assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), commit_sha: latestCommitSha, }) ).data.tree.sha; @@ -40,20 +43,20 @@ export class AssetCommit { const { data: treeData } = await octokit.git.createTree({ owner: 'tresabhi', - repo: ASSETS_REPO, + repo: assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), base_tree: treeSha, tree: blobs, }); const { data: newCommitData } = await octokit.git.createCommit({ owner: 'tresabhi', - repo: ASSETS_REPO, + repo: assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), message: this.message, tree: treeData.sha, parents: [latestCommitSha], }); await octokit.git.updateRef({ owner: 'tresabhi', - repo: ASSETS_REPO, + repo: assertSecret(process.env.NEXT_PUBLIC_ASSET_REPO), ref: `heads/${assertSecret(process.env.NEXT_PUBLIC_ASSET_BRANCH)}`, sha: newCommitData.sha, }); diff --git a/packages/website/src/hooks/useAppliedEquipments.ts b/packages/website/src/hooks/useAppliedEquipments.ts index d88aa3097..2c48c433a 100644 --- a/packages/website/src/hooks/useAppliedEquipments.ts +++ b/packages/website/src/hooks/useAppliedEquipments.ts @@ -1,5 +1,5 @@ -import { EquipmentMatrix } from '../../packages/website/src/stores/duel'; -import { EquipmentPreset } from '../core/blitzkit/equipmentDefinitions'; +import { EquipmentPreset } from '@blitzkit/core'; +import { EquipmentMatrix } from '../stores/duel'; export function useAppliedEquipments( matrix: EquipmentMatrix, diff --git a/packages/website/src/hooks/useAveragesExclusionRatio.ts b/packages/website/src/hooks/useAveragesExclusionRatio.ts index 46fa4a838..60bf9dc10 100644 --- a/packages/website/src/hooks/useAveragesExclusionRatio.ts +++ b/packages/website/src/hooks/useAveragesExclusionRatio.ts @@ -1,5 +1,5 @@ +import { averageDefinitions } from '@blitzkit/core'; import { use } from 'react'; -import { averageDefinitions } from '../core/blitzkit/averageDefinitions'; import { discoveredIdsDefinitions } from '../core/blitzkit/discoveredIdDefinitions'; export function useAveragesExclusionRatio() { diff --git a/packages/website/src/hooks/useEccentricity.ts b/packages/website/src/hooks/useEccentricity.ts index 92c723089..39603159d 100644 --- a/packages/website/src/hooks/useEccentricity.ts +++ b/packages/website/src/hooks/useEccentricity.ts @@ -1,10 +1,7 @@ +import { TankDefinition, tankDefinitions } from '@blitzkit/core'; import { sumBy } from 'lodash'; import { use, useMemo } from 'react'; -import * as Duel from '../../packages/website/src/stores/duel'; -import { - TankDefinition, - tankDefinitions, -} from '../core/blitzkit/tankDefinitions'; +import * as Duel from '../stores/duel'; export enum UseEccentricityMode { Tier, diff --git a/packages/website/src/hooks/useEquipmentPreset.ts b/packages/website/src/hooks/useEquipmentPreset.ts index f6d7cf9ee..59bc19baa 100644 --- a/packages/website/src/hooks/useEquipmentPreset.ts +++ b/packages/website/src/hooks/useEquipmentPreset.ts @@ -1,4 +1,4 @@ -import { equipmentDefinitions } from '../core/blitzkit/equipmentDefinitions'; +import { equipmentDefinitions } from '@blitzkit/core'; import { useAwait } from './useAwait'; export function useEquipmentPreset(preset: string) { diff --git a/packages/website/src/hooks/useProvision.ts b/packages/website/src/hooks/useProvision.ts index ce0c1984c..606c38f93 100644 --- a/packages/website/src/hooks/useProvision.ts +++ b/packages/website/src/hooks/useProvision.ts @@ -1,4 +1,4 @@ -import * as Duel from '../../packages/website/src/stores/duel'; +import * as Duel from '../stores/duel'; export function useProvision(id: number) { const provisions = Duel.use((state) => state.protagonist.provisions); diff --git a/packages/website/src/hooks/useTankVotes.ts b/packages/website/src/hooks/useTankVotes.ts index 105f3157e..dec1694e1 100644 --- a/packages/website/src/hooks/useTankVotes.ts +++ b/packages/website/src/hooks/useTankVotes.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; -import * as App from '../../packages/website/src/stores/app'; import { TankVotes } from '../app/api/tank-voting/[id]/average/route'; import { unwrapBlitzkitResponse } from '../core/blitzkit/unwrapBlitzkitResponse'; +import * as App from '../stores/app'; export interface BlitzkitResponseError { status: 'error'; diff --git a/packages/website/src/stores/comparePersistent.ts b/packages/website/src/stores/comparePersistent.ts index fa4522873..edd9b632c 100644 --- a/packages/website/src/stores/comparePersistent.ts +++ b/packages/website/src/stores/comparePersistent.ts @@ -1,9 +1,9 @@ 'use client'; +import { createNextSafeStore } from '@blitzkit/core'; import { merge } from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; export type DeltaMode = 'none' | 'percentage' | 'absolute'; export interface ComparePersistent { diff --git a/packages/website/src/stores/embedState/index.ts b/packages/website/src/stores/embedState/index.ts index 01fd2c82e..efbb26870 100644 --- a/packages/website/src/stores/embedState/index.ts +++ b/packages/website/src/stores/embedState/index.ts @@ -1,8 +1,8 @@ 'use client'; +import { createNextSafeStore } from '@blitzkit/core'; import * as radixColors from '@radix-ui/colors'; import { create } from 'zustand'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; import { EmbedConfigItemType, EmbedItemType, @@ -22,8 +22,19 @@ export type RadixTextColor = | Exclude | 'gray' | undefined; -export type RadixColorVariantRaw = - `${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12}`; +export type RadixColorVariantRaw = `${ + | 1 + | 2 + | 3 + | 4 + | 5 + | 6 + | 7 + | 8 + | 9 + | 10 + | 11 + | 12}`; export type RadixColorVariant = `${'' | 'a'}${RadixColorVariantRaw}`; export type RadixColor = Exclude< keyof typeof radixColors, diff --git a/packages/website/src/stores/session.ts b/packages/website/src/stores/session.ts index 5afd3da61..de1c6a7af 100644 --- a/packages/website/src/stores/session.ts +++ b/packages/website/src/stores/session.ts @@ -1,12 +1,14 @@ 'use client'; +import { + IndividualTankStats, + Region, + createNextSafeStore, +} from '@blitzkit/core'; import { merge } from 'lodash'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; -import { Region } from '../constants/regions'; import { Stat } from '../core/blitz/generateStats'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; -import { IndividualTankStats } from '../types/tanksStats'; interface SessionBase { columns: Stat[]; diff --git a/packages/website/src/stores/tankFilters.ts b/packages/website/src/stores/tankFilters.ts index 404864dd3..1181617f3 100644 --- a/packages/website/src/stores/tankFilters.ts +++ b/packages/website/src/stores/tankFilters.ts @@ -1,6 +1,6 @@ 'use client'; -import { Tier, createNextSafeStore } from '@blitzkit/core'; +import { TankClass, Tier, TreeType, createNextSafeStore } from '@blitzkit/core'; import { create } from 'zustand'; export interface TankFilters { diff --git a/packages/website/src/stores/tankPerformancePersistent/index.ts b/packages/website/src/stores/tankPerformancePersistent/index.ts index 6cebe3476..69f33d5a7 100644 --- a/packages/website/src/stores/tankPerformancePersistent/index.ts +++ b/packages/website/src/stores/tankPerformancePersistent/index.ts @@ -1,9 +1,9 @@ 'use client'; +import { createNextSafeStore } from '@blitzkit/core'; import { merge } from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; import { PlayerCountPeriod } from './constants'; export interface TankPerformancePersistent { diff --git a/packages/website/src/stores/tankPerformanceSort/index.ts b/packages/website/src/stores/tankPerformanceSort/index.ts index 86893965d..ec00ed774 100644 --- a/packages/website/src/stores/tankPerformanceSort/index.ts +++ b/packages/website/src/stores/tankPerformanceSort/index.ts @@ -1,7 +1,7 @@ 'use client'; +import { createNextSafeStore } from '@blitzkit/core'; import { create } from 'zustand'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; import { TankPerformanceSortTypeNames } from './constants'; export type TankPerformanceSortType = keyof typeof TankPerformanceSortTypeNames; diff --git a/packages/website/src/stores/tankopediaEphemeral.ts b/packages/website/src/stores/tankopediaEphemeral.ts index b7fb5bea4..22c1922a2 100644 --- a/packages/website/src/stores/tankopediaEphemeral.ts +++ b/packages/website/src/stores/tankopediaEphemeral.ts @@ -1,10 +1,12 @@ 'use client'; -import { createNextSafeStore } from '@blitzkit/core'; +import { createNextSafeStore, ModelDefinition } from '@blitzkit/core'; import { Vector3 } from 'three'; import { create } from 'zustand'; import { subscribeWithSelector } from 'zustand/middleware'; import { XP_MULTIPLIERS } from '../app/tools/tankopedia/[id]/components/Model/TechTreeSection'; +import { ArmorType } from '../components/Armor/components/SpacedArmorScene'; +import { ExternalModuleVariant } from '../components/Armor/components/SpacedArmorSceneComponent'; interface TankopediaEphemeral { shot?: Shot; diff --git a/packages/website/src/stores/tankopediaPersistent/index.ts b/packages/website/src/stores/tankopediaPersistent/index.ts index 48c2900de..fe53e8a8e 100644 --- a/packages/website/src/stores/tankopediaPersistent/index.ts +++ b/packages/website/src/stores/tankopediaPersistent/index.ts @@ -1,6 +1,6 @@ 'use client'; -import { createNextSafeStore } from '@blitzkit/core'; +import { createNextSafeStore, TankClass, Tier, TreeType } from '@blitzkit/core'; import { merge } from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; diff --git a/packages/website/tsconfig.json b/packages/website/tsconfig.json index 8fe71658b..4082f16a5 100644 --- a/packages/website/tsconfig.json +++ b/packages/website/tsconfig.json @@ -1,30 +1,3 @@ { - "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "noEmit": true, - "incremental": true, - "module": "esnext", - "esModuleInterop": true, - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "plugins": [ - { - "name": "next" - } - ] - }, - "include": [ - "next-env.d.ts", - "dist/website/types/**/*.ts", - "**/*.ts", - "**/*.tsx", - "../core/src/blitz/permanentSkills.tsx", - "../core/src/types/proto.d.ts" -, "../core/src/blitzkit/degressiveStat.ts", "../core/src/blitzkit/progressiveStat.ts", "../core/src/blitzkit/normalizeBoundingBox.ts", "../core/src/blitzkit/unionBoundingBox.ts", "../core/src/blitzkit/resolveDpm.ts" ], - "exclude": ["node_modules"] + "extends": "../../tsconfig.json" } diff --git a/tsconfig.json b/tsconfig.json index 9947ec45d..e313e2813 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -20,77 +20,6 @@ } ] }, - "include": [ - "src/**/*", - "scripts/**/*", - "dist/website/types/**/*.ts", - "packages/website/src/stores", - "packages/core/src/imgur/imgur.ts", - "packages/core/src/blitzkit/assertSecret.ts", - "packages/website/src/components/icons", - "packages/website/src/components/BlitzkitButtonGray.tsx", - "packages/website/src/components/Patreon.tsx", - "packages/website/src/components/Wargaming.tsx", - "packages/core/src/patreon/patreonLoginUrl.ts", - "packages/website/src/app/components/Footer", - "packages/website/src/components/Navbar", - "packages/website/src/components/Party3.tsx", - "packages/website/src/components/PageWrapper.tsx", - "packages/core/src/blitzkit/gameDefinitions.ts", - "packages/core/src/zustand/createNextSafeStore.tsx", - "packages/core/src/blitzkit/superDecompress.ts", - "packages/core/src/blitzkit/superCompress.ts", - "packages/website/src/components/ClassIcon", - "packages/core/src/blitzkit/asset.ts", - "packages/core/src/blitzkit/fetchCdonLz4.ts", - "packages/core/src/blitz/resolveNearPenetration.ts", - "packages/core/src/blitzkit/modelDefinitions.ts", - "packages/core/src/blitzkit/camouflageDefinitions.ts", - "packages/core/src/blitzkit/filterTank.ts", - "packages/core/src/blitzkit/tankIcon.ts", - "packages/core/src/blitzkit/consumableDefinitions.ts", - "packages/core/src/blitzkit/eventManager.ts", - "packages/core/src/blitzkit/provisionDefinitions.ts", - "packages/core/src/radix/var.ts", - "packages/core/src/blitzkit/equipmentDefinitions.ts", - "packages/website/src/components/Armor", - "packages/website/types/glsl.d.ts", - "packages/core/src/blitzkit/uniqueGuns.ts", - "packages/core/src/blitzkit/averageDefinitions", - "packages/core/src/protobuf", - "packages/core/src/blitzstars/getStatsInPeriod", - "packages/core/src/statistics/percentiles.ts", - "packages/core/src/math", - "packages/website/src/components/EquipmentManager.tsx", - "packages/website/src/components/ModuleButtons", - "packages/core/src/blitzkit/availableProvisions.ts", - "packages/website/src/components/ProvisionsManager.tsx", - "packages/website/src/components/ModuleManager.tsx", - "packages/website/src/components/CrewSkillManager.tsx", - "packages/website/src/components/ConsumablesManager.tsx", - "packages/core/src/blitzkit/checkConsumableProvisionInclusivity.ts", - "packages/core/src/blitzkit/skillDefinitions.ts", - "packages/core/src/blitzkit/createDefaultSkills.ts", - "packages/core/src/blitzkit/tankCharacteristics.ts", - "packages/core/src/blitzkit/coefficient.ts", - "packages/core/src/blitzkit/sum.ts", - "packages/core/src/blitzkit/resolvePenetrationCoefficient.ts", - "packages/core/src/blitzkit/isExplosive.ts", - "packages/core/src/blitzkit/reviews.ts", - "packages/core/src/blitzkit/youtubers.ts", - "packages/core/src/blitzkit/modelTransform.ts", - "packages/core/src/databases", - "packages/bot/src/index.ts", - "packages/bot/src/stitches.config.ts", - "packages/bot/src/types/writable.ts", - "packages/website/types/urlon.d.ts", - "packages/core/src/types/tanksStats.ts", - "packages/core/src/types/proto.d.ts", - "packages/bot/src/types/possiblyPromise.ts", - "packages/bot/src/types/histories.ts", - "packages/bot/src/types/ttf.d.ts", - "packages/bot/src/types/clanList.ts", - "packages/core/src/blitz/regions.ts" -, "packages/bot/src/core/radix/radixColors.ts", "packages/bot/src/core/discord/colors.ts", "packages/core/src/blitz/equipmentPrice.ts", "packages/core/src/blitz/leagues.ts", "packages/core/src/blitz/rating.ts", "packages/core/src/blitz/nations.ts", "packages/scripts/src/buildAssets", "packages/scripts/src/applyPatches.ts", "packages/scripts/src/averages.ts", "packages/scripts/src/buildRatingLeaderboard.ts", "packages/scripts/src/discoverIds.ts", "packages/scripts/src/downloadZipClient.ts", "packages/scripts/src/reviews.ts", "packages/scripts/src/setupDepotDownloader.ts", "packages/scripts/src/sitemap.ts" ], - "exclude": ["node_modules/**/*", "dist", "scripts"] + "include": ["packages/**/*"], + "exclude": ["node_modules/**/*", "dist"] }