From 09089ede22ad382a87b6763417fc516f7bfb2b57 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Fri, 18 Apr 2025 04:33:12 +0200 Subject: [PATCH] chore: use import for static vendor manifest json files again This was changed because for VRST_WEAPON, the LocTagRandSeed is too big to be read without precision loss, but both vendors using it are now auto-generated, so we can have hot-reloading again when these files are changed. --- src/services/serversideVendorsService.ts | 96 +++++++++++++++--------- src/types/vendorTypes.ts | 2 +- 2 files changed, 60 insertions(+), 38 deletions(-) diff --git a/src/services/serversideVendorsService.ts b/src/services/serversideVendorsService.ts index f6007642..3abe56fa 100644 --- a/src/services/serversideVendorsService.ts +++ b/src/services/serversideVendorsService.ts @@ -1,6 +1,4 @@ -import fs from "fs"; -import path from "path"; -import { repoDir } from "@/src/helpers/pathHelper"; +import { unixTimesInMs } from "@/src/constants/timeConstants"; import { CRng, mixSeeds } from "@/src/services/rngService"; import { IMongoDate } from "@/src/types/commonTypes"; import { @@ -9,44 +7,68 @@ import { IVendorInfo, IVendorManifestPreprocessed } from "@/src/types/vendorTypes"; -import { JSONParse } from "json-with-bigint"; import { ExportVendors } from "warframe-public-export-plus"; -import { unixTimesInMs } from "../constants/timeConstants"; -const getVendorManifestJson = (name: string): IRawVendorManifest => { - return JSONParse(fs.readFileSync(path.join(repoDir, `static/fixed_responses/getVendorInfo/${name}.json`), "utf-8")); -}; +import ArchimedeanVendorManifest from "@/static/fixed_responses/getVendorInfo/ArchimedeanVendorManifest.json"; +import DeimosEntratiFragmentVendorProductsManifest from "@/static/fixed_responses/getVendorInfo/DeimosEntratiFragmentVendorProductsManifest.json"; +import DeimosFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosFishmongerVendorManifest.json"; +import DeimosHivemindCommisionsManifestFishmonger from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestFishmonger.json"; +import DeimosHivemindCommisionsManifestPetVendor from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestPetVendor.json"; +import DeimosHivemindCommisionsManifestProspector from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestProspector.json"; +import DeimosHivemindCommisionsManifestTokenVendor from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestTokenVendor.json"; +import DeimosHivemindCommisionsManifestWeaponsmith from "@/static/fixed_responses/getVendorInfo/DeimosHivemindCommisionsManifestWeaponsmith.json"; +import DeimosHivemindTokenVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosHivemindTokenVendorManifest.json"; +import DeimosPetVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosPetVendorManifest.json"; +import DeimosProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/DeimosProspectorVendorManifest.json"; +import DuviriAcrithisVendorManifest from "@/static/fixed_responses/getVendorInfo/DuviriAcrithisVendorManifest.json"; +import EntratiLabsEntratiLabsCommisionsManifest from "@/static/fixed_responses/getVendorInfo/EntratiLabsEntratiLabsCommisionsManifest.json"; +import EntratiLabsEntratiLabVendorManifest from "@/static/fixed_responses/getVendorInfo/EntratiLabsEntratiLabVendorManifest.json"; +import GuildAdvertisementVendorManifest from "@/static/fixed_responses/getVendorInfo/GuildAdvertisementVendorManifest.json"; +import HubsIronwakeDondaVendorManifest from "@/static/fixed_responses/getVendorInfo/HubsIronwakeDondaVendorManifest.json"; +import HubsRailjackCrewMemberVendorManifest from "@/static/fixed_responses/getVendorInfo/HubsRailjackCrewMemberVendorManifest.json"; +import MaskSalesmanManifest from "@/static/fixed_responses/getVendorInfo/MaskSalesmanManifest.json"; +import Nova1999ConquestShopManifest from "@/static/fixed_responses/getVendorInfo/Nova1999ConquestShopManifest.json"; +import OstronFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronFishmongerVendorManifest.json"; +import OstronPetVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronPetVendorManifest.json"; +import OstronProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/OstronProspectorVendorManifest.json"; +import RadioLegionIntermission12VendorManifest from "@/static/fixed_responses/getVendorInfo/RadioLegionIntermission12VendorManifest.json"; +import SolarisDebtTokenVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisDebtTokenVendorManifest.json"; +import SolarisDebtTokenVendorRepossessionsManifest from "@/static/fixed_responses/getVendorInfo/SolarisDebtTokenVendorRepossessionsManifest.json"; +import SolarisFishmongerVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisFishmongerVendorManifest.json"; +import SolarisProspectorVendorManifest from "@/static/fixed_responses/getVendorInfo/SolarisProspectorVendorManifest.json"; +import TeshinHardModeVendorManifest from "@/static/fixed_responses/getVendorInfo/TeshinHardModeVendorManifest.json"; +import ZarimanCommisionsManifestArchimedean from "@/static/fixed_responses/getVendorInfo/ZarimanCommisionsManifestArchimedean.json"; const rawVendorManifests: IRawVendorManifest[] = [ - getVendorManifestJson("ArchimedeanVendorManifest"), - getVendorManifestJson("DeimosEntratiFragmentVendorProductsManifest"), - getVendorManifestJson("DeimosFishmongerVendorManifest"), - getVendorManifestJson("DeimosHivemindCommisionsManifestFishmonger"), - getVendorManifestJson("DeimosHivemindCommisionsManifestPetVendor"), - getVendorManifestJson("DeimosHivemindCommisionsManifestProspector"), - getVendorManifestJson("DeimosHivemindCommisionsManifestTokenVendor"), - getVendorManifestJson("DeimosHivemindCommisionsManifestWeaponsmith"), - getVendorManifestJson("DeimosHivemindTokenVendorManifest"), - getVendorManifestJson("DeimosPetVendorManifest"), - getVendorManifestJson("DeimosProspectorVendorManifest"), - getVendorManifestJson("DuviriAcrithisVendorManifest"), - getVendorManifestJson("EntratiLabsEntratiLabsCommisionsManifest"), - getVendorManifestJson("EntratiLabsEntratiLabVendorManifest"), - getVendorManifestJson("GuildAdvertisementVendorManifest"), // uses preprocessing - getVendorManifestJson("HubsIronwakeDondaVendorManifest"), // uses preprocessing - getVendorManifestJson("HubsRailjackCrewMemberVendorManifest"), - getVendorManifestJson("MaskSalesmanManifest"), - getVendorManifestJson("Nova1999ConquestShopManifest"), - getVendorManifestJson("OstronFishmongerVendorManifest"), - getVendorManifestJson("OstronPetVendorManifest"), - getVendorManifestJson("OstronProspectorVendorManifest"), - getVendorManifestJson("RadioLegionIntermission12VendorManifest"), - getVendorManifestJson("SolarisDebtTokenVendorManifest"), - getVendorManifestJson("SolarisDebtTokenVendorRepossessionsManifest"), - getVendorManifestJson("SolarisFishmongerVendorManifest"), - getVendorManifestJson("SolarisProspectorVendorManifest"), - getVendorManifestJson("TeshinHardModeVendorManifest"), // uses preprocessing - getVendorManifestJson("ZarimanCommisionsManifestArchimedean") + ArchimedeanVendorManifest, + DeimosEntratiFragmentVendorProductsManifest, + DeimosFishmongerVendorManifest, + DeimosHivemindCommisionsManifestFishmonger, + DeimosHivemindCommisionsManifestPetVendor, + DeimosHivemindCommisionsManifestProspector, + DeimosHivemindCommisionsManifestTokenVendor, + DeimosHivemindCommisionsManifestWeaponsmith, + DeimosHivemindTokenVendorManifest, + DeimosPetVendorManifest, + DeimosProspectorVendorManifest, + DuviriAcrithisVendorManifest, + EntratiLabsEntratiLabsCommisionsManifest, + EntratiLabsEntratiLabVendorManifest, + GuildAdvertisementVendorManifest, // uses preprocessing + HubsIronwakeDondaVendorManifest, // uses preprocessing + HubsRailjackCrewMemberVendorManifest, + MaskSalesmanManifest, + Nova1999ConquestShopManifest, + OstronFishmongerVendorManifest, + OstronPetVendorManifest, + OstronProspectorVendorManifest, + RadioLegionIntermission12VendorManifest, + SolarisDebtTokenVendorManifest, + SolarisDebtTokenVendorRepossessionsManifest, + SolarisFishmongerVendorManifest, + SolarisProspectorVendorManifest, + TeshinHardModeVendorManifest, // uses preprocessing + ZarimanCommisionsManifestArchimedean ]; interface IGeneratableVendorInfo extends Omit { diff --git a/src/types/vendorTypes.ts b/src/types/vendorTypes.ts index 2967a1e5..f14d3f55 100644 --- a/src/types/vendorTypes.ts +++ b/src/types/vendorTypes.ts @@ -32,7 +32,7 @@ export interface IVendorInfo { TypeName: string; ItemManifest: IItemManifest[]; PropertyTextHash?: string; - RandomSeedType?: "VRST_WEAPON"; + RandomSeedType?: string; RequiredGoalTag?: string; WeaponUpgradeValueAttenuationExponent?: number; Expiry: IMongoDate; // Either a date in the distant future or a period in milliseconds for preprocessing.