warframe-worldstate-parser 5.2.15 → 5.2.17

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 (181) hide show
  1. package/dist/lib/WorldState.d.mts +35 -19
  2. package/dist/lib/WorldState.mjs +31 -45
  3. package/dist/lib/models/Alert.d.mts +45 -17
  4. package/dist/lib/models/Alert.mjs +49 -5
  5. package/dist/lib/models/Archimedea.d.mts +86 -17
  6. package/dist/lib/models/Archimedea.mjs +88 -2
  7. package/dist/lib/models/Calendar.d.mts +77 -2
  8. package/dist/lib/models/Calendar.mjs +79 -2
  9. package/dist/lib/models/CambionCycle.d.mts +21 -3
  10. package/dist/lib/models/CambionCycle.mjs +28 -2
  11. package/dist/lib/models/CetusCycle.d.mts +48 -2
  12. package/dist/lib/models/CetusCycle.mjs +87 -2
  13. package/dist/lib/models/ChallengeInstance.d.mts +53 -17
  14. package/dist/lib/models/ChallengeInstance.mjs +46 -1
  15. package/dist/lib/models/ConclaveChallenge.d.mts +76 -17
  16. package/dist/lib/models/ConclaveChallenge.mjs +77 -2
  17. package/dist/lib/models/ConstructionProgress.d.mts +17 -2
  18. package/dist/lib/models/ConstructionProgress.mjs +23 -2
  19. package/dist/lib/models/DailyDeal.d.mts +66 -17
  20. package/dist/lib/models/DailyDeal.mjs +64 -2
  21. package/dist/lib/models/DarkSector.d.mts +142 -17
  22. package/dist/lib/models/DarkSector.mjs +136 -6
  23. package/dist/lib/models/DarkSectorBattle.d.mts +52 -2
  24. package/dist/lib/models/DarkSectorBattle.mjs +49 -1
  25. package/dist/lib/models/DuviriCycle.d.mts +23 -17
  26. package/dist/lib/models/DuviriCycle.mjs +55 -2
  27. package/dist/lib/models/EarthCycle.d.mts +59 -2
  28. package/dist/lib/models/EarthCycle.mjs +73 -2
  29. package/dist/lib/models/Fissure.d.mts +78 -17
  30. package/dist/lib/models/Fissure.mjs +83 -2
  31. package/dist/lib/models/FlashSale.d.mts +71 -17
  32. package/dist/lib/models/FlashSale.mjs +73 -2
  33. package/dist/lib/models/GlobalUpgrade.d.mts +55 -17
  34. package/dist/lib/models/GlobalUpgrade.mjs +56 -2
  35. package/dist/lib/models/Invasion.d.mts +113 -17
  36. package/dist/lib/models/Invasion.mjs +106 -4
  37. package/dist/lib/models/Kinepage.d.mts +21 -1
  38. package/dist/lib/models/Kinepage.mjs +22 -1
  39. package/dist/lib/models/Kuva.d.mts +20 -17
  40. package/dist/lib/models/Kuva.mjs +85 -1
  41. package/dist/lib/models/MidrathCycle.d.mts +24 -2
  42. package/dist/lib/models/MidrathCycle.mjs +66 -2
  43. package/dist/lib/models/Mission.d.mts +138 -17
  44. package/dist/lib/models/Mission.mjs +138 -3
  45. package/dist/lib/models/News.d.mts +100 -2
  46. package/dist/lib/models/News.mjs +116 -2
  47. package/dist/lib/models/Nightwave.d.mts +58 -3
  48. package/dist/lib/models/Nightwave.mjs +58 -3
  49. package/dist/lib/models/NightwaveChallenge.d.mts +50 -2
  50. package/dist/lib/models/NightwaveChallenge.mjs +51 -2
  51. package/dist/lib/models/PersistentEnemy.d.mts +78 -2
  52. package/dist/lib/models/PersistentEnemy.mjs +74 -2
  53. package/dist/lib/models/Reward.d.mts +67 -17
  54. package/dist/lib/models/Reward.mjs +71 -2
  55. package/dist/lib/models/SentientOutpost.d.mts +46 -17
  56. package/dist/lib/models/SentientOutpost.mjs +63 -1
  57. package/dist/lib/models/Simaris.d.mts +36 -17
  58. package/dist/lib/models/Simaris.mjs +33 -1
  59. package/dist/lib/models/Sortie.d.mts +60 -17
  60. package/dist/lib/models/Sortie.mjs +71 -6
  61. package/dist/lib/models/SortieVariant.d.mts +49 -17
  62. package/dist/lib/models/SortieVariant.mjs +49 -1
  63. package/dist/lib/models/SteelPathOffering.d.mts +36 -1
  64. package/dist/lib/models/SteelPathOffering.mjs +81 -1
  65. package/dist/lib/models/SyndicateJob.d.mts +92 -17
  66. package/dist/lib/models/SyndicateJob.mjs +161 -5
  67. package/dist/lib/models/SyndicateMission.d.mts +58 -17
  68. package/dist/lib/models/SyndicateMission.mjs +64 -6
  69. package/dist/lib/models/Tmp.d.mts +34 -17
  70. package/dist/lib/models/Tmp.mjs +28 -2
  71. package/dist/lib/models/VallisCycle.d.mts +29 -2
  72. package/dist/lib/models/VallisCycle.mjs +72 -2
  73. package/dist/lib/models/VoidTrader.d.mts +76 -17
  74. package/dist/lib/models/VoidTrader.mjs +76 -4
  75. package/dist/lib/models/VoidTraderItem.d.mts +43 -17
  76. package/dist/lib/models/VoidTraderItem.mjs +36 -1
  77. package/dist/lib/models/VoidTraderSchedule.d.mts +16 -17
  78. package/dist/lib/models/VoidTraderSchedule.mjs +12 -1
  79. package/dist/lib/models/WeeklyChallenge.d.mts +19 -17
  80. package/dist/lib/models/WeeklyChallenge.mjs +19 -3
  81. package/dist/lib/models/WorldEvent.d.mts +204 -17
  82. package/dist/lib/models/WorldEvent.mjs +211 -7
  83. package/dist/lib/models/WorldStateObject.d.mts +47 -1
  84. package/dist/lib/models/WorldStateObject.mjs +52 -1
  85. package/dist/lib/models/ZarimanCycle.d.mts +44 -2
  86. package/dist/lib/models/ZarimanCycle.mjs +77 -2
  87. package/dist/lib/models/index.d.mts +42 -18
  88. package/dist/lib/models/index.mjs +42 -45
  89. package/dist/lib/supporting/Dependency.d.mts +40 -1
  90. package/dist/lib/supporting/DuviriChoice.d.mts +18 -17
  91. package/dist/lib/supporting/DuviriChoice.mjs +23 -1
  92. package/dist/lib/supporting/ExternalMission.d.mts +48 -1
  93. package/dist/lib/supporting/FetchProxy.d.mts +9 -1
  94. package/dist/lib/supporting/FetchProxy.mjs +44 -1
  95. package/dist/lib/supporting/ImgCdn.d.mts +5 -1
  96. package/dist/lib/supporting/ImgCdn.mjs +5 -1
  97. package/dist/lib/supporting/KuvaLogEntry.d.mts +20 -1
  98. package/dist/lib/supporting/RewardData.d.mts +10 -1
  99. package/dist/lib/supporting/RewardData.mjs +74 -1
  100. package/dist/lib/supporting/RewardTypes.d.mts +33 -1
  101. package/dist/lib/supporting/RewardTypes.mjs +326 -1
  102. package/dist/lib/supporting/index.d.mts +8 -23
  103. package/dist/lib/supporting/index.mjs +5 -6
  104. package/dist/main.d.mts +52 -24
  105. package/dist/main.mjs +47 -48
  106. package/package.json +1 -1
  107. package/dist/Alert-CPT2sBmd.mjs +0 -51
  108. package/dist/Archimedea-Vo36QE99.mjs +0 -90
  109. package/dist/Calendar-CRM0XhAy.d.mts +0 -78
  110. package/dist/Calendar-_gEQ9BEd.mjs +0 -81
  111. package/dist/CambionCycle-B1pqIgks.mjs +0 -30
  112. package/dist/CambionCycle-OI3v1knd.d.mts +0 -22
  113. package/dist/CetusCycle-Ct51M2pd.mjs +0 -89
  114. package/dist/CetusCycle-DQ4n05vO.d.mts +0 -49
  115. package/dist/ChallengeInstance-BOu_e7ML.mjs +0 -48
  116. package/dist/ConclaveChallenge-BTN6UyV6.mjs +0 -79
  117. package/dist/ConstructionProgress-BoF2P9fx.mjs +0 -25
  118. package/dist/ConstructionProgress-DG2KzS0X.d.mts +0 -18
  119. package/dist/DailyDeal-aoNeCFWT.mjs +0 -66
  120. package/dist/DarkSector-D0uJWCg7.mjs +0 -138
  121. package/dist/DarkSectorBattle-CiSe3kFm.d.mts +0 -53
  122. package/dist/DarkSectorBattle-CqRYeNpe.mjs +0 -51
  123. package/dist/Dependency-BR-dAeHI.mjs +0 -1
  124. package/dist/Dependency-CNqXngHD.d.mts +0 -41
  125. package/dist/DuviriChoice-BEBiWA-g.mjs +0 -25
  126. package/dist/DuviriCycle-Do7mMnoC.mjs +0 -57
  127. package/dist/EarthCycle-BOAlcAuQ.mjs +0 -75
  128. package/dist/EarthCycle-CxtijnVV.d.mts +0 -60
  129. package/dist/ExternalMission-C82w4uMq.d.mts +0 -49
  130. package/dist/ExternalMission-D3MSZgnN.mjs +0 -1
  131. package/dist/FetchProxy-Bkdk15SX.mjs +0 -46
  132. package/dist/FetchProxy-DfSTUgkf.d.mts +0 -10
  133. package/dist/Fissure-diM4hyi3.mjs +0 -85
  134. package/dist/FlashSale-CNfRaZhM.mjs +0 -75
  135. package/dist/GlobalUpgrade-CUtZw05z.mjs +0 -58
  136. package/dist/ImgCdn-BJOdWAbU.mjs +0 -7
  137. package/dist/ImgCdn-D0hSGSB1.d.mts +0 -6
  138. package/dist/Invasion-Corx1lxf.mjs +0 -108
  139. package/dist/Kinepage-B-Ym_VW5.d.mts +0 -22
  140. package/dist/Kinepage-CbSzge67.mjs +0 -24
  141. package/dist/Kuva-Ijy2ZGBL.mjs +0 -87
  142. package/dist/KuvaLogEntry-D_VzIT3W.mjs +0 -1
  143. package/dist/KuvaLogEntry-cftxhjfU.d.mts +0 -21
  144. package/dist/MidrathCycle-E0gMF3AR.d.mts +0 -25
  145. package/dist/MidrathCycle-XD2T8Dx5.mjs +0 -68
  146. package/dist/Mission-b8KP-YDf.mjs +0 -140
  147. package/dist/News-DxEm-q6V.d.mts +0 -101
  148. package/dist/News-zAK-sYRg.mjs +0 -118
  149. package/dist/Nightwave-CPqMSqGK.d.mts +0 -59
  150. package/dist/Nightwave-cTRmlbwH.mjs +0 -60
  151. package/dist/NightwaveChallenge-C8ARG7LC.mjs +0 -53
  152. package/dist/NightwaveChallenge-CG3uychc.d.mts +0 -51
  153. package/dist/PersistentEnemy-3Sw5E8AN.mjs +0 -76
  154. package/dist/PersistentEnemy-DnnnreSz.d.mts +0 -79
  155. package/dist/Reward-3FBJF_hS.mjs +0 -73
  156. package/dist/RewardData-C_9b8Yhi.mjs +0 -76
  157. package/dist/RewardData-DWCgJ3UT.d.mts +0 -11
  158. package/dist/RewardTypes-DUrR7H3G.mjs +0 -328
  159. package/dist/RewardTypes-Y3tHrtIJ.d.mts +0 -34
  160. package/dist/SentientOutpost-Cadk-pIW.mjs +0 -65
  161. package/dist/Simaris-D6etEQp_.mjs +0 -35
  162. package/dist/Sortie-rSBgJc6U.mjs +0 -73
  163. package/dist/SortieVariant-CnuLkkNZ.mjs +0 -51
  164. package/dist/SteelPathOffering--wm-7hwb.mjs +0 -83
  165. package/dist/SteelPathOffering-CQkoKi5T.d.mts +0 -37
  166. package/dist/SyndicateJob-R89tWqvT.mjs +0 -162
  167. package/dist/SyndicateMission-CKZDWNyf.mjs +0 -66
  168. package/dist/Tmp-BYL_mYIG.mjs +0 -30
  169. package/dist/VallisCycle-6DCaWFoR.d.mts +0 -30
  170. package/dist/VallisCycle-C5JCM2ia.mjs +0 -74
  171. package/dist/VoidTrader-DtjtVUgR.mjs +0 -78
  172. package/dist/VoidTraderItem-Cz6x1KTF.mjs +0 -38
  173. package/dist/VoidTraderSchedule-BsJLu50V.mjs +0 -14
  174. package/dist/WeeklyChallenge-Dl2ekl6X.mjs +0 -21
  175. package/dist/WorldEvent-C-LaV2ug.mjs +0 -213
  176. package/dist/WorldStateObject-45dbRgp7.mjs +0 -54
  177. package/dist/WorldStateObject-C1HEDkH7.d.mts +0 -48
  178. package/dist/ZarimanCycle-BrSLIWhD.d.mts +0 -45
  179. package/dist/ZarimanCycle-DoAPwgaM.mjs +0 -79
  180. package/dist/index-Bgx8kIDy.d.mts +0 -1671
  181. package/dist/supporting-BLSXhlWM.mjs +0 -1
