Compare commits

..

21 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
10 changed files with 785 additions and 584 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
@@ -136,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` |
@@ -164,6 +166,7 @@ Activities consist of all levels of clue scrolls as well as minigames and bosses
| The Corrupted Gauntlet | `corruptedGauntlet` | | The Corrupted Gauntlet | `corruptedGauntlet` |
| The Hueycoatl | `hueycoatl` | | 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` |
@@ -177,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` |
@@ -205,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,106 +1,110 @@
2130,2277,1102428578 2210,2277,1150073045
22624,99,32956104 23988,99,33320012
3574,99,47147957 3114,99,51215128
1226,99,200000000 1203,99,200000000
1454,99,180249986 1372,99,196290925
3112,99,155438899 3458,99,159426771
2533,99,17520811 2746,99,17744970
2078,99,84629930 2031,99,91566360
150276,99,13378420 161852,99,13386665
23833,99,19182079 25801,99,19461878
61715,99,13456926 64826,99,13473417
24604,99,16672148 26528,99,16672481
19900,99,19161337 20829,99,19483653
53450,99,14082613 58378,99,14103220
12063,99,16553015 13188,99,16573909
32871,99,14985851 36283,99,15061037
39747,99,13346314 17137,99,14670565
8390,99,15771711 8751,99,16169665
55848,99,14322777 60803,99,14390315
1723,99,52832158 1718,99,57850681
2107,99,101923913 2117,99,110369178
5301,99,22739376 5540,99,22739567
20087,99,18044758 22326,99,18052465
1301,99,18031495 1467,99,18050183
-1,-1 -1,-1
-1,-1 -1,-1
32847,10 38135,10
16567,3 19368,3
147262,8 146220,8
101823,7 100923,7
382,9739 433,9802
1265,825 1542,825
131,6000 158,6000
2401,1606 2572,1606
43386,311 47979,311
799,460 1081,460
945,537 880,600
5531,5516 4258,6785
-1,-1 -1,-1
7538,14780 7596,14780
6781,1060 8124,1060
6880,43487 10438,43487
3193,2192 1114,1155
2932,4796 3497,2192
123,6789 3204,4796
37,111 1087,984
44605,143 2230,2328
4023,1830 51533,143
238149,5 4243,1830
47139,293 256985,5
98811,58 54424,293
10766,2657 114691,58
200557,34 11700,2657
1735,692 211708,34
23548,215 1779,736
43337,116 24958,215
61439,287 46504,116
2859,2000 66096,287
53841,106 3133,2000
18420,1078 26682,198
23824,1062 19337,1078
18418,1088 25021,1062
85908,25 19290,1088
6077,1320 89474,25
21980,1228 1140,8
76561,477 7535,1320
774,3642 23251,1228
7917,281 82016,477
2313,2046 876,3642
52832,580 7073,310
64296,2899 2476,2046
4205,1740 55411,580
2681,1444 68801,2899
3424,324 4608,1740
523,48 3079,1444
35420,626 8344,324
4162,749 540,53
5046,500 38395,626
1218,217 4176,749
21243,379 5519,500
40733,249 1394,217
53931,91 26127,379
4870,1245 49730,249
174877,29 57206,91
2122,49 6106,1245
3471,1569 185920,29
50947,273 3232,49
236110,7 4276,1569
102423,201 57314,273
2344,21039 256794,7
10174,666 113862,201
665,2072 1969,538
23177,310 12346,671
1967,419 5606,149
8495,3066 550,2450
122123,37 25557,310
240,1537 1391,538
7756,7 9325,3066
140561,8 131996,37
4736,2113 214,1720
249,7096 8902,7
89194,51 148385,8
15067,2780 6120,2113
975929,62 287,7096
196393,25 97368,51
227062,340 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.

File diff suppressed because it is too large Load Diff

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,6 +114,7 @@ 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 561,398429
@@ -124,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
@@ -152,6 +165,7 @@ test('Parse CSV to json', () => {
2870,6 2870,6
891,9102 891,9102
2871,7 2871,7
5606,149
2872,8 2872,8
6984,138 6984,138
23,923141 23,923141
@@ -165,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`;
@@ -208,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 },
@@ -239,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 },
@@ -267,6 +284,7 @@ test('Parse CSV to json', () => {
corruptedGauntlet: { rank: 2870, score: 6 }, corruptedGauntlet: { rank: 2870, score: 6 },
hueycoatl: { rank: 891, score: 9102 }, 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 },
@@ -280,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 }
} }
@@ -318,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);
}); });
}); });
@@ -505,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

