Compare commits

...

31 Commits

Author SHA1 Message Date
maxswa
20a1709dc7 v2.23.0 2025-08-10 14:44:44 -04:00
Max Swartwout
880242330b Merge pull request #109 from maxswa/dependabot/npm_and_yarn/axios-1.8.2
Bump axios from 1.7.4 to 1.8.2
2025-08-10 14:42:43 -04:00
Max Swartwout
465b0a1eb5 Merge pull request #110 from maxswa/dependabot/npm_and_yarn/form-data-4.0.4
Bump form-data from 4.0.0 to 4.0.4
2025-08-10 14:42:20 -04:00
Max Swartwout
0311d1c35c Merge pull request #111 from davidvorona/add-dom
Add Doom of Mokhaiotl boss
2025-08-10 14:41:59 -04:00
David Vorona
25888bbe57 Add Doom of Mokhaiotl boss 2025-08-05 10:41:51 -07:00
dependabot[bot]
7afa9a1902 Bump form-data from 4.0.0 to 4.0.4
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.0...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 23:10:42 +00:00
dependabot[bot]
5070dc9da1 Bump axios from 1.7.4 to 1.8.2
Bumps [axios](https://github.com/axios/axios) from 1.7.4 to 1.8.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.7.4...v1.8.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.8.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-22 16:24:12 +00:00
maxswa
6d000df717 v2.22.0 2025-05-22 12:22:57 -04:00
Max Swartwout
5575a83039 Merge pull request #108 from davidvorona/add-yama
Add Yama, the Master of Pacts
2025-05-21 14:51:10 -04:00
David Vorona
86d9bcb2e7 Add Yama, the Master of Pacts 2025-05-21 10:21:23 -07:00
maxswa
79c067152c v2.21.1 2025-02-24 19:46:38 -05:00
Max Swartwout
e51e7bc32e Merge pull request #107 from maxswa/max/rsn-format-errors
Fix RSN format errors, add mode argument.
2025-02-24 19:45:26 -05:00
maxswa
7d7c7f9b08 Fix RSN format errors, add mode. 2025-02-24 19:41:27 -05:00
maxswa
fd24890f67 v2.21.0 2025-02-24 19:09:05 -05:00
Max Swartwout
3ba434978a Merge pull request #103 from maxswa/dependabot/npm_and_yarn/cross-spawn-7.0.6
Bump cross-spawn from 7.0.3 to 7.0.6
2025-02-24 19:07:17 -05:00
Max Swartwout
44ecdf5434 Merge pull request #106 from evanw555/add-collections-titans
Add Collections Logged, Royal Titans
2025-02-24 19:06:56 -05:00
maxswa
99fc97f05e Fix csv parsing, tests. 2025-02-24 19:03:56 -05:00
Evan Williams
b3fc5846f3 Add Collections Logged, Royal Titans 2025-02-07 00:50:49 -08:00
dependabot[bot]
1deed9f450 Bump cross-spawn from 7.0.3 to 7.0.6
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 22:43:06 +00:00
maxswa
0be3f0b636 v2.20.0 2024-09-25 12:11:27 -04:00
Max Swartwout
ec1ed53669 Merge pull request #102 from maxswa/varlamore-part-2
Add Amoxliatl, The Hueycoatl
2024-09-25 11:59:54 -04:00
maxswa
d0f5285470 Add Amoxliatl, The Hueycoatl 2024-09-25 11:56:09 -04:00
maxswa
9c56e44344 v2.19.0 2024-08-30 01:30:49 -04:00
Max Swartwout
e5b3075ebd Merge pull request #101 from maxswa/dependabot/npm_and_yarn/axios-1.7.4
Bump axios from 1.6.2 to 1.7.4
2024-08-30 01:07:29 -04:00
dependabot[bot]
8bb50b73b2 Bump axios from 1.6.2 to 1.7.4
Bumps [axios](https://github.com/axios/axios) from 1.6.2 to 1.7.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.2...v1.7.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 05:05:04 +00:00
Max Swartwout
cb482ad720 Merge pull request #98 from maxswa/dependabot/npm_and_yarn/ws-8.17.1
Bump ws from 8.13.0 to 8.17.1
2024-08-30 01:04:53 -04:00
Max Swartwout
0fbd85aa07 Merge pull request #100 from maxswa/dependabot/npm_and_yarn/micromatch-4.0.8
Bump micromatch from 4.0.2 to 4.0.8
2024-08-30 01:04:39 -04:00
Max Swartwout
e634b107b1 Merge pull request #99 from Not-Jayden/araxxor
Add Araxxor
2024-08-30 01:04:26 -04:00
dependabot[bot]
29db21493c Bump micromatch from 4.0.2 to 4.0.8
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.2 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.2...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 04:14:53 +00:00
Jayden Carey
b117cfcf41 add araxxor 2024-08-29 00:17:36 +08:00
dependabot[bot]
d895326d9f Bump ws from 8.13.0 to 8.17.1
Bumps [ws](https://github.com/websockets/ws) from 8.13.0 to 8.17.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.13.0...8.17.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 06:40:44 +00:00
10 changed files with 1567 additions and 378 deletions

View File

@@ -92,17 +92,18 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
### Minigames ### Minigames
| Minigame | Param | | Minigame | Param |
| ------------------------------- | :---------------: | | ------------------------------- | :-----------------: |
| Bounty Hunter (Legacy - Rogue) | `rogueBH` | | Bounty Hunter (Legacy - Rogue) | `rogueBH` |
| Bounty Hunter (Legacy - Hunter) | `hunterBH` | | Bounty Hunter (Legacy - Hunter) | `hunterBH` |
| Bounty Hunter (Rogue) | `rogueBHV2` | | Bounty Hunter (Rogue) | `rogueBHV2` |
| Bounty Hunter (Hunter) | `hunterBHV2` | | Bounty Hunter (Hunter) | `hunterBHV2` |
| LMS - Rank | `lastManStanding` | | LMS - Rank | `lastManStanding` |
| PvP Arena - Rank | `pvpArena` | | PvP Arena - Rank | `pvpArena` |
| Soul Wars Zeal | `soulWarsZeal` | | Soul Wars Zeal | `soulWarsZeal` |
| Rifts closed | `riftsClosed` | | Rifts closed | `riftsClosed` |
| Colosseum Glory | `colosseumGlory` | | Colosseum Glory | `colosseumGlory` |
| Collections Logged | `collectionsLogged` |
### Points ### Points
@@ -117,6 +118,8 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| --------------------------------- | :----------------------------: | | --------------------------------- | :----------------------------: |
| Abyssal Sire | `abyssalSire` | | Abyssal Sire | `abyssalSire` |
| Alchemical Hydra | `alchemicalHydra` | | Alchemical Hydra | `alchemicalHydra` |
| Amoxliatl | `amoxliatl` |
| Araxxor | `araxxor` |
| Artio | `artio` | | Artio | `artio` |
| Barrows Chests | `barrows` | | Barrows Chests | `barrows` |
| Bryophyta | `bryophyta` | | Bryophyta | `bryophyta` |
@@ -134,6 +137,7 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| Dagannoth Rex | `dagannothRex` | | Dagannoth Rex | `dagannothRex` |
| Dagannoth Supreme | `dagannothSupreme` | | Dagannoth Supreme | `dagannothSupreme` |
| Deranged Archaeologist | `derangedArchaeologist` | | Deranged Archaeologist | `derangedArchaeologist` |
| Doom of Mokhaiotl | `doomOfMokhaiotl` |
| Duke Sucellus | `dukeSucellus` | | Duke Sucellus | `dukeSucellus` |
| General Graardor | `generalGraardor` | | General Graardor | `generalGraardor` |
| Giant Mole | `giantMole` | | Giant Mole | `giantMole` |
@@ -160,7 +164,9 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| Tempoross | `tempoross` | | Tempoross | `tempoross` |
| The Gauntlet | `gauntlet` | | The Gauntlet | `gauntlet` |
| The Corrupted Gauntlet | `corruptedGauntlet` | | The Corrupted Gauntlet | `corruptedGauntlet` |
| The Hueycoatl | `hueycoatl` |
| The Leviathan | `leviathan` | | The Leviathan | `leviathan` |
| The Royal Titans | `royalTitans` |
| The Whisperer | `whisperer` | | The Whisperer | `whisperer` |
| Theatre Of Blood | `theatreOfBlood` | | Theatre Of Blood | `theatreOfBlood` |
| Theatre Of Blood: Hard Mode | `theatreOfBloodHardMode` | | Theatre Of Blood: Hard Mode | `theatreOfBloodHardMode` |
@@ -174,6 +180,7 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| Vetion | `vetion` | | Vetion | `vetion` |
| Vorkath | `vorkath` | | Vorkath | `vorkath` |
| Wintertodt | `wintertodt` | | Wintertodt | `wintertodt` |
| Yama | `yama` |
| Zalcano | `zalcano` | | Zalcano | `zalcano` |
| Zulrah | `zulrah` | | Zulrah | `zulrah` |
@@ -202,6 +209,8 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
pvpArena: {}, pvpArena: {},
soulWarsZeal: {}, soulWarsZeal: {},
riftsClosed: {}, riftsClosed: {},
colosseumGlory: {},
collectionsLogged: {},
bosses: {} bosses: {}
} }
} }

View File

