warframe-worldstate-parser 5.2.16 → 5.2.18

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.
Files changed (184) hide show
  1. package/dist/{Calendar-CRM0XhAy.d.mts → Calendar-C-rbmV_t.d.mts} +1 -1
  2. package/dist/{CambionCycle-OI3v1knd.d.mts → CambionCycle-BzR_MfPH.d.mts} +2 -2
  3. package/dist/{CetusCycle-DQ4n05vO.d.mts → CetusCycle-DaqfF4J1.d.mts} +1 -1
  4. package/dist/{ConstructionProgress-DG2KzS0X.d.mts → ConstructionProgress-BRxmro3-.d.mts} +1 -1
  5. package/dist/{DarkSectorBattle-CiSe3kFm.d.mts → DarkSectorBattle-DHRl5tG1.d.mts} +1 -1
  6. package/dist/{Dependency-CNqXngHD.d.mts → Dependency-Cd-TxBJy.d.mts} +1 -1
  7. package/dist/{EarthCycle-CxtijnVV.d.mts → EarthCycle-C_oB5gDc.d.mts} +1 -1
  8. package/dist/{MidrathCycle-E0gMF3AR.d.mts → MidrathCycle-CxveqDtx.d.mts} +1 -1
  9. package/dist/{News-DxEm-q6V.d.mts → News-CJ3lD7_g.d.mts} +1 -1
  10. package/dist/{Nightwave-CPqMSqGK.d.mts → Nightwave-BLHH02ht.d.mts} +2 -2
  11. package/dist/{NightwaveChallenge-CG3uychc.d.mts → NightwaveChallenge-j_m4hVQU.d.mts} +1 -1
  12. package/dist/{PersistentEnemy-DnnnreSz.d.mts → PersistentEnemy-BJ4twtUY.d.mts} +1 -1
  13. package/dist/{VallisCycle-6DCaWFoR.d.mts → VallisCycle-as7DM4a-.d.mts} +1 -1
  14. package/dist/{ZarimanCycle-BrSLIWhD.d.mts → ZarimanCycle-DyYiVfyG.d.mts} +1 -1
  15. package/dist/{index-Bgx8kIDy.d.mts → index-C4EJ_Mpd.d.mts} +6 -6
  16. package/dist/lib/WorldState.d.mts +16 -19
  17. package/dist/lib/WorldState.mjs +32 -48
  18. package/dist/lib/models/Alert.d.mts +1 -17
  19. package/dist/lib/models/Alert.mjs +49 -7
  20. package/dist/lib/models/Archimedea.d.mts +1 -17
  21. package/dist/lib/models/Archimedea.mjs +88 -4
  22. package/dist/lib/models/Calendar.d.mts +1 -2
  23. package/dist/lib/models/Calendar.mjs +79 -4
  24. package/dist/lib/models/CambionCycle.d.mts +1 -3
  25. package/dist/lib/models/CambionCycle.mjs +28 -4
  26. package/dist/lib/models/CetusCycle.d.mts +1 -2
  27. package/dist/lib/models/CetusCycle.mjs +87 -4
  28. package/dist/lib/models/ChallengeInstance.d.mts +1 -17
  29. package/dist/lib/models/ChallengeInstance.mjs +46 -3
  30. package/dist/lib/models/ConclaveChallenge.d.mts +1 -17
  31. package/dist/lib/models/ConclaveChallenge.mjs +77 -4
  32. package/dist/lib/models/ConstructionProgress.d.mts +1 -2
  33. package/dist/lib/models/ConstructionProgress.mjs +23 -4
  34. package/dist/lib/models/DailyDeal.d.mts +1 -17
  35. package/dist/lib/models/DailyDeal.mjs +64 -4
  36. package/dist/lib/models/DarkSector.d.mts +1 -17
  37. package/dist/lib/models/DarkSector.mjs +136 -8
  38. package/dist/lib/models/DarkSectorBattle.d.mts +1 -2
  39. package/dist/lib/models/DarkSectorBattle.mjs +49 -3
  40. package/dist/lib/models/DuviriCycle.d.mts +1 -17
  41. package/dist/lib/models/DuviriCycle.mjs +55 -4
  42. package/dist/lib/models/EarthCycle.d.mts +1 -2
  43. package/dist/lib/models/EarthCycle.mjs +73 -4
  44. package/dist/lib/models/Fissure.d.mts +1 -17
  45. package/dist/lib/models/Fissure.mjs +83 -4
  46. package/dist/lib/models/FlashSale.d.mts +1 -17
  47. package/dist/lib/models/FlashSale.mjs +73 -4
  48. package/dist/lib/models/GlobalUpgrade.d.mts +1 -17
  49. package/dist/lib/models/GlobalUpgrade.mjs +56 -4
  50. package/dist/lib/models/Invasion.d.mts +1 -17
  51. package/dist/lib/models/Invasion.mjs +106 -6
  52. package/dist/lib/models/Kinepage.d.mts +1 -1
  53. package/dist/lib/models/Kinepage.mjs +23 -3
  54. package/dist/lib/models/Kuva.d.mts +1 -17
  55. package/dist/lib/models/Kuva.mjs +85 -3
  56. package/dist/lib/models/MidrathCycle.d.mts +1 -2
  57. package/dist/lib/models/MidrathCycle.mjs +66 -4
  58. package/dist/lib/models/Mission.d.mts +1 -17
  59. package/dist/lib/models/Mission.mjs +138 -5
  60. package/dist/lib/models/News.d.mts +1 -2
  61. package/dist/lib/models/News.mjs +116 -4
  62. package/dist/lib/models/Nightwave.d.mts +1 -3
  63. package/dist/lib/models/Nightwave.mjs +58 -5
  64. package/dist/lib/models/NightwaveChallenge.d.mts +1 -2
  65. package/dist/lib/models/NightwaveChallenge.mjs +51 -4
  66. package/dist/lib/models/PersistentEnemy.d.mts +1 -2
  67. package/dist/lib/models/PersistentEnemy.mjs +74 -4
  68. package/dist/lib/models/Reward.d.mts +1 -17
  69. package/dist/lib/models/Reward.mjs +71 -4
  70. package/dist/lib/models/SentientOutpost.d.mts +1 -17
  71. package/dist/lib/models/SentientOutpost.mjs +63 -3
  72. package/dist/lib/models/Simaris.d.mts +1 -17
  73. package/dist/lib/models/Simaris.mjs +33 -3
  74. package/dist/lib/models/Sortie.d.mts +1 -17
  75. package/dist/lib/models/Sortie.mjs +71 -8
  76. package/dist/lib/models/SortieVariant.d.mts +1 -17
  77. package/dist/lib/models/SortieVariant.mjs +49 -3
  78. package/dist/lib/models/SteelPathOffering.d.mts +1 -1
  79. package/dist/lib/models/SteelPathOffering.mjs +81 -3
  80. package/dist/lib/models/SyndicateJob.d.mts +1 -17
  81. package/dist/lib/models/SyndicateJob.mjs +161 -7
  82. package/dist/lib/models/SyndicateMission.d.mts +1 -17
  83. package/dist/lib/models/SyndicateMission.mjs +64 -8
  84. package/dist/lib/models/Tmp.d.mts +1 -17
  85. package/dist/lib/models/Tmp.mjs +28 -4
  86. package/dist/lib/models/VallisCycle.d.mts +1 -2
  87. package/dist/lib/models/VallisCycle.mjs +72 -4
  88. package/dist/lib/models/VoidTrader.d.mts +1 -17
  89. package/dist/lib/models/VoidTrader.mjs +76 -6
  90. package/dist/lib/models/VoidTraderItem.d.mts +1 -17
  91. package/dist/lib/models/VoidTraderItem.mjs +36 -3
  92. package/dist/lib/models/VoidTraderSchedule.d.mts +1 -17
  93. package/dist/lib/models/VoidTraderSchedule.mjs +12 -3
  94. package/dist/lib/models/WeeklyChallenge.d.mts +1 -17
  95. package/dist/lib/models/WeeklyChallenge.mjs +19 -5
  96. package/dist/lib/models/WorldEvent.d.mts +1 -17
  97. package/dist/lib/models/WorldEvent.mjs +211 -9
  98. package/dist/lib/models/WorldStateObject.d.mts +1 -1
  99. package/dist/lib/models/WorldStateObject.mjs +52 -3
  100. package/dist/lib/models/ZarimanCycle.d.mts +1 -2
  101. package/dist/lib/models/ZarimanCycle.mjs +77 -4
  102. package/dist/lib/models/index.d.mts +17 -18
  103. package/dist/lib/models/index.mjs +43 -47
  104. package/dist/lib/supporting/Dependency.d.mts +1 -1
  105. package/dist/lib/supporting/Dependency.mjs +1 -1
  106. package/dist/lib/supporting/DuviriChoice.d.mts +1 -17
  107. package/dist/lib/supporting/DuviriChoice.mjs +24 -3
  108. package/dist/lib/supporting/ExternalMission.d.mts +1 -1
  109. package/dist/lib/supporting/ExternalMission.mjs +1 -1
  110. package/dist/lib/supporting/FetchProxy.d.mts +1 -1
  111. package/dist/lib/supporting/FetchProxy.mjs +45 -3
  112. package/dist/lib/supporting/ImgCdn.d.mts +1 -1
  113. package/dist/lib/supporting/ImgCdn.mjs +6 -3
  114. package/dist/lib/supporting/KuvaLogEntry.d.mts +1 -1
  115. package/dist/lib/supporting/KuvaLogEntry.mjs +1 -1
  116. package/dist/lib/supporting/RewardData.d.mts +1 -1
  117. package/dist/lib/supporting/RewardData.mjs +75 -3
  118. package/dist/lib/supporting/RewardTypes.d.mts +1 -1
  119. package/dist/lib/supporting/RewardTypes.mjs +326 -3
  120. package/dist/lib/supporting/index.d.mts +8 -23
  121. package/dist/lib/supporting/index.mjs +6 -8
  122. package/dist/main.d.mts +24 -24
  123. package/dist/main.mjs +48 -51
  124. package/package.json +1 -1
  125. package/dist/Alert-CPT2sBmd.mjs +0 -51
  126. package/dist/Archimedea-Vo36QE99.mjs +0 -90
  127. package/dist/Calendar-_gEQ9BEd.mjs +0 -81
  128. package/dist/CambionCycle-B1pqIgks.mjs +0 -30
  129. package/dist/CetusCycle-Ct51M2pd.mjs +0 -89
  130. package/dist/ChallengeInstance-BOu_e7ML.mjs +0 -48
  131. package/dist/ConclaveChallenge-BTN6UyV6.mjs +0 -79
  132. package/dist/ConstructionProgress-BoF2P9fx.mjs +0 -25
  133. package/dist/DailyDeal-aoNeCFWT.mjs +0 -66
  134. package/dist/DarkSector-D0uJWCg7.mjs +0 -138
  135. package/dist/DarkSectorBattle-CqRYeNpe.mjs +0 -51
  136. package/dist/Dependency-BR-dAeHI.mjs +0 -1
  137. package/dist/DuviriChoice-BEBiWA-g.mjs +0 -25
  138. package/dist/DuviriCycle-Do7mMnoC.mjs +0 -57
  139. package/dist/EarthCycle-BOAlcAuQ.mjs +0 -75
  140. package/dist/ExternalMission-D3MSZgnN.mjs +0 -1
  141. package/dist/FetchProxy-Bkdk15SX.mjs +0 -46
  142. package/dist/Fissure-diM4hyi3.mjs +0 -85
  143. package/dist/FlashSale-CNfRaZhM.mjs +0 -75
  144. package/dist/GlobalUpgrade-CUtZw05z.mjs +0 -58
  145. package/dist/ImgCdn-BJOdWAbU.mjs +0 -7
  146. package/dist/Invasion-Corx1lxf.mjs +0 -108
  147. package/dist/Kinepage-CbSzge67.mjs +0 -24
  148. package/dist/Kuva-Ijy2ZGBL.mjs +0 -87
  149. package/dist/KuvaLogEntry-D_VzIT3W.mjs +0 -1
  150. package/dist/MidrathCycle-XD2T8Dx5.mjs +0 -68
  151. package/dist/Mission-b8KP-YDf.mjs +0 -140
  152. package/dist/News-zAK-sYRg.mjs +0 -118
  153. package/dist/Nightwave-cTRmlbwH.mjs +0 -60
  154. package/dist/NightwaveChallenge-C8ARG7LC.mjs +0 -53
  155. package/dist/PersistentEnemy-3Sw5E8AN.mjs +0 -76
  156. package/dist/Reward-3FBJF_hS.mjs +0 -73
  157. package/dist/RewardData-C_9b8Yhi.mjs +0 -76
  158. package/dist/RewardTypes-DUrR7H3G.mjs +0 -328
  159. package/dist/SentientOutpost-Cadk-pIW.mjs +0 -65
  160. package/dist/Simaris-D6etEQp_.mjs +0 -35
  161. package/dist/Sortie-rSBgJc6U.mjs +0 -73
  162. package/dist/SortieVariant-CnuLkkNZ.mjs +0 -51
  163. package/dist/SteelPathOffering--wm-7hwb.mjs +0 -83
  164. package/dist/SyndicateJob-R89tWqvT.mjs +0 -162
  165. package/dist/SyndicateMission-CKZDWNyf.mjs +0 -66
  166. package/dist/Tmp-BYL_mYIG.mjs +0 -30
  167. package/dist/VallisCycle-BW2g49wB.mjs +0 -74
  168. package/dist/VoidTrader-DtjtVUgR.mjs +0 -78
  169. package/dist/VoidTraderItem-Cz6x1KTF.mjs +0 -38
  170. package/dist/VoidTraderSchedule-BsJLu50V.mjs +0 -14
  171. package/dist/WeeklyChallenge-Dl2ekl6X.mjs +0 -21
  172. package/dist/WorldEvent-C-LaV2ug.mjs +0 -213
  173. package/dist/WorldStateObject-45dbRgp7.mjs +0 -54
  174. package/dist/ZarimanCycle-DoAPwgaM.mjs +0 -79
  175. package/dist/supporting-BLSXhlWM.mjs +0 -1
  176. /package/dist/{ExternalMission-C82w4uMq.d.mts → ExternalMission-CT__oi7Q.d.mts} +0 -0
  177. /package/dist/{FetchProxy-DfSTUgkf.d.mts → FetchProxy-DHSI4JPP.d.mts} +0 -0
  178. /package/dist/{ImgCdn-D0hSGSB1.d.mts → ImgCdn-DIhZrwap.d.mts} +0 -0
  179. /package/dist/{Kinepage-B-Ym_VW5.d.mts → Kinepage-CKBuvbv5.d.mts} +0 -0
  180. /package/dist/{KuvaLogEntry-cftxhjfU.d.mts → KuvaLogEntry-f4ZBn2Xf.d.mts} +0 -0
  181. /package/dist/{RewardData-DWCgJ3UT.d.mts → RewardData-BdtdUFnh.d.mts} +0 -0
  182. /package/dist/{RewardTypes-Y3tHrtIJ.d.mts → RewardTypes-BnGaD7VF.d.mts} +0 -0
  183. /package/dist/{SteelPathOffering-CQkoKi5T.d.mts → SteelPathOffering-DYjZ29sT.d.mts} +0 -0
  184. /package/dist/{WorldStateObject-C1HEDkH7.d.mts → WorldStateObject-C2KjQZjd.d.mts} +0 -0