@@ -1,18 +1,205 @@
1
- import "../../Dependency-CNqXngHD.mjs";
2
- import { a as WorldEvent, i as RawWorldEvent, n as InterimStep, r as ProgressStep, t as InterimRewardMessage } from "../../index-Bgx8kIDy.mjs";
3
- import "../../WorldStateObject-C1HEDkH7.mjs";
4
- import "../../Calendar-CRM0XhAy.mjs";
5
- import "../../CetusCycle-DQ4n05vO.mjs";
6
- import "../../CambionCycle-OI3v1knd.mjs";
7
- import "../../ConstructionProgress-DG2KzS0X.mjs";
8
- import "../../DarkSectorBattle-CiSe3kFm.mjs";
9
- import "../../EarthCycle-CxtijnVV.mjs";
10
- import "../../MidrathCycle-E0gMF3AR.mjs";
11
- import "../../News-DxEm-q6V.mjs";
12
- import "../../NightwaveChallenge-CG3uychc.mjs";
13
- import "../../Nightwave-CPqMSqGK.mjs";
14
- import "../../PersistentEnemy-DnnnreSz.mjs";
15
- import "../../SteelPathOffering-CQkoKi5T.mjs";
16
- import "../../VallisCycle-6DCaWFoR.mjs";
17
- import "../../ZarimanCycle-BrSLIWhD.mjs";
1
+ import { Dependency } from "../supporting/Dependency.mjs";
2
+ import "../supporting/index.mjs";
3
+ import { RawReward, Reward } from "./Reward.mjs";
4
+ import { BaseContentObject, Identifier, WorldStateObject } from "./WorldStateObject.mjs";
5
+ import { RawSyndicateJob, SyndicateJob } from "./SyndicateJob.mjs";
6
+ import { ContentTimestamp } from "warframe-worldstate-data/utilities";
7
+
8
+ //#region lib/models/WorldEvent.d.ts
9
+ /**
10
+ * Interim step for an event reward system.
11
+ */
12
+ interface InterimStep {
13
+ goal: number;
14
+ reward: Reward | undefined;
15
+ winnerCount: number;
16
+ message: object;
17
+ }
18
+ /**
19
+ * Progress for one of multiple stages
20
+ */
21
+ interface ProgressStep {
22
+ type: string;
23
+ progressAmt: number;
24
+ }
25
+ interface InterimRewardMessage {
26
+ sender: string;
27
+ subject: string;
28
+ message: string;
29
+ senderIcon: string;
30
+ attachments: string;
31
+ }
32
+ interface RawWorldEvent extends BaseContentObject {
33
+ Goal: number;
34
+ Count?: number;
35
+ GoalInterim?: string;
36
+ GoalInterim2?: string;
37
+ Faction?: string;
38
+ Desc: string;
39
+ ToolTip?: string;
40
+ Node?: string;
41
+ ConcurrentNodes?: string[] | undefined;
42
+ VictimNode?: string;
43
+ Fomorian?: string;
44
+ ScoreLocTag?: string;
45
+ HealthPct?: number;
46
+ JobPreviousVersion?: Identifier;
47
+ Reward?: RawReward;
48
+ InterimRewards?: RawReward[];
49
+ InterimRewardMessages?: InterimRewardMessage[];
50
+ InterimGoals: number[];
51
+ _interimWinnerCounts?: number[];
52
+ IsMultiProgress?: boolean;
53
+ Types?: string[];
54
+ MultiProgress?: string[];
55
+ ShowTotalAtEOM?: boolean;
56
+ Personal: boolean;
57
+ Community?: boolean;
58
+ RegionDrops?: string[];
59
+ ArchwingDrops?: string[];
60
+ Metadata?: string;
61
+ CompletionBonus?: number[];
62
+ ScoreVar: string;
63
+ AltExpiry?: ContentTimestamp;
64
+ AltActivation?: ContentTimestamp;
65
+ NextAltExpiry?: ContentTimestamp;
66
+ NextAltActivation?: ContentTimestamp;
67
+ JobAffiliationTag?: string;
68
+ Tag: string;
69
+ Jobs?: RawSyndicateJob[];
70
+ PreviousJobs?: RawSyndicateJob[];
71
+ }
72
+ /**
73
+ * Represents an in-game special event
74
+ * @augments {WorldStateObject}
75
+ */
76
+ declare class WorldEvent extends WorldStateObject {
77
+ jobs: SyndicateJob[];
78
+ previousJobs: SyndicateJob[];
79
+ /**
80
+ * The event's main score goal
81
+ */
82
+ maximumScore: number;
83
+ /**
84
+ * The current score on the event
85
+ */
86
+ currentScore: number;
87
+ /**
88
+ * The first intermediate score goal
89
+ */
90
+ smallInterval: number;
91
+ /**
92
+ * The second intermediate score goal
93
+ */
94
+ largeInterval: number;
95
+ /**
96
+ * The faction that the players must fight in the event
97
+ */
98
+ faction: string | undefined;
99
+ /**
100
+ * The description of the event
101
+ */
102
+ description: string;
103
+ /**
104
+ * Tooltip for the event
105
+ */
106
+ tooltip: string | undefined;
107
+ /**
108
+ * The node where the event takes place
109
+ */
110
+ node: string | undefined;
111
+ /**
112
+ * The other nodes where the event takes place
113
+ */
114
+ concurrentNodes: string[];
115
+ /**
116
+ * The victim node
117
+ */
118
+ victimNode: string | undefined;
119
+ /**
120
+ * The score description
121
+ */
122
+ scoreLocTag: string | undefined;
123
+ /**
124
+ * The event's rewards
125
+ */
126
+ rewards: Reward[];
127
+ /**
128
+ * Health remaining for the target
129
+ */
130
+ health: number | undefined;
131
+ /**
132
+ * Previous job id
133
+ */
134
+ previousId: string | undefined;
135
+ /**
136
+ * Array of steps
137
+ */
138
+ interimSteps: InterimStep[];
139
+ /**
140
+ * Progress Steps, if any are present
141
+ */
142
+ progressSteps: ProgressStep[];
143
+ /**
144
+ * Total of all MultiProgress
145
+ */
146
+ progressTotal?: number;
147
+ /**
148
+ * Whether to show the total score at the end of the mission
149
+ */
150
+ showTotalAtEndOfMission: boolean;
151
+ /**
152
+ * Whether the event is personal
153
+ */
154
+ isPersonal: boolean;
155
+ /**
156
+ * Whether the event is community
157
+ */
158
+ isCommunity: boolean;
159
+ regionDrops: string[];
160
+ /**
161
+ * Archwing Drops in effect while this event is active
162
+ */
163
+ archwingDrops: string[];
164
+ /**
165
+ * Metadata provided by DE
166
+ */
167
+ metadata: object;
168
+ /**
169
+ * Bonuses given for completion
170
+ */
171
+ completionBonuses: number[];
172
+ scoreVar: string;
173
+ altExpiry: Date;
174
+ altActivation: Date;
175
+ nextAlt: {
176
+ expiry: Date;
177
+ activation: Date;
178
+ };
179
+ affiliatedWith?: string;
180
+ /**
181
+ * The event's tag
182
+ */
183
+ tag: string;
184
+ victim?: string;
185
+ /**
186
+ * Asynchronously build a new WorldEvent
187
+ * @param data The event data
188
+ * @param deps The dependencies object
189
+ * @returns The created WorldEvent object
190
+ */
191
+ static build(data: RawWorldEvent, deps: Dependency): Promise<WorldEvent>;
192
+ /**
193
+ * @param data The event data
194
+ * @param deps The dependencies object
195
+ */
196
+ constructor(data: RawWorldEvent, {
197
+ locale
198
+ }?: Dependency);
199
+ /**
200
+ * Whether the event has expired
201
+ */
202
+ get expired(): boolean;
203
+ }
204
+ //#endregion
18
205
  export { InterimRewardMessage, InterimStep, ProgressStep, RawWorldEvent, WorldEvent };