@@ -1,103 +1,110 @@
2910,2277,943515557 2210,2277,1150073045
24996,99,30606377 23988,99,33320012
4759,99,40283500 3114,99,51215128
1523,99,171953134 1203,99,200000000
2244,99,147696928 1372,99,196290925
5929,99,118171038 3458,99,159426771
4560,99,15170201 2746,99,17744970
2503,99,71406360 2031,99,91566360
141823,99,13354119 161852,99,13386665
22348,99,18680181 25801,99,19461878
56125,99,13456850 64826,99,13473417
23026,99,16655688 26528,99,16672481
18672,99,19123987 20829,99,19483653
48108,99,14072560 58378,99,14103220
10956,99,16552060 13188,99,16573909
27980,99,14967150 36283,99,15061037
40661,99,13252766 17137,99,14670565
7114,99,15760818 8751,99,16169665
53839,99,14058762 60803,99,14390315
5352,99,34669574 1718,99,57850681
2456,99,84892847 2117,99,110369178
4849,99,22734071 5540,99,22739567
16368,99,17968711 22326,99,18052465
1147,99,18027875 1467,99,18050183
-1,-1 -1,-1
-1,-1 -1,-1
28384,10 38135,10
14076,3 19368,3
148183,8 146220,8
102684,7 100923,7
338,9641 433,9802
1002,825 1542,825
114,6000 158,6000
2246,1606 2572,1606
44261,298 47979,311
603,460 1081,460
1238,452 880,600
15827,2521 4258,6785
-1,-1 -1,-1
7898,14780 7596,14780
5421,1060 8124,1060
7,24522 10438,43487
2902,2192 1114,1155
94883,594 3497,2192
34000,143 3204,4796
3834,1830 1087,984
218428,5 2230,2328
36717,293 51533,143
74959,58 4243,1830
19421,1905 256985,5
186551,34 54424,293
2571,515 114691,58
85921,50 11700,2657
154580,26 211708,34
54677,287 1779,736
2586,2000 24958,215
153371,41 46504,116
33154,707 66096,287
43433,698 3133,2000
33088,714 26682,198
81968,25 19337,1078
12249,731 25021,1062
20424,1228 19290,1088
70188,474 89474,25
2248,2140 1140,8
11128,226 7535,1320
2117,2046 23251,1228
50095,580 82016,477
120438,1908 876,3642
10997,920 7073,310
2326,1444 2476,2046
-1,-1 55411,580
700,40 68801,2899
31471,626 4608,1740
4119,749 3079,1444
4349,500 8344,324
1078,217 540,53
20126,301 38395,626
70523,119 4176,749
114632,26 5519,500
2945,1245 1394,217
385801,9 26127,379
-1,-1 49730,249
2412,1569 57206,91
43814,273 6106,1245
207949,7 185920,29
86335,201 3232,49
7905,601 4276,1569
732,1783 57314,273
21039,310 256794,7
4949,192 113862,201
7584,3066 1969,538
109360,36 12346,671
160,1500 5606,149
6733,7 550,2450
131888,8 25557,310
3128,2113 1391,538
209,7096 9325,3066
75591,51 131996,37
15167,2780 214,1720
911570,62 8902,7
173436,25 148385,8
233645,275 6120,2113
287,7096
97368,51
15591,2780
1000405,67
19722,173
213696,25
240082,340
Can't render this file because it has a wrong number of fields in line 25.

View File