@@ -59,7 +59,7 @@
{ {
"id": 8, "id": 8,
"name": "Cooking", "name": "Cooking",
"rank": 154, "rank": 149,
"level": 99, "level": 99,
"xp": 200000000 "xp": 200000000
}, },
@@ -108,7 +108,7 @@
{ {
"id": 15, "id": 15,
"name": "Mining", "name": "Mining",
"rank": 24, "rank": 23,
"level": 99, "level": 99,
"xp": 200000000 "xp": 200000000
}, },
@@ -157,7 +157,7 @@
{ {
"id": 22, "id": 22,
"name": "Hunter", "name": "Hunter",
"rank": 4, "rank": 3,
"level": 99, "level": 99,
"xp": 200000000 "xp": 200000000
}, },
@@ -209,7 +209,7 @@
{ {
"id": 6, "id": 6,
"name": "Clue Scrolls (all)", "name": "Clue Scrolls (all)",
"rank": 832420, "rank": 937868,
"score": 22 "score": 22
}, },
{ {
@@ -233,7 +233,7 @@
{ {
"id": 10, "id": 10,
"name": "Clue Scrolls (hard)", "name": "Clue Scrolls (hard)",
"rank": 517091, "rank": 578038,
"score": 22 "score": 22
}, },
{ {
@@ -280,387 +280,399 @@
}, },
{ {
"id": 18, "id": 18,
"name": "Abyssal Sire", "name": "Collections Logged",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 19, "id": 19,
"name": "Alchemical Hydra", "name": "Abyssal Sire",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 20, "id": 20,
"name": "Amoxliatl", "name": "Alchemical Hydra",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 21, "id": 21,
"name": "Araxxor", "name": "Amoxliatl",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 22, "id": 22,
"name": "Artio", "name": "Araxxor",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 23, "id": 23,
"name": "Barrows Chests", "name": "Artio",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 24, "id": 24,
"name": "Bryophyta", "name": "Barrows Chests",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 25, "id": 25,
"name": "Callisto", "name": "Bryophyta",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 26, "id": 26,
"name": "Calvar'ion", "name": "Callisto",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 27, "id": 27,
"name": "Cerberus", "name": "Calvar'ion",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 28, "id": 28,
"name": "Chambers of Xeric", "name": "Cerberus",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 29, "id": 29,
"name": "Chambers of Xeric: Challenge Mode", "name": "Chambers of Xeric",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 30, "id": 30,
"name": "Chaos Elemental", "name": "Chambers of Xeric: Challenge Mode",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 31, "id": 31,
"name": "Chaos Fanatic", "name": "Chaos Elemental",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 32, "id": 32,
"name": "Commander Zilyana", "name": "Chaos Fanatic",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 33, "id": 33,
"name": "Corporeal Beast", "name": "Commander Zilyana",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 34, "id": 34,
"name": "Crazy Archaeologist", "name": "Corporeal Beast",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 35, "id": 35,
"name": "Dagannoth Prime", "name": "Crazy Archaeologist",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 36, "id": 36,
"name": "Dagannoth Rex", "name": "Dagannoth Prime",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 37, "id": 37,
"name": "Dagannoth Supreme", "name": "Dagannoth Rex",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 38, "id": 38,
"name": "Deranged Archaeologist", "name": "Dagannoth Supreme",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 39, "id": 39,
"name": "Duke Sucellus", "name": "Deranged Archaeologist",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 40, "id": 40,
"name": "General Graardor", "name": "Duke Sucellus",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 41, "id": 41,
"name": "Giant Mole", "name": "General Graardor",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 42, "id": 42,
"name": "Grotesque Guardians", "name": "Giant Mole",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 43, "id": 43,
"name": "Hespori", "name": "Grotesque Guardians",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 44, "id": 44,
"name": "Kalphite Queen", "name": "Hespori",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 45, "id": 45,
"name": "King Black Dragon", "name": "Kalphite Queen",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 46, "id": 46,
"name": "Kraken", "name": "King Black Dragon",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 47, "id": 47,
"name": "Kree'Arra", "name": "Kraken",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 48, "id": 48,
"name": "K'ril Tsutsaroth", "name": "Kree'Arra",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 49, "id": 49,
"name": "Lunar Chests", "name": "K'ril Tsutsaroth",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 50, "id": 50,
"name": "Mimic", "name": "Lunar Chests",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 51, "id": 51,
"name": "Nex", "name": "Mimic",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 52, "id": 52,
"name": "Nightmare", "name": "Nex",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 53, "id": 53,
"name": "Phosani's Nightmare", "name": "Nightmare",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 54, "id": 54,
"name": "Obor", "name": "Phosani's Nightmare",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 55, "id": 55,
"name": "Phantom Muspah", "name": "Obor",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 56, "id": 56,
"name": "Sarachnis", "name": "Phantom Muspah",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 57, "id": 57,
"name": "Scorpia", "name": "Sarachnis",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 58, "id": 58,
"name": "Scurrius", "name": "Scorpia",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 59, "id": 59,
"name": "Skotizo", "name": "Scurrius",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 60, "id": 60,
"name": "Sol Heredit", "name": "Skotizo",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 61, "id": 61,
"name": "Spindel", "name": "Sol Heredit",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 62, "id": 62,
"name": "Tempoross", "name": "Spindel",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 63, "id": 63,
"name": "The Gauntlet", "name": "Tempoross",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 64, "id": 64,
"name": "The Corrupted Gauntlet", "name": "The Gauntlet",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 65, "id": 65,
"name": "The Hueycoatl", "name": "The Corrupted Gauntlet",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 66, "id": 66,
"name": "The Leviathan", "name": "The Hueycoatl",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 67, "id": 67,
"name": "The Whisperer", "name": "The Leviathan",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 68, "id": 68,
"name": "Theatre of Blood", "name": "The Royal Titans",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 69, "id": 69,
"name": "Theatre of Blood: Hard Mode", "name": "The Whisperer",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 70, "id": 70,
"name": "Thermonuclear Smoke Devil", "name": "Theatre of Blood",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 71, "id": 71,
"name": "Tombs of Amascut", "name": "Theatre of Blood: Hard Mode",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 72, "id": 72,
"name": "Tombs of Amascut: Expert Mode", "name": "Thermonuclear Smoke Devil",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 73, "id": 73,
"name": "TzKal-Zuk", "name": "Tombs of Amascut",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 74, "id": 74,
"name": "TzTok-Jad", "name": "Tombs of Amascut: Expert Mode",
"rank": 251, "rank": -1,
"score": 186 "score": -1
}, },
{ {
"id": 75, "id": 75,
"name": "Vardorvis", "name": "TzKal-Zuk",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 76, "id": 76,
"name": "Venenatis", "name": "TzTok-Jad",
"rank": -1, "rank": 317,
"score": -1 "score": 186
}, },
{ {
"id": 77, "id": 77,
"name": "Vet'ion", "name": "Vardorvis",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 78, "id": 78,
"name": "Vorkath", "name": "Venenatis",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 79, "id": 79,
"name": "Wintertodt", "name": "Vet'ion",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 80, "id": 80,
"name": "Zalcano", "name": "Vorkath",
"rank": -1, "rank": -1,
"score": -1 "score": -1
}, },
{ {
"id": 81, "id": 81,
"name": "Wintertodt",
"rank": -1,
"score": -1
},
{
"id": 82,
"name": "Zalcano",
"rank": -1,
"score": -1
},
{
"id": 83,
"name": "Zulrah", "name": "Zulrah",
"rank": -1, "rank": -1,
"score": -1 "score": -1
} }
] ]
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "osrs-json-hiscores", "name": "osrs-json-hiscores",
"version": "2.19.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