@@ -1,9 +1,213 @@
1
- import "../../RewardTypes-DUrR7H3G.mjs";
2
- import "../../Reward-3FBJF_hS.mjs";
3
- import "../../WorldStateObject-45dbRgp7.mjs";
4
- import "../../FetchProxy-Bkdk15SX.mjs";
5
- import "../../supporting-BLSXhlWM.mjs";
6
- import "../../SyndicateJob-R89tWqvT.mjs";
7
- import { t as WorldEvent } from "../../WorldEvent-C-LaV2ug.mjs";
1
+ import { Reward } from "./Reward.mjs";
2
+ import { WorldStateObject } from "./WorldStateObject.mjs";
3
+ import { SyndicateJob } from "./SyndicateJob.mjs";
4
+ import { faction, fromNow, languageString, node, parseDate, syndicate } from "warframe-worldstate-data/utilities";
8
5
 
6
+ //#region lib/models/WorldEvent.ts
7
+ /**
8
+ * Represents an in-game special event
9
+ * @augments {WorldStateObject}
10
+ */
11
+ var WorldEvent = class WorldEvent extends WorldStateObject {
12
+ jobs;
13
+ previousJobs;
14
+ /**
15
+ * The event's main score goal
16
+ */
17
+ maximumScore;
18
+ /**
19
+ * The current score on the event
20
+ */
21
+ currentScore;
22
+ /**
23
+ * The first intermediate score goal
24
+ */
25
+ smallInterval;
26
+ /**
27
+ * The second intermediate score goal
28
+ */
29
+ largeInterval;
30
+ /**
31
+ * The faction that the players must fight in the event
32
+ */
33
+ faction;
34
+ /**
35
+ * The description of the event
36
+ */
37
+ description;
38
+ /**
39
+ * Tooltip for the event
40
+ */
41
+ tooltip;
42
+ /**
43
+ * The node where the event takes place
44
+ */
45
+ node;
46
+ /**
47
+ * The other nodes where the event takes place
48
+ */
49
+ concurrentNodes;
50
+ /**
51
+ * The victim node
52
+ */
53
+ victimNode;
54
+ /**
55
+ * The score description
56
+ */
57
+ scoreLocTag;
58
+ /**
59
+ * The event's rewards
60
+ */
61
+ rewards;
62
+ /**
63
+ * Health remaining for the target
64
+ */
65
+ health;
66
+ /**
67
+ * Previous job id
68
+ */
69
+ previousId;
70
+ /**
71
+ * Array of steps
72
+ */
73
+ interimSteps;
74
+ /**
75
+ * Progress Steps, if any are present
76
+ */
77
+ progressSteps;
78
+ /**
79
+ * Total of all MultiProgress
80
+ */
81
+ progressTotal;
82
+ /**
83
+ * Whether to show the total score at the end of the mission
84
+ */
85
+ showTotalAtEndOfMission;
86
+ /**
87
+ * Whether the event is personal
88
+ */
89
+ isPersonal;
90
+ /**
91
+ * Whether the event is community
92
+ */
93
+ isCommunity;
94
+ regionDrops;
95
+ /**
96
+ * Archwing Drops in effect while this event is active
97
+ */
98
+ archwingDrops;
99
+ /**
100
+ * Metadata provided by DE
101
+ */
102
+ metadata;
103
+ /**
104
+ * Bonuses given for completion
105
+ */
106
+ completionBonuses;
107
+ scoreVar;
108
+ altExpiry;
109
+ altActivation;
110
+ nextAlt;
111
+ affiliatedWith;
112
+ /**
113
+ * The event's tag
114
+ */
115
+ tag;
116
+ victim;
117
+ /**
118
+ * Asynchronously build a new WorldEvent
119
+ * @param data The event data
120
+ * @param deps The dependencies object
121
+ * @returns The created WorldEvent object
122
+ */
123
+ static async build(data, deps) {
124
+ const event = new WorldEvent(data, deps);
125
+ if (data.Jobs) {
126
+ const jobs = [];
127
+ for await (const job of data.Jobs ?? []) jobs.push(await SyndicateJob.build(job, event.expiry, deps));
128
+ event.jobs = jobs;
129
+ }
130
+ if (data.PreviousJobs) {
131
+ const previousJobs = [];
132
+ for await (const job of data.PreviousJobs ?? []) previousJobs.push(await SyndicateJob.build(job, event.expiry, deps));
133
+ event.previousJobs = previousJobs;
134
+ }
135
+ return event;
136
+ }
137
+ /**
138
+ * @param data The event data
139
+ * @param deps The dependencies object
140
+ */
141
+ constructor(data, { locale = "en" } = { locale: "en" }) {
142
+ super(data);
143
+ const opts = { locale };
144
+ this.maximumScore = Number.parseInt(String(data.Goal), 10);
145
+ this.currentScore = Number.parseInt(String(data.Count), 10);
146
+ this.smallInterval = Number.parseInt(String(data.GoalInterim), 10);
147
+ this.largeInterval = Number.parseInt(String(data.GoalInterim2), 10);
148
+ this.faction = data.Faction ? faction(data.Faction, locale) : void 0;
149
+ this.description = languageString(data.Desc, locale);
150
+ this.tooltip = data.ToolTip ? languageString(data.ToolTip, locale) : void 0;
151
+ this.node = data.Node ? node(data.Node, locale) : void 0;
152
+ this.concurrentNodes = data.ConcurrentNodes ? data.ConcurrentNodes.map((n) => node(n, locale)) : [];
153
+ this.victimNode = data.VictimNode ? node(data.VictimNode, locale) : void 0;
154
+ this.scoreLocTag = data.ScoreLocTag ? languageString(data.ScoreLocTag, locale) : void 0;
155
+ if (data.Fomorian) this.scoreLocTag = "Fomorian Assault Score";
156
+ this.rewards = Object.keys(data).filter((k) => k.includes("Reward") || k.includes("reward")).map((k) => new Reward(data[k], opts)).filter((r) => r.items.length > 0);
157
+ this.health = typeof data.HealthPct !== "undefined" ? Number.parseFloat(((data.HealthPct || 0) * 100).toFixed(2)) : void 0;
158
+ this.jobs = [];
159
+ this.previousJobs = [];
160
+ this.previousId = data.JobPreviousVersion?.$oid;
161
+ this.interimSteps = [];
162
+ (data.InterimRewards || []).forEach((reward, index) => {
163
+ const msg = (data.InterimRewardMessages || [])[index] || {};
164
+ this.interimSteps[index] = {
165
+ goal: Number.parseInt(String(data.InterimGoals[index]), 10),
166
+ reward: reward ? new Reward(reward, opts) : void 0,
167
+ message: {
168
+ sender: languageString(msg.sender, locale),
169
+ subject: languageString(msg.subject, locale),
170
+ message: languageString(msg.message, locale),
171
+ senderIcon: msg.senderIcon,
172
+ attachments: msg.attachments
173
+ },
174
+ winnerCount: (data._interimWinnerCounts || [])[index]
175
+ };
176
+ });
177
+ this.progressSteps = [];
178
+ if (data.IsMultiProgress) {
179
+ data.Types?.forEach((type, index) => {
180
+ this.progressSteps[index] = {
181
+ type: languageString(type, locale),
182
+ progressAmt: Number.parseInt(String(data.MultiProgress[index]), 10)
183
+ };
184
+ });
185
+ this.progressTotal = Number.parseFloat(String(data.MultiProgress.reduce((acc, val) => acc + Number.parseFloat(val), 0)));
186
+ }
187
+ this.showTotalAtEndOfMission = data.ShowTotalAtEOM ?? false;
188
+ this.isPersonal = data.Personal;
189
+ this.isCommunity = data.Community ?? false;
190
+ this.regionDrops = (data.RegionDrops || []).map((drop) => languageString(drop, locale));
191
+ this.archwingDrops = (data.ArchwingDrops || []).map((drop) => languageString(drop, locale));
192
+ this.metadata = JSON.parse((data.Metadata || "{}").replace("\" ", "\""));
193
+ this.completionBonuses = data.CompletionBonus || [];
194
+ this.scoreVar = data.ScoreVar;
195
+ this.altExpiry = parseDate(data.AltExpiry);
196
+ this.altActivation = parseDate(data.AltActivation);
197
+ this.nextAlt = {
198
+ expiry: parseDate(data.NextAltExpiry),
199
+ activation: parseDate(data.NextAltActivation)
200
+ };
201
+ if (data.JobAffiliationTag) this.affiliatedWith = syndicate(data.JobAffiliationTag, locale);
202
+ this.tag = data.Tag;
203
+ }
204
+ /**
205
+ * Whether the event has expired
206
+ */
207
+ get expired() {
208
+ return fromNow(this.expiry) < 0;
209
+ }
210
+ };
211
+
212
+ //#endregion
9
213
  export { WorldEvent };