@@ -3,203 +3,688 @@
{ {
"id": 0, "id": 0,
"name": "Overall", "name": "Overall",
"rank": 2910, "rank": 2210,
"level": 2277, "level": 2277,
"xp": 943515557 "xp": 1150073045
},
{
"id": 1,
"name": "Attack",
"rank": 23988,
"level": 99,
"xp": 33320012
},
{
"id": 2,
"name": "Defence",
"rank": 3114,
"level": 99,
"xp": 51215128
},
{
"id": 3,
"name": "Strength",
"rank": 1203,
"level": 99,
"xp": 200000000
}, },
{ "id": 1, "name": "Attack", "rank": 24996, "level": 99, "xp": 30606377 },
{ "id": 2, "name": "Defence", "rank": 4759, "level": 99, "xp": 40283500 },
{ "id": 3, "name": "Strength", "rank": 1523, "level": 99, "xp": 171953134 },
{ {
"id": 4, "id": 4,
"name": "Hitpoints", "name": "Hitpoints",
"rank": 2244, "rank": 1372,
"level": 99, "level": 99,
"xp": 147696928 "xp": 196290925
},
{
"id": 5,
"name": "Ranged",
"rank": 3458,
"level": 99,
"xp": 159426771
},
{
"id": 6,
"name": "Prayer",
"rank": 2746,
"level": 99,
"xp": 17744970
},
{
"id": 7,
"name": "Magic",
"rank": 2031,
"level": 99,
"xp": 91566360
},
{
"id": 8,
"name": "Cooking",
"rank": 161852,
"level": 99,
"xp": 13386665
}, },
{ "id": 5, "name": "Ranged", "rank": 5929, "level": 99, "xp": 118171038 },
{ "id": 6, "name": "Prayer", "rank": 4560, "level": 99, "xp": 15170201 },
{ "id": 7, "name": "Magic", "rank": 2503, "level": 99, "xp": 71406360 },
{ "id": 8, "name": "Cooking", "rank": 141823, "level": 99, "xp": 13354119 },
{ {
"id": 9, "id": 9,
"name": "Woodcutting", "name": "Woodcutting",
"rank": 22348, "rank": 25801,
"level": 99, "level": 99,
"xp": 18680181 "xp": 19461878
}, },
{ {
"id": 10, "id": 10,
"name": "Fletching", "name": "Fletching",
"rank": 56125, "rank": 64826,
"level": 99, "level": 99,
"xp": 13456850 "xp": 13473417
},
{
"id": 11,
"name": "Fishing",
"rank": 26528,
"level": 99,
"xp": 16672481
}, },
{ "id": 11, "name": "Fishing", "rank": 23026, "level": 99, "xp": 16655688 },
{ {
"id": 12, "id": 12,
"name": "Firemaking", "name": "Firemaking",
"rank": 18672, "rank": 20829,
"level": 99, "level": 99,
"xp": 19123987 "xp": 19483653
}, },
{ {
"id": 13, "id": 13,
"name": "Crafting", "name": "Crafting",
"rank": 48108, "rank": 58378,
"level": 99, "level": 99,
"xp": 14072560 "xp": 14103220
}, },
{ {
"id": 14, "id": 14,
"name": "Smithing", "name": "Smithing",
"rank": 10956, "rank": 13188,
"level": 99, "level": 99,
"xp": 16552060 "xp": 16573909
},
{
"id": 15,
"name": "Mining",
"rank": 36283,
"level": 99,
"xp": 15061037
}, },
{ "id": 15, "name": "Mining", "rank": 27980, "level": 99, "xp": 14967150 },
{ {
"id": 16, "id": 16,
"name": "Herblore", "name": "Herblore",
"rank": 40661, "rank": 17137,
"level": 99, "level": 99,
"xp": 13252766 "xp": 14670565
},
{
"id": 17,
"name": "Agility",
"rank": 8751,
"level": 99,
"xp": 16169665
}, },
{ "id": 17, "name": "Agility", "rank": 7114, "level": 99, "xp": 15760818 },
{ {
"id": 18, "id": 18,
"name": "Thieving", "name": "Thieving",
"rank": 53839, "rank": 60803,
"level": 99, "level": 99,
"xp": 14058762 "xp": 14390315
},
{
"id": 19,
"name": "Slayer",
"rank": 1718,
"level": 99,
"xp": 57850681
},
{
"id": 20,
"name": "Farming",
"rank": 2117,
"level": 99,
"xp": 110369178
}, },
{ "id": 19, "name": "Slayer", "rank": 5352, "level": 99, "xp": 34669574 },
{ "id": 20, "name": "Farming", "rank": 2456, "level": 99, "xp": 84892847 },
{ {
"id": 21, "id": 21,
"name": "Runecraft", "name": "Runecraft",
"rank": 4849, "rank": 5540,
"level": 99, "level": 99,
"xp": 22734071 "xp": 22739567
},
{
"id": 22,
"name": "Hunter",
"rank": 22326,
"level": 99,
"xp": 18052465
}, },
{ "id": 22, "name": "Hunter", "rank": 16368, "level": 99, "xp": 17968711 },
{ {
"id": 23, "id": 23,
"name": "Construction", "name": "Construction",
"rank": 1147, "rank": 1467,
"level": 99, "level": 99,
"xp": 18027875 "xp": 18050183
} }
], ],
"activities": [ "activities": [
{ "id": 0, "name": "League Points", "rank": -1, "score": -1 }, {
{ "id": 1, "name": "Deadman Points", "rank": -1, "score": -1 }, "id": 0,
{ "id": 2, "name": "Bounty Hunter - Hunter", "rank": 28384, "score": 10 }, "name": "League Points",
{ "id": 3, "name": "Bounty Hunter - Rogue", "rank": 14076, "score": 3 }, "rank": -1,
"score": -1
},
{
"id": 1,
"name": "Deadman Points",
"rank": -1,
"score": -1
},
{
"id": 2,
"name": "Bounty Hunter - Hunter",
"rank": 38135,
"score": 10
},
{
"id": 3,
"name": "Bounty Hunter - Rogue",
"rank": 19368,
"score": 3
},
{ {
"id": 4, "id": 4,
"name": "Bounty Hunter (Legacy) - Hunter", "name": "Bounty Hunter (Legacy) - Hunter",
"rank": 148183, "rank": 146220,
"score": 8 "score": 8
}, },
{ {
"id": 5, "id": 5,
"name": "Bounty Hunter (Legacy) - Rogue", "name": "Bounty Hunter (Legacy) - Rogue",
"rank": 102684, "rank": 100923,
"score": 7 "score": 7
}, },
{ "id": 6, "name": "Clue Scrolls (all)", "rank": 338, "score": 9641 }, {
{ "id": 7, "name": "Clue Scrolls (beginner)", "rank": 1002, "score": 825 }, "id": 6,
{ "id": 8, "name": "Clue Scrolls (easy)", "rank": 114, "score": 6000 }, "name": "Clue Scrolls (all)",
{ "id": 9, "name": "Clue Scrolls (medium)", "rank": 2246, "score": 1606 }, "rank": 433,
{ "id": 10, "name": "Clue Scrolls (hard)", "rank": 44261, "score": 298 }, "score": 9802
{ "id": 11, "name": "Clue Scrolls (elite)", "rank": 603, "score": 460 }, },
{ "id": 12, "name": "Clue Scrolls (master)", "rank": 1238, "score": 452 }, {
{ "id": 13, "name": "LMS - Rank", "rank": 15827, "score": 2521 }, "id": 7,
{ "id": 14, "name": "PvP Arena - Rank", "rank": -1, "score": -1 }, "name": "Clue Scrolls (beginner)",
{ "id": 15, "name": "Soul Wars Zeal", "rank": 7898, "score": 14780 }, "rank": 1542,
{ "id": 16, "name": "Rifts closed", "rank": 5421, "score": 1060 }, "score": 825
{ "id": 17, "name": "Colosseum Glory", "rank": 7, "score": 24522 }, },
{ "id": 18, "name": "Abyssal Sire", "rank": 2902, "score": 2192 }, {
{ "id": 19, "name": "Alchemical Hydra", "rank": 94883, "score": 594 }, "id": 8,
{ "id": 20, "name": "Artio", "rank": 34000, "score": 143 }, "name": "Clue Scrolls (easy)",
{ "id": 21, "name": "Barrows Chests", "rank": 3834, "score": 1830 }, "rank": 158,
{ "id": 22, "name": "Bryophyta", "rank": 218428, "score": 5 }, "score": 6000
{ "id": 23, "name": "Callisto", "rank": 36717, "score": 293 }, },
{ "id": 24, "name": "Calvar'ion", "rank": 74959, "score": 58 }, {
{ "id": 25, "name": "Cerberus", "rank": 19421, "score": 1905 }, "id": 9,
{ "id": 26, "name": "Chambers of Xeric", "rank": 186551, "score": 34 }, "name": "Clue Scrolls (medium)",
"rank": 2572,
"score": 1606
},
{
"id": 10,
"name": "Clue Scrolls (hard)",
"rank": 47979,
"score": 311
},
{
"id": 11,
"name": "Clue Scrolls (elite)",
"rank": 1081,
"score": 460
},
{
"id": 12,
"name": "Clue Scrolls (master)",
"rank": 880,
"score": 600
},
{
"id": 13,
"name": "LMS - Rank",
"rank": 4258,
"score": 6785
},
{
"id": 14,
"name": "PvP Arena - Rank",
"rank": -1,
"score": -1
},
{
"id": 15,
"name": "Soul Wars Zeal",
"rank": 7596,
"score": 14780
},
{
"id": 16,
"name": "Rifts closed",
"rank": 8124,
"score": 1060
},
{
"id": 17,
"name": "Colosseum Glory",
"rank": 10438,
"score": 43487
},
{
"id": 18,
"name": "Collections Logged",
"rank": 1114,
"score": 1155
},
{
"id": 19,
"name": "Abyssal Sire",
"rank": 3497,
"score": 2192
},
{
"id": 20,
"name": "Alchemical Hydra",
"rank": 3204,
"score": 4796
},
{
"id": 21,
"name": "Amoxliatl",
"rank": 1087,
"score": 984
},
{
"id": 22,
"name": "Araxxor",
"rank": 2230,
"score": 2328
},
{
"id": 23,
"name": "Artio",
"rank": 51533,
"score": 143
},
{
"id": 24,
"name": "Barrows Chests",
"rank": 4243,
"score": 1830
},
{
"id": 25,
"name": "Bryophyta",
"rank": 256985,
"score": 5
},
{
"id": 26,
"name": "Callisto",
"rank": 54424,
"score": 293
},
{ {
"id": 27, "id": 27,
"name": "Chambers of Xeric: Challenge Mode", "name": "Calvar'ion",
"rank": 2571, "rank": 114691,
"score": 515 "score": 58
},
{
"id": 28,
"name": "Cerberus",
"rank": 11700,
"score": 2657
},
{
"id": 29,
"name": "Chambers of Xeric",
"rank": 211708,
"score": 34
},
{
"id": 30,
"name": "Chambers of Xeric: Challenge Mode",
"rank": 1779,
"score": 736
},
{
"id": 31,
"name": "Chaos Elemental",
"rank": 24958,
"score": 215
},
{
"id": 32,
"name": "Chaos Fanatic",
"rank": 46504,
"score": 116
},
{
"id": 33,
"name": "Commander Zilyana",
"rank": 66096,
"score": 287
},
{
"id": 34,
"name": "Corporeal Beast",
"rank": 3133,
"score": 2000
},
{
"id": 35,
"name": "Crazy Archaeologist",
"rank": 26682,
"score": 198
},
{
"id": 36,
"name": "Dagannoth Prime",
"rank": 19337,
"score": 1078
},
{
"id": 37,
"name": "Dagannoth Rex",
"rank": 25021,
"score": 1062
},
{
"id": 38,
"name": "Dagannoth Supreme",
"rank": 19290,
"score": 1088
},
{
"id": 39,
"name": "Deranged Archaeologist",
"rank": 89474,
"score": 25
},
{
"id": 40,
"name": "Doom of Mokhaiotl",
"rank": 1140,
"score": 8
},
{
"id": 41,
"name": "Duke Sucellus",
"rank": 7535,
"score": 1320
},
{
"id": 42,
"name": "General Graardor",
"rank": 23251,
"score": 1228
},
{
"id": 43,
"name": "Giant Mole",
"rank": 82016,
"score": 477
},
{
"id": 44,
"name": "Grotesque Guardians",
"rank": 876,
"score": 3642
},
{
"id": 45,
"name": "Hespori",
"rank": 7073,
"score": 310
},
{
"id": 46,
"name": "Kalphite Queen",
"rank": 2476,
"score": 2046
},
{
"id": 47,
"name": "King Black Dragon",
"rank": 55411,
"score": 580
},
{
"id": 48,
"name": "Kraken",
"rank": 68801,
"score": 2899
},
{
"id": 49,
"name": "Kree'Arra",
"rank": 4608,
"score": 1740
},
{
"id": 50,
"name": "K'ril Tsutsaroth",
"rank": 3079,
"score": 1444
},
{
"id": 51,
"name": "Lunar Chests",
"rank": 8344,
"score": 324
},
{
"id": 52,
"name": "Mimic",
"rank": 540,
"score": 53
},
{
"id": 53,
"name": "Nex",
"rank": 38395,
"score": 626
},
{
"id": 54,
"name": "Nightmare",
"rank": 4176,
"score": 749
},
{
"id": 55,
"name": "Phosani's Nightmare",
"rank": 5519,
"score": 500
},
{
"id": 56,
"name": "Obor",
"rank": 1394,
"score": 217
},
{
"id": 57,
"name": "Phantom Muspah",
"rank": 26127,
"score": 379
},
{
"id": 58,
"name": "Sarachnis",
"rank": 49730,
"score": 249
},
{
"id": 59,
"name": "Scorpia",
"rank": 57206,
"score": 91
},
{
"id": 60,
"name": "Scurrius",
"rank": 6106,
"score": 1245
},
{
"id": 61,
"name": "Skotizo",
"rank": 185920,
"score": 29
},
{
"id": 62,
"name": "Sol Heredit",
"rank": 3232,
"score": 49
},
{
"id": 63,
"name": "Spindel",
"rank": 4276,
"score": 1569
},
{
"id": 64,
"name": "Tempoross",
"rank": 57314,
"score": 273
},
{
"id": 65,
"name": "The Gauntlet",
"rank": 256794,
"score": 7
}, },
{ "id": 28, "name": "Chaos Elemental", "rank": 85921, "score": 50 },
{ "id": 29, "name": "Chaos Fanatic", "rank": 154580, "score": 26 },
{ "id": 30, "name": "Commander Zilyana", "rank": 54677, "score": 287 },
{ "id": 31, "name": "Corporeal Beast", "rank": 2586, "score": 2000 },
{ "id": 32, "name": "Crazy Archaeologist", "rank": 153371, "score": 41 },
{ "id": 33, "name": "Dagannoth Prime", "rank": 33154, "score": 707 },
{ "id": 34, "name": "Dagannoth Rex", "rank": 43433, "score": 698 },
{ "id": 35, "name": "Dagannoth Supreme", "rank": 33088, "score": 714 },
{ "id": 36, "name": "Deranged Archaeologist", "rank": 81968, "score": 25 },
{ "id": 37, "name": "Duke Sucellus", "rank": 12249, "score": 731 },
{ "id": 38, "name": "General Graardor", "rank": 20424, "score": 1228 },
{ "id": 39, "name": "Giant Mole", "rank": 70188, "score": 474 },
{ "id": 40, "name": "Grotesque Guardians", "rank": 2248, "score": 2140 },
{ "id": 41, "name": "Hespori", "rank": 11128, "score": 226 },
{ "id": 42, "name": "Kalphite Queen", "rank": 2117, "score": 2046 },
{ "id": 43, "name": "King Black Dragon", "rank": 50095, "score": 580 },
{ "id": 44, "name": "Kraken", "rank": 120438, "score": 1908 },
{ "id": 45, "name": "Kree'Arra", "rank": 10997, "score": 920 },
{ "id": 46, "name": "K'ril Tsutsaroth", "rank": 2326, "score": 1444 },
{ "id": 47, "name": "Lunar Chests", "rank": -1, "score": -1 },
{ "id": 48, "name": "Mimic", "rank": 700, "score": 40 },
{ "id": 49, "name": "Nex", "rank": 31471, "score": 626 },
{ "id": 50, "name": "Nightmare", "rank": 4119, "score": 749 },
{ "id": 51, "name": "Phosani's Nightmare", "rank": 4349, "score": 500 },
{ "id": 52, "name": "Obor", "rank": 1078, "score": 217 },
{ "id": 53, "name": "Phantom Muspah", "rank": 20126, "score": 301 },
{ "id": 54, "name": "Sarachnis", "rank": 70523, "score": 119 },
{ "id": 55, "name": "Scorpia", "rank": 114632, "score": 26 },
{ "id": 56, "name": "Scurrius", "rank": 2945, "score": 1245 },
{ "id": 57, "name": "Skotizo", "rank": 385801, "score": 9 },
{ "id": 58, "name": "Sol Heredit", "rank": -1, "score": -1 },
{ "id": 59, "name": "Spindel", "rank": 2412, "score": 1569 },
{ "id": 60, "name": "Tempoross", "rank": 43814, "score": 273 },
{ "id": 61, "name": "The Gauntlet", "rank": 207949, "score": 7 },
{ "id": 62, "name": "The Corrupted Gauntlet", "rank": 86335, "score": 201 },
{ "id": 63, "name": "The Leviathan", "rank": 7905, "score": 601 },
{ "id": 64, "name": "The Whisperer", "rank": 732, "score": 1783 },
{ "id": 65, "name": "Theatre of Blood", "rank": 21039, "score": 310 },
{ {
"id": 66, "id": 66,
"name": "Theatre of Blood: Hard Mode", "name": "The Corrupted Gauntlet",
"rank": 4949, "rank": 113862,
"score": 192 "score": 201
}, },
{ {
"id": 67, "id": 67,
"name": "Thermonuclear Smoke Devil", "name": "The Hueycoatl",
"rank": 7584, "rank": 1969,
"score": 3066 "score": 538
},
{
"id": 68,
"name": "The Leviathan",
"rank": 12346,
"score": 671
}, },
{ "id": 68, "name": "Tombs of Amascut", "rank": 109360, "score": 36 },
{ {
"id": 69, "id": 69,
"name": "Tombs of Amascut: Expert Mode", "name": "The Royal Titans",
"rank": 160, "rank": 5606,
"score": 1500 "score": 149
}, },
{ "id": 70, "name": "TzKal-Zuk", "rank": 6733, "score": 7 }, {
{ "id": 71, "name": "TzTok-Jad", "rank": 131888, "score": 8 }, "id": 70,
{ "id": 72, "name": "Vardorvis", "rank": 3128, "score": 2113 }, "name": "The Whisperer",
{ "id": 73, "name": "Venenatis", "rank": 209, "score": 7096 }, "rank": 550,
{ "id": 74, "name": "Vet'ion", "rank": 75591, "score": 51 }, "score": 2450
{ "id": 75, "name": "Vorkath", "rank": 15167, "score": 2780 }, },
{ "id": 76, "name": "Wintertodt", "rank": 911570, "score": 62 }, {
{ "id": 77, "name": "Zalcano", "rank": 173436, "score": 25 }, "id": 71,
{ "id": 78, "name": "Zulrah", "rank": 233645, "score": 275 } "name": "Theatre of Blood",
"rank": 25557,
"score": 310
},
{
"id": 72,
"name": "Theatre of Blood: Hard Mode",
"rank": 1391,
"score": 538
},
{
"id": 73,
"name": "Thermonuclear Smoke Devil",
"rank": 9325,
"score": 3066
},
{
"id": 74,
"name": "Tombs of Amascut",
"rank": 131996,
"score": 37
},
{
"id": 75,
"name": "Tombs of Amascut: Expert Mode",
"rank": 214,
"score": 1720
},
{
"id": 76,
"name": "TzKal-Zuk",
"rank": 8902,
"score": 7
},
{
"id": 77,
"name": "TzTok-Jad",
"rank": 148385,
"score": 8
},
{
"id": 78,
"name": "Vardorvis",
"rank": 6120,
"score": 2113
},
{
"id": 79,
"name": "Venenatis",
"rank": 287,
"score": 7096
},
{
"id": 80,
"name": "Vet'ion",
"rank": 97368,
"score": 51
},
{
"id": 81,
"name": "Vorkath",
"rank": 15591,
"score": 2780
},
{
"id": 82,
"name": "Wintertodt",
"rank": 1000405,
"score": 67
},
{
"id": 83,
"name": "Yama",
"rank": 19722,
"score": 173
},
{
"id": 84,
"name": "Zalcano",
"rank": 213696,
"score": 25
},
{
"id": 85,
"name": "Zulrah",
"rank": 240082,
"score": 340
}
] ]
} }