@@ -1,87 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { node, nodeMissionType } from "warframe-worldstate-data/utilities";
3
-
4
- //#region lib/models/Kuva.ts
5
- const HOURS_2 = 72e5;
6
- /**
7
- * Truncate time for a semlar-provided mission
8
- * @param mission parsed mission with re-aligned field names
9
- */
10
- const truncateTime = (mission) => {
11
- mission.expiry.setHours(mission.activation.getHours() + 1);
12
- mission.expiry.setMinutes(4);
13
- mission.expiry.setSeconds(0);
14
- mission.expiry.setMilliseconds(0);
15
- mission.activation.setMinutes(mission.activation.getMinutes() + 5.1);
16
- };
17
- /**
18
- * Scrub unnecessary details from the mission
19
- * @param mission parsed mission with re-aligned field names
20
- */
21
- const scrub = (mission) => {
22
- delete mission.solnode;
23
- delete mission.name;
24
- delete mission.node_type;
25
- delete mission.tile;
26
- delete mission.planet;
27
- };
28
- const hash = (str) => createHash("md5").update(str, "utf8").digest("hex");
29
- /**
30
- * Parse kuva & arbitration data
31
- * @param data Data to split for kuva/arbitration
32
- * @param locale locale to translate
33
- * @returns Split parsed data
34
- */
35
- const parse = (data, locale) => {
36
- const parsed = {
37
- kuva: [],
38
- arbitration: {}
39
- };
40
- const now = /* @__PURE__ */ new Date();
41
- if (!data) return void 0;
42
- data?.forEach?.((mission) => {
43
- const p = {
44
- id: "",
45
- activation: new Date(mission.start),
46
- expiry: new Date(mission.end),
47
- ...mission.solnodedata,
48
- node: node(mission.solnode, locale),
49
- nodeKey: node(mission.solnode, "en"),
50
- type: nodeMissionType(mission.solnode, locale),
51
- typeKey: nodeMissionType(mission.solnode, "en"),
52
- expired: false,
53
- archwing: mission.solnodedata?.archwing ?? false,
54
- sharkwing: mission.solnodedata?.sharkwing ?? false
55
- };
56
- truncateTime(p);
57
- p.id = hash(JSON.stringify(p));
58
- p.expired = Date.now() - p.expiry.getTime() < 0;
59
- if (p.activation < now && now < p.expiry && new Date(p.activation.getTime() + HOURS_2) > now && new Date(p.expiry.getTime() - HOURS_2) < now) {
60
- if (mission.missiontype === "EliteAlertMission") parsed.arbitration = p;
61
- if (mission.missiontype?.startsWith("KuvaMission")) parsed.kuva.push(p);
62
- }
63
- scrub(p);
64
- });
65
- parsed.kuva = Array.from(new Set(parsed.kuva));
66
- return parsed;
67
- };
68
- /**
69
- * Stores and parses kuva data from https://10o.io/kuvalog.json
70
- * @property {ExternalMission[]} kuva currently active kuva missions
71
- * @property {ExternalMission} arbitration current arbitration
72
- */
73
- var Kuva = class {
74
- kuva;
75
- arbitration;
76
- constructor({ kuvaData, locale, logger }) {
77
- if (!kuvaData) logger?.debug("No defined kuva data, skipping data");
78
- else {
79
- const parsed = parse(kuvaData, locale);
80
- this.kuva = parsed?.kuva;
81
- this.arbitration = parsed?.arbitration;
82
- }
83
- }
84
- };
85
-
86
- //#endregion
87
- export { Kuva as t };
@@ -1 +0,0 @@
1
- export { };
@@ -1,68 +0,0 @@
1
- import { t as WorldStateObject } from "./WorldStateObject-45dbRgp7.mjs";
2
- import { createHash } from "node:crypto";
3
- import { fromNow, timeDeltaToString } from "warframe-worldstate-data/utilities";
4
-
5
- //#region lib/models/MidrathCycle.ts
6
- /**
7
- * Get the current Midrath cycle time
8
- */
9
- function getCurrentMidrathCycle() {
10
- const dayDuration = 1920 * 1e3;
11
- const nightDuration = 960 * 1e3;
12
- const totalDuration = dayDuration + nightDuration;
13
- const refPoint = Date.parse("2025-08-07T16:05:29Z");
14
- const now = Date.now();
15
- const elapsedInCycle = (now - refPoint) % totalDuration;
16
- const isDay = elapsedInCycle < dayDuration;
17
- let phase = {
18
- name: "night",
19
- remaining: totalDuration - elapsedInCycle,
20
- duration: nightDuration
21
- };
22
- if (isDay) phase = {
23
- name: "day",
24
- remaining: dayDuration - elapsedInCycle,
25
- duration: dayDuration
26
- };
27
- const activation = new Date(now - (phase.duration - phase.remaining));
28
- return {
29
- activation,
30
- expiry: new Date(activation.getTime() + phase.duration),
31
- state: phase.name,
32
- isDay
33
- };
34
- }
35
- var MidrathCycle = class extends WorldStateObject {
36
- #cycle = getCurrentMidrathCycle();
37
- /**
38
- * Whether it's day or not
39
- */
40
- isDay;
41
- /**
42
- * The current state
43
- */
44
- state;
45
- constructor() {
46
- super({ _id: { $oid: "midrathCycle0" } });
47
- this.activation = this.#cycle.activation;
48
- this.expiry = this.#cycle.expiry;
49
- this.isDay = this.#cycle.isDay;
50
- this.state = this.#cycle.state;
51
- this.id = createHash("md5").update(JSON.stringify(this.expiry), "utf8").digest("hex");
52
- }
53
- /**
54
- * Get whether or not the event has expired
55
- */
56
- get expired() {
57
- return fromNow(this.expiry) < 0;
58
- }
59
- /**
60
- * The amount of time left as a string
61
- */
62
- get timeLeft() {
63
- return timeDeltaToString(fromNow(this.expiry));
64
- }
65
- };
66
-
67
- //#endregion
68
- export { MidrathCycle as t };
@@ -1,140 +0,0 @@
1
- import { t as Reward } from "./Reward-3FBJF_hS.mjs";
2
- import { faction, insist, languageString, missionType, node } from "warframe-worldstate-data/utilities";
3
-
4
- //#region lib/models/Mission.ts
5
- /**
6
- * Represents an in-game mission
7
- */
8
- var Mission = class {
9
- /**
10
- * The mission's description
11
- */
12
- description;
13
- /**
14
- * The node where the mission takes place
15
- */
16
- node;
17
- /**
18
- * Unlocalized node
19
- */
20
- nodeKey;
21
- /**
22
- * The mission's type
23
- */
24
- type;
25
- /**
26
- * The mission's type
27
- */
28
- typeKey;
29
- /**
30
- * The factions that the players must fight in the mission
31
- */
32
- faction;
33
- /**
34
- * The factions that the players must fight in the mission
35
- */
36
- factionKey;
37
- /**
38
- * The mission's reward
39
- */
40
- reward;
41
- /**
42
- * The minimum level of the enemies in the mission
43
- */
44
- minEnemyLevel;
45
- /**
46
- * The maximum level of the enemies in the mission
47
- */
48
- maxEnemyLevel;
49
- /**
50
- * The number of waves that the players need to complete (undefined if not applicable)
51
- */
52
- maxWaveNum;
53
- /**
54
- * The Mission's nightmare boolean
55
- */
56
- nightmare;
57
- /**
58
- * The Mission's archwing requirement
59
- */
60
- archwingRequired;
61
- /**
62
- * The Mission's sharkwing requirement
63
- */
64
- isSharkwing;
65
- /**
66
- * Override for the map on this mission
67
- */
68
- levelOverride;
69
- /**
70
- * Enemy specification for the mission
71
- */
72
- enemySpec;
73
- /**
74
- * Array of strings denoting extra spawners for a mission
75
- */
76
- advancedSpawners;
77
- /**
78
- * Items required to enter the mission
79
- */
80
- requiredItems;
81
- /**
82
- * Whether or not the required items are consumed
83
- */
84
- consumeRequiredItems;
85
- /**
86
- * Target for the mission
87
- */
88
- target;
89
- /**
90
- * Whether or not leaders are always allowed
91
- */
92
- leadersAlwaysAllowed;
93
- /**
94
- * A tag for the event that this corresponds to
95
- */
96
- goalTag;
97
- /**
98
- * Affectors for this mission
99
- */
100
- levelAuras;
101
- /**
102
- * Only weapon allowed for the mission
103
- */
104
- exclusiveWeapon;
105
- /**
106
- * @param data The mission data
107
- * @param locale Locale to use for translations
108
- */
109
- constructor(data, { locale = "en" } = { locale: "en" }) {
110
- const deps = { locale };
111
- insist({ ...data });
112
- this.description = languageString(data.descText, locale);
113
- this.node = node(data.node || data.location, locale);
114
- this.nodeKey = node(data.node || data.location, "en");
115
- this.type = missionType(data.missionType, locale);
116
- this.typeKey = missionType(data.missionType, "en");
117
- this.faction = faction(data.faction, locale);
118
- this.factionKey = faction(data.faction, "en");
119
- this.reward = data.missionReward ? new Reward(data.missionReward, deps) : void 0;
120
- this.minEnemyLevel = data.minEnemyLevel;
121
- this.maxEnemyLevel = data.maxEnemyLevel;
122
- this.maxWaveNum = data.maxWaveNum;
123
- this.nightmare = data.nightmare || false;
124
- this.archwingRequired = data.archwingRequired || false;
125
- this.isSharkwing = data.isSharkwingMission || false;
126
- this.levelOverride = languageString(data.levelOverride, locale);
127
- this.enemySpec = languageString(data.enemySpec, locale);
128
- this.advancedSpawners = (data.advancedSpawners || []).map((spawner) => languageString(spawner, locale));
129
- this.requiredItems = (data.requiredItems || []).map((reqItem) => languageString(reqItem, locale));
130
- this.consumeRequiredItems = data.consumeRequiredItems;
131
- this.target = data.vipAgent ? languageString(data.vipAgent, locale) : void 0;
132
- this.leadersAlwaysAllowed = data.leadersAlwaysAllowed;
133
- this.goalTag = data.goalTag;
134
- this.levelAuras = (data.levelAuras || []).map((aura) => languageString(aura, locale));
135
- this.exclusiveWeapon = languageString(data.exclusiveWeapon, locale);
136
- }
137
- };
138
-
139
- //#endregion
140
- export { Mission as t };
@@ -1,118 +0,0 @@
1
- import { n as deProxy, t as cdn } from "./ImgCdn-BJOdWAbU.mjs";
2
- import { t as WorldStateObject } from "./WorldStateObject-45dbRgp7.mjs";
3
- import { fromNow, languageString, parseDate, timeDeltaToString, toNow } from "warframe-worldstate-data/utilities";
4
-
5
- //#region lib/models/News.ts
6
- const updateReg = /(update|hotfix|patch-notes)/i;
7
- const primeAccessReg = /(access)/i;
8
- const streamReg = /(devstream|prime-time|warframeinternational|stream)/i;
9
- const langString = /(\/Lotus\/Language\/)/i;
10
- /**
11
- * Represents a game news item
12
- * @augments {WorldStateObject}
13
- */
14
- var News = class extends WorldStateObject {
15
- /**
16
- * The news message
17
- */
18
- message;
19
- /**
20
- * The link to the forum post
21
- */
22
- link;
23
- /**
24
- * The news's image link
25
- */
26
- imageLink;
27
- /**
28
- * Whether this has priority over other news or not
29
- */
30
- priority;
31
- /**
32
- * The date at which the post was published
33
- */
34
- date;
35
- /**
36
- * The message translated into different locales
37
- */
38
- translations;
39
- /**
40
- * Whether this is an update news item
41
- */
42
- update;
43
- /**
44
- * Whether this is a prime access news item
45
- */
46
- primeAccess;
47
- /**
48
- * Whether or not this is a stream
49
- */
50
- stream;
51
- /**
52
- * Whether or not this news is mobile only.
53
- */
54
- mobileOnly;
55
- /**
56
- * @param data The news data
57
- * @param locale Locale to use for determining language
58
- */
59
- constructor(data, { locale } = { locale: "en" }) {
60
- super({
61
- ...data,
62
- Activation: data.EventStartDate,
63
- Expiry: data.EventEndDate
64
- });
65
- this.message = (data.Messages.find((msg) => msg.LanguageCode === locale) || { Message: "" }).Message;
66
- if (langString.test(this.message)) this.message = languageString(this.message, locale);
67
- this.link = data.Prop;
68
- if ((!this.link || !this.link.length) && data.Links && data.Links.length) this.link = (data.Links.find((l) => l.LanguageCode === locale) || { Link: "https://www.warframe.com/" }).Link;
69
- this.imageLink = data.ImageUrl ? deProxy(data.ImageUrl) : cdn("img/news-placeholder.png");
70
- this.priority = data.Priority;
71
- this.date = parseDate(data.Date);
72
- this.translations = {};
73
- data.Messages.forEach((message) => {
74
- this.translations[message.LanguageCode] = message.Message;
75
- if (langString.test(message.Message)) this.translations[message.LanguageCode] = languageString(message.Message, message.LanguageCode);
76
- });
77
- this.update = this.isUpdate();
78
- this.primeAccess = this.isPrimeAccess();
79
- this.stream = this.isStream();
80
- this.mobileOnly = data.MobileOnly;
81
- }
82
- /**
83
- * Whether or not this is about a game update
84
- */
85
- isUpdate() {
86
- return updateReg.test(this.link);
87
- }
88
- /**
89
- * Whether this is about a new Prime Access
90
- */
91
- isPrimeAccess() {
92
- return primeAccessReg.test(this.link);
93
- }
94
- /**
95
- * Whether this is about a new stream
96
- */
97
- isStream() {
98
- return streamReg.test(this.message);
99
- }
100
- /**
101
- * ETA string (at time of object creation)
102
- */
103
- get eta() {
104
- if (this.expiry) return `in ${timeDeltaToString(fromNow(this.expiry))}`;
105
- return `${timeDeltaToString(toNow(this.date))} ago`;
106
- }
107
- /**
108
- * The title of the news item in the specified language
109
- * @param {string} langCode Ex. 'es', 'de', 'fr'
110
- * @returns {string} The title of the news item in the specified language
111
- */
112
- getTitle(langCode) {
113
- return langCode in this.translations ? this.translations[langCode] : this.message;
114
- }
115
- };
116
-
117
- //#endregion
118
- export { News as t };
@@ -1,60 +0,0 @@
1
- import { t as WorldStateObject } from "./WorldStateObject-45dbRgp7.mjs";
2
- import { t as NightwaveChallenge } from "./NightwaveChallenge-C8ARG7LC.mjs";
3
- import { fromNow, languageString, timeDeltaToString } from "warframe-worldstate-data/utilities";
4
-
5
- //#region lib/models/Nightwave.ts
6
- /**
7
- * Represents a nightwave state
8
- * @augments {WorldStateObject}
9
- */
10
- var Nightwave = class extends WorldStateObject {
11
- /**
12
- * The current season. 0-indexed.
13
- */
14
- season;
15
- /**
16
- * Descriptor for affiliation
17
- */
18
- tag;
19
- /**
20
- * The current season's current phase. 0-indexed.
21
- */
22
- phase;
23
- /**
24
- * Misc params provided.
25
- */
26
- params;
27
- /**
28
- * Array of possible challenges
29
- */
30
- possibleChallenges;
31
- /**
32
- * Array of active challenges
33
- */
34
- activeChallenges;
35
- /**
36
- * @param data The alert data
37
- * @param deps The dependencies object
38
- * @param deps.locale Locale to use for translations
39
- */
40
- constructor(data, { locale } = { locale: "en" }) {
41
- super(data);
42
- const deps = { locale };
43
- this.id = `nightwave${new Date(this.expiry).getTime()}`;
44
- this.season = data.Season;
45
- this.tag = languageString(data.AffiliationTag, locale);
46
- this.phase = data.Phase;
47
- this.params = JSON.parse(data.Params || "{}");
48
- this.possibleChallenges = (data.Challenges || []).map((challenge) => new NightwaveChallenge(challenge, deps)).filter((challenge) => challenge);
49
- this.activeChallenges = (data.ActiveChallenges || []).map((challenge) => new NightwaveChallenge(challenge, deps)).filter((challenge) => challenge);
50
- }
51
- /**
52
- * How much time is left before the nightwave expires
53
- */
54
- get eta() {
55
- return timeDeltaToString(fromNow(this.expiry));
56
- }
57
- };
58
-
59
- //#endregion
60
- export { Nightwave as t };
@@ -1,53 +0,0 @@
1
- import { t as WorldStateObject } from "./WorldStateObject-45dbRgp7.mjs";
2
- import { languageDesc, languageString } from "warframe-worldstate-data/utilities";
3
-
4
- //#region lib/models/NightwaveChallenge.ts
5
- const repBase = 1e3;
6
- /**
7
- * Represents an alert
8
- * @augments {WorldStateObject}
9
- */
10
- var NightwaveChallenge = class extends WorldStateObject {
11
- /**
12
- * Whether or not this is a daily challenge
13
- */
14
- isDaily;
15
- /**
16
- * Whether or not the challenge is an elite challenge
17
- */
18
- isElite;
19
- /**
20
- * The descriptor for this challenge
21
- */
22
- desc;
23
- /**
24
- * The title for this challenge
25
- */
26
- title;
27
- /**
28
- * Reputation reward for ranking up in the Nightwave
29
- */
30
- reputation;
31
- /**
32
- * Whether this challenge is permanent
33
- */
34
- isPermanent;
35
- /**
36
- * @param data The alert data
37
- * @param deps The dependencies object
38
- * @param deps.locale Locale to use for translations
39
- */
40
- constructor(data, { locale } = { locale: "en" }) {
41
- super(data);
42
- this.isDaily = data.Daily || false;
43
- this.isElite = /hard/gi.test(data.Challenge);
44
- this.desc = languageDesc(data.Challenge, locale);
45
- this.title = languageString(data.Challenge, locale);
46
- this.id = `${this.expiry.getTime()}${data.Challenge.split("/").slice(-1)[0].toLowerCase()}`;
47
- this.reputation = repBase + (!this.isDaily ? 3500 : 0) + (this.isElite ? 2500 : 0);
48
- this.isPermanent = Boolean(data?.Permanent);
49
- }
50
- };
51
-
52
- //#endregion
53
- export { NightwaveChallenge as t };
@@ -1,76 +0,0 @@
1
- import { t as WorldStateObject } from "./WorldStateObject-45dbRgp7.mjs";
2
- import { languageString, node, parseDate, region } from "warframe-worldstate-data/utilities";
3
-
4
- //#region lib/models/PersistentEnemy.ts
5
- /**
6
- * Represents a persistent enemy
7
- * @augments {WorldStateObject}
8
- */
9
- var PersistentEnemy = class extends WorldStateObject {
10
- /**
11
- * The enemy's type
12
- */
13
- agentType;
14
- /**
15
- * The location tag
16
- */
17
- locationTag;
18
- /**
19
- * The enemy's rank
20
- */
21
- rank;
22
- /**
23
- * The enemy's remaining health percentage
24
- */
25
- healthPercent;
26
- /**
27
- * The percentual damage that the enemy takes when it's defeated
28
- */
29
- fleeDamage;
30
- /**
31
- * The region where the enemy is located
32
- */
33
- region;
34
- /**
35
- * The last time the enemy was discovered
36
- */
37
- lastDiscoveredTime;
38
- /**
39
- * The node at which the enemy was last discovered
40
- */
41
- lastDiscoveredAt;
42
- /**
43
- * Whether or not the enemy is currently available
44
- */
45
- isDiscovered;
46
- /**
47
- * Whether or not the enemy is using ticketing
48
- */
49
- isUsingTicketing;
50
- /**
51
- * Fake ID incorporating discovery
52
- */
53
- pid;
54
- /**
55
- * @param data The persistent enemy data
56
- * @param deps The dependencies object
57
- * @param deps.locale Locale to use for translations
58
- */
59
- constructor(data, { locale } = { locale: "en" }) {
60
- super(data);
61
- this.agentType = languageString(data.AgentType, locale);
62
- this.locationTag = languageString(data.LocTag, locale);
63
- this.rank = data.Rank;
64
- this.healthPercent = Number.parseFloat(data.HealthPercent);
65
- this.fleeDamage = data.FleeDamage;
66
- this.region = region(data.Region, locale);
67
- this.lastDiscoveredTime = parseDate(data.LastDiscoveredTime);
68
- this.lastDiscoveredAt = node(data.LastDiscoveredLocation, locale);
69
- this.isDiscovered = data.Discovered;
70
- this.isUsingTicketing = data.UseTicketing;
71
- this.pid = `${this.id}${this.isDiscovered}`;
72
- }
73
- };
74
-
75
- //#endregion
76
- export { PersistentEnemy as t };
@@ -1,73 +0,0 @@
1
- import { t as RewardTypes_default } from "./RewardTypes-DUrR7H3G.mjs";
2
- import { insist, languageString } from "warframe-worldstate-data/utilities";
3
-
4
- //#region lib/models/Reward.ts
5
- /**
6
- * Returns the type of a given item
7
- */
8
- function getItemType(item, types = RewardTypes_default) {
9
- return types.find((t) => t.test(item)).name;
10
- }
11
- /**
12
- * Returns the full type of a given item
13
- */
14
- function getItemTypeFull(item, types = RewardTypes_default) {
15
- return types.find((t) => t.test(item));
16
- }
17
- /**
18
- * Represents a mission reward
19
- */
20
- var Reward = class {
21
- /**
22
- * The items being rewarded
23
- */
24
- items;
25
- /**
26
- * The counted items being rewarded
27
- */
28
- countedItems;
29
- /**
30
- * The credits being rewarded
31
- */
32
- credits;
33
- /**
34
- * Thumbnail url
35
- */
36
- thumbnail;
37
- /**
38
- * Reward color
39
- */
40
- color;
41
- /**
42
- * @param data The mission data
43
- * @param deps The dependencies object
44
- * @param deps.locale Locale to use for translations
45
- */
46
- constructor(data, { locale = "en" } = { locale: "en" }) {
47
- insist({ ...data });
48
- this.items = data.items ? data.items.map((i) => languageString(i, locale)) : [];
49
- this.countedItems = data.countedItems ? data.countedItems.map((i) => ({
50
- count: i.ItemCount,
51
- type: languageString(i.ItemType, locale),
52
- key: languageString(i.ItemType)
53
- })) : [];
54
- this.credits = data.credits || 0;
55
- this.thumbnail = this.getTypesFull()[0] ? this.getTypesFull()[0].thumbnail : "https://i.imgur.com/JCKyUXJ.png";
56
- this.color = this.getTypesFull()[0] ? this.getTypesFull()[0].color : 15844367;
57
- }
58
- /**
59
- * The types of all items that are being rewarded
60
- */
61
- getTypes() {
62
- return this.items.concat(this.countedItems.map((i) => i.key)).map((t) => getItemType(t));
63
- }
64
- /**
65
- * The types of all the items that are being rewarded
66
- */
67
- getTypesFull() {
68
- return this.items.concat(this.countedItems.map((i) => i.key)).map((t) => getItemTypeFull(t));
69
- }
70
- };
71
-
72
- //#endregion
73
- export { getItemType as n, getItemTypeFull as r, Reward as t };