@@ -1,2 +1,48 @@
1
- import { n as Identifier, r as WorldStateObject, t as BaseContentObject } from "../../WorldStateObject-C1HEDkH7.mjs";
1
+ import { ContentTimestamp } from "warframe-worldstate-data/utilities";
2
+
3
+ //#region lib/models/WorldStateObject.d.ts
4
+ interface Identifier {
5
+ $id?: string;
6
+ $oid?: string;
7
+ }
8
+ interface BaseContentObject {
9
+ _id?: Identifier;
10
+ Activation?: ContentTimestamp;
11
+ Expiry?: ContentTimestamp;
12
+ }
13
+ /**
14
+ * Represents a generic object from WorldState
15
+ */
16
+ declare class WorldStateObject {
17
+ /**
18
+ * The object's id field
19
+ */
20
+ id?: string;
21
+ /**
22
+ * The date and time at which the WorldStateObject started
23
+ */
24
+ activation?: Date;
25
+ /**
26
+ * The date and time at which the WorldStateObject ends
27
+ */
28
+ expiry?: Date;
29
+ /**
30
+ * @param data The object data
31
+ */
32
+ constructor(data: BaseContentObject);
33
+ /**
34
+ * Whether the void trader is active (at time of object creation)
35
+ */
36
+ get active(): boolean;
37
+ /**
38
+ * A string indicating how long it will take for the trader to arrive
39
+ * (at time of object creation)
40
+ */
41
+ get startString(): string | undefined;
42
+ /**
43
+ * Time delta string from now to the end
44
+ */
45
+ get endString(): string | undefined;
46
+ }
47
+ //#endregion
2
48
  export { BaseContentObject, Identifier, WorldStateObject };
