@wise-old-man/utils 1.0.9 → 1.0.13

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