From 621de306b60d673f54126dc484a37fb6b745be9e Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 09:41:09 +0200 Subject: [PATCH 1/9] Disable no-misused-promises lint --- .eslintrc | 1 + src/controllers/api/artifactsController.ts | 1 - src/controllers/api/claimCompletedRecipeController.ts | 1 - src/controllers/api/genericUpdateController.ts | 1 - src/controllers/api/getCreditsController.ts | 1 - src/controllers/api/getShipController.ts | 1 - src/controllers/api/inventoryController.ts | 1 - src/controllers/api/inventorySlotsController.ts | 1 - src/controllers/api/loginController.ts | 1 - src/controllers/api/missionInventoryUpdateController.ts | 1 - src/controllers/api/saveLoadout.ts | 1 - src/controllers/api/setActiveShipController.ts | 1 - src/controllers/api/setShipCustomizationsController.ts | 1 - src/controllers/api/shipDecorationsController.ts | 1 - src/controllers/api/startRecipeController.ts | 1 - src/controllers/api/trainingResultController.ts | 1 - src/controllers/api/updateThemeController.ts | 1 - src/controllers/custom/addItemController.ts | 1 - src/controllers/custom/createAccountController.ts | 1 - src/routes/api.ts | 2 -- 20 files changed, 1 insertion(+), 20 deletions(-) diff --git a/.eslintrc b/.eslintrc index 9c2b88f9..1646ebc8 100644 --- a/.eslintrc +++ b/.eslintrc @@ -19,6 +19,7 @@ "@typescript-eslint/restrict-plus-operands": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "@typescript-eslint/no-misused-promises": "off", "no-case-declarations": "off" }, "parser": "@typescript-eslint/parser", diff --git a/src/controllers/api/artifactsController.ts b/src/controllers/api/artifactsController.ts index 65041eca..fe5d6a7d 100644 --- a/src/controllers/api/artifactsController.ts +++ b/src/controllers/api/artifactsController.ts @@ -5,7 +5,6 @@ import { upgradeMod } from "@/src/services/inventoryService"; import { IArtifactsRequest } from "@/src/types/requestTypes"; import { RequestHandler } from "express"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const artifactsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/claimCompletedRecipeController.ts b/src/controllers/api/claimCompletedRecipeController.ts index 291516ef..2baaed70 100644 --- a/src/controllers/api/claimCompletedRecipeController.ts +++ b/src/controllers/api/claimCompletedRecipeController.ts @@ -14,7 +14,6 @@ export interface IClaimCompletedRecipeRequest { RecipeIds: IOid[]; } -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const claimCompletedRecipeController: RequestHandler = async (req, res) => { const claimCompletedRecipeRequest = getJSONfromString(req.body.toString()) as IClaimCompletedRecipeRequest; const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/genericUpdateController.ts b/src/controllers/api/genericUpdateController.ts index f2d29fc1..83c9c3aa 100644 --- a/src/controllers/api/genericUpdateController.ts +++ b/src/controllers/api/genericUpdateController.ts @@ -3,7 +3,6 @@ import { updateGeneric } from "@/src/services/inventoryService"; import { RequestHandler } from "express"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const genericUpdateController: RequestHandler = async (request, response) => { const accountId = await getAccountIdForRequest(request); const update = getJSONfromString(request.body.toString()); diff --git a/src/controllers/api/getCreditsController.ts b/src/controllers/api/getCreditsController.ts index 805b0505..348bd764 100644 --- a/src/controllers/api/getCreditsController.ts +++ b/src/controllers/api/getCreditsController.ts @@ -3,7 +3,6 @@ import { config } from "@/src/services/configService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getInventory } from "@/src/services/inventoryService"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const getCreditsController: RequestHandler = async (req, res) => { let accountId; try { diff --git a/src/controllers/api/getShipController.ts b/src/controllers/api/getShipController.ts index 3459548e..f7bed2c9 100644 --- a/src/controllers/api/getShipController.ts +++ b/src/controllers/api/getShipController.ts @@ -10,7 +10,6 @@ import { logger } from "@/src/utils/logger"; import { toOid } from "@/src/helpers/inventoryHelpers"; import { IGetShipResponse } from "@/src/types/shipTypes"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const getShipController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const personalRooms = await getPersonalRooms(accountId); diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index 368f4823..601f8530 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-misused-promises */ import { getAccountIdForRequest } from "@/src/services/loginService"; import { toInventoryResponse } from "@/src/helpers/inventoryHelpers"; import { Inventory } from "@/src/models/inventoryModels/inventoryModel"; diff --git a/src/controllers/api/inventorySlotsController.ts b/src/controllers/api/inventorySlotsController.ts index fc3c68a7..17249ea1 100644 --- a/src/controllers/api/inventorySlotsController.ts +++ b/src/controllers/api/inventorySlotsController.ts @@ -18,7 +18,6 @@ import { SlotNameToInventoryName } from "@/src/types/purchaseTypes"; number of frames = extra - slots + 2 */ -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const inventorySlotsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); //const body = JSON.parse(req.body as string) as IInventorySlotsRequest; diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index 4b0dc26b..e2768101 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -11,7 +11,6 @@ import { ILoginResponse } from "@/src/types/loginTypes"; import { DTLS, groups, HUB, platformCDNs } from "@/static/fixed_responses/login_static"; import { logger } from "@/src/utils/logger"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const loginController: RequestHandler = async (request, response) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument const body = JSON.parse(request.body); // parse octet stream of json data to json object diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index 79b4632e..0cc93ed2 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -44,7 +44,6 @@ import { IMissionInventoryUpdateRequest } from "@/src/types/requestTypes"; - [ ] FpsSamples */ -// eslint-disable-next-line @typescript-eslint/no-misused-promises const missionInventoryUpdateController: RequestHandler = async (req, res): Promise => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/saveLoadout.ts b/src/controllers/api/saveLoadout.ts index e5c180ed..38ea5559 100644 --- a/src/controllers/api/saveLoadout.ts +++ b/src/controllers/api/saveLoadout.ts @@ -4,7 +4,6 @@ import { handleInventoryItemConfigChange } from "@/src/services/saveLoadoutServi import { getAccountIdForRequest } from "@/src/services/loginService"; import { logger } from "@/src/utils/logger"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const saveLoadoutController: RequestHandler = async (req, res) => { //validate here const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/setActiveShipController.ts b/src/controllers/api/setActiveShipController.ts index eec3e8f4..9592915a 100644 --- a/src/controllers/api/setActiveShipController.ts +++ b/src/controllers/api/setActiveShipController.ts @@ -4,7 +4,6 @@ import { parseString } from "@/src/helpers/general"; import { RequestHandler } from "express"; import { Types } from "mongoose"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const setActiveShipController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const shipId = parseString(req.query.shipId); diff --git a/src/controllers/api/setShipCustomizationsController.ts b/src/controllers/api/setShipCustomizationsController.ts index 8e78b1c3..54372562 100644 --- a/src/controllers/api/setShipCustomizationsController.ts +++ b/src/controllers/api/setShipCustomizationsController.ts @@ -3,7 +3,6 @@ import { ISetShipCustomizationsRequest } from "@/src/types/shipTypes"; import { logger } from "@/src/utils/logger"; import { RequestHandler } from "express"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const setShipCustomizationsController: RequestHandler = async (req, res) => { try { const setShipCustomizationsRequest = JSON.parse(req.body as string) as ISetShipCustomizationsRequest; diff --git a/src/controllers/api/shipDecorationsController.ts b/src/controllers/api/shipDecorationsController.ts index 414bd5a2..4966ab8b 100644 --- a/src/controllers/api/shipDecorationsController.ts +++ b/src/controllers/api/shipDecorationsController.ts @@ -4,7 +4,6 @@ import { logger } from "@/src/utils/logger"; import { RequestHandler } from "express"; import { handleSetShipDecorations } from "@/src/services/shipCustomizationsService"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const shipDecorationsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const shipDecorationsRequest = JSON.parse(req.body as string) as IShipDecorationsRequest; diff --git a/src/controllers/api/startRecipeController.ts b/src/controllers/api/startRecipeController.ts index 5f770476..accd212c 100644 --- a/src/controllers/api/startRecipeController.ts +++ b/src/controllers/api/startRecipeController.ts @@ -9,7 +9,6 @@ interface IStartRecipeRequest { Ids: string[]; } -// eslint-disable-next-line @typescript-eslint/no-misused-promises export const startRecipeController: RequestHandler = async (req, res) => { const startRecipeRequest = getJSONfromString(req.body.toString()) as IStartRecipeRequest; logger.debug("StartRecipe Request", { startRecipeRequest }); diff --git a/src/controllers/api/trainingResultController.ts b/src/controllers/api/trainingResultController.ts index fcfe6734..3dc7f639 100644 --- a/src/controllers/api/trainingResultController.ts +++ b/src/controllers/api/trainingResultController.ts @@ -15,7 +15,6 @@ interface ITrainingResultsResponse { InventoryChanges: any[]; } -// eslint-disable-next-line @typescript-eslint/no-misused-promises const trainingResultController: RequestHandler = async (req, res): Promise => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/updateThemeController.ts b/src/controllers/api/updateThemeController.ts index 3736aa60..17730064 100644 --- a/src/controllers/api/updateThemeController.ts +++ b/src/controllers/api/updateThemeController.ts @@ -4,7 +4,6 @@ import { updateTheme } from "@/src/services/inventoryService"; import { IThemeUpdateRequest } from "@/src/types/requestTypes"; import { RequestHandler } from "express"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const updateThemeController: RequestHandler = async (request, response) => { const accountId = await getAccountIdForRequest(request); const body = String(request.body); diff --git a/src/controllers/custom/addItemController.ts b/src/controllers/custom/addItemController.ts index 4f01df94..0967f7b0 100644 --- a/src/controllers/custom/addItemController.ts +++ b/src/controllers/custom/addItemController.ts @@ -4,7 +4,6 @@ import { getWeaponType } from "@/src/services/itemDataService"; import { addPowerSuit, addWeapon } from "@/src/services/inventoryService"; import { RequestHandler } from "express"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const addItemController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const request = toAddItemRequest(req.body); diff --git a/src/controllers/custom/createAccountController.ts b/src/controllers/custom/createAccountController.ts index bece119c..723b31c9 100644 --- a/src/controllers/custom/createAccountController.ts +++ b/src/controllers/custom/createAccountController.ts @@ -2,7 +2,6 @@ import { toCreateAccount, toDatabaseAccount } from "@/src/helpers/customHelpers/ import { createAccount } from "@/src/services/loginService"; import { RequestHandler } from "express"; -// eslint-disable-next-line @typescript-eslint/no-misused-promises const createAccountController: RequestHandler = async (req, res) => { const createAccountData = toCreateAccount(req.body); const databaseAccount = toDatabaseAccount(createAccountData); diff --git a/src/routes/api.ts b/src/routes/api.ts index 8ca15002..222f35f2 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -86,7 +86,6 @@ apiRouter.get("/dojo", dojoController); apiRouter.get("/getGuildDojo.php", getGuildDojoController); // post -// eslint-disable-next-line @typescript-eslint/no-misused-promises apiRouter.post("/shipDecorations.php", shipDecorationsController); apiRouter.post("/setShipCustomizations.php", setShipCustomizationsController); apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController); @@ -95,7 +94,6 @@ apiRouter.post("/inventorySlots.php", inventorySlotsController); apiRouter.post("/focus.php", focusController); apiRouter.post("/artifacts.php", artifactsController); apiRouter.post("/findSessions.php", findSessionsController); -// eslint-disable-next-line @typescript-eslint/no-misused-promises apiRouter.post("/purchase.php", purchaseController); apiRouter.post("/login.php", loginController); apiRouter.post("/getAlliance.php", getAllianceController); -- 2.47.2 From 62b11d1780b3cb1c12480ff049112586e1372eee Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 09:44:04 +0200 Subject: [PATCH 2/9] Suppress ban-types errors due to mongoose model types --- src/models/inventoryModels/inventoryModel.ts | 1 + src/models/inventoryModels/loadoutModel.ts | 1 + src/types/personalRoomsTypes.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/models/inventoryModels/inventoryModel.ts b/src/models/inventoryModels/inventoryModel.ts index 7efd2ee2..c6c95ca1 100644 --- a/src/models/inventoryModels/inventoryModel.ts +++ b/src/models/inventoryModels/inventoryModel.ts @@ -1016,6 +1016,7 @@ type InventoryDocumentProps = { PendingRecipes: Types.DocumentArray; }; +// eslint-disable-next-line @typescript-eslint/ban-types type InventoryModelType = Model; export const Inventory = model("Inventory", inventorySchema); diff --git a/src/models/inventoryModels/loadoutModel.ts b/src/models/inventoryModels/loadoutModel.ts index a9afc0d7..7bd2aaa1 100644 --- a/src/models/inventoryModels/loadoutModel.ts +++ b/src/models/inventoryModels/loadoutModel.ts @@ -89,6 +89,7 @@ type loadoutDocumentProps = { DRIFTER: Types.DocumentArray; }; +// eslint-disable-next-line @typescript-eslint/ban-types type loadoutModelType = Model; export const Loadout = model("Loadout", loadoutSchema); diff --git a/src/types/personalRoomsTypes.ts b/src/types/personalRoomsTypes.ts index 68ddec83..dda71362 100644 --- a/src/types/personalRoomsTypes.ts +++ b/src/types/personalRoomsTypes.ts @@ -26,4 +26,5 @@ export type PersonalRoomsDocumentProps = { }; }; +// eslint-disable-next-line @typescript-eslint/ban-types export type PersonalRoomsModelType = Model; -- 2.47.2 From 9dd5e5c9271c4b65e48dfe06dc7824b122956dda Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 09:47:48 +0200 Subject: [PATCH 3/9] Disable warnings that are raised by calling JSON.parse --- .eslintrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.eslintrc b/.eslintrc index 1646ebc8..54386fb5 100644 --- a/.eslintrc +++ b/.eslintrc @@ -20,6 +20,8 @@ "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], "@typescript-eslint/no-misused-promises": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-unsafe-call": "off", "no-case-declarations": "off" }, "parser": "@typescript-eslint/parser", -- 2.47.2 From 61a8c63944c07155c948df912b551800d81f7c2c Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 09:54:41 +0200 Subject: [PATCH 4/9] Ensure 'npm run lint' passes without errors in workflows --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a5bff297..0af70682 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,3 +18,4 @@ jobs: - run: cp config.json.example config.json - run: echo '{"version":"","buildLabel":"","matchmakingBuildId":""}' > static/data/buildConfig.json - run: npm run build + - run: npm run lint -- 2.47.2 From 029ff27d5e59389841346804f9c9157a7080c59d Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 09:57:59 +0200 Subject: [PATCH 5/9] Resolve remaining eslint complaints --- .eslintrc | 2 ++ src/controllers/api/artifactsController.ts | 1 - src/controllers/api/claimCompletedRecipeController.ts | 1 - src/controllers/api/getGuildDojoController.ts | 2 +- src/controllers/api/getShipController.ts | 1 - src/controllers/api/inventoryController.ts | 2 +- src/controllers/api/loginController.ts | 2 +- src/controllers/api/logoutController.ts | 3 +-- src/controllers/api/updateChallengeProgressController.ts | 2 +- src/controllers/api/upgradesController.ts | 2 +- src/controllers/stats/viewController.ts | 2 +- src/helpers/customHelpers/addItemHelpers.ts | 2 +- src/index.ts | 4 +--- src/managers/sessionManager.ts | 1 + src/pathman.ts | 1 + src/types/requestTypes.ts | 2 +- 16 files changed, 14 insertions(+), 16 deletions(-) diff --git a/.eslintrc b/.eslintrc index 54386fb5..9ea4da92 100644 --- a/.eslintrc +++ b/.eslintrc @@ -22,6 +22,8 @@ "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/no-unsafe-argument": "off", "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-assignment": "warn", + "@typescript-eslint/no-explicit-any": "warn", "no-case-declarations": "off" }, "parser": "@typescript-eslint/parser", diff --git a/src/controllers/api/artifactsController.ts b/src/controllers/api/artifactsController.ts index fe5d6a7d..fb3f062d 100644 --- a/src/controllers/api/artifactsController.ts +++ b/src/controllers/api/artifactsController.ts @@ -1,4 +1,3 @@ -import { parseString } from "@/src/helpers/general"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { upgradeMod } from "@/src/services/inventoryService"; diff --git a/src/controllers/api/claimCompletedRecipeController.ts b/src/controllers/api/claimCompletedRecipeController.ts index 2baaed70..dd952fd8 100644 --- a/src/controllers/api/claimCompletedRecipeController.ts +++ b/src/controllers/api/claimCompletedRecipeController.ts @@ -8,7 +8,6 @@ import { IOid } from "@/src/types/commonTypes"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getInventory } from "@/src/services/inventoryService"; -import { IInventoryDatabase } from "@/src/types/inventoryTypes/inventoryTypes"; export interface IClaimCompletedRecipeRequest { RecipeIds: IOid[]; diff --git a/src/controllers/api/getGuildDojoController.ts b/src/controllers/api/getGuildDojoController.ts index b38b23a9..cf60ed13 100644 --- a/src/controllers/api/getGuildDojoController.ts +++ b/src/controllers/api/getGuildDojoController.ts @@ -23,7 +23,7 @@ export const getGuildDojoController: RequestHandler = async (req, res) => { CompletionTime: new Date(Date.now()) } ]; - guild.save(); + await guild.save(); } const dojo: IDojoClient = { diff --git a/src/controllers/api/getShipController.ts b/src/controllers/api/getShipController.ts index f7bed2c9..ec7e07f8 100644 --- a/src/controllers/api/getShipController.ts +++ b/src/controllers/api/getShipController.ts @@ -4,7 +4,6 @@ import allShipFeatures from "@/static/fixed_responses/allShipFeatures.json"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getPersonalRooms } from "@/src/services/personalRoomsService"; import { getShip } from "@/src/services/shipService"; -import { PersonalRooms } from "@/src/models/personalRoomsModel"; import { Loadout } from "@/src/models/inventoryModels/loadoutModel"; import { logger } from "@/src/utils/logger"; import { toOid } from "@/src/helpers/inventoryHelpers"; diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index 601f8530..29121f29 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -55,7 +55,7 @@ const inventoryController: RequestHandler = async (request: Request, response: R if (config.unlockAllSkins) { inventoryResponse.WeaponSkins = []; - for (let skin of allSkins) { + for (const skin of allSkins) { inventoryResponse.WeaponSkins.push({ ItemId: { $oid: "000000000000000000000000" diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index e2768101..30d6413e 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -65,7 +65,7 @@ const loginController: RequestHandler = async (request, response) => { if (account.Nonce == 0 || loginRequest.ClientType != "webui") { account.Nonce = nonce; - account.save(); + await account.save(); } const { email, password, ...databaseAccount } = account.toJSON(); diff --git a/src/controllers/api/logoutController.ts b/src/controllers/api/logoutController.ts index 16181d7f..735014d4 100644 --- a/src/controllers/api/logoutController.ts +++ b/src/controllers/api/logoutController.ts @@ -1,14 +1,13 @@ import { RequestHandler } from "express"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { Account } from "@/src/models/loginModel"; -import { IDatabaseAccountDocument } from "@/src/types/loginTypes"; const logoutController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const account = await Account.findOne({ _id: accountId }); if (account) { account.Nonce = 0; - account.save(); + await account.save(); } res.writeHead(200, { "Content-Type": "text/html", diff --git a/src/controllers/api/updateChallengeProgressController.ts b/src/controllers/api/updateChallengeProgressController.ts index 887224e3..45490ce3 100644 --- a/src/controllers/api/updateChallengeProgressController.ts +++ b/src/controllers/api/updateChallengeProgressController.ts @@ -13,7 +13,7 @@ const updateChallengeProgressController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const inventory = await getInventory(accountId); addChallenges(inventory, payload.ChallengeProgress); - inventory.save(); + await inventory.save(); res.status(200).end(); }; diff --git a/src/controllers/api/upgradesController.ts b/src/controllers/api/upgradesController.ts index f617b70a..09592daf 100644 --- a/src/controllers/api/upgradesController.ts +++ b/src/controllers/api/upgradesController.ts @@ -15,7 +15,7 @@ export const upgradesController: RequestHandler = async (req, res) => { operation.UpgradeRequirement == "/Lotus/Types/Items/MiscItems/ModSlotUnlocker" || operation.UpgradeRequirement == "/Lotus/Types/Items/MiscItems/CustomizationSlotUnlocker" ) { - updateCurrency(10, true, accountId); + await updateCurrency(10, true, accountId); } else { addMiscItems(inventory, [ { diff --git a/src/controllers/stats/viewController.ts b/src/controllers/stats/viewController.ts index 2e014507..03372433 100644 --- a/src/controllers/stats/viewController.ts +++ b/src/controllers/stats/viewController.ts @@ -8,7 +8,7 @@ import allScans from "@/static/fixed_responses/allScans.json"; const viewController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); - const inventory = await Inventory.findOne({ accountOwnerId: req.query.accountId }); + const inventory = await Inventory.findOne({ accountOwnerId: accountId }); if (!inventory) { res.status(400).json({ error: "inventory was undefined" }); return; diff --git a/src/helpers/customHelpers/addItemHelpers.ts b/src/helpers/customHelpers/addItemHelpers.ts index 4371856a..2b1f464d 100644 --- a/src/helpers/customHelpers/addItemHelpers.ts +++ b/src/helpers/customHelpers/addItemHelpers.ts @@ -1,4 +1,4 @@ -import { isString, parseString } from "@/src/helpers/general"; +import { isString } from "@/src/helpers/general"; import { items } from "@/src/services/itemDataService"; export enum ItemType { diff --git a/src/index.ts b/src/index.ts index 9c2a3e9a..a6af9b29 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,9 +20,7 @@ const httpsPort = config.httpsPort || 443; // const server = http.createServer(app).listen(80); http.createServer(app).listen(httpPort, () => logger.info("HTTP server started on port " + httpPort)); -const server = https - .createServer(options, app) - .listen(httpsPort, () => logger.info("HTTPS server started on port " + httpsPort)); +https.createServer(options, app).listen(httpsPort, () => logger.info("HTTPS server started on port " + httpsPort)); // server.keepAliveTimeout = 60 * 1000 + 1000; // server.headersTimeout = 60 * 1000 + 2000; diff --git a/src/managers/sessionManager.ts b/src/managers/sessionManager.ts index 54fae2e5..3a6ac40c 100644 --- a/src/managers/sessionManager.ts +++ b/src/managers/sessionManager.ts @@ -25,6 +25,7 @@ function createNewSession(sessionData: ISession, Creator: string): ISession { customSettings: sessionData.customSettings || "", rewardSeed: sessionData.rewardSeed || -1, guildId: sessionData.guildId || "", + // eslint-disable-next-line @typescript-eslint/no-loss-of-precision buildId: sessionData.buildId || 4920386201513015989, platform: sessionData.platform || 0, xplatform: sessionData.xplatform || true, diff --git a/src/pathman.ts b/src/pathman.ts index 1e1d5127..0d41bc4b 100644 --- a/src/pathman.ts +++ b/src/pathman.ts @@ -1,6 +1,7 @@ // Hooks node to support require from "@/" paths for `npm run build && npm run start`. // Based on https://github.com/dividab/tsconfig-paths +/* eslint-disable */ const Module = require("module"); const originalResolveFilename = Module._resolveFilename; Module._resolveFilename = function (request: string, _parent: any): string { diff --git a/src/types/requestTypes.ts b/src/types/requestTypes.ts index c58217f0..6693c598 100644 --- a/src/types/requestTypes.ts +++ b/src/types/requestTypes.ts @@ -80,5 +80,5 @@ export interface IUpgradeOperation { UpgradeRequirement: string; // uniqueName of item being consumed PolarizeSlot: number; PolarizeValue: FocusSchool; - PolarityRemap: {}[]; + PolarityRemap: object[]; } -- 2.47.2 From 9beb57b6ce10baec9b4fdbc5f9aa6bfa4ccb710e Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 10:18:03 +0200 Subject: [PATCH 6/9] Don't raise prettier complaints in 'npm run lint' --- .eslintrc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index 9ea4da92..dc4ba558 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,14 +4,13 @@ "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking" ], - "plugins": ["@typescript-eslint", "prettier"], + "plugins": ["@typescript-eslint"], "env": { "browser": true, "es6": true, "node": true }, "rules": { - "prettier/prettier": "error", "@typescript-eslint/semi": ["error"], "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/explicit-module-boundary-types": "off", -- 2.47.2 From 61bb0636ec9c532113cfb92e5e439111915f3860 Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 13:33:29 +0200 Subject: [PATCH 7/9] Use 'warn' instead of 'off' --- .eslintrc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.eslintrc b/.eslintrc index dc4ba558..8bf18ad7 100644 --- a/.eslintrc +++ b/.eslintrc @@ -12,18 +12,18 @@ }, "rules": { "@typescript-eslint/semi": ["error"], - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/restrict-template-expressions": "off", - "@typescript-eslint/restrict-plus-operands": "off", - "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/explicit-function-return-type": "warn", + "@typescript-eslint/explicit-module-boundary-types": "warn", + "@typescript-eslint/restrict-template-expressions": "warn", + "@typescript-eslint/restrict-plus-operands": "warn", + "@typescript-eslint/no-unsafe-member-access": "warn", "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], - "@typescript-eslint/no-misused-promises": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-misused-promises": "warn", + "@typescript-eslint/no-unsafe-argument": "warn", + "@typescript-eslint/no-unsafe-call": "warn", "@typescript-eslint/no-unsafe-assignment": "warn", "@typescript-eslint/no-explicit-any": "warn", - "no-case-declarations": "off" + "no-case-declarations": "warn" }, "parser": "@typescript-eslint/parser", "parserOptions": { -- 2.47.2 From 01bfaee7758a4ef0bfbf6941524f2cb64faeb1ad Mon Sep 17 00:00:00 2001 From: Sainan Date: Fri, 31 May 2024 14:03:13 +0200 Subject: [PATCH 8/9] --- .eslintrc | 1 + src/index.ts | 3 ++- src/managers/sessionManager.ts | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.eslintrc b/.eslintrc index 8bf18ad7..615dc50a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -23,6 +23,7 @@ "@typescript-eslint/no-unsafe-call": "warn", "@typescript-eslint/no-unsafe-assignment": "warn", "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-loss-of-precision": "warn", "no-case-declarations": "warn" }, "parser": "@typescript-eslint/parser", diff --git a/src/index.ts b/src/index.ts index a6af9b29..e82fd2fe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,7 +20,8 @@ const httpsPort = config.httpsPort || 443; // const server = http.createServer(app).listen(80); http.createServer(app).listen(httpPort, () => logger.info("HTTP server started on port " + httpPort)); -https.createServer(options, app).listen(httpsPort, () => logger.info("HTTPS server started on port " + httpsPort)); +const server = https.createServer(options, app); +server.listen(httpsPort, () => logger.info("HTTPS server started on port " + httpsPort)); // server.keepAliveTimeout = 60 * 1000 + 1000; // server.headersTimeout = 60 * 1000 + 2000; diff --git a/src/managers/sessionManager.ts b/src/managers/sessionManager.ts index 3a6ac40c..54fae2e5 100644 --- a/src/managers/sessionManager.ts +++ b/src/managers/sessionManager.ts @@ -25,7 +25,6 @@ function createNewSession(sessionData: ISession, Creator: string): ISession { customSettings: sessionData.customSettings || "", rewardSeed: sessionData.rewardSeed || -1, guildId: sessionData.guildId || "", - // eslint-disable-next-line @typescript-eslint/no-loss-of-precision buildId: sessionData.buildId || 4920386201513015989, platform: sessionData.platform || 0, xplatform: sessionData.xplatform || true, -- 2.47.2 From a5507b961449327f4acbff05df9f068ef5f642cd Mon Sep 17 00:00:00 2001 From: Sainan Date: Sat, 1 Jun 2024 13:00:39 +0200 Subject: [PATCH 9/9] Revert removed comments --- src/controllers/api/artifactsController.ts | 1 + src/controllers/api/claimCompletedRecipeController.ts | 1 + src/controllers/api/genericUpdateController.ts | 1 + src/controllers/api/getCreditsController.ts | 1 + src/controllers/api/getShipController.ts | 1 + src/controllers/api/inventoryController.ts | 1 + src/controllers/api/inventorySlotsController.ts | 1 + src/controllers/api/loginController.ts | 1 + src/controllers/api/missionInventoryUpdateController.ts | 1 + src/controllers/api/saveLoadout.ts | 1 + src/controllers/api/setActiveShipController.ts | 1 + src/controllers/api/setShipCustomizationsController.ts | 1 + src/controllers/api/shipDecorationsController.ts | 1 + src/controllers/api/startRecipeController.ts | 1 + src/controllers/api/trainingResultController.ts | 1 + src/controllers/api/updateThemeController.ts | 1 + src/controllers/custom/addItemController.ts | 1 + src/controllers/custom/createAccountController.ts | 1 + src/routes/api.ts | 2 ++ 19 files changed, 20 insertions(+) diff --git a/src/controllers/api/artifactsController.ts b/src/controllers/api/artifactsController.ts index fb3f062d..6b6f6248 100644 --- a/src/controllers/api/artifactsController.ts +++ b/src/controllers/api/artifactsController.ts @@ -4,6 +4,7 @@ import { upgradeMod } from "@/src/services/inventoryService"; import { IArtifactsRequest } from "@/src/types/requestTypes"; import { RequestHandler } from "express"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const artifactsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/claimCompletedRecipeController.ts b/src/controllers/api/claimCompletedRecipeController.ts index dd952fd8..52236166 100644 --- a/src/controllers/api/claimCompletedRecipeController.ts +++ b/src/controllers/api/claimCompletedRecipeController.ts @@ -13,6 +13,7 @@ export interface IClaimCompletedRecipeRequest { RecipeIds: IOid[]; } +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const claimCompletedRecipeController: RequestHandler = async (req, res) => { const claimCompletedRecipeRequest = getJSONfromString(req.body.toString()) as IClaimCompletedRecipeRequest; const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/genericUpdateController.ts b/src/controllers/api/genericUpdateController.ts index 83c9c3aa..f2d29fc1 100644 --- a/src/controllers/api/genericUpdateController.ts +++ b/src/controllers/api/genericUpdateController.ts @@ -3,6 +3,7 @@ import { updateGeneric } from "@/src/services/inventoryService"; import { RequestHandler } from "express"; import { getJSONfromString } from "@/src/helpers/stringHelpers"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const genericUpdateController: RequestHandler = async (request, response) => { const accountId = await getAccountIdForRequest(request); const update = getJSONfromString(request.body.toString()); diff --git a/src/controllers/api/getCreditsController.ts b/src/controllers/api/getCreditsController.ts index 348bd764..805b0505 100644 --- a/src/controllers/api/getCreditsController.ts +++ b/src/controllers/api/getCreditsController.ts @@ -3,6 +3,7 @@ import { config } from "@/src/services/configService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { getInventory } from "@/src/services/inventoryService"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const getCreditsController: RequestHandler = async (req, res) => { let accountId; try { diff --git a/src/controllers/api/getShipController.ts b/src/controllers/api/getShipController.ts index ec7e07f8..f0ba4468 100644 --- a/src/controllers/api/getShipController.ts +++ b/src/controllers/api/getShipController.ts @@ -9,6 +9,7 @@ import { logger } from "@/src/utils/logger"; import { toOid } from "@/src/helpers/inventoryHelpers"; import { IGetShipResponse } from "@/src/types/shipTypes"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const getShipController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const personalRooms = await getPersonalRooms(accountId); diff --git a/src/controllers/api/inventoryController.ts b/src/controllers/api/inventoryController.ts index 29121f29..a2fed533 100644 --- a/src/controllers/api/inventoryController.ts +++ b/src/controllers/api/inventoryController.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-misused-promises */ import { getAccountIdForRequest } from "@/src/services/loginService"; import { toInventoryResponse } from "@/src/helpers/inventoryHelpers"; import { Inventory } from "@/src/models/inventoryModels/inventoryModel"; diff --git a/src/controllers/api/inventorySlotsController.ts b/src/controllers/api/inventorySlotsController.ts index 17249ea1..fc3c68a7 100644 --- a/src/controllers/api/inventorySlotsController.ts +++ b/src/controllers/api/inventorySlotsController.ts @@ -18,6 +18,7 @@ import { SlotNameToInventoryName } from "@/src/types/purchaseTypes"; number of frames = extra - slots + 2 */ +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const inventorySlotsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); //const body = JSON.parse(req.body as string) as IInventorySlotsRequest; diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index 30d6413e..0b9477b1 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -11,6 +11,7 @@ import { ILoginResponse } from "@/src/types/loginTypes"; import { DTLS, groups, HUB, platformCDNs } from "@/static/fixed_responses/login_static"; import { logger } from "@/src/utils/logger"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const loginController: RequestHandler = async (request, response) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument const body = JSON.parse(request.body); // parse octet stream of json data to json object diff --git a/src/controllers/api/missionInventoryUpdateController.ts b/src/controllers/api/missionInventoryUpdateController.ts index 0cc93ed2..79b4632e 100644 --- a/src/controllers/api/missionInventoryUpdateController.ts +++ b/src/controllers/api/missionInventoryUpdateController.ts @@ -44,6 +44,7 @@ import { IMissionInventoryUpdateRequest } from "@/src/types/requestTypes"; - [ ] FpsSamples */ +// eslint-disable-next-line @typescript-eslint/no-misused-promises const missionInventoryUpdateController: RequestHandler = async (req, res): Promise => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/saveLoadout.ts b/src/controllers/api/saveLoadout.ts index 38ea5559..e5c180ed 100644 --- a/src/controllers/api/saveLoadout.ts +++ b/src/controllers/api/saveLoadout.ts @@ -4,6 +4,7 @@ import { handleInventoryItemConfigChange } from "@/src/services/saveLoadoutServi import { getAccountIdForRequest } from "@/src/services/loginService"; import { logger } from "@/src/utils/logger"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const saveLoadoutController: RequestHandler = async (req, res) => { //validate here const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/setActiveShipController.ts b/src/controllers/api/setActiveShipController.ts index 9592915a..eec3e8f4 100644 --- a/src/controllers/api/setActiveShipController.ts +++ b/src/controllers/api/setActiveShipController.ts @@ -4,6 +4,7 @@ import { parseString } from "@/src/helpers/general"; import { RequestHandler } from "express"; import { Types } from "mongoose"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const setActiveShipController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const shipId = parseString(req.query.shipId); diff --git a/src/controllers/api/setShipCustomizationsController.ts b/src/controllers/api/setShipCustomizationsController.ts index 54372562..8e78b1c3 100644 --- a/src/controllers/api/setShipCustomizationsController.ts +++ b/src/controllers/api/setShipCustomizationsController.ts @@ -3,6 +3,7 @@ import { ISetShipCustomizationsRequest } from "@/src/types/shipTypes"; import { logger } from "@/src/utils/logger"; import { RequestHandler } from "express"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const setShipCustomizationsController: RequestHandler = async (req, res) => { try { const setShipCustomizationsRequest = JSON.parse(req.body as string) as ISetShipCustomizationsRequest; diff --git a/src/controllers/api/shipDecorationsController.ts b/src/controllers/api/shipDecorationsController.ts index 4966ab8b..414bd5a2 100644 --- a/src/controllers/api/shipDecorationsController.ts +++ b/src/controllers/api/shipDecorationsController.ts @@ -4,6 +4,7 @@ import { logger } from "@/src/utils/logger"; import { RequestHandler } from "express"; import { handleSetShipDecorations } from "@/src/services/shipCustomizationsService"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const shipDecorationsController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const shipDecorationsRequest = JSON.parse(req.body as string) as IShipDecorationsRequest; diff --git a/src/controllers/api/startRecipeController.ts b/src/controllers/api/startRecipeController.ts index accd212c..5f770476 100644 --- a/src/controllers/api/startRecipeController.ts +++ b/src/controllers/api/startRecipeController.ts @@ -9,6 +9,7 @@ interface IStartRecipeRequest { Ids: string[]; } +// eslint-disable-next-line @typescript-eslint/no-misused-promises export const startRecipeController: RequestHandler = async (req, res) => { const startRecipeRequest = getJSONfromString(req.body.toString()) as IStartRecipeRequest; logger.debug("StartRecipe Request", { startRecipeRequest }); diff --git a/src/controllers/api/trainingResultController.ts b/src/controllers/api/trainingResultController.ts index 3dc7f639..fcfe6734 100644 --- a/src/controllers/api/trainingResultController.ts +++ b/src/controllers/api/trainingResultController.ts @@ -15,6 +15,7 @@ interface ITrainingResultsResponse { InventoryChanges: any[]; } +// eslint-disable-next-line @typescript-eslint/no-misused-promises const trainingResultController: RequestHandler = async (req, res): Promise => { const accountId = await getAccountIdForRequest(req); diff --git a/src/controllers/api/updateThemeController.ts b/src/controllers/api/updateThemeController.ts index 17730064..3736aa60 100644 --- a/src/controllers/api/updateThemeController.ts +++ b/src/controllers/api/updateThemeController.ts @@ -4,6 +4,7 @@ import { updateTheme } from "@/src/services/inventoryService"; import { IThemeUpdateRequest } from "@/src/types/requestTypes"; import { RequestHandler } from "express"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const updateThemeController: RequestHandler = async (request, response) => { const accountId = await getAccountIdForRequest(request); const body = String(request.body); diff --git a/src/controllers/custom/addItemController.ts b/src/controllers/custom/addItemController.ts index 0967f7b0..4f01df94 100644 --- a/src/controllers/custom/addItemController.ts +++ b/src/controllers/custom/addItemController.ts @@ -4,6 +4,7 @@ import { getWeaponType } from "@/src/services/itemDataService"; import { addPowerSuit, addWeapon } from "@/src/services/inventoryService"; import { RequestHandler } from "express"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const addItemController: RequestHandler = async (req, res) => { const accountId = await getAccountIdForRequest(req); const request = toAddItemRequest(req.body); diff --git a/src/controllers/custom/createAccountController.ts b/src/controllers/custom/createAccountController.ts index 723b31c9..bece119c 100644 --- a/src/controllers/custom/createAccountController.ts +++ b/src/controllers/custom/createAccountController.ts @@ -2,6 +2,7 @@ import { toCreateAccount, toDatabaseAccount } from "@/src/helpers/customHelpers/ import { createAccount } from "@/src/services/loginService"; import { RequestHandler } from "express"; +// eslint-disable-next-line @typescript-eslint/no-misused-promises const createAccountController: RequestHandler = async (req, res) => { const createAccountData = toCreateAccount(req.body); const databaseAccount = toDatabaseAccount(createAccountData); diff --git a/src/routes/api.ts b/src/routes/api.ts index 222f35f2..8ca15002 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -86,6 +86,7 @@ apiRouter.get("/dojo", dojoController); apiRouter.get("/getGuildDojo.php", getGuildDojoController); // post +// eslint-disable-next-line @typescript-eslint/no-misused-promises apiRouter.post("/shipDecorations.php", shipDecorationsController); apiRouter.post("/setShipCustomizations.php", setShipCustomizationsController); apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController); @@ -94,6 +95,7 @@ apiRouter.post("/inventorySlots.php", inventorySlotsController); apiRouter.post("/focus.php", focusController); apiRouter.post("/artifacts.php", artifactsController); apiRouter.post("/findSessions.php", findSessionsController); +// eslint-disable-next-line @typescript-eslint/no-misused-promises apiRouter.post("/purchase.php", purchaseController); apiRouter.post("/login.php", loginController); apiRouter.post("/getAlliance.php", getAllianceController); -- 2.47.2