@@ -1,3 +1,54 @@
1
- import { t as WorldStateObject } from "../../WorldStateObject-45dbRgp7.mjs";
1
+ import { fromNow, insist, parseDate, timeDeltaToString } from "warframe-worldstate-data/utilities";
2
2
 
3
+ //#region lib/models/WorldStateObject.ts
4
+ /**
5
+ * Represents a generic object from WorldState
6
+ */
7
+ var WorldStateObject = class {
8
+ /**
9
+ * The object's id field
10
+ */
11
+ id;
12
+ /**
13
+ * The date and time at which the WorldStateObject started
14
+ */
15
+ activation;
16
+ /**
17
+ * The date and time at which the WorldStateObject ends
18
+ */
19
+ expiry;
20
+ /**
21
+ * @param data The object data
22
+ */
23
+ constructor(data) {
24
+ insist({ ...data });
25
+ this.id = data._id ? data._id.$oid || data._id.$id : void 0;
26
+ if (data.Activation) this.activation = parseDate(data.Activation);
27
+ if (data.Expiry) this.expiry = parseDate(data.Expiry);
28
+ }
29
+ /**
30
+ * Whether the void trader is active (at time of object creation)
31
+ */
32
+ get active() {
33
+ if (!this.activation && !this.expiry) return false;
34
+ return fromNow(this.activation) < 0 && fromNow(this.expiry) > 0;
35
+ }
36
+ /**
37
+ * A string indicating how long it will take for the trader to arrive
38
+ * (at time of object creation)
39
+ */
40
+ get startString() {
41
+ if (!this.activation) return void 0;
42
+ return timeDeltaToString(fromNow(this.activation));
43
+ }
44
+ /**
45
+ * Time delta string from now to the end
46
+ */
47
+ get endString() {
48
+ if (!this.expiry) return void 0;
49
+ return timeDeltaToString(fromNow(this.expiry));
50
+ }
51
+ };
52
+
53
+ //#endregion
3
54
  export { WorldStateObject };
