koishi-plugin-warframe 1.14.0 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/lib/index.d.ts +293 -147
- package/lib/index.js +1640 -1363
- package/lib/index.tsbuildinfo +1 -1
- package/lib/warframe/assets/zh.json +10389 -8971
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -40,6 +40,7 @@ Toolkit for Warframe. Provides Warframe Market prices, fissures, arbitrations, r
|
|
|
40
40
|
| `circuit` | | `灵化之源`, `灵化` | Query weekly circuit rewards (warframes and incarnon adapters). |
|
|
41
41
|
| `steel-essence` | | `钢铁精华` | Query this week's Steel Essence shop rotation (current offering, remaining time, upcoming). |
|
|
42
42
|
| `1999calendar` | | `日历`, `1999日历`, `霍瓦尼亚日历` | Query the current 1999 Höllvania calendar tagged days (challenges, overrides, rewards). |
|
|
43
|
+
| `event` | | `活动`, `事件` | Query active world events (progress, rewards, remaining time). |
|
|
43
44
|
|
|
44
45
|
### Open World Cycles
|
|
45
46
|
|
package/lib/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ declare module "warframe/types/ocr" {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
declare module "warframe/types/warframe-result" {
|
|
37
|
-
export const warframeErrorCodes: readonly ["common.fetchFailed", "relic.invalidName", "relic.dataLoading", "relic.notFound", "arbitration.invalidDayRange", "bounty.unavailable", "invasion.unavailable", "alert.unavailable", "calendar.unavailable", "steelEssence.unavailable", "nightwave.unavailable", "sortie.unavailable", "voidTrader.drifting", "voidTrader.arriving", "riven.imageFetchFailed", "riven.imageParseFailed", "riven.weaponNotFound", "riven.dispositionError", "riven.weaponTypeError", "riven.statTypeError", "wfm.inputItemName", "wfm.itemNotFound", "wfm.itemAmbiguous", "wfm.orderFetchFailed", "wfm.noOnlineSeller", "wfm.rivenWeaponNotFound", "wfm.rivenOrderFetchFailed", "wfm.noOnlineRivenSeller", "miscs.hotRiven.noData", "miscs.hotRiven.fetchFailed"];
|
|
37
|
+
export const warframeErrorCodes: readonly ["common.fetchFailed", "relic.invalidName", "relic.dataLoading", "relic.notFound", "arbitration.invalidDayRange", "bounty.unavailable", "invasion.unavailable", "alert.unavailable", "event.unavailable", "calendar.unavailable", "steelEssence.unavailable", "nightwave.unavailable", "sortie.unavailable", "voidTrader.drifting", "voidTrader.arriving", "riven.imageFetchFailed", "riven.imageParseFailed", "riven.weaponNotFound", "riven.dispositionError", "riven.weaponTypeError", "riven.statTypeError", "wfm.inputItemName", "wfm.itemNotFound", "wfm.itemAmbiguous", "wfm.orderFetchFailed", "wfm.noOnlineSeller", "wfm.rivenWeaponNotFound", "wfm.rivenOrderFetchFailed", "wfm.noOnlineRivenSeller", "miscs.hotRiven.noData", "miscs.hotRiven.fetchFailed"];
|
|
38
38
|
export type WarframeErrorCode = typeof warframeErrorCodes[number];
|
|
39
39
|
export type WarframeErrorParams = Record<string, string | number>;
|
|
40
40
|
export interface WarframeError {
|
|
@@ -266,6 +266,67 @@ declare module "warframe/types/wf/calendar" {
|
|
|
266
266
|
days: CalendarDayInfo[];
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
|
+
declare module "warframe/types/wf/event" {
|
|
270
|
+
import type { RawMongoDate } from "warframe/types/wf/nightwave";
|
|
271
|
+
import type { WFRegionShort } from "warframe/types/wf/region";
|
|
272
|
+
export interface RawEventCountedItem {
|
|
273
|
+
ItemType?: string;
|
|
274
|
+
ItemCount?: number;
|
|
275
|
+
type?: string;
|
|
276
|
+
key?: string;
|
|
277
|
+
count?: number;
|
|
278
|
+
}
|
|
279
|
+
export interface RawEventReward {
|
|
280
|
+
items?: string[];
|
|
281
|
+
countedItems?: RawEventCountedItem[];
|
|
282
|
+
credits?: number;
|
|
283
|
+
}
|
|
284
|
+
export interface RawWorldEvent {
|
|
285
|
+
_id?: {
|
|
286
|
+
$oid?: string;
|
|
287
|
+
$id?: string;
|
|
288
|
+
};
|
|
289
|
+
Activation?: RawMongoDate;
|
|
290
|
+
Expiry?: RawMongoDate;
|
|
291
|
+
Node?: string;
|
|
292
|
+
Count?: number;
|
|
293
|
+
Goal?: number;
|
|
294
|
+
HealthPct?: number;
|
|
295
|
+
Desc?: string;
|
|
296
|
+
ToolTip?: string;
|
|
297
|
+
ScoreLocTag?: string;
|
|
298
|
+
Tag?: string;
|
|
299
|
+
Reward?: RawEventReward;
|
|
300
|
+
InterimGoals?: number[];
|
|
301
|
+
InterimRewards?: RawEventReward[];
|
|
302
|
+
}
|
|
303
|
+
export interface EventReward {
|
|
304
|
+
name: string;
|
|
305
|
+
count: number;
|
|
306
|
+
}
|
|
307
|
+
export interface EventInterimStep {
|
|
308
|
+
goal: number;
|
|
309
|
+
rewards: EventReward[];
|
|
310
|
+
}
|
|
311
|
+
export interface EventInfo {
|
|
312
|
+
id: string;
|
|
313
|
+
name: string;
|
|
314
|
+
description?: string;
|
|
315
|
+
scoreLabel?: string;
|
|
316
|
+
node?: WFRegionShort;
|
|
317
|
+
remaining?: string;
|
|
318
|
+
expiry: number;
|
|
319
|
+
currentScore: number;
|
|
320
|
+
maximumScore: number;
|
|
321
|
+
progress?: number;
|
|
322
|
+
rewards: EventReward[];
|
|
323
|
+
interimSteps: EventInterimStep[];
|
|
324
|
+
}
|
|
325
|
+
export interface EventBoard {
|
|
326
|
+
title: string;
|
|
327
|
+
events: EventInfo[];
|
|
328
|
+
}
|
|
329
|
+
}
|
|
269
330
|
declare module "warframe/types/wf/fissure" {
|
|
270
331
|
import type { WFRegionShort } from "warframe/types/wf/region";
|
|
271
332
|
export interface Fissure {
|
|
@@ -570,6 +631,7 @@ declare module "warframe/types/index" {
|
|
|
570
631
|
export type { Arbitration, ArbitrationShort } from "warframe/types/wf/arbitration";
|
|
571
632
|
export type { BountyBoard, BountyJob, BountyLocation, BountyReward, BountyRewardRarity, BountyStandingUnit, OracleBountyCycle, OracleBountyEntry, RawSyndicateJob, RawSyndicateMission, } from "warframe/types/wf/bounty";
|
|
572
633
|
export type { CalendarBoard, CalendarDayInfo, CalendarEventInfo, CalendarEventKind, RawCalendarDay, RawCalendarEvent, RawCalendarSeason, } from "warframe/types/wf/calendar";
|
|
634
|
+
export type { EventBoard, EventInfo, EventInterimStep, EventReward, RawEventCountedItem, RawEventReward, RawWorldEvent, } from "warframe/types/wf/event";
|
|
573
635
|
export type { Fissure } from "warframe/types/wf/fissure";
|
|
574
636
|
export type { Invasion, InvasionBoard, InvasionFactionTone, InvasionPlanetGroup, InvasionReward, InvasionSide, RawInvasion, RawInvasionCountedItem, RawInvasionMissionInfo, RawInvasionReward, } from "warframe/types/wf/invasion";
|
|
575
637
|
export type { NightwaveBoard, NightwaveChallengeInfo, NightwaveChallengeKind, RawMongoDate, RawNightwaveActiveChallenge, RawSeasonInfo, } from "warframe/types/wf/nightwave";
|
|
@@ -674,24 +736,14 @@ declare module "warframe/assets/index" {
|
|
|
674
736
|
export const BaroParsed: BaroParsedItem[];
|
|
675
737
|
export const warframeAlias: Record<string, string[]>;
|
|
676
738
|
}
|
|
677
|
-
declare module "warframe/data/wf/arbitrationSchedule" {
|
|
678
|
-
import type { ArbitrationShort } from "warframe/types/index";
|
|
679
|
-
export const arbitrationSchedule: ArbitrationShort[];
|
|
680
|
-
}
|
|
681
|
-
declare module "warframe/data/wf/archonHunt" {
|
|
682
|
-
export function getArchonHuntModeName(): string;
|
|
683
|
-
export function getArchonHuntEnemyLevels(index: number): {
|
|
684
|
-
minLevel: number;
|
|
685
|
-
maxLevel: number;
|
|
686
|
-
};
|
|
687
|
-
}
|
|
688
739
|
declare module "warframe/infrastructure/wf/wf-api" {
|
|
689
740
|
import type WorldState from 'warframe-worldstate-parser';
|
|
690
|
-
import type { OracleBountyCycle, RawCalendarSeason, RawInvasion, RawSeasonInfo, RawSortie, RawSyndicateMission } from "warframe/types/index";
|
|
741
|
+
import type { OracleBountyCycle, RawCalendarSeason, RawInvasion, RawSeasonInfo, RawSortie, RawSyndicateMission, RawWorldEvent } from "warframe/types/index";
|
|
691
742
|
export function extractSyndicateMissionsRaw(json: string): RawSyndicateMission[];
|
|
692
743
|
export function extractSeasonInfoRaw(json: string): RawSeasonInfo | undefined;
|
|
693
744
|
export function extractSortieRaw(json: string): RawSortie | undefined;
|
|
694
745
|
export function extractInvasionsRaw(json: string): RawInvasion[];
|
|
746
|
+
export function extractEventsRaw(json: string): RawWorldEvent[];
|
|
695
747
|
export function extractCalendarRaw(json: string): RawCalendarSeason | undefined;
|
|
696
748
|
export function fetchWorldStateJson(): Promise<string | undefined>;
|
|
697
749
|
/** browse.wf Oracle bounty cycle (Zariman / Cavia / Hex). */
|
|
@@ -713,11 +765,6 @@ declare module "warframe/infrastructure/wf/wf-api" {
|
|
|
713
765
|
[itemName: string]: VoidTraderItem;
|
|
714
766
|
}
|
|
715
767
|
}
|
|
716
|
-
declare module "warframe/data/wf/globalOracleBountyCycle" {
|
|
717
|
-
import type { AsyncCache, OracleBountyCycle } from "warframe/types/index";
|
|
718
|
-
export let globalOracleBountyCycle: AsyncCache<OracleBountyCycle | undefined>;
|
|
719
|
-
export function overrideGlobalOracleBountyCycle(cache: AsyncCache<OracleBountyCycle | undefined>): void;
|
|
720
|
-
}
|
|
721
768
|
declare module "warframe/infrastructure/wf/wf-export-adapter" {
|
|
722
769
|
import type { IRegion } from 'warframe-public-export-plus';
|
|
723
770
|
import type { RelicQuality, WFRegionShort } from "warframe/types/index";
|
|
@@ -779,43 +826,165 @@ declare module "warframe/infrastructure/wf/wfcd-adapter" {
|
|
|
779
826
|
}
|
|
780
827
|
declare module "warframe/data/wf/globalWorldState" {
|
|
781
828
|
import type WorldState from 'warframe-worldstate-parser';
|
|
782
|
-
import type { Fissure, RawCalendarSeason, RawSeasonInfo, RawSyndicateMission } from "warframe/types/index";
|
|
829
|
+
import type { AsyncCache, Fissure, RawCalendarSeason, RawInvasion, RawSeasonInfo, RawSortie, RawSyndicateMission, RawWorldEvent } from "warframe/types/index";
|
|
783
830
|
type ParsedFissure = WorldState['fissures'][number];
|
|
784
|
-
export
|
|
785
|
-
export const globalWorldState: import("warframe").AsyncCache<{
|
|
831
|
+
export interface GlobalWorldStateData {
|
|
786
832
|
raw: WorldState;
|
|
787
833
|
syndicateMissionsRaw: RawSyndicateMission[];
|
|
788
834
|
seasonInfoRaw: RawSeasonInfo | undefined;
|
|
789
|
-
sortieRaw:
|
|
790
|
-
invasionsRaw:
|
|
835
|
+
sortieRaw: RawSortie | undefined;
|
|
836
|
+
invasionsRaw: RawInvasion[];
|
|
791
837
|
calendarRaw: RawCalendarSeason | undefined;
|
|
838
|
+
eventsRaw: RawWorldEvent[];
|
|
792
839
|
fissures: Fissure[];
|
|
793
840
|
spFissures: Fissure[];
|
|
794
841
|
rjFissures: Fissure[];
|
|
795
|
-
}
|
|
842
|
+
}
|
|
843
|
+
export function adaptFissure(fissure: ParsedFissure): Promise<Fissure>;
|
|
844
|
+
export function globalWorldStateFactory(json?: string): Promise<GlobalWorldStateData>;
|
|
845
|
+
export let globalWorldState: AsyncCache<GlobalWorldStateData>;
|
|
846
|
+
export function overrideGlobalWorldState(cache: AsyncCache<GlobalWorldStateData>): void;
|
|
847
|
+
}
|
|
848
|
+
declare module "warframe/infrastructure/wf/bounty-adapter" {
|
|
849
|
+
import type { BountyBoard, BountyLocation, BountyRewardRarity, OracleBountyCycle, RawSyndicateMission } from "warframe/types/index";
|
|
850
|
+
export const bountyLocationTag: Record<BountyLocation, string>;
|
|
851
|
+
/** Locations whose Jobs are empty in official WorldState; use browse.wf Oracle. */
|
|
852
|
+
export const oracleBountyLocations: Set<BountyLocation>;
|
|
853
|
+
/**
|
|
854
|
+
* Map drop probability to 铜/银/金 within one stage.
|
|
855
|
+
* Highest unique probability → bronze, lowest → gold, middle → silver.
|
|
856
|
+
* With only two buckets: highest → bronze, lower → silver.
|
|
857
|
+
*/
|
|
858
|
+
export function rarityFromStageProbabilities(probability: number, uniqueSortedDesc: number[]): BountyRewardRarity;
|
|
859
|
+
export function resolveExportItemNameZh(sourceKey: string): string;
|
|
860
|
+
export function adaptBountyBoard(location: BountyLocation, mission: RawSyndicateMission | undefined): BountyBoard | undefined;
|
|
861
|
+
export function findRawSyndicateMission(missions: RawSyndicateMission[], location: BountyLocation): RawSyndicateMission | undefined;
|
|
862
|
+
export function formatOracleChallenge(challengePath: string): string;
|
|
863
|
+
export function adaptOracleBountyBoard(location: 'zariman' | 'cavia' | 'hex', cycle: OracleBountyCycle | undefined): BountyBoard | undefined;
|
|
864
|
+
}
|
|
865
|
+
declare module "warframe/services/wf-service/wf-service.alert" {
|
|
866
|
+
import type { AlertBoard, WarframeResult } from "warframe/types/index";
|
|
867
|
+
export function adaptAlerts(alerts?: readonly {
|
|
868
|
+
expiry?: Date;
|
|
869
|
+
mission?: {
|
|
870
|
+
nodeKey?: string;
|
|
871
|
+
typeKey?: string;
|
|
872
|
+
minEnemyLevel?: number;
|
|
873
|
+
maxEnemyLevel?: number;
|
|
874
|
+
nightmare?: boolean;
|
|
875
|
+
reward?: {
|
|
876
|
+
items?: string[];
|
|
877
|
+
countedItems?: Array<{
|
|
878
|
+
type?: string;
|
|
879
|
+
key?: string;
|
|
880
|
+
count?: number;
|
|
881
|
+
}>;
|
|
882
|
+
credits?: number;
|
|
883
|
+
};
|
|
884
|
+
};
|
|
885
|
+
}[], now?: number): Promise<AlertBoard>;
|
|
886
|
+
export function getAlerts(): Promise<WarframeResult<AlertBoard>>;
|
|
887
|
+
}
|
|
888
|
+
declare module "warframe/data/wf/arbitrationSchedule" {
|
|
889
|
+
import type { ArbitrationShort } from "warframe/types/index";
|
|
890
|
+
export const arbitrationSchedule: ArbitrationShort[];
|
|
891
|
+
}
|
|
892
|
+
declare module "warframe/services/wf-service/wf-service.arbitration" {
|
|
893
|
+
import type { Arbitration, WarframeResult } from "warframe/types/index";
|
|
894
|
+
export function getArbitrations(day?: number): WarframeResult<Arbitration[]>;
|
|
895
|
+
}
|
|
896
|
+
declare module "warframe/data/wf/globalOracleBountyCycle" {
|
|
897
|
+
import type { AsyncCache, OracleBountyCycle } from "warframe/types/index";
|
|
898
|
+
export let globalOracleBountyCycle: AsyncCache<OracleBountyCycle | undefined>;
|
|
899
|
+
export function overrideGlobalOracleBountyCycle(cache: AsyncCache<OracleBountyCycle | undefined>): void;
|
|
900
|
+
}
|
|
901
|
+
declare module "warframe/services/wf-service/wf-service.bounty" {
|
|
902
|
+
import type { BountyBoard, BountyLocation, WarframeResult } from "warframe/types/index";
|
|
903
|
+
export function getBounty(location: BountyLocation): Promise<WarframeResult<BountyBoard>>;
|
|
904
|
+
}
|
|
905
|
+
declare module "warframe/infrastructure/wf/calendar-adapter" {
|
|
906
|
+
import type { CalendarBoard, RawCalendarSeason, RawMongoDate } from "warframe/types/index";
|
|
907
|
+
export function calendarTimestampMs(value?: RawMongoDate): number;
|
|
908
|
+
/** Strip Lotus color pipes and HTML-like markup tags. */
|
|
909
|
+
export function stripLotusMarkup(text: string): string;
|
|
910
|
+
export function adaptCalendar(raw: RawCalendarSeason | undefined, now?: number): CalendarBoard;
|
|
911
|
+
}
|
|
912
|
+
declare module "warframe/services/wf-service/wf-service.calendar" {
|
|
913
|
+
import type { CalendarBoard, RawCalendarSeason, WarframeResult } from "warframe/types/index";
|
|
914
|
+
export function adaptCalendar(raw: RawCalendarSeason | undefined, now?: number): CalendarBoard;
|
|
915
|
+
export function getCalendarFrom(snapshot?: {
|
|
916
|
+
raw?: unknown;
|
|
917
|
+
calendarRaw?: RawCalendarSeason;
|
|
918
|
+
}, now?: number): Promise<WarframeResult<CalendarBoard>>;
|
|
919
|
+
export function getCalendar(): Promise<WarframeResult<CalendarBoard>>;
|
|
920
|
+
}
|
|
921
|
+
declare module "warframe/services/wf-service/wf-service.circuit" {
|
|
922
|
+
export function getCircuitWeek(): {
|
|
923
|
+
currentIncarnons: number;
|
|
924
|
+
currentWarframes: number;
|
|
925
|
+
allIncarnons: string[][];
|
|
926
|
+
allWarframes: string[][];
|
|
927
|
+
};
|
|
928
|
+
}
|
|
929
|
+
declare module "warframe/services/wf-service/wf-service.environment" {
|
|
930
|
+
export function getEnvironment(): Promise<string>;
|
|
931
|
+
}
|
|
932
|
+
declare module "warframe/services/wf-service/wf-service.event" {
|
|
933
|
+
import type { EventBoard, RawWorldEvent, WarframeResult } from "warframe/types/index";
|
|
934
|
+
export function adaptEvents(rawEvents?: readonly RawWorldEvent[], now?: number): EventBoard;
|
|
935
|
+
export function getEventsFrom(snapshot?: {
|
|
936
|
+
raw?: unknown;
|
|
937
|
+
eventsRaw?: RawWorldEvent[];
|
|
938
|
+
}, now?: number): Promise<WarframeResult<EventBoard>>;
|
|
939
|
+
export function getEvents(): Promise<WarframeResult<EventBoard>>;
|
|
940
|
+
}
|
|
941
|
+
declare module "warframe/services/wf-service/wf-service.fissure" {
|
|
942
|
+
import type { Fissure, WarframeResult } from "warframe/types/index";
|
|
943
|
+
export function getFissures(): Promise<WarframeResult<Fissure[]>>;
|
|
944
|
+
export function getSteelPathFissures(): Promise<WarframeResult<Fissure[]>>;
|
|
945
|
+
export function getRailjackFissures(): Promise<WarframeResult<Fissure[]>>;
|
|
946
|
+
}
|
|
947
|
+
declare module "warframe/services/wf-service/wf-service.invasion" {
|
|
948
|
+
import type { InvasionBoard, RawInvasion, WarframeResult } from "warframe/types/index";
|
|
949
|
+
export function adaptInvasions(rawInvasions: RawInvasion[]): Promise<InvasionBoard>;
|
|
950
|
+
export function getInvasionsFrom(snapshot?: {
|
|
951
|
+
raw?: unknown;
|
|
952
|
+
invasionsRaw?: RawInvasion[];
|
|
953
|
+
}): Promise<WarframeResult<InvasionBoard>>;
|
|
954
|
+
export function getInvasions(): Promise<WarframeResult<InvasionBoard>>;
|
|
955
|
+
}
|
|
956
|
+
declare module "warframe/infrastructure/wf/nightwave-adapter" {
|
|
957
|
+
import type { NightwaveBoard, RawSeasonInfo } from "warframe/types/index";
|
|
958
|
+
export function adaptNightwave(raw: RawSeasonInfo, now?: number): NightwaveBoard;
|
|
959
|
+
}
|
|
960
|
+
declare module "warframe/services/wf-service/wf-service.nightwave" {
|
|
961
|
+
import type { NightwaveBoard, RawSeasonInfo, WarframeResult } from "warframe/types/index";
|
|
962
|
+
export function resolveNightwave(raw: RawSeasonInfo | undefined, now?: number): WarframeResult<NightwaveBoard>;
|
|
963
|
+
export function getNightwave(): Promise<WarframeResult<NightwaveBoard>>;
|
|
796
964
|
}
|
|
797
965
|
declare module "warframe/data/wf/relics" {
|
|
798
966
|
import type { Relic } from "warframe/types/index";
|
|
799
967
|
export const relics: Record<string, Relic>;
|
|
800
968
|
}
|
|
969
|
+
declare module "warframe/services/wf-service/wf-service.relic" {
|
|
970
|
+
import type { Relic, WarframeResult } from "warframe/types/index";
|
|
971
|
+
export function getRelic(input: string): Promise<WarframeResult<Relic>>;
|
|
972
|
+
}
|
|
801
973
|
declare module "warframe/data/wf/rivenBaseValues" {
|
|
802
|
-
export
|
|
974
|
+
export type RivenAttrValueDict = Record<string, Record<string, number>>;
|
|
975
|
+
export function buildRivenAttrValueDict(source: RivenAttrValueDict): RivenAttrValueDict;
|
|
976
|
+
export const rivenAttrValueDict: RivenAttrValueDict;
|
|
803
977
|
}
|
|
804
978
|
declare module "warframe/data/wf/rivenDisposition" {
|
|
979
|
+
import type { IWeapon } from 'warframe-public-export-plus';
|
|
805
980
|
import type { RivenWeaponDisposition } from "warframe/types/index";
|
|
981
|
+
export function buildWeaponRivenDispositionDict(calcWeapons: RivenWeaponDisposition['calc'][], exportWeapons: Record<string, IWeapon>, dictEn: Record<string, string>, dictZh: Record<string, string>): Record<string, RivenWeaponDisposition>;
|
|
806
982
|
export const weaponRivenDispositionDict: Record<string, RivenWeaponDisposition>;
|
|
807
983
|
}
|
|
808
984
|
declare module "warframe/data/wf/rivenStatData" {
|
|
809
985
|
import type { RivenStatFixFactorMap } from "warframe/types/index";
|
|
810
986
|
export const rivenStatFixFactor: RivenStatFixFactorMap;
|
|
811
987
|
}
|
|
812
|
-
declare module "warframe/data/wf/sortie" {
|
|
813
|
-
export function getSortieModeName(): string;
|
|
814
|
-
export function getSortieEnemyLevels(index: number): {
|
|
815
|
-
minLevel: number;
|
|
816
|
-
maxLevel: number;
|
|
817
|
-
};
|
|
818
|
-
}
|
|
819
988
|
declare module "warframe/infrastructure/wfm-client" {
|
|
820
989
|
import type { WfmApiClient, WfmFetcher, WfmPlugin } from 'wfm-api-client';
|
|
821
990
|
/** Warframe-local: map request failures to `undefined` (not part of upstream client). */
|
|
@@ -952,48 +1121,41 @@ declare module "warframe/infrastructure/ocr-api" {
|
|
|
952
1121
|
import type { OcrAPISecret } from "warframe/types/index";
|
|
953
1122
|
export function extractTextFromImage(image: string | Blob, secret: OcrAPISecret): Promise<string[] | undefined>;
|
|
954
1123
|
}
|
|
955
|
-
declare module "warframe/
|
|
956
|
-
import type { BountyBoard, BountyLocation, BountyRewardRarity, OracleBountyCycle, RawSyndicateMission } from "warframe/types/index";
|
|
957
|
-
export const bountyLocationTag: Record<BountyLocation, string>;
|
|
958
|
-
/** Locations whose Jobs are empty in official WorldState; use browse.wf Oracle. */
|
|
959
|
-
export const oracleBountyLocations: Set<BountyLocation>;
|
|
960
|
-
/**
|
|
961
|
-
* Map drop probability to 铜/银/金 within one stage.
|
|
962
|
-
* Highest unique probability → bronze, lowest → gold, middle → silver.
|
|
963
|
-
* With only two buckets: highest → bronze, lower → silver.
|
|
964
|
-
*/
|
|
965
|
-
export function rarityFromStageProbabilities(probability: number, uniqueSortedDesc: number[]): BountyRewardRarity;
|
|
966
|
-
export function resolveExportItemNameZh(sourceKey: string): string;
|
|
967
|
-
export function adaptBountyBoard(location: BountyLocation, mission: RawSyndicateMission | undefined): BountyBoard | undefined;
|
|
968
|
-
export function findRawSyndicateMission(missions: RawSyndicateMission[], location: BountyLocation): RawSyndicateMission | undefined;
|
|
969
|
-
export function formatOracleChallenge(challengePath: string): string;
|
|
970
|
-
export function adaptOracleBountyBoard(location: 'zariman' | 'cavia' | 'hex', cycle: OracleBountyCycle | undefined): BountyBoard | undefined;
|
|
971
|
-
}
|
|
972
|
-
declare module "warframe/infrastructure/wf/calendar-adapter" {
|
|
973
|
-
import type { CalendarBoard, RawCalendarSeason, RawMongoDate } from "warframe/types/index";
|
|
974
|
-
export function calendarTimestampMs(value?: RawMongoDate): number;
|
|
975
|
-
/** Strip Lotus color pipes and HTML-like markup tags. */
|
|
976
|
-
export function stripLotusMarkup(text: string): string;
|
|
977
|
-
export function adaptCalendar(raw: RawCalendarSeason | undefined, now?: number): CalendarBoard;
|
|
978
|
-
}
|
|
979
|
-
declare module "warframe/infrastructure/wf/nightwave-adapter" {
|
|
980
|
-
import type { NightwaveBoard, RawSeasonInfo } from "warframe/types/index";
|
|
981
|
-
export function adaptNightwave(raw: RawSeasonInfo, now?: number): NightwaveBoard;
|
|
982
|
-
}
|
|
983
|
-
declare module "warframe/services/wf-service" {
|
|
1124
|
+
declare module "warframe/services/wf-service/wf-service.riven" {
|
|
984
1125
|
import type { WeeklyRiven } from 'warframe-weekly-rivens';
|
|
985
|
-
import type {
|
|
1126
|
+
import type { OcrAPISecret, RivenAttribute, RivenStatAnalyzeResult, RivenStatResult, WarframeResult } from "warframe/types/index";
|
|
986
1127
|
import { weaponRivenDispositionDict } from "warframe/data/wf/rivenDisposition";
|
|
987
|
-
export function
|
|
988
|
-
export function
|
|
989
|
-
export function
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
1128
|
+
export function getAnalyzedRiven(secret: OcrAPISecret, url: string): Promise<WarframeResult<RivenStatAnalyzeResult>>;
|
|
1129
|
+
export function filterWeeklyRivens(data: WeeklyRiven[], minPrice: number, minPop?: number): WeeklyRiven[];
|
|
1130
|
+
export function getWeeklyRivens(minPrice: number): Promise<WeeklyRiven[]>;
|
|
1131
|
+
export function getStaticRivenStats(weaponType: string, statType: string, disposition: number): Promise<WarframeResult<RivenStatResult>>;
|
|
1132
|
+
export function getWeaponRivenDisposition(name: string): (typeof weaponRivenDispositionDict)[string] | undefined;
|
|
1133
|
+
export function parseOCRResult(ocrResult: string[]): Promise<{
|
|
1134
|
+
name: string;
|
|
1135
|
+
attributes: {
|
|
1136
|
+
attr: RivenAttribute;
|
|
1137
|
+
value: number;
|
|
1138
|
+
prefix: string;
|
|
1139
|
+
}[];
|
|
1140
|
+
} | undefined>;
|
|
1141
|
+
export function analyzeRivenStat(parseResult: {
|
|
1142
|
+
name: string;
|
|
1143
|
+
attributes: {
|
|
1144
|
+
attr: RivenAttribute;
|
|
1145
|
+
value: number;
|
|
1146
|
+
prefix: string;
|
|
1147
|
+
}[];
|
|
1148
|
+
}): WarframeResult<RivenStatAnalyzeResult>;
|
|
1149
|
+
}
|
|
1150
|
+
declare module "warframe/data/wf/sortie" {
|
|
1151
|
+
export function getSortieModeName(): string;
|
|
1152
|
+
export function getSortieEnemyLevels(index: number): {
|
|
1153
|
+
minLevel: number;
|
|
1154
|
+
maxLevel: number;
|
|
1155
|
+
};
|
|
1156
|
+
}
|
|
1157
|
+
declare module "warframe/services/wf-service/wf-service.sortie" {
|
|
1158
|
+
import type { RawSortie, Sortie, WarframeResult } from "warframe/types/index";
|
|
997
1159
|
export function adaptSortie(source: RawSortie, dates?: {
|
|
998
1160
|
activation?: Date;
|
|
999
1161
|
expiry?: Date;
|
|
@@ -1008,53 +1170,9 @@ declare module "warframe/services/wf-service" {
|
|
|
1008
1170
|
sortieRaw?: RawSortie;
|
|
1009
1171
|
}): Promise<WarframeResult<Sortie>>;
|
|
1010
1172
|
export function getSortie(): Promise<WarframeResult<Sortie>>;
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
temporalArchimedea: ArchiMedea;
|
|
1015
|
-
}>>;
|
|
1016
|
-
export function resolveNightwave(raw: RawSeasonInfo | undefined, now?: number): WarframeResult<NightwaveBoard>;
|
|
1017
|
-
export function getNightwave(): Promise<WarframeResult<NightwaveBoard>>;
|
|
1018
|
-
export function getEnvironment(): Promise<string>;
|
|
1019
|
-
export function getBounty(location: BountyLocation): Promise<WarframeResult<BountyBoard>>;
|
|
1020
|
-
export function getCircuitWeek(): {
|
|
1021
|
-
currentIncarnons: number;
|
|
1022
|
-
currentWarframes: number;
|
|
1023
|
-
allIncarnons: string[][];
|
|
1024
|
-
allWarframes: string[][];
|
|
1025
|
-
};
|
|
1026
|
-
export function adaptInvasions(rawInvasions: RawInvasion[]): Promise<InvasionBoard>;
|
|
1027
|
-
export function getInvasionsFrom(snapshot?: {
|
|
1028
|
-
raw?: unknown;
|
|
1029
|
-
invasionsRaw?: RawInvasion[];
|
|
1030
|
-
}): Promise<WarframeResult<InvasionBoard>>;
|
|
1031
|
-
export function getInvasions(): Promise<WarframeResult<InvasionBoard>>;
|
|
1032
|
-
export function adaptAlerts(alerts?: readonly {
|
|
1033
|
-
expiry?: Date;
|
|
1034
|
-
mission?: {
|
|
1035
|
-
nodeKey?: string;
|
|
1036
|
-
typeKey?: string;
|
|
1037
|
-
minEnemyLevel?: number;
|
|
1038
|
-
maxEnemyLevel?: number;
|
|
1039
|
-
nightmare?: boolean;
|
|
1040
|
-
reward?: {
|
|
1041
|
-
items?: string[];
|
|
1042
|
-
countedItems?: Array<{
|
|
1043
|
-
type?: string;
|
|
1044
|
-
key?: string;
|
|
1045
|
-
count?: number;
|
|
1046
|
-
}>;
|
|
1047
|
-
credits?: number;
|
|
1048
|
-
};
|
|
1049
|
-
};
|
|
1050
|
-
}[], now?: number): Promise<AlertBoard>;
|
|
1051
|
-
export function getAlerts(): Promise<WarframeResult<AlertBoard>>;
|
|
1052
|
-
export function adaptCalendar(raw: RawCalendarSeason | undefined, now?: number): CalendarBoard;
|
|
1053
|
-
export function getCalendarFrom(snapshot?: {
|
|
1054
|
-
raw?: unknown;
|
|
1055
|
-
calendarRaw?: RawCalendarSeason;
|
|
1056
|
-
}, now?: number): Promise<WarframeResult<CalendarBoard>>;
|
|
1057
|
-
export function getCalendar(): Promise<WarframeResult<CalendarBoard>>;
|
|
1173
|
+
}
|
|
1174
|
+
declare module "warframe/services/wf-service/wf-service.steel-essence" {
|
|
1175
|
+
import type { RawSteelPathOfferings, SteelEssenceBoard, WarframeResult } from "warframe/types/index";
|
|
1058
1176
|
export function adaptSteelEssence(raw?: RawSteelPathOfferings, now?: number): Promise<SteelEssenceBoard>;
|
|
1059
1177
|
export function getSteelEssenceFrom(snapshot?: {
|
|
1060
1178
|
raw?: {
|
|
@@ -1062,31 +1180,51 @@ declare module "warframe/services/wf-service" {
|
|
|
1062
1180
|
};
|
|
1063
1181
|
}, now?: number): Promise<WarframeResult<SteelEssenceBoard>>;
|
|
1064
1182
|
export function getSteelEssence(): Promise<WarframeResult<SteelEssenceBoard>>;
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
export function getAnalyzedRiven(secret: OcrAPISecret, url: string): Promise<WarframeResult<RivenStatAnalyzeResult>>;
|
|
1183
|
+
}
|
|
1184
|
+
declare module "warframe/services/wf-service/wf-service.void-trader" {
|
|
1185
|
+
import type { VoidTrader, WarframeResult } from "warframe/types/index";
|
|
1069
1186
|
export function getVoidTrader(): Promise<WarframeResult<VoidTrader>>;
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
export function
|
|
1073
|
-
export function
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1187
|
+
}
|
|
1188
|
+
declare module "warframe/data/wf/archonHunt" {
|
|
1189
|
+
export function getArchonHuntModeName(): string;
|
|
1190
|
+
export function getArchonHuntEnemyLevels(index: number): {
|
|
1191
|
+
minLevel: number;
|
|
1192
|
+
maxLevel: number;
|
|
1193
|
+
};
|
|
1194
|
+
}
|
|
1195
|
+
declare module "warframe/services/wf-service/wf-service.weekly" {
|
|
1196
|
+
import type { ArchiMedea, ArchonHunt, WarframeResult } from "warframe/types/index";
|
|
1197
|
+
export function adaptArchonHunt(source: {
|
|
1198
|
+
boss: string;
|
|
1199
|
+
missions?: Array<{
|
|
1200
|
+
type: string;
|
|
1201
|
+
node?: string;
|
|
1202
|
+
nodeKey: string;
|
|
1203
|
+
}>;
|
|
1204
|
+
}): Promise<ArchonHunt>;
|
|
1205
|
+
export function getWeekly(): Promise<WarframeResult<{
|
|
1206
|
+
archonHunt: ArchonHunt;
|
|
1207
|
+
deepArchimedea: ArchiMedea;
|
|
1208
|
+
temporalArchimedea: ArchiMedea;
|
|
1209
|
+
}>>;
|
|
1210
|
+
}
|
|
1211
|
+
declare module "warframe/services/wf-service/index" {
|
|
1212
|
+
export { adaptAlerts, getAlerts } from "warframe/services/wf-service/wf-service.alert";
|
|
1213
|
+
export { getArbitrations } from "warframe/services/wf-service/wf-service.arbitration";
|
|
1214
|
+
export { getBounty } from "warframe/services/wf-service/wf-service.bounty";
|
|
1215
|
+
export { adaptCalendar, getCalendar, getCalendarFrom } from "warframe/services/wf-service/wf-service.calendar";
|
|
1216
|
+
export { getCircuitWeek } from "warframe/services/wf-service/wf-service.circuit";
|
|
1217
|
+
export { getEnvironment } from "warframe/services/wf-service/wf-service.environment";
|
|
1218
|
+
export { adaptEvents, getEvents, getEventsFrom } from "warframe/services/wf-service/wf-service.event";
|
|
1219
|
+
export { getFissures, getRailjackFissures, getSteelPathFissures, } from "warframe/services/wf-service/wf-service.fissure";
|
|
1220
|
+
export { adaptInvasions, getInvasions, getInvasionsFrom } from "warframe/services/wf-service/wf-service.invasion";
|
|
1221
|
+
export { getNightwave, resolveNightwave } from "warframe/services/wf-service/wf-service.nightwave";
|
|
1222
|
+
export { getRelic } from "warframe/services/wf-service/wf-service.relic";
|
|
1223
|
+
export { analyzeRivenStat, filterWeeklyRivens, getAnalyzedRiven, getStaticRivenStats, getWeaponRivenDisposition, getWeeklyRivens, parseOCRResult, } from "warframe/services/wf-service/wf-service.riven";
|
|
1224
|
+
export { adaptSortie, getSortie, getSortieFrom } from "warframe/services/wf-service/wf-service.sortie";
|
|
1225
|
+
export { adaptSteelEssence, getSteelEssence, getSteelEssenceFrom, } from "warframe/services/wf-service/wf-service.steel-essence";
|
|
1226
|
+
export { getVoidTrader } from "warframe/services/wf-service/wf-service.void-trader";
|
|
1227
|
+
export { adaptArchonHunt, getWeekly } from "warframe/services/wf-service/wf-service.weekly";
|
|
1090
1228
|
}
|
|
1091
1229
|
declare module "warframe/data/wfm/globalItem" {
|
|
1092
1230
|
import type { AsyncCache, ItemShort } from "warframe/types/index";
|
|
@@ -1165,6 +1303,11 @@ declare module "warframe/services/wfm-service/wfm-service.item-matcher" {
|
|
|
1165
1303
|
}
|
|
1166
1304
|
declare module "warframe/data/wfm/globalDucatnator" {
|
|
1167
1305
|
import type { AsyncCache, Ducatnator } from "warframe/types/index";
|
|
1306
|
+
interface DucatnatorSnapshot {
|
|
1307
|
+
hour: Ducatnator[];
|
|
1308
|
+
day?: Ducatnator[];
|
|
1309
|
+
}
|
|
1310
|
+
export function globalDucatnatorIDDictFactory(data?: DucatnatorSnapshot): Promise<Record<string, Ducatnator> | undefined>;
|
|
1168
1311
|
export let globalDucatnatorIDDict: AsyncCache<Record<string, Ducatnator> | undefined>;
|
|
1169
1312
|
export function overrideGlobalDucatnatorIDDict(cache: AsyncCache<Record<string, Ducatnator> | undefined>): void;
|
|
1170
1313
|
}
|
|
@@ -1209,9 +1352,9 @@ declare module "warframe/services/wfm-service/index" {
|
|
|
1209
1352
|
export const primedModHistory: import("warframe").AsyncCache<PrimedModHistoryItem[]>;
|
|
1210
1353
|
}
|
|
1211
1354
|
declare module "warframe/services/world-state-refresh" {
|
|
1355
|
+
import type { GlobalWorldStateData } from "warframe/data/wf/globalWorldState";
|
|
1212
1356
|
import type { VoidTraderItem, WFRegionShort } from "warframe/types/index";
|
|
1213
|
-
|
|
1214
|
-
export type WorldStateSnapshot = Awaited<ReturnType<typeof globalWorldState.get>>;
|
|
1357
|
+
export type WorldStateSnapshot = GlobalWorldStateData;
|
|
1215
1358
|
export type WorldStateNotification = {
|
|
1216
1359
|
type: 'fissure';
|
|
1217
1360
|
id: string;
|
|
@@ -1254,7 +1397,7 @@ declare module "warframe/services/world-state-refresh" {
|
|
|
1254
1397
|
}
|
|
1255
1398
|
declare module "warframe/services/index" {
|
|
1256
1399
|
export * from "warframe/services/miscs-service";
|
|
1257
|
-
export * from "warframe/services/wf-service";
|
|
1400
|
+
export * from "warframe/services/wf-service/index";
|
|
1258
1401
|
export * from "warframe/services/wfm-service/index";
|
|
1259
1402
|
export * from "warframe/services/world-state-refresh";
|
|
1260
1403
|
}
|
|
@@ -1275,6 +1418,7 @@ declare module "i18n" {
|
|
|
1275
1418
|
readonly 'bounty.unavailable': "当前该地点暂无可用赏金";
|
|
1276
1419
|
readonly 'invasion.unavailable': "当前没有入侵";
|
|
1277
1420
|
readonly 'alert.unavailable': "当前没有警报";
|
|
1421
|
+
readonly 'event.unavailable': "当前没有活动";
|
|
1278
1422
|
readonly 'calendar.unavailable': "当前没有1999日历";
|
|
1279
1423
|
readonly 'steelEssence.unavailable': "钢铁精华商店获取失败";
|
|
1280
1424
|
readonly 'nightwave.unavailable': "当前没有午夜电波";
|
|
@@ -1341,7 +1485,7 @@ declare module "utils/index" {
|
|
|
1341
1485
|
declare module "components/wf" {
|
|
1342
1486
|
import type { Element } from 'koishi';
|
|
1343
1487
|
import type { WeeklyRiven } from 'warframe-weekly-rivens';
|
|
1344
|
-
import type { AlertBoard, Arbitration, ArchiMedea, ArchonHunt, BountyBoard, CalendarBoard, Fissure, InvasionBoard, NightwaveBoard, OutputRelic, RivenStatAnalyzeResult, RivenStatResult, Sortie, SteelEssenceBoard, VoidTrader } from "warframe/index";
|
|
1488
|
+
import type { AlertBoard, Arbitration, ArchiMedea, ArchonHunt, BountyBoard, CalendarBoard, EventBoard, Fissure, InvasionBoard, NightwaveBoard, OutputRelic, RivenStatAnalyzeResult, RivenStatResult, Sortie, SteelEssenceBoard, VoidTrader } from "warframe/index";
|
|
1345
1489
|
export function ArbitrationComponent(arbi: Arbitration[]): Element;
|
|
1346
1490
|
export function CircuitComponent(currentIncarnons: number, currentWarframes: number, allIncarnons: string[][], allWarframes: string[][]): Element;
|
|
1347
1491
|
export function FissureComponent(fissures: Fissure[], type: 'fissure' | 'sp-fissure' | 'rj-fissure'): Element;
|
|
@@ -1356,6 +1500,7 @@ declare module "components/wf" {
|
|
|
1356
1500
|
export function RivenStatComponent(data: RivenStatResult): Element;
|
|
1357
1501
|
export function VoidTraderComponent(data: VoidTrader): Element;
|
|
1358
1502
|
export function AlertComponent(board: AlertBoard): Element;
|
|
1503
|
+
export function EventComponent(board: EventBoard): Element;
|
|
1359
1504
|
export function CalendarComponent(board: CalendarBoard): Element;
|
|
1360
1505
|
export function SteelEssenceComponent(board: SteelEssenceBoard): Element;
|
|
1361
1506
|
}
|
|
@@ -1369,6 +1514,7 @@ declare module "commands/wf" {
|
|
|
1369
1514
|
fissureCommand: (_action: Argv) => Promise<string>;
|
|
1370
1515
|
invasionCommand: (_action: Argv) => Promise<string>;
|
|
1371
1516
|
alertCommand: (_action: Argv) => Promise<string>;
|
|
1517
|
+
eventCommand: (_action: Argv) => Promise<string>;
|
|
1372
1518
|
calendarCommand: (_action: Argv) => Promise<string>;
|
|
1373
1519
|
steelEssenceCommand: (_action: Argv) => Promise<string>;
|
|
1374
1520
|
steelPathFissureCommand: (_action: Argv) => Promise<string>;
|