View File

@@ -15,7 +15,10 @@ import {
InvalidFormatError, InvalidFormatError,
BH_MODES, BH_MODES,
parseJsonStats, parseJsonStats,
HiscoresResponse HiscoresResponse,
InvalidRSNError,
PlayerNotFoundError,
HiScoresError
} from '../src/index'; } from '../src/index';
const B0ATY_NAME = 'B0ATY'; const B0ATY_NAME = 'B0ATY';
@@ -24,6 +27,8 @@ const LYNX_TITAN_SPACE_NAME = 'lYnX tiTaN';
const LYNX_TITAN_UNDERSCORE_NAME = 'lYnX_tiTaN'; const LYNX_TITAN_UNDERSCORE_NAME = 'lYnX_tiTaN';
const LYNX_TITAN_HYPHEN_NAME = 'lYnX-tiTaN'; const LYNX_TITAN_HYPHEN_NAME = 'lYnX-tiTaN';
const LYNX_TITAN_FORMATTED_NAME = 'Lynx Titan'; const LYNX_TITAN_FORMATTED_NAME = 'Lynx Titan';
const NON_EXISTENT_NAME = 'nonExistent';
const ERROR_NAME = 'errorName';
const attackTopPage = readFileSync(`${__dirname}/attackTopPage.html`, 'utf8'); const attackTopPage = readFileSync(`${__dirname}/attackTopPage.html`, 'utf8');
const b0atyNamePage = readFileSync(`${__dirname}/b0atyNamePage.html`, 'utf8'); const b0atyNamePage = readFileSync(`${__dirname}/b0atyNamePage.html`, 'utf8');
@@ -57,6 +62,12 @@ jest.spyOn(axios, 'get').mockImplementation((url) => {
if (getStatsURL('main', LYNX_TITAN_FORMATTED_NAME, true) === url) { if (getStatsURL('main', LYNX_TITAN_FORMATTED_NAME, true) === url) {
return Promise.resolve({ status: 200, data: lynxTitanStats }); return Promise.resolve({ status: 200, data: lynxTitanStats });
} }
if (getPlayerTableURL('main', NON_EXISTENT_NAME) === url) {
return Promise.resolve({ data: '<html></html>' });
}
if (getPlayerTableURL('main', ERROR_NAME)) {
return Promise.reject();
}
throw new Error(`No mock response for URL: ${url}`); throw new Error(`No mock response for URL: ${url}`);
}); });
@@ -103,8 +114,11 @@ test('Parse CSV to json', () => {
37,225 37,225
25,1110 25,1110
7827,43249 7827,43249
1114,1155
382,2780 382,2780
944,3000 944,3000
561,398429
37,111
704,892 704,892
1981,1452 1981,1452
4981,23 4981,23
@@ -122,6 +136,7 @@ test('Parse CSV to json', () => {
4342,1655 4342,1655
966,2951 966,2951
10151,1 10151,1
100,735
1289,2477 1289,2477
1288,2407 1288,2407
377,4669 377,4669
@@ -148,7 +163,9 @@ test('Parse CSV to json', () => {
18823,23 18823,23
63,375 63,375
2870,6 2870,6
891,9102
2871,7 2871,7
5606,149
2872,8 2872,8
6984,138 6984,138
23,923141 23,923141
@@ -162,6 +179,7 @@ test('Parse CSV to json', () => {
1940,272 1940,272
8623,1340 8623,1340
605,1694 605,1694
15233,245
-1,-1 -1,-1
3867,4583`; 3867,4583`;
@@ -205,6 +223,7 @@ test('Parse CSV to json', () => {
soulWarsZeal: { rank: 37, score: 225 }, soulWarsZeal: { rank: 37, score: 225 },
riftsClosed: { rank: 25, score: 1110 }, riftsClosed: { rank: 25, score: 1110 },
colosseumGlory: { rank: 7827, score: 43249 }, colosseumGlory: { rank: 7827, score: 43249 },
collectionsLogged: { rank: 1114, score: 1155 },
clues: { clues: {
all: { rank: 32, score: 12148 }, all: { rank: 32, score: 12148 },
beginner: { rank: 3105, score: 76 }, beginner: { rank: 3105, score: 76 },
@@ -217,6 +236,8 @@ test('Parse CSV to json', () => {
bosses: { bosses: {
abyssalSire: { rank: 382, score: 2780 }, abyssalSire: { rank: 382, score: 2780 },
alchemicalHydra: { rank: 944, score: 3000 }, alchemicalHydra: { rank: 944, score: 3000 },
amoxliatl: { rank: 561, score: 398429 },
araxxor: { rank: 37, score: 111 },
artio: { rank: 704, score: 892 }, artio: { rank: 704, score: 892 },
barrows: { rank: 1981, score: 1452 }, barrows: { rank: 1981, score: 1452 },
bryophyta: { rank: 4981, score: 23 }, bryophyta: { rank: 4981, score: 23 },
@@ -234,6 +255,7 @@ test('Parse CSV to json', () => {
dagannothRex: { rank: 4342, score: 1655 }, dagannothRex: { rank: 4342, score: 1655 },
dagannothSupreme: { rank: 966, score: 2951 }, dagannothSupreme: { rank: 966, score: 2951 },
derangedArchaeologist: { rank: 10151, score: 1 }, derangedArchaeologist: { rank: 10151, score: 1 },
doomOfMokhaiotl: { rank: 100, score: 735 },
dukeSucellus: { rank: 1289, score: 2477 }, dukeSucellus: { rank: 1289, score: 2477 },
generalGraardor: { rank: 1288, score: 2407 }, generalGraardor: { rank: 1288, score: 2407 },
giantMole: { rank: 377, score: 4669 }, giantMole: { rank: 377, score: 4669 },
@@ -260,7 +282,9 @@ test('Parse CSV to json', () => {
tempoross: { rank: 18823, score: 23 }, tempoross: { rank: 18823, score: 23 },
gauntlet: { rank: 63, score: 375 }, gauntlet: { rank: 63, score: 375 },
corruptedGauntlet: { rank: 2870, score: 6 }, corruptedGauntlet: { rank: 2870, score: 6 },
hueycoatl: { rank: 891, score: 9102 },
leviathan: { rank: 2871, score: 7 }, leviathan: { rank: 2871, score: 7 },
royalTitans: { rank: 5606, score: 149 },
whisperer: { rank: 2872, score: 8 }, whisperer: { rank: 2872, score: 8 },
theatreOfBlood: { rank: 6984, score: 138 }, theatreOfBlood: { rank: 6984, score: 138 },
theatreOfBloodHardMode: { rank: 23, score: 923141 }, theatreOfBloodHardMode: { rank: 23, score: 923141 },
@@ -274,6 +298,7 @@ test('Parse CSV to json', () => {
vetion: { rank: 1940, score: 272 }, vetion: { rank: 1940, score: 272 },
vorkath: { rank: 8623, score: 1340 }, vorkath: { rank: 8623, score: 1340 },
wintertodt: { rank: 605, score: 1694 }, wintertodt: { rank: 605, score: 1694 },
yama: { rank: 15233, score: 245 },
zalcano: { rank: -1, score: -1 }, zalcano: { rank: -1, score: -1 },
zulrah: { rank: 3867, score: 4583 } zulrah: { rank: 3867, score: 4583 }
} }
@@ -312,7 +337,15 @@ describe('Get name format', () => {
expect(data).toBe(B0ATY_FORMATTED_NAME); expect(data).toBe(B0ATY_FORMATTED_NAME);
}); });
it('throws an error for a name with invalid characters', async () => { it('throws an error for a name with invalid characters', async () => {
await expect(getRSNFormat('b&aty')).rejects.toBeTruthy(); await expect(getRSNFormat('b&aty')).rejects.toThrow(InvalidRSNError);
});
it('throws an error for a non-existent player', async () => {
await expect(getRSNFormat(NON_EXISTENT_NAME)).rejects.toThrow(
PlayerNotFoundError
);
});
it('throws an error for a hiscores issue', async () => {
await expect(getRSNFormat(ERROR_NAME)).rejects.toThrow(HiScoresError);
}); });
}); });
@@ -499,7 +532,7 @@ test('Get attack top page', async () => {
test('Get non-existent player', async () => { test('Get non-existent player', async () => {
getStats('fishy').catch((err) => { getStats('fishy').catch((err) => {
if (err.response) { if (err?.response) {
expect(err.response.status).toBe(404); expect(err.response.status).toBe(404);
} }
}); });

View File

@@ -1,14 +1,68 @@
{ {
"skills": [ "skills": [
{ "id": 0, "name": "Overall", "rank": 1, "level": 2277, "xp": 4600000000 }, {
{ "id": 1, "name": "Attack", "rank": 15, "level": 99, "xp": 200000000 }, "id": 0,
{ "id": 2, "name": "Defence", "rank": 28, "level": 99, "xp": 200000000 }, "name": "Overall",
{ "id": 3, "name": "Strength", "rank": 18, "level": 99, "xp": 200000000 }, "rank": 1,
{ "id": 4, "name": "Hitpoints", "rank": 7, "level": 99, "xp": 200000000 }, "level": 2277,
{ "id": 5, "name": "Ranged", "rank": 8, "level": 99, "xp": 200000000 }, "xp": 4600000000
{ "id": 6, "name": "Prayer", "rank": 11, "level": 99, "xp": 200000000 }, },
{ "id": 7, "name": "Magic", "rank": 30, "level": 99, "xp": 200000000 }, {
{ "id": 8, "name": "Cooking", "rank": 154, "level": 99, "xp": 200000000 }, "id": 1,
"name": "Attack",
"rank": 15,
"level": 99,
"xp": 200000000
},
{
"id": 2,
"name": "Defence",
"rank": 28,
"level": 99,
"xp": 200000000
},
{
"id": 3,
"name": "Strength",
"rank": 18,
"level": 99,
"xp": 200000000
},
{
"id": 4,
"name": "Hitpoints",
"rank": 7,
"level": 99,
"xp": 200000000
},
{
"id": 5,
"name": "Ranged",
"rank": 8,
"level": 99,
"xp": 200000000
},
{
"id": 6,
"name": "Prayer",
"rank": 11,
"level": 99,
"xp": 200000000
},
{
"id": 7,
"name": "Magic",
"rank": 30,
"level": 99,
"xp": 200000000
},
{
"id": 8,
"name": "Cooking",
"rank": 149,
"level": 99,
"xp": 200000000
},
{ {
"id": 9, "id": 9,
"name": "Woodcutting", "name": "Woodcutting",
@@ -16,8 +70,20 @@
"level": 99, "level": 99,
"xp": 200000000 "xp": 200000000
}, },
{ "id": 10, "name": "Fletching", "rank": 12, "level": 99, "xp": 200000000 }, {
{ "id": 11, "name": "Fishing", "rank": 9, "level": 99, "xp": 200000000 }, "id": 10,
"name": "Fletching",
"rank": 12,
"level": 99,
"xp": 200000000
},
{
"id": 11,
"name": "Fishing",
"rank": 9,
"level": 99,
"xp": 200000000
},
{ {
"id": 12, "id": 12,
"name": "Firemaking", "name": "Firemaking",
@@ -25,16 +91,76 @@
"level": 99, "level": 99,
"xp": 200000000 "xp": 200000000
}, },
{ "id": 13, "name": "Crafting", "rank": 4, "level": 99, "xp": 200000000 }, {
{ "id": 14, "name": "Smithing", "rank": 3, "level": 99, "xp": 200000000 }, "id": 13,
{ "id": 15, "name": "Mining", "rank": 24, "level": 99, "xp": 200000000 }, "name": "Crafting",
{ "id": 16, "name": "Herblore", "rank": 5, "level": 99, "xp": 200000000 }, "rank": 4,
{ "id": 17, "name": "Agility", "rank": 24, "level": 99, "xp": 200000000 }, "level": 99,
{ "id": 18, "name": "Thieving", "rank": 12, "level": 99, "xp": 200000000 }, "xp": 200000000
{ "id": 19, "name": "Slayer", "rank": 2, "level": 99, "xp": 200000000 }, },
{ "id": 20, "name": "Farming", "rank": 19, "level": 99, "xp": 200000000 }, {
{ "id": 21, "name": "Runecraft", "rank": 6, "level": 99, "xp": 200000000 }, "id": 14,
{ "id": 22, "name": "Hunter", "rank": 4, "level": 99, "xp": 200000000 }, "name": "Smithing",
"rank": 3,
"level": 99,
"xp": 200000000
},
{
"id": 15,
"name": "Mining",
"rank": 23,
"level": 99,
"xp": 200000000
},
{
"id": 16,
"name": "Herblore",
"rank": 5,
"level": 99,
"xp": 200000000
},
{
"id": 17,
"name": "Agility",
"rank": 24,
"level": 99,
"xp": 200000000
},
{
"id": 18,
"name": "Thieving",
"rank": 12,
"level": 99,
"xp": 200000000
},
{
"id": 19,
"name": "Slayer",
"rank": 2,
"level": 99,
"xp": 200000000
},
{
"id": 20,
"name": "Farming",
"rank": 19,
"level": 99,
"xp": 200000000
},
{
"id": 21,
"name": "Runecraft",
"rank": 6,
"level": 99,
"xp": 200000000
},
{
"id": 22,
"name": "Hunter",
"rank": 3,
"level": 99,
"xp": 200000000
},
{ {
"id": 23, "id": 23,
"name": "Construction", "name": "Construction",
@@ -44,10 +170,30 @@
} }
], ],
"activities": [ "activities": [
{ "id": 0, "name": "League Points", "rank": -1, "score": -1 }, {
{ "id": 1, "name": "Deadman Points", "rank": -1, "score": -1 }, "id": 0,
{ "id": 2, "name": "Bounty Hunter - Hunter", "rank": -1, "score": -1 }, "name": "League Points",
{ "id": 3, "name": "Bounty Hunter - Rogue", "rank": -1, "score": -1 }, "rank": -1,
"score": -1
},
{
"id": 1,
"name": "Deadman Points",
"rank": -1,
"score": -1
},
{
"id": 2,
"name": "Bounty Hunter - Hunter",
"rank": -1,
"score": -1
},
{
"id": 3,
"name": "Bounty Hunter - Rogue",
"rank": -1,
"score": -1
},
{ {
"id": 4, "id": 4,
"name": "Bounty Hunter (Legacy) - Hunter", "name": "Bounty Hunter (Legacy) - Hunter",
@@ -60,93 +206,473 @@
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ "id": 6, "name": "Clue Scrolls (all)", "rank": 832420, "score": 22 }, {
{ "id": 7, "name": "Clue Scrolls (beginner)", "rank": -1, "score": -1 }, "id": 6,
{ "id": 8, "name": "Clue Scrolls (easy)", "rank": -1, "score": -1 }, "name": "Clue Scrolls (all)",
{ "id": 9, "name": "Clue Scrolls (medium)", "rank": -1, "score": -1 }, "rank": 937868,
{ "id": 10, "name": "Clue Scrolls (hard)", "rank": 517091, "score": 22 }, "score": 22
{ "id": 11, "name": "Clue Scrolls (elite)", "rank": -1, "score": -1 }, },
{ "id": 12, "name": "Clue Scrolls (master)", "rank": -1, "score": -1 }, {
{ "id": 13, "name": "LMS - Rank", "rank": -1, "score": -1 }, "id": 7,
{ "id": 14, "name": "PvP Arena - Rank", "rank": -1, "score": -1 }, "name": "Clue Scrolls (beginner)",
{ "id": 15, "name": "Soul Wars Zeal", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 16, "name": "Rifts closed", "rank": -1, "score": -1 }, "score": -1
{ "id": 17, "name": "Colosseum Glory", "rank": -1, "score": -1 }, },
{ "id": 18, "name": "Abyssal Sire", "rank": -1, "score": -1 }, {
{ "id": 19, "name": "Alchemical Hydra", "rank": -1, "score": -1 }, "id": 8,
{ "id": 20, "name": "Artio", "rank": -1, "score": -1 }, "name": "Clue Scrolls (easy)",
{ "id": 21, "name": "Barrows Chests", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 22, "name": "Bryophyta", "rank": -1, "score": -1 }, "score": -1
{ "id": 23, "name": "Callisto", "rank": -1, "score": -1 }, },
{ "id": 24, "name": "Calvar'ion", "rank": -1, "score": -1 }, {
{ "id": 25, "name": "Cerberus", "rank": -1, "score": -1 }, "id": 9,
{ "id": 26, "name": "Chambers of Xeric", "rank": -1, "score": -1 }, "name": "Clue Scrolls (medium)",
"rank": -1,
"score": -1
},
{
"id": 10,
"name": "Clue Scrolls (hard)",
"rank": 578038,
"score": 22
},
{
"id": 11,
"name": "Clue Scrolls (elite)",
"rank": -1,
"score": -1
},
{
"id": 12,
"name": "Clue Scrolls (master)",
"rank": -1,
"score": -1
},
{
"id": 13,
"name": "LMS - Rank",
"rank": -1,
"score": -1
},
{
"id": 14,
"name": "PvP Arena - Rank",
"rank": -1,
"score": -1
},
{
"id": 15,
"name": "Soul Wars Zeal",
"rank": -1,
"score": -1
},
{
"id": 16,
"name": "Rifts closed",
"rank": -1,
"score": -1
},
{
"id": 17,
"name": "Colosseum Glory",
"rank": -1,
"score": -1
},
{
"id": 18,
"name": "Collections Logged",
"rank": -1,
"score": -1
},
{
"id": 19,
"name": "Abyssal Sire",
"rank": -1,
"score": -1
},
{
"id": 20,
"name": "Alchemical Hydra",
"rank": -1,
"score": -1
},
{
"id": 21,
"name": "Amoxliatl",
"rank": -1,
"score": -1
},
{
"id": 22,
"name": "Araxxor",
"rank": -1,
"score": -1
},
{
"id": 23,
"name": "Artio",
"rank": -1,
"score": -1
},
{
"id": 24,
"name": "Barrows Chests",
"rank": -1,
"score": -1
},
{
"id": 25,
"name": "Bryophyta",
"rank": -1,
"score": -1
},
{
"id": 26,
"name": "Callisto",
"rank": -1,
"score": -1
},
{ {
"id": 27, "id": 27,
"name": "Calvar'ion",
"rank": -1,
"score": -1
},
{
"id": 28,
"name": "Cerberus",
"rank": -1,
"score": -1
},
{
"id": 29,
"name": "Chambers of Xeric",
"rank": -1,
"score": -1
},
{
"id": 30,
"name": "Chambers of Xeric: Challenge Mode", "name": "Chambers of Xeric: Challenge Mode",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ "id": 28, "name": "Chaos Elemental", "rank": -1, "score": -1 }, {
{ "id": 29, "name": "Chaos Fanatic", "rank": -1, "score": -1 }, "id": 31,
{ "id": 30, "name": "Commander Zilyana", "rank": -1, "score": -1 }, "name": "Chaos Elemental",
{ "id": 31, "name": "Corporeal Beast", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 32, "name": "Crazy Archaeologist", "rank": -1, "score": -1 }, "score": -1
{ "id": 33, "name": "Dagannoth Prime", "rank": -1, "score": -1 }, },
{ "id": 34, "name": "Dagannoth Rex", "rank": -1, "score": -1 }, {
{ "id": 35, "name": "Dagannoth Supreme", "rank": -1, "score": -1 }, "id": 32,
{ "id": 36, "name": "Deranged Archaeologist", "rank": -1, "score": -1 }, "name": "Chaos Fanatic",
{ "id": 37, "name": "Duke Sucellus", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 38, "name": "General Graardor", "rank": -1, "score": -1 }, "score": -1
{ "id": 39, "name": "Giant Mole", "rank": -1, "score": -1 }, },
{ "id": 40, "name": "Grotesque Guardians", "rank": -1, "score": -1 }, {
{ "id": 41, "name": "Hespori", "rank": -1, "score": -1 }, "id": 33,
{ "id": 42, "name": "Kalphite Queen", "rank": -1, "score": -1 }, "name": "Commander Zilyana",
{ "id": 43, "name": "King Black Dragon", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 44, "name": "Kraken", "rank": -1, "score": -1 }, "score": -1
{ "id": 45, "name": "Kree'Arra", "rank": -1, "score": -1 }, },
{ "id": 46, "name": "K'ril Tsutsaroth", "rank": -1, "score": -1 }, {
{ "id": 47, "name": "Lunar Chests", "rank": -1, "score": -1 }, "id": 34,
{ "id": 48, "name": "Mimic", "rank": -1, "score": -1 }, "name": "Corporeal Beast",
{ "id": 49, "name": "Nex", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 50, "name": "Nightmare", "rank": -1, "score": -1 }, "score": -1
{ "id": 51, "name": "Phosani's Nightmare", "rank": -1, "score": -1 }, },
{ "id": 52, "name": "Obor", "rank": -1, "score": -1 }, {
{ "id": 53, "name": "Phantom Muspah", "rank": -1, "score": -1 }, "id": 35,
{ "id": 54, "name": "Sarachnis", "rank": -1, "score": -1 }, "name": "Crazy Archaeologist",
{ "id": 55, "name": "Scorpia", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 56, "name": "Scurrius", "rank": -1, "score": -1 }, "score": -1
{ "id": 57, "name": "Skotizo", "rank": -1, "score": -1 }, },
{ "id": 58, "name": "Sol Heredit", "rank": -1, "score": -1 }, {
{ "id": 59, "name": "Spindel", "rank": -1, "score": -1 }, "id": 36,
{ "id": 60, "name": "Tempoross", "rank": -1, "score": -1 }, "name": "Dagannoth Prime",
{ "id": 61, "name": "The Gauntlet", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 62, "name": "The Corrupted Gauntlet", "rank": -1, "score": -1 }, "score": -1
{ "id": 63, "name": "The Leviathan", "rank": -1, "score": -1 }, },
{ "id": 64, "name": "The Whisperer", "rank": -1, "score": -1 }, {
{ "id": 65, "name": "Theatre of Blood", "rank": -1, "score": -1 }, "id": 37,
"name": "Dagannoth Rex",
"rank": -1,
"score": -1
},
{
"id": 38,
"name": "Dagannoth Supreme",
"rank": -1,
"score": -1
},
{
"id": 39,
"name": "Deranged Archaeologist",
"rank": -1,
"score": -1
},
{
"id": 40,
"name": "Duke Sucellus",
"rank": -1,
"score": -1
},
{
"id": 41,
"name": "General Graardor",
"rank": -1,
"score": -1
},
{
"id": 42,
"name": "Giant Mole",
"rank": -1,
"score": -1
},
{
"id": 43,
"name": "Grotesque Guardians",
"rank": -1,
"score": -1
},
{
"id": 44,
"name": "Hespori",
"rank": -1,
"score": -1
},
{
"id": 45,
"name": "Kalphite Queen",
"rank": -1,
"score": -1
},
{
"id": 46,
"name": "King Black Dragon",
"rank": -1,
"score": -1
},
{
"id": 47,
"name": "Kraken",
"rank": -1,
"score": -1
},
{
"id": 48,
"name": "Kree'Arra",
"rank": -1,
"score": -1
},
{
"id": 49,
"name": "K'ril Tsutsaroth",
"rank": -1,
"score": -1
},
{
"id": 50,
"name": "Lunar Chests",
"rank": -1,
"score": -1
},
{
"id": 51,
"name": "Mimic",
"rank": -1,
"score": -1
},
{
"id": 52,
"name": "Nex",
"rank": -1,
"score": -1
},
{
"id": 53,
"name": "Nightmare",
"rank": -1,
"score": -1
},
{
"id": 54,
"name": "Phosani's Nightmare",
"rank": -1,
"score": -1
},
{
"id": 55,
"name": "Obor",
"rank": -1,
"score": -1
},
{
"id": 56,
"name": "Phantom Muspah",
"rank": -1,
"score": -1
},
{
"id": 57,
"name": "Sarachnis",
"rank": -1,
"score": -1
},
{
"id": 58,
"name": "Scorpia",
"rank": -1,
"score": -1
},
{
"id": 59,
"name": "Scurrius",
"rank": -1,
"score": -1
},
{
"id": 60,
"name": "Skotizo",
"rank": -1,
"score": -1
},
{
"id": 61,
"name": "Sol Heredit",
"rank": -1,
"score": -1
},
{
"id": 62,
"name": "Spindel",
"rank": -1,
"score": -1
},
{
"id": 63,
"name": "Tempoross",
"rank": -1,
"score": -1
},
{
"id": 64,
"name": "The Gauntlet",
"rank": -1,
"score": -1
},
{
"id": 65,
"name": "The Corrupted Gauntlet",
"rank": -1,
"score": -1
},
{ {
"id": 66, "id": 66,
"name": "The Hueycoatl",
"rank": -1,
"score": -1
},
{
"id": 67,
"name": "The Leviathan",
"rank": -1,
"score": -1
},
{
"id": 68,
"name": "The Royal Titans",
"rank": -1,
"score": -1
},
{
"id": 69,
"name": "The Whisperer",
"rank": -1,
"score": -1
},
{
"id": 70,
"name": "Theatre of Blood",
"rank": -1,
"score": -1
},
{
"id": 71,
"name": "Theatre of Blood: Hard Mode", "name": "Theatre of Blood: Hard Mode",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ "id": 67, "name": "Thermonuclear Smoke Devil", "rank": -1, "score": -1 },
{ "id": 68, "name": "Tombs of Amascut", "rank": -1, "score": -1 },
{ {
"id": 69, "id": 72,
"name": "Thermonuclear Smoke Devil",
"rank": -1,
"score": -1
},
{
"id": 73,
"name": "Tombs of Amascut",
"rank": -1,
"score": -1
},
{
"id": 74,
"name": "Tombs of Amascut: Expert Mode", "name": "Tombs of Amascut: Expert Mode",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ "id": 70, "name": "TzKal-Zuk", "rank": -1, "score": -1 }, {
{ "id": 71, "name": "TzTok-Jad", "rank": 251, "score": 186 }, "id": 75,
{ "id": 72, "name": "Vardorvis", "rank": -1, "score": -1 }, "name": "TzKal-Zuk",
{ "id": 73, "name": "Venenatis", "rank": -1, "score": -1 }, "rank": -1,
{ "id": 74, "name": "Vet'ion", "rank": -1, "score": -1 }, "score": -1
{ "id": 75, "name": "Vorkath", "rank": -1, "score": -1 }, },
{ "id": 76, "name": "Wintertodt", "rank": -1, "score": -1 }, {
{ "id": 77, "name": "Zalcano", "rank": -1, "score": -1 }, "id": 76,
{ "id": 78, "name": "Zulrah", "rank": -1, "score": -1 } "name": "TzTok-Jad",
"rank": 317,
"score": 186
},
{
"id": 77,
"name": "Vardorvis",
"rank": -1,
"score": -1
},
{
"id": 78,
"name": "Venenatis",
"rank": -1,
"score": -1
},
{
"id": 79,
"name": "Vet'ion",
"rank": -1,
"score": -1
},
{
"id": 80,
"name": "Vorkath",
"rank": -1,
"score": -1
},
{
"id": 81,
"name": "Wintertodt",
"rank": -1,
"score": -1
},
{
"id": 82,
"name": "Zalcano",
"rank": -1,
"score": -1
},
{
"id": 83,
"name": "Zulrah",
"rank": -1,
"score": -1
}
] ]
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "osrs-json-hiscores", "name": "osrs-json-hiscores",
"version": "2.18.0", "version": "2.23.0",
"description": "The Old School Runescape API wrapper that does more!", "description": "The Old School Runescape API wrapper that does more!",
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/index.d.ts", "types": "lib/index.d.ts",

View File

@@ -45,7 +45,8 @@ import {
FORMATTED_SOUL_WARS, FORMATTED_SOUL_WARS,
FORMATTED_RIFTS_CLOSED, FORMATTED_RIFTS_CLOSED,
FORMATTED_DEADMAN_POINTS, FORMATTED_DEADMAN_POINTS,
FORMATTED_COLOSSEUM_GLORY FORMATTED_COLOSSEUM_GLORY,
FORMATTED_COLLECTIONS_LOGGED
} from './utils'; } from './utils';
/** /**
@@ -85,11 +86,12 @@ export async function getOfficialStats(
*/ */
export async function getRSNFormat( export async function getRSNFormat(
rsn: string, rsn: string,
config?: AxiosRequestConfig config?: AxiosRequestConfig,
mode: Gamemode = 'main'
): Promise<string> { ): Promise<string> {
validateRSN(rsn); validateRSN(rsn);
const url = getPlayerTableURL('main', rsn); const url = getPlayerTableURL(mode, rsn);
try { try {
const response = await httpGet<string | Buffer | BinaryData | undefined>( const response = await httpGet<string | Buffer | BinaryData | undefined>(
url, url,
@@ -102,10 +104,10 @@ export async function getRSNFormat(
if (anchor) { if (anchor) {
return rsnFromElement(anchor); return rsnFromElement(anchor);
} }
throw new PlayerNotFoundError();
} catch { } catch {
throw new HiScoresError(); throw new HiScoresError();
} }
throw new PlayerNotFoundError();
} }
/** /**
@@ -164,6 +166,7 @@ export function parseJsonStats(json: HiscoresResponse): Stats {
const soulWarsZeal = getActivity(FORMATTED_SOUL_WARS); const soulWarsZeal = getActivity(FORMATTED_SOUL_WARS);
const riftsClosed = getActivity(FORMATTED_RIFTS_CLOSED); const riftsClosed = getActivity(FORMATTED_RIFTS_CLOSED);
const colosseumGlory = getActivity(FORMATTED_COLOSSEUM_GLORY); const colosseumGlory = getActivity(FORMATTED_COLOSSEUM_GLORY);
const collectionsLogged = getActivity(FORMATTED_COLLECTIONS_LOGGED);
const stats: Stats = { const stats: Stats = {
skills, skills,
@@ -175,6 +178,7 @@ export function parseJsonStats(json: HiscoresResponse): Stats {
soulWarsZeal, soulWarsZeal,
riftsClosed, riftsClosed,
colosseumGlory, colosseumGlory,
collectionsLogged,
clues, clues,
bosses bosses
}; };
@@ -224,8 +228,14 @@ export function parseStats(csv: string): Stats {
const [leaguePoints, deadmanPoints] = activityObjects.splice(0, 2); const [leaguePoints, deadmanPoints] = activityObjects.splice(0, 2);
const bhObjects = activityObjects.splice(0, BH_MODES.length); const bhObjects = activityObjects.splice(0, BH_MODES.length);
const clueObjects = activityObjects.splice(0, CLUES.length); const clueObjects = activityObjects.splice(0, CLUES.length);
const [lastManStanding, pvpArena, soulWarsZeal, riftsClosed, colosseumGlory] = const [
activityObjects.splice(0, 5); lastManStanding,
pvpArena,
soulWarsZeal,
riftsClosed,
colosseumGlory,
collectionsLogged
] = activityObjects.splice(0, 6);
const bossObjects = activityObjects.splice(0, BOSSES.length); const bossObjects = activityObjects.splice(0, BOSSES.length);
const skills: Skills = skillObjects.reduce<Skills>((prev, curr, index) => { const skills: Skills = skillObjects.reduce<Skills>((prev, curr, index) => {
@@ -262,6 +272,7 @@ export function parseStats(csv: string): Stats {
soulWarsZeal, soulWarsZeal,
riftsClosed, riftsClosed,
colosseumGlory, colosseumGlory,
collectionsLogged,
clues, clues,
bosses bosses
}; };

View File

@@ -69,6 +69,8 @@ export type BH = { [Type in BHType]: Activity };
export type Boss = export type Boss =
| 'abyssalSire' | 'abyssalSire'
| 'alchemicalHydra' | 'alchemicalHydra'
| 'amoxliatl'
| 'araxxor'
| 'artio' | 'artio'
| 'barrows' | 'barrows'
| 'bryophyta' | 'bryophyta'
@@ -86,6 +88,7 @@ export type Boss =
| 'dagannothRex' | 'dagannothRex'
| 'dagannothSupreme' | 'dagannothSupreme'
| 'derangedArchaeologist' | 'derangedArchaeologist'
| 'doomOfMokhaiotl'
| 'dukeSucellus' | 'dukeSucellus'
| 'generalGraardor' | 'generalGraardor'
| 'giantMole' | 'giantMole'
@@ -112,7 +115,9 @@ export type Boss =
| 'tempoross' | 'tempoross'
| 'gauntlet' | 'gauntlet'
| 'corruptedGauntlet' | 'corruptedGauntlet'
| 'hueycoatl'
| 'leviathan' | 'leviathan'
| 'royalTitans'
| 'whisperer' | 'whisperer'
| 'theatreOfBlood' | 'theatreOfBlood'
| 'theatreOfBloodHardMode' | 'theatreOfBloodHardMode'
@@ -126,6 +131,7 @@ export type Boss =
| 'vetion' | 'vetion'
| 'vorkath' | 'vorkath'
| 'wintertodt' | 'wintertodt'
| 'yama'
| 'zalcano' | 'zalcano'
| 'zulrah'; | 'zulrah';
@@ -150,6 +156,7 @@ export type ActivityName =
| 'eliteClues' | 'eliteClues'
| 'masterClues' | 'masterClues'
| 'colosseumGlory' | 'colosseumGlory'
| 'collectionsLogged'
| Boss; | Boss;
export interface Stats { export interface Stats {
@@ -169,6 +176,7 @@ export interface Stats {
soulWarsZeal: Activity; soulWarsZeal: Activity;
riftsClosed: Activity; riftsClosed: Activity;
colosseumGlory: Activity; colosseumGlory: Activity;
collectionsLogged: Activity;
bosses: Bosses; bosses: Bosses;
} }
export type Modes = { [M in Gamemode]?: Stats }; export type Modes = { [M in Gamemode]?: Stats };

View File

@@ -76,6 +76,8 @@ export const GAMEMODES: Gamemode[] = [
export const BOSSES: Boss[] = [ export const BOSSES: Boss[] = [
'abyssalSire', 'abyssalSire',
'alchemicalHydra', 'alchemicalHydra',
'amoxliatl',
'araxxor',
'artio', 'artio',
'barrows', 'barrows',
'bryophyta', 'bryophyta',
@@ -93,6 +95,7 @@ export const BOSSES: Boss[] = [
'dagannothRex', 'dagannothRex',
'dagannothSupreme', 'dagannothSupreme',
'derangedArchaeologist', 'derangedArchaeologist',
'doomOfMokhaiotl',
'dukeSucellus', 'dukeSucellus',
'generalGraardor', 'generalGraardor',
'giantMole', 'giantMole',
@@ -119,7 +122,9 @@ export const BOSSES: Boss[] = [
'tempoross', 'tempoross',
'gauntlet', 'gauntlet',
'corruptedGauntlet', 'corruptedGauntlet',
'hueycoatl',
'leviathan', 'leviathan',
'royalTitans',
'whisperer', 'whisperer',
'theatreOfBlood', 'theatreOfBlood',
'theatreOfBloodHardMode', 'theatreOfBloodHardMode',
@@ -133,6 +138,7 @@ export const BOSSES: Boss[] = [
'vetion', 'vetion',
'vorkath', 'vorkath',
'wintertodt', 'wintertodt',
'yama',
'zalcano', 'zalcano',
'zulrah' 'zulrah'
]; ];
@@ -155,6 +161,7 @@ export const ACTIVITIES: ActivityName[] = [
'soulWarsZeal', 'soulWarsZeal',
'riftsClosed', 'riftsClosed',
'colosseumGlory', 'colosseumGlory',
'collectionsLogged',
...BOSSES ...BOSSES
]; ];
@@ -165,6 +172,8 @@ export type FormattedBossNames = {
export const FORMATTED_BOSS_NAMES: FormattedBossNames = { export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
abyssalSire: 'Abyssal Sire', abyssalSire: 'Abyssal Sire',
alchemicalHydra: 'Alchemical Hydra', alchemicalHydra: 'Alchemical Hydra',
amoxliatl: 'Amoxliatl',
araxxor: 'Araxxor',
artio: 'Artio', artio: 'Artio',
barrows: 'Barrows Chests', barrows: 'Barrows Chests',
bryophyta: 'Bryophyta', bryophyta: 'Bryophyta',
@@ -182,6 +191,7 @@ export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
dagannothRex: 'Dagannoth Rex', dagannothRex: 'Dagannoth Rex',
dagannothSupreme: 'Dagannoth Supreme', dagannothSupreme: 'Dagannoth Supreme',
derangedArchaeologist: 'Deranged Archaeologist', derangedArchaeologist: 'Deranged Archaeologist',
doomOfMokhaiotl: 'Doom of Mokhaiotl',
dukeSucellus: 'Duke Sucellus', dukeSucellus: 'Duke Sucellus',
generalGraardor: 'General Graardor', generalGraardor: 'General Graardor',
giantMole: 'Giant Mole', giantMole: 'Giant Mole',
@@ -208,7 +218,9 @@ export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
tempoross: 'Tempoross', tempoross: 'Tempoross',
gauntlet: 'The Gauntlet', gauntlet: 'The Gauntlet',
corruptedGauntlet: 'The Corrupted Gauntlet', corruptedGauntlet: 'The Corrupted Gauntlet',
hueycoatl: 'The Hueycoatl',
leviathan: 'The Leviathan', leviathan: 'The Leviathan',
royalTitans: 'The Royal Titans',
whisperer: 'The Whisperer', whisperer: 'The Whisperer',
theatreOfBlood: 'Theatre of Blood', theatreOfBlood: 'Theatre of Blood',
theatreOfBloodHardMode: 'Theatre of Blood: Hard Mode', theatreOfBloodHardMode: 'Theatre of Blood: Hard Mode',
@@ -222,6 +234,7 @@ export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
vetion: "Vet'ion", vetion: "Vet'ion",
vorkath: 'Vorkath', vorkath: 'Vorkath',
wintertodt: 'Wintertodt', wintertodt: 'Wintertodt',
yama: 'Yama',
zalcano: 'Zalcano', zalcano: 'Zalcano',
zulrah: 'Zulrah' zulrah: 'Zulrah'
}; };
@@ -289,6 +302,7 @@ export const FORMATTED_LEAGUE_POINTS = 'League Points';
export const FORMATTED_DEADMAN_POINTS = 'Deadman Points'; export const FORMATTED_DEADMAN_POINTS = 'Deadman Points';
export const FORMATTED_RIFTS_CLOSED = 'Rifts closed'; export const FORMATTED_RIFTS_CLOSED = 'Rifts closed';
export const FORMATTED_COLOSSEUM_GLORY = 'Colosseum Glory'; export const FORMATTED_COLOSSEUM_GLORY = 'Colosseum Glory';
export const FORMATTED_COLLECTIONS_LOGGED = 'Collections Logged';
export const INVALID_FORMAT_ERROR = 'Invalid hiscores format'; export const INVALID_FORMAT_ERROR = 'Invalid hiscores format';
export const PLAYER_NOT_FOUND_ERROR = 'Player not found'; export const PLAYER_NOT_FOUND_ERROR = 'Player not found';

170
yarn.lock
View File

@@ -1288,11 +1288,11 @@ available-typed-arrays@^1.0.5:
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axios@^1.6.2: axios@^1.6.2:
version "1.6.2" version "1.8.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.2.tgz#fabe06e241dfe83071d4edfbcaa7b1c3a40f7979"
integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== integrity sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==
dependencies: dependencies:
follow-redirects "^1.15.0" follow-redirects "^1.15.6"
form-data "^4.0.0" form-data "^4.0.0"
proxy-from-env "^1.1.0" proxy-from-env "^1.1.0"
@@ -1383,12 +1383,12 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0" balanced-match "^1.0.0"
concat-map "0.0.1" concat-map "0.0.1"
braces@^3.0.1, braces@^3.0.2: braces@^3.0.3:
version "3.0.2" version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies: dependencies:
fill-range "^7.0.1" fill-range "^7.1.1"
browserslist@^4.21.9: browserslist@^4.21.9:
version "4.21.9" version "4.21.9"
@@ -1458,6 +1458,14 @@ cacheable-request@^7.0.1:
normalize-url "^4.1.0" normalize-url "^4.1.0"
responselike "^2.0.0" responselike "^2.0.0"
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
dependencies:
es-errors "^1.3.0"
function-bind "^1.1.2"
call-bind@^1.0.0, call-bind@^1.0.2: call-bind@^1.0.0, call-bind@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -1729,9 +1737,9 @@ cosmiconfig@^7.0.0:
yaml "^1.10.0" yaml "^1.10.0"
cross-spawn@^7.0.2, cross-spawn@^7.0.3: cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3" version "7.0.6"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies: dependencies:
path-key "^3.1.0" path-key "^3.1.0"
shebang-command "^2.0.0" shebang-command "^2.0.0"
@@ -1932,6 +1940,15 @@ dot-prop@^6.0.1:
dependencies: dependencies:
is-obj "^2.0.0" is-obj "^2.0.0"
dunder-proto@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
dependencies:
call-bind-apply-helpers "^1.0.1"
es-errors "^1.3.0"
gopd "^1.2.0"
duplexer3@^0.1.4: duplexer3@^0.1.4:
version "0.1.4" version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -2032,6 +2049,23 @@ es-abstract@^1.19.0, es-abstract@^1.20.4:
unbox-primitive "^1.0.2" unbox-primitive "^1.0.2"
which-typed-array "^1.1.10" which-typed-array "^1.1.10"
es-define-property@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
es-errors@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
dependencies:
es-errors "^1.3.0"
es-set-tostringtag@^2.0.1: es-set-tostringtag@^2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
@@ -2041,6 +2075,16 @@ es-set-tostringtag@^2.0.1:
has "^1.0.3" has "^1.0.3"
has-tostringtag "^1.0.0" has-tostringtag "^1.0.0"
es-set-tostringtag@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
dependencies:
es-errors "^1.3.0"
get-intrinsic "^1.2.6"
has-tostringtag "^1.0.2"
hasown "^2.0.2"
es-shim-unscopables@^1.0.0: es-shim-unscopables@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
@@ -2392,10 +2436,10 @@ file-entry-cache@^6.0.1:
dependencies: dependencies:
flat-cache "^3.0.4" flat-cache "^3.0.4"
fill-range@^7.0.1: fill-range@^7.1.1:
version "7.0.1" version "7.1.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies: dependencies:
to-regex-range "^5.0.1" to-regex-range "^5.0.1"
@@ -2428,7 +2472,7 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
follow-redirects@^1.15.0: follow-redirects@^1.15.6:
version "1.15.6" version "1.15.6"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
@@ -2441,12 +2485,14 @@ for-each@^0.3.3:
is-callable "^1.1.3" is-callable "^1.1.3"
form-data@^4.0.0: form-data@^4.0.0:
version "4.0.0" version "4.0.4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
dependencies: dependencies:
asynckit "^0.4.0" asynckit "^0.4.0"
combined-stream "^1.0.8" combined-stream "^1.0.8"
es-set-tostringtag "^2.1.0"
hasown "^2.0.2"
mime-types "^2.1.12" mime-types "^2.1.12"
fs.realpath@^1.0.0: fs.realpath@^1.0.0:
@@ -2464,6 +2510,11 @@ function-bind@^1.1.1:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
function-bind@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
function.prototype.name@^1.1.5: function.prototype.name@^1.1.5:
version "1.1.5" version "1.1.5"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
@@ -2508,11 +2559,35 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1:
has-proto "^1.0.1" has-proto "^1.0.1"
has-symbols "^1.0.3" has-symbols "^1.0.3"
get-intrinsic@^1.2.6:
version "1.3.0"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
dependencies:
call-bind-apply-helpers "^1.0.2"
es-define-property "^1.0.1"
es-errors "^1.3.0"
es-object-atoms "^1.1.1"
function-bind "^1.1.2"
get-proto "^1.0.1"
gopd "^1.2.0"
has-symbols "^1.1.0"
hasown "^2.0.2"
math-intrinsics "^1.1.0"
get-package-type@^0.1.0: get-package-type@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
get-proto@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
dependencies:
dunder-proto "^1.0.1"
es-object-atoms "^1.0.0"
get-stream@^4.1.0: get-stream@^4.1.0:
version "4.1.0" version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -2635,6 +2710,11 @@ gopd@^1.0.1:
dependencies: dependencies:
get-intrinsic "^1.1.3" get-intrinsic "^1.1.3"
gopd@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
got@^10.6.0: got@^10.6.0:
version "10.7.0" version "10.7.0"
resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f"
@@ -2742,6 +2822,11 @@ has-symbols@^1.0.3:
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
has-symbols@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
has-tostringtag@^1.0.0: has-tostringtag@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
@@ -2749,6 +2834,13 @@ has-tostringtag@^1.0.0:
dependencies: dependencies:
has-symbols "^1.0.2" has-symbols "^1.0.2"
has-tostringtag@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
has-symbols "^1.0.3"
has-yarn@^2.1.0: has-yarn@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
@@ -2761,6 +2853,13 @@ has@^1.0.3:
dependencies: dependencies:
function-bind "^1.1.1" function-bind "^1.1.1"
hasown@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
hosted-git-info@^2.1.4: hosted-git-info@^2.1.4:
version "2.8.9" version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -4065,6 +4164,11 @@ map-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5"
integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==
math-intrinsics@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
meow@^8.1.0: meow@^8.1.0:
version "8.1.2" version "8.1.2"
resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
@@ -4092,20 +4196,12 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micromatch@^4.0.2: micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.2" version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies: dependencies:
braces "^3.0.1" braces "^3.0.3"
picomatch "^2.0.5"
micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
dependencies:
braces "^3.0.2"
picomatch "^2.3.1" picomatch "^2.3.1"
mime-db@1.45.0: mime-db@1.45.0:
@@ -4667,7 +4763,7 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: picomatch@^2.0.4, picomatch@^2.2.1:
version "2.2.2" version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
@@ -5847,9 +5943,9 @@ write-file-atomic@^4.0.2:
signal-exit "^3.0.7" signal-exit "^3.0.7"
ws@^8.13.0: ws@^8.13.0:
version "8.13.0" version "8.17.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==
xdg-basedir@^4.0.0: xdg-basedir@^4.0.0:
version "4.0.0" version "4.0.0"