@@ -1,3 +1,45 @@
1
- import "../../WorldStateObject-C1HEDkH7.mjs";
2
- import { n as ZarimanCycle, t as CurrentZarimanCycle } from "../../ZarimanCycle-BrSLIWhD.mjs";
1
+ import { WorldStateObject } from "./WorldStateObject.mjs";
2
+
3
+ //#region lib/models/ZarimanCycle.d.ts
4
+ interface CurrentZarimanCycle {
5
+ isCorpus: boolean;
6
+ timeLeft: string;
7
+ expiry: Date;
8
+ expiresIn: number;
9
+ state: string;
10
+ start: number;
11
+ }
12
+ /**
13
+ * Represents the current Zariman Corpus/Grineer Cycle
14
+ * @augments {WorldStateObject}
15
+ */
16
+ declare class ZarimanCycle extends WorldStateObject {
17
+ #private;
18
+ /**
19
+ * Whether or not this it's corpus or grineer
20
+ */
21
+ isCorpus: boolean;
22
+ /**
23
+ * Current cycle state. One of `corpus`, `grineer`
24
+ */
25
+ state: string;
26
+ /**
27
+ * Time remaining string
28
+ */
29
+ timeLeft: string;
30
+ /**
31
+ * @param {Date} bountiesEndDate The current Zariman cycle expiry
32
+ */
33
+ constructor(bountiesEndDate: Date);
34
+ /**
35
+ * Whether this is expired
36
+ */
37
+ get expired(): boolean;
38
+ getCurrentZarimanCycle(): CurrentZarimanCycle;
39
+ /**
40
+ * The event's string representation
41
+ */
42
+ get shortString(): string;
43
+ }
44
+ //#endregion
3
45
  export { CurrentZarimanCycle, ZarimanCycle };