@@ -88,6 +88,7 @@ export type Boss =
| 'dagannothRex' | 'dagannothRex'
| 'dagannothSupreme' | 'dagannothSupreme'
| 'derangedArchaeologist' | 'derangedArchaeologist'
| 'doomOfMokhaiotl'
| 'dukeSucellus' | 'dukeSucellus'
| 'generalGraardor' | 'generalGraardor'
| 'giantMole' | 'giantMole'
@@ -116,6 +117,7 @@ export type Boss =
| 'corruptedGauntlet' | 'corruptedGauntlet'
| 'hueycoatl' | 'hueycoatl'
| 'leviathan' | 'leviathan'
| 'royalTitans'
| 'whisperer' | 'whisperer'
| 'theatreOfBlood' | 'theatreOfBlood'
| 'theatreOfBloodHardMode' | 'theatreOfBloodHardMode'
@@ -129,6 +131,7 @@ export type Boss =
| 'vetion' | 'vetion'
| 'vorkath' | 'vorkath'
| 'wintertodt' | 'wintertodt'
| 'yama'
| 'zalcano' | 'zalcano'
| 'zulrah'; | 'zulrah';
@@ -153,6 +156,7 @@ export type ActivityName =
| 'eliteClues' | 'eliteClues'
| 'masterClues' | 'masterClues'
| 'colosseumGlory' | 'colosseumGlory'
| 'collectionsLogged'
| Boss; | Boss;
export interface Stats { export interface Stats {
@@ -172,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

@@ -95,6 +95,7 @@ export const BOSSES: Boss[] = [
'dagannothRex', 'dagannothRex',
'dagannothSupreme', 'dagannothSupreme',
'derangedArchaeologist', 'derangedArchaeologist',
'doomOfMokhaiotl',
'dukeSucellus', 'dukeSucellus',
'generalGraardor', 'generalGraardor',
'giantMole', 'giantMole',
@@ -123,6 +124,7 @@ export const BOSSES: Boss[] = [
'corruptedGauntlet', 'corruptedGauntlet',
'hueycoatl', 'hueycoatl',
'leviathan', 'leviathan',
'royalTitans',
'whisperer', 'whisperer',
'theatreOfBlood', 'theatreOfBlood',
'theatreOfBloodHardMode', 'theatreOfBloodHardMode',
@@ -136,6 +138,7 @@ export const BOSSES: Boss[] = [
'vetion', 'vetion',
'vorkath', 'vorkath',
'wintertodt', 'wintertodt',
'yama',
'zalcano', 'zalcano',
'zulrah' 'zulrah'
]; ];
@@ -158,6 +161,7 @@ export const ACTIVITIES: ActivityName[] = [
'soulWarsZeal', 'soulWarsZeal',
'riftsClosed', 'riftsClosed',
'colosseumGlory', 'colosseumGlory',
'collectionsLogged',
...BOSSES ...BOSSES
]; ];
@@ -187,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',
@@ -215,6 +220,7 @@ export const FORMATTED_BOSS_NAMES: FormattedBossNames = {
corruptedGauntlet: 'The Corrupted Gauntlet', corruptedGauntlet: 'The Corrupted Gauntlet',
hueycoatl: 'The Hueycoatl', 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',
@@ -228,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'
}; };
@@ -295,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';

122
yarn.lock
View File

@@ -1288,9 +1288,9 @@ available-typed-arrays@^1.0.5:
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axios@^1.6.2: axios@^1.6.2:
version "1.7.4" version "1.8.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.2.tgz#fabe06e241dfe83071d4edfbcaa7b1c3a40f7979"
integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== integrity sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==
dependencies: dependencies:
follow-redirects "^1.15.6" follow-redirects "^1.15.6"
form-data "^4.0.0" form-data "^4.0.0"
@@ -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"
@@ -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"