@wise-old-man/utils 1.0.8 → 1.0.12

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 (54) hide show
  1. package/dist/{competitions.d.ts → lib/competitions.d.ts} +0 -0
  2. package/dist/{competitions.js → lib/competitions.js} +2 -2
  3. package/dist/lib/competitions.js.map +1 -0
  4. package/dist/{countries.d.ts → lib/countries.d.ts} +0 -0
  5. package/dist/{countries.js → lib/countries.js} +0 -0
  6. package/dist/lib/countries.js.map +1 -0
  7. package/dist/{experience.d.ts → lib/experience.d.ts} +3 -2
  8. package/dist/{experience.js → lib/experience.js} +4 -2
  9. package/dist/lib/experience.js.map +1 -0
  10. package/dist/{groups.d.ts → lib/groups.d.ts} +2 -1
  11. package/dist/{groups.js → lib/groups.js} +4 -2
  12. package/dist/lib/groups.js.map +1 -0
  13. package/dist/{index.d.ts → lib/index.d.ts} +0 -0
  14. package/dist/{index.js → lib/index.js} +0 -0
  15. package/dist/lib/index.js.map +1 -0
  16. package/dist/{metrics.d.ts → lib/metrics.d.ts} +796 -128
  17. package/dist/{metrics.js → lib/metrics.js} +18 -17
  18. package/dist/lib/metrics.js.map +1 -0
  19. package/dist/{numbers.d.ts → lib/numbers.d.ts} +0 -0
  20. package/dist/{numbers.js → lib/numbers.js} +0 -0
  21. package/dist/lib/numbers.js.map +1 -0
  22. package/dist/{periods.d.ts → lib/periods.d.ts} +0 -0
  23. package/dist/{periods.js → lib/periods.js} +1 -1
  24. package/dist/lib/periods.js.map +1 -0
  25. package/dist/{players.d.ts → lib/players.d.ts} +0 -0
  26. package/dist/{players.js → lib/players.js} +3 -2
  27. package/dist/lib/players.js.map +1 -0
  28. package/dist/lib/strings.d.ts +3 -0
  29. package/dist/{strings.js → lib/strings.js} +1 -7
  30. package/dist/lib/strings.js.map +1 -0
  31. package/package.json +12 -4
  32. package/.prettierrc +0 -7
  33. package/dist/competitions.js.map +0 -1
  34. package/dist/countries.js.map +0 -1
  35. package/dist/experience.js.map +0 -1
  36. package/dist/groups.js.map +0 -1
  37. package/dist/index.js.map +0 -1
  38. package/dist/metrics.js.map +0 -1
  39. package/dist/numbers.js.map +0 -1
  40. package/dist/periods.js.map +0 -1
  41. package/dist/players.js.map +0 -1
  42. package/dist/strings.d.ts +0 -3
  43. package/dist/strings.js.map +0 -1
  44. package/src/competitions.ts +0 -54
  45. package/src/countries.ts +0 -275
  46. package/src/experience.ts +0 -77
  47. package/src/groups.ts +0 -555
  48. package/src/index.ts +0 -9
  49. package/src/metrics.ts +0 -629
  50. package/src/numbers.ts +0 -5
  51. package/src/periods.ts +0 -67
  52. package/src/players.ts +0 -76
  53. package/src/strings.ts +0 -34
  54. package/tsconfig.json +0 -16