@@ -1,4 +1,79 @@
1
- import "../../WorldStateObject-45dbRgp7.mjs";
2
- import { t as ZarimanCycle } from "../../ZarimanCycle-DoAPwgaM.mjs";
1
+ import { WorldStateObject } from "./WorldStateObject.mjs";
2
+ import { fromNow, timeDeltaToString } from "warframe-worldstate-data/utilities";
3
3
 
4
+ //#region lib/models/ZarimanCycle.ts
5
+ const corpusTimeMillis = 16551828e5;
6
+ const fullCycle = 18e6;
7
+ const stateMaximum = 9e6;
8
+ /**
9
+ * Represents the current Zariman Corpus/Grineer Cycle
10
+ * @augments {WorldStateObject}
11
+ */
12
+ var ZarimanCycle = class extends WorldStateObject {
13
+ /**
14
+ * Whether or not this it's corpus or grineer
15
+ */
16
+ isCorpus;
17
+ /**
18
+ * Current cycle state. One of `corpus`, `grineer`
19
+ */
20
+ state;
21
+ /**
22
+ * Time remaining string
23
+ */
24
+ timeLeft;
25
+ /**
26
+ * The current zariman cycle, for calculating the other fields
27
+ */
28
+ #ec;
29
+ /**
30
+ * The end of the Zariman bounties timer, the faction changes exactly half way through
31
+ */
32
+ #bountiesEndDate;
33
+ /**
34
+ * @param {Date} bountiesEndDate The current Zariman cycle expiry
35
+ */
36
+ constructor(bountiesEndDate) {
37
+ super({ _id: { $oid: "zarimanCycle0" } });
38
+ this.#bountiesEndDate = bountiesEndDate;
39
+ this.#ec = this.getCurrentZarimanCycle();
40
+ this.expiry = this.#ec.expiry;
41
+ this.activation = new Date(this.#ec.start);
42
+ this.isCorpus = this.#ec.isCorpus;
43
+ this.state = this.#ec.state;
44
+ this.timeLeft = this.#ec.timeLeft;
45
+ this.id = `zarimanCycle${this.expiry.getTime()}`;
46
+ }
47
+ /**
48
+ * Whether this is expired
49
+ */
50
+ get expired() {
51
+ return this.expiry ? fromNow(this.expiry) < 0 : true;
52
+ }
53
+ getCurrentZarimanCycle() {
54
+ const now = Date.now();
55
+ const bountiesClone = this.#bountiesEndDate.getTime() - 5e3;
56
+ const millisLeft = fromNow(new Date(bountiesClone));
57
+ const isCorpus = fullCycle - ((bountiesClone - corpusTimeMillis) % fullCycle + fullCycle) % fullCycle > stateMaximum;
58
+ const minutesCoef = 1e3 * 60;
59
+ const expiry = new Date(Math.round((now + millisLeft) / minutesCoef) * minutesCoef);
60
+ const state = isCorpus ? "corpus" : "grineer";
61
+ return {
62
+ isCorpus,
63
+ timeLeft: timeDeltaToString(millisLeft),
64
+ expiry,
65
+ expiresIn: millisLeft,
66
+ state,
67
+ start: expiry.getTime() - stateMaximum
68
+ };
69
+ }
70
+ /**
71
+ * The event's string representation
72
+ */
73
+ get shortString() {
74
+ return `${this.timeLeft.replace(/\s\d*s/gi, "")} to ${this.isCorpus ? "grineer" : "corpus"}`;
75
+ }
76
+ };
77
+
78
+ //#endregion
4
79
  export { ZarimanCycle };