diff --git a/server/@types/express/index.d.ts b/server/@types/express/index.d.ts index 16120d416..75043b97e 100644 --- a/server/@types/express/index.d.ts +++ b/server/@types/express/index.d.ts @@ -1,6 +1,6 @@ import { Session, SessionData } from "express-session"; -import { SYMBOL_KtchiData } from "../../src/constants/ktchi"; -import { KtchiRequestData, KtchiSessionData } from "../../src/types"; +import { SYMBOL_KtchiData } from "../../src/lib/constants/ktchi"; +import { KtchiRequestData, KtchiSessionData } from "../../src/utils/types"; export {}; diff --git a/server/src/data/text-files/english-adjectives.txt b/server/src/datasets/text-files/english-adjectives.txt similarity index 100% rename from server/src/data/text-files/english-adjectives.txt rename to server/src/datasets/text-files/english-adjectives.txt diff --git a/server/src/data/text-files/english-nouns.txt b/server/src/datasets/text-files/english-nouns.txt similarity index 100% rename from server/src/data/text-files/english-nouns.txt rename to server/src/datasets/text-files/english-nouns.txt diff --git a/server/src/data/words.ts b/server/src/datasets/words.ts similarity index 100% rename from server/src/data/words.ts rename to server/src/datasets/words.ts diff --git a/server/src/db/db.ts b/server/src/external/mongo/db.ts similarity index 96% rename from server/src/db/db.ts rename to server/src/external/mongo/db.ts index 7f43846fc..a38df380c 100644 --- a/server/src/db/db.ts +++ b/server/src/external/mongo/db.ts @@ -26,7 +26,7 @@ import { UserMilestoneDocument, } from "kamaitachi-common"; import monk from "monk"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/db/schemas.ts b/server/src/external/mongo/schemas.ts similarity index 100% rename from server/src/db/schemas.ts rename to server/src/external/mongo/schemas.ts diff --git a/server/src/redis/redis-store.ts b/server/src/external/redis/redis-store.ts similarity index 93% rename from server/src/redis/redis-store.ts rename to server/src/external/redis/redis-store.ts index 1cb3c12f5..358cf9fd5 100644 --- a/server/src/redis/redis-store.ts +++ b/server/src/external/redis/redis-store.ts @@ -1,6 +1,6 @@ import connectRedis from "connect-redis"; import expressSession from "express-session"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../../lib/logger/logger"; import redis from "redis"; const logger = CreateLogCtx(__filename); diff --git a/server/src/constants/ea3id.ts b/server/src/lib/constants/ea3id.ts similarity index 100% rename from server/src/constants/ea3id.ts rename to server/src/lib/constants/ea3id.ts diff --git a/server/src/constants/ktchi.ts b/server/src/lib/constants/ktchi.ts similarity index 100% rename from server/src/constants/ktchi.ts rename to server/src/lib/constants/ktchi.ts diff --git a/server/src/constants/usc-ir.ts b/server/src/lib/constants/usc-ir.ts similarity index 100% rename from server/src/constants/usc-ir.ts rename to server/src/lib/constants/usc-ir.ts diff --git a/server/src/common/logger.test.ts b/server/src/lib/logger/logger.test.ts similarity index 91% rename from server/src/common/logger.test.ts rename to server/src/lib/logger/logger.test.ts index 6228aedd2..38545d5c6 100644 --- a/server/src/common/logger.test.ts +++ b/server/src/lib/logger/logger.test.ts @@ -1,5 +1,5 @@ import t from "tap"; -import { CloseMongoConnection } from "../db/db"; +import { CloseMongoConnection } from "../../external/mongo/db"; import CreateLogCtx, { Transports } from "./logger"; t.test("Logger Tests", (t) => { diff --git a/server/src/common/logger.ts b/server/src/lib/logger/logger.ts similarity index 93% rename from server/src/common/logger.ts rename to server/src/lib/logger/logger.ts index 34ce171aa..0f7ed80f1 100644 --- a/server/src/common/logger.ts +++ b/server/src/lib/logger/logger.ts @@ -1,5 +1,6 @@ -import winston, { format, transports } from "winston"; -import { KtLogger } from "../types"; +import winston, { format, transports, Logger, LeveledLogMethod } from "winston"; + +export type KtLogger = Logger & { severe: LeveledLogMethod }; const level = process.env.LOG_LEVEL ?? "info"; diff --git a/server/src/score-import/framework/calculated-data/calculated-data.test.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts similarity index 92% rename from server/src/score-import/framework/calculated-data/calculated-data.test.ts rename to server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts index 260edf23c..bb9692095 100644 --- a/server/src/score-import/framework/calculated-data/calculated-data.test.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.test.ts @@ -1,18 +1,18 @@ import Pr from "prudence"; import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import { prAssert } from "../../../test-utils/asserts"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import { prAssert } from "../../../../test-utils/asserts"; import { Testing511SPA, TestingDoraChart, TestingGITADORADoraDryScore, TestingIIDXSPDryScore, -} from "../../../test-utils/test-data"; +} from "../../../../test-utils/test-data"; import { CreateCalculatedData, CalculateLampRating, CalculateRating } from "./calculated-data"; import deepmerge from "deepmerge"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { GetDefaultTierlist } from "../../../common/tierlist"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { GetDefaultTierlist } from "../../../../utils/tierlist"; const mockLogger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/calculated-data/calculated-data.ts b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts similarity index 95% rename from server/src/score-import/framework/calculated-data/calculated-data.ts rename to server/src/lib/score-import/framework/calculated-data/calculated-data.ts index edd4a805f..70d649eea 100644 --- a/server/src/score-import/framework/calculated-data/calculated-data.ts +++ b/server/src/lib/score-import/framework/calculated-data/calculated-data.ts @@ -4,8 +4,8 @@ import { GetAllTierlistDataOfType, GetDefaultTierlist, GetOneTierlistData, -} from "../../../common/tierlist"; -import { KtLogger } from "../../../types"; +} from "../../../../utils/tierlist"; +import { KtLogger } from "../../../logger/logger"; import { DryScore } from "../common/types"; import { CreateGameSpecific } from "./game-specific"; import { CalculateCHUNITHMRating, CalculateGITADORARating } from "./game-specific-stats"; diff --git a/server/src/score-import/framework/calculated-data/game-specific-stats.test.ts b/server/src/lib/score-import/framework/calculated-data/game-specific-stats.test.ts similarity index 94% rename from server/src/score-import/framework/calculated-data/game-specific-stats.test.ts rename to server/src/lib/score-import/framework/calculated-data/game-specific-stats.test.ts index 92d722a93..2c0f74428 100644 --- a/server/src/score-import/framework/calculated-data/game-specific-stats.test.ts +++ b/server/src/lib/score-import/framework/calculated-data/game-specific-stats.test.ts @@ -1,5 +1,5 @@ import t from "tap"; -import { CloseMongoConnection } from "../../../db/db"; +import { CloseMongoConnection } from "../../../../external/mongo/db"; import { AnyChartDocument, Difficulties, Lamps, ScoreDocument } from "kamaitachi-common"; import { CalculateBPI, @@ -11,8 +11,8 @@ import { CalculateVF5, KaidenPercentile, } from "./game-specific-stats"; -import CreateLogCtx from "../../../common/logger"; -import { isApproximately } from "../../../test-utils/asserts"; +import CreateLogCtx from "../../../logger/logger"; +import { isApproximately } from "../../../../test-utils/asserts"; import { DryScore } from "../common/types"; t.test("#CalculateBPI", (t) => { diff --git a/server/src/score-import/framework/calculated-data/game-specific-stats.ts b/server/src/lib/score-import/framework/calculated-data/game-specific-stats.ts similarity index 95% rename from server/src/score-import/framework/calculated-data/game-specific-stats.ts rename to server/src/lib/score-import/framework/calculated-data/game-specific-stats.ts index 6bdade110..ceeb19f34 100644 --- a/server/src/score-import/framework/calculated-data/game-specific-stats.ts +++ b/server/src/lib/score-import/framework/calculated-data/game-specific-stats.ts @@ -1,6 +1,6 @@ import { AnyChartDocument, ESDCore, integer, Grades, Lamps } from "kamaitachi-common"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; import { DryScore } from "../common/types"; /** diff --git a/server/src/score-import/framework/calculated-data/game-specific.test.ts b/server/src/lib/score-import/framework/calculated-data/game-specific.test.ts similarity index 89% rename from server/src/score-import/framework/calculated-data/game-specific.test.ts rename to server/src/lib/score-import/framework/calculated-data/game-specific.test.ts index 6230f64d9..1d7115cb3 100644 --- a/server/src/score-import/framework/calculated-data/game-specific.test.ts +++ b/server/src/lib/score-import/framework/calculated-data/game-specific.test.ts @@ -1,13 +1,13 @@ import Pr from "prudence"; import t from "tap"; -import { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import { prAssert } from "../../../test-utils/asserts"; +import { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import { prAssert } from "../../../../test-utils/asserts"; import { Testing511SPA, TestingIIDXSPDryScore, TestingSDVXSingleDryScore, -} from "../../../test-utils/test-data"; +} from "../../../../test-utils/test-data"; import { CreateGameSpecific } from "./game-specific"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/calculated-data/game-specific.ts b/server/src/lib/score-import/framework/calculated-data/game-specific.ts similarity index 92% rename from server/src/score-import/framework/calculated-data/game-specific.ts rename to server/src/lib/score-import/framework/calculated-data/game-specific.ts index 6f3ec528c..e092198cc 100644 --- a/server/src/score-import/framework/calculated-data/game-specific.ts +++ b/server/src/lib/score-import/framework/calculated-data/game-specific.ts @@ -1,6 +1,6 @@ import { AnyChartDocument, ChartDocument, Game, Playtypes, Grades, Lamps } from "kamaitachi-common"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; import { DryScore } from "../common/types"; import { CalculateBPI, diff --git a/server/src/score-import/framework/common/converter-failures.ts b/server/src/lib/score-import/framework/common/converter-failures.ts similarity index 100% rename from server/src/score-import/framework/common/converter-failures.ts rename to server/src/lib/score-import/framework/common/converter-failures.ts diff --git a/server/src/score-import/framework/common/import-logger.test.ts b/server/src/lib/score-import/framework/common/import-logger.test.ts similarity index 90% rename from server/src/score-import/framework/common/import-logger.test.ts rename to server/src/lib/score-import/framework/common/import-logger.test.ts index 1807a9bcd..2ca9905ae 100644 --- a/server/src/score-import/framework/common/import-logger.test.ts +++ b/server/src/lib/score-import/framework/common/import-logger.test.ts @@ -1,7 +1,7 @@ import t from "tap"; import { CreateImportLoggerAndID } from "./import-logger"; import { PublicUserDocument } from "kamaitachi-common"; -import { CloseMongoConnection } from "../../../db/db"; +import { CloseMongoConnection } from "../../../../external/mongo/db"; t.test("#CreateImportLoggerAndID", (t) => { const { importID, logger } = CreateImportLoggerAndID( diff --git a/server/src/score-import/framework/common/import-logger.ts b/server/src/lib/score-import/framework/common/import-logger.ts similarity index 80% rename from server/src/score-import/framework/common/import-logger.ts rename to server/src/lib/score-import/framework/common/import-logger.ts index 5e32dcb4a..f000e7ffa 100644 --- a/server/src/score-import/framework/common/import-logger.ts +++ b/server/src/lib/score-import/framework/common/import-logger.ts @@ -1,8 +1,7 @@ import { ImportTypes, PublicUserDocument } from "kamaitachi-common"; import crypto from "crypto"; -import { FormatUserDoc } from "../../../common/user"; -import { rootLogger } from "../../../common/logger"; -import { KtLogger } from "../../../types"; +import { FormatUserDoc } from "../../../../utils/user"; +import { rootLogger, KtLogger } from "../../../logger/logger"; export function CreateImportLoggerAndID(userDoc: PublicUserDocument, importType: ImportTypes) { const importID = crypto.randomBytes(20).toString("hex"); diff --git a/server/src/score-import/framework/common/score-utils.ts b/server/src/lib/score-import/framework/common/score-utils.ts similarity index 96% rename from server/src/score-import/framework/common/score-utils.ts rename to server/src/lib/score-import/framework/common/score-utils.ts index 41ce0052b..2a99b2b9f 100644 --- a/server/src/score-import/framework/common/score-utils.ts +++ b/server/src/lib/score-import/framework/common/score-utils.ts @@ -10,7 +10,7 @@ import { Playtypes, } from "kamaitachi-common"; import { judgementWindows, gamePercentMax } from "kamaitachi-common/js/config"; -import CreateLogCtx from "../../../common/logger"; +import CreateLogCtx from "../../../logger/logger"; import { InternalFailure, InvalidScoreFailure } from "./converter-failures"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/common/string-asserts.test.ts b/server/src/lib/score-import/framework/common/string-asserts.test.ts similarity index 100% rename from server/src/score-import/framework/common/string-asserts.test.ts rename to server/src/lib/score-import/framework/common/string-asserts.test.ts diff --git a/server/src/score-import/framework/common/string-asserts.ts b/server/src/lib/score-import/framework/common/string-asserts.ts similarity index 100% rename from server/src/score-import/framework/common/string-asserts.ts rename to server/src/lib/score-import/framework/common/string-asserts.ts diff --git a/server/src/score-import/framework/common/types.ts b/server/src/lib/score-import/framework/common/types.ts similarity index 100% rename from server/src/score-import/framework/common/types.ts rename to server/src/lib/score-import/framework/common/types.ts diff --git a/server/src/score-import/framework/express-wrapper.ts b/server/src/lib/score-import/framework/express-wrapper.ts similarity index 100% rename from server/src/score-import/framework/express-wrapper.ts rename to server/src/lib/score-import/framework/express-wrapper.ts diff --git a/server/src/score-import/framework/goals/goals.test.ts b/server/src/lib/score-import/framework/goals/goals.test.ts similarity index 97% rename from server/src/score-import/framework/goals/goals.test.ts rename to server/src/lib/score-import/framework/goals/goals.test.ts index e991b86e7..7c577cbc1 100644 --- a/server/src/score-import/framework/goals/goals.test.ts +++ b/server/src/lib/score-import/framework/goals/goals.test.ts @@ -1,6 +1,6 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; import { GetRelevantFolderGoals, GetRelevantGoals, @@ -9,7 +9,7 @@ import { ProcessGoal, } from "./goals"; import { GoalDocument, UserGoalDocument } from "kamaitachi-common"; -import { CreateFolderChartLookup } from "../../../common/folder"; +import { CreateFolderChartLookup } from "../../../../utils/folder"; import { GetKTDataJSON, Testing511SPA, @@ -17,9 +17,9 @@ import { HC511Goal, HC511UserGoal, TestingIIDXFolderSP10, -} from "../../../test-utils/test-data"; +} from "../../../../test-utils/test-data"; import deepmerge from "deepmerge"; -import CreateLogCtx from "../../../common/logger"; +import CreateLogCtx from "../../../logger/logger"; import crypto from "crypto"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/goals/goals.ts b/server/src/lib/score-import/framework/goals/goals.ts similarity index 97% rename from server/src/score-import/framework/goals/goals.ts rename to server/src/lib/score-import/framework/goals/goals.ts index c8db1cf44..0bdee9f45 100644 --- a/server/src/score-import/framework/goals/goals.ts +++ b/server/src/lib/score-import/framework/goals/goals.ts @@ -1,7 +1,7 @@ import { integer, Game, GoalDocument, UserGoalDocument } from "kamaitachi-common"; -import { EvaluateGoalForUser } from "../../../common/goal"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import { EvaluateGoalForUser } from "../../../../utils/goal"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; /** * Update a user's progress on all of their set goals. diff --git a/server/src/score-import/framework/milestones/milestones.test.ts b/server/src/lib/score-import/framework/milestones/milestones.test.ts similarity index 97% rename from server/src/score-import/framework/milestones/milestones.test.ts rename to server/src/lib/score-import/framework/milestones/milestones.test.ts index 9a99d1027..96d993535 100644 --- a/server/src/score-import/framework/milestones/milestones.test.ts +++ b/server/src/lib/score-import/framework/milestones/milestones.test.ts @@ -1,8 +1,8 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { TestingIIDXSPMilestone } from "../../../test-utils/test-data"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { TestingIIDXSPMilestone } from "../../../../test-utils/test-data"; import { UpdateUsersMilestones } from "./milestones"; import { GoalImportInfo } from "kamaitachi-common"; import deepmerge from "deepmerge"; diff --git a/server/src/score-import/framework/milestones/milestones.ts b/server/src/lib/score-import/framework/milestones/milestones.ts similarity index 77% rename from server/src/score-import/framework/milestones/milestones.ts rename to server/src/lib/score-import/framework/milestones/milestones.ts index f618ce8de..7cbba32ae 100644 --- a/server/src/score-import/framework/milestones/milestones.ts +++ b/server/src/lib/score-import/framework/milestones/milestones.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../types"; +import { KtLogger } from "../../../logger/logger"; import { integer, Game, @@ -6,10 +6,47 @@ import { GoalImportInfo, UserMilestoneDocument, MilestoneImportInfo, + MilestoneDocument, } from "kamaitachi-common"; -import db from "../../../db/db"; -import { ProcessMilestoneFromGII } from "../../../common/milestone"; +import db from "../../../../external/mongo/db"; import { BulkWriteUpdateOneOperation } from "mongodb"; +import { CalculateMilestoneOutOf, GetGoalIDsFromMilestone } from "../../../../utils/milestone"; + +/** + * Processes and updates a user's milestones from their Goal Import Info (i.e. what is returned + * about goals from imports) + */ +export function ProcessMilestoneFromGII( + milestone: MilestoneDocument, + gii: Map +) { + const goalIDs = GetGoalIDsFromMilestone(milestone); + + let progress = 0; + + for (const goalID of goalIDs) { + const userInfo = gii.get(goalID); + + if (!userInfo) { + continue; + } + + if (!userInfo.achieved) { + continue; + } + + progress++; + } + + const outOf = CalculateMilestoneOutOf(milestone, goalIDs); + + // milestone achieved! + if (progress >= outOf) { + return { achieved: true, progress }; + } + + return { achieved: false, progress }; +} export async function UpdateUsersMilestones( importGoalInfo: GoalImportInfo[], diff --git a/server/src/score-import/framework/pb/create-pb-doc.test.ts b/server/src/lib/score-import/framework/pb/create-pb-doc.test.ts similarity index 95% rename from server/src/score-import/framework/pb/create-pb-doc.test.ts rename to server/src/lib/score-import/framework/pb/create-pb-doc.test.ts index adf9d2aeb..dbd511144 100644 --- a/server/src/score-import/framework/pb/create-pb-doc.test.ts +++ b/server/src/lib/score-import/framework/pb/create-pb-doc.test.ts @@ -1,11 +1,11 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { GetKTDataJSON, Testing511SPA, TestingIIDXSPScore } from "../../../test-utils/test-data"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { GetKTDataJSON, Testing511SPA, TestingIIDXSPScore } from "../../../../test-utils/test-data"; import { CreatePBDoc } from "./create-pb-doc"; import deepmerge from "deepmerge"; -import CreateLogCtx from "../../../common/logger"; -import { KtLogger } from "../../../types"; +import CreateLogCtx, { KtLogger } from "../../../logger/logger"; + import { lamps } from "kamaitachi-common/js/config"; let IIDXScore = TestingIIDXSPScore; diff --git a/server/src/score-import/framework/pb/create-pb-doc.ts b/server/src/lib/score-import/framework/pb/create-pb-doc.ts similarity index 98% rename from server/src/score-import/framework/pb/create-pb-doc.ts rename to server/src/lib/score-import/framework/pb/create-pb-doc.ts index 689f56e3a..959460af4 100644 --- a/server/src/score-import/framework/pb/create-pb-doc.ts +++ b/server/src/lib/score-import/framework/pb/create-pb-doc.ts @@ -1,7 +1,7 @@ -import db from "../../../db/db"; +import db from "../../../../external/mongo/db"; import { integer, PBScoreDocument, ScoreDocument } from "kamaitachi-common"; -import { KtLogger } from "../../../types"; +import { KtLogger } from "../../../logger/logger"; import { IIDXMergeFn, SDVXMergeFn } from "./game-specific-merge"; import { BulkWriteUpdateOneOperation } from "mongodb"; export type PBScoreDocumentNoRank = Omit; diff --git a/server/src/score-import/framework/pb/game-specific-merge.ts b/server/src/lib/score-import/framework/pb/game-specific-merge.ts similarity index 95% rename from server/src/score-import/framework/pb/game-specific-merge.ts rename to server/src/lib/score-import/framework/pb/game-specific-merge.ts index aeb40d93e..30ae19c7f 100644 --- a/server/src/score-import/framework/pb/game-specific-merge.ts +++ b/server/src/lib/score-import/framework/pb/game-specific-merge.ts @@ -1,7 +1,7 @@ import { PBScoreDocument, ScoreDocument } from "kamaitachi-common"; -import { FindChartWithChartID } from "../../../common/database-lookup/chart"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import { FindChartWithChartID } from "../../../../utils/queries/charts"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; import { CalculateVF4, CalculateVF5 } from "../calculated-data/game-specific-stats"; import { InternalFailure } from "../common/converter-failures"; diff --git a/server/src/score-import/framework/pb/process-pbs.test.ts b/server/src/lib/score-import/framework/pb/process-pbs.test.ts similarity index 86% rename from server/src/score-import/framework/pb/process-pbs.test.ts rename to server/src/lib/score-import/framework/pb/process-pbs.test.ts index 096a7b9d7..bc1f8def7 100644 --- a/server/src/score-import/framework/pb/process-pbs.test.ts +++ b/server/src/lib/score-import/framework/pb/process-pbs.test.ts @@ -1,8 +1,8 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { Testing511SPA, TestingIIDXSPScore } from "../../../test-utils/test-data"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { Testing511SPA, TestingIIDXSPScore } from "../../../../test-utils/test-data"; import { ProcessPBs } from "./process-pbs"; import deepmerge from "deepmerge"; import crypto from "crypto"; diff --git a/server/src/score-import/framework/pb/process-pbs.ts b/server/src/lib/score-import/framework/pb/process-pbs.ts similarity index 94% rename from server/src/score-import/framework/pb/process-pbs.ts rename to server/src/lib/score-import/framework/pb/process-pbs.ts index 6d5513c5d..27a3a5614 100644 --- a/server/src/score-import/framework/pb/process-pbs.ts +++ b/server/src/lib/score-import/framework/pb/process-pbs.ts @@ -1,6 +1,6 @@ import { integer, PBScoreDocument } from "kamaitachi-common"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; import { CreatePBDoc, UpdateChartRanking, PBScoreDocumentNoRank } from "./create-pb-doc"; export async function ProcessPBs( diff --git a/server/src/score-import/framework/score-import-main.ts b/server/src/lib/score-import/framework/score-import-main.ts similarity index 95% rename from server/src/score-import/framework/score-import-main.ts rename to server/src/lib/score-import/framework/score-import-main.ts index 28c5842fe..ed8e07ba2 100644 --- a/server/src/score-import/framework/score-import-main.ts +++ b/server/src/lib/score-import/framework/score-import-main.ts @@ -8,14 +8,14 @@ import { integer, IDStrings, } from "kamaitachi-common"; -import { KtLogger } from "../../types"; +import { KtLogger } from "../../logger/logger"; import { ImportAllIterableData } from "./score-importing/score-importing"; import { CreateImportLoggerAndID } from "./common/import-logger"; import { CreateSessions } from "./sessions/sessions"; -import { GetMilisecondsSince } from "../../common/util"; +import { GetMilisecondsSince } from "../../../utils/misc"; import { ProcessPBs } from "./pb/process-pbs"; import { UpdateUsersGamePlaytypeStats } from "./user-game-stats/update-ugs"; -import db from "../../db/db"; +import db from "../../../external/mongo/db"; import { GetAndUpdateUsersGoals } from "./goals/goals"; import { UpdateUsersMilestones } from "./milestones/milestones"; import { ClassHandler } from "./user-game-stats/classes"; diff --git a/server/src/score-import/framework/score-importing/hydrate-score.test.ts b/server/src/lib/score-import/framework/score-importing/hydrate-score.test.ts similarity index 100% rename from server/src/score-import/framework/score-importing/hydrate-score.test.ts rename to server/src/lib/score-import/framework/score-importing/hydrate-score.test.ts diff --git a/server/src/score-import/framework/score-importing/hydrate-score.ts b/server/src/lib/score-import/framework/score-importing/hydrate-score.ts similarity index 94% rename from server/src/score-import/framework/score-importing/hydrate-score.ts rename to server/src/lib/score-import/framework/score-importing/hydrate-score.ts index 7a1efcf50..c80802c47 100644 --- a/server/src/score-import/framework/score-importing/hydrate-score.ts +++ b/server/src/lib/score-import/framework/score-importing/hydrate-score.ts @@ -5,7 +5,7 @@ import { ScoreDocument, AnySongDocument, } from "kamaitachi-common"; -import { KtLogger } from "../../../types"; +import { KtLogger } from "../../../logger/logger"; import { CreateCalculatedData } from "../calculated-data/calculated-data"; import { CalculateESDForGame } from "../common/score-utils"; import { DryScore } from "../common/types"; diff --git a/server/src/score-import/framework/score-importing/insert-score.test.ts b/server/src/lib/score-import/framework/score-importing/insert-score.test.ts similarity index 92% rename from server/src/score-import/framework/score-importing/insert-score.test.ts rename to server/src/lib/score-import/framework/score-importing/insert-score.test.ts index 5d12a74e5..910519ce6 100644 --- a/server/src/score-import/framework/score-importing/insert-score.test.ts +++ b/server/src/lib/score-import/framework/score-importing/insert-score.test.ts @@ -1,7 +1,7 @@ import { ScoreDocument } from "kamaitachi-common"; import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; import { InsertQueue, QueueScoreInsert } from "./insert-score"; // these two get the same tests, because they're too closely linked diff --git a/server/src/score-import/framework/score-importing/insert-score.ts b/server/src/lib/score-import/framework/score-importing/insert-score.ts similarity index 90% rename from server/src/score-import/framework/score-importing/insert-score.ts rename to server/src/lib/score-import/framework/score-importing/insert-score.ts index effd9ee9b..8c6502153 100644 --- a/server/src/score-import/framework/score-importing/insert-score.ts +++ b/server/src/lib/score-import/framework/score-importing/insert-score.ts @@ -1,6 +1,6 @@ import { ScoreDocument } from "kamaitachi-common"; -import db from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; +import db from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; const logger = CreateLogCtx(__filename); const ScoreQueue: ScoreDocument[] = []; diff --git a/server/src/score-import/framework/score-importing/score-id.test.ts b/server/src/lib/score-import/framework/score-importing/score-id.test.ts similarity index 89% rename from server/src/score-import/framework/score-importing/score-id.test.ts rename to server/src/lib/score-import/framework/score-importing/score-id.test.ts index 871ab69d0..7149e6e31 100644 --- a/server/src/score-import/framework/score-importing/score-id.test.ts +++ b/server/src/lib/score-import/framework/score-importing/score-id.test.ts @@ -1,8 +1,8 @@ import { ScoreDocument } from "kamaitachi-common"; import t from "tap"; -import { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { Testing511SPA, TestingIIDXSPDryScore } from "../../../test-utils/test-data"; +import { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { Testing511SPA, TestingIIDXSPDryScore } from "../../../../test-utils/test-data"; import { CreateScoreID, GetWithScoreID } from "./score-id"; t.beforeEach(ResetDBState); diff --git a/server/src/score-import/framework/score-importing/score-id.ts b/server/src/lib/score-import/framework/score-importing/score-id.ts similarity index 93% rename from server/src/score-import/framework/score-importing/score-id.ts rename to server/src/lib/score-import/framework/score-importing/score-id.ts index 1ee89cb5b..6ec102b1c 100644 --- a/server/src/score-import/framework/score-importing/score-id.ts +++ b/server/src/lib/score-import/framework/score-importing/score-id.ts @@ -1,5 +1,5 @@ import crypto from "crypto"; -import db from "../../../db/db"; +import db from "../../../../external/mongo/db"; import { integer } from "kamaitachi-common"; import { DryScore } from "../common/types"; diff --git a/server/src/score-import/framework/score-importing/score-import-error.test.ts b/server/src/lib/score-import/framework/score-importing/score-import-error.test.ts similarity index 100% rename from server/src/score-import/framework/score-importing/score-import-error.test.ts rename to server/src/lib/score-import/framework/score-importing/score-import-error.test.ts diff --git a/server/src/score-import/framework/score-importing/score-import-error.ts b/server/src/lib/score-import/framework/score-importing/score-import-error.ts similarity index 100% rename from server/src/score-import/framework/score-importing/score-import-error.ts rename to server/src/lib/score-import/framework/score-importing/score-import-error.ts diff --git a/server/src/score-import/framework/score-importing/score-importing.test.ts b/server/src/lib/score-import/framework/score-importing/score-importing.test.ts similarity index 100% rename from server/src/score-import/framework/score-importing/score-importing.test.ts rename to server/src/lib/score-import/framework/score-importing/score-importing.test.ts diff --git a/server/src/score-import/framework/score-importing/score-importing.ts b/server/src/lib/score-import/framework/score-importing/score-importing.ts similarity index 95% rename from server/src/score-import/framework/score-importing/score-importing.ts rename to server/src/lib/score-import/framework/score-importing/score-importing.ts index 71d494339..7229b750d 100644 --- a/server/src/score-import/framework/score-importing/score-importing.ts +++ b/server/src/lib/score-import/framework/score-importing/score-importing.ts @@ -16,9 +16,9 @@ import { SkipScoreFailure, } from "../common/converter-failures"; import { CreateScoreID } from "./score-id"; -import db from "../../../db/db"; -import { AppendLogCtx } from "../../../common/logger"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { AppendLogCtx, KtLogger } from "../../../logger/logger"; + import { ConverterFunctionReturns, ConverterFnReturn, diff --git a/server/src/score-import/framework/sessions/name-generation.test.ts b/server/src/lib/score-import/framework/sessions/name-generation.test.ts similarity index 100% rename from server/src/score-import/framework/sessions/name-generation.test.ts rename to server/src/lib/score-import/framework/sessions/name-generation.test.ts diff --git a/server/src/score-import/framework/sessions/name-generation.ts b/server/src/lib/score-import/framework/sessions/name-generation.ts similarity index 71% rename from server/src/score-import/framework/sessions/name-generation.ts rename to server/src/lib/score-import/framework/sessions/name-generation.ts index 9dbbdc52e..ab5304b83 100644 --- a/server/src/score-import/framework/sessions/name-generation.ts +++ b/server/src/lib/score-import/framework/sessions/name-generation.ts @@ -1,4 +1,4 @@ -import { GetRandomAdjective, GetRandomNoun } from "../../../data/words"; +import { GetRandomAdjective, GetRandomNoun } from "../../../../datasets/words"; export function GenerateRandomSessionName() { const adj1 = GetRandomAdjective(); diff --git a/server/src/score-import/framework/sessions/performance-calc.test.ts b/server/src/lib/score-import/framework/sessions/performance-calc.test.ts similarity index 100% rename from server/src/score-import/framework/sessions/performance-calc.test.ts rename to server/src/lib/score-import/framework/sessions/performance-calc.test.ts diff --git a/server/src/score-import/framework/sessions/performance-calc.ts b/server/src/lib/score-import/framework/sessions/performance-calc.ts similarity index 100% rename from server/src/score-import/framework/sessions/performance-calc.ts rename to server/src/lib/score-import/framework/sessions/performance-calc.ts diff --git a/server/src/score-import/framework/sessions/sessions.test.ts b/server/src/lib/score-import/framework/sessions/sessions.test.ts similarity index 100% rename from server/src/score-import/framework/sessions/sessions.test.ts rename to server/src/lib/score-import/framework/sessions/sessions.test.ts diff --git a/server/src/score-import/framework/sessions/sessions.ts b/server/src/lib/score-import/framework/sessions/sessions.ts similarity index 97% rename from server/src/score-import/framework/sessions/sessions.ts rename to server/src/lib/score-import/framework/sessions/sessions.ts index bdaa67f56..91d0571ae 100644 --- a/server/src/score-import/framework/sessions/sessions.ts +++ b/server/src/lib/score-import/framework/sessions/sessions.ts @@ -9,13 +9,13 @@ import { SessionInfoReturn, Game, } from "kamaitachi-common"; -import db from "../../../db/db"; -import { AppendLogCtx } from "../../../common/logger"; +import db from "../../../../external/mongo/db"; +import { AppendLogCtx, KtLogger } from "../../../logger/logger"; import { GenerateRandomSessionName } from "./name-generation"; import crypto from "crypto"; import { CreateSessionCalcData } from "./performance-calc"; -import { GetScoresFromSession } from "../../../common/session"; -import { KtLogger } from "../../../types"; +import { GetScoresFromSession } from "../../../../utils/session"; + import { ScorePlaytypeMap } from "../common/types"; const TWO_HOURS = 1000 * 60 * 60 * 2; diff --git a/server/src/score-import/framework/user-game-stats/builtin-class-handlers.test.ts b/server/src/lib/score-import/framework/user-game-stats/builtin-class-handlers.test.ts similarity index 100% rename from server/src/score-import/framework/user-game-stats/builtin-class-handlers.test.ts rename to server/src/lib/score-import/framework/user-game-stats/builtin-class-handlers.test.ts diff --git a/server/src/score-import/framework/user-game-stats/builtin-class-handlers.ts b/server/src/lib/score-import/framework/user-game-stats/builtin-class-handlers.ts similarity index 100% rename from server/src/score-import/framework/user-game-stats/builtin-class-handlers.ts rename to server/src/lib/score-import/framework/user-game-stats/builtin-class-handlers.ts diff --git a/server/src/score-import/framework/user-game-stats/classes.test.ts b/server/src/lib/score-import/framework/user-game-stats/classes.test.ts similarity index 94% rename from server/src/score-import/framework/user-game-stats/classes.test.ts rename to server/src/lib/score-import/framework/user-game-stats/classes.test.ts index b03d4fd48..ccda4f8e7 100644 --- a/server/src/score-import/framework/user-game-stats/classes.test.ts +++ b/server/src/lib/score-import/framework/user-game-stats/classes.test.ts @@ -1,8 +1,8 @@ import { UserGameStats } from "kamaitachi-common"; import t from "tap"; -import { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import ResetDBState from "../../../test-utils/reset-db-state"; +import { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import ResetDBState from "../../../../test-utils/reset-db-state"; import { CalculateClassDeltas, UpdateUGSClasses } from "./classes"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/user-game-stats/classes.ts b/server/src/lib/score-import/framework/user-game-stats/classes.ts similarity index 98% rename from server/src/score-import/framework/user-game-stats/classes.ts rename to server/src/lib/score-import/framework/user-game-stats/classes.ts index 52252f4e5..8007c08ce 100644 --- a/server/src/score-import/framework/user-game-stats/classes.ts +++ b/server/src/lib/score-import/framework/user-game-stats/classes.ts @@ -1,9 +1,9 @@ import { Game, Playtypes, integer, UserGameStats, ClassDelta } from "kamaitachi-common"; import { gameClassValues } from "kamaitachi-common/js/game-classes"; import deepmerge from "deepmerge"; -import { KtLogger } from "../../../types"; +import { KtLogger } from "../../../logger/logger"; import { CalculateGitadoraColour, CalculateJubeatColour } from "./builtin-class-handlers"; -import { ReturnClassIfGreater } from "../../../common/class"; +import { ReturnClassIfGreater } from "../../../../utils/class"; export interface ClassHandler { ( diff --git a/server/src/score-import/framework/user-game-stats/rating.test.ts b/server/src/lib/score-import/framework/user-game-stats/rating.test.ts similarity index 94% rename from server/src/score-import/framework/user-game-stats/rating.test.ts rename to server/src/lib/score-import/framework/user-game-stats/rating.test.ts index 129e1e909..44e4db545 100644 --- a/server/src/score-import/framework/user-game-stats/rating.test.ts +++ b/server/src/lib/score-import/framework/user-game-stats/rating.test.ts @@ -1,10 +1,10 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { TestingIIDXSPScorePB } from "../../../test-utils/test-data"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { TestingIIDXSPScorePB } from "../../../../test-utils/test-data"; import { CalculateCustomRatings, CalculateRatings } from "./rating"; import deepmerge from "deepmerge"; -import CreateLogCtx from "../../../common/logger"; +import CreateLogCtx from "../../../logger/logger"; import crypto from "crypto"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/user-game-stats/rating.ts b/server/src/lib/score-import/framework/user-game-stats/rating.ts similarity index 98% rename from server/src/score-import/framework/user-game-stats/rating.ts rename to server/src/lib/score-import/framework/user-game-stats/rating.ts index 2a1788853..2c198cb5d 100644 --- a/server/src/score-import/framework/user-game-stats/rating.ts +++ b/server/src/lib/score-import/framework/user-game-stats/rating.ts @@ -1,6 +1,6 @@ import { Game, Playtypes, integer, GameSpecificCalcLookup, IDStrings } from "kamaitachi-common"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; export async function CalculateRatings( game: Game, diff --git a/server/src/score-import/framework/user-game-stats/update-ugs.test.ts b/server/src/lib/score-import/framework/user-game-stats/update-ugs.test.ts similarity index 95% rename from server/src/score-import/framework/user-game-stats/update-ugs.test.ts rename to server/src/lib/score-import/framework/user-game-stats/update-ugs.test.ts index d88fc0898..f93af4b82 100644 --- a/server/src/score-import/framework/user-game-stats/update-ugs.test.ts +++ b/server/src/lib/score-import/framework/user-game-stats/update-ugs.test.ts @@ -1,12 +1,12 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import CreateLogCtx from "../../../common/logger"; -import ResetDBState from "../../../test-utils/reset-db-state"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../logger/logger"; +import ResetDBState from "../../../../test-utils/reset-db-state"; import { UpdateUsersGamePlaytypeStats } from "./update-ugs"; import deepmerge from "deepmerge"; import crypto from "crypto"; -import { TestingIIDXSPScorePB } from "../../../test-utils/test-data"; +import { TestingIIDXSPScorePB } from "../../../../test-utils/test-data"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/framework/user-game-stats/update-ugs.ts b/server/src/lib/score-import/framework/user-game-stats/update-ugs.ts similarity index 95% rename from server/src/score-import/framework/user-game-stats/update-ugs.ts rename to server/src/lib/score-import/framework/user-game-stats/update-ugs.ts index 4da325ff4..6c1ae851d 100644 --- a/server/src/score-import/framework/user-game-stats/update-ugs.ts +++ b/server/src/lib/score-import/framework/user-game-stats/update-ugs.ts @@ -3,8 +3,8 @@ // That's about all there is to it! import { Game, Playtypes, integer, UserGameStats, ClassDelta } from "kamaitachi-common"; -import db from "../../../db/db"; -import { KtLogger } from "../../../types"; +import db from "../../../../external/mongo/db"; +import { KtLogger } from "../../../logger/logger"; import { CalculateClassDeltas, UpdateUGSClasses, ClassHandler } from "./classes"; import { CalculateRatings, CalculateCustomRatings } from "./rating"; diff --git a/server/src/score-import/import-types/DOCUMENTATION b/server/src/lib/score-import/import-types/DOCUMENTATION similarity index 100% rename from server/src/score-import/import-types/DOCUMENTATION rename to server/src/lib/score-import/import-types/DOCUMENTATION diff --git a/server/src/score-import/import-types/api/eag-iidx/parser.ts b/server/src/lib/score-import/import-types/api/eag-iidx/parser.ts similarity index 81% rename from server/src/score-import/import-types/api/eag-iidx/parser.ts rename to server/src/lib/score-import/import-types/api/eag-iidx/parser.ts index 6c047b4d8..1ad5240a7 100644 --- a/server/src/score-import/import-types/api/eag-iidx/parser.ts +++ b/server/src/lib/score-import/import-types/api/eag-iidx/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { ParseKaiIIDX } from "../../common/api-kai/iidx/parser"; import { KaiAuthDocument } from "kamaitachi-common"; diff --git a/server/src/score-import/import-types/api/eag-sdvx/parser.ts b/server/src/lib/score-import/import-types/api/eag-sdvx/parser.ts similarity index 81% rename from server/src/score-import/import-types/api/eag-sdvx/parser.ts rename to server/src/lib/score-import/import-types/api/eag-sdvx/parser.ts index 0ea40eca3..95c011688 100644 --- a/server/src/score-import/import-types/api/eag-sdvx/parser.ts +++ b/server/src/lib/score-import/import-types/api/eag-sdvx/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { KaiAuthDocument } from "kamaitachi-common"; import { ParseKaiSDVX } from "../../common/api-kai/sdvx/parser"; diff --git a/server/src/score-import/import-types/api/flo-iidx/parser.ts b/server/src/lib/score-import/import-types/api/flo-iidx/parser.ts similarity index 81% rename from server/src/score-import/import-types/api/flo-iidx/parser.ts rename to server/src/lib/score-import/import-types/api/flo-iidx/parser.ts index 444d7f936..65c5560b7 100644 --- a/server/src/score-import/import-types/api/flo-iidx/parser.ts +++ b/server/src/lib/score-import/import-types/api/flo-iidx/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { ParseKaiIIDX } from "../../common/api-kai/iidx/parser"; import { KaiAuthDocument } from "kamaitachi-common"; diff --git a/server/src/score-import/import-types/api/flo-sdvx/parser.ts b/server/src/lib/score-import/import-types/api/flo-sdvx/parser.ts similarity index 81% rename from server/src/score-import/import-types/api/flo-sdvx/parser.ts rename to server/src/lib/score-import/import-types/api/flo-sdvx/parser.ts index f5e5e7e36..3be7d3dec 100644 --- a/server/src/score-import/import-types/api/flo-sdvx/parser.ts +++ b/server/src/lib/score-import/import-types/api/flo-sdvx/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { KaiAuthDocument } from "kamaitachi-common"; import { ParseKaiSDVX } from "../../common/api-kai/sdvx/parser"; diff --git a/server/src/score-import/import-types/common/api-kai/iidx/converter.ts b/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.ts similarity index 93% rename from server/src/score-import/import-types/common/api-kai/iidx/converter.ts rename to server/src/lib/score-import/import-types/common/api-kai/iidx/converter.ts index cf8b428a7..32b74415f 100644 --- a/server/src/score-import/import-types/common/api-kai/iidx/converter.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/iidx/converter.ts @@ -1,4 +1,4 @@ -import { FindIIDXChartOnInGameIDVersion } from "../../../../../common/database-lookup/chart"; +import { FindIIDXChartOnInGameIDVersion } from "../../../../../../utils/queries/charts"; import { KaiContext, KaiIIDXScore } from "../types"; import p from "prudence"; import { @@ -6,8 +6,8 @@ import { InvalidScoreFailure, KTDataNotFoundFailure, } from "../../../../framework/common/converter-failures"; -import { FormatPrError } from "../../../../../common/prudence"; -import { FindSongOnID } from "../../../../../common/database-lookup/song"; +import { FormatPrError } from "../../../../../../utils/prudence"; +import { FindSongOnID } from "../../../../../../utils/queries/songs"; import { GenericGetGradeAndPercent, ParseDateFromString, diff --git a/server/src/score-import/import-types/common/api-kai/iidx/parser.ts b/server/src/lib/score-import/import-types/common/api-kai/iidx/parser.ts similarity index 80% rename from server/src/score-import/import-types/common/api-kai/iidx/parser.ts rename to server/src/lib/score-import/import-types/common/api-kai/iidx/parser.ts index eb9082664..0de4ad4ee 100644 --- a/server/src/score-import/import-types/common/api-kai/iidx/parser.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/iidx/parser.ts @@ -1,8 +1,8 @@ -import { KtLogger } from "../../../../../types"; -import nodeFetch from "../../../../../common/fetch"; +import { KtLogger } from "../../../../../logger/logger"; +import nodeFetch from "../../../../../../utils/fetch"; import { KaiAuthDocument } from "kamaitachi-common"; import { KaiContext } from "../types"; -import { EAG_API_URL, FLO_API_URL } from "../../../../../secrets"; +import { EAG_API_URL, FLO_API_URL } from "../../../../../../secrets"; import { ConvertAPIKaiIIDX } from "./converter"; import { TraverseKaiAPI } from "../traverse-api"; import { ParserFunctionReturnsAsync } from "../../types"; diff --git a/server/src/score-import/import-types/common/api-kai/sdvx/converter.ts b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts similarity index 94% rename from server/src/score-import/import-types/common/api-kai/sdvx/converter.ts rename to server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts index a0cab7faa..60ba9e36d 100644 --- a/server/src/score-import/import-types/common/api-kai/sdvx/converter.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/sdvx/converter.ts @@ -1,4 +1,4 @@ -import { FindSDVXChartOnInGameIDVersion } from "../../../../../common/database-lookup/chart"; +import { FindSDVXChartOnInGameIDVersion } from "../../../../../../utils/queries/charts"; import { KaiContext, KaiSDVXScore } from "../types"; import p from "prudence"; import { @@ -6,8 +6,8 @@ import { InvalidScoreFailure, KTDataNotFoundFailure, } from "../../../../framework/common/converter-failures"; -import { FormatPrError } from "../../../../../common/prudence"; -import { FindSongOnID } from "../../../../../common/database-lookup/song"; +import { FormatPrError } from "../../../../../../utils/prudence"; +import { FindSongOnID } from "../../../../../../utils/queries/songs"; import { GenericGetGradeAndPercent, ParseDateFromString, diff --git a/server/src/score-import/import-types/common/api-kai/sdvx/parser.ts b/server/src/lib/score-import/import-types/common/api-kai/sdvx/parser.ts similarity index 80% rename from server/src/score-import/import-types/common/api-kai/sdvx/parser.ts rename to server/src/lib/score-import/import-types/common/api-kai/sdvx/parser.ts index cf52809d2..fe2fa2f66 100644 --- a/server/src/score-import/import-types/common/api-kai/sdvx/parser.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/sdvx/parser.ts @@ -1,8 +1,8 @@ -import { KtLogger } from "../../../../../types"; -import nodeFetch from "../../../../../common/fetch"; +import { KtLogger } from "../../../../../logger/logger"; +import nodeFetch from "../../../../../../utils/fetch"; import { KaiAuthDocument } from "kamaitachi-common"; import { KaiContext } from "../types"; -import { EAG_API_URL, FLO_API_URL } from "../../../../../secrets"; +import { EAG_API_URL, FLO_API_URL } from "../../../../../../secrets"; import { ConvertAPIKaiSDVX } from "./converter"; import { TraverseKaiAPI } from "../traverse-api"; import { ParserFunctionReturnsAsync } from "../../types"; diff --git a/server/src/score-import/import-types/common/api-kai/traverse-api.ts b/server/src/lib/score-import/import-types/common/api-kai/traverse-api.ts similarity index 96% rename from server/src/score-import/import-types/common/api-kai/traverse-api.ts rename to server/src/lib/score-import/import-types/common/api-kai/traverse-api.ts index e5a33ae9b..720da769a 100644 --- a/server/src/score-import/import-types/common/api-kai/traverse-api.ts +++ b/server/src/lib/score-import/import-types/common/api-kai/traverse-api.ts @@ -1,6 +1,6 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; -import nodeFetch from "../../../../common/fetch"; +import nodeFetch from "../../../../../utils/fetch"; import { KaiAuthDocument } from "kamaitachi-common"; /** diff --git a/server/src/score-import/import-types/common/api-kai/types.ts b/server/src/lib/score-import/import-types/common/api-kai/types.ts similarity index 100% rename from server/src/score-import/import-types/common/api-kai/types.ts rename to server/src/lib/score-import/import-types/common/api-kai/types.ts diff --git a/server/src/score-import/import-types/common/batch-manual/converter.test.ts b/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts similarity index 97% rename from server/src/score-import/import-types/common/batch-manual/converter.test.ts rename to server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts index 5f7a60040..5ef8e4168 100644 --- a/server/src/score-import/import-types/common/batch-manual/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/batch-manual/converter.test.ts @@ -1,13 +1,13 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import CreateLogCtx from "../../../../common/logger"; -import { GetKTDataJSON, Testing511Song, Testing511SPA } from "../../../../test-utils/test-data"; +import CreateLogCtx from "../../../../logger/logger"; +import { GetKTDataJSON, Testing511Song, Testing511SPA } from "../../../../../test-utils/test-data"; import { ResolveChartFromSong, ResolveMatchTypeToKTData, ConverterBatchManual } from "./converter"; import deepmerge from "deepmerge"; -import { EscapeStringRegexp } from "../../../../common/util"; -import db, { CloseMongoConnection } from "../../../../db/db"; +import { EscapeStringRegexp } from "../../../../../utils/misc"; +import db, { CloseMongoConnection } from "../../../../../external/mongo/db"; import { Game } from "kamaitachi-common"; -import ResetDBState from "../../../../test-utils/reset-db-state"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; import { InvalidScoreFailure } from "../../../framework/common/converter-failures"; const baseBatchManualScore = { diff --git a/server/src/score-import/import-types/common/batch-manual/converter.ts b/server/src/lib/score-import/import-types/common/batch-manual/converter.ts similarity index 96% rename from server/src/score-import/import-types/common/batch-manual/converter.ts rename to server/src/lib/score-import/import-types/common/batch-manual/converter.ts index d374e778c..d0e330240 100644 --- a/server/src/score-import/import-types/common/batch-manual/converter.ts +++ b/server/src/lib/score-import/import-types/common/batch-manual/converter.ts @@ -1,23 +1,23 @@ -import { BatchManualContext, BatchManualScore } from "../../common/batch-manual/types"; +import { BatchManualContext, BatchManualScore } from "./types"; import { AnyChartDocument, AnySongDocument, ImportTypes } from "kamaitachi-common"; import { InternalFailure, InvalidScoreFailure, KTDataNotFoundFailure, } from "../../../framework/common/converter-failures"; -import { FindSongOnID, FindSongOnTitleInsensitive } from "../../../../common/database-lookup/song"; +import { FindSongOnID, FindSongOnTitleInsensitive } from "../../../../../utils/queries/songs"; import { FindBMSChartOnHash, FindChartWithPTDF, FindChartWithPTDFVersion, FindDDRChartOnSongHash, -} from "../../../../common/database-lookup/chart"; +} from "../../../../../utils/queries/charts"; import { AssertStrAsDifficulty, AssertStrAsPositiveInt, } from "../../../framework/common/string-asserts"; import { GenericGetGradeAndPercent } from "../../../framework/common/score-utils"; -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { DryScore } from "../../../framework/common/types"; import { ConverterFunction, ConverterFnReturn } from "../types"; diff --git a/server/src/score-import/import-types/common/batch-manual/parser.test.ts b/server/src/lib/score-import/import-types/common/batch-manual/parser.test.ts similarity index 98% rename from server/src/score-import/import-types/common/batch-manual/parser.test.ts rename to server/src/lib/score-import/import-types/common/batch-manual/parser.test.ts index d52f23fd3..1b206a087 100644 --- a/server/src/score-import/import-types/common/batch-manual/parser.test.ts +++ b/server/src/lib/score-import/import-types/common/batch-manual/parser.test.ts @@ -1,10 +1,10 @@ import t from "tap"; -import { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; +import { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { ParseBatchManualFromObject as ParserFn } from "./parser"; import { BatchManual } from "./types"; -import { EscapeStringRegexp } from "../../../../common/util"; +import { EscapeStringRegexp } from "../../../../../utils/misc"; import deepmerge from "deepmerge"; const mockErr = (...msg: string[]) => diff --git a/server/src/score-import/import-types/common/batch-manual/parser.ts b/server/src/lib/score-import/import-types/common/batch-manual/parser.ts similarity index 98% rename from server/src/score-import/import-types/common/batch-manual/parser.ts rename to server/src/lib/score-import/import-types/common/batch-manual/parser.ts index e4f7d2f0f..080a0a0b0 100644 --- a/server/src/score-import/import-types/common/batch-manual/parser.ts +++ b/server/src/lib/score-import/import-types/common/batch-manual/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { BatchManual, BatchManualContext, BatchManualScore } from "./types"; import p, { PrudenceSchema, ValidSchemaValue } from "prudence"; @@ -6,7 +6,7 @@ import { lamps, supportedGames, validHitData, validPlaytypes } from "kamaitachi- import { Game, ImportTypes } from "kamaitachi-common"; import { ConverterBatchManual } from "./converter"; import deepmerge from "deepmerge"; -import { FormatPrError } from "../../../../common/prudence"; +import { FormatPrError } from "../../../../../utils/prudence"; import { ParserFunctionReturnsSync } from "../types"; const optNull = (v: ValidSchemaValue) => p.optional(p.nullable(v)); diff --git a/server/src/score-import/import-types/common/batch-manual/types.ts b/server/src/lib/score-import/import-types/common/batch-manual/types.ts similarity index 100% rename from server/src/score-import/import-types/common/batch-manual/types.ts rename to server/src/lib/score-import/import-types/common/batch-manual/types.ts diff --git a/server/src/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts similarity index 97% rename from server/src/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts rename to server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts index fb9025140..ee4d4af84 100644 --- a/server/src/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts +++ b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.test.ts @@ -1,10 +1,10 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import ResetDBState from "../../../../test-utils/reset-db-state"; +import db, { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; import ConverterFn, { EamScoreConverter, EamScoreConverterWrapper } from "./converter"; import p from "prudence"; -import { prAssert } from "../../../../test-utils/asserts"; +import { prAssert } from "../../../../../test-utils/asserts"; import deepmerge from "deepmerge"; import { EamusementScoreData } from "./types"; import { diff --git a/server/src/score-import/import-types/common/eamusement-iidx-csv/converter.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.ts similarity index 94% rename from server/src/score-import/import-types/common/eamusement-iidx-csv/converter.ts rename to server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.ts index ec733952a..f3620966c 100644 --- a/server/src/score-import/import-types/common/eamusement-iidx-csv/converter.ts +++ b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/converter.ts @@ -1,6 +1,6 @@ import { Lamps, AnySongDocument, ChartDocument } from "kamaitachi-common"; -import { FindChartWithPTDFVersion } from "../../../../common/database-lookup/chart"; -import { FindSongOnTitleInsensitive } from "../../../../common/database-lookup/song"; +import { FindChartWithPTDFVersion } from "../../../../../utils/queries/charts"; +import { FindSongOnTitleInsensitive } from "../../../../../utils/queries/songs"; import { KTDataNotFoundFailure, InternalFailure, @@ -10,7 +10,7 @@ import ScoreImportFatalError from "../../../framework/score-importing/score-impo import { GetGradeFromPercent } from "../../../framework/common/score-utils"; import { AssertStrAsPositiveInt } from "../../../framework/common/string-asserts"; import { EamusementScoreData, IIDXEamusementCSVContext, IIDXEamusementCSVData } from "./types"; -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { DryScore } from "../../../framework/common/types"; import { ConverterFunction, ConverterFnReturn } from "../types"; diff --git a/server/src/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts similarity index 97% rename from server/src/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts rename to server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts index 47df2fff0..f6a75f618 100644 --- a/server/src/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts +++ b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.test.ts @@ -1,13 +1,13 @@ import t from "tap"; -import CreateLogCtx from "../../../../common/logger"; +import CreateLogCtx from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import GenericParseEamIIDXCSV, { NaiveCSVParse, ResolveHeaders } from "./parser"; -import { CloseMongoConnection } from "../../../../db/db"; +import { CloseMongoConnection } from "../../../../../external/mongo/db"; import { TestingIIDXEamusementCSV26, TestingIIDXEamusementCSV27, -} from "../../../../test-utils/test-data"; -import { MockMulterFile } from "../../../../test-utils/mock-multer"; +} from "../../../../../test-utils/test-data"; +import { MockMulterFile } from "../../../../../test-utils/mock-multer"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/import-types/common/eamusement-iidx-csv/parser.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.ts similarity index 95% rename from server/src/score-import/import-types/common/eamusement-iidx-csv/parser.ts rename to server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.ts index f0e8ee0c4..958e2dc32 100644 --- a/server/src/score-import/import-types/common/eamusement-iidx-csv/parser.ts +++ b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/parser.ts @@ -1,5 +1,5 @@ import { Difficulties } from "kamaitachi-common"; -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { ParserFunctionReturnsSync } from "../types"; import ConverterFn from "./converter"; diff --git a/server/src/score-import/import-types/common/eamusement-iidx-csv/types.ts b/server/src/lib/score-import/import-types/common/eamusement-iidx-csv/types.ts similarity index 100% rename from server/src/score-import/import-types/common/eamusement-iidx-csv/types.ts rename to server/src/lib/score-import/import-types/common/eamusement-iidx-csv/types.ts diff --git a/server/src/score-import/import-types/common/types.ts b/server/src/lib/score-import/import-types/common/types.ts similarity index 97% rename from server/src/score-import/import-types/common/types.ts rename to server/src/lib/score-import/import-types/common/types.ts index 6b7f4c3a5..9464a6173 100644 --- a/server/src/score-import/import-types/common/types.ts +++ b/server/src/lib/score-import/import-types/common/types.ts @@ -1,4 +1,5 @@ -import { EmptyObject, KtLogger } from "../../../types"; +import { EmptyObject } from "../../../../utils/types"; +import { KtLogger } from "../../../logger/logger"; import { MerScore } from "../file/mer-iidx/types"; import { S3Score } from "../file/solid-state-squad/types"; import { BarbatosScore } from "../ir/barbatos/types"; diff --git a/server/src/score-import/import-types/file/batch-manual/parser.ts b/server/src/lib/score-import/import-types/file/batch-manual/parser.ts similarity index 95% rename from server/src/score-import/import-types/file/batch-manual/parser.ts rename to server/src/lib/score-import/import-types/file/batch-manual/parser.ts index b1cecfba1..5778c5dac 100644 --- a/server/src/score-import/import-types/file/batch-manual/parser.ts +++ b/server/src/lib/score-import/import-types/file/batch-manual/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { ParseBatchManualFromObject } from "../../common/batch-manual/parser"; import { BatchManualContext, BatchManualScore } from "../../common/batch-manual/types"; diff --git a/server/src/score-import/import-types/file/eamusement-iidx-csv/parser.ts b/server/src/lib/score-import/import-types/file/eamusement-iidx-csv/parser.ts similarity index 89% rename from server/src/score-import/import-types/file/eamusement-iidx-csv/parser.ts rename to server/src/lib/score-import/import-types/file/eamusement-iidx-csv/parser.ts index a2885f82f..f33e2c64d 100644 --- a/server/src/score-import/import-types/file/eamusement-iidx-csv/parser.ts +++ b/server/src/lib/score-import/import-types/file/eamusement-iidx-csv/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import GenericParseEamIIDXCSV from "../../common/eamusement-iidx-csv/parser"; import { IIDXEamusementCSVContext, diff --git a/server/src/score-import/import-types/file/mer-iidx/converter.test.ts b/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts similarity index 93% rename from server/src/score-import/import-types/file/mer-iidx/converter.test.ts rename to server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts index f0b7155a8..aadb40a63 100644 --- a/server/src/score-import/import-types/file/mer-iidx/converter.test.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/converter.test.ts @@ -1,14 +1,14 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import db, { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import ResetDBState from "../../../../test-utils/reset-db-state"; +import db, { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; import { GetKTDataJSON, LoadKTBlackIIDXData, Testing511Song, Testing511SPA, -} from "../../../../test-utils/test-data"; +} from "../../../../../test-utils/test-data"; import { ConvertFileMerIIDX } from "./converter"; import deepmerge from "deepmerge"; import { MerScore } from "./types"; diff --git a/server/src/score-import/import-types/file/mer-iidx/converter.ts b/server/src/lib/score-import/import-types/file/mer-iidx/converter.ts similarity index 91% rename from server/src/score-import/import-types/file/mer-iidx/converter.ts rename to server/src/lib/score-import/import-types/file/mer-iidx/converter.ts index 1ef2421c5..07be7c467 100644 --- a/server/src/score-import/import-types/file/mer-iidx/converter.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/converter.ts @@ -1,6 +1,6 @@ -import { FindIIDXChartOnInGameID } from "../../../../common/database-lookup/chart"; -import { FindSongOnID } from "../../../../common/database-lookup/song"; -import { EmptyObject } from "../../../../types"; +import { FindIIDXChartOnInGameID } from "../../../../../utils/queries/charts"; +import { FindSongOnID } from "../../../../../utils/queries/songs"; +import { EmptyObject } from "../../../../../utils/types"; import { InternalFailure, KTDataNotFoundFailure, diff --git a/server/src/score-import/import-types/file/mer-iidx/parser.test.ts b/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts similarity index 92% rename from server/src/score-import/import-types/file/mer-iidx/parser.test.ts rename to server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts index bb0473ecb..4ce4ebbdd 100644 --- a/server/src/score-import/import-types/file/mer-iidx/parser.test.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/parser.test.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import { MockMulterFile } from "../../../../test-utils/mock-multer"; -import ResetDBState from "../../../../test-utils/reset-db-state"; -import { GetKTDataBuffer, GetKTDataJSON } from "../../../../test-utils/test-data"; +import { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import { MockMulterFile } from "../../../../../test-utils/mock-multer"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; +import { GetKTDataBuffer, GetKTDataJSON } from "../../../../../test-utils/test-data"; import { ParseMerIIDX } from "./parser"; import deepmerge from "deepmerge"; diff --git a/server/src/score-import/import-types/file/mer-iidx/parser.ts b/server/src/lib/score-import/import-types/file/mer-iidx/parser.ts similarity index 91% rename from server/src/score-import/import-types/file/mer-iidx/parser.ts rename to server/src/lib/score-import/import-types/file/mer-iidx/parser.ts index a5dab9cba..20dbc146e 100644 --- a/server/src/score-import/import-types/file/mer-iidx/parser.ts +++ b/server/src/lib/score-import/import-types/file/mer-iidx/parser.ts @@ -1,6 +1,7 @@ import p from "prudence"; -import { FormatPrError } from "../../../../common/prudence"; -import { EmptyObject, KtLogger } from "../../../../types"; +import { FormatPrError } from "../../../../../utils/prudence"; +import { EmptyObject } from "../../../../../utils/types"; +import { KtLogger } from "../../../../logger/logger"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import { ParserFunctionReturnsSync } from "../../common/types"; import { ConvertFileMerIIDX } from "./converter"; diff --git a/server/src/score-import/import-types/file/mer-iidx/types.ts b/server/src/lib/score-import/import-types/file/mer-iidx/types.ts similarity index 100% rename from server/src/score-import/import-types/file/mer-iidx/types.ts rename to server/src/lib/score-import/import-types/file/mer-iidx/types.ts diff --git a/server/src/score-import/import-types/file/pli-iidx-csv/parser.ts b/server/src/lib/score-import/import-types/file/pli-iidx-csv/parser.ts similarity index 88% rename from server/src/score-import/import-types/file/pli-iidx-csv/parser.ts rename to server/src/lib/score-import/import-types/file/pli-iidx-csv/parser.ts index 2a6b1869c..354e6e053 100644 --- a/server/src/score-import/import-types/file/pli-iidx-csv/parser.ts +++ b/server/src/lib/score-import/import-types/file/pli-iidx-csv/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import GenericParseEamIIDXCSV from "../../common/eamusement-iidx-csv/parser"; import { IIDXEamusementCSVContext, diff --git a/server/src/score-import/import-types/file/solid-state-squad/converter.test.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts similarity index 96% rename from server/src/score-import/import-types/file/solid-state-squad/converter.test.ts rename to server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts index 6e06bf3bb..d6ad59207 100644 --- a/server/src/score-import/import-types/file/solid-state-squad/converter.test.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.test.ts @@ -1,14 +1,14 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import ResetDBState from "../../../../test-utils/reset-db-state"; +import { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; import { GetKTDataJSON, LoadKTBlackIIDXData, Testing511Song, Testing511SPA, -} from "../../../../test-utils/test-data"; +} from "../../../../../test-utils/test-data"; import { ConvertFileS3, ParseDifficulty, ResolveS3Lamp } from "./converter"; import { S3Score } from "./types"; import deepmerge from "deepmerge"; diff --git a/server/src/score-import/import-types/file/solid-state-squad/converter.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.ts similarity index 94% rename from server/src/score-import/import-types/file/solid-state-squad/converter.ts rename to server/src/lib/score-import/import-types/file/solid-state-squad/converter.ts index aba903e4a..0d307bfda 100644 --- a/server/src/score-import/import-types/file/solid-state-squad/converter.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/converter.ts @@ -1,4 +1,5 @@ -import { EmptyObject, KtLogger } from "../../../../types"; +import { EmptyObject } from "../../../../../utils/types"; +import { KtLogger } from "../../../../logger/logger"; import { InvalidScoreFailure, KTDataNotFoundFailure, @@ -6,8 +7,8 @@ import { } from "../../../framework/common/converter-failures"; import { S3Score } from "./types"; import { Playtypes, Difficulties, Grades, Lamps } from "kamaitachi-common"; -import { FindSongOnTitleInsensitive } from "../../../../common/database-lookup/song"; -import { FindChartWithPTDFVersion } from "../../../../common/database-lookup/chart"; +import { FindSongOnTitleInsensitive } from "../../../../../utils/queries/songs"; +import { FindChartWithPTDFVersion } from "../../../../../utils/queries/charts"; import { GenericGetGradeAndPercent, ParseDateFromString, diff --git a/server/src/score-import/import-types/file/solid-state-squad/parser.test.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts similarity index 94% rename from server/src/score-import/import-types/file/solid-state-squad/parser.test.ts rename to server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts index 17380b438..d038b973a 100644 --- a/server/src/score-import/import-types/file/solid-state-squad/parser.test.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.test.ts @@ -1,11 +1,11 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import { GetMilisecondsSince } from "../../../../common/util"; -import { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import { MockMulterFile } from "../../../../test-utils/mock-multer"; -import ResetDBState from "../../../../test-utils/reset-db-state"; -import { GetKTDataBuffer } from "../../../../test-utils/test-data"; +import { GetMilisecondsSince } from "../../../../../utils/misc"; +import { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import { MockMulterFile } from "../../../../../test-utils/mock-multer"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; +import { GetKTDataBuffer } from "../../../../../test-utils/test-data"; import { ParseSolidStateXML } from "./parser"; const logger = CreateLogCtx(__filename); diff --git a/server/src/score-import/import-types/file/solid-state-squad/parser.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.ts similarity index 95% rename from server/src/score-import/import-types/file/solid-state-squad/parser.ts rename to server/src/lib/score-import/import-types/file/solid-state-squad/parser.ts index d773552e3..612458e09 100644 --- a/server/src/score-import/import-types/file/solid-state-squad/parser.ts +++ b/server/src/lib/score-import/import-types/file/solid-state-squad/parser.ts @@ -1,8 +1,8 @@ import { parse as FastParseXML } from "fast-xml-parser"; -import { EmptyObject, KtLogger } from "../../../../types"; +import { EmptyObject, KtLogger } from "../../../../../utils/types"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; import p, { PrudenceSchema } from "prudence"; -import { FormatPrError } from "../../../../common/prudence"; +import { FormatPrError } from "../../../../../utils/prudence"; import { S3Score } from "./types"; import { ConvertFileS3 } from "./converter"; import { ParserFunctionReturnsSync } from "../../common/types"; diff --git a/server/src/score-import/import-types/file/solid-state-squad/types.ts b/server/src/lib/score-import/import-types/file/solid-state-squad/types.ts similarity index 100% rename from server/src/score-import/import-types/file/solid-state-squad/types.ts rename to server/src/lib/score-import/import-types/file/solid-state-squad/types.ts diff --git a/server/src/score-import/import-types/ir/barbatos/converter.ts b/server/src/lib/score-import/import-types/ir/barbatos/converter.ts similarity index 92% rename from server/src/score-import/import-types/ir/barbatos/converter.ts rename to server/src/lib/score-import/import-types/ir/barbatos/converter.ts index e0f27997c..981198327 100644 --- a/server/src/score-import/import-types/ir/barbatos/converter.ts +++ b/server/src/lib/score-import/import-types/ir/barbatos/converter.ts @@ -1,6 +1,6 @@ -import { FindSDVXChartOnInGameID } from "../../../../common/database-lookup/chart"; -import { FindSongOnID } from "../../../../common/database-lookup/song"; -import { EmptyObject } from "../../../../types"; +import { FindSDVXChartOnInGameID } from "../../../../../utils/queries/charts"; +import { FindSongOnID } from "../../../../../utils/queries/songs"; +import { EmptyObject } from "../../../../../utils/types"; import { GenericGetGradeAndPercent } from "../../../framework/common/score-utils"; import { InternalFailure, diff --git a/server/src/score-import/import-types/ir/barbatos/parser.ts b/server/src/lib/score-import/import-types/ir/barbatos/parser.ts similarity index 88% rename from server/src/score-import/import-types/ir/barbatos/parser.ts rename to server/src/lib/score-import/import-types/ir/barbatos/parser.ts index be7cd248a..a63db8ac1 100644 --- a/server/src/score-import/import-types/ir/barbatos/parser.ts +++ b/server/src/lib/score-import/import-types/ir/barbatos/parser.ts @@ -1,7 +1,8 @@ -import { EmptyObject, KtLogger } from "../../../../types"; +import { EmptyObject } from "../../../../../utils/types"; +import { KtLogger } from "../../../../logger/logger"; import p from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; -import { FormatPrError } from "../../../../common/prudence"; +import { FormatPrError } from "../../../../../utils/prudence"; import { BarbatosScore } from "./types"; import { ConverterIRBarbatos } from "./converter"; import { ParserFunctionReturnsSync } from "../../common/types"; diff --git a/server/src/score-import/import-types/ir/barbatos/types.ts b/server/src/lib/score-import/import-types/ir/barbatos/types.ts similarity index 100% rename from server/src/score-import/import-types/ir/barbatos/types.ts rename to server/src/lib/score-import/import-types/ir/barbatos/types.ts diff --git a/server/src/score-import/import-types/ir/direct-manual/parser.ts b/server/src/lib/score-import/import-types/ir/direct-manual/parser.ts similarity index 92% rename from server/src/score-import/import-types/ir/direct-manual/parser.ts rename to server/src/lib/score-import/import-types/ir/direct-manual/parser.ts index 99029af7f..d15bc7c83 100644 --- a/server/src/score-import/import-types/ir/direct-manual/parser.ts +++ b/server/src/lib/score-import/import-types/ir/direct-manual/parser.ts @@ -1,4 +1,4 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { ParseBatchManualFromObject } from "../../common/batch-manual/parser"; import { BatchManualContext, BatchManualScore } from "../../common/batch-manual/types"; import { ParserFunctionReturnsSync } from "../../common/types"; diff --git a/server/src/score-import/import-types/ir/fervidex-static/class-handler.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.ts similarity index 100% rename from server/src/score-import/import-types/ir/fervidex-static/class-handler.ts rename to server/src/lib/score-import/import-types/ir/fervidex-static/class-handler.ts diff --git a/server/src/score-import/import-types/ir/fervidex-static/converter.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/converter.ts similarity index 92% rename from server/src/score-import/import-types/ir/fervidex-static/converter.ts rename to server/src/lib/score-import/import-types/ir/fervidex-static/converter.ts index 485648bbb..5b8fb5733 100644 --- a/server/src/score-import/import-types/ir/fervidex-static/converter.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex-static/converter.ts @@ -1,11 +1,11 @@ -import { FindSongOnID } from "../../../../common/database-lookup/song"; +import { FindSongOnID } from "../../../../../utils/queries/songs"; import { GenericGetGradeAndPercent } from "../../../framework/common/score-utils"; import { InternalFailure, KTDataNotFoundFailure, } from "../../../framework/common/converter-failures"; import { Lamps } from "kamaitachi-common"; -import { FindChartOnInGameIDVersion } from "../../../../common/database-lookup/chart"; +import { FindChartOnInGameIDVersion } from "../../../../../utils/queries/charts"; import { FervidexStaticContext, FervidexStaticScore } from "./types"; import { FERVIDEX_LAMP_LOOKUP, SplitFervidexChartRef } from "../fervidex/converter"; import { DryScore } from "../../../framework/common/types"; diff --git a/server/src/score-import/import-types/ir/fervidex-static/parser.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts similarity index 96% rename from server/src/score-import/import-types/ir/fervidex-static/parser.ts rename to server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts index 1f55e2f10..cd04f25ed 100644 --- a/server/src/score-import/import-types/ir/fervidex-static/parser.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex-static/parser.ts @@ -1,7 +1,7 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import p, { PrudenceSchema } from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; -import { FormatPrError } from "../../../../common/prudence"; +import { FormatPrError } from "../../../../../utils/prudence"; import { ConverterIRFervidexStatic } from "./converter"; import { FervidexStaticContext, FervidexStaticScore } from "./types"; import { FerHeaders, SoftwareIDToVersion } from "../fervidex/parser"; diff --git a/server/src/score-import/import-types/ir/fervidex-static/types.ts b/server/src/lib/score-import/import-types/ir/fervidex-static/types.ts similarity index 100% rename from server/src/score-import/import-types/ir/fervidex-static/types.ts rename to server/src/lib/score-import/import-types/ir/fervidex-static/types.ts diff --git a/server/src/score-import/import-types/ir/fervidex/converter.test.ts b/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts similarity index 96% rename from server/src/score-import/import-types/ir/fervidex/converter.test.ts rename to server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts index b286f44eb..7ff64a1b2 100644 --- a/server/src/score-import/import-types/ir/fervidex/converter.test.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex/converter.test.ts @@ -1,9 +1,9 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import db, { CloseMongoConnection } from "../../../../db/db"; -import CreateLogCtx from "../../../../common/logger"; -import ResetDBState from "../../../../test-utils/reset-db-state"; -import { GetKTDataJSON, Testing511Song, Testing511SPA } from "../../../../test-utils/test-data"; +import db, { CloseMongoConnection } from "../../../../../external/mongo/db"; +import CreateLogCtx from "../../../../logger/logger"; +import ResetDBState from "../../../../../test-utils/reset-db-state"; +import { GetKTDataJSON, Testing511Song, Testing511SPA } from "../../../../../test-utils/test-data"; import { InternalFailure } from "../../../framework/common/converter-failures"; import { ConverterIRFervidex, diff --git a/server/src/score-import/import-types/ir/fervidex/converter.ts b/server/src/lib/score-import/import-types/ir/fervidex/converter.ts similarity index 98% rename from server/src/score-import/import-types/ir/fervidex/converter.ts rename to server/src/lib/score-import/import-types/ir/fervidex/converter.ts index 2f57b09c4..186d6b226 100644 --- a/server/src/score-import/import-types/ir/fervidex/converter.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex/converter.ts @@ -1,4 +1,4 @@ -import { FindSongOnID } from "../../../../common/database-lookup/song"; +import { FindSongOnID } from "../../../../../utils/queries/songs"; import { GenericGetGradeAndPercent } from "../../../framework/common/score-utils"; import { InternalFailure, @@ -10,7 +10,7 @@ import { Lamps, Difficulties, Playtypes } from "kamaitachi-common"; import { FindIIDXChartOnInGameIDVersion, FindIIDXChartWith2DXtraHash, -} from "../../../../common/database-lookup/chart"; +} from "../../../../../utils/queries/charts"; import { ConverterFunction } from "../../common/types"; import { DryScore } from "../../../framework/common/types"; diff --git a/server/src/score-import/import-types/ir/fervidex/parser.ts b/server/src/lib/score-import/import-types/ir/fervidex/parser.ts similarity index 95% rename from server/src/score-import/import-types/ir/fervidex/parser.ts rename to server/src/lib/score-import/import-types/ir/fervidex/parser.ts index 19c96b68e..bdda5c846 100644 --- a/server/src/score-import/import-types/ir/fervidex/parser.ts +++ b/server/src/lib/score-import/import-types/ir/fervidex/parser.ts @@ -1,10 +1,10 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import p, { PrudenceSchema, ValidSchemaValue } from "prudence"; import ScoreImportFatalError from "../../../framework/score-importing/score-import-error"; -import { FormatPrError, optNull } from "../../../../common/prudence"; +import { FormatPrError, optNull } from "../../../../../utils/prudence"; import { FervidexContext, FervidexScore } from "./types"; import { ConverterIRFervidex } from "./converter"; -import { ParseEA3SoftID } from "../../../../common/util"; +import { ParseEA3SoftID } from "../../../../../utils/ea3id"; import { EXT_HEROIC_VERSE, MODEL_IIDX, diff --git a/server/src/score-import/import-types/ir/fervidex/types.ts b/server/src/lib/score-import/import-types/ir/fervidex/types.ts similarity index 100% rename from server/src/score-import/import-types/ir/fervidex/types.ts rename to server/src/lib/score-import/import-types/ir/fervidex/types.ts diff --git a/server/src/score-import/import-types/ir/usc/converter.ts b/server/src/lib/score-import/import-types/ir/usc/converter.ts similarity index 94% rename from server/src/score-import/import-types/ir/usc/converter.ts rename to server/src/lib/score-import/import-types/ir/usc/converter.ts index 0679273b9..01bf40506 100644 --- a/server/src/score-import/import-types/ir/usc/converter.ts +++ b/server/src/lib/score-import/import-types/ir/usc/converter.ts @@ -1,6 +1,6 @@ -import { USCClientScore } from "../../../../api/ir/usc/common"; -import { FindSongOnID } from "../../../../common/database-lookup/song"; -import { KtLogger } from "../../../../types"; +import { USCClientScore } from "../../../../../server/router/ir/usc/usc"; +import { FindSongOnID } from "../../../../../utils/queries/songs"; +import { KtLogger } from "../../../../logger/logger"; import { InternalFailure, InvalidScoreFailure } from "../../../framework/common/converter-failures"; import { GenericGetGradeAndPercent } from "../../../framework/common/score-utils"; import { IRUSCContext } from "./types"; diff --git a/server/src/score-import/import-types/ir/usc/parser.ts b/server/src/lib/score-import/import-types/ir/usc/parser.ts similarity index 87% rename from server/src/score-import/import-types/ir/usc/parser.ts rename to server/src/lib/score-import/import-types/ir/usc/parser.ts index ed1a0620f..7455b3a8f 100644 --- a/server/src/score-import/import-types/ir/usc/parser.ts +++ b/server/src/lib/score-import/import-types/ir/usc/parser.ts @@ -1,9 +1,9 @@ -import { KtLogger } from "../../../../types"; +import { KtLogger } from "../../../../logger/logger"; import { ChartDocument } from "kamaitachi-common"; import p, { PrudenceSchema } from "prudence"; import { InvalidScoreFailure } from "../../../framework/common/converter-failures"; -import { FormatPrError } from "../../../../common/prudence"; -import { USCClientScore } from "../../../../api/ir/usc/common"; +import { FormatPrError } from "../../../../../utils/prudence"; +import { USCClientScore } from "../../../../../server/router/ir/usc/usc"; import { IRUSCContext } from "./types"; import { ConverterIRUSC } from "./converter"; import { ParserFunctionReturnsSync } from "../../common/types"; diff --git a/server/src/score-import/import-types/ir/usc/types.ts b/server/src/lib/score-import/import-types/ir/usc/types.ts similarity index 100% rename from server/src/score-import/import-types/ir/usc/types.ts rename to server/src/lib/score-import/import-types/ir/usc/types.ts diff --git a/server/src/main.ts b/server/src/main.ts index 1b6bcf3c7..c5b11eb90 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -11,9 +11,9 @@ function FormatVersion() { return `v${[major, minor, patch].join(".")} (${name})`; } -import CreateLogCtx from "./common/logger"; -import server from "./server"; -import serverConfig from "./server-config"; +import CreateLogCtx from "./lib/logger/logger"; +import server from "./server/server"; +import serverConfig from "./server/server-config"; import dotenv from "dotenv"; dotenv.config(); diff --git a/server/src/common/multer.ts b/server/src/server/middleware/multer-upload.ts similarity index 95% rename from server/src/common/multer.ts rename to server/src/server/middleware/multer-upload.ts index e70895c3f..64189da81 100644 --- a/server/src/common/multer.ts +++ b/server/src/server/middleware/multer-upload.ts @@ -2,7 +2,7 @@ import { RequestHandler } from "express"; import multer, { MulterError } from "multer"; -import CreateLogCtx from "./logger"; +import CreateLogCtx from "../../lib/logger/logger"; const defaultLogger = CreateLogCtx(__filename); diff --git a/server/src/middleware/prudence-validate.test.ts b/server/src/server/middleware/prudence-validate.test.ts similarity index 100% rename from server/src/middleware/prudence-validate.test.ts rename to server/src/server/middleware/prudence-validate.test.ts diff --git a/server/src/middleware/prudence-validate.ts b/server/src/server/middleware/prudence-validate.ts similarity index 93% rename from server/src/middleware/prudence-validate.ts rename to server/src/server/middleware/prudence-validate.ts index 88827d214..dff72eeb7 100644 --- a/server/src/middleware/prudence-validate.ts +++ b/server/src/server/middleware/prudence-validate.ts @@ -1,5 +1,5 @@ import Prudence, { MiddlewareErrorHandler } from "prudence"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/middleware/require-logged-in.test.ts b/server/src/server/middleware/require-logged-in.test.ts similarity index 100% rename from server/src/middleware/require-logged-in.test.ts rename to server/src/server/middleware/require-logged-in.test.ts diff --git a/server/src/middleware/require-logged-in.ts b/server/src/server/middleware/require-logged-in.ts similarity index 87% rename from server/src/middleware/require-logged-in.ts rename to server/src/server/middleware/require-logged-in.ts index bc8d2877e..d5d0c143e 100644 --- a/server/src/middleware/require-logged-in.ts +++ b/server/src/server/middleware/require-logged-in.ts @@ -1,5 +1,5 @@ import { NextFunction, Request, Response } from "express"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/middleware/sanitise-qstring.test.ts b/server/src/server/middleware/sanitise-qstring.test.ts similarity index 100% rename from server/src/middleware/sanitise-qstring.test.ts rename to server/src/server/middleware/sanitise-qstring.test.ts diff --git a/server/src/middleware/sanitise-qstring.ts b/server/src/server/middleware/sanitise-qstring.ts similarity index 100% rename from server/src/middleware/sanitise-qstring.ts rename to server/src/server/middleware/sanitise-qstring.ts diff --git a/server/src/common/auth.test.ts b/server/src/server/router/api/auth/auth.test.ts similarity index 89% rename from server/src/common/auth.test.ts rename to server/src/server/router/api/auth/auth.test.ts index 4fb13acec..89080136c 100644 --- a/server/src/common/auth.test.ts +++ b/server/src/server/router/api/auth/auth.test.ts @@ -7,12 +7,12 @@ import { ValidateCaptcha, } from "./auth"; import t from "tap"; -import db, { CloseMongoConnection } from "../db/db"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; import { PrivateUserDocument } from "kamaitachi-common"; -import { prAssert } from "../test-utils/asserts"; +import { prAssert } from "../../../../test-utils/asserts"; import Prudence from "prudence"; -import ResetDBState from "../test-utils/reset-db-state"; -import { MockFetch } from "../test-utils/mock-fetch"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { MockFetch } from "../../../../test-utils/mock-fetch"; t.test("#CreateAPIKey", (t) => { t.match( diff --git a/server/src/common/auth.ts b/server/src/server/router/api/auth/auth.ts similarity index 89% rename from server/src/common/auth.ts rename to server/src/server/router/api/auth/auth.ts index 9fa668e7a..b07859827 100644 --- a/server/src/common/auth.ts +++ b/server/src/server/router/api/auth/auth.ts @@ -6,13 +6,13 @@ import { PublicAPIKeyDocument, PublicUserDocument, } from "kamaitachi-common"; -import db from "../db/db"; -import { GetNextCounterValue } from "./db"; import { InsertResult } from "monk"; -import CreateLogCtx from "./logger"; -import { FormatUserDoc } from "./user"; -import nodeFetch from "./fetch"; -import { CAPTCHA_SECRET_KEY } from "../secrets"; +import { CAPTCHA_SECRET_KEY } from "../../../../example-secrets"; +import db from "../../../../external/mongo/db"; +import { GetNextCounterValue } from "../../../../utils/db"; +import CreateLogCtx from "../../../../lib/logger/logger"; +import { FormatUserDoc } from "../../../../utils/user"; +import nodeFetch from "../../../../utils/fetch"; const logger = CreateLogCtx(__filename); diff --git a/server/src/api/auth/auth.ts b/server/src/server/router/api/auth/router.ts similarity index 93% rename from server/src/api/auth/auth.ts rename to server/src/server/router/api/auth/router.ts index 5b3e01aad..c20cdc178 100644 --- a/server/src/api/auth/auth.ts +++ b/server/src/server/router/api/auth/router.ts @@ -7,17 +7,17 @@ import { ReinstateInvite, ValidatePassword, ValidateCaptcha, -} from "../../common/auth"; +} from "./auth"; import { FormatUserDoc, GetUserCaseInsensitive, PRIVATEINFO_GetUserCaseInsensitive, -} from "../../common/user"; +} from "../../../../utils/user"; -import db from "../../db/db"; -import CreateLogCtx from "../../common/logger"; -import prValidate from "../../middleware/prudence-validate"; -import { RequireLoggedIn } from "../../middleware/require-logged-in"; +import db from "../../../../external/mongo/db"; +import CreateLogCtx from "../../../../lib/logger/logger"; +import prValidate from "../../../middleware/prudence-validate"; +import { RequireLoggedIn } from "../../../middleware/require-logged-in"; const logger = CreateLogCtx(__filename); diff --git a/server/src/api/import/import.test.ts b/server/src/server/router/api/import/router.test.ts similarity index 93% rename from server/src/api/import/import.test.ts rename to server/src/server/router/api/import/router.test.ts index 54ad36872..07c7973a5 100644 --- a/server/src/api/import/import.test.ts +++ b/server/src/server/router/api/import/router.test.ts @@ -1,16 +1,16 @@ import t from "tap"; -import mockApi from "../../test-utils/mock-api"; +import mockApi from "../../../../test-utils/mock-api"; import { GetKTDataBuffer, LoadKTBlackIIDXData, TestingIIDXEamusementCSV26, TestingIIDXEamusementCSV27, -} from "../../test-utils/test-data"; -import { CloseAllConnections } from "../../test-utils/close-connections"; -import { RequireNeutralAuthentication } from "../../test-utils/api-common"; -import { CreateFakeAuthCookie } from "../../test-utils/fake-session"; -import ResetDBState from "../../test-utils/reset-db-state"; -import db from "../../db/db"; +} from "../../../../test-utils/test-data"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import { RequireNeutralAuthentication } from "../../../../test-utils/api-common"; +import { CreateFakeAuthCookie } from "../../../../test-utils/fake-session"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import db from "../../../../external/mongo/db"; // reset DB handles the post-stuff diff --git a/server/src/api/import/import.ts b/server/src/server/router/api/import/router.ts similarity index 75% rename from server/src/api/import/import.ts rename to server/src/server/router/api/import/router.ts index 922e683ef..2e615d45f 100644 --- a/server/src/api/import/import.ts +++ b/server/src/server/router/api/import/router.ts @@ -2,14 +2,14 @@ import { Router } from "express"; import { FileUploadImportTypes } from "kamaitachi-common"; import { fileImportTypes } from "kamaitachi-common/js/config"; import Prudence from "prudence"; -import { GetUserWithIDGuaranteed } from "../../common/user"; -import CreateLogCtx from "../../common/logger"; -import prValidate from "../../middleware/prudence-validate"; -import { RequireLoggedIn } from "../../middleware/require-logged-in"; -import ScoreImportFatalError from "../../score-import/framework/score-importing/score-import-error"; -import { KtLogger } from "../../types"; -import { ExpressWrappedScoreImportMain } from "../../score-import/framework/express-wrapper"; -import { CreateMulterSingleUploadMiddleware } from "../../common/multer"; +import { GetUserWithIDGuaranteed } from "../../../../utils/user"; +import CreateLogCtx, { KtLogger } from "../../../../lib/logger/logger"; +import prValidate from "../../../middleware/prudence-validate"; +import { RequireLoggedIn } from "../../../middleware/require-logged-in"; +import ScoreImportFatalError from "../../../../lib/score-import/framework/score-importing/score-import-error"; + +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import { CreateMulterSingleUploadMiddleware } from "../../../middleware/multer-upload"; const logger = CreateLogCtx(__filename); @@ -64,11 +64,11 @@ router.post( } ); -import ParseEamusementIIDXCSV from "../../score-import/import-types/file/eamusement-iidx-csv/parser"; -import ParseBatchManual from "../../score-import/import-types/file/batch-manual/parser"; -import { ParseSolidStateXML } from "../../score-import/import-types/file/solid-state-squad/parser"; -import { ParseMerIIDX } from "../../score-import/import-types/file/mer-iidx/parser"; -import ParsePLIIIDXCSV from "../../score-import/import-types/file/pli-iidx-csv/parser"; +import ParseEamusementIIDXCSV from "../../../../lib/score-import/import-types/file/eamusement-iidx-csv/parser"; +import ParseBatchManual from "../../../../lib/score-import/import-types/file/batch-manual/parser"; +import { ParseSolidStateXML } from "../../../../lib/score-import/import-types/file/solid-state-squad/parser"; +import { ParseMerIIDX } from "../../../../lib/score-import/import-types/file/mer-iidx/parser"; +import ParsePLIIIDXCSV from "../../../../lib/score-import/import-types/file/pli-iidx-csv/parser"; /** * Resolves the data from a file upload into an iterable, diff --git a/server/src/api/api.ts b/server/src/server/router/api/router.ts similarity index 61% rename from server/src/api/api.ts rename to server/src/server/router/api/router.ts index 5c40944c4..fede8397e 100644 --- a/server/src/api/api.ts +++ b/server/src/server/router/api/router.ts @@ -1,7 +1,7 @@ import { Router } from "express"; -import authRouter from "./auth/auth"; -import importRouter from "./import/import"; -import irRouter from "./ir/ir"; +import authRouter from "./auth/router"; +import importRouter from "./import/router"; +import irRouter from "../ir/router"; const router: Router = Router({ mergeParams: true }); diff --git a/server/src/api/ir/barbatos/barbatos.test.ts b/server/src/server/router/ir/barbatos/router.test.ts similarity index 72% rename from server/src/api/ir/barbatos/barbatos.test.ts rename to server/src/server/router/ir/barbatos/router.test.ts index 7bc496e05..eeeac052e 100644 --- a/server/src/api/ir/barbatos/barbatos.test.ts +++ b/server/src/server/router/ir/barbatos/router.test.ts @@ -1,11 +1,11 @@ import t from "tap"; -import { RequireNeutralAuthentication } from "../../../test-utils/api-common"; -import { CloseAllConnections } from "../../../test-utils/close-connections"; -import { CreateFakeAuthCookie } from "../../../test-utils/fake-session"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import mockApi from "../../../test-utils/mock-api"; -import { TestingBarbatosScore } from "../../../test-utils/test-data"; -import db from "../../../db/db"; +import { RequireNeutralAuthentication } from "../../../../test-utils/api-common"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import { CreateFakeAuthCookie } from "../../../../test-utils/fake-session"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import mockApi from "../../../../test-utils/mock-api"; +import { TestingBarbatosScore } from "../../../../test-utils/test-data"; +import db from "../../../../external/mongo/db"; t.test("POST /api/ir/barbatos/score/submit", async (t) => { const cookie = await CreateFakeAuthCookie(mockApi); diff --git a/server/src/api/ir/barbatos/barbatos.ts b/server/src/server/router/ir/barbatos/router.ts similarity index 72% rename from server/src/api/ir/barbatos/barbatos.ts rename to server/src/server/router/ir/barbatos/router.ts index 03d7291e9..8989abc2b 100644 --- a/server/src/api/ir/barbatos/barbatos.ts +++ b/server/src/server/router/ir/barbatos/router.ts @@ -1,8 +1,8 @@ import { Router } from "express"; -import { GetUserWithIDGuaranteed } from "../../../common/user"; +import { GetUserWithIDGuaranteed } from "../../../../utils/user"; import { RequireLoggedIn } from "../../../middleware/require-logged-in"; -import { ExpressWrappedScoreImportMain } from "../../../score-import/framework/express-wrapper"; -import { ParseBarbatosSingle } from "../../../score-import/import-types/ir/barbatos/parser"; +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import { ParseBarbatosSingle } from "../../../../lib/score-import/import-types/ir/barbatos/parser"; const router: Router = Router({ mergeParams: true }); diff --git a/server/src/api/ir/chunitachi/chunitachi.test.ts b/server/src/server/router/ir/chunitachi/router.test.ts similarity index 80% rename from server/src/api/ir/chunitachi/chunitachi.test.ts rename to server/src/server/router/ir/chunitachi/router.test.ts index 15a06698b..8e6fa8328 100644 --- a/server/src/api/ir/chunitachi/chunitachi.test.ts +++ b/server/src/server/router/ir/chunitachi/router.test.ts @@ -1,11 +1,11 @@ import t from "tap"; -import db from "../../../db/db"; -import { RequireNeutralAuthentication } from "../../../test-utils/api-common"; -import { CloseAllConnections } from "../../../test-utils/close-connections"; -import { CreateFakeAuthCookie } from "../../../test-utils/fake-session"; -import mockApi from "../../../test-utils/mock-api"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { GetKTDataJSON } from "../../../test-utils/test-data"; +import db from "../../../../external/mongo/db"; +import { RequireNeutralAuthentication } from "../../../../test-utils/api-common"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import { CreateFakeAuthCookie } from "../../../../test-utils/fake-session"; +import mockApi from "../../../../test-utils/mock-api"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { GetKTDataJSON } from "../../../../test-utils/test-data"; import deepmerge from "deepmerge"; t.test("POST /api/ir/chunitachi/import", async (t) => { diff --git a/server/src/api/ir/chunitachi/chunitachi.ts b/server/src/server/router/ir/chunitachi/router.ts similarity index 80% rename from server/src/api/ir/chunitachi/chunitachi.ts rename to server/src/server/router/ir/chunitachi/router.ts index d3556fbae..8d87b0a7d 100644 --- a/server/src/api/ir/chunitachi/chunitachi.ts +++ b/server/src/server/router/ir/chunitachi/router.ts @@ -1,8 +1,8 @@ import { Router } from "express"; -import { GetUserWithIDGuaranteed } from "../../../common/user"; +import { GetUserWithIDGuaranteed } from "../../../../utils/user"; import { RequireLoggedIn } from "../../../middleware/require-logged-in"; -import { ExpressWrappedScoreImportMain } from "../../../score-import/framework/express-wrapper"; -import ParseDirectManual from "../../../score-import/import-types/ir/direct-manual/parser"; +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import ParseDirectManual from "../../../../lib/score-import/import-types/ir/direct-manual/parser"; const router: Router = Router({ mergeParams: true }); diff --git a/server/src/api/ir/direct-manual/direct-manual.test.ts b/server/src/server/router/ir/direct-manual/router.test.ts similarity index 72% rename from server/src/api/ir/direct-manual/direct-manual.test.ts rename to server/src/server/router/ir/direct-manual/router.test.ts index 41bed26c5..035d3b053 100644 --- a/server/src/api/ir/direct-manual/direct-manual.test.ts +++ b/server/src/server/router/ir/direct-manual/router.test.ts @@ -1,11 +1,11 @@ import t from "tap"; -import db from "../../../db/db"; -import { RequireNeutralAuthentication } from "../../../test-utils/api-common"; -import { CloseAllConnections } from "../../../test-utils/close-connections"; -import { CreateFakeAuthCookie } from "../../../test-utils/fake-session"; -import mockApi from "../../../test-utils/mock-api"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { GetKTDataJSON } from "../../../test-utils/test-data"; +import db from "../../../../external/mongo/db"; +import { RequireNeutralAuthentication } from "../../../../test-utils/api-common"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import { CreateFakeAuthCookie } from "../../../../test-utils/fake-session"; +import mockApi from "../../../../test-utils/mock-api"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { GetKTDataJSON } from "../../../../test-utils/test-data"; t.test("POST /api/ir/direct-manual/import", async (t) => { const cookie = await CreateFakeAuthCookie(mockApi); diff --git a/server/src/api/ir/direct-manual/direct-manual.ts b/server/src/server/router/ir/direct-manual/router.ts similarity index 75% rename from server/src/api/ir/direct-manual/direct-manual.ts rename to server/src/server/router/ir/direct-manual/router.ts index 64062e6f1..2b8df213d 100644 --- a/server/src/api/ir/direct-manual/direct-manual.ts +++ b/server/src/server/router/ir/direct-manual/router.ts @@ -1,9 +1,9 @@ import { Router } from "express"; -import { GetUserWithID, GetUserWithIDGuaranteed } from "../../../common/user"; -import CreateLogCtx from "../../../common/logger"; +import { GetUserWithID, GetUserWithIDGuaranteed } from "../../../../utils/user"; +import CreateLogCtx from "../../../../lib/logger/logger"; import { RequireLoggedIn } from "../../../middleware/require-logged-in"; -import { ExpressWrappedScoreImportMain } from "../../../score-import/framework/express-wrapper"; -import ParseDirectManual from "../../../score-import/import-types/ir/direct-manual/parser"; +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import ParseDirectManual from "../../../../lib/score-import/import-types/ir/direct-manual/parser"; const router: Router = Router({ mergeParams: true }); diff --git a/server/src/api/ir/fervidex/fervidex.test.ts b/server/src/server/router/ir/fervidex/router.test.ts similarity index 94% rename from server/src/api/ir/fervidex/fervidex.test.ts rename to server/src/server/router/ir/fervidex/router.test.ts index 2ba247a62..ebdaefed1 100644 --- a/server/src/api/ir/fervidex/fervidex.test.ts +++ b/server/src/server/router/ir/fervidex/router.test.ts @@ -1,10 +1,10 @@ import t from "tap"; -import db from "../../../db/db"; -import { CloseAllConnections } from "../../../test-utils/close-connections"; -import { CreateFakeAuthCookie } from "../../../test-utils/fake-session"; -import mockApi from "../../../test-utils/mock-api"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { GetKTDataJSON } from "../../../test-utils/test-data"; +import db from "../../../../external/mongo/db"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import { CreateFakeAuthCookie } from "../../../../test-utils/fake-session"; +import mockApi from "../../../../test-utils/mock-api"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { GetKTDataJSON } from "../../../../test-utils/test-data"; // eslint-disable-next-line @typescript-eslint/no-explicit-any function TestHeaders(url: string, cookie: string[], data: any) { diff --git a/server/src/api/ir/fervidex/fervidex.ts b/server/src/server/router/ir/fervidex/router.ts similarity index 90% rename from server/src/api/ir/fervidex/fervidex.ts rename to server/src/server/router/ir/fervidex/router.ts index 5d1af513e..25a713c17 100644 --- a/server/src/api/ir/fervidex/fervidex.ts +++ b/server/src/server/router/ir/fervidex/router.ts @@ -1,15 +1,15 @@ import { Router, RequestHandler } from "express"; -import { UpdateClassIfGreater } from "../../../common/class"; -import { GetUserWithIDGuaranteed } from "../../../common/user"; -import { ParseEA3SoftID } from "../../../common/util"; -import { EXT_HEROIC_VERSE, MODEL_INFINITAS_2, REV_2DXBMS } from "../../../constants/ea3id"; +import { UpdateClassIfGreater } from "../../../../utils/class"; +import { GetUserWithIDGuaranteed } from "../../../../utils/user"; +import { ParseEA3SoftID } from "../../../../utils/ea3id"; +import { EXT_HEROIC_VERSE, MODEL_INFINITAS_2, REV_2DXBMS } from "../../../../lib/constants/ea3id"; import { RequireLoggedIn } from "../../../middleware/require-logged-in"; -import { ExpressWrappedScoreImportMain } from "../../../score-import/framework/express-wrapper"; -import { ParseFervidexStatic } from "../../../score-import/import-types/ir/fervidex-static/parser"; -import { ParseFervidexSingle } from "../../../score-import/import-types/ir/fervidex/parser"; +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import { ParseFervidexStatic } from "../../../../lib/score-import/import-types/ir/fervidex-static/parser"; +import { ParseFervidexSingle } from "../../../../lib/score-import/import-types/ir/fervidex/parser"; import { Playtypes } from "kamaitachi-common"; -import CreateLogCtx from "../../../common/logger"; -import { FERVIDEX_COURSE_LOOKUP } from "../../../score-import/import-types/ir/fervidex-static/class-handler"; +import CreateLogCtx from "../../../../lib/logger/logger"; +import { FERVIDEX_COURSE_LOOKUP } from "../../../../lib/score-import/import-types/ir/fervidex-static/class-handler"; const logger = CreateLogCtx(__filename); diff --git a/server/src/api/ir/ir.ts b/server/src/server/router/ir/router.ts similarity index 56% rename from server/src/api/ir/ir.ts rename to server/src/server/router/ir/router.ts index 9b350949f..3a318b1a1 100644 --- a/server/src/api/ir/ir.ts +++ b/server/src/server/router/ir/router.ts @@ -1,9 +1,9 @@ import { Router } from "express"; -import barbatosIR from "./barbatos/barbatos"; -import chunitachiIR from "./chunitachi/chunitachi"; -import directManualIR from "./direct-manual/direct-manual"; -import fervidexIR from "./fervidex/fervidex"; -import uscIR from "./usc/usc"; +import barbatosIR from "./barbatos/router"; +import chunitachiIR from "./chunitachi/router"; +import directManualIR from "./direct-manual/router"; +import fervidexIR from "./fervidex/router"; +import uscIR from "./usc/router"; const router: Router = Router({ mergeParams: true }); diff --git a/server/src/api/ir/usc/usc.test.ts b/server/src/server/router/ir/usc/router.test.ts similarity index 97% rename from server/src/api/ir/usc/usc.test.ts rename to server/src/server/router/ir/usc/router.test.ts index ae76b2347..ce4e9051c 100644 --- a/server/src/api/ir/usc/usc.test.ts +++ b/server/src/server/router/ir/usc/router.test.ts @@ -1,9 +1,9 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import db from "../../../db/db"; -import { CloseAllConnections } from "../../../test-utils/close-connections"; -import mockApi from "../../../test-utils/mock-api"; -import ResetDBState from "../../../test-utils/reset-db-state"; +import db from "../../../../external/mongo/db"; +import { CloseAllConnections } from "../../../../test-utils/close-connections"; +import mockApi from "../../../../test-utils/mock-api"; +import ResetDBState from "../../../../test-utils/reset-db-state"; import deepmerge from "deepmerge"; import { PBScoreDocument } from "kamaitachi-common"; diff --git a/server/src/api/ir/usc/usc.ts b/server/src/server/router/ir/usc/router.ts similarity index 92% rename from server/src/api/ir/usc/usc.ts rename to server/src/server/router/ir/usc/router.ts index 2c98a6959..bd86da37d 100644 --- a/server/src/api/ir/usc/usc.ts +++ b/server/src/server/router/ir/usc/router.ts @@ -1,22 +1,22 @@ import { Router, RequestHandler } from "express"; -import { FindChartOnSHA256 } from "../../../common/database-lookup/chart"; -import { SYMBOL_KtchiData } from "../../../constants/ktchi"; -import db from "../../../db/db"; +import { FindChartOnSHA256 } from "../../../../utils/queries/charts"; +import { SYMBOL_KtchiData } from "../../../../lib/constants/ktchi"; +import db from "../../../../external/mongo/db"; import { ChartDocument, PBScoreDocument, SuccessfulAPIResponse, ImportDocument, } from "kamaitachi-common"; -import { AssertStrAsPositiveNonZeroInt } from "../../../score-import/framework/common/string-asserts"; -import CreateLogCtx from "../../../common/logger"; -import { CreatePOSTScoresResponseBody, KtchiScoreToServerScore } from "./common"; -import { ExpressWrappedScoreImportMain } from "../../../score-import/framework/express-wrapper"; -import { GetUserWithID } from "../../../common/user"; -import { KtLogger } from "../../../types"; -import { ParseIRUSC } from "../../../score-import/import-types/ir/usc/parser"; -import { USCIR_MAX_LEADERBOARD_N } from "../../../constants/usc-ir"; -import { CreateMulterSingleUploadMiddleware } from "../../../common/multer"; +import { AssertStrAsPositiveNonZeroInt } from "../../../../lib/score-import/framework/common/string-asserts"; +import CreateLogCtx, { KtLogger } from "../../../../lib/logger/logger"; +import { CreatePOSTScoresResponseBody, KtchiScoreToServerScore } from "./usc"; +import { ExpressWrappedScoreImportMain } from "../../../../lib/score-import/framework/express-wrapper"; +import { GetUserWithID } from "../../../../utils/user"; + +import { ParseIRUSC } from "../../../../lib/score-import/import-types/ir/usc/parser"; +import { USCIR_MAX_LEADERBOARD_N } from "../../../../lib/constants/usc-ir"; +import { CreateMulterSingleUploadMiddleware } from "../../../middleware/multer-upload"; const logger = CreateLogCtx(__filename); diff --git a/server/src/api/ir/usc/common.test.ts b/server/src/server/router/ir/usc/usc.test.ts similarity index 98% rename from server/src/api/ir/usc/common.test.ts rename to server/src/server/router/ir/usc/usc.test.ts index eb6771b05..d69390e4d 100644 --- a/server/src/api/ir/usc/common.test.ts +++ b/server/src/server/router/ir/usc/usc.test.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import t from "tap"; -import db, { CloseMongoConnection } from "../../../db/db"; -import ResetDBState from "../../../test-utils/reset-db-state"; -import { CreatePOSTScoresResponseBody, KtchiScoreToServerScore } from "./common"; +import db, { CloseMongoConnection } from "../../../../external/mongo/db"; +import ResetDBState from "../../../../test-utils/reset-db-state"; +import { CreatePOSTScoresResponseBody, KtchiScoreToServerScore } from "./usc"; import { ChartDocument, PBScoreDocument, ScoreDocument } from "kamaitachi-common"; import deepmerge from "deepmerge"; diff --git a/server/src/api/ir/usc/common.ts b/server/src/server/router/ir/usc/usc.ts similarity index 95% rename from server/src/api/ir/usc/common.ts rename to server/src/server/router/ir/usc/usc.ts index eaa0da432..1bdd2ea2f 100644 --- a/server/src/api/ir/usc/common.ts +++ b/server/src/server/router/ir/usc/usc.ts @@ -1,9 +1,9 @@ import { integer, PBScoreDocument, ScoreDocument, ChartDocument } from "kamaitachi-common"; -import CreateLogCtx from "../../../common/logger"; -import { GetPBOnChart, GetServerRecordOnChart } from "../../../common/scores"; -import { MStoS } from "../../../common/util"; -import { USCIR_ADJACENT_SCORE_N } from "../../../constants/usc-ir"; -import db from "../../../db/db"; +import CreateLogCtx from "../../../../lib/logger/logger"; +import { GetPBOnChart, GetServerRecordOnChart } from "../../../../utils/scores"; +import { MStoS } from "../../../../utils/misc"; +import { USCIR_ADJACENT_SCORE_N } from "../../../../lib/constants/usc-ir"; +import db from "../../../../external/mongo/db"; const logger = CreateLogCtx(__filename); diff --git a/server/src/server/router/router.ts b/server/src/server/router/router.ts new file mode 100644 index 000000000..572fa8ccf --- /dev/null +++ b/server/src/server/router/router.ts @@ -0,0 +1,10 @@ +import { Router } from "express"; +import apiRouter from "./api/router"; +import irRouter from "./ir/router"; + +const router: Router = Router({ mergeParams: true }); + +router.use("/api/v1", apiRouter); +router.use("/ir", irRouter); + +export default router; diff --git a/server/src/server-config.ts b/server/src/server/server-config.ts similarity index 100% rename from server/src/server-config.ts rename to server/src/server/server-config.ts diff --git a/server/src/server.ts b/server/src/server/server.ts similarity index 88% rename from server/src/server.ts rename to server/src/server/server.ts index 78d63bf6e..56d85d813 100644 --- a/server/src/server.ts +++ b/server/src/server/server.ts @@ -1,10 +1,10 @@ import express, { Express } from "express"; import "express-async-errors"; -import CreateLogCtx from "./common/logger"; +import CreateLogCtx from "../lib/logger/logger"; import expressSession from "express-session"; -import { SESSION_SECRET } from "./secrets"; +import { SESSION_SECRET } from "../secrets"; import { integer } from "kamaitachi-common"; -import { RedisClient, RedisStore } from "./redis/redis-store"; +import { RedisClient, RedisStore } from "../external/redis/redis-store"; const logger = CreateLogCtx(__filename); @@ -50,9 +50,9 @@ process.on("unhandledRejection", (reason, promise) => { // limit them so as not to choke the api app.use(express.json({ limit: "1mb" })); -import apiRouter from "./api/api"; +import mainRouter from "./router/router"; -app.use("/api", apiRouter); +app.use("/", mainRouter); /** * If any user gets to this point, we send them index.html and let react router do the routing (and 404ing) diff --git a/server/src/test-utils/close-connections.ts b/server/src/test-utils/close-connections.ts index 2e8837b04..9589d709a 100644 --- a/server/src/test-utils/close-connections.ts +++ b/server/src/test-utils/close-connections.ts @@ -1,5 +1,5 @@ -import { CloseMongoConnection } from "../db/db"; -import { CloseRedisConnection } from "../redis/redis-store"; +import { CloseMongoConnection } from "../external/mongo/db"; +import { CloseRedisConnection } from "../external/redis/redis-store"; import { CloseServerConnection } from "./mock-api"; export async function CloseAllConnections() { diff --git a/server/src/test-utils/fake-session.ts b/server/src/test-utils/fake-session.ts index 33b0122b3..343faa803 100644 --- a/server/src/test-utils/fake-session.ts +++ b/server/src/test-utils/fake-session.ts @@ -1,5 +1,5 @@ import ResetDBState from "./reset-db-state"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../lib/logger/logger"; import supertest from "supertest"; const logger = CreateLogCtx(__filename); diff --git a/server/src/test-utils/mock-api.ts b/server/src/test-utils/mock-api.ts index f55268bf3..ba2dea59c 100644 --- a/server/src/test-utils/mock-api.ts +++ b/server/src/test-utils/mock-api.ts @@ -1,9 +1,9 @@ import supertest from "supertest"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); -import server from "../server"; +import server from "../server/server"; logger.verbose("Creating Mock Server Connection..."); const connection = server.listen(8079); diff --git a/server/src/test-utils/mock-fetch.ts b/server/src/test-utils/mock-fetch.ts index 2c5875640..241441ca5 100644 --- a/server/src/test-utils/mock-fetch.ts +++ b/server/src/test-utils/mock-fetch.ts @@ -1,5 +1,5 @@ import { Response } from "node-fetch"; -import { NodeFetch } from "../common/fetch"; +import { NodeFetch } from "../utils/fetch"; export function MockFetch(data: Partial) { // We know! this is a mock function. diff --git a/server/src/test-utils/reset-db-state.ts b/server/src/test-utils/reset-db-state.ts index fd379729c..3b1d08aaa 100644 --- a/server/src/test-utils/reset-db-state.ts +++ b/server/src/test-utils/reset-db-state.ts @@ -1,10 +1,10 @@ /** * Resets the state of the database. */ -import db from "../db/db"; +import db from "../external/mongo/db"; import fs from "fs"; import path from "path"; -import CreateLogCtx from "../common/logger"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/test-utils/server.ts b/server/src/test-utils/server.ts index 932e8a81a..fce93ab1f 100644 --- a/server/src/test-utils/server.ts +++ b/server/src/test-utils/server.ts @@ -1,4 +1,4 @@ -import server from "../server"; +import server from "../server/server"; import supertest from "supertest"; const mockServer = supertest(server); diff --git a/server/src/test-utils/test-data.ts b/server/src/test-utils/test-data.ts index 1022aaee9..a437a5c62 100644 --- a/server/src/test-utils/test-data.ts +++ b/server/src/test-utils/test-data.ts @@ -10,9 +10,9 @@ import { SongDocument, } from "kamaitachi-common"; import path from "path"; -import db from "../db/db"; -import { DryScore } from "../score-import/framework/common/types"; -import { BarbatosScore } from "../score-import/import-types/ir/barbatos/types"; +import db from "../external/mongo/db"; +import { DryScore } from "../lib/score-import/framework/common/types"; +import { BarbatosScore } from "../lib/score-import/import-types/ir/barbatos/types"; const file = (name: string) => path.join(__dirname, "/test-data", name); diff --git a/server/src/common/class.ts b/server/src/utils/class.ts similarity index 97% rename from server/src/common/class.ts rename to server/src/utils/class.ts index 85f04db48..8b2b10467 100644 --- a/server/src/common/class.ts +++ b/server/src/utils/class.ts @@ -1,7 +1,7 @@ import { Game, integer, Playtypes, UserGameStats } from "kamaitachi-common"; import { ClassData, gameClassValues } from "kamaitachi-common/js/game-classes"; -import db from "../db/db"; -import CreateLogCtx from "./logger"; +import db from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/common/db.test.ts b/server/src/utils/db.test.ts similarity index 89% rename from server/src/common/db.test.ts rename to server/src/utils/db.test.ts index 8076cf408..98533ccb8 100644 --- a/server/src/common/db.test.ts +++ b/server/src/utils/db.test.ts @@ -1,6 +1,6 @@ import { GetNextCounterValue } from "./db"; import t from "tap"; -import db, { CloseMongoConnection } from "../db/db"; +import db, { CloseMongoConnection } from "../external/mongo/db"; import ResetDBState from "../test-utils/reset-db-state"; t.test("#GetNextCounterValue", (t) => { diff --git a/server/src/common/db.ts b/server/src/utils/db.ts similarity index 84% rename from server/src/common/db.ts rename to server/src/utils/db.ts index 06b3af7e4..14b4bfe70 100644 --- a/server/src/common/db.ts +++ b/server/src/utils/db.ts @@ -1,5 +1,5 @@ -import db from "../db/db"; -import CreateLogCtx from "./logger"; +import db from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); import { integer } from "kamaitachi-common"; diff --git a/server/src/utils/ea3id.ts b/server/src/utils/ea3id.ts new file mode 100644 index 000000000..54476f48a --- /dev/null +++ b/server/src/utils/ea3id.ts @@ -0,0 +1,19 @@ +export function ParseEA3SoftID(ver: string) { + const a = ver.split(":"); + + if (a.length !== 5) { + throw new Error(`Invalid Version Code. Had ${a.length} components.`); + } + + if (!ver.match(/^[A-Z0-9]{3}:[A-Z]:[A-Z]:[A-Z]:[0-9]{10}$/u)) { + throw new Error(`Invalid Version Code.`); + } + + return { + model: a[0], + dest: a[1], // region + spec: a[2], + rev: a[3], + ext: a[4], + }; +} diff --git a/server/src/common/fetch.ts b/server/src/utils/fetch.ts similarity index 100% rename from server/src/common/fetch.ts rename to server/src/utils/fetch.ts diff --git a/server/src/common/folder.test.ts b/server/src/utils/folder.test.ts similarity index 98% rename from server/src/common/folder.test.ts rename to server/src/utils/folder.test.ts index 3b720bdb9..7d60e4946 100644 --- a/server/src/common/folder.test.ts +++ b/server/src/utils/folder.test.ts @@ -1,5 +1,5 @@ import t from "tap"; -import CreateLogCtx from "./logger"; +import CreateLogCtx from "../lib/logger/logger"; import { Testing511SPA } from "../test-utils/test-data"; import { ChartDocument, FolderDocument } from "kamaitachi-common"; import { @@ -8,7 +8,7 @@ import { GetFolderCharts, ResolveFolderToCharts, } from "./folder"; -import db, { CloseMongoConnection } from "../db/db"; +import db, { CloseMongoConnection } from "../external/mongo/db"; import ResetDBState from "../test-utils/reset-db-state"; import deepmerge from "deepmerge"; diff --git a/server/src/common/folder.ts b/server/src/utils/folder.ts similarity index 98% rename from server/src/common/folder.ts rename to server/src/utils/folder.ts index 93da26666..1efe06b0d 100644 --- a/server/src/common/folder.ts +++ b/server/src/utils/folder.ts @@ -1,5 +1,5 @@ -import db from "../db/db"; -import CreateLogCtx from "./logger"; +import db from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; import { FolderDocument, AnyChartDocument, AnySongDocument } from "kamaitachi-common"; import { FilterQuery } from "mongodb"; import deepmerge from "deepmerge"; diff --git a/server/src/common/goal.test.ts b/server/src/utils/goal.test.ts similarity index 98% rename from server/src/common/goal.test.ts rename to server/src/utils/goal.test.ts index 91680d978..4a338428c 100644 --- a/server/src/common/goal.test.ts +++ b/server/src/utils/goal.test.ts @@ -1,6 +1,6 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../db/db"; -import CreateLogCtx from "./logger"; +import db, { CloseMongoConnection } from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; import ResetDBState from "../test-utils/reset-db-state"; import { EvaluateGoalForUser } from "./goal"; import { GoalDocument } from "kamaitachi-common"; diff --git a/server/src/common/goal.ts b/server/src/utils/goal.ts similarity index 98% rename from server/src/common/goal.ts rename to server/src/utils/goal.ts index 9d5d00b52..18b026a26 100644 --- a/server/src/common/goal.ts +++ b/server/src/utils/goal.ts @@ -1,7 +1,7 @@ import { GoalDocument, integer, PBScoreDocument, Game } from "kamaitachi-common"; import { grades, lamps } from "kamaitachi-common/js/config"; -import db from "../db/db"; -import { KtLogger } from "../types"; +import db from "../external/mongo/db"; +import { KtLogger } from "../lib/logger/logger"; import { GetFolderChartIDs } from "./folder"; import { FilterQuery } from "mongodb"; diff --git a/server/src/common/milestone.ts b/server/src/utils/milestone.ts similarity index 58% rename from server/src/common/milestone.ts rename to server/src/utils/milestone.ts index e4ecdd700..84b89880d 100644 --- a/server/src/common/milestone.ts +++ b/server/src/utils/milestone.ts @@ -1,46 +1,10 @@ import { MilestoneDocument, integer, GoalImportInfo } from "kamaitachi-common"; -/** - * Processes and updates a user's milestones from their Goal Import Info (i.e. what is returned - * about goals from imports) - */ -export function ProcessMilestoneFromGII( - milestone: MilestoneDocument, - gii: Map -) { - const goalIDs = GetGoalIDsFromMilestone(milestone); - - let progress = 0; - - for (const goalID of goalIDs) { - const userInfo = gii.get(goalID); - - if (!userInfo) { - continue; - } - - if (!userInfo.achieved) { - continue; - } - - progress++; - } - - const outOf = CalculateMilestoneOutOf(milestone, goalIDs); - - // milestone achieved! - if (progress >= outOf) { - return { achieved: true, progress }; - } - - return { achieved: false, progress }; -} - /** * Retrieves the goalID documents in a single array from the * nested structure of milestones. */ -function GetGoalIDsFromMilestone(milestone: MilestoneDocument) { +export function GetGoalIDsFromMilestone(milestone: MilestoneDocument) { // this sucks - maybe a nicer way to do this, because nested // maps are just ugly return milestone.milestoneData.map((e) => e.goals.map((e) => e.goalID)).flat(1); @@ -50,7 +14,7 @@ function GetGoalIDsFromMilestone(milestone: MilestoneDocument) { * Work out how many goals need to be achieved for this * milestone to be considered completed. */ -function CalculateMilestoneOutOf(milestone: MilestoneDocument, goalIDs: string[]): integer { +export function CalculateMilestoneOutOf(milestone: MilestoneDocument, goalIDs: string[]): integer { if (milestone.criteria.type === "all") { return goalIDs.length; } else if (milestone.criteria.type === "abs") { diff --git a/server/src/common/util.test.ts b/server/src/utils/misc.test.ts similarity index 82% rename from server/src/common/util.test.ts rename to server/src/utils/misc.test.ts index 0e6897987..d1fe5323c 100644 --- a/server/src/common/util.test.ts +++ b/server/src/utils/misc.test.ts @@ -1,5 +1,5 @@ import t from "tap"; -import { GetMilisecondsSince } from "./util"; +import { GetMilisecondsSince } from "./misc"; t.test("#GetMilisecondsSince", (t) => { const time = GetMilisecondsSince(10n); diff --git a/server/src/common/util.ts b/server/src/utils/misc.ts similarity index 72% rename from server/src/common/util.ts rename to server/src/utils/misc.ts index 2c516fe07..a743fc183 100644 --- a/server/src/common/util.ts +++ b/server/src/utils/misc.ts @@ -15,26 +15,6 @@ export function EscapeStringRegexp(string: string) { return string.replace(/[|\\{}()[\]^$+*?.]/gu, "\\$&").replace(/-/gu, "\\x2d"); } -export function ParseEA3SoftID(ver: string) { - const a = ver.split(":"); - - if (a.length !== 5) { - throw new Error(`Invalid Version Code. Had ${a.length} components.`); - } - - if (!ver.match(/^[A-Z0-9]{3}:[A-Z]:[A-Z]:[A-Z]:[0-9]{10}$/u)) { - throw new Error(`Invalid Version Code.`); - } - - return { - model: a[0], - dest: a[1], // region - spec: a[2], - rev: a[3], - ext: a[4], - }; -} - /** * Takes a process.hrtime.bigint(), and returns the miliseconds elapsed since it. * This function will not work if more than 100(ish) days have passed since the first reference. @@ -50,3 +30,10 @@ export function Random20Hex() { export function MStoS(ms: number) { return Math.floor(ms / 1000); } + +/** + * Random From Array - Selects a random value from an array. + */ +export function RFA(arr: unknown[]) { + return arr[Math.floor(Math.random() * arr.length)]; +} diff --git a/server/src/common/prudence.ts b/server/src/utils/prudence.ts similarity index 100% rename from server/src/common/prudence.ts rename to server/src/utils/prudence.ts diff --git a/server/src/common/database-lookup/chart.ts b/server/src/utils/queries/charts.ts similarity index 96% rename from server/src/common/database-lookup/chart.ts rename to server/src/utils/queries/charts.ts index 9d56d1aea..e2305b893 100644 --- a/server/src/common/database-lookup/chart.ts +++ b/server/src/utils/queries/charts.ts @@ -1,5 +1,5 @@ import { Difficulties, Game, integer, Playtypes, IDStrings } from "kamaitachi-common"; -import db from "../../db/db"; +import db from "../../external/mongo/db"; export function FindChartWithChartID(game: Game, chartID: string) { return db.charts[game].findOne({ chartID }); diff --git a/server/src/common/database-lookup/song.ts b/server/src/utils/queries/songs.ts similarity index 92% rename from server/src/common/database-lookup/song.ts rename to server/src/utils/queries/songs.ts index b2ef74b15..15a0b8dcd 100644 --- a/server/src/common/database-lookup/song.ts +++ b/server/src/utils/queries/songs.ts @@ -1,7 +1,7 @@ import { Game, AnySongDocument, integer } from "kamaitachi-common"; import { FindOneResult } from "monk"; -import db from "../../db/db"; -import { EscapeStringRegexp } from "../util"; +import db from "../../external/mongo/db"; +import { EscapeStringRegexp } from "../misc"; /** * Finds a song document for the given game with the given title (or alt-title). diff --git a/server/src/common/scores.ts b/server/src/utils/scores.ts similarity index 89% rename from server/src/common/scores.ts rename to server/src/utils/scores.ts index 5f3ff432d..f13419729 100644 --- a/server/src/common/scores.ts +++ b/server/src/utils/scores.ts @@ -1,4 +1,4 @@ -import db from "../db/db"; +import db from "../external/mongo/db"; import { integer } from "kamaitachi-common"; export function GetPBOnChart(userID: integer, chartID: string) { diff --git a/server/src/common/session.test.ts b/server/src/utils/session.test.ts similarity index 92% rename from server/src/common/session.test.ts rename to server/src/utils/session.test.ts index 7c05dc828..d1793ede0 100644 --- a/server/src/common/session.test.ts +++ b/server/src/utils/session.test.ts @@ -1,5 +1,5 @@ import t from "tap"; -import db, { CloseMongoConnection } from "../db/db"; +import db, { CloseMongoConnection } from "../external/mongo/db"; import ResetDBState from "../test-utils/reset-db-state"; import { GetScoresFromSession } from "./session"; diff --git a/server/src/common/session.ts b/server/src/utils/session.ts similarity index 95% rename from server/src/common/session.ts rename to server/src/utils/session.ts index 7c1fca6e7..4e50a1041 100644 --- a/server/src/common/session.ts +++ b/server/src/utils/session.ts @@ -1,6 +1,6 @@ import { SessionDocument, ScoreDocument, SessionScoreInfo } from "kamaitachi-common"; import { Condition } from "mongodb"; -import db from "../db/db"; +import db from "../external/mongo/db"; /** * Returns all the score documents inside a session. diff --git a/server/src/common/tierlist.ts b/server/src/utils/tierlist.ts similarity index 95% rename from server/src/common/tierlist.ts rename to server/src/utils/tierlist.ts index 68d53b09c..cc4942f83 100644 --- a/server/src/common/tierlist.ts +++ b/server/src/utils/tierlist.ts @@ -1,7 +1,7 @@ import crypto from "crypto"; import { AnyChartDocument, Game, Playtypes } from "kamaitachi-common"; -import db from "../db/db"; -import CreateLogCtx from "./logger"; +import db from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); diff --git a/server/src/types.ts b/server/src/utils/types.ts similarity index 90% rename from server/src/types.ts rename to server/src/utils/types.ts index 1fa95acbb..53409bbc8 100644 --- a/server/src/types.ts +++ b/server/src/utils/types.ts @@ -26,8 +26,6 @@ export interface KTSuccessResponse { export type KTReponse = KTFailResponse | KTSuccessResponse; -export type KtLogger = Logger & { severe: LeveledLogMethod }; - /** * Clarity type for empty objects - such as in context. */ diff --git a/server/src/common/user.test.ts b/server/src/utils/user.test.ts similarity index 94% rename from server/src/common/user.test.ts rename to server/src/utils/user.test.ts index 1d0f0ddda..4eceec9c9 100644 --- a/server/src/common/user.test.ts +++ b/server/src/utils/user.test.ts @@ -1,6 +1,6 @@ import t from "tap"; -import { CloseMongoConnection } from "../db/db"; -import { PRUDENCE_PRIVATE_USER, PRUDENCE_PUBLIC_USER } from "../db/schemas"; +import { CloseMongoConnection } from "../external/mongo/db"; +import { PRUDENCE_PRIVATE_USER, PRUDENCE_PUBLIC_USER } from "../external/mongo/schemas"; import { prAssert } from "../test-utils/asserts"; import { GetUserCaseInsensitive, PRIVATEINFO_GetUserCaseInsensitive, FormatUserDoc } from "./user"; import { PublicUserDocument } from "kamaitachi-common"; diff --git a/server/src/common/user.ts b/server/src/utils/user.ts similarity index 83% rename from server/src/common/user.ts rename to server/src/utils/user.ts index 237f5164b..a417783d7 100644 --- a/server/src/common/user.ts +++ b/server/src/utils/user.ts @@ -1,7 +1,7 @@ import { integer, PublicUserDocument } from "kamaitachi-common"; import { FindOneResult } from "monk"; -import db from "../db/db"; -import CreateLogCtx from "./logger"; +import db from "../external/mongo/db"; +import CreateLogCtx from "../lib/logger/logger"; const logger = CreateLogCtx(__filename); @@ -103,29 +103,14 @@ export function ResolveUser(usernameOrID: string) { if (usernameOrID.match(/^[0-9]$/u)) { const intID = Number(usernameOrID); - return db.users.findOne( - { - id: intID, - }, - { - projection: OMIT_PRIVATE_USER_RETURNS, - } - ); + return GetUserWithID(intID); } - return db.users.findOne( - { - usernameLowercase: usernameOrID, - }, - { - projection: OMIT_PRIVATE_USER_RETURNS, - } - ); + return GetUserCaseInsensitive(usernameOrID); } /** * Returns a formatted string indicating the user. This is used for logging. - * (This is not in user.ts to avoid a circular reference issue with logger.ts<->db.ts) * @param userdoc The user document to format. */ export function FormatUserDoc(userdoc: PublicUserDocument) {