package/src/metrics.ts DELETED
@@ -1,629 +0,0 @@
1
- import { mapValues } from 'lodash';
2
- import { capitalize } from './strings';
3
-
4
- enum Skill {
5
- OVERALL = 'overall',
6
- ATTACK = 'attack',
7
- DEFENCE = 'defence',
8
- STRENGTH = 'strength',
9
- HITPOINTS = 'hitpoints',
10
- RANGED = 'ranged',
11
- PRAYER = 'prayer',
12
- MAGIC = 'magic',
13
- COOKING = 'cooking',
14
- WOODCUTTING = 'woodcutting',
15
- FLETCHING = 'fletching',
16
- FISHING = 'fishing',
17
- FIREMAKING = 'firemaking',
18
- CRAFTING = 'crafting',
19
- SMITHING = 'smithing',
20
- MINING = 'mining',
21
- HERBLORE = 'herblore',
22
- AGILITY = 'agility',
23
- THIEVING = 'thieving',
24
- SLAYER = 'slayer',
25
- FARMING = 'farming',
26
- RUNECRAFTING = 'runecrafting',
27
- HUNTER = 'hunter',
28
- CONSTRUCTION = 'construction'
29
- }
30
-
31
- enum Boss {
32
- ABYSSAL_SIRE = 'abyssal_sire',
33
- ALCHEMICAL_HYDRA = 'alchemical_hydra',
34
- BARROWS_CHESTS = 'barrows_chests',
35
- BRYOPHYTA = 'bryophyta',
36
- CALLISTO = 'callisto',
37
- CERBERUS = 'cerberus',
38
- CHAMBERS_OF_XERIC = 'chambers_of_xeric',
39
- CHAMBERS_OF_XERIC_CM = 'chambers_of_xeric_challenge_mode',
40
- CHAOS_ELEMENTAL = 'chaos_elemental',
41
- CHAOS_FANATIC = 'chaos_fanatic',
42
- COMMANDER_ZILYANA = 'commander_zilyana',
43
- CORPOREAL_BEAST = 'corporeal_beast',
44
- CRAZY_ARCHAEOLOGIST = 'crazy_archaeologist',
45
- DAGANNOTH_PRIME = 'dagannoth_prime',
46
- DAGANNOTH_REX = 'dagannoth_rex',
47
- DAGANNOTH_SUPREME = 'dagannoth_supreme',
48
- DERANGED_ARCHAEOLOGIST = 'deranged_archaeologist',
49
- GENERAL_GRAARDOR = 'general_graardor',
50
- GIANT_MOLE = 'giant_mole',
51
- GROTESQUE_GUARDIANS = 'grotesque_guardians',
52
- HESPORI = 'hespori',
53
- KALPHITE_QUEEN = 'kalphite_queen',
54
- KING_BLACK_DRAGON = 'king_black_dragon',
55
- KRAKEN = 'kraken',
56
- KREEARRA = 'kreearra',
57
- KRIL_TSUTSAROTH = 'kril_tsutsaroth',
58
- MIMIC = 'mimic',
59
- NIGHTMARE = 'nightmare',
60
- PHOSANIS_NIGHTMARE = 'phosanis_nightmare',
61
- OBOR = 'obor',
62
- SARACHNIS = 'sarachnis',
63
- SCORPIA = 'scorpia',
64
- SKOTIZO = 'skotizo',
65
- TEMPOROSS = 'tempoross',
66
- THE_GAUNTLET = 'the_gauntlet',
67
- THE_CORRUPTED_GAUNTLET = 'the_corrupted_gauntlet',
68
- THEATRE_OF_BLOOD = 'theatre_of_blood',
69
- THEATRE_OF_BLOOD_HARD_MODE = 'theatre_of_blood_hard_mode',
70
- THERMONUCLEAR_SMOKE_DEVIL = 'thermonuclear_smoke_devil',
71
- TZKAL_ZUK = 'tzkal_zuk',
72
- TZTOK_JAD = 'tztok_jad',
73
- VENENATIS = 'venenatis',
74
- VETION = 'vetion',
75
- VORKATH = 'vorkath',
76
- WINTERTODT = 'wintertodt',
77
- ZALCANO = 'zalcano',
78
- ZULRAH = 'zulrah'
79
- }
80
-
81
- enum Activity {
82
- LEAGUE_POINTS = 'league_points',
83
- BOUNTY_HUNTER_HUNTER = 'bounty_hunter_hunter',
84
- BOUNTY_HUNTER_ROGUE = 'bounty_hunter_rogue',
85
- CLUE_SCROLLS_ALL = 'clue_scrolls_all',
86
- CLUE_SCROLLS_BEGINNER = 'clue_scrolls_beginner',
87
- CLUE_SCROLLS_EASY = 'clue_scrolls_easy',
88
- CLUE_SCROLLS_MEDIUM = 'clue_scrolls_medium',
89
- CLUE_SCROLLS_HARD = 'clue_scrolls_hard',
90
- CLUE_SCROLLS_ELITE = 'clue_scrolls_elite',
91
- CLUE_SCROLLS_MASTER = 'clue_scrolls_master',
92
- LAST_MAN_STANDING = 'last_man_standing',
93
- SOUL_WARS_ZEAL = 'soul_wars_zeal'
94
- }
95
-
96
- enum VirtualMetric {
97
- EHP = 'ehp',
98
- EHB = 'ehb'
99
- }
100
-
101
- enum MetricType {
102
- SKILL = 'skill',
103
- BOSS = 'boss',
104
- ACTIVITY = 'activity',
105
- VIRTUAL = 'virtual'
106
- }
107
-
108
- enum MetricMeasure {
109
- EXPERIENCE = 'experience',
110
- KILLS = 'kills',
111
- SCORE = 'score',
112
- VALUE = 'value'
113
- }
114
-
115
- const SkillProps = mapValues(
116
- {
117
- [Skill.OVERALL]: { name: 'Overall', isCombat: false, isMembers: false },
118
- [Skill.ATTACK]: { name: 'Attack', isCombat: true, isMembers: false },
119
- [Skill.DEFENCE]: { name: 'Defence', isCombat: true, isMembers: false },
120
- [Skill.STRENGTH]: { name: 'Strength', isCombat: true, isMembers: false },
121
- [Skill.HITPOINTS]: { name: 'Hitpoints', isCombat: true, isMembers: false },
122
- [Skill.RANGED]: { name: 'Ranged', isCombat: true, isMembers: false },
123
- [Skill.PRAYER]: { name: 'Prayer', isCombat: true, isMembers: false },
124
- [Skill.MAGIC]: { name: 'Magic', isCombat: true, isMembers: false },
125
- [Skill.COOKING]: { name: 'Cooking', isCombat: false, isMembers: false },
126
- [Skill.WOODCUTTING]: { name: 'Woodcutting', isCombat: false, isMembers: false },
127
- [Skill.FLETCHING]: { name: 'Fletching', isCombat: false, isMembers: true },
128
- [Skill.FISHING]: { name: 'Fishing', isCombat: false, isMembers: false },
129
- [Skill.FIREMAKING]: { name: 'Firemaking', isCombat: false, isMembers: false },
130
- [Skill.CRAFTING]: { name: 'Crafting', isCombat: false, isMembers: false },
131
- [Skill.SMITHING]: { name: 'Smithing', isCombat: false, isMembers: false },
132
- [Skill.MINING]: { name: 'Mining', isCombat: false, isMembers: false },
133
- [Skill.HERBLORE]: { name: 'Herblore', isCombat: false, isMembers: true },
134
- [Skill.AGILITY]: { name: 'Agility', isCombat: false, isMembers: true },
135
- [Skill.THIEVING]: { name: 'Thieving', isCombat: false, isMembers: true },
136
- [Skill.SLAYER]: { name: 'Slayer', isCombat: false, isMembers: true },
137
- [Skill.FARMING]: { name: 'Farming', isCombat: false, isMembers: true },
138
- [Skill.RUNECRAFTING]: { name: 'Runecrafting', isCombat: false, isMembers: false },
139
- [Skill.HUNTER]: { name: 'Hunter', isCombat: false, isMembers: true },
140
- [Skill.CONSTRUCTION]: { name: 'Construction', isCombat: false, isMembers: false }
141
- },
142
- (props, key) => ({ ...props, key, type: MetricType.SKILL, measure: MetricMeasure.EXPERIENCE })
143
- );
144
-
145
- const BossProps = mapValues(
146
- {
147
- [Boss.ABYSSAL_SIRE]: { name: 'Abyssal Sire', minimumKc: 50, isMembers: true },
148
- [Boss.ALCHEMICAL_HYDRA]: { name: 'Alchemical Hydra', minimumKc: 50, isMembers: true },
149
- [Boss.BARROWS_CHESTS]: { name: 'Barrows Chests', minimumKc: 50, isMembers: true },
150
- [Boss.BRYOPHYTA]: { name: 'Bryophyta', minimumKc: 10, isMembers: false },
151
- [Boss.CALLISTO]: { name: 'Callisto', minimumKc: 50, isMembers: true },
152
- [Boss.CERBERUS]: { name: 'Cerberus', minimumKc: 50, isMembers: true },
153
- [Boss.CHAMBERS_OF_XERIC]: { name: 'Chambers Of Xeric', minimumKc: 50, isMembers: true },
154
- [Boss.CHAMBERS_OF_XERIC_CM]: { name: 'Chambers Of Xeric (CM)', minimumKc: 10, isMembers: true },
155
- [Boss.CHAOS_ELEMENTAL]: { name: 'Chaos Elemental', minimumKc: 50, isMembers: true },
156
- [Boss.CHAOS_FANATIC]: { name: 'Chaos Fanatic', minimumKc: 50, isMembers: true },
157
- [Boss.COMMANDER_ZILYANA]: { name: 'Commander Zilyana', minimumKc: 50, isMembers: true },
158
- [Boss.CORPOREAL_BEAST]: { name: 'Corporeal Beast', minimumKc: 50, isMembers: true },
159
- [Boss.CRAZY_ARCHAEOLOGIST]: { name: 'Crazy Archaeologist', minimumKc: 50, isMembers: true },
160
- [Boss.DAGANNOTH_PRIME]: { name: 'Dagannoth Prime', minimumKc: 50, isMembers: true },
161
- [Boss.DAGANNOTH_REX]: { name: 'Dagannoth Rex', minimumKc: 50, isMembers: true },
162
- [Boss.DAGANNOTH_SUPREME]: { name: 'Dagannoth Supreme', minimumKc: 50, isMembers: true },
163
- [Boss.DERANGED_ARCHAEOLOGIST]: { name: 'Deranged Archaeologist', minimumKc: 50, isMembers: true },
164
- [Boss.GENERAL_GRAARDOR]: { name: 'General Graardor', minimumKc: 50, isMembers: true },
165
- [Boss.GIANT_MOLE]: { name: 'Giant Mole', minimumKc: 50, isMembers: true },
166
- [Boss.GROTESQUE_GUARDIANS]: { name: 'Grotesque Guardians', minimumKc: 50, isMembers: true },
167
- [Boss.HESPORI]: { name: 'Hespori', minimumKc: 10, isMembers: true },
168
- [Boss.KALPHITE_QUEEN]: { name: 'Kalphite Queen', minimumKc: 50, isMembers: true },
169
- [Boss.KING_BLACK_DRAGON]: { name: 'King Black Dragon', minimumKc: 50, isMembers: true },
170
- [Boss.KRAKEN]: { name: 'Kraken', minimumKc: 50, isMembers: true },
171
- [Boss.KREEARRA]: { name: "Kree'Arra", minimumKc: 50, isMembers: true },
172
- [Boss.KRIL_TSUTSAROTH]: { name: "K'ril Tsutsaroth", minimumKc: 50, isMembers: true },
173
- [Boss.MIMIC]: { name: 'Mimic', minimumKc: 2, isMembers: true },
174
- [Boss.NIGHTMARE]: { name: 'Nightmare', minimumKc: 50, isMembers: true },
175
- [Boss.PHOSANIS_NIGHTMARE]: { name: "Phosani's Nightmare", minimumKc: 50, isMembers: true },
176
- [Boss.OBOR]: { name: 'Obor', minimumKc: 10, isMembers: false },
177
- [Boss.SARACHNIS]: { name: 'Sarachnis', minimumKc: 50, isMembers: true },
178
- [Boss.SCORPIA]: { name: 'Scorpia', minimumKc: 50, isMembers: true },
179
- [Boss.SKOTIZO]: { name: 'Skotizo', minimumKc: 10, isMembers: true },
180
- [Boss.TEMPOROSS]: { name: 'Tempoross', minimumKc: 50, isMembers: true },
181
- [Boss.THE_GAUNTLET]: { name: 'The Gauntlet', minimumKc: 50, isMembers: true },
182
- [Boss.THE_CORRUPTED_GAUNTLET]: { name: 'The Corrupted Gauntlet', minimumKc: 10, isMembers: true },
183
- [Boss.THEATRE_OF_BLOOD]: { name: 'Theatre Of Blood', minimumKc: 50, isMembers: true },
184
- [Boss.THEATRE_OF_BLOOD_HARD_MODE]: { name: 'Theatre Of Blood (HM)', minimumKc: 50, isMembers: true },
185
- [Boss.THERMONUCLEAR_SMOKE_DEVIL]: { name: 'Thermonuclear Smoke Devil', minimumKc: 50, isMembers: true },
186
- [Boss.TZKAL_ZUK]: { name: 'TzKal-Zuk', minimumKc: 2, isMembers: true },
187
- [Boss.TZTOK_JAD]: { name: 'TzTok-Jad', minimumKc: 10, isMembers: true },
188
- [Boss.VENENATIS]: { name: 'Venenatis', minimumKc: 50, isMembers: true },
189
- [Boss.VETION]: { name: "Vet'ion", minimumKc: 50, isMembers: true },
190
- [Boss.VORKATH]: { name: 'Vorkath', minimumKc: 50, isMembers: true },
191
- [Boss.WINTERTODT]: { name: 'Wintertodt', minimumKc: 50, isMembers: true },
192
- [Boss.ZALCANO]: { name: 'Zalcano', minimumKc: 50, isMembers: true },
193
- [Boss.ZULRAH]: { name: 'Zulrah', minimumKc: 50, isMembers: true }
194
- },
195
- (props, key) => ({ ...props, key, type: MetricType.BOSS, measure: MetricMeasure.KILLS })
196
- );
197
-
198
- const ActivityProps = mapValues(
199
- {
200
- [Activity.LEAGUE_POINTS]: { name: 'League Points' },
201
- [Activity.BOUNTY_HUNTER_HUNTER]: { name: 'Bounty Hunter (Hunter)' },
202
- [Activity.BOUNTY_HUNTER_ROGUE]: { name: 'Bounty Hunter (Rogue)' },
203
- [Activity.CLUE_SCROLLS_ALL]: { name: 'Clue Scrolls (All)' },
204
- [Activity.CLUE_SCROLLS_BEGINNER]: { name: 'Clue Scrolls (Beginner)' },
205
- [Activity.CLUE_SCROLLS_EASY]: { name: 'Clue Scrolls (Easy)' },
206
- [Activity.CLUE_SCROLLS_MEDIUM]: { name: 'Clue Scrolls (Medium)' },
207
- [Activity.CLUE_SCROLLS_HARD]: { name: 'Clue Scrolls (Hard)' },
208
- [Activity.CLUE_SCROLLS_ELITE]: { name: 'Clue Scrolls (Elite)' },
209
- [Activity.CLUE_SCROLLS_MASTER]: { name: 'Clue Scrolls (Master)' },
210
- [Activity.LAST_MAN_STANDING]: { name: 'Last Man Standing' },
211
- [Activity.SOUL_WARS_ZEAL]: { name: 'Soul Wars Zeal' }
212
- },
213
- (props, key) => ({ ...props, key, type: MetricType.ACTIVITY, measure: MetricMeasure.SCORE })
214
- );
215
-
216
- const VirtualMetricProps = mapValues(
217
- {
218
- [VirtualMetric.EHP]: { name: 'EHP' },
219
- [VirtualMetric.EHB]: { name: 'EHB' }
220
- },
221
- (props, key) => ({ ...props, key, type: MetricType.VIRTUAL, measure: MetricMeasure.VALUE })
222
- );
223
-
224
- const Metrics = {
225
- ...Skill,
226
- ...Boss,
227
- ...Activity,
228
- ...VirtualMetric
229
- };
230
-
231
- const MetricProps = {
232
- ...SkillProps,
233
- ...BossProps,
234
- ...ActivityProps,
235
- ...VirtualMetricProps
236
- };
237
-
238
- type Metric = Skill | Boss | Activity | VirtualMetric;
239
-
240
- const SKILLS = Object.values(Skill);
241
- const BOSSES = Object.values(Boss);
242
- const ACTIVITIES = Object.values(Activity);
243
- const VIRTUAL_METRICS = Object.values(VirtualMetric);
244
-
245
- const METRICS = [...SKILLS, ...BOSSES, ...ACTIVITIES, ...VIRTUAL_METRICS];
246
-
247
- const F2P_BOSSES = BOSSES.filter(b => !MetricProps[b].isMembers);
248
- const MEMBER_SKILLS = SKILLS.filter(s => MetricProps[s].isMembers);
249
- const COMBAT_SKILLS = SKILLS.filter(s => MetricProps[s].isCombat);
250
-
251
- function findMetric(metricName: string): Metric | null {
252
- for (var [key, value] of Object.entries(MetricProps)) {
253
- if (value.name === metricName) return key as Metric;
254
- }
255
-
256
- return null;
257
- }
258
-
259
- function isSkill(metric: Metric) {
260
- return metric in Skill;
261
- }
262
-
263
- function isBoss(metric: Metric) {
264
- return metric in Boss;
265
- }
266
-
267
- function isActivity(metric: Metric) {
268
- return metric in Activity;
269
- }
270
-
271
- function isVirtualMetric(metric: Metric) {
272
- return metric in VirtualMetric;
273
- }
274
-
275
- function getMetricRankKey(metric: Metric) {
276
- return `${metric}Rank`;
277
- }
278
-
279
- function getMetricValueKey(metric: Metric) {
280
- return `${metric}${capitalize(MetricProps[metric].measure)}`;
281
- }
282
-
283
- function getMetricMeasure(metric: Metric) {
284
- return MetricProps[metric].measure;
285
- }
286
-
287
- function getMetricName(metric: Metric) {
288
- return MetricProps[metric].name;
289
- }
290
-
291
- function getMinimumBossKc(metric: Metric) {
292
- return isBoss(metric) ? MetricProps[metric as Boss].minimumKc : 0;
293
- }
294
-
295
- function getParentVirtualMetric(metric: Metric) {
296
- if (isBoss(metric)) return Metrics.EHB;
297
- if (isSkill(metric)) return Metrics.EHP;
298
- return null;
299
- }
300
-
301
- function parseMetricAbbreviation(abbreviation: string): string | null {
302
- if (!abbreviation || abbreviation.length === 0) {
303
- return null;
304
- }
305
-
306
- switch (abbreviation) {
307
- // Bosses
308
- case 'sire':
309
- return Metrics.ABYSSAL_SIRE;
310
-
311
- case 'hydra':
312
- return Metrics.ALCHEMICAL_HYDRA;
313
-
314
- case 'barrows':
315
- return Metrics.BARROWS_CHESTS;
316
-
317
- case 'bryo':
318
- return Metrics.BRYOPHYTA;
319
-
320
- case 'cerb':
321
- return Metrics.CERBERUS;
322
-
323
- case 'cox':
324
- case 'xeric':
325
- case 'chambers':
326
- case 'olm':
327
- case 'raids':
328
- return Metrics.CHAMBERS_OF_XERIC;
329
-
330
- case 'cox-cm':
331
- case 'xeric-cm':
332
- case 'chambers-cm':
333
- case 'olm-cm':
334
- case 'raids-cm':
335
- return Metrics.CHAMBERS_OF_XERIC_CM;
336
-
337
- case 'chaos-ele':
338
- return Metrics.CHAOS_ELEMENTAL;
339
-
340
- case 'fanatic':
341
- return Metrics.CHAOS_FANATIC;
342
-
343
- case 'sara':
344
- case 'saradomin':
345
- case 'zilyana':
346
- case 'zily':
347
- return Metrics.COMMANDER_ZILYANA;
348
-
349
- case 'corp':
350
- return Metrics.CORPOREAL_BEAST;
351
-
352
- case 'crazy-arch':
353
- return Metrics.CRAZY_ARCHAEOLOGIST;
354
-
355
- case 'prime':
356
- return Metrics.DAGANNOTH_PRIME;
357
- case 'rex':
358
- return Metrics.DAGANNOTH_REX;
359
- case 'supreme':
360
- return Metrics.DAGANNOTH_SUPREME;
361
-
362
- case 'deranged-arch':
363
- return Metrics.DERANGED_ARCHAEOLOGIST;
364
-
365
- case 'bandos':
366
- case 'graardor':
367
- return Metrics.GENERAL_GRAARDOR;
368
-
369
- case 'mole':
370
- return Metrics.GIANT_MOLE;
371
-
372
- case 'dusk':
373
- case 'dawn':
374
- case 'gargs':
375
- case 'guardians':
376
- case 'ggs':
377
- return Metrics.GROTESQUE_GUARDIANS;
378
-
379
- case 'kq':
380
- return Metrics.KALPHITE_QUEEN;
381
-
382
- case 'kbd':
383
- return Metrics.KING_BLACK_DRAGON;
384
-
385
- case 'kree':
386
- case 'kreearra':
387
- case 'armadyl':
388
- case 'arma':
389
- return Metrics.KREEARRA;
390
-
391
- case 'zammy':
392
- case 'zamorak':
393
- case 'kril':
394
- case 'kril-tsutsaroth':
395
- return Metrics.KRIL_TSUTSAROTH;
396
-
397
- case 'gaunt':
398
- case 'gauntlet':
399
- case 'the-gauntlet':
400
- return Metrics.THE_GAUNTLET;
401
-
402
- case 'cgaunt':
403
- case 'cgauntlet':
404
- case 'corrupted':
405
- case 'corrupted-gauntlet':
406
- case 'the-corrupted-gauntlet':
407
- return Metrics.THE_CORRUPTED_GAUNTLET;
408
-
409
- case 'tob':
410
- case 'theatre':
411
- case 'verzik':
412
- case 'tob-normal':
413
- return Metrics.THEATRE_OF_BLOOD;
414
-
415
- case 'tob-hm':
416
- case 'tob-cm':
417
- case 'tob-hard-mode':
418
- case 'tob-hard':
419
- return Metrics.THEATRE_OF_BLOOD_HARD_MODE;
420
-
421
- case 'nm':
422
- case 'tnm':
423
- case 'nmare':
424
- case 'the-nightmare':
425
- return Metrics.NIGHTMARE;
426
-
427
- case 'pnm':
428
- case 'phosani':
429
- case 'phosanis':
430
- case 'phosani-nm':
431
- case 'phosani-nightmare':
432
- case 'phosanis nightmare':
433
- return Metrics.PHOSANIS_NIGHTMARE;
434
-
435
- case 'thermy':
436
- case 'smoke-devil':
437
- return Metrics.THERMONUCLEAR_SMOKE_DEVIL;
438
-
439
- case 'zuk':
440
- case 'inferno':
441
- return Metrics.TZKAL_ZUK;
442
-
443
- case 'jad':
444
- case 'fight-caves':
445
- case 'fc':
446
- return Metrics.TZTOK_JAD;
447
-
448
- case 'vork':
449
- case 'vorky':
450
- return Metrics.VORKATH;
451
-
452
- case 'wt':
453
- return Metrics.WINTERTODT;
454
-
455
- case 'snek':
456
- case 'zul':
457
- return Metrics.ZULRAH;
458
-
459
- // Minigames and others
460
-
461
- case 'all-clues':
462
- case 'clues':
463
- return Metrics.CLUE_SCROLLS_ALL;
464
-
465
- case 'beginner':
466
- case 'beginner-clues':
467
- case 'beg-clues':
468
- case 'beginners':
469
- return Metrics.CLUE_SCROLLS_BEGINNER;
470
-
471
- case 'easy':
472
- case 'easy-clues':
473
- case 'easies':
474
- return Metrics.CLUE_SCROLLS_EASY;
475
-
476
- case 'medium':
477
- case 'med':
478
- case 'meds':
479
- case 'medium-clues':
480
- case 'med-clues':
481
- case 'mediums':
482
- return Metrics.CLUE_SCROLLS_MEDIUM;
483
-
484
- case 'hard':
485
- case 'hard-clues':
486
- case 'hards':
487
- return Metrics.CLUE_SCROLLS_HARD;
488
-
489
- case 'elite':
490
- case 'elite-clues':
491
- case 'elites':
492
- return Metrics.CLUE_SCROLLS_ELITE;
493
-
494
- case 'master':
495
- case 'master-clues':
496
- case 'masters':
497
- return Metrics.CLUE_SCROLLS_MASTER;
498
-
499
- case 'lms':
500
- return Metrics.LAST_MAN_STANDING;
501
-
502
- case 'league':
503
- case 'lp':
504
- case 'lps':
505
- return Metrics.LEAGUE_POINTS;
506
-
507
- case 'sw':
508
- case 'zeal':
509
- case 'soul-wars':
510
- return Metrics.SOUL_WARS_ZEAL;
511
-
512
- // Skills
513
-
514
- case 'runecraft':
515
- case 'rc':
516
- return Metrics.RUNECRAFTING;
517
-
518
- case 'att':
519
- case 'atk':
520
- case 'attk':
521
- return Metrics.ATTACK;
522
-
523
- case 'def':
524
- case 'defense':
525
- return Metrics.DEFENCE;
526
-
527
- case 'str':
528
- return Metrics.STRENGTH;
529
-
530
- case 'hp':
531
- return Metrics.HITPOINTS;
532
-
533
- case 'range':
534
- return Metrics.RANGED;
535
-
536
- case 'pray':
537
- return Metrics.PRAYER;
538
-
539
- case 'mage':
540
- return Metrics.MAGIC;
541
-
542
- case 'cook':
543
- return Metrics.COOKING;
544
-
545
- case 'wc':
546
- return Metrics.WOODCUTTING;
547
-
548
- case 'fletch':
549
- return Metrics.FLETCHING;
550
-
551
- case 'fish':
552
- return Metrics.FISHING;
553
-
554
- case 'fm':
555
- case 'burning':
556
- return Metrics.FIREMAKING;
557
-
558
- case 'craft':
559
- return Metrics.CRAFTING;
560
-
561
- case 'sm':
562
- case 'smith':
563
- return Metrics.SMITHING;
564
-
565
- case 'mine':
566
- case 'smash':
567
- return Metrics.MINING;
568
-
569
- case 'herb':
570
- return Metrics.HERBLORE;
571
-
572
- case 'agi':
573
- case 'agil':
574
- return Metrics.AGILITY;
575
-
576
- case 'thief':
577
- return Metrics.THIEVING;
578
-
579
- case 'slay':
580
- return Metrics.SLAYER;
581
-
582
- case 'farm':
583
- return Metrics.FARMING;
584
-
585
- case 'hunt':
586
- case 'hunting':
587
- return Metrics.HUNTER;
588
-
589
- case 'con':
590
- case 'cons':
591
- case 'const':
592
- return Metrics.CONSTRUCTION;
593
-
594
- default:
595
- return abbreviation;
596
- }
597
- }
598
-
599
- export {
600
- // Types
601
- Metric,
602
- // Enums
603
- Metrics,
604
- MetricProps,
605
- MetricType,
606
- MetricMeasure,
607
- // Lists
608
- SKILLS,
609
- BOSSES,
610
- ACTIVITIES,
611
- VIRTUAL_METRICS,
612
- METRICS,
613
- F2P_BOSSES,
614
- MEMBER_SKILLS,
615
- COMBAT_SKILLS,
616
- // Functions
617
- findMetric,
618
- parseMetricAbbreviation,
619
- getMetricRankKey,
620
- getMetricValueKey,
621
- getMetricMeasure,
622
- getMetricName,
623
- getMinimumBossKc,
624
- getParentVirtualMetric,
625
- isSkill,
626
- isBoss,
627
- isActivity,
628
- isVirtualMetric
629
- };
package/src/numbers.ts DELETED
@@ -1,5 +0,0 @@
1
- function round(num: number, cases: number) {
2
- return Math.round(num * Math.pow(10, cases)) / Math.pow(10, cases);
3
- }
4
-
5
- export { round };
package/src/periods.ts DELETED
@@ -1,67 +0,0 @@
1
- const CUSTOM_PERIOD_REGEX = /(\d+y)?(\d+m)?(\d+w)?(\d+d)?(\d+h)?/;
2
-
3
- enum Period {
4
- FIVE_MIN = '5min',
5
- DAY = 'day',
6
- WEEK = 'week',
7
- MONTH = 'month',
8
- YEAR = 'year'
9
- }
10
-
11
- const PeriodProps = {
12
- [Period.FIVE_MIN]: { name: '5 Min', milliseconds: 300_000 },
13
- [Period.DAY]: { name: 'Day', milliseconds: 86_400_000 },
14
- [Period.WEEK]: { name: 'Week', milliseconds: 604_800_000 },
15
- [Period.MONTH]: { name: 'Month', milliseconds: 2_678_400_000 },
16
- [Period.YEAR]: { name: 'Year', milliseconds: 31_556_926_000 }
17
- };
18
-
19
- const PERIODS = Object.values(Period);
20
-
21
- function findPeriod(periodName: string): Period | null {
22
- for (var [key, value] of Object.entries(PeriodProps)) {
23
- if (value.name === periodName) return key as Period;
24
- }
25
-
26
- return null;
27
- }
28
-
29
- function isValidPeriod(period: string): boolean {
30
- return PERIODS.includes(period as Period);
31
- }
32
-
33
- function parsePeriodExpression(periodExpression: string) {
34
- const fixed = periodExpression.toLowerCase();
35
-
36
- if (isValidPeriod(fixed)) {
37
- return {
38
- expression: fixed,
39
- durationMs: PeriodProps[fixed as Period].milliseconds
40
- };
41
- }
42
-
43
- const result = fixed.match(CUSTOM_PERIOD_REGEX);
44
-
45
- if (!result || result.length === 0 || result[0] !== fixed) return null;
46
-
47
- const years = result[1] ? parseInt(result[1].replace(/\D/g, '')) : 0;
48
- const months = result[2] ? parseInt(result[2].replace(/\D/g, '')) : 0;
49
- const weeks = result[3] ? parseInt(result[3].replace(/\D/g, '')) : 0;
50
- const days = result[4] ? parseInt(result[4].replace(/\D/g, '')) : 0;
51
- const hours = result[5] ? parseInt(result[5].replace(/\D/g, '')) : 0;
52
-
53
- const yearsMs = years * PeriodProps[Period.YEAR].milliseconds;
54
- const monthsMs = months * PeriodProps[Period.MONTH].milliseconds;
55
- const weeksMs = weeks * PeriodProps[Period.WEEK].milliseconds;
56
- const daysMs = days * PeriodProps[Period.DAY].milliseconds;
57
- const hoursMs = hours * (PeriodProps[Period.DAY].milliseconds / 24);
58
-
59
- const totalMs = yearsMs + monthsMs + weeksMs + daysMs + hoursMs;
60
-
61
- return {
62
- expression: result[0],
63
- durationMs: totalMs
64
- };
65
- }
66
-
67
- export { Period, PeriodProps, PERIODS, findPeriod, isValidPeriod, parsePeriodExpression };